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

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

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

@s2n_use_color_in_output = external dso_local global i8, align 1
@_s2n_debug_info = external thread_local global %struct.s2n_debug_info, align 8
@s2n_errno = external thread_local global i32, align 4
@test_count = external dso_local global i32, align 4
@stdout = external global ptr, align 8
@.str.56 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [83 x i8], align 1
@stderr = external global ptr, align 8
@.str.58 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [50 x i8], align 1
@s2n_tls13_aes_128_gcm_sha256 = external global %struct.s2n_cipher_suite, align 8
@.str.73 = external hidden unnamed_addr constant [104 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [104 x i8], align 1
@__const.main.psk_data = external hidden unnamed_addr constant [19 x i8], align 16
@__const.main.secret_data = external hidden unnamed_addr constant [17 x i8], align 16
@.str.75 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.81 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.85 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.86 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.88 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.89 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [54 x i8], align 1
@__const.main.psk_data.91 = external hidden unnamed_addr constant [19 x i8], align 16
@__const.main.secret_data.92 = external hidden unnamed_addr constant [17 x i8], align 16
@__const.main.early_secret_data = external hidden unnamed_addr constant [32 x i8], align 16
@.str.93 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.94 = external hidden unnamed_addr constant [108 x i8], align 1
@.str.95 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.96 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.97 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.98 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.99 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.100 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.101 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.102 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.103 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.104 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.105 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.106 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.107 = external hidden unnamed_addr constant [127 x i8], align 1
@.str.108 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.109 = external hidden unnamed_addr constant [128 x i8], align 1
@.str.110 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.111 = external hidden unnamed_addr constant [138 x i8], align 1
@.str.112 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.113 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.114 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.115 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.116 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.117 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.118 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.119 = external hidden unnamed_addr constant [110 x i8], align 1
@.str.120 = external hidden unnamed_addr constant [110 x i8], align 1
@.str.121 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.122 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.123 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.124 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.125 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.126 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.127 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.128 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.129 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.130 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.131 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.132 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.133 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.134 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.135 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.136 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.137 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.138 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.139 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.140 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.141 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.142 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.143 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.144 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.145 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.146 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.147 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.148 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.149 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.150 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.151 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.152 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.153 = external hidden unnamed_addr constant [142 x i8], align 1
@.str.154 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.155 = external hidden unnamed_addr constant [145 x i8], align 1
@.str.156 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.157 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.158 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.159 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.160 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.161 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.162 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.163 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.164 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.165 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.166 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.167 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.168 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.169 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.170 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.171 = external hidden unnamed_addr constant [59 x i8], align 1

; Function Attrs: nounwind uwtable
declare dso_local i32 @s2n_conn_get_current_message_type(ptr noundef) #0

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

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

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

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

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

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

declare i32 @s2n_calculate_stacktrace() #6

; Function Attrs: nounwind uwtable
declare dso_local i32 @s2n_conn_set_handshake_type(ptr noundef) #0

; Function Attrs: nocallback nofree nosync nounwind willreturn memory(none)
declare i64 @llvm.expect.i64(i64, i64) #7

declare ptr @s2n_ensure_memmove_trace(ptr noundef, ptr noundef, i64 noundef) #6

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

; Function Attrs: nounwind uwtable
declare hidden i32 @s2n_handshake_write_io(ptr noundef) #0

; 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) #9

; Function Attrs: nounwind uwtable
declare hidden i32 @s2n_handshake_read_io(ptr noundef) #0

declare i32 @s2n_tls13_keys_free(ptr noundef) #6

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

declare i32 @s2n_connection_get_ecc_preferences(ptr noundef, ptr noundef) #6

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

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

198:                                              ; preds = %2
  br label %199

199:                                              ; preds = %198
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %200 = load ptr, ptr @stdout, align 8, !tbaa !9
  %201 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %200, ptr noundef @.str.56, ptr noundef @.str.57) #13
  %202 = load ptr, ptr @stdout, align 8, !tbaa !9
  %203 = call i32 @fflush(ptr noundef %202)
  br label %204

204:                                              ; preds = %199
  %205 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true)
  %206 = icmp eq i32 %205, -1
  br i1 %206, label %207, label %258

207:                                              ; preds = %204
  br label %208

208:                                              ; preds = %207
  br label %209

209:                                              ; preds = %208
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #13
  %210 = call ptr @__errno_location() #14
  %211 = load i32, ptr %210, align 4, !tbaa !5
  store i32 %211, ptr %6, align 4, !tbaa !5
  %212 = load ptr, ptr @stderr, align 8, !tbaa !9
  %213 = call i32 @s2n_print_stacktrace(ptr noundef %212)
  %214 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %215 = trunc i8 %214 to i1
  br i1 %215, label %216, label %238

216:                                              ; preds = %209
  %217 = load ptr, ptr @stderr, align 8, !tbaa !9
  %218 = call i32 @fileno(ptr noundef %217) #13
  %219 = call i32 @isatty(i32 noundef %218) #13
  %220 = icmp ne i32 %219, 0
  br i1 %220, label %221, label %238

221:                                              ; preds = %216
  %222 = load i32, ptr %6, align 4, !tbaa !5
  %223 = call ptr @__errno_location() #14
  store i32 %222, ptr %223, align 4, !tbaa !5
  %224 = load ptr, ptr @stderr, align 8, !tbaa !9
  %225 = load i32, ptr @test_count, align 4, !tbaa !5
  %226 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %227 = load i32, ptr %226, align 4, !tbaa !5
  %228 = call ptr @s2n_strerror(i32 noundef %227, ptr noundef @.str.60)
  %229 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %230 = load i32, ptr %229, align 4, !tbaa !5
  %231 = call ptr @s2n_strerror_debug(i32 noundef %230, ptr noundef @.str.60)
  %232 = call ptr @__errno_location() #14
  %233 = load i32, ptr %232, align 4, !tbaa !5
  %234 = call ptr @strerror(i32 noundef %233) #13
  %235 = call ptr @__errno_location() #14
  %236 = load i32, ptr %235, align 4, !tbaa !5
  %237 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %224, ptr noundef @.str.58, i32 noundef %225, ptr noundef @.str.59, ptr noundef @.str.57, i32 noundef 44, ptr noundef %228, ptr noundef %231, ptr noundef %234, i32 noundef %236) #13
  br label %255

238:                                              ; preds = %216, %209
  %239 = load i32, ptr %6, align 4, !tbaa !5
  %240 = call ptr @__errno_location() #14
  store i32 %239, ptr %240, align 4, !tbaa !5
  %241 = load ptr, ptr @stderr, align 8, !tbaa !9
  %242 = load i32, ptr @test_count, align 4, !tbaa !5
  %243 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %244 = load i32, ptr %243, align 4, !tbaa !5
  %245 = call ptr @s2n_strerror(i32 noundef %244, ptr noundef @.str.60)
  %246 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %247 = load i32, ptr %246, align 4, !tbaa !5
  %248 = call ptr @s2n_strerror_debug(i32 noundef %247, ptr noundef @.str.60)
  %249 = call ptr @__errno_location() #14
  %250 = load i32, ptr %249, align 4, !tbaa !5
  %251 = call ptr @strerror(i32 noundef %250) #13
  %252 = call ptr @__errno_location() #14
  %253 = load i32, ptr %252, align 4, !tbaa !5
  %254 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %241, ptr noundef @.str.61, i32 noundef %242, ptr noundef @.str.59, ptr noundef @.str.57, i32 noundef 44, ptr noundef %245, ptr noundef %248, ptr noundef %251, i32 noundef %253) #13
  br label %255

255:                                              ; preds = %238, %221
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #13
  br label %256

256:                                              ; preds = %255
  call void @exit(i32 noundef 1) #15
  unreachable

257:                                              ; No predecessors!
  br label %258

258:                                              ; preds = %257, %204
  br label %259

259:                                              ; preds = %258
  br label %260

260:                                              ; preds = %259
  %261 = load i32, ptr @test_count, align 4, !tbaa !5
  %262 = add nsw i32 %261, 1
  store i32 %262, ptr @test_count, align 4, !tbaa !5
  %263 = call i32 @s2n_enable_atexit()
  %264 = icmp eq i32 %263, -1
  br i1 %264, label %265, label %316

265:                                              ; preds = %260
  br label %266

266:                                              ; preds = %265
  br label %267

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

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

279:                                              ; preds = %274
  %280 = load i32, ptr %7, align 4, !tbaa !5
  %281 = call ptr @__errno_location() #14
  store i32 %280, ptr %281, align 4, !tbaa !5
  %282 = load ptr, ptr @stderr, align 8, !tbaa !9
  %283 = load i32, ptr @test_count, align 4, !tbaa !5
  %284 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %285 = load i32, ptr %284, align 4, !tbaa !5
  %286 = call ptr @s2n_strerror(i32 noundef %285, ptr noundef @.str.60)
  %287 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %288 = load i32, ptr %287, align 4, !tbaa !5
  %289 = call ptr @s2n_strerror_debug(i32 noundef %288, ptr noundef @.str.60)
  %290 = call ptr @__errno_location() #14
  %291 = load i32, ptr %290, align 4, !tbaa !5
  %292 = call ptr @strerror(i32 noundef %291) #13
  %293 = call ptr @__errno_location() #14
  %294 = load i32, ptr %293, align 4, !tbaa !5
  %295 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %282, ptr noundef @.str.58, i32 noundef %283, ptr noundef @.str.62, ptr noundef @.str.57, i32 noundef 44, ptr noundef %286, ptr noundef %289, ptr noundef %292, i32 noundef %294) #13
  br label %313

296:                                              ; preds = %274, %267
  %297 = load i32, ptr %7, align 4, !tbaa !5
  %298 = call ptr @__errno_location() #14
  store i32 %297, ptr %298, align 4, !tbaa !5
  %299 = load ptr, ptr @stderr, align 8, !tbaa !9
  %300 = load i32, ptr @test_count, align 4, !tbaa !5
  %301 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %302 = load i32, ptr %301, align 4, !tbaa !5
  %303 = call ptr @s2n_strerror(i32 noundef %302, ptr noundef @.str.60)
  %304 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %305 = load i32, ptr %304, align 4, !tbaa !5
  %306 = call ptr @s2n_strerror_debug(i32 noundef %305, ptr noundef @.str.60)
  %307 = call ptr @__errno_location() #14
  %308 = load i32, ptr %307, align 4, !tbaa !5
  %309 = call ptr @strerror(i32 noundef %308) #13
  %310 = call ptr @__errno_location() #14
  %311 = load i32, ptr %310, align 4, !tbaa !5
  %312 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %299, ptr noundef @.str.61, i32 noundef %300, ptr noundef @.str.62, ptr noundef @.str.57, i32 noundef 44, ptr noundef %303, ptr noundef %306, ptr noundef %309, i32 noundef %311) #13
  br label %313

313:                                              ; preds = %296, %279
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #13
  br label %314

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

315:                                              ; No predecessors!
  br label %316

316:                                              ; preds = %315, %260
  br label %317

317:                                              ; preds = %316
  br label %318

318:                                              ; preds = %317
  br label %319

319:                                              ; preds = %318
  %320 = call i32 @s2n_init()
  %321 = icmp eq i32 %320, -1
  br i1 %321, label %322, label %373

322:                                              ; preds = %319
  br label %323

323:                                              ; preds = %322
  br label %324

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

331:                                              ; preds = %324
  %332 = load ptr, ptr @stderr, align 8, !tbaa !9
  %333 = call i32 @fileno(ptr noundef %332) #13
  %334 = call i32 @isatty(i32 noundef %333) #13
  %335 = icmp ne i32 %334, 0
  br i1 %335, label %336, label %353

336:                                              ; preds = %331
  %337 = load i32, ptr %8, align 4, !tbaa !5
  %338 = call ptr @__errno_location() #14
  store i32 %337, ptr %338, align 4, !tbaa !5
  %339 = load ptr, ptr @stderr, align 8, !tbaa !9
  %340 = load i32, ptr @test_count, align 4, !tbaa !5
  %341 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %342 = load i32, ptr %341, align 4, !tbaa !5
  %343 = call ptr @s2n_strerror(i32 noundef %342, ptr noundef @.str.60)
  %344 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %345 = load i32, ptr %344, align 4, !tbaa !5
  %346 = call ptr @s2n_strerror_debug(i32 noundef %345, ptr noundef @.str.60)
  %347 = call ptr @__errno_location() #14
  %348 = load i32, ptr %347, align 4, !tbaa !5
  %349 = call ptr @strerror(i32 noundef %348) #13
  %350 = call ptr @__errno_location() #14
  %351 = load i32, ptr %350, align 4, !tbaa !5
  %352 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %339, ptr noundef @.str.58, i32 noundef %340, ptr noundef @.str.63, ptr noundef @.str.57, i32 noundef 44, ptr noundef %343, ptr noundef %346, ptr noundef %349, i32 noundef %351) #13
  br label %370

353:                                              ; preds = %331, %324
  %354 = load i32, ptr %8, align 4, !tbaa !5
  %355 = call ptr @__errno_location() #14
  store i32 %354, ptr %355, align 4, !tbaa !5
  %356 = load ptr, ptr @stderr, align 8, !tbaa !9
  %357 = load i32, ptr @test_count, align 4, !tbaa !5
  %358 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %359 = load i32, ptr %358, align 4, !tbaa !5
  %360 = call ptr @s2n_strerror(i32 noundef %359, ptr noundef @.str.60)
  %361 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %362 = load i32, ptr %361, align 4, !tbaa !5
  %363 = call ptr @s2n_strerror_debug(i32 noundef %362, ptr noundef @.str.60)
  %364 = call ptr @__errno_location() #14
  %365 = load i32, ptr %364, align 4, !tbaa !5
  %366 = call ptr @strerror(i32 noundef %365) #13
  %367 = call ptr @__errno_location() #14
  %368 = load i32, ptr %367, align 4, !tbaa !5
  %369 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %356, ptr noundef @.str.61, i32 noundef %357, ptr noundef @.str.63, ptr noundef @.str.57, i32 noundef 44, ptr noundef %360, ptr noundef %363, ptr noundef %366, i32 noundef %368) #13
  br label %370

370:                                              ; preds = %353, %336
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #13
  br label %371

371:                                              ; preds = %370
  call void @exit(i32 noundef 1) #15
  unreachable

372:                                              ; No predecessors!
  br label %373

373:                                              ; preds = %372, %319
  br label %374

374:                                              ; preds = %373
  br label %375

375:                                              ; preds = %374
  %376 = call zeroext i1 (...) @s2n_is_tls13_fully_supported()
  br i1 %376, label %524, label %377

377:                                              ; preds = %375
  br label %378

378:                                              ; preds = %377
  br label %379

379:                                              ; preds = %378
  %380 = call i32 @s2n_cleanup()
  %381 = icmp eq i32 %380, -1
  br i1 %381, label %382, label %433

382:                                              ; preds = %379
  br label %383

383:                                              ; preds = %382
  br label %384

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

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

396:                                              ; preds = %391
  %397 = load i32, ptr %9, align 4, !tbaa !5
  %398 = call ptr @__errno_location() #14
  store i32 %397, ptr %398, align 4, !tbaa !5
  %399 = load ptr, ptr @stderr, align 8, !tbaa !9
  %400 = load i32, ptr @test_count, align 4, !tbaa !5
  %401 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %402 = load i32, ptr %401, align 4, !tbaa !5
  %403 = call ptr @s2n_strerror(i32 noundef %402, ptr noundef @.str.60)
  %404 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %405 = load i32, ptr %404, align 4, !tbaa !5
  %406 = call ptr @s2n_strerror_debug(i32 noundef %405, ptr noundef @.str.60)
  %407 = call ptr @__errno_location() #14
  %408 = load i32, ptr %407, align 4, !tbaa !5
  %409 = call ptr @strerror(i32 noundef %408) #13
  %410 = call ptr @__errno_location() #14
  %411 = load i32, ptr %410, align 4, !tbaa !5
  %412 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %399, ptr noundef @.str.58, i32 noundef %400, ptr noundef @.str.64, ptr noundef @.str.57, i32 noundef 47, ptr noundef %403, ptr noundef %406, ptr noundef %409, i32 noundef %411) #13
  br label %430

413:                                              ; preds = %391, %384
  %414 = load i32, ptr %9, align 4, !tbaa !5
  %415 = call ptr @__errno_location() #14
  store i32 %414, ptr %415, align 4, !tbaa !5
  %416 = load ptr, ptr @stderr, align 8, !tbaa !9
  %417 = load i32, ptr @test_count, align 4, !tbaa !5
  %418 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %419 = load i32, ptr %418, align 4, !tbaa !5
  %420 = call ptr @s2n_strerror(i32 noundef %419, ptr noundef @.str.60)
  %421 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %422 = load i32, ptr %421, align 4, !tbaa !5
  %423 = call ptr @s2n_strerror_debug(i32 noundef %422, ptr noundef @.str.60)
  %424 = call ptr @__errno_location() #14
  %425 = load i32, ptr %424, align 4, !tbaa !5
  %426 = call ptr @strerror(i32 noundef %425) #13
  %427 = call ptr @__errno_location() #14
  %428 = load i32, ptr %427, align 4, !tbaa !5
  %429 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %416, ptr noundef @.str.61, i32 noundef %417, ptr noundef @.str.64, ptr noundef @.str.57, i32 noundef 47, ptr noundef %420, ptr noundef %423, ptr noundef %426, i32 noundef %428) #13
  br label %430

430:                                              ; preds = %413, %396
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #13
  br label %431

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

432:                                              ; No predecessors!
  br label %433

433:                                              ; preds = %432, %379
  br label %434

434:                                              ; preds = %433
  br label %435

435:                                              ; preds = %434
  br label %436

436:                                              ; preds = %435
  %437 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %438 = icmp eq i32 %437, -1
  br i1 %438, label %439, label %490

439:                                              ; preds = %436
  br label %440

440:                                              ; preds = %439
  br label %441

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

448:                                              ; preds = %441
  %449 = load ptr, ptr @stderr, align 8, !tbaa !9
  %450 = call i32 @fileno(ptr noundef %449) #13
  %451 = call i32 @isatty(i32 noundef %450) #13
  %452 = icmp ne i32 %451, 0
  br i1 %452, label %453, label %470

453:                                              ; preds = %448
  %454 = load i32, ptr %10, align 4, !tbaa !5
  %455 = call ptr @__errno_location() #14
  store i32 %454, ptr %455, align 4, !tbaa !5
  %456 = load ptr, ptr @stderr, align 8, !tbaa !9
  %457 = load i32, ptr @test_count, align 4, !tbaa !5
  %458 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %459 = load i32, ptr %458, align 4, !tbaa !5
  %460 = call ptr @s2n_strerror(i32 noundef %459, ptr noundef @.str.60)
  %461 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %462 = load i32, ptr %461, align 4, !tbaa !5
  %463 = call ptr @s2n_strerror_debug(i32 noundef %462, ptr noundef @.str.60)
  %464 = call ptr @__errno_location() #14
  %465 = load i32, ptr %464, align 4, !tbaa !5
  %466 = call ptr @strerror(i32 noundef %465) #13
  %467 = call ptr @__errno_location() #14
  %468 = load i32, ptr %467, align 4, !tbaa !5
  %469 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %456, ptr noundef @.str.58, i32 noundef %457, ptr noundef @.str.65, ptr noundef @.str.57, i32 noundef 47, ptr noundef %460, ptr noundef %463, ptr noundef %466, i32 noundef %468) #13
  br label %487

470:                                              ; preds = %448, %441
  %471 = load i32, ptr %10, align 4, !tbaa !5
  %472 = call ptr @__errno_location() #14
  store i32 %471, ptr %472, align 4, !tbaa !5
  %473 = load ptr, ptr @stderr, align 8, !tbaa !9
  %474 = load i32, ptr @test_count, align 4, !tbaa !5
  %475 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %476 = load i32, ptr %475, align 4, !tbaa !5
  %477 = call ptr @s2n_strerror(i32 noundef %476, ptr noundef @.str.60)
  %478 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %479 = load i32, ptr %478, align 4, !tbaa !5
  %480 = call ptr @s2n_strerror_debug(i32 noundef %479, ptr noundef @.str.60)
  %481 = call ptr @__errno_location() #14
  %482 = load i32, ptr %481, align 4, !tbaa !5
  %483 = call ptr @strerror(i32 noundef %482) #13
  %484 = call ptr @__errno_location() #14
  %485 = load i32, ptr %484, align 4, !tbaa !5
  %486 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %473, ptr noundef @.str.61, i32 noundef %474, ptr noundef @.str.65, ptr noundef @.str.57, i32 noundef 47, ptr noundef %477, ptr noundef %480, ptr noundef %483, i32 noundef %485) #13
  br label %487

487:                                              ; preds = %470, %453
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #13
  br label %488

488:                                              ; preds = %487
  call void @exit(i32 noundef 1) #15
  unreachable

489:                                              ; No predecessors!
  br label %490

490:                                              ; preds = %489, %436
  br label %491

491:                                              ; preds = %490
  %492 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %493 = trunc i8 %492 to i1
  br i1 %493, label %494, label %510

494:                                              ; preds = %491
  %495 = load ptr, ptr @stdout, align 8, !tbaa !9
  %496 = call i32 @fileno(ptr noundef %495) #13
  %497 = call i32 @isatty(i32 noundef %496) #13
  %498 = icmp ne i32 %497, 0
  br i1 %498, label %499, label %510

499:                                              ; preds = %494
  %500 = load i32, ptr @test_count, align 4, !tbaa !5
  %501 = icmp ne i32 %500, 0
  br i1 %501, label %502, label %506

502:                                              ; preds = %499
  %503 = load ptr, ptr @stdout, align 8, !tbaa !9
  %504 = load i32, ptr @test_count, align 4, !tbaa !5
  %505 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %503, ptr noundef @.str.66, i32 noundef %504) #13
  br label %509

506:                                              ; preds = %499
  %507 = load ptr, ptr @stdout, align 8, !tbaa !9
  %508 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %507, ptr noundef @.str.67) #13
  br label %509

509:                                              ; preds = %506, %502
  br label %521

510:                                              ; preds = %494, %491
  %511 = load i32, ptr @test_count, align 4, !tbaa !5
  %512 = icmp ne i32 %511, 0
  br i1 %512, label %513, label %517

513:                                              ; preds = %510
  %514 = load ptr, ptr @stdout, align 8, !tbaa !9
  %515 = load i32, ptr @test_count, align 4, !tbaa !5
  %516 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %514, ptr noundef @.str.68, i32 noundef %515) #13
  br label %520

517:                                              ; preds = %510
  %518 = load ptr, ptr @stdout, align 8, !tbaa !9
  %519 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %518, ptr noundef @.str.69) #13
  br label %520

520:                                              ; preds = %517, %513
  br label %521

521:                                              ; preds = %520, %509
  store i32 0, ptr %3, align 4
  br label %9588

522:                                              ; No predecessors!
  br label %523

523:                                              ; preds = %522
  br label %524

524:                                              ; preds = %523, %375
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #13
  store ptr null, ptr %11, align 8, !tbaa !9
  br label %525

525:                                              ; preds = %524
  %526 = load i32, ptr @test_count, align 4, !tbaa !5
  %527 = add nsw i32 %526, 1
  store i32 %527, ptr @test_count, align 4, !tbaa !5
  %528 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %528, ptr %11, align 8, !tbaa !9
  %529 = icmp eq ptr %528, null
  br i1 %529, label %530, label %583

530:                                              ; preds = %525
  br label %531

531:                                              ; preds = %530
  br label %532

532:                                              ; preds = %531
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #13
  %533 = call ptr @__errno_location() #14
  %534 = load i32, ptr %533, align 4, !tbaa !5
  store i32 %534, ptr %12, align 4, !tbaa !5
  %535 = load ptr, ptr @stderr, align 8, !tbaa !9
  %536 = call i32 @s2n_print_stacktrace(ptr noundef %535)
  %537 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %538 = trunc i8 %537 to i1
  br i1 %538, label %539, label %561

539:                                              ; preds = %532
  %540 = load ptr, ptr @stderr, align 8, !tbaa !9
  %541 = call i32 @fileno(ptr noundef %540) #13
  %542 = call i32 @isatty(i32 noundef %541) #13
  %543 = icmp ne i32 %542, 0
  br i1 %543, label %544, label %561

544:                                              ; preds = %539
  %545 = load i32, ptr %12, align 4, !tbaa !5
  %546 = call ptr @__errno_location() #14
  store i32 %545, ptr %546, align 4, !tbaa !5
  %547 = load ptr, ptr @stderr, align 8, !tbaa !9
  %548 = load i32, ptr @test_count, align 4, !tbaa !5
  %549 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %550 = load i32, ptr %549, align 4, !tbaa !5
  %551 = call ptr @s2n_strerror(i32 noundef %550, ptr noundef @.str.60)
  %552 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %553 = load i32, ptr %552, align 4, !tbaa !5
  %554 = call ptr @s2n_strerror_debug(i32 noundef %553, ptr noundef @.str.60)
  %555 = call ptr @__errno_location() #14
  %556 = load i32, ptr %555, align 4, !tbaa !5
  %557 = call ptr @strerror(i32 noundef %556) #13
  %558 = call ptr @__errno_location() #14
  %559 = load i32, ptr %558, align 4, !tbaa !5
  %560 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %547, ptr noundef @.str.58, i32 noundef %548, ptr noundef @.str.70, ptr noundef @.str.57, i32 noundef 55, ptr noundef %551, ptr noundef %554, ptr noundef %557, i32 noundef %559) #13
  br label %578

561:                                              ; preds = %539, %532
  %562 = load i32, ptr %12, align 4, !tbaa !5
  %563 = call ptr @__errno_location() #14
  store i32 %562, ptr %563, align 4, !tbaa !5
  %564 = load ptr, ptr @stderr, align 8, !tbaa !9
  %565 = load i32, ptr @test_count, align 4, !tbaa !5
  %566 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %567 = load i32, ptr %566, align 4, !tbaa !5
  %568 = call ptr @s2n_strerror(i32 noundef %567, ptr noundef @.str.60)
  %569 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %570 = load i32, ptr %569, align 4, !tbaa !5
  %571 = call ptr @s2n_strerror_debug(i32 noundef %570, ptr noundef @.str.60)
  %572 = call ptr @__errno_location() #14
  %573 = load i32, ptr %572, align 4, !tbaa !5
  %574 = call ptr @strerror(i32 noundef %573) #13
  %575 = call ptr @__errno_location() #14
  %576 = load i32, ptr %575, align 4, !tbaa !5
  %577 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %564, ptr noundef @.str.61, i32 noundef %565, ptr noundef @.str.70, ptr noundef @.str.57, i32 noundef 55, ptr noundef %568, ptr noundef %571, ptr noundef %574, i32 noundef %576) #13
  br label %578

578:                                              ; preds = %561, %544
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #13
  br label %579

579:                                              ; preds = %578
  br label %580

580:                                              ; preds = %579
  call void @exit(i32 noundef 1) #15
  unreachable

581:                                              ; No predecessors!
  br label %582

582:                                              ; preds = %581
  br label %583

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

584:                                              ; preds = %583
  br label %585

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

586:                                              ; preds = %585
  %587 = load i32, ptr @test_count, align 4, !tbaa !5
  %588 = add nsw i32 %587, 1
  store i32 %588, ptr @test_count, align 4, !tbaa !5
  %589 = load ptr, ptr %11, align 8, !tbaa !9
  %590 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef %589, ptr noundef %13)
  %591 = icmp eq i32 %590, -1
  br i1 %591, label %592, label %645

592:                                              ; preds = %586
  br label %593

593:                                              ; preds = %592
  br label %594

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

601:                                              ; preds = %594
  %602 = load ptr, ptr @stderr, align 8, !tbaa !9
  %603 = call i32 @fileno(ptr noundef %602) #13
  %604 = call i32 @isatty(i32 noundef %603) #13
  %605 = icmp ne i32 %604, 0
  br i1 %605, label %606, label %623

606:                                              ; preds = %601
  %607 = load i32, ptr %14, align 4, !tbaa !5
  %608 = call ptr @__errno_location() #14
  store i32 %607, ptr %608, align 4, !tbaa !5
  %609 = load ptr, ptr @stderr, align 8, !tbaa !9
  %610 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %612, ptr noundef @.str.60)
  %614 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %615 = load i32, ptr %614, align 4, !tbaa !5
  %616 = call ptr @s2n_strerror_debug(i32 noundef %615, ptr noundef @.str.60)
  %617 = call ptr @__errno_location() #14
  %618 = load i32, ptr %617, align 4, !tbaa !5
  %619 = call ptr @strerror(i32 noundef %618) #13
  %620 = call ptr @__errno_location() #14
  %621 = load i32, ptr %620, align 4, !tbaa !5
  %622 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %609, ptr noundef @.str.58, i32 noundef %610, ptr noundef @.str.71, ptr noundef @.str.57, i32 noundef 58, ptr noundef %613, ptr noundef %616, ptr noundef %619, i32 noundef %621) #13
  br label %640

623:                                              ; preds = %601, %594
  %624 = load i32, ptr %14, align 4, !tbaa !5
  %625 = call ptr @__errno_location() #14
  store i32 %624, ptr %625, align 4, !tbaa !5
  %626 = load ptr, ptr @stderr, align 8, !tbaa !9
  %627 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %629, ptr noundef @.str.60)
  %631 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %632 = load i32, ptr %631, align 4, !tbaa !5
  %633 = call ptr @s2n_strerror_debug(i32 noundef %632, ptr noundef @.str.60)
  %634 = call ptr @__errno_location() #14
  %635 = load i32, ptr %634, align 4, !tbaa !5
  %636 = call ptr @strerror(i32 noundef %635) #13
  %637 = call ptr @__errno_location() #14
  %638 = load i32, ptr %637, align 4, !tbaa !5
  %639 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %626, ptr noundef @.str.61, i32 noundef %627, ptr noundef @.str.71, ptr noundef @.str.57, i32 noundef 58, ptr noundef %630, ptr noundef %633, ptr noundef %636, i32 noundef %638) #13
  br label %640

640:                                              ; preds = %623, %606
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #13
  br label %641

641:                                              ; preds = %640
  br label %642

642:                                              ; preds = %641
  call void @exit(i32 noundef 1) #15
  unreachable

643:                                              ; No predecessors!
  br label %644

644:                                              ; preds = %643
  br label %645

645:                                              ; preds = %644, %586
  br label %646

646:                                              ; preds = %645
  br label %647

647:                                              ; preds = %646
  br label %648

648:                                              ; preds = %647
  %649 = load i32, ptr @test_count, align 4, !tbaa !5
  %650 = add nsw i32 %649, 1
  store i32 %650, ptr @test_count, align 4, !tbaa !5
  %651 = load ptr, ptr %13, align 8, !tbaa !9
  %652 = icmp eq ptr %651, null
  br i1 %652, label %653, label %706

653:                                              ; preds = %648
  br label %654

654:                                              ; preds = %653
  br label %655

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

662:                                              ; preds = %655
  %663 = load ptr, ptr @stderr, align 8, !tbaa !9
  %664 = call i32 @fileno(ptr noundef %663) #13
  %665 = call i32 @isatty(i32 noundef %664) #13
  %666 = icmp ne i32 %665, 0
  br i1 %666, label %667, label %684

667:                                              ; preds = %662
  %668 = load i32, ptr %15, align 4, !tbaa !5
  %669 = call ptr @__errno_location() #14
  store i32 %668, ptr %669, align 4, !tbaa !5
  %670 = load ptr, ptr @stderr, align 8, !tbaa !9
  %671 = load i32, ptr @test_count, align 4, !tbaa !5
  %672 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %673 = load i32, ptr %672, align 4, !tbaa !5
  %674 = call ptr @s2n_strerror(i32 noundef %673, ptr noundef @.str.60)
  %675 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %676 = load i32, ptr %675, align 4, !tbaa !5
  %677 = call ptr @s2n_strerror_debug(i32 noundef %676, ptr noundef @.str.60)
  %678 = call ptr @__errno_location() #14
  %679 = load i32, ptr %678, align 4, !tbaa !5
  %680 = call ptr @strerror(i32 noundef %679) #13
  %681 = call ptr @__errno_location() #14
  %682 = load i32, ptr %681, align 4, !tbaa !5
  %683 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %670, ptr noundef @.str.58, i32 noundef %671, ptr noundef @.str.72, ptr noundef @.str.57, i32 noundef 59, ptr noundef %674, ptr noundef %677, ptr noundef %680, i32 noundef %682) #13
  br label %701

684:                                              ; preds = %662, %655
  %685 = load i32, ptr %15, align 4, !tbaa !5
  %686 = call ptr @__errno_location() #14
  store i32 %685, ptr %686, align 4, !tbaa !5
  %687 = load ptr, ptr @stderr, align 8, !tbaa !9
  %688 = load i32, ptr @test_count, align 4, !tbaa !5
  %689 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %690 = load i32, ptr %689, align 4, !tbaa !5
  %691 = call ptr @s2n_strerror(i32 noundef %690, ptr noundef @.str.60)
  %692 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %693 = load i32, ptr %692, align 4, !tbaa !5
  %694 = call ptr @s2n_strerror_debug(i32 noundef %693, ptr noundef @.str.60)
  %695 = call ptr @__errno_location() #14
  %696 = load i32, ptr %695, align 4, !tbaa !5
  %697 = call ptr @strerror(i32 noundef %696) #13
  %698 = call ptr @__errno_location() #14
  %699 = load i32, ptr %698, align 4, !tbaa !5
  %700 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %687, ptr noundef @.str.61, i32 noundef %688, ptr noundef @.str.72, ptr noundef @.str.57, i32 noundef 59, ptr noundef %691, ptr noundef %694, ptr noundef %697, i32 noundef %699) #13
  br label %701

701:                                              ; preds = %684, %667
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #13
  br label %702

702:                                              ; preds = %701
  br label %703

703:                                              ; preds = %702
  call void @exit(i32 noundef 1) #15
  unreachable

704:                                              ; No predecessors!
  br label %705

705:                                              ; preds = %704
  br label %706

706:                                              ; preds = %705, %648
  br label %707

707:                                              ; preds = %706
  br label %708

708:                                              ; preds = %707
  %709 = load ptr, ptr %11, align 8, !tbaa !9
  %710 = getelementptr inbounds %struct.s2n_connection, ptr %709, i32 0, i32 27
  %711 = load ptr, ptr %710, align 8, !tbaa !15
  %712 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %711, i32 0, i32 0
  store ptr @s2n_tls13_aes_128_gcm_sha256, ptr %712, align 8, !tbaa !42
  %713 = load ptr, ptr %13, align 8, !tbaa !9
  %714 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %713, i32 0, i32 1
  %715 = load ptr, ptr %714, align 8, !tbaa !47
  %716 = getelementptr inbounds ptr, ptr %715, i64 0
  %717 = load ptr, ptr %716, align 8, !tbaa !9
  %718 = load ptr, ptr %11, align 8, !tbaa !9
  %719 = getelementptr inbounds %struct.s2n_connection, ptr %718, i32 0, i32 31
  %720 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %719, i32 0, i32 1
  %721 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %720, i32 0, i32 0
  store ptr %717, ptr %721, align 8, !tbaa !49
  br label %722

722:                                              ; preds = %708
  %723 = load i32, ptr @test_count, align 4, !tbaa !5
  %724 = add nsw i32 %723, 1
  store i32 %724, ptr @test_count, align 4, !tbaa !5
  %725 = load ptr, ptr %11, align 8, !tbaa !9
  %726 = getelementptr inbounds %struct.s2n_connection, ptr %725, i32 0, i32 31
  %727 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %726, i32 0, i32 1
  %728 = call i32 @s2n_ecc_evp_generate_ephemeral_key(ptr noundef %727)
  %729 = icmp eq i32 %728, -1
  br i1 %729, label %730, label %783

730:                                              ; preds = %722
  br label %731

731:                                              ; preds = %730
  br label %732

732:                                              ; preds = %731
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #13
  %733 = call ptr @__errno_location() #14
  %734 = load i32, ptr %733, align 4, !tbaa !5
  store i32 %734, ptr %16, align 4, !tbaa !5
  %735 = load ptr, ptr @stderr, align 8, !tbaa !9
  %736 = call i32 @s2n_print_stacktrace(ptr noundef %735)
  %737 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %738 = trunc i8 %737 to i1
  br i1 %738, label %739, label %761

739:                                              ; preds = %732
  %740 = load ptr, ptr @stderr, align 8, !tbaa !9
  %741 = call i32 @fileno(ptr noundef %740) #13
  %742 = call i32 @isatty(i32 noundef %741) #13
  %743 = icmp ne i32 %742, 0
  br i1 %743, label %744, label %761

744:                                              ; preds = %739
  %745 = load i32, ptr %16, align 4, !tbaa !5
  %746 = call ptr @__errno_location() #14
  store i32 %745, ptr %746, align 4, !tbaa !5
  %747 = load ptr, ptr @stderr, align 8, !tbaa !9
  %748 = load i32, ptr @test_count, align 4, !tbaa !5
  %749 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %750 = load i32, ptr %749, align 4, !tbaa !5
  %751 = call ptr @s2n_strerror(i32 noundef %750, ptr noundef @.str.60)
  %752 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %753 = load i32, ptr %752, align 4, !tbaa !5
  %754 = call ptr @s2n_strerror_debug(i32 noundef %753, ptr noundef @.str.60)
  %755 = call ptr @__errno_location() #14
  %756 = load i32, ptr %755, align 4, !tbaa !5
  %757 = call ptr @strerror(i32 noundef %756) #13
  %758 = call ptr @__errno_location() #14
  %759 = load i32, ptr %758, align 4, !tbaa !5
  %760 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %747, ptr noundef @.str.58, i32 noundef %748, ptr noundef @.str.73, ptr noundef @.str.57, i32 noundef 63, ptr noundef %751, ptr noundef %754, ptr noundef %757, i32 noundef %759) #13
  br label %778

761:                                              ; preds = %739, %732
  %762 = load i32, ptr %16, align 4, !tbaa !5
  %763 = call ptr @__errno_location() #14
  store i32 %762, ptr %763, align 4, !tbaa !5
  %764 = load ptr, ptr @stderr, align 8, !tbaa !9
  %765 = load i32, ptr @test_count, align 4, !tbaa !5
  %766 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %767 = load i32, ptr %766, align 4, !tbaa !5
  %768 = call ptr @s2n_strerror(i32 noundef %767, ptr noundef @.str.60)
  %769 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %770 = load i32, ptr %769, align 4, !tbaa !5
  %771 = call ptr @s2n_strerror_debug(i32 noundef %770, ptr noundef @.str.60)
  %772 = call ptr @__errno_location() #14
  %773 = load i32, ptr %772, align 4, !tbaa !5
  %774 = call ptr @strerror(i32 noundef %773) #13
  %775 = call ptr @__errno_location() #14
  %776 = load i32, ptr %775, align 4, !tbaa !5
  %777 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %764, ptr noundef @.str.61, i32 noundef %765, ptr noundef @.str.73, ptr noundef @.str.57, i32 noundef 63, ptr noundef %768, ptr noundef %771, ptr noundef %774, i32 noundef %776) #13
  br label %778

778:                                              ; preds = %761, %744
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #13
  br label %779

779:                                              ; preds = %778
  br label %780

780:                                              ; preds = %779
  call void @exit(i32 noundef 1) #15
  unreachable

781:                                              ; No predecessors!
  br label %782

782:                                              ; preds = %781
  br label %783

783:                                              ; preds = %782, %722
  br label %784

784:                                              ; preds = %783
  br label %785

785:                                              ; preds = %784
  %786 = load ptr, ptr %13, align 8, !tbaa !9
  %787 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %786, i32 0, i32 1
  %788 = load ptr, ptr %787, align 8, !tbaa !47
  %789 = getelementptr inbounds ptr, ptr %788, i64 0
  %790 = load ptr, ptr %789, align 8, !tbaa !9
  %791 = load ptr, ptr %11, align 8, !tbaa !9
  %792 = getelementptr inbounds %struct.s2n_connection, ptr %791, i32 0, i32 31
  %793 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %792, i32 0, i32 3
  %794 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %793, i32 0, i32 0
  store ptr %790, ptr %794, align 8, !tbaa !50
  br label %795

795:                                              ; preds = %785
  %796 = load i32, ptr @test_count, align 4, !tbaa !5
  %797 = add nsw i32 %796, 1
  store i32 %797, ptr @test_count, align 4, !tbaa !5
  %798 = load ptr, ptr %11, align 8, !tbaa !9
  %799 = getelementptr inbounds %struct.s2n_connection, ptr %798, i32 0, i32 31
  %800 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %799, i32 0, i32 3
  %801 = call i32 @s2n_ecc_evp_generate_ephemeral_key(ptr noundef %800)
  %802 = icmp eq i32 %801, -1
  br i1 %802, label %803, label %856

803:                                              ; preds = %795
  br label %804

804:                                              ; preds = %803
  br label %805

805:                                              ; preds = %804
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #13
  %806 = call ptr @__errno_location() #14
  %807 = load i32, ptr %806, align 4, !tbaa !5
  store i32 %807, ptr %17, align 4, !tbaa !5
  %808 = load ptr, ptr @stderr, align 8, !tbaa !9
  %809 = call i32 @s2n_print_stacktrace(ptr noundef %808)
  %810 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %811 = trunc i8 %810 to i1
  br i1 %811, label %812, label %834

812:                                              ; preds = %805
  %813 = load ptr, ptr @stderr, align 8, !tbaa !9
  %814 = call i32 @fileno(ptr noundef %813) #13
  %815 = call i32 @isatty(i32 noundef %814) #13
  %816 = icmp ne i32 %815, 0
  br i1 %816, label %817, label %834

817:                                              ; preds = %812
  %818 = load i32, ptr %17, align 4, !tbaa !5
  %819 = call ptr @__errno_location() #14
  store i32 %818, ptr %819, align 4, !tbaa !5
  %820 = load ptr, ptr @stderr, align 8, !tbaa !9
  %821 = load i32, ptr @test_count, align 4, !tbaa !5
  %822 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %823 = load i32, ptr %822, align 4, !tbaa !5
  %824 = call ptr @s2n_strerror(i32 noundef %823, ptr noundef @.str.60)
  %825 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %826 = load i32, ptr %825, align 4, !tbaa !5
  %827 = call ptr @s2n_strerror_debug(i32 noundef %826, ptr noundef @.str.60)
  %828 = call ptr @__errno_location() #14
  %829 = load i32, ptr %828, align 4, !tbaa !5
  %830 = call ptr @strerror(i32 noundef %829) #13
  %831 = call ptr @__errno_location() #14
  %832 = load i32, ptr %831, align 4, !tbaa !5
  %833 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %820, ptr noundef @.str.58, i32 noundef %821, ptr noundef @.str.74, ptr noundef @.str.57, i32 noundef 65, ptr noundef %824, ptr noundef %827, ptr noundef %830, i32 noundef %832) #13
  br label %851

834:                                              ; preds = %812, %805
  %835 = load i32, ptr %17, align 4, !tbaa !5
  %836 = call ptr @__errno_location() #14
  store i32 %835, ptr %836, align 4, !tbaa !5
  %837 = load ptr, ptr @stderr, align 8, !tbaa !9
  %838 = load i32, ptr @test_count, align 4, !tbaa !5
  %839 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %840 = load i32, ptr %839, align 4, !tbaa !5
  %841 = call ptr @s2n_strerror(i32 noundef %840, ptr noundef @.str.60)
  %842 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %843 = load i32, ptr %842, align 4, !tbaa !5
  %844 = call ptr @s2n_strerror_debug(i32 noundef %843, ptr noundef @.str.60)
  %845 = call ptr @__errno_location() #14
  %846 = load i32, ptr %845, align 4, !tbaa !5
  %847 = call ptr @strerror(i32 noundef %846) #13
  %848 = call ptr @__errno_location() #14
  %849 = load i32, ptr %848, align 4, !tbaa !5
  %850 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %837, ptr noundef @.str.61, i32 noundef %838, ptr noundef @.str.74, ptr noundef @.str.57, i32 noundef 65, ptr noundef %841, ptr noundef %844, ptr noundef %847, i32 noundef %849) #13
  br label %851

851:                                              ; preds = %834, %817
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #13
  br label %852

852:                                              ; preds = %851
  br label %853

853:                                              ; preds = %852
  call void @exit(i32 noundef 1) #15
  unreachable

854:                                              ; No predecessors!
  br label %855

855:                                              ; preds = %854
  br label %856

856:                                              ; preds = %855, %795
  br label %857

857:                                              ; preds = %856
  br label %858

858:                                              ; preds = %857
  call void @llvm.lifetime.start.p0(i64 19, ptr %18) #13
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %18, ptr align 16 @__const.main.psk_data, i64 19, i1 false)
  call void @llvm.lifetime.start.p0(i64 17, ptr %19) #13
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %19, ptr align 16 @__const.main.secret_data, i64 17, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #13
  store i64 0, ptr %20, align 8, !tbaa !51
  br label %859

859:                                              ; preds = %1378, %858
  %860 = load i64, ptr %20, align 8, !tbaa !51
  %861 = icmp ult i64 %860, 10
  br i1 %861, label %863, label %862

862:                                              ; preds = %859
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #13
  br label %1381

863:                                              ; preds = %859
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #13
  store ptr null, ptr %21, align 8, !tbaa !9
  br label %864

864:                                              ; preds = %863
  %865 = load i32, ptr @test_count, align 4, !tbaa !5
  %866 = add nsw i32 %865, 1
  store i32 %866, ptr @test_count, align 4, !tbaa !5
  %867 = load ptr, ptr %11, align 8, !tbaa !9
  %868 = getelementptr inbounds %struct.s2n_connection, ptr %867, i32 0, i32 33
  %869 = getelementptr inbounds %struct.s2n_psk_parameters, ptr %868, i32 0, i32 1
  %870 = call i32 @s2n_array_pushback(ptr noundef %869, ptr noundef %21)
  %871 = getelementptr inbounds %struct.s2n_result, ptr %22, i32 0, i32 0
  store i32 %870, ptr %871, align 4
  %872 = getelementptr inbounds %struct.s2n_result, ptr %22, i32 0, i32 0
  %873 = load i32, ptr %872, align 4
  %874 = call zeroext i1 @s2n_result_is_ok(i32 %873)
  br i1 %874, label %928, label %875

875:                                              ; preds = %864
  br label %876

876:                                              ; preds = %875
  br label %877

877:                                              ; preds = %876
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #13
  %878 = call ptr @__errno_location() #14
  %879 = load i32, ptr %878, align 4, !tbaa !5
  store i32 %879, ptr %23, align 4, !tbaa !5
  %880 = load ptr, ptr @stderr, align 8, !tbaa !9
  %881 = call i32 @s2n_print_stacktrace(ptr noundef %880)
  %882 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %883 = trunc i8 %882 to i1
  br i1 %883, label %884, label %906

884:                                              ; preds = %877
  %885 = load ptr, ptr @stderr, align 8, !tbaa !9
  %886 = call i32 @fileno(ptr noundef %885) #13
  %887 = call i32 @isatty(i32 noundef %886) #13
  %888 = icmp ne i32 %887, 0
  br i1 %888, label %889, label %906

889:                                              ; preds = %884
  %890 = load i32, ptr %23, align 4, !tbaa !5
  %891 = call ptr @__errno_location() #14
  store i32 %890, ptr %891, align 4, !tbaa !5
  %892 = load ptr, ptr @stderr, align 8, !tbaa !9
  %893 = load i32, ptr @test_count, align 4, !tbaa !5
  %894 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %895 = load i32, ptr %894, align 4, !tbaa !5
  %896 = call ptr @s2n_strerror(i32 noundef %895, ptr noundef @.str.60)
  %897 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %898 = load i32, ptr %897, align 4, !tbaa !5
  %899 = call ptr @s2n_strerror_debug(i32 noundef %898, ptr noundef @.str.60)
  %900 = call ptr @__errno_location() #14
  %901 = load i32, ptr %900, align 4, !tbaa !5
  %902 = call ptr @strerror(i32 noundef %901) #13
  %903 = call ptr @__errno_location() #14
  %904 = load i32, ptr %903, align 4, !tbaa !5
  %905 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %892, ptr noundef @.str.58, i32 noundef %893, ptr noundef @.str.75, ptr noundef @.str.57, i32 noundef 71, ptr noundef %896, ptr noundef %899, ptr noundef %902, i32 noundef %904) #13
  br label %923

906:                                              ; preds = %884, %877
  %907 = load i32, ptr %23, align 4, !tbaa !5
  %908 = call ptr @__errno_location() #14
  store i32 %907, ptr %908, align 4, !tbaa !5
  %909 = load ptr, ptr @stderr, align 8, !tbaa !9
  %910 = load i32, ptr @test_count, align 4, !tbaa !5
  %911 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %912 = load i32, ptr %911, align 4, !tbaa !5
  %913 = call ptr @s2n_strerror(i32 noundef %912, ptr noundef @.str.60)
  %914 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %915 = load i32, ptr %914, align 4, !tbaa !5
  %916 = call ptr @s2n_strerror_debug(i32 noundef %915, ptr noundef @.str.60)
  %917 = call ptr @__errno_location() #14
  %918 = load i32, ptr %917, align 4, !tbaa !5
  %919 = call ptr @strerror(i32 noundef %918) #13
  %920 = call ptr @__errno_location() #14
  %921 = load i32, ptr %920, align 4, !tbaa !5
  %922 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %909, ptr noundef @.str.61, i32 noundef %910, ptr noundef @.str.75, ptr noundef @.str.57, i32 noundef 71, ptr noundef %913, ptr noundef %916, ptr noundef %919, i32 noundef %921) #13
  br label %923

923:                                              ; preds = %906, %889
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #13
  br label %924

924:                                              ; preds = %923
  br label %925

925:                                              ; preds = %924
  call void @exit(i32 noundef 1) #15
  unreachable

926:                                              ; No predecessors!
  br label %927

927:                                              ; preds = %926
  br label %928

928:                                              ; preds = %927, %864
  br label %929

929:                                              ; preds = %928
  br label %930

930:                                              ; preds = %929
  br label %931

931:                                              ; preds = %930
  %932 = load i32, ptr @test_count, align 4, !tbaa !5
  %933 = add nsw i32 %932, 1
  store i32 %933, ptr @test_count, align 4, !tbaa !5
  %934 = load ptr, ptr %21, align 8, !tbaa !9
  %935 = call i32 @s2n_psk_init(ptr noundef %934, i32 noundef 1)
  %936 = getelementptr inbounds %struct.s2n_result, ptr %24, i32 0, i32 0
  store i32 %935, ptr %936, align 4
  %937 = getelementptr inbounds %struct.s2n_result, ptr %24, i32 0, i32 0
  %938 = load i32, ptr %937, align 4
  %939 = call zeroext i1 @s2n_result_is_ok(i32 %938)
  br i1 %939, label %993, label %940

940:                                              ; preds = %931
  br label %941

941:                                              ; preds = %940
  br label %942

942:                                              ; preds = %941
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #13
  %943 = call ptr @__errno_location() #14
  %944 = load i32, ptr %943, align 4, !tbaa !5
  store i32 %944, ptr %25, align 4, !tbaa !5
  %945 = load ptr, ptr @stderr, align 8, !tbaa !9
  %946 = call i32 @s2n_print_stacktrace(ptr noundef %945)
  %947 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %948 = trunc i8 %947 to i1
  br i1 %948, label %949, label %971

949:                                              ; preds = %942
  %950 = load ptr, ptr @stderr, align 8, !tbaa !9
  %951 = call i32 @fileno(ptr noundef %950) #13
  %952 = call i32 @isatty(i32 noundef %951) #13
  %953 = icmp ne i32 %952, 0
  br i1 %953, label %954, label %971

954:                                              ; preds = %949
  %955 = load i32, ptr %25, align 4, !tbaa !5
  %956 = call ptr @__errno_location() #14
  store i32 %955, ptr %956, align 4, !tbaa !5
  %957 = load ptr, ptr @stderr, align 8, !tbaa !9
  %958 = load i32, ptr @test_count, align 4, !tbaa !5
  %959 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %960 = load i32, ptr %959, align 4, !tbaa !5
  %961 = call ptr @s2n_strerror(i32 noundef %960, ptr noundef @.str.60)
  %962 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %963 = load i32, ptr %962, align 4, !tbaa !5
  %964 = call ptr @s2n_strerror_debug(i32 noundef %963, ptr noundef @.str.60)
  %965 = call ptr @__errno_location() #14
  %966 = load i32, ptr %965, align 4, !tbaa !5
  %967 = call ptr @strerror(i32 noundef %966) #13
  %968 = call ptr @__errno_location() #14
  %969 = load i32, ptr %968, align 4, !tbaa !5
  %970 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %957, ptr noundef @.str.58, i32 noundef %958, ptr noundef @.str.76, ptr noundef @.str.57, i32 noundef 72, ptr noundef %961, ptr noundef %964, ptr noundef %967, i32 noundef %969) #13
  br label %988

971:                                              ; preds = %949, %942
  %972 = load i32, ptr %25, align 4, !tbaa !5
  %973 = call ptr @__errno_location() #14
  store i32 %972, ptr %973, align 4, !tbaa !5
  %974 = load ptr, ptr @stderr, align 8, !tbaa !9
  %975 = load i32, ptr @test_count, align 4, !tbaa !5
  %976 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %977 = load i32, ptr %976, align 4, !tbaa !5
  %978 = call ptr @s2n_strerror(i32 noundef %977, ptr noundef @.str.60)
  %979 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %980 = load i32, ptr %979, align 4, !tbaa !5
  %981 = call ptr @s2n_strerror_debug(i32 noundef %980, ptr noundef @.str.60)
  %982 = call ptr @__errno_location() #14
  %983 = load i32, ptr %982, align 4, !tbaa !5
  %984 = call ptr @strerror(i32 noundef %983) #13
  %985 = call ptr @__errno_location() #14
  %986 = load i32, ptr %985, align 4, !tbaa !5
  %987 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %974, ptr noundef @.str.61, i32 noundef %975, ptr noundef @.str.76, ptr noundef @.str.57, i32 noundef 72, ptr noundef %978, ptr noundef %981, ptr noundef %984, i32 noundef %986) #13
  br label %988

988:                                              ; preds = %971, %954
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #13
  br label %989

989:                                              ; preds = %988
  br label %990

990:                                              ; preds = %989
  call void @exit(i32 noundef 1) #15
  unreachable

991:                                              ; No predecessors!
  br label %992

992:                                              ; preds = %991
  br label %993

993:                                              ; preds = %992, %931
  br label %994

994:                                              ; preds = %993
  br label %995

995:                                              ; preds = %994
  br label %996

996:                                              ; preds = %995
  %997 = load i32, ptr @test_count, align 4, !tbaa !5
  %998 = add nsw i32 %997, 1
  store i32 %998, ptr @test_count, align 4, !tbaa !5
  %999 = load ptr, ptr %21, align 8, !tbaa !9
  %1000 = getelementptr inbounds [19 x i8], ptr %18, i64 0, i64 0
  %1001 = call i32 @s2n_psk_set_identity(ptr noundef %999, ptr noundef %1000, i16 noundef zeroext 19)
  %1002 = icmp eq i32 %1001, -1
  br i1 %1002, label %1003, label %1056

1003:                                             ; preds = %996
  br label %1004

1004:                                             ; preds = %1003
  br label %1005

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

1012:                                             ; preds = %1005
  %1013 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1014 = call i32 @fileno(ptr noundef %1013) #13
  %1015 = call i32 @isatty(i32 noundef %1014) #13
  %1016 = icmp ne i32 %1015, 0
  br i1 %1016, label %1017, label %1034

1017:                                             ; preds = %1012
  %1018 = load i32, ptr %26, align 4, !tbaa !5
  %1019 = call ptr @__errno_location() #14
  store i32 %1018, ptr %1019, align 4, !tbaa !5
  %1020 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1021 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %1023, ptr noundef @.str.60)
  %1025 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1026 = load i32, ptr %1025, align 4, !tbaa !5
  %1027 = call ptr @s2n_strerror_debug(i32 noundef %1026, ptr noundef @.str.60)
  %1028 = call ptr @__errno_location() #14
  %1029 = load i32, ptr %1028, align 4, !tbaa !5
  %1030 = call ptr @strerror(i32 noundef %1029) #13
  %1031 = call ptr @__errno_location() #14
  %1032 = load i32, ptr %1031, align 4, !tbaa !5
  %1033 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1020, ptr noundef @.str.58, i32 noundef %1021, ptr noundef @.str.77, ptr noundef @.str.57, i32 noundef 73, ptr noundef %1024, ptr noundef %1027, ptr noundef %1030, i32 noundef %1032) #13
  br label %1051

1034:                                             ; preds = %1012, %1005
  %1035 = load i32, ptr %26, align 4, !tbaa !5
  %1036 = call ptr @__errno_location() #14
  store i32 %1035, ptr %1036, align 4, !tbaa !5
  %1037 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1038 = load i32, ptr @test_count, align 4, !tbaa !5
  %1039 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1040 = load i32, ptr %1039, align 4, !tbaa !5
  %1041 = call ptr @s2n_strerror(i32 noundef %1040, ptr noundef @.str.60)
  %1042 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1043 = load i32, ptr %1042, align 4, !tbaa !5
  %1044 = call ptr @s2n_strerror_debug(i32 noundef %1043, ptr noundef @.str.60)
  %1045 = call ptr @__errno_location() #14
  %1046 = load i32, ptr %1045, align 4, !tbaa !5
  %1047 = call ptr @strerror(i32 noundef %1046) #13
  %1048 = call ptr @__errno_location() #14
  %1049 = load i32, ptr %1048, align 4, !tbaa !5
  %1050 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1037, ptr noundef @.str.61, i32 noundef %1038, ptr noundef @.str.77, ptr noundef @.str.57, i32 noundef 73, ptr noundef %1041, ptr noundef %1044, ptr noundef %1047, i32 noundef %1049) #13
  br label %1051

1051:                                             ; preds = %1034, %1017
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #13
  br label %1052

1052:                                             ; preds = %1051
  br label %1053

1053:                                             ; preds = %1052
  call void @exit(i32 noundef 1) #15
  unreachable

1054:                                             ; No predecessors!
  br label %1055

1055:                                             ; preds = %1054
  br label %1056

1056:                                             ; preds = %1055, %996
  br label %1057

1057:                                             ; preds = %1056
  br label %1058

1058:                                             ; preds = %1057
  br label %1059

1059:                                             ; preds = %1058
  %1060 = load i32, ptr @test_count, align 4, !tbaa !5
  %1061 = add nsw i32 %1060, 1
  store i32 %1061, ptr @test_count, align 4, !tbaa !5
  %1062 = load ptr, ptr %21, align 8, !tbaa !9
  %1063 = getelementptr inbounds %struct.s2n_psk, ptr %1062, i32 0, i32 1
  %1064 = getelementptr inbounds %struct.s2n_blob, ptr %1063, i32 0, i32 1
  %1065 = load i32, ptr %1064, align 8, !tbaa !52
  %1066 = icmp eq i32 %1065, 0
  br i1 %1066, label %1067, label %1120

1067:                                             ; preds = %1059
  br label %1068

1068:                                             ; preds = %1067
  br label %1069

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

1076:                                             ; preds = %1069
  %1077 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1078 = call i32 @fileno(ptr noundef %1077) #13
  %1079 = call i32 @isatty(i32 noundef %1078) #13
  %1080 = icmp ne i32 %1079, 0
  br i1 %1080, label %1081, label %1098

1081:                                             ; preds = %1076
  %1082 = load i32, ptr %27, align 4, !tbaa !5
  %1083 = call ptr @__errno_location() #14
  store i32 %1082, ptr %1083, align 4, !tbaa !5
  %1084 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1085 = load i32, ptr @test_count, align 4, !tbaa !5
  %1086 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1087 = load i32, ptr %1086, align 4, !tbaa !5
  %1088 = call ptr @s2n_strerror(i32 noundef %1087, ptr noundef @.str.60)
  %1089 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1090 = load i32, ptr %1089, align 4, !tbaa !5
  %1091 = call ptr @s2n_strerror_debug(i32 noundef %1090, ptr noundef @.str.60)
  %1092 = call ptr @__errno_location() #14
  %1093 = load i32, ptr %1092, align 4, !tbaa !5
  %1094 = call ptr @strerror(i32 noundef %1093) #13
  %1095 = call ptr @__errno_location() #14
  %1096 = load i32, ptr %1095, align 4, !tbaa !5
  %1097 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1084, ptr noundef @.str.58, i32 noundef %1085, ptr noundef @.str.78, ptr noundef @.str.57, i32 noundef 74, ptr noundef %1088, ptr noundef %1091, ptr noundef %1094, i32 noundef %1096) #13
  br label %1115

1098:                                             ; preds = %1076, %1069
  %1099 = load i32, ptr %27, align 4, !tbaa !5
  %1100 = call ptr @__errno_location() #14
  store i32 %1099, ptr %1100, align 4, !tbaa !5
  %1101 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1102 = load i32, ptr @test_count, align 4, !tbaa !5
  %1103 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1104 = load i32, ptr %1103, align 4, !tbaa !5
  %1105 = call ptr @s2n_strerror(i32 noundef %1104, ptr noundef @.str.60)
  %1106 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1107 = load i32, ptr %1106, align 4, !tbaa !5
  %1108 = call ptr @s2n_strerror_debug(i32 noundef %1107, ptr noundef @.str.60)
  %1109 = call ptr @__errno_location() #14
  %1110 = load i32, ptr %1109, align 4, !tbaa !5
  %1111 = call ptr @strerror(i32 noundef %1110) #13
  %1112 = call ptr @__errno_location() #14
  %1113 = load i32, ptr %1112, align 4, !tbaa !5
  %1114 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1101, ptr noundef @.str.61, i32 noundef %1102, ptr noundef @.str.78, ptr noundef @.str.57, i32 noundef 74, ptr noundef %1105, ptr noundef %1108, ptr noundef %1111, i32 noundef %1113) #13
  br label %1115

1115:                                             ; preds = %1098, %1081
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #13
  br label %1116

1116:                                             ; preds = %1115
  br label %1117

1117:                                             ; preds = %1116
  call void @exit(i32 noundef 1) #15
  unreachable

1118:                                             ; No predecessors!
  br label %1119

1119:                                             ; preds = %1118
  br label %1120

1120:                                             ; preds = %1119, %1059
  br label %1121

1121:                                             ; preds = %1120
  br label %1122

1122:                                             ; preds = %1121
  br label %1123

1123:                                             ; preds = %1122
  %1124 = load i32, ptr @test_count, align 4, !tbaa !5
  %1125 = add nsw i32 %1124, 1
  store i32 %1125, ptr @test_count, align 4, !tbaa !5
  %1126 = load ptr, ptr %21, align 8, !tbaa !9
  %1127 = getelementptr inbounds %struct.s2n_psk, ptr %1126, i32 0, i32 1
  %1128 = getelementptr inbounds %struct.s2n_blob, ptr %1127, i32 0, i32 0
  %1129 = load ptr, ptr %1128, align 8, !tbaa !55
  %1130 = icmp eq ptr %1129, null
  br i1 %1130, label %1131, label %1184

1131:                                             ; preds = %1123
  br label %1132

1132:                                             ; preds = %1131
  br label %1133

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

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

1145:                                             ; preds = %1140
  %1146 = load i32, ptr %28, align 4, !tbaa !5
  %1147 = call ptr @__errno_location() #14
  store i32 %1146, ptr %1147, align 4, !tbaa !5
  %1148 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1149 = load i32, ptr @test_count, align 4, !tbaa !5
  %1150 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1151 = load i32, ptr %1150, align 4, !tbaa !5
  %1152 = call ptr @s2n_strerror(i32 noundef %1151, ptr noundef @.str.60)
  %1153 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1154 = load i32, ptr %1153, align 4, !tbaa !5
  %1155 = call ptr @s2n_strerror_debug(i32 noundef %1154, ptr noundef @.str.60)
  %1156 = call ptr @__errno_location() #14
  %1157 = load i32, ptr %1156, align 4, !tbaa !5
  %1158 = call ptr @strerror(i32 noundef %1157) #13
  %1159 = call ptr @__errno_location() #14
  %1160 = load i32, ptr %1159, align 4, !tbaa !5
  %1161 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1148, ptr noundef @.str.58, i32 noundef %1149, ptr noundef @.str.79, ptr noundef @.str.57, i32 noundef 75, ptr noundef %1152, ptr noundef %1155, ptr noundef %1158, i32 noundef %1160) #13
  br label %1179

1162:                                             ; preds = %1140, %1133
  %1163 = load i32, ptr %28, align 4, !tbaa !5
  %1164 = call ptr @__errno_location() #14
  store i32 %1163, ptr %1164, align 4, !tbaa !5
  %1165 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1166 = load i32, ptr @test_count, align 4, !tbaa !5
  %1167 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1168 = load i32, ptr %1167, align 4, !tbaa !5
  %1169 = call ptr @s2n_strerror(i32 noundef %1168, ptr noundef @.str.60)
  %1170 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1171 = load i32, ptr %1170, align 4, !tbaa !5
  %1172 = call ptr @s2n_strerror_debug(i32 noundef %1171, ptr noundef @.str.60)
  %1173 = call ptr @__errno_location() #14
  %1174 = load i32, ptr %1173, align 4, !tbaa !5
  %1175 = call ptr @strerror(i32 noundef %1174) #13
  %1176 = call ptr @__errno_location() #14
  %1177 = load i32, ptr %1176, align 4, !tbaa !5
  %1178 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1165, ptr noundef @.str.61, i32 noundef %1166, ptr noundef @.str.79, ptr noundef @.str.57, i32 noundef 75, ptr noundef %1169, ptr noundef %1172, ptr noundef %1175, i32 noundef %1177) #13
  br label %1179

1179:                                             ; preds = %1162, %1145
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #13
  br label %1180

1180:                                             ; preds = %1179
  br label %1181

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

1182:                                             ; No predecessors!
  br label %1183

1183:                                             ; preds = %1182
  br label %1184

1184:                                             ; preds = %1183, %1123
  br label %1185

1185:                                             ; preds = %1184
  br label %1186

1186:                                             ; preds = %1185
  br label %1187

1187:                                             ; preds = %1186
  %1188 = load i32, ptr @test_count, align 4, !tbaa !5
  %1189 = add nsw i32 %1188, 1
  store i32 %1189, ptr @test_count, align 4, !tbaa !5
  %1190 = load ptr, ptr %21, align 8, !tbaa !9
  %1191 = getelementptr inbounds [17 x i8], ptr %19, i64 0, i64 0
  %1192 = call i32 @s2n_psk_set_secret(ptr noundef %1190, ptr noundef %1191, i16 noundef zeroext 17)
  %1193 = icmp eq i32 %1192, -1
  br i1 %1193, label %1194, label %1247

1194:                                             ; preds = %1187
  br label %1195

1195:                                             ; preds = %1194
  br label %1196

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

1203:                                             ; preds = %1196
  %1204 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1205 = call i32 @fileno(ptr noundef %1204) #13
  %1206 = call i32 @isatty(i32 noundef %1205) #13
  %1207 = icmp ne i32 %1206, 0
  br i1 %1207, label %1208, label %1225

1208:                                             ; preds = %1203
  %1209 = load i32, ptr %29, align 4, !tbaa !5
  %1210 = call ptr @__errno_location() #14
  store i32 %1209, ptr %1210, align 4, !tbaa !5
  %1211 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1212 = load i32, ptr @test_count, align 4, !tbaa !5
  %1213 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1214 = load i32, ptr %1213, align 4, !tbaa !5
  %1215 = call ptr @s2n_strerror(i32 noundef %1214, ptr noundef @.str.60)
  %1216 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1217 = load i32, ptr %1216, align 4, !tbaa !5
  %1218 = call ptr @s2n_strerror_debug(i32 noundef %1217, ptr noundef @.str.60)
  %1219 = call ptr @__errno_location() #14
  %1220 = load i32, ptr %1219, align 4, !tbaa !5
  %1221 = call ptr @strerror(i32 noundef %1220) #13
  %1222 = call ptr @__errno_location() #14
  %1223 = load i32, ptr %1222, align 4, !tbaa !5
  %1224 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1211, ptr noundef @.str.58, i32 noundef %1212, ptr noundef @.str.80, ptr noundef @.str.57, i32 noundef 76, ptr noundef %1215, ptr noundef %1218, ptr noundef %1221, i32 noundef %1223) #13
  br label %1242

1225:                                             ; preds = %1203, %1196
  %1226 = load i32, ptr %29, align 4, !tbaa !5
  %1227 = call ptr @__errno_location() #14
  store i32 %1226, ptr %1227, align 4, !tbaa !5
  %1228 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1229 = load i32, ptr @test_count, align 4, !tbaa !5
  %1230 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1231 = load i32, ptr %1230, align 4, !tbaa !5
  %1232 = call ptr @s2n_strerror(i32 noundef %1231, ptr noundef @.str.60)
  %1233 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1234 = load i32, ptr %1233, align 4, !tbaa !5
  %1235 = call ptr @s2n_strerror_debug(i32 noundef %1234, ptr noundef @.str.60)
  %1236 = call ptr @__errno_location() #14
  %1237 = load i32, ptr %1236, align 4, !tbaa !5
  %1238 = call ptr @strerror(i32 noundef %1237) #13
  %1239 = call ptr @__errno_location() #14
  %1240 = load i32, ptr %1239, align 4, !tbaa !5
  %1241 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1228, ptr noundef @.str.61, i32 noundef %1229, ptr noundef @.str.80, ptr noundef @.str.57, i32 noundef 76, ptr noundef %1232, ptr noundef %1235, ptr noundef %1238, i32 noundef %1240) #13
  br label %1242

1242:                                             ; preds = %1225, %1208
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #13
  br label %1243

1243:                                             ; preds = %1242
  br label %1244

1244:                                             ; preds = %1243
  call void @exit(i32 noundef 1) #15
  unreachable

1245:                                             ; No predecessors!
  br label %1246

1246:                                             ; preds = %1245
  br label %1247

1247:                                             ; preds = %1246, %1187
  br label %1248

1248:                                             ; preds = %1247
  br label %1249

1249:                                             ; preds = %1248
  br label %1250

1250:                                             ; preds = %1249
  %1251 = load i32, ptr @test_count, align 4, !tbaa !5
  %1252 = add nsw i32 %1251, 1
  store i32 %1252, ptr @test_count, align 4, !tbaa !5
  %1253 = load ptr, ptr %21, align 8, !tbaa !9
  %1254 = getelementptr inbounds %struct.s2n_psk, ptr %1253, i32 0, i32 2
  %1255 = getelementptr inbounds %struct.s2n_blob, ptr %1254, i32 0, i32 1
  %1256 = load i32, ptr %1255, align 8, !tbaa !56
  %1257 = icmp eq i32 %1256, 0
  br i1 %1257, label %1258, label %1311

1258:                                             ; preds = %1250
  br label %1259

1259:                                             ; preds = %1258
  br label %1260

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

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

1272:                                             ; preds = %1267
  %1273 = load i32, ptr %30, align 4, !tbaa !5
  %1274 = call ptr @__errno_location() #14
  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.60)
  %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.60)
  %1283 = call ptr @__errno_location() #14
  %1284 = load i32, ptr %1283, align 4, !tbaa !5
  %1285 = call ptr @strerror(i32 noundef %1284) #13
  %1286 = call ptr @__errno_location() #14
  %1287 = load i32, ptr %1286, align 4, !tbaa !5
  %1288 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1275, ptr noundef @.str.58, i32 noundef %1276, ptr noundef @.str.81, ptr noundef @.str.57, i32 noundef 77, ptr noundef %1279, ptr noundef %1282, ptr noundef %1285, i32 noundef %1287) #13
  br label %1306

1289:                                             ; preds = %1267, %1260
  %1290 = load i32, ptr %30, align 4, !tbaa !5
  %1291 = call ptr @__errno_location() #14
  store i32 %1290, ptr %1291, align 4, !tbaa !5
  %1292 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1293 = load i32, ptr @test_count, align 4, !tbaa !5
  %1294 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1295 = load i32, ptr %1294, align 4, !tbaa !5
  %1296 = call ptr @s2n_strerror(i32 noundef %1295, ptr noundef @.str.60)
  %1297 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1298 = load i32, ptr %1297, align 4, !tbaa !5
  %1299 = call ptr @s2n_strerror_debug(i32 noundef %1298, ptr noundef @.str.60)
  %1300 = call ptr @__errno_location() #14
  %1301 = load i32, ptr %1300, align 4, !tbaa !5
  %1302 = call ptr @strerror(i32 noundef %1301) #13
  %1303 = call ptr @__errno_location() #14
  %1304 = load i32, ptr %1303, align 4, !tbaa !5
  %1305 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1292, ptr noundef @.str.61, i32 noundef %1293, ptr noundef @.str.81, ptr noundef @.str.57, i32 noundef 77, ptr noundef %1296, ptr noundef %1299, ptr noundef %1302, i32 noundef %1304) #13
  br label %1306

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

1307:                                             ; preds = %1306
  br label %1308

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

1309:                                             ; No predecessors!
  br label %1310

1310:                                             ; preds = %1309
  br label %1311

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

1312:                                             ; preds = %1311
  br label %1313

1313:                                             ; preds = %1312
  br label %1314

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

1322:                                             ; preds = %1314
  br label %1323

1323:                                             ; preds = %1322
  br label %1324

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

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

1336:                                             ; preds = %1331
  %1337 = load i32, ptr %31, align 4, !tbaa !5
  %1338 = call ptr @__errno_location() #14
  store i32 %1337, ptr %1338, align 4, !tbaa !5
  %1339 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1340 = load i32, ptr @test_count, align 4, !tbaa !5
  %1341 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1342 = load i32, ptr %1341, align 4, !tbaa !5
  %1343 = call ptr @s2n_strerror(i32 noundef %1342, ptr noundef @.str.60)
  %1344 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1345 = load i32, ptr %1344, align 4, !tbaa !5
  %1346 = call ptr @s2n_strerror_debug(i32 noundef %1345, ptr noundef @.str.60)
  %1347 = call ptr @__errno_location() #14
  %1348 = load i32, ptr %1347, align 4, !tbaa !5
  %1349 = call ptr @strerror(i32 noundef %1348) #13
  %1350 = call ptr @__errno_location() #14
  %1351 = load i32, ptr %1350, align 4, !tbaa !5
  %1352 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1339, ptr noundef @.str.58, i32 noundef %1340, ptr noundef @.str.82, ptr noundef @.str.57, i32 noundef 78, ptr noundef %1343, ptr noundef %1346, ptr noundef %1349, i32 noundef %1351) #13
  br label %1370

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

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

1371:                                             ; preds = %1370
  br label %1372

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

1373:                                             ; No predecessors!
  br label %1374

1374:                                             ; preds = %1373
  br label %1375

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

1376:                                             ; preds = %1375
  br label %1377

1377:                                             ; preds = %1376
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #13
  br label %1378

1378:                                             ; preds = %1377
  %1379 = load i64, ptr %20, align 8, !tbaa !51
  %1380 = add i64 %1379, 1
  store i64 %1380, ptr %20, align 8, !tbaa !51
  br label %859, !llvm.loop !58

1381:                                             ; preds = %862
  br label %1382

1382:                                             ; preds = %1381
  %1383 = load i32, ptr @test_count, align 4, !tbaa !5
  %1384 = add nsw i32 %1383, 1
  store i32 %1384, ptr @test_count, align 4, !tbaa !5
  %1385 = load ptr, ptr %11, align 8, !tbaa !9
  %1386 = getelementptr inbounds %struct.s2n_connection, ptr %1385, i32 0, i32 33
  %1387 = getelementptr inbounds %struct.s2n_psk_parameters, ptr %1386, i32 0, i32 1
  %1388 = getelementptr inbounds %struct.s2n_array, ptr %1387, i32 0, i32 0
  %1389 = getelementptr inbounds %struct.s2n_blob, ptr %1388, i32 0, i32 2
  %1390 = load i32, ptr %1389, align 4, !tbaa !60
  %1391 = icmp eq i32 %1390, 0
  br i1 %1391, label %1392, label %1445

1392:                                             ; preds = %1382
  br label %1393

1393:                                             ; preds = %1392
  br label %1394

1394:                                             ; preds = %1393
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #13
  %1395 = call ptr @__errno_location() #14
  %1396 = load i32, ptr %1395, align 4, !tbaa !5
  store i32 %1396, ptr %32, align 4, !tbaa !5
  %1397 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1398 = call i32 @s2n_print_stacktrace(ptr noundef %1397)
  %1399 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1400 = trunc i8 %1399 to i1
  br i1 %1400, label %1401, label %1423

1401:                                             ; preds = %1394
  %1402 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1403 = call i32 @fileno(ptr noundef %1402) #13
  %1404 = call i32 @isatty(i32 noundef %1403) #13
  %1405 = icmp ne i32 %1404, 0
  br i1 %1405, label %1406, label %1423

1406:                                             ; preds = %1401
  %1407 = load i32, ptr %32, align 4, !tbaa !5
  %1408 = call ptr @__errno_location() #14
  store i32 %1407, ptr %1408, align 4, !tbaa !5
  %1409 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1410 = load i32, ptr @test_count, align 4, !tbaa !5
  %1411 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1412 = load i32, ptr %1411, align 4, !tbaa !5
  %1413 = call ptr @s2n_strerror(i32 noundef %1412, ptr noundef @.str.60)
  %1414 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1415 = load i32, ptr %1414, align 4, !tbaa !5
  %1416 = call ptr @s2n_strerror_debug(i32 noundef %1415, ptr noundef @.str.60)
  %1417 = call ptr @__errno_location() #14
  %1418 = load i32, ptr %1417, align 4, !tbaa !5
  %1419 = call ptr @strerror(i32 noundef %1418) #13
  %1420 = call ptr @__errno_location() #14
  %1421 = load i32, ptr %1420, align 4, !tbaa !5
  %1422 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1409, ptr noundef @.str.58, i32 noundef %1410, ptr noundef @.str.83, ptr noundef @.str.57, i32 noundef 81, ptr noundef %1413, ptr noundef %1416, ptr noundef %1419, i32 noundef %1421) #13
  br label %1440

1423:                                             ; preds = %1401, %1394
  %1424 = load i32, ptr %32, align 4, !tbaa !5
  %1425 = call ptr @__errno_location() #14
  store i32 %1424, ptr %1425, align 4, !tbaa !5
  %1426 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1427 = load i32, ptr @test_count, align 4, !tbaa !5
  %1428 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1429 = load i32, ptr %1428, align 4, !tbaa !5
  %1430 = call ptr @s2n_strerror(i32 noundef %1429, ptr noundef @.str.60)
  %1431 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1432 = load i32, ptr %1431, align 4, !tbaa !5
  %1433 = call ptr @s2n_strerror_debug(i32 noundef %1432, ptr noundef @.str.60)
  %1434 = call ptr @__errno_location() #14
  %1435 = load i32, ptr %1434, align 4, !tbaa !5
  %1436 = call ptr @strerror(i32 noundef %1435) #13
  %1437 = call ptr @__errno_location() #14
  %1438 = load i32, ptr %1437, align 4, !tbaa !5
  %1439 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1426, ptr noundef @.str.61, i32 noundef %1427, ptr noundef @.str.83, ptr noundef @.str.57, i32 noundef 81, ptr noundef %1430, ptr noundef %1433, ptr noundef %1436, i32 noundef %1438) #13
  br label %1440

1440:                                             ; preds = %1423, %1406
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #13
  br label %1441

1441:                                             ; preds = %1440
  br label %1442

1442:                                             ; preds = %1441
  call void @exit(i32 noundef 1) #15
  unreachable

1443:                                             ; No predecessors!
  br label %1444

1444:                                             ; preds = %1443
  br label %1445

1445:                                             ; preds = %1444, %1382
  br label %1446

1446:                                             ; preds = %1445
  br label %1447

1447:                                             ; preds = %1446
  br label %1448

1448:                                             ; preds = %1447
  %1449 = load i32, ptr @test_count, align 4, !tbaa !5
  %1450 = add nsw i32 %1449, 1
  store i32 %1450, ptr @test_count, align 4, !tbaa !5
  %1451 = load ptr, ptr %11, align 8, !tbaa !9
  %1452 = getelementptr inbounds %struct.s2n_connection, ptr %1451, i32 0, i32 33
  %1453 = getelementptr inbounds %struct.s2n_psk_parameters, ptr %1452, i32 0, i32 1
  %1454 = getelementptr inbounds %struct.s2n_array, ptr %1453, i32 0, i32 1
  %1455 = load i32, ptr %1454, align 8, !tbaa !61
  %1456 = icmp eq i32 %1455, 10
  br i1 %1456, label %1510, label %1457

1457:                                             ; preds = %1448
  br label %1458

1458:                                             ; preds = %1457
  br label %1459

1459:                                             ; preds = %1458
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #13
  %1460 = call ptr @__errno_location() #14
  %1461 = load i32, ptr %1460, align 4, !tbaa !5
  store i32 %1461, ptr %33, align 4, !tbaa !5
  %1462 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1463 = call i32 @s2n_print_stacktrace(ptr noundef %1462)
  %1464 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1465 = trunc i8 %1464 to i1
  br i1 %1465, label %1466, label %1488

1466:                                             ; preds = %1459
  %1467 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1468 = call i32 @fileno(ptr noundef %1467) #13
  %1469 = call i32 @isatty(i32 noundef %1468) #13
  %1470 = icmp ne i32 %1469, 0
  br i1 %1470, label %1471, label %1488

1471:                                             ; preds = %1466
  %1472 = load i32, ptr %33, align 4, !tbaa !5
  %1473 = call ptr @__errno_location() #14
  store i32 %1472, ptr %1473, align 4, !tbaa !5
  %1474 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1475 = load i32, ptr @test_count, align 4, !tbaa !5
  %1476 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1477 = load i32, ptr %1476, align 4, !tbaa !5
  %1478 = call ptr @s2n_strerror(i32 noundef %1477, ptr noundef @.str.60)
  %1479 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1480 = load i32, ptr %1479, align 4, !tbaa !5
  %1481 = call ptr @s2n_strerror_debug(i32 noundef %1480, ptr noundef @.str.60)
  %1482 = call ptr @__errno_location() #14
  %1483 = load i32, ptr %1482, align 4, !tbaa !5
  %1484 = call ptr @strerror(i32 noundef %1483) #13
  %1485 = call ptr @__errno_location() #14
  %1486 = load i32, ptr %1485, align 4, !tbaa !5
  %1487 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1474, ptr noundef @.str.58, i32 noundef %1475, ptr noundef @.str.84, ptr noundef @.str.57, i32 noundef 82, ptr noundef %1478, ptr noundef %1481, ptr noundef %1484, i32 noundef %1486) #13
  br label %1505

1488:                                             ; preds = %1466, %1459
  %1489 = load i32, ptr %33, align 4, !tbaa !5
  %1490 = call ptr @__errno_location() #14
  store i32 %1489, ptr %1490, align 4, !tbaa !5
  %1491 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1492 = load i32, ptr @test_count, align 4, !tbaa !5
  %1493 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1494 = load i32, ptr %1493, align 4, !tbaa !5
  %1495 = call ptr @s2n_strerror(i32 noundef %1494, ptr noundef @.str.60)
  %1496 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1497 = load i32, ptr %1496, align 4, !tbaa !5
  %1498 = call ptr @s2n_strerror_debug(i32 noundef %1497, ptr noundef @.str.60)
  %1499 = call ptr @__errno_location() #14
  %1500 = load i32, ptr %1499, align 4, !tbaa !5
  %1501 = call ptr @strerror(i32 noundef %1500) #13
  %1502 = call ptr @__errno_location() #14
  %1503 = load i32, ptr %1502, align 4, !tbaa !5
  %1504 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1491, ptr noundef @.str.61, i32 noundef %1492, ptr noundef @.str.84, ptr noundef @.str.57, i32 noundef 82, ptr noundef %1495, ptr noundef %1498, ptr noundef %1501, i32 noundef %1503) #13
  br label %1505

1505:                                             ; preds = %1488, %1471
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #13
  br label %1506

1506:                                             ; preds = %1505
  br label %1507

1507:                                             ; preds = %1506
  call void @exit(i32 noundef 1) #15
  unreachable

1508:                                             ; No predecessors!
  br label %1509

1509:                                             ; preds = %1508
  br label %1510

1510:                                             ; preds = %1509, %1448
  br label %1511

1511:                                             ; preds = %1510
  br label %1512

1512:                                             ; preds = %1511
  br label %1513

1513:                                             ; preds = %1512
  %1514 = load i32, ptr @test_count, align 4, !tbaa !5
  %1515 = add nsw i32 %1514, 1
  store i32 %1515, ptr @test_count, align 4, !tbaa !5
  %1516 = load ptr, ptr %11, align 8, !tbaa !9
  %1517 = getelementptr inbounds %struct.s2n_connection, ptr %1516, i32 0, i32 33
  %1518 = getelementptr inbounds %struct.s2n_psk_parameters, ptr %1517, i32 0, i32 4
  %1519 = load ptr, ptr %1518, align 8, !tbaa !62
  %1520 = icmp eq ptr %1519, null
  br i1 %1520, label %1574, label %1521

1521:                                             ; preds = %1513
  br label %1522

1522:                                             ; preds = %1521
  br label %1523

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

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

1535:                                             ; preds = %1530
  %1536 = load i32, ptr %34, align 4, !tbaa !5
  %1537 = call ptr @__errno_location() #14
  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.60)
  %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.60)
  %1546 = call ptr @__errno_location() #14
  %1547 = load i32, ptr %1546, align 4, !tbaa !5
  %1548 = call ptr @strerror(i32 noundef %1547) #13
  %1549 = call ptr @__errno_location() #14
  %1550 = load i32, ptr %1549, align 4, !tbaa !5
  %1551 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1538, ptr noundef @.str.58, i32 noundef %1539, ptr noundef @.str.85, ptr noundef @.str.57, i32 noundef 83, ptr noundef %1542, ptr noundef %1545, ptr noundef %1548, i32 noundef %1550) #13
  br label %1569

1552:                                             ; preds = %1530, %1523
  %1553 = load i32, ptr %34, align 4, !tbaa !5
  %1554 = call ptr @__errno_location() #14
  store i32 %1553, ptr %1554, align 4, !tbaa !5
  %1555 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1556 = load i32, ptr @test_count, align 4, !tbaa !5
  %1557 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1558 = load i32, ptr %1557, align 4, !tbaa !5
  %1559 = call ptr @s2n_strerror(i32 noundef %1558, ptr noundef @.str.60)
  %1560 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1561 = load i32, ptr %1560, align 4, !tbaa !5
  %1562 = call ptr @s2n_strerror_debug(i32 noundef %1561, ptr noundef @.str.60)
  %1563 = call ptr @__errno_location() #14
  %1564 = load i32, ptr %1563, align 4, !tbaa !5
  %1565 = call ptr @strerror(i32 noundef %1564) #13
  %1566 = call ptr @__errno_location() #14
  %1567 = load i32, ptr %1566, align 4, !tbaa !5
  %1568 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1555, ptr noundef @.str.61, i32 noundef %1556, ptr noundef @.str.85, ptr noundef @.str.57, i32 noundef 83, ptr noundef %1559, ptr noundef %1562, ptr noundef %1565, i32 noundef %1567) #13
  br label %1569

1569:                                             ; preds = %1552, %1535
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #13
  br label %1570

1570:                                             ; preds = %1569
  br label %1571

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

1572:                                             ; No predecessors!
  br label %1573

1573:                                             ; preds = %1572
  br label %1574

1574:                                             ; preds = %1573, %1513
  br label %1575

1575:                                             ; preds = %1574
  br label %1576

1576:                                             ; preds = %1575
  call void @llvm.lifetime.start.p0(i64 24, ptr %35) #13
  call void @llvm.memset.p0.i64(ptr align 8 %35, i8 0, i64 24, i1 false)
  br label %1577

1577:                                             ; preds = %1576
  %1578 = load i32, ptr @test_count, align 4, !tbaa !5
  %1579 = add nsw i32 %1578, 1
  store i32 %1579, ptr @test_count, align 4, !tbaa !5
  %1580 = load ptr, ptr %11, align 8, !tbaa !9
  %1581 = call i32 @s2n_tls13_compute_shared_secret(ptr noundef %1580, ptr noundef %35)
  %1582 = icmp eq i32 %1581, -1
  br i1 %1582, label %1583, label %1636

1583:                                             ; preds = %1577
  br label %1584

1584:                                             ; preds = %1583
  br label %1585

1585:                                             ; preds = %1584
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #13
  %1586 = call ptr @__errno_location() #14
  %1587 = load i32, ptr %1586, align 4, !tbaa !5
  store i32 %1587, ptr %36, align 4, !tbaa !5
  %1588 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1589 = call i32 @s2n_print_stacktrace(ptr noundef %1588)
  %1590 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1591 = trunc i8 %1590 to i1
  br i1 %1591, label %1592, label %1614

1592:                                             ; preds = %1585
  %1593 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1594 = call i32 @fileno(ptr noundef %1593) #13
  %1595 = call i32 @isatty(i32 noundef %1594) #13
  %1596 = icmp ne i32 %1595, 0
  br i1 %1596, label %1597, label %1614

1597:                                             ; preds = %1592
  %1598 = load i32, ptr %36, align 4, !tbaa !5
  %1599 = call ptr @__errno_location() #14
  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.60)
  %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.60)
  %1608 = call ptr @__errno_location() #14
  %1609 = load i32, ptr %1608, align 4, !tbaa !5
  %1610 = call ptr @strerror(i32 noundef %1609) #13
  %1611 = call ptr @__errno_location() #14
  %1612 = load i32, ptr %1611, align 4, !tbaa !5
  %1613 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1600, ptr noundef @.str.58, i32 noundef %1601, ptr noundef @.str.86, ptr noundef @.str.57, i32 noundef 86, ptr noundef %1604, ptr noundef %1607, ptr noundef %1610, i32 noundef %1612) #13
  br label %1631

1614:                                             ; preds = %1592, %1585
  %1615 = load i32, ptr %36, align 4, !tbaa !5
  %1616 = call ptr @__errno_location() #14
  store i32 %1615, ptr %1616, align 4, !tbaa !5
  %1617 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1618 = load i32, ptr @test_count, align 4, !tbaa !5
  %1619 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1620 = load i32, ptr %1619, align 4, !tbaa !5
  %1621 = call ptr @s2n_strerror(i32 noundef %1620, ptr noundef @.str.60)
  %1622 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1623 = load i32, ptr %1622, align 4, !tbaa !5
  %1624 = call ptr @s2n_strerror_debug(i32 noundef %1623, ptr noundef @.str.60)
  %1625 = call ptr @__errno_location() #14
  %1626 = load i32, ptr %1625, align 4, !tbaa !5
  %1627 = call ptr @strerror(i32 noundef %1626) #13
  %1628 = call ptr @__errno_location() #14
  %1629 = load i32, ptr %1628, align 4, !tbaa !5
  %1630 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1617, ptr noundef @.str.61, i32 noundef %1618, ptr noundef @.str.86, ptr noundef @.str.57, i32 noundef 86, ptr noundef %1621, ptr noundef %1624, ptr noundef %1627, i32 noundef %1629) #13
  br label %1631

1631:                                             ; preds = %1614, %1597
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #13
  br label %1632

1632:                                             ; preds = %1631
  br label %1633

1633:                                             ; preds = %1632
  call void @exit(i32 noundef 1) #15
  unreachable

1634:                                             ; No predecessors!
  br label %1635

1635:                                             ; preds = %1634
  br label %1636

1636:                                             ; preds = %1635, %1577
  br label %1637

1637:                                             ; preds = %1636
  br label %1638

1638:                                             ; preds = %1637
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #13
  store i64 0, ptr %37, align 8, !tbaa !51
  br label %1639

1639:                                             ; preds = %1911, %1638
  %1640 = load i64, ptr %37, align 8, !tbaa !51
  %1641 = load ptr, ptr %11, align 8, !tbaa !9
  %1642 = getelementptr inbounds %struct.s2n_connection, ptr %1641, i32 0, i32 33
  %1643 = getelementptr inbounds %struct.s2n_psk_parameters, ptr %1642, i32 0, i32 1
  %1644 = getelementptr inbounds %struct.s2n_array, ptr %1643, i32 0, i32 1
  %1645 = load i32, ptr %1644, align 8, !tbaa !61
  %1646 = zext i32 %1645 to i64
  %1647 = icmp ult i64 %1640, %1646
  br i1 %1647, label %1649, label %1648

1648:                                             ; preds = %1639
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #13
  br label %1914

1649:                                             ; preds = %1639
  call void @llvm.lifetime.start.p0(i64 8, ptr %38) #13
  store ptr null, ptr %38, align 8, !tbaa !9
  br label %1650

1650:                                             ; preds = %1649
  %1651 = load i32, ptr @test_count, align 4, !tbaa !5
  %1652 = add nsw i32 %1651, 1
  store i32 %1652, ptr @test_count, align 4, !tbaa !5
  %1653 = load ptr, ptr %11, align 8, !tbaa !9
  %1654 = getelementptr inbounds %struct.s2n_connection, ptr %1653, i32 0, i32 33
  %1655 = getelementptr inbounds %struct.s2n_psk_parameters, ptr %1654, i32 0, i32 1
  %1656 = load i64, ptr %37, align 8, !tbaa !51
  %1657 = trunc i64 %1656 to i32
  %1658 = call i32 @s2n_array_get(ptr noundef %1655, i32 noundef %1657, ptr noundef %38)
  %1659 = getelementptr inbounds %struct.s2n_result, ptr %39, i32 0, i32 0
  store i32 %1658, ptr %1659, align 4
  %1660 = getelementptr inbounds %struct.s2n_result, ptr %39, i32 0, i32 0
  %1661 = load i32, ptr %1660, align 4
  %1662 = call zeroext i1 @s2n_result_is_ok(i32 %1661)
  br i1 %1662, label %1716, label %1663

1663:                                             ; preds = %1650
  br label %1664

1664:                                             ; preds = %1663
  br label %1665

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

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

1677:                                             ; preds = %1672
  %1678 = load i32, ptr %40, align 4, !tbaa !5
  %1679 = call ptr @__errno_location() #14
  store i32 %1678, ptr %1679, align 4, !tbaa !5
  %1680 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1681 = load i32, ptr @test_count, align 4, !tbaa !5
  %1682 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1683 = load i32, ptr %1682, align 4, !tbaa !5
  %1684 = call ptr @s2n_strerror(i32 noundef %1683, ptr noundef @.str.60)
  %1685 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1686 = load i32, ptr %1685, align 4, !tbaa !5
  %1687 = call ptr @s2n_strerror_debug(i32 noundef %1686, ptr noundef @.str.60)
  %1688 = call ptr @__errno_location() #14
  %1689 = load i32, ptr %1688, align 4, !tbaa !5
  %1690 = call ptr @strerror(i32 noundef %1689) #13
  %1691 = call ptr @__errno_location() #14
  %1692 = load i32, ptr %1691, align 4, !tbaa !5
  %1693 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1680, ptr noundef @.str.58, i32 noundef %1681, ptr noundef @.str.87, ptr noundef @.str.57, i32 noundef 91, ptr noundef %1684, ptr noundef %1687, ptr noundef %1690, i32 noundef %1692) #13
  br label %1711

1694:                                             ; preds = %1672, %1665
  %1695 = load i32, ptr %40, align 4, !tbaa !5
  %1696 = call ptr @__errno_location() #14
  store i32 %1695, ptr %1696, align 4, !tbaa !5
  %1697 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1698 = load i32, ptr @test_count, align 4, !tbaa !5
  %1699 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1700 = load i32, ptr %1699, align 4, !tbaa !5
  %1701 = call ptr @s2n_strerror(i32 noundef %1700, ptr noundef @.str.60)
  %1702 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1703 = load i32, ptr %1702, align 4, !tbaa !5
  %1704 = call ptr @s2n_strerror_debug(i32 noundef %1703, ptr noundef @.str.60)
  %1705 = call ptr @__errno_location() #14
  %1706 = load i32, ptr %1705, align 4, !tbaa !5
  %1707 = call ptr @strerror(i32 noundef %1706) #13
  %1708 = call ptr @__errno_location() #14
  %1709 = load i32, ptr %1708, align 4, !tbaa !5
  %1710 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1697, ptr noundef @.str.61, i32 noundef %1698, ptr noundef @.str.87, ptr noundef @.str.57, i32 noundef 91, ptr noundef %1701, ptr noundef %1704, ptr noundef %1707, i32 noundef %1709) #13
  br label %1711

1711:                                             ; preds = %1694, %1677
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #13
  br label %1712

1712:                                             ; preds = %1711
  br label %1713

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

1714:                                             ; No predecessors!
  br label %1715

1715:                                             ; preds = %1714
  br label %1716

1716:                                             ; preds = %1715, %1650
  br label %1717

1717:                                             ; preds = %1716
  br label %1718

1718:                                             ; preds = %1717
  br label %1719

1719:                                             ; preds = %1718
  %1720 = load i32, ptr @test_count, align 4, !tbaa !5
  %1721 = add nsw i32 %1720, 1
  store i32 %1721, ptr @test_count, align 4, !tbaa !5
  %1722 = load ptr, ptr %38, align 8, !tbaa !9
  %1723 = getelementptr inbounds %struct.s2n_psk, ptr %1722, i32 0, i32 1
  %1724 = getelementptr inbounds %struct.s2n_blob, ptr %1723, i32 0, i32 1
  %1725 = load i32, ptr %1724, align 8, !tbaa !52
  %1726 = icmp eq i32 %1725, 0
  br i1 %1726, label %1727, label %1780

1727:                                             ; preds = %1719
  br label %1728

1728:                                             ; preds = %1727
  br label %1729

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

1736:                                             ; preds = %1729
  %1737 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1738 = call i32 @fileno(ptr noundef %1737) #13
  %1739 = call i32 @isatty(i32 noundef %1738) #13
  %1740 = icmp ne i32 %1739, 0
  br i1 %1740, label %1741, label %1758

1741:                                             ; preds = %1736
  %1742 = load i32, ptr %41, align 4, !tbaa !5
  %1743 = call ptr @__errno_location() #14
  store i32 %1742, ptr %1743, align 4, !tbaa !5
  %1744 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1745 = load i32, ptr @test_count, align 4, !tbaa !5
  %1746 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1747 = load i32, ptr %1746, align 4, !tbaa !5
  %1748 = call ptr @s2n_strerror(i32 noundef %1747, ptr noundef @.str.60)
  %1749 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1750 = load i32, ptr %1749, align 4, !tbaa !5
  %1751 = call ptr @s2n_strerror_debug(i32 noundef %1750, ptr noundef @.str.60)
  %1752 = call ptr @__errno_location() #14
  %1753 = load i32, ptr %1752, align 4, !tbaa !5
  %1754 = call ptr @strerror(i32 noundef %1753) #13
  %1755 = call ptr @__errno_location() #14
  %1756 = load i32, ptr %1755, align 4, !tbaa !5
  %1757 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1744, ptr noundef @.str.58, i32 noundef %1745, ptr noundef @.str.78, ptr noundef @.str.57, i32 noundef 92, ptr noundef %1748, ptr noundef %1751, ptr noundef %1754, i32 noundef %1756) #13
  br label %1775

1758:                                             ; preds = %1736, %1729
  %1759 = load i32, ptr %41, align 4, !tbaa !5
  %1760 = call ptr @__errno_location() #14
  store i32 %1759, ptr %1760, align 4, !tbaa !5
  %1761 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1762 = load i32, ptr @test_count, align 4, !tbaa !5
  %1763 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1764 = load i32, ptr %1763, align 4, !tbaa !5
  %1765 = call ptr @s2n_strerror(i32 noundef %1764, ptr noundef @.str.60)
  %1766 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1767 = load i32, ptr %1766, align 4, !tbaa !5
  %1768 = call ptr @s2n_strerror_debug(i32 noundef %1767, ptr noundef @.str.60)
  %1769 = call ptr @__errno_location() #14
  %1770 = load i32, ptr %1769, align 4, !tbaa !5
  %1771 = call ptr @strerror(i32 noundef %1770) #13
  %1772 = call ptr @__errno_location() #14
  %1773 = load i32, ptr %1772, align 4, !tbaa !5
  %1774 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1761, ptr noundef @.str.61, i32 noundef %1762, ptr noundef @.str.78, ptr noundef @.str.57, i32 noundef 92, ptr noundef %1765, ptr noundef %1768, ptr noundef %1771, i32 noundef %1773) #13
  br label %1775

1775:                                             ; preds = %1758, %1741
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #13
  br label %1776

1776:                                             ; preds = %1775
  br label %1777

1777:                                             ; preds = %1776
  call void @exit(i32 noundef 1) #15
  unreachable

1778:                                             ; No predecessors!
  br label %1779

1779:                                             ; preds = %1778
  br label %1780

1780:                                             ; preds = %1779, %1719
  br label %1781

1781:                                             ; preds = %1780
  br label %1782

1782:                                             ; preds = %1781
  br label %1783

1783:                                             ; preds = %1782
  %1784 = load i32, ptr @test_count, align 4, !tbaa !5
  %1785 = add nsw i32 %1784, 1
  store i32 %1785, ptr @test_count, align 4, !tbaa !5
  %1786 = load ptr, ptr %38, align 8, !tbaa !9
  %1787 = getelementptr inbounds %struct.s2n_psk, ptr %1786, i32 0, i32 2
  %1788 = getelementptr inbounds %struct.s2n_blob, ptr %1787, i32 0, i32 0
  %1789 = load ptr, ptr %1788, align 8, !tbaa !57
  %1790 = icmp eq ptr %1789, null
  br i1 %1790, label %1844, label %1791

1791:                                             ; preds = %1783
  br label %1792

1792:                                             ; preds = %1791
  br label %1793

1793:                                             ; preds = %1792
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #13
  %1794 = call ptr @__errno_location() #14
  %1795 = load i32, ptr %1794, align 4, !tbaa !5
  store i32 %1795, ptr %42, align 4, !tbaa !5
  %1796 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1797 = call i32 @s2n_print_stacktrace(ptr noundef %1796)
  %1798 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1799 = trunc i8 %1798 to i1
  br i1 %1799, label %1800, label %1822

1800:                                             ; preds = %1793
  %1801 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1802 = call i32 @fileno(ptr noundef %1801) #13
  %1803 = call i32 @isatty(i32 noundef %1802) #13
  %1804 = icmp ne i32 %1803, 0
  br i1 %1804, label %1805, label %1822

1805:                                             ; preds = %1800
  %1806 = load i32, ptr %42, align 4, !tbaa !5
  %1807 = call ptr @__errno_location() #14
  store i32 %1806, ptr %1807, align 4, !tbaa !5
  %1808 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1809 = load i32, ptr @test_count, align 4, !tbaa !5
  %1810 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1811 = load i32, ptr %1810, align 4, !tbaa !5
  %1812 = call ptr @s2n_strerror(i32 noundef %1811, ptr noundef @.str.60)
  %1813 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1814 = load i32, ptr %1813, align 4, !tbaa !5
  %1815 = call ptr @s2n_strerror_debug(i32 noundef %1814, ptr noundef @.str.60)
  %1816 = call ptr @__errno_location() #14
  %1817 = load i32, ptr %1816, align 4, !tbaa !5
  %1818 = call ptr @strerror(i32 noundef %1817) #13
  %1819 = call ptr @__errno_location() #14
  %1820 = load i32, ptr %1819, align 4, !tbaa !5
  %1821 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1808, ptr noundef @.str.58, i32 noundef %1809, ptr noundef @.str.88, ptr noundef @.str.57, i32 noundef 93, ptr noundef %1812, ptr noundef %1815, ptr noundef %1818, i32 noundef %1820) #13
  br label %1839

1822:                                             ; preds = %1800, %1793
  %1823 = load i32, ptr %42, align 4, !tbaa !5
  %1824 = call ptr @__errno_location() #14
  store i32 %1823, ptr %1824, align 4, !tbaa !5
  %1825 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1826 = load i32, ptr @test_count, align 4, !tbaa !5
  %1827 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1828 = load i32, ptr %1827, align 4, !tbaa !5
  %1829 = call ptr @s2n_strerror(i32 noundef %1828, ptr noundef @.str.60)
  %1830 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1831 = load i32, ptr %1830, align 4, !tbaa !5
  %1832 = call ptr @s2n_strerror_debug(i32 noundef %1831, ptr noundef @.str.60)
  %1833 = call ptr @__errno_location() #14
  %1834 = load i32, ptr %1833, align 4, !tbaa !5
  %1835 = call ptr @strerror(i32 noundef %1834) #13
  %1836 = call ptr @__errno_location() #14
  %1837 = load i32, ptr %1836, align 4, !tbaa !5
  %1838 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1825, ptr noundef @.str.61, i32 noundef %1826, ptr noundef @.str.88, ptr noundef @.str.57, i32 noundef 93, ptr noundef %1829, ptr noundef %1832, ptr noundef %1835, i32 noundef %1837) #13
  br label %1839

1839:                                             ; preds = %1822, %1805
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #13
  br label %1840

1840:                                             ; preds = %1839
  br label %1841

1841:                                             ; preds = %1840
  call void @exit(i32 noundef 1) #15
  unreachable

1842:                                             ; No predecessors!
  br label %1843

1843:                                             ; preds = %1842
  br label %1844

1844:                                             ; preds = %1843, %1783
  br label %1845

1845:                                             ; preds = %1844
  br label %1846

1846:                                             ; preds = %1845
  br label %1847

1847:                                             ; preds = %1846
  %1848 = load i32, ptr @test_count, align 4, !tbaa !5
  %1849 = add nsw i32 %1848, 1
  store i32 %1849, ptr @test_count, align 4, !tbaa !5
  %1850 = load ptr, ptr %38, align 8, !tbaa !9
  %1851 = getelementptr inbounds %struct.s2n_psk, ptr %1850, i32 0, i32 2
  %1852 = getelementptr inbounds %struct.s2n_blob, ptr %1851, i32 0, i32 1
  %1853 = load i32, ptr %1852, align 8, !tbaa !56
  %1854 = icmp eq i32 %1853, 0
  br i1 %1854, label %1908, label %1855

1855:                                             ; preds = %1847
  br label %1856

1856:                                             ; preds = %1855
  br label %1857

1857:                                             ; preds = %1856
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #13
  %1858 = call ptr @__errno_location() #14
  %1859 = load i32, ptr %1858, align 4, !tbaa !5
  store i32 %1859, ptr %43, align 4, !tbaa !5
  %1860 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1861 = call i32 @s2n_print_stacktrace(ptr noundef %1860)
  %1862 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1863 = trunc i8 %1862 to i1
  br i1 %1863, label %1864, label %1886

1864:                                             ; preds = %1857
  %1865 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1866 = call i32 @fileno(ptr noundef %1865) #13
  %1867 = call i32 @isatty(i32 noundef %1866) #13
  %1868 = icmp ne i32 %1867, 0
  br i1 %1868, label %1869, label %1886

1869:                                             ; preds = %1864
  %1870 = load i32, ptr %43, align 4, !tbaa !5
  %1871 = call ptr @__errno_location() #14
  store i32 %1870, ptr %1871, align 4, !tbaa !5
  %1872 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1873 = load i32, ptr @test_count, align 4, !tbaa !5
  %1874 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1875 = load i32, ptr %1874, align 4, !tbaa !5
  %1876 = call ptr @s2n_strerror(i32 noundef %1875, ptr noundef @.str.60)
  %1877 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1878 = load i32, ptr %1877, align 4, !tbaa !5
  %1879 = call ptr @s2n_strerror_debug(i32 noundef %1878, ptr noundef @.str.60)
  %1880 = call ptr @__errno_location() #14
  %1881 = load i32, ptr %1880, align 4, !tbaa !5
  %1882 = call ptr @strerror(i32 noundef %1881) #13
  %1883 = call ptr @__errno_location() #14
  %1884 = load i32, ptr %1883, align 4, !tbaa !5
  %1885 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1872, ptr noundef @.str.58, i32 noundef %1873, ptr noundef @.str.89, ptr noundef @.str.57, i32 noundef 94, ptr noundef %1876, ptr noundef %1879, ptr noundef %1882, i32 noundef %1884) #13
  br label %1903

1886:                                             ; preds = %1864, %1857
  %1887 = load i32, ptr %43, align 4, !tbaa !5
  %1888 = call ptr @__errno_location() #14
  store i32 %1887, ptr %1888, align 4, !tbaa !5
  %1889 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1890 = load i32, ptr @test_count, align 4, !tbaa !5
  %1891 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1892 = load i32, ptr %1891, align 4, !tbaa !5
  %1893 = call ptr @s2n_strerror(i32 noundef %1892, ptr noundef @.str.60)
  %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_debug(i32 noundef %1895, ptr noundef @.str.60)
  %1897 = call ptr @__errno_location() #14
  %1898 = load i32, ptr %1897, align 4, !tbaa !5
  %1899 = call ptr @strerror(i32 noundef %1898) #13
  %1900 = call ptr @__errno_location() #14
  %1901 = load i32, ptr %1900, align 4, !tbaa !5
  %1902 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1889, ptr noundef @.str.61, i32 noundef %1890, ptr noundef @.str.89, ptr noundef @.str.57, i32 noundef 94, ptr noundef %1893, ptr noundef %1896, ptr noundef %1899, i32 noundef %1901) #13
  br label %1903

1903:                                             ; preds = %1886, %1869
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #13
  br label %1904

1904:                                             ; preds = %1903
  br label %1905

1905:                                             ; preds = %1904
  call void @exit(i32 noundef 1) #15
  unreachable

1906:                                             ; No predecessors!
  br label %1907

1907:                                             ; preds = %1906
  br label %1908

1908:                                             ; preds = %1907, %1847
  br label %1909

1909:                                             ; preds = %1908
  br label %1910

1910:                                             ; preds = %1909
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #13
  br label %1911

1911:                                             ; preds = %1910
  %1912 = load i64, ptr %37, align 8, !tbaa !51
  %1913 = add i64 %1912, 1
  store i64 %1913, ptr %37, align 8, !tbaa !51
  br label %1639, !llvm.loop !63

1914:                                             ; preds = %1648
  br label %1915

1915:                                             ; preds = %1914
  %1916 = load i32, ptr @test_count, align 4, !tbaa !5
  %1917 = add nsw i32 %1916, 1
  store i32 %1917, ptr @test_count, align 4, !tbaa !5
  %1918 = load ptr, ptr %11, align 8, !tbaa !9
  %1919 = call i32 @s2n_connection_free(ptr noundef %1918)
  %1920 = icmp eq i32 %1919, -1
  br i1 %1920, label %1921, label %1974

1921:                                             ; preds = %1915
  br label %1922

1922:                                             ; preds = %1921
  br label %1923

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

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

1935:                                             ; preds = %1930
  %1936 = load i32, ptr %44, align 4, !tbaa !5
  %1937 = call ptr @__errno_location() #14
  store i32 %1936, ptr %1937, align 4, !tbaa !5
  %1938 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1939 = load i32, ptr @test_count, align 4, !tbaa !5
  %1940 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1941 = load i32, ptr %1940, align 4, !tbaa !5
  %1942 = call ptr @s2n_strerror(i32 noundef %1941, ptr noundef @.str.60)
  %1943 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1944 = load i32, ptr %1943, align 4, !tbaa !5
  %1945 = call ptr @s2n_strerror_debug(i32 noundef %1944, ptr noundef @.str.60)
  %1946 = call ptr @__errno_location() #14
  %1947 = load i32, ptr %1946, align 4, !tbaa !5
  %1948 = call ptr @strerror(i32 noundef %1947) #13
  %1949 = call ptr @__errno_location() #14
  %1950 = load i32, ptr %1949, align 4, !tbaa !5
  %1951 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1938, ptr noundef @.str.58, i32 noundef %1939, ptr noundef @.str.90, ptr noundef @.str.57, i32 noundef 97, ptr noundef %1942, ptr noundef %1945, ptr noundef %1948, i32 noundef %1950) #13
  br label %1969

1952:                                             ; preds = %1930, %1923
  %1953 = load i32, ptr %44, align 4, !tbaa !5
  %1954 = call ptr @__errno_location() #14
  store i32 %1953, ptr %1954, align 4, !tbaa !5
  %1955 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1956 = load i32, ptr @test_count, align 4, !tbaa !5
  %1957 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1958 = load i32, ptr %1957, align 4, !tbaa !5
  %1959 = call ptr @s2n_strerror(i32 noundef %1958, ptr noundef @.str.60)
  %1960 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1961 = load i32, ptr %1960, align 4, !tbaa !5
  %1962 = call ptr @s2n_strerror_debug(i32 noundef %1961, ptr noundef @.str.60)
  %1963 = call ptr @__errno_location() #14
  %1964 = load i32, ptr %1963, align 4, !tbaa !5
  %1965 = call ptr @strerror(i32 noundef %1964) #13
  %1966 = call ptr @__errno_location() #14
  %1967 = load i32, ptr %1966, align 4, !tbaa !5
  %1968 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1955, ptr noundef @.str.61, i32 noundef %1956, ptr noundef @.str.90, ptr noundef @.str.57, i32 noundef 97, ptr noundef %1959, ptr noundef %1962, ptr noundef %1965, i32 noundef %1967) #13
  br label %1969

1969:                                             ; preds = %1952, %1935
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #13
  br label %1970

1970:                                             ; preds = %1969
  br label %1971

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

1972:                                             ; No predecessors!
  br label %1973

1973:                                             ; preds = %1972
  br label %1974

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

1975:                                             ; preds = %1974
  br label %1976

1976:                                             ; preds = %1975
  %1977 = call i32 @s2n_free(ptr noundef %35)
  call void @llvm.lifetime.end.p0(i64 24, ptr %35) #13
  call void @llvm.lifetime.end.p0(i64 17, ptr %19) #13
  call void @llvm.lifetime.end.p0(i64 19, ptr %18) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #13
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #13
  store ptr null, ptr %45, align 8, !tbaa !9
  br label %1978

1978:                                             ; preds = %1976
  %1979 = load i32, ptr @test_count, align 4, !tbaa !5
  %1980 = add nsw i32 %1979, 1
  store i32 %1980, ptr @test_count, align 4, !tbaa !5
  %1981 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %1981, ptr %45, align 8, !tbaa !9
  %1982 = icmp eq ptr %1981, null
  br i1 %1982, label %1983, label %2036

1983:                                             ; preds = %1978
  br label %1984

1984:                                             ; preds = %1983
  br label %1985

1985:                                             ; preds = %1984
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #13
  %1986 = call ptr @__errno_location() #14
  %1987 = load i32, ptr %1986, align 4, !tbaa !5
  store i32 %1987, ptr %46, align 4, !tbaa !5
  %1988 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1989 = call i32 @s2n_print_stacktrace(ptr noundef %1988)
  %1990 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1991 = trunc i8 %1990 to i1
  br i1 %1991, label %1992, label %2014

1992:                                             ; preds = %1985
  %1993 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1994 = call i32 @fileno(ptr noundef %1993) #13
  %1995 = call i32 @isatty(i32 noundef %1994) #13
  %1996 = icmp ne i32 %1995, 0
  br i1 %1996, label %1997, label %2014

1997:                                             ; preds = %1992
  %1998 = load i32, ptr %46, align 4, !tbaa !5
  %1999 = call ptr @__errno_location() #14
  store i32 %1998, ptr %1999, align 4, !tbaa !5
  %2000 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2001 = load i32, ptr @test_count, align 4, !tbaa !5
  %2002 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2003 = load i32, ptr %2002, align 4, !tbaa !5
  %2004 = call ptr @s2n_strerror(i32 noundef %2003, ptr noundef @.str.60)
  %2005 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2006 = load i32, ptr %2005, align 4, !tbaa !5
  %2007 = call ptr @s2n_strerror_debug(i32 noundef %2006, ptr noundef @.str.60)
  %2008 = call ptr @__errno_location() #14
  %2009 = load i32, ptr %2008, align 4, !tbaa !5
  %2010 = call ptr @strerror(i32 noundef %2009) #13
  %2011 = call ptr @__errno_location() #14
  %2012 = load i32, ptr %2011, align 4, !tbaa !5
  %2013 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2000, ptr noundef @.str.58, i32 noundef %2001, ptr noundef @.str.70, ptr noundef @.str.57, i32 noundef 103, ptr noundef %2004, ptr noundef %2007, ptr noundef %2010, i32 noundef %2012) #13
  br label %2031

2014:                                             ; preds = %1992, %1985
  %2015 = load i32, ptr %46, align 4, !tbaa !5
  %2016 = call ptr @__errno_location() #14
  store i32 %2015, ptr %2016, align 4, !tbaa !5
  %2017 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2018 = load i32, ptr @test_count, align 4, !tbaa !5
  %2019 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2020 = load i32, ptr %2019, align 4, !tbaa !5
  %2021 = call ptr @s2n_strerror(i32 noundef %2020, ptr noundef @.str.60)
  %2022 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2023 = load i32, ptr %2022, align 4, !tbaa !5
  %2024 = call ptr @s2n_strerror_debug(i32 noundef %2023, ptr noundef @.str.60)
  %2025 = call ptr @__errno_location() #14
  %2026 = load i32, ptr %2025, align 4, !tbaa !5
  %2027 = call ptr @strerror(i32 noundef %2026) #13
  %2028 = call ptr @__errno_location() #14
  %2029 = load i32, ptr %2028, align 4, !tbaa !5
  %2030 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2017, ptr noundef @.str.61, i32 noundef %2018, ptr noundef @.str.70, ptr noundef @.str.57, i32 noundef 103, ptr noundef %2021, ptr noundef %2024, ptr noundef %2027, i32 noundef %2029) #13
  br label %2031

2031:                                             ; preds = %2014, %1997
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #13
  br label %2032

2032:                                             ; preds = %2031
  br label %2033

2033:                                             ; preds = %2032
  call void @exit(i32 noundef 1) #15
  unreachable

2034:                                             ; No predecessors!
  br label %2035

2035:                                             ; preds = %2034
  br label %2036

2036:                                             ; preds = %2035, %1978
  br label %2037

2037:                                             ; preds = %2036
  br label %2038

2038:                                             ; preds = %2037
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #13
  store ptr null, ptr %47, align 8, !tbaa !9
  br label %2039

2039:                                             ; preds = %2038
  %2040 = load i32, ptr @test_count, align 4, !tbaa !5
  %2041 = add nsw i32 %2040, 1
  store i32 %2041, ptr @test_count, align 4, !tbaa !5
  %2042 = load ptr, ptr %45, align 8, !tbaa !9
  %2043 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef %2042, ptr noundef %47)
  %2044 = icmp eq i32 %2043, -1
  br i1 %2044, label %2045, label %2098

2045:                                             ; preds = %2039
  br label %2046

2046:                                             ; preds = %2045
  br label %2047

2047:                                             ; preds = %2046
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #13
  %2048 = call ptr @__errno_location() #14
  %2049 = load i32, ptr %2048, align 4, !tbaa !5
  store i32 %2049, ptr %48, align 4, !tbaa !5
  %2050 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2051 = call i32 @s2n_print_stacktrace(ptr noundef %2050)
  %2052 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2053 = trunc i8 %2052 to i1
  br i1 %2053, label %2054, label %2076

2054:                                             ; preds = %2047
  %2055 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2056 = call i32 @fileno(ptr noundef %2055) #13
  %2057 = call i32 @isatty(i32 noundef %2056) #13
  %2058 = icmp ne i32 %2057, 0
  br i1 %2058, label %2059, label %2076

2059:                                             ; preds = %2054
  %2060 = load i32, ptr %48, align 4, !tbaa !5
  %2061 = call ptr @__errno_location() #14
  store i32 %2060, ptr %2061, align 4, !tbaa !5
  %2062 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2063 = load i32, ptr @test_count, align 4, !tbaa !5
  %2064 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2065 = load i32, ptr %2064, align 4, !tbaa !5
  %2066 = call ptr @s2n_strerror(i32 noundef %2065, ptr noundef @.str.60)
  %2067 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2068 = load i32, ptr %2067, align 4, !tbaa !5
  %2069 = call ptr @s2n_strerror_debug(i32 noundef %2068, ptr noundef @.str.60)
  %2070 = call ptr @__errno_location() #14
  %2071 = load i32, ptr %2070, align 4, !tbaa !5
  %2072 = call ptr @strerror(i32 noundef %2071) #13
  %2073 = call ptr @__errno_location() #14
  %2074 = load i32, ptr %2073, align 4, !tbaa !5
  %2075 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2062, ptr noundef @.str.58, i32 noundef %2063, ptr noundef @.str.71, ptr noundef @.str.57, i32 noundef 106, ptr noundef %2066, ptr noundef %2069, ptr noundef %2072, i32 noundef %2074) #13
  br label %2093

2076:                                             ; preds = %2054, %2047
  %2077 = load i32, ptr %48, align 4, !tbaa !5
  %2078 = call ptr @__errno_location() #14
  store i32 %2077, ptr %2078, align 4, !tbaa !5
  %2079 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2080 = load i32, ptr @test_count, align 4, !tbaa !5
  %2081 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2082 = load i32, ptr %2081, align 4, !tbaa !5
  %2083 = call ptr @s2n_strerror(i32 noundef %2082, ptr noundef @.str.60)
  %2084 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2085 = load i32, ptr %2084, align 4, !tbaa !5
  %2086 = call ptr @s2n_strerror_debug(i32 noundef %2085, ptr noundef @.str.60)
  %2087 = call ptr @__errno_location() #14
  %2088 = load i32, ptr %2087, align 4, !tbaa !5
  %2089 = call ptr @strerror(i32 noundef %2088) #13
  %2090 = call ptr @__errno_location() #14
  %2091 = load i32, ptr %2090, align 4, !tbaa !5
  %2092 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2079, ptr noundef @.str.61, i32 noundef %2080, ptr noundef @.str.71, ptr noundef @.str.57, i32 noundef 106, ptr noundef %2083, ptr noundef %2086, ptr noundef %2089, i32 noundef %2091) #13
  br label %2093

2093:                                             ; preds = %2076, %2059
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #13
  br label %2094

2094:                                             ; preds = %2093
  br label %2095

2095:                                             ; preds = %2094
  call void @exit(i32 noundef 1) #15
  unreachable

2096:                                             ; No predecessors!
  br label %2097

2097:                                             ; preds = %2096
  br label %2098

2098:                                             ; preds = %2097, %2039
  br label %2099

2099:                                             ; preds = %2098
  br label %2100

2100:                                             ; preds = %2099
  br label %2101

2101:                                             ; preds = %2100
  %2102 = load i32, ptr @test_count, align 4, !tbaa !5
  %2103 = add nsw i32 %2102, 1
  store i32 %2103, ptr @test_count, align 4, !tbaa !5
  %2104 = load ptr, ptr %47, align 8, !tbaa !9
  %2105 = icmp eq ptr %2104, null
  br i1 %2105, label %2106, label %2159

2106:                                             ; preds = %2101
  br label %2107

2107:                                             ; preds = %2106
  br label %2108

2108:                                             ; preds = %2107
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #13
  %2109 = call ptr @__errno_location() #14
  %2110 = load i32, ptr %2109, align 4, !tbaa !5
  store i32 %2110, ptr %49, align 4, !tbaa !5
  %2111 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2112 = call i32 @s2n_print_stacktrace(ptr noundef %2111)
  %2113 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2114 = trunc i8 %2113 to i1
  br i1 %2114, label %2115, label %2137

2115:                                             ; preds = %2108
  %2116 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2117 = call i32 @fileno(ptr noundef %2116) #13
  %2118 = call i32 @isatty(i32 noundef %2117) #13
  %2119 = icmp ne i32 %2118, 0
  br i1 %2119, label %2120, label %2137

2120:                                             ; preds = %2115
  %2121 = load i32, ptr %49, align 4, !tbaa !5
  %2122 = call ptr @__errno_location() #14
  store i32 %2121, ptr %2122, align 4, !tbaa !5
  %2123 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2124 = load i32, ptr @test_count, align 4, !tbaa !5
  %2125 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2126 = load i32, ptr %2125, align 4, !tbaa !5
  %2127 = call ptr @s2n_strerror(i32 noundef %2126, ptr noundef @.str.60)
  %2128 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2129 = load i32, ptr %2128, align 4, !tbaa !5
  %2130 = call ptr @s2n_strerror_debug(i32 noundef %2129, ptr noundef @.str.60)
  %2131 = call ptr @__errno_location() #14
  %2132 = load i32, ptr %2131, align 4, !tbaa !5
  %2133 = call ptr @strerror(i32 noundef %2132) #13
  %2134 = call ptr @__errno_location() #14
  %2135 = load i32, ptr %2134, align 4, !tbaa !5
  %2136 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2123, ptr noundef @.str.58, i32 noundef %2124, ptr noundef @.str.72, ptr noundef @.str.57, i32 noundef 107, ptr noundef %2127, ptr noundef %2130, ptr noundef %2133, i32 noundef %2135) #13
  br label %2154

2137:                                             ; preds = %2115, %2108
  %2138 = load i32, ptr %49, align 4, !tbaa !5
  %2139 = call ptr @__errno_location() #14
  store i32 %2138, ptr %2139, align 4, !tbaa !5
  %2140 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2141 = load i32, ptr @test_count, align 4, !tbaa !5
  %2142 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2143 = load i32, ptr %2142, align 4, !tbaa !5
  %2144 = call ptr @s2n_strerror(i32 noundef %2143, ptr noundef @.str.60)
  %2145 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2146 = load i32, ptr %2145, align 4, !tbaa !5
  %2147 = call ptr @s2n_strerror_debug(i32 noundef %2146, ptr noundef @.str.60)
  %2148 = call ptr @__errno_location() #14
  %2149 = load i32, ptr %2148, align 4, !tbaa !5
  %2150 = call ptr @strerror(i32 noundef %2149) #13
  %2151 = call ptr @__errno_location() #14
  %2152 = load i32, ptr %2151, align 4, !tbaa !5
  %2153 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2140, ptr noundef @.str.61, i32 noundef %2141, ptr noundef @.str.72, ptr noundef @.str.57, i32 noundef 107, ptr noundef %2144, ptr noundef %2147, ptr noundef %2150, i32 noundef %2152) #13
  br label %2154

2154:                                             ; preds = %2137, %2120
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #13
  br label %2155

2155:                                             ; preds = %2154
  br label %2156

2156:                                             ; preds = %2155
  call void @exit(i32 noundef 1) #15
  unreachable

2157:                                             ; No predecessors!
  br label %2158

2158:                                             ; preds = %2157
  br label %2159

2159:                                             ; preds = %2158, %2101
  br label %2160

2160:                                             ; preds = %2159
  br label %2161

2161:                                             ; preds = %2160
  %2162 = load ptr, ptr %45, align 8, !tbaa !9
  %2163 = getelementptr inbounds %struct.s2n_connection, ptr %2162, i32 0, i32 27
  %2164 = load ptr, ptr %2163, align 8, !tbaa !15
  %2165 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %2164, i32 0, i32 0
  store ptr @s2n_tls13_aes_128_gcm_sha256, ptr %2165, align 8, !tbaa !42
  %2166 = load ptr, ptr %47, align 8, !tbaa !9
  %2167 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %2166, i32 0, i32 1
  %2168 = load ptr, ptr %2167, align 8, !tbaa !47
  %2169 = getelementptr inbounds ptr, ptr %2168, i64 0
  %2170 = load ptr, ptr %2169, align 8, !tbaa !9
  %2171 = load ptr, ptr %45, align 8, !tbaa !9
  %2172 = getelementptr inbounds %struct.s2n_connection, ptr %2171, i32 0, i32 31
  %2173 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %2172, i32 0, i32 1
  %2174 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %2173, i32 0, i32 0
  store ptr %2170, ptr %2174, align 8, !tbaa !49
  br label %2175

2175:                                             ; preds = %2161
  %2176 = load i32, ptr @test_count, align 4, !tbaa !5
  %2177 = add nsw i32 %2176, 1
  store i32 %2177, ptr @test_count, align 4, !tbaa !5
  %2178 = load ptr, ptr %45, align 8, !tbaa !9
  %2179 = getelementptr inbounds %struct.s2n_connection, ptr %2178, i32 0, i32 31
  %2180 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %2179, i32 0, i32 1
  %2181 = call i32 @s2n_ecc_evp_generate_ephemeral_key(ptr noundef %2180)
  %2182 = icmp eq i32 %2181, -1
  br i1 %2182, label %2183, label %2236

2183:                                             ; preds = %2175
  br label %2184

2184:                                             ; preds = %2183
  br label %2185

2185:                                             ; preds = %2184
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #13
  %2186 = call ptr @__errno_location() #14
  %2187 = load i32, ptr %2186, align 4, !tbaa !5
  store i32 %2187, ptr %50, align 4, !tbaa !5
  %2188 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2189 = call i32 @s2n_print_stacktrace(ptr noundef %2188)
  %2190 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2191 = trunc i8 %2190 to i1
  br i1 %2191, label %2192, label %2214

2192:                                             ; preds = %2185
  %2193 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2194 = call i32 @fileno(ptr noundef %2193) #13
  %2195 = call i32 @isatty(i32 noundef %2194) #13
  %2196 = icmp ne i32 %2195, 0
  br i1 %2196, label %2197, label %2214

2197:                                             ; preds = %2192
  %2198 = load i32, ptr %50, align 4, !tbaa !5
  %2199 = call ptr @__errno_location() #14
  store i32 %2198, ptr %2199, align 4, !tbaa !5
  %2200 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2201 = load i32, ptr @test_count, align 4, !tbaa !5
  %2202 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2203 = load i32, ptr %2202, align 4, !tbaa !5
  %2204 = call ptr @s2n_strerror(i32 noundef %2203, ptr noundef @.str.60)
  %2205 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2206 = load i32, ptr %2205, align 4, !tbaa !5
  %2207 = call ptr @s2n_strerror_debug(i32 noundef %2206, ptr noundef @.str.60)
  %2208 = call ptr @__errno_location() #14
  %2209 = load i32, ptr %2208, align 4, !tbaa !5
  %2210 = call ptr @strerror(i32 noundef %2209) #13
  %2211 = call ptr @__errno_location() #14
  %2212 = load i32, ptr %2211, align 4, !tbaa !5
  %2213 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2200, ptr noundef @.str.58, i32 noundef %2201, ptr noundef @.str.73, ptr noundef @.str.57, i32 noundef 111, ptr noundef %2204, ptr noundef %2207, ptr noundef %2210, i32 noundef %2212) #13
  br label %2231

2214:                                             ; preds = %2192, %2185
  %2215 = load i32, ptr %50, align 4, !tbaa !5
  %2216 = call ptr @__errno_location() #14
  store i32 %2215, ptr %2216, align 4, !tbaa !5
  %2217 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2218 = load i32, ptr @test_count, align 4, !tbaa !5
  %2219 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2220 = load i32, ptr %2219, align 4, !tbaa !5
  %2221 = call ptr @s2n_strerror(i32 noundef %2220, ptr noundef @.str.60)
  %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_debug(i32 noundef %2223, ptr noundef @.str.60)
  %2225 = call ptr @__errno_location() #14
  %2226 = load i32, ptr %2225, align 4, !tbaa !5
  %2227 = call ptr @strerror(i32 noundef %2226) #13
  %2228 = call ptr @__errno_location() #14
  %2229 = load i32, ptr %2228, align 4, !tbaa !5
  %2230 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2217, ptr noundef @.str.61, i32 noundef %2218, ptr noundef @.str.73, ptr noundef @.str.57, i32 noundef 111, ptr noundef %2221, ptr noundef %2224, ptr noundef %2227, i32 noundef %2229) #13
  br label %2231

2231:                                             ; preds = %2214, %2197
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #13
  br label %2232

2232:                                             ; preds = %2231
  br label %2233

2233:                                             ; preds = %2232
  call void @exit(i32 noundef 1) #15
  unreachable

2234:                                             ; No predecessors!
  br label %2235

2235:                                             ; preds = %2234
  br label %2236

2236:                                             ; preds = %2235, %2175
  br label %2237

2237:                                             ; preds = %2236
  br label %2238

2238:                                             ; preds = %2237
  %2239 = load ptr, ptr %47, align 8, !tbaa !9
  %2240 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %2239, i32 0, i32 1
  %2241 = load ptr, ptr %2240, align 8, !tbaa !47
  %2242 = getelementptr inbounds ptr, ptr %2241, i64 0
  %2243 = load ptr, ptr %2242, align 8, !tbaa !9
  %2244 = load ptr, ptr %45, align 8, !tbaa !9
  %2245 = getelementptr inbounds %struct.s2n_connection, ptr %2244, i32 0, i32 31
  %2246 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %2245, i32 0, i32 3
  %2247 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %2246, i32 0, i32 0
  store ptr %2243, ptr %2247, align 8, !tbaa !50
  br label %2248

2248:                                             ; preds = %2238
  %2249 = load i32, ptr @test_count, align 4, !tbaa !5
  %2250 = add nsw i32 %2249, 1
  store i32 %2250, ptr @test_count, align 4, !tbaa !5
  %2251 = load ptr, ptr %45, align 8, !tbaa !9
  %2252 = getelementptr inbounds %struct.s2n_connection, ptr %2251, i32 0, i32 31
  %2253 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %2252, i32 0, i32 3
  %2254 = call i32 @s2n_ecc_evp_generate_ephemeral_key(ptr noundef %2253)
  %2255 = icmp eq i32 %2254, -1
  br i1 %2255, label %2256, label %2309

2256:                                             ; preds = %2248
  br label %2257

2257:                                             ; preds = %2256
  br label %2258

2258:                                             ; preds = %2257
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #13
  %2259 = call ptr @__errno_location() #14
  %2260 = load i32, ptr %2259, align 4, !tbaa !5
  store i32 %2260, ptr %51, align 4, !tbaa !5
  %2261 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2262 = call i32 @s2n_print_stacktrace(ptr noundef %2261)
  %2263 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2264 = trunc i8 %2263 to i1
  br i1 %2264, label %2265, label %2287

2265:                                             ; preds = %2258
  %2266 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2267 = call i32 @fileno(ptr noundef %2266) #13
  %2268 = call i32 @isatty(i32 noundef %2267) #13
  %2269 = icmp ne i32 %2268, 0
  br i1 %2269, label %2270, label %2287

2270:                                             ; preds = %2265
  %2271 = load i32, ptr %51, align 4, !tbaa !5
  %2272 = call ptr @__errno_location() #14
  store i32 %2271, ptr %2272, align 4, !tbaa !5
  %2273 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2274 = load i32, ptr @test_count, align 4, !tbaa !5
  %2275 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2276 = load i32, ptr %2275, align 4, !tbaa !5
  %2277 = call ptr @s2n_strerror(i32 noundef %2276, ptr noundef @.str.60)
  %2278 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2279 = load i32, ptr %2278, align 4, !tbaa !5
  %2280 = call ptr @s2n_strerror_debug(i32 noundef %2279, ptr noundef @.str.60)
  %2281 = call ptr @__errno_location() #14
  %2282 = load i32, ptr %2281, align 4, !tbaa !5
  %2283 = call ptr @strerror(i32 noundef %2282) #13
  %2284 = call ptr @__errno_location() #14
  %2285 = load i32, ptr %2284, align 4, !tbaa !5
  %2286 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2273, ptr noundef @.str.58, i32 noundef %2274, ptr noundef @.str.74, ptr noundef @.str.57, i32 noundef 113, ptr noundef %2277, ptr noundef %2280, ptr noundef %2283, i32 noundef %2285) #13
  br label %2304

2287:                                             ; preds = %2265, %2258
  %2288 = load i32, ptr %51, align 4, !tbaa !5
  %2289 = call ptr @__errno_location() #14
  store i32 %2288, ptr %2289, align 4, !tbaa !5
  %2290 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2291 = load i32, ptr @test_count, align 4, !tbaa !5
  %2292 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2293 = load i32, ptr %2292, align 4, !tbaa !5
  %2294 = call ptr @s2n_strerror(i32 noundef %2293, ptr noundef @.str.60)
  %2295 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2296 = load i32, ptr %2295, align 4, !tbaa !5
  %2297 = call ptr @s2n_strerror_debug(i32 noundef %2296, ptr noundef @.str.60)
  %2298 = call ptr @__errno_location() #14
  %2299 = load i32, ptr %2298, align 4, !tbaa !5
  %2300 = call ptr @strerror(i32 noundef %2299) #13
  %2301 = call ptr @__errno_location() #14
  %2302 = load i32, ptr %2301, align 4, !tbaa !5
  %2303 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2290, ptr noundef @.str.61, i32 noundef %2291, ptr noundef @.str.74, ptr noundef @.str.57, i32 noundef 113, ptr noundef %2294, ptr noundef %2297, ptr noundef %2300, i32 noundef %2302) #13
  br label %2304

2304:                                             ; preds = %2287, %2270
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #13
  br label %2305

2305:                                             ; preds = %2304
  br label %2306

2306:                                             ; preds = %2305
  call void @exit(i32 noundef 1) #15
  unreachable

2307:                                             ; No predecessors!
  br label %2308

2308:                                             ; preds = %2307
  br label %2309

2309:                                             ; preds = %2308, %2248
  br label %2310

2310:                                             ; preds = %2309
  br label %2311

2311:                                             ; preds = %2310
  call void @llvm.lifetime.start.p0(i64 19, ptr %52) #13
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %52, ptr align 16 @__const.main.psk_data.91, i64 19, i1 false)
  call void @llvm.lifetime.start.p0(i64 17, ptr %53) #13
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %53, ptr align 16 @__const.main.secret_data.92, i64 17, i1 false)
  call void @llvm.lifetime.start.p0(i64 32, ptr %54) #13
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %54, ptr align 16 @__const.main.early_secret_data, i64 32, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #13
  store i64 0, ptr %55, align 8, !tbaa !51
  br label %2312

2312:                                             ; preds = %3090, %2311
  %2313 = load i64, ptr %55, align 8, !tbaa !51
  %2314 = icmp ult i64 %2313, 10
  br i1 %2314, label %2316, label %2315

2315:                                             ; preds = %2312
  store i32 208, ptr %56, align 4
  br label %3093

2316:                                             ; preds = %2312
  call void @llvm.lifetime.start.p0(i64 8, ptr %57) #13
  store ptr null, ptr %57, align 8, !tbaa !9
  br label %2317

2317:                                             ; preds = %2316
  %2318 = load i32, ptr @test_count, align 4, !tbaa !5
  %2319 = add nsw i32 %2318, 1
  store i32 %2319, ptr @test_count, align 4, !tbaa !5
  %2320 = load ptr, ptr %45, align 8, !tbaa !9
  %2321 = getelementptr inbounds %struct.s2n_connection, ptr %2320, i32 0, i32 33
  %2322 = getelementptr inbounds %struct.s2n_psk_parameters, ptr %2321, i32 0, i32 1
  %2323 = call i32 @s2n_array_pushback(ptr noundef %2322, ptr noundef %57)
  %2324 = getelementptr inbounds %struct.s2n_result, ptr %58, i32 0, i32 0
  store i32 %2323, ptr %2324, align 4
  %2325 = getelementptr inbounds %struct.s2n_result, ptr %58, i32 0, i32 0
  %2326 = load i32, ptr %2325, align 4
  %2327 = call zeroext i1 @s2n_result_is_ok(i32 %2326)
  br i1 %2327, label %2381, label %2328

2328:                                             ; preds = %2317
  br label %2329

2329:                                             ; preds = %2328
  br label %2330

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

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

2342:                                             ; preds = %2337
  %2343 = load i32, ptr %59, align 4, !tbaa !5
  %2344 = call ptr @__errno_location() #14
  store i32 %2343, ptr %2344, align 4, !tbaa !5
  %2345 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2346 = load i32, ptr @test_count, align 4, !tbaa !5
  %2347 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2348 = load i32, ptr %2347, align 4, !tbaa !5
  %2349 = call ptr @s2n_strerror(i32 noundef %2348, ptr noundef @.str.60)
  %2350 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2351 = load i32, ptr %2350, align 4, !tbaa !5
  %2352 = call ptr @s2n_strerror_debug(i32 noundef %2351, ptr noundef @.str.60)
  %2353 = call ptr @__errno_location() #14
  %2354 = load i32, ptr %2353, align 4, !tbaa !5
  %2355 = call ptr @strerror(i32 noundef %2354) #13
  %2356 = call ptr @__errno_location() #14
  %2357 = load i32, ptr %2356, align 4, !tbaa !5
  %2358 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2345, ptr noundef @.str.58, i32 noundef %2346, ptr noundef @.str.75, ptr noundef @.str.57, i32 noundef 120, ptr noundef %2349, ptr noundef %2352, ptr noundef %2355, i32 noundef %2357) #13
  br label %2376

2359:                                             ; preds = %2337, %2330
  %2360 = load i32, ptr %59, align 4, !tbaa !5
  %2361 = call ptr @__errno_location() #14
  store i32 %2360, ptr %2361, align 4, !tbaa !5
  %2362 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2363 = load i32, ptr @test_count, align 4, !tbaa !5
  %2364 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2365 = load i32, ptr %2364, align 4, !tbaa !5
  %2366 = call ptr @s2n_strerror(i32 noundef %2365, ptr noundef @.str.60)
  %2367 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2368 = load i32, ptr %2367, align 4, !tbaa !5
  %2369 = call ptr @s2n_strerror_debug(i32 noundef %2368, ptr noundef @.str.60)
  %2370 = call ptr @__errno_location() #14
  %2371 = load i32, ptr %2370, align 4, !tbaa !5
  %2372 = call ptr @strerror(i32 noundef %2371) #13
  %2373 = call ptr @__errno_location() #14
  %2374 = load i32, ptr %2373, align 4, !tbaa !5
  %2375 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2362, ptr noundef @.str.61, i32 noundef %2363, ptr noundef @.str.75, ptr noundef @.str.57, i32 noundef 120, ptr noundef %2366, ptr noundef %2369, ptr noundef %2372, i32 noundef %2374) #13
  br label %2376

2376:                                             ; preds = %2359, %2342
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #13
  br label %2377

2377:                                             ; preds = %2376
  br label %2378

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

2379:                                             ; No predecessors!
  br label %2380

2380:                                             ; preds = %2379
  br label %2381

2381:                                             ; preds = %2380, %2317
  br label %2382

2382:                                             ; preds = %2381
  br label %2383

2383:                                             ; preds = %2382
  br label %2384

2384:                                             ; preds = %2383
  %2385 = load i32, ptr @test_count, align 4, !tbaa !5
  %2386 = add nsw i32 %2385, 1
  store i32 %2386, ptr @test_count, align 4, !tbaa !5
  %2387 = load ptr, ptr %57, align 8, !tbaa !9
  %2388 = call i32 @s2n_psk_init(ptr noundef %2387, i32 noundef 1)
  %2389 = getelementptr inbounds %struct.s2n_result, ptr %60, i32 0, i32 0
  store i32 %2388, ptr %2389, align 4
  %2390 = getelementptr inbounds %struct.s2n_result, ptr %60, i32 0, i32 0
  %2391 = load i32, ptr %2390, align 4
  %2392 = call zeroext i1 @s2n_result_is_ok(i32 %2391)
  br i1 %2392, label %2446, label %2393

2393:                                             ; preds = %2384
  br label %2394

2394:                                             ; preds = %2393
  br label %2395

2395:                                             ; preds = %2394
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #13
  %2396 = call ptr @__errno_location() #14
  %2397 = load i32, ptr %2396, align 4, !tbaa !5
  store i32 %2397, ptr %61, align 4, !tbaa !5
  %2398 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2399 = call i32 @s2n_print_stacktrace(ptr noundef %2398)
  %2400 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2401 = trunc i8 %2400 to i1
  br i1 %2401, label %2402, label %2424

2402:                                             ; preds = %2395
  %2403 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2404 = call i32 @fileno(ptr noundef %2403) #13
  %2405 = call i32 @isatty(i32 noundef %2404) #13
  %2406 = icmp ne i32 %2405, 0
  br i1 %2406, label %2407, label %2424

2407:                                             ; preds = %2402
  %2408 = load i32, ptr %61, align 4, !tbaa !5
  %2409 = call ptr @__errno_location() #14
  store i32 %2408, ptr %2409, align 4, !tbaa !5
  %2410 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2411 = load i32, ptr @test_count, align 4, !tbaa !5
  %2412 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2413 = load i32, ptr %2412, align 4, !tbaa !5
  %2414 = call ptr @s2n_strerror(i32 noundef %2413, ptr noundef @.str.60)
  %2415 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2416 = load i32, ptr %2415, align 4, !tbaa !5
  %2417 = call ptr @s2n_strerror_debug(i32 noundef %2416, ptr noundef @.str.60)
  %2418 = call ptr @__errno_location() #14
  %2419 = load i32, ptr %2418, align 4, !tbaa !5
  %2420 = call ptr @strerror(i32 noundef %2419) #13
  %2421 = call ptr @__errno_location() #14
  %2422 = load i32, ptr %2421, align 4, !tbaa !5
  %2423 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2410, ptr noundef @.str.58, i32 noundef %2411, ptr noundef @.str.76, ptr noundef @.str.57, i32 noundef 121, ptr noundef %2414, ptr noundef %2417, ptr noundef %2420, i32 noundef %2422) #13
  br label %2441

2424:                                             ; preds = %2402, %2395
  %2425 = load i32, ptr %61, align 4, !tbaa !5
  %2426 = call ptr @__errno_location() #14
  store i32 %2425, ptr %2426, align 4, !tbaa !5
  %2427 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2428 = load i32, ptr @test_count, align 4, !tbaa !5
  %2429 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2430 = load i32, ptr %2429, align 4, !tbaa !5
  %2431 = call ptr @s2n_strerror(i32 noundef %2430, ptr noundef @.str.60)
  %2432 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2433 = load i32, ptr %2432, align 4, !tbaa !5
  %2434 = call ptr @s2n_strerror_debug(i32 noundef %2433, ptr noundef @.str.60)
  %2435 = call ptr @__errno_location() #14
  %2436 = load i32, ptr %2435, align 4, !tbaa !5
  %2437 = call ptr @strerror(i32 noundef %2436) #13
  %2438 = call ptr @__errno_location() #14
  %2439 = load i32, ptr %2438, align 4, !tbaa !5
  %2440 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2427, ptr noundef @.str.61, i32 noundef %2428, ptr noundef @.str.76, ptr noundef @.str.57, i32 noundef 121, ptr noundef %2431, ptr noundef %2434, ptr noundef %2437, i32 noundef %2439) #13
  br label %2441

2441:                                             ; preds = %2424, %2407
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #13
  br label %2442

2442:                                             ; preds = %2441
  br label %2443

2443:                                             ; preds = %2442
  call void @exit(i32 noundef 1) #15
  unreachable

2444:                                             ; No predecessors!
  br label %2445

2445:                                             ; preds = %2444
  br label %2446

2446:                                             ; preds = %2445, %2384
  br label %2447

2447:                                             ; preds = %2446
  br label %2448

2448:                                             ; preds = %2447
  br label %2449

2449:                                             ; preds = %2448
  %2450 = load i32, ptr @test_count, align 4, !tbaa !5
  %2451 = add nsw i32 %2450, 1
  store i32 %2451, ptr @test_count, align 4, !tbaa !5
  %2452 = load ptr, ptr %57, align 8, !tbaa !9
  %2453 = getelementptr inbounds [19 x i8], ptr %52, i64 0, i64 0
  %2454 = call i32 @s2n_psk_set_identity(ptr noundef %2452, ptr noundef %2453, i16 noundef zeroext 19)
  %2455 = icmp eq i32 %2454, -1
  br i1 %2455, label %2456, label %2509

2456:                                             ; preds = %2449
  br label %2457

2457:                                             ; preds = %2456
  br label %2458

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

2465:                                             ; preds = %2458
  %2466 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2467 = call i32 @fileno(ptr noundef %2466) #13
  %2468 = call i32 @isatty(i32 noundef %2467) #13
  %2469 = icmp ne i32 %2468, 0
  br i1 %2469, label %2470, label %2487

2470:                                             ; preds = %2465
  %2471 = load i32, ptr %62, align 4, !tbaa !5
  %2472 = call ptr @__errno_location() #14
  store i32 %2471, ptr %2472, align 4, !tbaa !5
  %2473 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2474 = load i32, ptr @test_count, align 4, !tbaa !5
  %2475 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2476 = load i32, ptr %2475, align 4, !tbaa !5
  %2477 = call ptr @s2n_strerror(i32 noundef %2476, ptr noundef @.str.60)
  %2478 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2479 = load i32, ptr %2478, align 4, !tbaa !5
  %2480 = call ptr @s2n_strerror_debug(i32 noundef %2479, ptr noundef @.str.60)
  %2481 = call ptr @__errno_location() #14
  %2482 = load i32, ptr %2481, align 4, !tbaa !5
  %2483 = call ptr @strerror(i32 noundef %2482) #13
  %2484 = call ptr @__errno_location() #14
  %2485 = load i32, ptr %2484, align 4, !tbaa !5
  %2486 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2473, ptr noundef @.str.58, i32 noundef %2474, ptr noundef @.str.77, ptr noundef @.str.57, i32 noundef 122, ptr noundef %2477, ptr noundef %2480, ptr noundef %2483, i32 noundef %2485) #13
  br label %2504

2487:                                             ; preds = %2465, %2458
  %2488 = load i32, ptr %62, align 4, !tbaa !5
  %2489 = call ptr @__errno_location() #14
  store i32 %2488, ptr %2489, align 4, !tbaa !5
  %2490 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2491 = load i32, ptr @test_count, align 4, !tbaa !5
  %2492 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2493 = load i32, ptr %2492, align 4, !tbaa !5
  %2494 = call ptr @s2n_strerror(i32 noundef %2493, ptr noundef @.str.60)
  %2495 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2496 = load i32, ptr %2495, align 4, !tbaa !5
  %2497 = call ptr @s2n_strerror_debug(i32 noundef %2496, ptr noundef @.str.60)
  %2498 = call ptr @__errno_location() #14
  %2499 = load i32, ptr %2498, align 4, !tbaa !5
  %2500 = call ptr @strerror(i32 noundef %2499) #13
  %2501 = call ptr @__errno_location() #14
  %2502 = load i32, ptr %2501, align 4, !tbaa !5
  %2503 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2490, ptr noundef @.str.61, i32 noundef %2491, ptr noundef @.str.77, ptr noundef @.str.57, i32 noundef 122, ptr noundef %2494, ptr noundef %2497, ptr noundef %2500, i32 noundef %2502) #13
  br label %2504

2504:                                             ; preds = %2487, %2470
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #13
  br label %2505

2505:                                             ; preds = %2504
  br label %2506

2506:                                             ; preds = %2505
  call void @exit(i32 noundef 1) #15
  unreachable

2507:                                             ; No predecessors!
  br label %2508

2508:                                             ; preds = %2507
  br label %2509

2509:                                             ; preds = %2508, %2449
  br label %2510

2510:                                             ; preds = %2509
  br label %2511

2511:                                             ; preds = %2510
  br label %2512

2512:                                             ; preds = %2511
  %2513 = load i32, ptr @test_count, align 4, !tbaa !5
  %2514 = add nsw i32 %2513, 1
  store i32 %2514, ptr @test_count, align 4, !tbaa !5
  %2515 = load ptr, ptr %57, align 8, !tbaa !9
  %2516 = getelementptr inbounds %struct.s2n_psk, ptr %2515, i32 0, i32 1
  %2517 = getelementptr inbounds %struct.s2n_blob, ptr %2516, i32 0, i32 1
  %2518 = load i32, ptr %2517, align 8, !tbaa !52
  %2519 = icmp eq i32 %2518, 0
  br i1 %2519, label %2520, label %2573

2520:                                             ; preds = %2512
  br label %2521

2521:                                             ; preds = %2520
  br label %2522

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

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

2534:                                             ; preds = %2529
  %2535 = load i32, ptr %63, align 4, !tbaa !5
  %2536 = call ptr @__errno_location() #14
  store i32 %2535, ptr %2536, align 4, !tbaa !5
  %2537 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2538 = load i32, ptr @test_count, align 4, !tbaa !5
  %2539 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2540 = load i32, ptr %2539, align 4, !tbaa !5
  %2541 = call ptr @s2n_strerror(i32 noundef %2540, ptr noundef @.str.60)
  %2542 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2543 = load i32, ptr %2542, align 4, !tbaa !5
  %2544 = call ptr @s2n_strerror_debug(i32 noundef %2543, ptr noundef @.str.60)
  %2545 = call ptr @__errno_location() #14
  %2546 = load i32, ptr %2545, align 4, !tbaa !5
  %2547 = call ptr @strerror(i32 noundef %2546) #13
  %2548 = call ptr @__errno_location() #14
  %2549 = load i32, ptr %2548, align 4, !tbaa !5
  %2550 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2537, ptr noundef @.str.58, i32 noundef %2538, ptr noundef @.str.78, ptr noundef @.str.57, i32 noundef 123, ptr noundef %2541, ptr noundef %2544, ptr noundef %2547, i32 noundef %2549) #13
  br label %2568

2551:                                             ; preds = %2529, %2522
  %2552 = load i32, ptr %63, align 4, !tbaa !5
  %2553 = call ptr @__errno_location() #14
  store i32 %2552, ptr %2553, align 4, !tbaa !5
  %2554 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2555 = load i32, ptr @test_count, align 4, !tbaa !5
  %2556 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2557 = load i32, ptr %2556, align 4, !tbaa !5
  %2558 = call ptr @s2n_strerror(i32 noundef %2557, ptr noundef @.str.60)
  %2559 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2560 = load i32, ptr %2559, align 4, !tbaa !5
  %2561 = call ptr @s2n_strerror_debug(i32 noundef %2560, ptr noundef @.str.60)
  %2562 = call ptr @__errno_location() #14
  %2563 = load i32, ptr %2562, align 4, !tbaa !5
  %2564 = call ptr @strerror(i32 noundef %2563) #13
  %2565 = call ptr @__errno_location() #14
  %2566 = load i32, ptr %2565, align 4, !tbaa !5
  %2567 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2554, ptr noundef @.str.61, i32 noundef %2555, ptr noundef @.str.78, ptr noundef @.str.57, i32 noundef 123, ptr noundef %2558, ptr noundef %2561, ptr noundef %2564, i32 noundef %2566) #13
  br label %2568

2568:                                             ; preds = %2551, %2534
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #13
  br label %2569

2569:                                             ; preds = %2568
  br label %2570

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

2571:                                             ; No predecessors!
  br label %2572

2572:                                             ; preds = %2571
  br label %2573

2573:                                             ; preds = %2572, %2512
  br label %2574

2574:                                             ; preds = %2573
  br label %2575

2575:                                             ; preds = %2574
  br label %2576

2576:                                             ; preds = %2575
  %2577 = load i32, ptr @test_count, align 4, !tbaa !5
  %2578 = add nsw i32 %2577, 1
  store i32 %2578, ptr @test_count, align 4, !tbaa !5
  %2579 = load ptr, ptr %57, align 8, !tbaa !9
  %2580 = getelementptr inbounds %struct.s2n_psk, ptr %2579, i32 0, i32 1
  %2581 = getelementptr inbounds %struct.s2n_blob, ptr %2580, i32 0, i32 0
  %2582 = load ptr, ptr %2581, align 8, !tbaa !55
  %2583 = icmp eq ptr %2582, null
  br i1 %2583, label %2584, label %2637

2584:                                             ; preds = %2576
  br label %2585

2585:                                             ; preds = %2584
  br label %2586

2586:                                             ; preds = %2585
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #13
  %2587 = call ptr @__errno_location() #14
  %2588 = load i32, ptr %2587, align 4, !tbaa !5
  store i32 %2588, ptr %64, align 4, !tbaa !5
  %2589 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2590 = call i32 @s2n_print_stacktrace(ptr noundef %2589)
  %2591 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2592 = trunc i8 %2591 to i1
  br i1 %2592, label %2593, label %2615

2593:                                             ; preds = %2586
  %2594 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2595 = call i32 @fileno(ptr noundef %2594) #13
  %2596 = call i32 @isatty(i32 noundef %2595) #13
  %2597 = icmp ne i32 %2596, 0
  br i1 %2597, label %2598, label %2615

2598:                                             ; preds = %2593
  %2599 = load i32, ptr %64, align 4, !tbaa !5
  %2600 = call ptr @__errno_location() #14
  store i32 %2599, ptr %2600, align 4, !tbaa !5
  %2601 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2602 = load i32, ptr @test_count, align 4, !tbaa !5
  %2603 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2604 = load i32, ptr %2603, align 4, !tbaa !5
  %2605 = call ptr @s2n_strerror(i32 noundef %2604, ptr noundef @.str.60)
  %2606 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2607 = load i32, ptr %2606, align 4, !tbaa !5
  %2608 = call ptr @s2n_strerror_debug(i32 noundef %2607, ptr noundef @.str.60)
  %2609 = call ptr @__errno_location() #14
  %2610 = load i32, ptr %2609, align 4, !tbaa !5
  %2611 = call ptr @strerror(i32 noundef %2610) #13
  %2612 = call ptr @__errno_location() #14
  %2613 = load i32, ptr %2612, align 4, !tbaa !5
  %2614 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2601, ptr noundef @.str.58, i32 noundef %2602, ptr noundef @.str.79, ptr noundef @.str.57, i32 noundef 124, ptr noundef %2605, ptr noundef %2608, ptr noundef %2611, i32 noundef %2613) #13
  br label %2632

2615:                                             ; preds = %2593, %2586
  %2616 = load i32, ptr %64, align 4, !tbaa !5
  %2617 = call ptr @__errno_location() #14
  store i32 %2616, ptr %2617, align 4, !tbaa !5
  %2618 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2619 = load i32, ptr @test_count, align 4, !tbaa !5
  %2620 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2621 = load i32, ptr %2620, align 4, !tbaa !5
  %2622 = call ptr @s2n_strerror(i32 noundef %2621, ptr noundef @.str.60)
  %2623 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2624 = load i32, ptr %2623, align 4, !tbaa !5
  %2625 = call ptr @s2n_strerror_debug(i32 noundef %2624, ptr noundef @.str.60)
  %2626 = call ptr @__errno_location() #14
  %2627 = load i32, ptr %2626, align 4, !tbaa !5
  %2628 = call ptr @strerror(i32 noundef %2627) #13
  %2629 = call ptr @__errno_location() #14
  %2630 = load i32, ptr %2629, align 4, !tbaa !5
  %2631 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2618, ptr noundef @.str.61, i32 noundef %2619, ptr noundef @.str.79, ptr noundef @.str.57, i32 noundef 124, ptr noundef %2622, ptr noundef %2625, ptr noundef %2628, i32 noundef %2630) #13
  br label %2632

2632:                                             ; preds = %2615, %2598
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #13
  br label %2633

2633:                                             ; preds = %2632
  br label %2634

2634:                                             ; preds = %2633
  call void @exit(i32 noundef 1) #15
  unreachable

2635:                                             ; No predecessors!
  br label %2636

2636:                                             ; preds = %2635
  br label %2637

2637:                                             ; preds = %2636, %2576
  br label %2638

2638:                                             ; preds = %2637
  br label %2639

2639:                                             ; preds = %2638
  br label %2640

2640:                                             ; preds = %2639
  %2641 = load i32, ptr @test_count, align 4, !tbaa !5
  %2642 = add nsw i32 %2641, 1
  store i32 %2642, ptr @test_count, align 4, !tbaa !5
  %2643 = load ptr, ptr %57, align 8, !tbaa !9
  %2644 = getelementptr inbounds [17 x i8], ptr %53, i64 0, i64 0
  %2645 = call i32 @s2n_psk_set_secret(ptr noundef %2643, ptr noundef %2644, i16 noundef zeroext 17)
  %2646 = icmp eq i32 %2645, -1
  br i1 %2646, label %2647, label %2700

2647:                                             ; preds = %2640
  br label %2648

2648:                                             ; preds = %2647
  br label %2649

2649:                                             ; preds = %2648
  call void @llvm.lifetime.start.p0(i64 4, ptr %65) #13
  %2650 = call ptr @__errno_location() #14
  %2651 = load i32, ptr %2650, align 4, !tbaa !5
  store i32 %2651, ptr %65, align 4, !tbaa !5
  %2652 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2653 = call i32 @s2n_print_stacktrace(ptr noundef %2652)
  %2654 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2655 = trunc i8 %2654 to i1
  br i1 %2655, label %2656, label %2678

2656:                                             ; preds = %2649
  %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
  %2660 = icmp ne i32 %2659, 0
  br i1 %2660, label %2661, label %2678

2661:                                             ; preds = %2656
  %2662 = load i32, ptr %65, align 4, !tbaa !5
  %2663 = call ptr @__errno_location() #14
  store i32 %2662, ptr %2663, align 4, !tbaa !5
  %2664 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2665 = load i32, ptr @test_count, align 4, !tbaa !5
  %2666 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2667 = load i32, ptr %2666, align 4, !tbaa !5
  %2668 = call ptr @s2n_strerror(i32 noundef %2667, ptr noundef @.str.60)
  %2669 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2670 = load i32, ptr %2669, align 4, !tbaa !5
  %2671 = call ptr @s2n_strerror_debug(i32 noundef %2670, ptr noundef @.str.60)
  %2672 = call ptr @__errno_location() #14
  %2673 = load i32, ptr %2672, align 4, !tbaa !5
  %2674 = call ptr @strerror(i32 noundef %2673) #13
  %2675 = call ptr @__errno_location() #14
  %2676 = load i32, ptr %2675, align 4, !tbaa !5
  %2677 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2664, ptr noundef @.str.58, i32 noundef %2665, ptr noundef @.str.80, ptr noundef @.str.57, i32 noundef 125, ptr noundef %2668, ptr noundef %2671, ptr noundef %2674, i32 noundef %2676) #13
  br label %2695

2678:                                             ; preds = %2656, %2649
  %2679 = load i32, ptr %65, align 4, !tbaa !5
  %2680 = call ptr @__errno_location() #14
  store i32 %2679, ptr %2680, align 4, !tbaa !5
  %2681 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2682 = load i32, ptr @test_count, align 4, !tbaa !5
  %2683 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2684 = load i32, ptr %2683, align 4, !tbaa !5
  %2685 = call ptr @s2n_strerror(i32 noundef %2684, ptr noundef @.str.60)
  %2686 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2687 = load i32, ptr %2686, align 4, !tbaa !5
  %2688 = call ptr @s2n_strerror_debug(i32 noundef %2687, ptr noundef @.str.60)
  %2689 = call ptr @__errno_location() #14
  %2690 = load i32, ptr %2689, align 4, !tbaa !5
  %2691 = call ptr @strerror(i32 noundef %2690) #13
  %2692 = call ptr @__errno_location() #14
  %2693 = load i32, ptr %2692, align 4, !tbaa !5
  %2694 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2681, ptr noundef @.str.61, i32 noundef %2682, ptr noundef @.str.80, ptr noundef @.str.57, i32 noundef 125, ptr noundef %2685, ptr noundef %2688, ptr noundef %2691, i32 noundef %2693) #13
  br label %2695

2695:                                             ; preds = %2678, %2661
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #13
  br label %2696

2696:                                             ; preds = %2695
  br label %2697

2697:                                             ; preds = %2696
  call void @exit(i32 noundef 1) #15
  unreachable

2698:                                             ; No predecessors!
  br label %2699

2699:                                             ; preds = %2698
  br label %2700

2700:                                             ; preds = %2699, %2640
  br label %2701

2701:                                             ; preds = %2700
  br label %2702

2702:                                             ; preds = %2701
  br label %2703

2703:                                             ; preds = %2702
  %2704 = load i32, ptr @test_count, align 4, !tbaa !5
  %2705 = add nsw i32 %2704, 1
  store i32 %2705, ptr @test_count, align 4, !tbaa !5
  %2706 = load ptr, ptr %57, align 8, !tbaa !9
  %2707 = getelementptr inbounds %struct.s2n_psk, ptr %2706, i32 0, i32 2
  %2708 = getelementptr inbounds %struct.s2n_blob, ptr %2707, i32 0, i32 1
  %2709 = load i32, ptr %2708, align 8, !tbaa !56
  %2710 = icmp eq i32 %2709, 0
  br i1 %2710, label %2711, label %2764

2711:                                             ; preds = %2703
  br label %2712

2712:                                             ; preds = %2711
  br label %2713

2713:                                             ; preds = %2712
  call void @llvm.lifetime.start.p0(i64 4, ptr %66) #13
  %2714 = call ptr @__errno_location() #14
  %2715 = load i32, ptr %2714, align 4, !tbaa !5
  store i32 %2715, ptr %66, align 4, !tbaa !5
  %2716 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2717 = call i32 @s2n_print_stacktrace(ptr noundef %2716)
  %2718 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2719 = trunc i8 %2718 to i1
  br i1 %2719, label %2720, label %2742

2720:                                             ; preds = %2713
  %2721 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2722 = call i32 @fileno(ptr noundef %2721) #13
  %2723 = call i32 @isatty(i32 noundef %2722) #13
  %2724 = icmp ne i32 %2723, 0
  br i1 %2724, label %2725, label %2742

2725:                                             ; preds = %2720
  %2726 = load i32, ptr %66, align 4, !tbaa !5
  %2727 = call ptr @__errno_location() #14
  store i32 %2726, ptr %2727, align 4, !tbaa !5
  %2728 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2729 = load i32, ptr @test_count, align 4, !tbaa !5
  %2730 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2731 = load i32, ptr %2730, align 4, !tbaa !5
  %2732 = call ptr @s2n_strerror(i32 noundef %2731, ptr noundef @.str.60)
  %2733 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2734 = load i32, ptr %2733, align 4, !tbaa !5
  %2735 = call ptr @s2n_strerror_debug(i32 noundef %2734, ptr noundef @.str.60)
  %2736 = call ptr @__errno_location() #14
  %2737 = load i32, ptr %2736, align 4, !tbaa !5
  %2738 = call ptr @strerror(i32 noundef %2737) #13
  %2739 = call ptr @__errno_location() #14
  %2740 = load i32, ptr %2739, align 4, !tbaa !5
  %2741 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2728, ptr noundef @.str.58, i32 noundef %2729, ptr noundef @.str.81, ptr noundef @.str.57, i32 noundef 126, ptr noundef %2732, ptr noundef %2735, ptr noundef %2738, i32 noundef %2740) #13
  br label %2759

2742:                                             ; preds = %2720, %2713
  %2743 = load i32, ptr %66, align 4, !tbaa !5
  %2744 = call ptr @__errno_location() #14
  store i32 %2743, ptr %2744, align 4, !tbaa !5
  %2745 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2746 = load i32, ptr @test_count, align 4, !tbaa !5
  %2747 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2748 = load i32, ptr %2747, align 4, !tbaa !5
  %2749 = call ptr @s2n_strerror(i32 noundef %2748, ptr noundef @.str.60)
  %2750 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2751 = load i32, ptr %2750, align 4, !tbaa !5
  %2752 = call ptr @s2n_strerror_debug(i32 noundef %2751, ptr noundef @.str.60)
  %2753 = call ptr @__errno_location() #14
  %2754 = load i32, ptr %2753, align 4, !tbaa !5
  %2755 = call ptr @strerror(i32 noundef %2754) #13
  %2756 = call ptr @__errno_location() #14
  %2757 = load i32, ptr %2756, align 4, !tbaa !5
  %2758 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2745, ptr noundef @.str.61, i32 noundef %2746, ptr noundef @.str.81, ptr noundef @.str.57, i32 noundef 126, ptr noundef %2749, ptr noundef %2752, ptr noundef %2755, i32 noundef %2757) #13
  br label %2759

2759:                                             ; preds = %2742, %2725
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #13
  br label %2760

2760:                                             ; preds = %2759
  br label %2761

2761:                                             ; preds = %2760
  call void @exit(i32 noundef 1) #15
  unreachable

2762:                                             ; No predecessors!
  br label %2763

2763:                                             ; preds = %2762
  br label %2764

2764:                                             ; preds = %2763, %2703
  br label %2765

2765:                                             ; preds = %2764
  br label %2766

2766:                                             ; preds = %2765
  br label %2767

2767:                                             ; preds = %2766
  %2768 = load i32, ptr @test_count, align 4, !tbaa !5
  %2769 = add nsw i32 %2768, 1
  store i32 %2769, ptr @test_count, align 4, !tbaa !5
  %2770 = load ptr, ptr %57, align 8, !tbaa !9
  %2771 = getelementptr inbounds %struct.s2n_psk, ptr %2770, i32 0, i32 2
  %2772 = getelementptr inbounds %struct.s2n_blob, ptr %2771, i32 0, i32 0
  %2773 = load ptr, ptr %2772, align 8, !tbaa !57
  %2774 = icmp eq ptr %2773, null
  br i1 %2774, label %2775, label %2828

2775:                                             ; preds = %2767
  br label %2776

2776:                                             ; preds = %2775
  br label %2777

2777:                                             ; preds = %2776
  call void @llvm.lifetime.start.p0(i64 4, ptr %67) #13
  %2778 = call ptr @__errno_location() #14
  %2779 = load i32, ptr %2778, align 4, !tbaa !5
  store i32 %2779, ptr %67, align 4, !tbaa !5
  %2780 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2781 = call i32 @s2n_print_stacktrace(ptr noundef %2780)
  %2782 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2783 = trunc i8 %2782 to i1
  br i1 %2783, label %2784, label %2806

2784:                                             ; preds = %2777
  %2785 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2786 = call i32 @fileno(ptr noundef %2785) #13
  %2787 = call i32 @isatty(i32 noundef %2786) #13
  %2788 = icmp ne i32 %2787, 0
  br i1 %2788, label %2789, label %2806

2789:                                             ; preds = %2784
  %2790 = load i32, ptr %67, align 4, !tbaa !5
  %2791 = call ptr @__errno_location() #14
  store i32 %2790, ptr %2791, align 4, !tbaa !5
  %2792 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2793 = load i32, ptr @test_count, align 4, !tbaa !5
  %2794 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2795 = load i32, ptr %2794, align 4, !tbaa !5
  %2796 = call ptr @s2n_strerror(i32 noundef %2795, ptr noundef @.str.60)
  %2797 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2798 = load i32, ptr %2797, align 4, !tbaa !5
  %2799 = call ptr @s2n_strerror_debug(i32 noundef %2798, ptr noundef @.str.60)
  %2800 = call ptr @__errno_location() #14
  %2801 = load i32, ptr %2800, align 4, !tbaa !5
  %2802 = call ptr @strerror(i32 noundef %2801) #13
  %2803 = call ptr @__errno_location() #14
  %2804 = load i32, ptr %2803, align 4, !tbaa !5
  %2805 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2792, ptr noundef @.str.58, i32 noundef %2793, ptr noundef @.str.82, ptr noundef @.str.57, i32 noundef 127, ptr noundef %2796, ptr noundef %2799, ptr noundef %2802, i32 noundef %2804) #13
  br label %2823

2806:                                             ; preds = %2784, %2777
  %2807 = load i32, ptr %67, align 4, !tbaa !5
  %2808 = call ptr @__errno_location() #14
  store i32 %2807, ptr %2808, align 4, !tbaa !5
  %2809 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2810 = load i32, ptr @test_count, align 4, !tbaa !5
  %2811 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2812 = load i32, ptr %2811, align 4, !tbaa !5
  %2813 = call ptr @s2n_strerror(i32 noundef %2812, ptr noundef @.str.60)
  %2814 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2815 = load i32, ptr %2814, align 4, !tbaa !5
  %2816 = call ptr @s2n_strerror_debug(i32 noundef %2815, ptr noundef @.str.60)
  %2817 = call ptr @__errno_location() #14
  %2818 = load i32, ptr %2817, align 4, !tbaa !5
  %2819 = call ptr @strerror(i32 noundef %2818) #13
  %2820 = call ptr @__errno_location() #14
  %2821 = load i32, ptr %2820, align 4, !tbaa !5
  %2822 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2809, ptr noundef @.str.61, i32 noundef %2810, ptr noundef @.str.82, ptr noundef @.str.57, i32 noundef 127, ptr noundef %2813, ptr noundef %2816, ptr noundef %2819, i32 noundef %2821) #13
  br label %2823

2823:                                             ; preds = %2806, %2789
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #13
  br label %2824

2824:                                             ; preds = %2823
  br label %2825

2825:                                             ; preds = %2824
  call void @exit(i32 noundef 1) #15
  unreachable

2826:                                             ; No predecessors!
  br label %2827

2827:                                             ; preds = %2826
  br label %2828

2828:                                             ; preds = %2827, %2767
  br label %2829

2829:                                             ; preds = %2828
  br label %2830

2830:                                             ; preds = %2829
  br label %2831

2831:                                             ; preds = %2830
  %2832 = load i32, ptr @test_count, align 4, !tbaa !5
  %2833 = add nsw i32 %2832, 1
  store i32 %2833, ptr @test_count, align 4, !tbaa !5
  %2834 = load ptr, ptr %57, align 8, !tbaa !9
  %2835 = getelementptr inbounds %struct.s2n_psk, ptr %2834, i32 0, i32 6
  %2836 = call i32 @s2n_realloc(ptr noundef %2835, i32 noundef 32)
  %2837 = icmp eq i32 %2836, -1
  br i1 %2837, label %2838, label %2891

2838:                                             ; preds = %2831
  br label %2839

2839:                                             ; preds = %2838
  br label %2840

2840:                                             ; preds = %2839
  call void @llvm.lifetime.start.p0(i64 4, ptr %68) #13
  %2841 = call ptr @__errno_location() #14
  %2842 = load i32, ptr %2841, align 4, !tbaa !5
  store i32 %2842, ptr %68, align 4, !tbaa !5
  %2843 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2844 = call i32 @s2n_print_stacktrace(ptr noundef %2843)
  %2845 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2846 = trunc i8 %2845 to i1
  br i1 %2846, label %2847, label %2869

2847:                                             ; preds = %2840
  %2848 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2849 = call i32 @fileno(ptr noundef %2848) #13
  %2850 = call i32 @isatty(i32 noundef %2849) #13
  %2851 = icmp ne i32 %2850, 0
  br i1 %2851, label %2852, label %2869

2852:                                             ; preds = %2847
  %2853 = load i32, ptr %68, align 4, !tbaa !5
  %2854 = call ptr @__errno_location() #14
  store i32 %2853, ptr %2854, align 4, !tbaa !5
  %2855 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2856 = load i32, ptr @test_count, align 4, !tbaa !5
  %2857 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2858 = load i32, ptr %2857, align 4, !tbaa !5
  %2859 = call ptr @s2n_strerror(i32 noundef %2858, ptr noundef @.str.60)
  %2860 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2861 = load i32, ptr %2860, align 4, !tbaa !5
  %2862 = call ptr @s2n_strerror_debug(i32 noundef %2861, ptr noundef @.str.60)
  %2863 = call ptr @__errno_location() #14
  %2864 = load i32, ptr %2863, align 4, !tbaa !5
  %2865 = call ptr @strerror(i32 noundef %2864) #13
  %2866 = call ptr @__errno_location() #14
  %2867 = load i32, ptr %2866, align 4, !tbaa !5
  %2868 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2855, ptr noundef @.str.58, i32 noundef %2856, ptr noundef @.str.93, ptr noundef @.str.57, i32 noundef 128, ptr noundef %2859, ptr noundef %2862, ptr noundef %2865, i32 noundef %2867) #13
  br label %2886

2869:                                             ; preds = %2847, %2840
  %2870 = load i32, ptr %68, align 4, !tbaa !5
  %2871 = call ptr @__errno_location() #14
  store i32 %2870, ptr %2871, align 4, !tbaa !5
  %2872 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2873 = load i32, ptr @test_count, align 4, !tbaa !5
  %2874 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2875 = load i32, ptr %2874, align 4, !tbaa !5
  %2876 = call ptr @s2n_strerror(i32 noundef %2875, ptr noundef @.str.60)
  %2877 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2878 = load i32, ptr %2877, align 4, !tbaa !5
  %2879 = call ptr @s2n_strerror_debug(i32 noundef %2878, ptr noundef @.str.60)
  %2880 = call ptr @__errno_location() #14
  %2881 = load i32, ptr %2880, align 4, !tbaa !5
  %2882 = call ptr @strerror(i32 noundef %2881) #13
  %2883 = call ptr @__errno_location() #14
  %2884 = load i32, ptr %2883, align 4, !tbaa !5
  %2885 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2872, ptr noundef @.str.61, i32 noundef %2873, ptr noundef @.str.93, ptr noundef @.str.57, i32 noundef 128, ptr noundef %2876, ptr noundef %2879, ptr noundef %2882, i32 noundef %2884) #13
  br label %2886

2886:                                             ; preds = %2869, %2852
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #13
  br label %2887

2887:                                             ; preds = %2886
  br label %2888

2888:                                             ; preds = %2887
  call void @exit(i32 noundef 1) #15
  unreachable

2889:                                             ; No predecessors!
  br label %2890

2890:                                             ; preds = %2889
  br label %2891

2891:                                             ; preds = %2890, %2831
  br label %2892

2892:                                             ; preds = %2891
  br label %2893

2893:                                             ; preds = %2892
  br label %2894

2894:                                             ; preds = %2893
  call void @llvm.lifetime.start.p0(i64 8, ptr %69) #13
  store i64 32, ptr %69, align 8, !tbaa !51
  %2895 = load i64, ptr %69, align 8, !tbaa !51
  %2896 = icmp ne i64 %2895, 0
  %2897 = xor i1 %2896, true
  %2898 = xor i1 %2897, true
  %2899 = zext i1 %2898 to i32
  %2900 = sext i32 %2899 to i64
  %2901 = call i64 @llvm.expect.i64(i64 %2900, i64 1)
  %2902 = icmp ne i64 %2901, 0
  br i1 %2902, label %2903, label %2953

2903:                                             ; preds = %2894
  call void @llvm.lifetime.start.p0(i64 8, ptr %70) #13
  %2904 = load ptr, ptr %57, align 8, !tbaa !9
  %2905 = getelementptr inbounds %struct.s2n_psk, ptr %2904, i32 0, i32 6
  %2906 = getelementptr inbounds %struct.s2n_blob, ptr %2905, i32 0, i32 0
  %2907 = load ptr, ptr %2906, align 8, !tbaa !64
  %2908 = getelementptr inbounds [32 x i8], ptr %54, i64 0, i64 0
  %2909 = load i64, ptr %69, align 8, !tbaa !51
  %2910 = call ptr @s2n_ensure_memmove_trace(ptr noundef %2907, ptr noundef %2908, i64 noundef %2909)
  store ptr %2910, ptr %70, align 8, !tbaa !9
  br label %2911

2911:                                             ; preds = %2903
  %2912 = load ptr, ptr %70, align 8, !tbaa !9
  %2913 = icmp ne ptr %2912, null
  br i1 %2913, label %2947, label %2914

2914:                                             ; preds = %2911
  br label %2915

2915:                                             ; preds = %2914
  br label %2916

2916:                                             ; preds = %2915
  %2917 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %2918 = getelementptr inbounds %struct.s2n_debug_info, ptr %2917, i32 0, i32 0
  store ptr @.str.94, ptr %2918, align 8, !tbaa !65
  %2919 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %2920 = getelementptr inbounds %struct.s2n_debug_info, ptr %2919, i32 0, i32 0
  %2921 = load ptr, ptr %2920, align 8, !tbaa !65
  %2922 = getelementptr inbounds i8, ptr %2921, i64 21
  %2923 = call ptr @strrchr(ptr noundef %2922, i32 noundef 47) #16
  %2924 = icmp ne ptr %2923, null
  br i1 %2924, label %2925, label %2932

2925:                                             ; preds = %2916
  %2926 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %2927 = getelementptr inbounds %struct.s2n_debug_info, ptr %2926, i32 0, i32 0
  %2928 = load ptr, ptr %2927, align 8, !tbaa !65
  %2929 = getelementptr inbounds i8, ptr %2928, i64 21
  %2930 = call ptr @strrchr(ptr noundef %2929, i32 noundef 47) #16
  %2931 = getelementptr inbounds i8, ptr %2930, i64 1
  br label %2937

2932:                                             ; preds = %2916
  %2933 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %2934 = getelementptr inbounds %struct.s2n_debug_info, ptr %2933, i32 0, i32 0
  %2935 = load ptr, ptr %2934, align 8, !tbaa !65
  %2936 = getelementptr inbounds i8, ptr %2935, i64 21
  br label %2937

2937:                                             ; preds = %2932, %2925
  %2938 = phi ptr [ %2931, %2925 ], [ %2936, %2932 ]
  %2939 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %2940 = getelementptr inbounds %struct.s2n_debug_info, ptr %2939, i32 0, i32 1
  store ptr %2938, ptr %2940, align 8, !tbaa !67
  %2941 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 402653193, ptr %2941, align 4, !tbaa !5
  %2942 = call i32 @s2n_calculate_stacktrace()
  br label %2943

2943:                                             ; preds = %2937
  br label %2944

2944:                                             ; preds = %2943
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %56, align 4
  br label %2950

2945:                                             ; No predecessors!
  br label %2946

2946:                                             ; preds = %2945
  br label %2947

2947:                                             ; preds = %2946, %2911
  br label %2948

2948:                                             ; preds = %2947
  br label %2949

2949:                                             ; preds = %2948
  store i32 0, ptr %56, align 4
  br label %2950

2950:                                             ; preds = %2949, %2944
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #13
  %2951 = load i32, ptr %56, align 4
  switch i32 %2951, label %2954 [
    i32 0, label %2952
  ]

2952:                                             ; preds = %2950
  br label %2953

2953:                                             ; preds = %2952, %2894
  store i32 0, ptr %56, align 4
  br label %2954

2954:                                             ; preds = %2953, %2950
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #13
  %2955 = load i32, ptr %56, align 4
  switch i32 %2955, label %3087 [
    i32 0, label %2956
  ]

2956:                                             ; preds = %2954
  br label %2957

2957:                                             ; preds = %2956
  br label %2958

2958:                                             ; preds = %2957
  br label %2959

2959:                                             ; preds = %2958
  %2960 = load i32, ptr @test_count, align 4, !tbaa !5
  %2961 = add nsw i32 %2960, 1
  store i32 %2961, ptr @test_count, align 4, !tbaa !5
  %2962 = load ptr, ptr %57, align 8, !tbaa !9
  %2963 = getelementptr inbounds %struct.s2n_psk, ptr %2962, i32 0, i32 6
  %2964 = getelementptr inbounds %struct.s2n_blob, ptr %2963, i32 0, i32 1
  %2965 = load i32, ptr %2964, align 8, !tbaa !68
  %2966 = icmp eq i32 %2965, 0
  br i1 %2966, label %2967, label %3020

2967:                                             ; preds = %2959
  br label %2968

2968:                                             ; preds = %2967
  br label %2969

2969:                                             ; preds = %2968
  call void @llvm.lifetime.start.p0(i64 4, ptr %71) #13
  %2970 = call ptr @__errno_location() #14
  %2971 = load i32, ptr %2970, align 4, !tbaa !5
  store i32 %2971, ptr %71, align 4, !tbaa !5
  %2972 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2973 = call i32 @s2n_print_stacktrace(ptr noundef %2972)
  %2974 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2975 = trunc i8 %2974 to i1
  br i1 %2975, label %2976, label %2998

2976:                                             ; preds = %2969
  %2977 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2978 = call i32 @fileno(ptr noundef %2977) #13
  %2979 = call i32 @isatty(i32 noundef %2978) #13
  %2980 = icmp ne i32 %2979, 0
  br i1 %2980, label %2981, label %2998

2981:                                             ; preds = %2976
  %2982 = load i32, ptr %71, align 4, !tbaa !5
  %2983 = call ptr @__errno_location() #14
  store i32 %2982, ptr %2983, align 4, !tbaa !5
  %2984 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2985 = load i32, ptr @test_count, align 4, !tbaa !5
  %2986 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2987 = load i32, ptr %2986, align 4, !tbaa !5
  %2988 = call ptr @s2n_strerror(i32 noundef %2987, ptr noundef @.str.60)
  %2989 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2990 = load i32, ptr %2989, align 4, !tbaa !5
  %2991 = call ptr @s2n_strerror_debug(i32 noundef %2990, ptr noundef @.str.60)
  %2992 = call ptr @__errno_location() #14
  %2993 = load i32, ptr %2992, align 4, !tbaa !5
  %2994 = call ptr @strerror(i32 noundef %2993) #13
  %2995 = call ptr @__errno_location() #14
  %2996 = load i32, ptr %2995, align 4, !tbaa !5
  %2997 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2984, ptr noundef @.str.58, i32 noundef %2985, ptr noundef @.str.95, ptr noundef @.str.57, i32 noundef 130, ptr noundef %2988, ptr noundef %2991, ptr noundef %2994, i32 noundef %2996) #13
  br label %3015

2998:                                             ; preds = %2976, %2969
  %2999 = load i32, ptr %71, align 4, !tbaa !5
  %3000 = call ptr @__errno_location() #14
  store i32 %2999, ptr %3000, align 4, !tbaa !5
  %3001 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3002 = load i32, ptr @test_count, align 4, !tbaa !5
  %3003 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3004 = load i32, ptr %3003, align 4, !tbaa !5
  %3005 = call ptr @s2n_strerror(i32 noundef %3004, ptr noundef @.str.60)
  %3006 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3007 = load i32, ptr %3006, align 4, !tbaa !5
  %3008 = call ptr @s2n_strerror_debug(i32 noundef %3007, ptr noundef @.str.60)
  %3009 = call ptr @__errno_location() #14
  %3010 = load i32, ptr %3009, align 4, !tbaa !5
  %3011 = call ptr @strerror(i32 noundef %3010) #13
  %3012 = call ptr @__errno_location() #14
  %3013 = load i32, ptr %3012, align 4, !tbaa !5
  %3014 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3001, ptr noundef @.str.61, i32 noundef %3002, ptr noundef @.str.95, ptr noundef @.str.57, i32 noundef 130, ptr noundef %3005, ptr noundef %3008, ptr noundef %3011, i32 noundef %3013) #13
  br label %3015

3015:                                             ; preds = %2998, %2981
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #13
  br label %3016

3016:                                             ; preds = %3015
  br label %3017

3017:                                             ; preds = %3016
  call void @exit(i32 noundef 1) #15
  unreachable

3018:                                             ; No predecessors!
  br label %3019

3019:                                             ; preds = %3018
  br label %3020

3020:                                             ; preds = %3019, %2959
  br label %3021

3021:                                             ; preds = %3020
  br label %3022

3022:                                             ; preds = %3021
  br label %3023

3023:                                             ; preds = %3022
  %3024 = load i32, ptr @test_count, align 4, !tbaa !5
  %3025 = add nsw i32 %3024, 1
  store i32 %3025, ptr @test_count, align 4, !tbaa !5
  %3026 = load ptr, ptr %57, align 8, !tbaa !9
  %3027 = getelementptr inbounds %struct.s2n_psk, ptr %3026, i32 0, i32 6
  %3028 = getelementptr inbounds %struct.s2n_blob, ptr %3027, i32 0, i32 0
  %3029 = load ptr, ptr %3028, align 8, !tbaa !64
  %3030 = icmp eq ptr %3029, null
  br i1 %3030, label %3031, label %3084

3031:                                             ; preds = %3023
  br label %3032

3032:                                             ; preds = %3031
  br label %3033

3033:                                             ; preds = %3032
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #13
  %3034 = call ptr @__errno_location() #14
  %3035 = load i32, ptr %3034, align 4, !tbaa !5
  store i32 %3035, ptr %72, align 4, !tbaa !5
  %3036 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3037 = call i32 @s2n_print_stacktrace(ptr noundef %3036)
  %3038 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3039 = trunc i8 %3038 to i1
  br i1 %3039, label %3040, label %3062

3040:                                             ; preds = %3033
  %3041 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3042 = call i32 @fileno(ptr noundef %3041) #13
  %3043 = call i32 @isatty(i32 noundef %3042) #13
  %3044 = icmp ne i32 %3043, 0
  br i1 %3044, label %3045, label %3062

3045:                                             ; preds = %3040
  %3046 = load i32, ptr %72, align 4, !tbaa !5
  %3047 = call ptr @__errno_location() #14
  store i32 %3046, ptr %3047, align 4, !tbaa !5
  %3048 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3049 = load i32, ptr @test_count, align 4, !tbaa !5
  %3050 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3051 = load i32, ptr %3050, align 4, !tbaa !5
  %3052 = call ptr @s2n_strerror(i32 noundef %3051, ptr noundef @.str.60)
  %3053 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3054 = load i32, ptr %3053, align 4, !tbaa !5
  %3055 = call ptr @s2n_strerror_debug(i32 noundef %3054, ptr noundef @.str.60)
  %3056 = call ptr @__errno_location() #14
  %3057 = load i32, ptr %3056, align 4, !tbaa !5
  %3058 = call ptr @strerror(i32 noundef %3057) #13
  %3059 = call ptr @__errno_location() #14
  %3060 = load i32, ptr %3059, align 4, !tbaa !5
  %3061 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3048, ptr noundef @.str.58, i32 noundef %3049, ptr noundef @.str.96, ptr noundef @.str.57, i32 noundef 131, ptr noundef %3052, ptr noundef %3055, ptr noundef %3058, i32 noundef %3060) #13
  br label %3079

3062:                                             ; preds = %3040, %3033
  %3063 = load i32, ptr %72, align 4, !tbaa !5
  %3064 = call ptr @__errno_location() #14
  store i32 %3063, ptr %3064, align 4, !tbaa !5
  %3065 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3066 = load i32, ptr @test_count, align 4, !tbaa !5
  %3067 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3068 = load i32, ptr %3067, align 4, !tbaa !5
  %3069 = call ptr @s2n_strerror(i32 noundef %3068, ptr noundef @.str.60)
  %3070 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3071 = load i32, ptr %3070, align 4, !tbaa !5
  %3072 = call ptr @s2n_strerror_debug(i32 noundef %3071, ptr noundef @.str.60)
  %3073 = call ptr @__errno_location() #14
  %3074 = load i32, ptr %3073, align 4, !tbaa !5
  %3075 = call ptr @strerror(i32 noundef %3074) #13
  %3076 = call ptr @__errno_location() #14
  %3077 = load i32, ptr %3076, align 4, !tbaa !5
  %3078 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3065, ptr noundef @.str.61, i32 noundef %3066, ptr noundef @.str.96, ptr noundef @.str.57, i32 noundef 131, ptr noundef %3069, ptr noundef %3072, ptr noundef %3075, i32 noundef %3077) #13
  br label %3079

3079:                                             ; preds = %3062, %3045
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #13
  br label %3080

3080:                                             ; preds = %3079
  br label %3081

3081:                                             ; preds = %3080
  call void @exit(i32 noundef 1) #15
  unreachable

3082:                                             ; No predecessors!
  br label %3083

3083:                                             ; preds = %3082
  br label %3084

3084:                                             ; preds = %3083, %3023
  br label %3085

3085:                                             ; preds = %3084
  br label %3086

3086:                                             ; preds = %3085
  store i32 0, ptr %56, align 4
  br label %3087

3087:                                             ; preds = %3086, %2954
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #13
  %3088 = load i32, ptr %56, align 4
  switch i32 %3088, label %3093 [
    i32 0, label %3089
  ]

3089:                                             ; preds = %3087
  br label %3090

3090:                                             ; preds = %3089
  %3091 = load i64, ptr %55, align 8, !tbaa !51
  %3092 = add i64 %3091, 1
  store i64 %3092, ptr %55, align 8, !tbaa !51
  br label %2312, !llvm.loop !69

3093:                                             ; preds = %3087, %2315
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #13
  %3094 = load i32, ptr %56, align 4
  switch i32 %3094, label %3891 [
    i32 208, label %3095
  ]

3095:                                             ; preds = %3093
  call void @llvm.lifetime.start.p0(i64 8, ptr %73) #13
  store ptr null, ptr %73, align 8, !tbaa !9
  br label %3096

3096:                                             ; preds = %3095
  %3097 = load i32, ptr @test_count, align 4, !tbaa !5
  %3098 = add nsw i32 %3097, 1
  store i32 %3098, ptr @test_count, align 4, !tbaa !5
  %3099 = load ptr, ptr %45, align 8, !tbaa !9
  %3100 = getelementptr inbounds %struct.s2n_connection, ptr %3099, i32 0, i32 33
  %3101 = getelementptr inbounds %struct.s2n_psk_parameters, ptr %3100, i32 0, i32 1
  %3102 = call i32 @s2n_array_get(ptr noundef %3101, i32 noundef 0, ptr noundef %73)
  %3103 = getelementptr inbounds %struct.s2n_result, ptr %74, i32 0, i32 0
  store i32 %3102, ptr %3103, align 4
  %3104 = getelementptr inbounds %struct.s2n_result, ptr %74, i32 0, i32 0
  %3105 = load i32, ptr %3104, align 4
  %3106 = call zeroext i1 @s2n_result_is_ok(i32 %3105)
  br i1 %3106, label %3160, label %3107

3107:                                             ; preds = %3096
  br label %3108

3108:                                             ; preds = %3107
  br label %3109

3109:                                             ; preds = %3108
  call void @llvm.lifetime.start.p0(i64 4, ptr %75) #13
  %3110 = call ptr @__errno_location() #14
  %3111 = load i32, ptr %3110, align 4, !tbaa !5
  store i32 %3111, ptr %75, align 4, !tbaa !5
  %3112 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3113 = call i32 @s2n_print_stacktrace(ptr noundef %3112)
  %3114 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3115 = trunc i8 %3114 to i1
  br i1 %3115, label %3116, label %3138

3116:                                             ; preds = %3109
  %3117 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3118 = call i32 @fileno(ptr noundef %3117) #13
  %3119 = call i32 @isatty(i32 noundef %3118) #13
  %3120 = icmp ne i32 %3119, 0
  br i1 %3120, label %3121, label %3138

3121:                                             ; preds = %3116
  %3122 = load i32, ptr %75, align 4, !tbaa !5
  %3123 = call ptr @__errno_location() #14
  store i32 %3122, ptr %3123, align 4, !tbaa !5
  %3124 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3125 = load i32, ptr @test_count, align 4, !tbaa !5
  %3126 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3127 = load i32, ptr %3126, align 4, !tbaa !5
  %3128 = call ptr @s2n_strerror(i32 noundef %3127, ptr noundef @.str.60)
  %3129 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3130 = load i32, ptr %3129, align 4, !tbaa !5
  %3131 = call ptr @s2n_strerror_debug(i32 noundef %3130, ptr noundef @.str.60)
  %3132 = call ptr @__errno_location() #14
  %3133 = load i32, ptr %3132, align 4, !tbaa !5
  %3134 = call ptr @strerror(i32 noundef %3133) #13
  %3135 = call ptr @__errno_location() #14
  %3136 = load i32, ptr %3135, align 4, !tbaa !5
  %3137 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3124, ptr noundef @.str.58, i32 noundef %3125, ptr noundef @.str.97, ptr noundef @.str.57, i32 noundef 136, ptr noundef %3128, ptr noundef %3131, ptr noundef %3134, i32 noundef %3136) #13
  br label %3155

3138:                                             ; preds = %3116, %3109
  %3139 = load i32, ptr %75, align 4, !tbaa !5
  %3140 = call ptr @__errno_location() #14
  store i32 %3139, ptr %3140, align 4, !tbaa !5
  %3141 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3142 = load i32, ptr @test_count, align 4, !tbaa !5
  %3143 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3144 = load i32, ptr %3143, align 4, !tbaa !5
  %3145 = call ptr @s2n_strerror(i32 noundef %3144, ptr noundef @.str.60)
  %3146 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3147 = load i32, ptr %3146, align 4, !tbaa !5
  %3148 = call ptr @s2n_strerror_debug(i32 noundef %3147, ptr noundef @.str.60)
  %3149 = call ptr @__errno_location() #14
  %3150 = load i32, ptr %3149, align 4, !tbaa !5
  %3151 = call ptr @strerror(i32 noundef %3150) #13
  %3152 = call ptr @__errno_location() #14
  %3153 = load i32, ptr %3152, align 4, !tbaa !5
  %3154 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3141, ptr noundef @.str.61, i32 noundef %3142, ptr noundef @.str.97, ptr noundef @.str.57, i32 noundef 136, ptr noundef %3145, ptr noundef %3148, ptr noundef %3151, i32 noundef %3153) #13
  br label %3155

3155:                                             ; preds = %3138, %3121
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #13
  br label %3156

3156:                                             ; preds = %3155
  br label %3157

3157:                                             ; preds = %3156
  call void @exit(i32 noundef 1) #15
  unreachable

3158:                                             ; No predecessors!
  br label %3159

3159:                                             ; preds = %3158
  br label %3160

3160:                                             ; preds = %3159, %3096
  br label %3161

3161:                                             ; preds = %3160
  br label %3162

3162:                                             ; preds = %3161
  br label %3163

3163:                                             ; preds = %3162
  %3164 = load i32, ptr @test_count, align 4, !tbaa !5
  %3165 = add nsw i32 %3164, 1
  store i32 %3165, ptr @test_count, align 4, !tbaa !5
  %3166 = load ptr, ptr %73, align 8, !tbaa !9
  %3167 = icmp eq ptr %3166, null
  br i1 %3167, label %3168, label %3221

3168:                                             ; preds = %3163
  br label %3169

3169:                                             ; preds = %3168
  br label %3170

3170:                                             ; preds = %3169
  call void @llvm.lifetime.start.p0(i64 4, ptr %76) #13
  %3171 = call ptr @__errno_location() #14
  %3172 = load i32, ptr %3171, align 4, !tbaa !5
  store i32 %3172, ptr %76, align 4, !tbaa !5
  %3173 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3174 = call i32 @s2n_print_stacktrace(ptr noundef %3173)
  %3175 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3176 = trunc i8 %3175 to i1
  br i1 %3176, label %3177, label %3199

3177:                                             ; preds = %3170
  %3178 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3179 = call i32 @fileno(ptr noundef %3178) #13
  %3180 = call i32 @isatty(i32 noundef %3179) #13
  %3181 = icmp ne i32 %3180, 0
  br i1 %3181, label %3182, label %3199

3182:                                             ; preds = %3177
  %3183 = load i32, ptr %76, align 4, !tbaa !5
  %3184 = call ptr @__errno_location() #14
  store i32 %3183, ptr %3184, align 4, !tbaa !5
  %3185 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3186 = load i32, ptr @test_count, align 4, !tbaa !5
  %3187 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3188 = load i32, ptr %3187, align 4, !tbaa !5
  %3189 = call ptr @s2n_strerror(i32 noundef %3188, ptr noundef @.str.60)
  %3190 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3191 = load i32, ptr %3190, align 4, !tbaa !5
  %3192 = call ptr @s2n_strerror_debug(i32 noundef %3191, ptr noundef @.str.60)
  %3193 = call ptr @__errno_location() #14
  %3194 = load i32, ptr %3193, align 4, !tbaa !5
  %3195 = call ptr @strerror(i32 noundef %3194) #13
  %3196 = call ptr @__errno_location() #14
  %3197 = load i32, ptr %3196, align 4, !tbaa !5
  %3198 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3185, ptr noundef @.str.58, i32 noundef %3186, ptr noundef @.str.98, ptr noundef @.str.57, i32 noundef 137, ptr noundef %3189, ptr noundef %3192, ptr noundef %3195, i32 noundef %3197) #13
  br label %3216

3199:                                             ; preds = %3177, %3170
  %3200 = load i32, ptr %76, align 4, !tbaa !5
  %3201 = call ptr @__errno_location() #14
  store i32 %3200, ptr %3201, align 4, !tbaa !5
  %3202 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3203 = load i32, ptr @test_count, align 4, !tbaa !5
  %3204 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3205 = load i32, ptr %3204, align 4, !tbaa !5
  %3206 = call ptr @s2n_strerror(i32 noundef %3205, ptr noundef @.str.60)
  %3207 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3208 = load i32, ptr %3207, align 4, !tbaa !5
  %3209 = call ptr @s2n_strerror_debug(i32 noundef %3208, ptr noundef @.str.60)
  %3210 = call ptr @__errno_location() #14
  %3211 = load i32, ptr %3210, align 4, !tbaa !5
  %3212 = call ptr @strerror(i32 noundef %3211) #13
  %3213 = call ptr @__errno_location() #14
  %3214 = load i32, ptr %3213, align 4, !tbaa !5
  %3215 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3202, ptr noundef @.str.61, i32 noundef %3203, ptr noundef @.str.98, ptr noundef @.str.57, i32 noundef 137, ptr noundef %3206, ptr noundef %3209, ptr noundef %3212, i32 noundef %3214) #13
  br label %3216

3216:                                             ; preds = %3199, %3182
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #13
  br label %3217

3217:                                             ; preds = %3216
  br label %3218

3218:                                             ; preds = %3217
  call void @exit(i32 noundef 1) #15
  unreachable

3219:                                             ; No predecessors!
  br label %3220

3220:                                             ; preds = %3219
  br label %3221

3221:                                             ; preds = %3220, %3163
  br label %3222

3222:                                             ; preds = %3221
  br label %3223

3223:                                             ; preds = %3222
  %3224 = load ptr, ptr %73, align 8, !tbaa !9
  %3225 = load ptr, ptr %45, align 8, !tbaa !9
  %3226 = getelementptr inbounds %struct.s2n_connection, ptr %3225, i32 0, i32 33
  %3227 = getelementptr inbounds %struct.s2n_psk_parameters, ptr %3226, i32 0, i32 4
  store ptr %3224, ptr %3227, align 8, !tbaa !62
  %3228 = load ptr, ptr %45, align 8, !tbaa !9
  %3229 = getelementptr inbounds %struct.s2n_connection, ptr %3228, i32 0, i32 33
  %3230 = getelementptr inbounds %struct.s2n_psk_parameters, ptr %3229, i32 0, i32 3
  store i16 0, ptr %3230, align 2, !tbaa !70
  br label %3231

3231:                                             ; preds = %3223
  %3232 = load i32, ptr @test_count, align 4, !tbaa !5
  %3233 = add nsw i32 %3232, 1
  store i32 %3233, ptr @test_count, align 4, !tbaa !5
  %3234 = load ptr, ptr %45, align 8, !tbaa !9
  %3235 = getelementptr inbounds %struct.s2n_connection, ptr %3234, i32 0, i32 33
  %3236 = getelementptr inbounds %struct.s2n_psk_parameters, ptr %3235, i32 0, i32 1
  %3237 = getelementptr inbounds %struct.s2n_array, ptr %3236, i32 0, i32 0
  %3238 = getelementptr inbounds %struct.s2n_blob, ptr %3237, i32 0, i32 2
  %3239 = load i32, ptr %3238, align 4, !tbaa !60
  %3240 = icmp eq i32 %3239, 0
  br i1 %3240, label %3241, label %3294

3241:                                             ; preds = %3231
  br label %3242

3242:                                             ; preds = %3241
  br label %3243

3243:                                             ; preds = %3242
  call void @llvm.lifetime.start.p0(i64 4, ptr %77) #13
  %3244 = call ptr @__errno_location() #14
  %3245 = load i32, ptr %3244, align 4, !tbaa !5
  store i32 %3245, ptr %77, align 4, !tbaa !5
  %3246 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3247 = call i32 @s2n_print_stacktrace(ptr noundef %3246)
  %3248 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3249 = trunc i8 %3248 to i1
  br i1 %3249, label %3250, label %3272

3250:                                             ; preds = %3243
  %3251 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3252 = call i32 @fileno(ptr noundef %3251) #13
  %3253 = call i32 @isatty(i32 noundef %3252) #13
  %3254 = icmp ne i32 %3253, 0
  br i1 %3254, label %3255, label %3272

3255:                                             ; preds = %3250
  %3256 = load i32, ptr %77, align 4, !tbaa !5
  %3257 = call ptr @__errno_location() #14
  store i32 %3256, ptr %3257, align 4, !tbaa !5
  %3258 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3259 = load i32, ptr @test_count, align 4, !tbaa !5
  %3260 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3261 = load i32, ptr %3260, align 4, !tbaa !5
  %3262 = call ptr @s2n_strerror(i32 noundef %3261, ptr noundef @.str.60)
  %3263 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3264 = load i32, ptr %3263, align 4, !tbaa !5
  %3265 = call ptr @s2n_strerror_debug(i32 noundef %3264, ptr noundef @.str.60)
  %3266 = call ptr @__errno_location() #14
  %3267 = load i32, ptr %3266, align 4, !tbaa !5
  %3268 = call ptr @strerror(i32 noundef %3267) #13
  %3269 = call ptr @__errno_location() #14
  %3270 = load i32, ptr %3269, align 4, !tbaa !5
  %3271 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3258, ptr noundef @.str.58, i32 noundef %3259, ptr noundef @.str.83, ptr noundef @.str.57, i32 noundef 141, ptr noundef %3262, ptr noundef %3265, ptr noundef %3268, i32 noundef %3270) #13
  br label %3289

3272:                                             ; preds = %3250, %3243
  %3273 = load i32, ptr %77, align 4, !tbaa !5
  %3274 = call ptr @__errno_location() #14
  store i32 %3273, ptr %3274, align 4, !tbaa !5
  %3275 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3276 = load i32, ptr @test_count, align 4, !tbaa !5
  %3277 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3278 = load i32, ptr %3277, align 4, !tbaa !5
  %3279 = call ptr @s2n_strerror(i32 noundef %3278, ptr noundef @.str.60)
  %3280 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3281 = load i32, ptr %3280, align 4, !tbaa !5
  %3282 = call ptr @s2n_strerror_debug(i32 noundef %3281, ptr noundef @.str.60)
  %3283 = call ptr @__errno_location() #14
  %3284 = load i32, ptr %3283, align 4, !tbaa !5
  %3285 = call ptr @strerror(i32 noundef %3284) #13
  %3286 = call ptr @__errno_location() #14
  %3287 = load i32, ptr %3286, align 4, !tbaa !5
  %3288 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3275, ptr noundef @.str.61, i32 noundef %3276, ptr noundef @.str.83, ptr noundef @.str.57, i32 noundef 141, ptr noundef %3279, ptr noundef %3282, ptr noundef %3285, i32 noundef %3287) #13
  br label %3289

3289:                                             ; preds = %3272, %3255
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #13
  br label %3290

3290:                                             ; preds = %3289
  br label %3291

3291:                                             ; preds = %3290
  call void @exit(i32 noundef 1) #15
  unreachable

3292:                                             ; No predecessors!
  br label %3293

3293:                                             ; preds = %3292
  br label %3294

3294:                                             ; preds = %3293, %3231
  br label %3295

3295:                                             ; preds = %3294
  br label %3296

3296:                                             ; preds = %3295
  br label %3297

3297:                                             ; preds = %3296
  %3298 = load i32, ptr @test_count, align 4, !tbaa !5
  %3299 = add nsw i32 %3298, 1
  store i32 %3299, ptr @test_count, align 4, !tbaa !5
  %3300 = load ptr, ptr %45, align 8, !tbaa !9
  %3301 = getelementptr inbounds %struct.s2n_connection, ptr %3300, i32 0, i32 33
  %3302 = getelementptr inbounds %struct.s2n_psk_parameters, ptr %3301, i32 0, i32 1
  %3303 = getelementptr inbounds %struct.s2n_array, ptr %3302, i32 0, i32 1
  %3304 = load i32, ptr %3303, align 8, !tbaa !61
  %3305 = icmp eq i32 %3304, 10
  br i1 %3305, label %3359, label %3306

3306:                                             ; preds = %3297
  br label %3307

3307:                                             ; preds = %3306
  br label %3308

3308:                                             ; preds = %3307
  call void @llvm.lifetime.start.p0(i64 4, ptr %78) #13
  %3309 = call ptr @__errno_location() #14
  %3310 = load i32, ptr %3309, align 4, !tbaa !5
  store i32 %3310, ptr %78, align 4, !tbaa !5
  %3311 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3312 = call i32 @s2n_print_stacktrace(ptr noundef %3311)
  %3313 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3314 = trunc i8 %3313 to i1
  br i1 %3314, label %3315, label %3337

3315:                                             ; preds = %3308
  %3316 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3317 = call i32 @fileno(ptr noundef %3316) #13
  %3318 = call i32 @isatty(i32 noundef %3317) #13
  %3319 = icmp ne i32 %3318, 0
  br i1 %3319, label %3320, label %3337

3320:                                             ; preds = %3315
  %3321 = load i32, ptr %78, align 4, !tbaa !5
  %3322 = call ptr @__errno_location() #14
  store i32 %3321, ptr %3322, align 4, !tbaa !5
  %3323 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3324 = load i32, ptr @test_count, align 4, !tbaa !5
  %3325 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3326 = load i32, ptr %3325, align 4, !tbaa !5
  %3327 = call ptr @s2n_strerror(i32 noundef %3326, ptr noundef @.str.60)
  %3328 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3329 = load i32, ptr %3328, align 4, !tbaa !5
  %3330 = call ptr @s2n_strerror_debug(i32 noundef %3329, ptr noundef @.str.60)
  %3331 = call ptr @__errno_location() #14
  %3332 = load i32, ptr %3331, align 4, !tbaa !5
  %3333 = call ptr @strerror(i32 noundef %3332) #13
  %3334 = call ptr @__errno_location() #14
  %3335 = load i32, ptr %3334, align 4, !tbaa !5
  %3336 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3323, ptr noundef @.str.58, i32 noundef %3324, ptr noundef @.str.84, ptr noundef @.str.57, i32 noundef 142, ptr noundef %3327, ptr noundef %3330, ptr noundef %3333, i32 noundef %3335) #13
  br label %3354

3337:                                             ; preds = %3315, %3308
  %3338 = load i32, ptr %78, align 4, !tbaa !5
  %3339 = call ptr @__errno_location() #14
  store i32 %3338, ptr %3339, align 4, !tbaa !5
  %3340 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3341 = load i32, ptr @test_count, align 4, !tbaa !5
  %3342 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3343 = load i32, ptr %3342, align 4, !tbaa !5
  %3344 = call ptr @s2n_strerror(i32 noundef %3343, ptr noundef @.str.60)
  %3345 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3346 = load i32, ptr %3345, align 4, !tbaa !5
  %3347 = call ptr @s2n_strerror_debug(i32 noundef %3346, ptr noundef @.str.60)
  %3348 = call ptr @__errno_location() #14
  %3349 = load i32, ptr %3348, align 4, !tbaa !5
  %3350 = call ptr @strerror(i32 noundef %3349) #13
  %3351 = call ptr @__errno_location() #14
  %3352 = load i32, ptr %3351, align 4, !tbaa !5
  %3353 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3340, ptr noundef @.str.61, i32 noundef %3341, ptr noundef @.str.84, ptr noundef @.str.57, i32 noundef 142, ptr noundef %3344, ptr noundef %3347, ptr noundef %3350, i32 noundef %3352) #13
  br label %3354

3354:                                             ; preds = %3337, %3320
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #13
  br label %3355

3355:                                             ; preds = %3354
  br label %3356

3356:                                             ; preds = %3355
  call void @exit(i32 noundef 1) #15
  unreachable

3357:                                             ; No predecessors!
  br label %3358

3358:                                             ; preds = %3357
  br label %3359

3359:                                             ; preds = %3358, %3297
  br label %3360

3360:                                             ; preds = %3359
  br label %3361

3361:                                             ; preds = %3360
  call void @llvm.lifetime.start.p0(i64 24, ptr %79) #13
  call void @llvm.memset.p0.i64(ptr align 8 %79, i8 0, i64 24, i1 false)
  br label %3362

3362:                                             ; preds = %3361
  %3363 = load i32, ptr @test_count, align 4, !tbaa !5
  %3364 = add nsw i32 %3363, 1
  store i32 %3364, ptr @test_count, align 4, !tbaa !5
  %3365 = load ptr, ptr %45, align 8, !tbaa !9
  %3366 = call i32 @s2n_tls13_compute_shared_secret(ptr noundef %3365, ptr noundef %79)
  %3367 = icmp eq i32 %3366, -1
  br i1 %3367, label %3368, label %3421

3368:                                             ; preds = %3362
  br label %3369

3369:                                             ; preds = %3368
  br label %3370

3370:                                             ; preds = %3369
  call void @llvm.lifetime.start.p0(i64 4, ptr %80) #13
  %3371 = call ptr @__errno_location() #14
  %3372 = load i32, ptr %3371, align 4, !tbaa !5
  store i32 %3372, ptr %80, align 4, !tbaa !5
  %3373 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3374 = call i32 @s2n_print_stacktrace(ptr noundef %3373)
  %3375 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3376 = trunc i8 %3375 to i1
  br i1 %3376, label %3377, label %3399

3377:                                             ; preds = %3370
  %3378 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3379 = call i32 @fileno(ptr noundef %3378) #13
  %3380 = call i32 @isatty(i32 noundef %3379) #13
  %3381 = icmp ne i32 %3380, 0
  br i1 %3381, label %3382, label %3399

3382:                                             ; preds = %3377
  %3383 = load i32, ptr %80, align 4, !tbaa !5
  %3384 = call ptr @__errno_location() #14
  store i32 %3383, ptr %3384, align 4, !tbaa !5
  %3385 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3386 = load i32, ptr @test_count, align 4, !tbaa !5
  %3387 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3388 = load i32, ptr %3387, align 4, !tbaa !5
  %3389 = call ptr @s2n_strerror(i32 noundef %3388, ptr noundef @.str.60)
  %3390 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3391 = load i32, ptr %3390, align 4, !tbaa !5
  %3392 = call ptr @s2n_strerror_debug(i32 noundef %3391, ptr noundef @.str.60)
  %3393 = call ptr @__errno_location() #14
  %3394 = load i32, ptr %3393, align 4, !tbaa !5
  %3395 = call ptr @strerror(i32 noundef %3394) #13
  %3396 = call ptr @__errno_location() #14
  %3397 = load i32, ptr %3396, align 4, !tbaa !5
  %3398 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3385, ptr noundef @.str.58, i32 noundef %3386, ptr noundef @.str.86, ptr noundef @.str.57, i32 noundef 145, ptr noundef %3389, ptr noundef %3392, ptr noundef %3395, i32 noundef %3397) #13
  br label %3416

3399:                                             ; preds = %3377, %3370
  %3400 = load i32, ptr %80, align 4, !tbaa !5
  %3401 = call ptr @__errno_location() #14
  store i32 %3400, ptr %3401, align 4, !tbaa !5
  %3402 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3403 = load i32, ptr @test_count, align 4, !tbaa !5
  %3404 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3405 = load i32, ptr %3404, align 4, !tbaa !5
  %3406 = call ptr @s2n_strerror(i32 noundef %3405, ptr noundef @.str.60)
  %3407 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3408 = load i32, ptr %3407, align 4, !tbaa !5
  %3409 = call ptr @s2n_strerror_debug(i32 noundef %3408, ptr noundef @.str.60)
  %3410 = call ptr @__errno_location() #14
  %3411 = load i32, ptr %3410, align 4, !tbaa !5
  %3412 = call ptr @strerror(i32 noundef %3411) #13
  %3413 = call ptr @__errno_location() #14
  %3414 = load i32, ptr %3413, align 4, !tbaa !5
  %3415 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3402, ptr noundef @.str.61, i32 noundef %3403, ptr noundef @.str.86, ptr noundef @.str.57, i32 noundef 145, ptr noundef %3406, ptr noundef %3409, ptr noundef %3412, i32 noundef %3414) #13
  br label %3416

3416:                                             ; preds = %3399, %3382
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #13
  br label %3417

3417:                                             ; preds = %3416
  br label %3418

3418:                                             ; preds = %3417
  call void @exit(i32 noundef 1) #15
  unreachable

3419:                                             ; No predecessors!
  br label %3420

3420:                                             ; preds = %3419
  br label %3421

3421:                                             ; preds = %3420, %3362
  br label %3422

3422:                                             ; preds = %3421
  br label %3423

3423:                                             ; preds = %3422
  call void @llvm.lifetime.start.p0(i64 8, ptr %81) #13
  store i64 0, ptr %81, align 8, !tbaa !51
  br label %3424

3424:                                             ; preds = %3824, %3423
  %3425 = load i64, ptr %81, align 8, !tbaa !51
  %3426 = load ptr, ptr %45, align 8, !tbaa !9
  %3427 = getelementptr inbounds %struct.s2n_connection, ptr %3426, i32 0, i32 33
  %3428 = getelementptr inbounds %struct.s2n_psk_parameters, ptr %3427, i32 0, i32 1
  %3429 = getelementptr inbounds %struct.s2n_array, ptr %3428, i32 0, i32 1
  %3430 = load i32, ptr %3429, align 8, !tbaa !61
  %3431 = zext i32 %3430 to i64
  %3432 = icmp ult i64 %3425, %3431
  br i1 %3432, label %3434, label %3433

3433:                                             ; preds = %3424
  store i32 315, ptr %56, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #13
  br label %3827

3434:                                             ; preds = %3424
  call void @llvm.lifetime.start.p0(i64 8, ptr %82) #13
  store ptr null, ptr %82, align 8, !tbaa !9
  br label %3435

3435:                                             ; preds = %3434
  %3436 = load i32, ptr @test_count, align 4, !tbaa !5
  %3437 = add nsw i32 %3436, 1
  store i32 %3437, ptr @test_count, align 4, !tbaa !5
  %3438 = load ptr, ptr %45, align 8, !tbaa !9
  %3439 = getelementptr inbounds %struct.s2n_connection, ptr %3438, i32 0, i32 33
  %3440 = getelementptr inbounds %struct.s2n_psk_parameters, ptr %3439, i32 0, i32 1
  %3441 = load i64, ptr %81, align 8, !tbaa !51
  %3442 = trunc i64 %3441 to i32
  %3443 = call i32 @s2n_array_get(ptr noundef %3440, i32 noundef %3442, ptr noundef %82)
  %3444 = getelementptr inbounds %struct.s2n_result, ptr %83, i32 0, i32 0
  store i32 %3443, ptr %3444, align 4
  %3445 = getelementptr inbounds %struct.s2n_result, ptr %83, i32 0, i32 0
  %3446 = load i32, ptr %3445, align 4
  %3447 = call zeroext i1 @s2n_result_is_ok(i32 %3446)
  br i1 %3447, label %3501, label %3448

3448:                                             ; preds = %3435
  br label %3449

3449:                                             ; preds = %3448
  br label %3450

3450:                                             ; preds = %3449
  call void @llvm.lifetime.start.p0(i64 4, ptr %84) #13
  %3451 = call ptr @__errno_location() #14
  %3452 = load i32, ptr %3451, align 4, !tbaa !5
  store i32 %3452, ptr %84, align 4, !tbaa !5
  %3453 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3454 = call i32 @s2n_print_stacktrace(ptr noundef %3453)
  %3455 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3456 = trunc i8 %3455 to i1
  br i1 %3456, label %3457, label %3479

3457:                                             ; preds = %3450
  %3458 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3459 = call i32 @fileno(ptr noundef %3458) #13
  %3460 = call i32 @isatty(i32 noundef %3459) #13
  %3461 = icmp ne i32 %3460, 0
  br i1 %3461, label %3462, label %3479

3462:                                             ; preds = %3457
  %3463 = load i32, ptr %84, align 4, !tbaa !5
  %3464 = call ptr @__errno_location() #14
  store i32 %3463, ptr %3464, align 4, !tbaa !5
  %3465 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3466 = load i32, ptr @test_count, align 4, !tbaa !5
  %3467 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3468 = load i32, ptr %3467, align 4, !tbaa !5
  %3469 = call ptr @s2n_strerror(i32 noundef %3468, ptr noundef @.str.60)
  %3470 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3471 = load i32, ptr %3470, align 4, !tbaa !5
  %3472 = call ptr @s2n_strerror_debug(i32 noundef %3471, ptr noundef @.str.60)
  %3473 = call ptr @__errno_location() #14
  %3474 = load i32, ptr %3473, align 4, !tbaa !5
  %3475 = call ptr @strerror(i32 noundef %3474) #13
  %3476 = call ptr @__errno_location() #14
  %3477 = load i32, ptr %3476, align 4, !tbaa !5
  %3478 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3465, ptr noundef @.str.58, i32 noundef %3466, ptr noundef @.str.87, ptr noundef @.str.57, i32 noundef 150, ptr noundef %3469, ptr noundef %3472, ptr noundef %3475, i32 noundef %3477) #13
  br label %3496

3479:                                             ; preds = %3457, %3450
  %3480 = load i32, ptr %84, align 4, !tbaa !5
  %3481 = call ptr @__errno_location() #14
  store i32 %3480, ptr %3481, align 4, !tbaa !5
  %3482 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3483 = load i32, ptr @test_count, align 4, !tbaa !5
  %3484 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3485 = load i32, ptr %3484, align 4, !tbaa !5
  %3486 = call ptr @s2n_strerror(i32 noundef %3485, ptr noundef @.str.60)
  %3487 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3488 = load i32, ptr %3487, align 4, !tbaa !5
  %3489 = call ptr @s2n_strerror_debug(i32 noundef %3488, ptr noundef @.str.60)
  %3490 = call ptr @__errno_location() #14
  %3491 = load i32, ptr %3490, align 4, !tbaa !5
  %3492 = call ptr @strerror(i32 noundef %3491) #13
  %3493 = call ptr @__errno_location() #14
  %3494 = load i32, ptr %3493, align 4, !tbaa !5
  %3495 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3482, ptr noundef @.str.61, i32 noundef %3483, ptr noundef @.str.87, ptr noundef @.str.57, i32 noundef 150, ptr noundef %3486, ptr noundef %3489, ptr noundef %3492, i32 noundef %3494) #13
  br label %3496

3496:                                             ; preds = %3479, %3462
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #13
  br label %3497

3497:                                             ; preds = %3496
  br label %3498

3498:                                             ; preds = %3497
  call void @exit(i32 noundef 1) #15
  unreachable

3499:                                             ; No predecessors!
  br label %3500

3500:                                             ; preds = %3499
  br label %3501

3501:                                             ; preds = %3500, %3435
  br label %3502

3502:                                             ; preds = %3501
  br label %3503

3503:                                             ; preds = %3502
  br label %3504

3504:                                             ; preds = %3503
  %3505 = load i32, ptr @test_count, align 4, !tbaa !5
  %3506 = add nsw i32 %3505, 1
  store i32 %3506, ptr @test_count, align 4, !tbaa !5
  %3507 = load ptr, ptr %82, align 8, !tbaa !9
  %3508 = getelementptr inbounds %struct.s2n_psk, ptr %3507, i32 0, i32 1
  %3509 = getelementptr inbounds %struct.s2n_blob, ptr %3508, i32 0, i32 1
  %3510 = load i32, ptr %3509, align 8, !tbaa !52
  %3511 = icmp eq i32 %3510, 0
  br i1 %3511, label %3512, label %3565

3512:                                             ; preds = %3504
  br label %3513

3513:                                             ; preds = %3512
  br label %3514

3514:                                             ; preds = %3513
  call void @llvm.lifetime.start.p0(i64 4, ptr %85) #13
  %3515 = call ptr @__errno_location() #14
  %3516 = load i32, ptr %3515, align 4, !tbaa !5
  store i32 %3516, ptr %85, align 4, !tbaa !5
  %3517 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3518 = call i32 @s2n_print_stacktrace(ptr noundef %3517)
  %3519 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3520 = trunc i8 %3519 to i1
  br i1 %3520, label %3521, label %3543

3521:                                             ; preds = %3514
  %3522 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3523 = call i32 @fileno(ptr noundef %3522) #13
  %3524 = call i32 @isatty(i32 noundef %3523) #13
  %3525 = icmp ne i32 %3524, 0
  br i1 %3525, label %3526, label %3543

3526:                                             ; preds = %3521
  %3527 = load i32, ptr %85, align 4, !tbaa !5
  %3528 = call ptr @__errno_location() #14
  store i32 %3527, ptr %3528, align 4, !tbaa !5
  %3529 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3530 = load i32, ptr @test_count, align 4, !tbaa !5
  %3531 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3532 = load i32, ptr %3531, align 4, !tbaa !5
  %3533 = call ptr @s2n_strerror(i32 noundef %3532, ptr noundef @.str.60)
  %3534 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3535 = load i32, ptr %3534, align 4, !tbaa !5
  %3536 = call ptr @s2n_strerror_debug(i32 noundef %3535, ptr noundef @.str.60)
  %3537 = call ptr @__errno_location() #14
  %3538 = load i32, ptr %3537, align 4, !tbaa !5
  %3539 = call ptr @strerror(i32 noundef %3538) #13
  %3540 = call ptr @__errno_location() #14
  %3541 = load i32, ptr %3540, align 4, !tbaa !5
  %3542 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3529, ptr noundef @.str.58, i32 noundef %3530, ptr noundef @.str.78, ptr noundef @.str.57, i32 noundef 151, ptr noundef %3533, ptr noundef %3536, ptr noundef %3539, i32 noundef %3541) #13
  br label %3560

3543:                                             ; preds = %3521, %3514
  %3544 = load i32, ptr %85, align 4, !tbaa !5
  %3545 = call ptr @__errno_location() #14
  store i32 %3544, ptr %3545, align 4, !tbaa !5
  %3546 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3547 = load i32, ptr @test_count, align 4, !tbaa !5
  %3548 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3549 = load i32, ptr %3548, align 4, !tbaa !5
  %3550 = call ptr @s2n_strerror(i32 noundef %3549, ptr noundef @.str.60)
  %3551 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3552 = load i32, ptr %3551, align 4, !tbaa !5
  %3553 = call ptr @s2n_strerror_debug(i32 noundef %3552, ptr noundef @.str.60)
  %3554 = call ptr @__errno_location() #14
  %3555 = load i32, ptr %3554, align 4, !tbaa !5
  %3556 = call ptr @strerror(i32 noundef %3555) #13
  %3557 = call ptr @__errno_location() #14
  %3558 = load i32, ptr %3557, align 4, !tbaa !5
  %3559 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3546, ptr noundef @.str.61, i32 noundef %3547, ptr noundef @.str.78, ptr noundef @.str.57, i32 noundef 151, ptr noundef %3550, ptr noundef %3553, ptr noundef %3556, i32 noundef %3558) #13
  br label %3560

3560:                                             ; preds = %3543, %3526
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #13
  br label %3561

3561:                                             ; preds = %3560
  br label %3562

3562:                                             ; preds = %3561
  call void @exit(i32 noundef 1) #15
  unreachable

3563:                                             ; No predecessors!
  br label %3564

3564:                                             ; preds = %3563
  br label %3565

3565:                                             ; preds = %3564, %3504
  br label %3566

3566:                                             ; preds = %3565
  br label %3567

3567:                                             ; preds = %3566
  br label %3568

3568:                                             ; preds = %3567
  %3569 = load i32, ptr @test_count, align 4, !tbaa !5
  %3570 = add nsw i32 %3569, 1
  store i32 %3570, ptr @test_count, align 4, !tbaa !5
  %3571 = load ptr, ptr %82, align 8, !tbaa !9
  %3572 = getelementptr inbounds %struct.s2n_psk, ptr %3571, i32 0, i32 2
  %3573 = getelementptr inbounds %struct.s2n_blob, ptr %3572, i32 0, i32 0
  %3574 = load ptr, ptr %3573, align 8, !tbaa !57
  %3575 = icmp eq ptr %3574, null
  br i1 %3575, label %3629, label %3576

3576:                                             ; preds = %3568
  br label %3577

3577:                                             ; preds = %3576
  br label %3578

3578:                                             ; preds = %3577
  call void @llvm.lifetime.start.p0(i64 4, ptr %86) #13
  %3579 = call ptr @__errno_location() #14
  %3580 = load i32, ptr %3579, align 4, !tbaa !5
  store i32 %3580, ptr %86, align 4, !tbaa !5
  %3581 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3582 = call i32 @s2n_print_stacktrace(ptr noundef %3581)
  %3583 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3584 = trunc i8 %3583 to i1
  br i1 %3584, label %3585, label %3607

3585:                                             ; preds = %3578
  %3586 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3587 = call i32 @fileno(ptr noundef %3586) #13
  %3588 = call i32 @isatty(i32 noundef %3587) #13
  %3589 = icmp ne i32 %3588, 0
  br i1 %3589, label %3590, label %3607

3590:                                             ; preds = %3585
  %3591 = load i32, ptr %86, align 4, !tbaa !5
  %3592 = call ptr @__errno_location() #14
  store i32 %3591, ptr %3592, align 4, !tbaa !5
  %3593 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3594 = load i32, ptr @test_count, align 4, !tbaa !5
  %3595 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3596 = load i32, ptr %3595, align 4, !tbaa !5
  %3597 = call ptr @s2n_strerror(i32 noundef %3596, ptr noundef @.str.60)
  %3598 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3599 = load i32, ptr %3598, align 4, !tbaa !5
  %3600 = call ptr @s2n_strerror_debug(i32 noundef %3599, ptr noundef @.str.60)
  %3601 = call ptr @__errno_location() #14
  %3602 = load i32, ptr %3601, align 4, !tbaa !5
  %3603 = call ptr @strerror(i32 noundef %3602) #13
  %3604 = call ptr @__errno_location() #14
  %3605 = load i32, ptr %3604, align 4, !tbaa !5
  %3606 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3593, ptr noundef @.str.58, i32 noundef %3594, ptr noundef @.str.88, ptr noundef @.str.57, i32 noundef 152, ptr noundef %3597, ptr noundef %3600, ptr noundef %3603, i32 noundef %3605) #13
  br label %3624

3607:                                             ; preds = %3585, %3578
  %3608 = load i32, ptr %86, align 4, !tbaa !5
  %3609 = call ptr @__errno_location() #14
  store i32 %3608, ptr %3609, align 4, !tbaa !5
  %3610 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3611 = load i32, ptr @test_count, align 4, !tbaa !5
  %3612 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3613 = load i32, ptr %3612, align 4, !tbaa !5
  %3614 = call ptr @s2n_strerror(i32 noundef %3613, ptr noundef @.str.60)
  %3615 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3616 = load i32, ptr %3615, align 4, !tbaa !5
  %3617 = call ptr @s2n_strerror_debug(i32 noundef %3616, ptr noundef @.str.60)
  %3618 = call ptr @__errno_location() #14
  %3619 = load i32, ptr %3618, align 4, !tbaa !5
  %3620 = call ptr @strerror(i32 noundef %3619) #13
  %3621 = call ptr @__errno_location() #14
  %3622 = load i32, ptr %3621, align 4, !tbaa !5
  %3623 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3610, ptr noundef @.str.61, i32 noundef %3611, ptr noundef @.str.88, ptr noundef @.str.57, i32 noundef 152, ptr noundef %3614, ptr noundef %3617, ptr noundef %3620, i32 noundef %3622) #13
  br label %3624

3624:                                             ; preds = %3607, %3590
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #13
  br label %3625

3625:                                             ; preds = %3624
  br label %3626

3626:                                             ; preds = %3625
  call void @exit(i32 noundef 1) #15
  unreachable

3627:                                             ; No predecessors!
  br label %3628

3628:                                             ; preds = %3627
  br label %3629

3629:                                             ; preds = %3628, %3568
  br label %3630

3630:                                             ; preds = %3629
  br label %3631

3631:                                             ; preds = %3630
  br label %3632

3632:                                             ; preds = %3631
  %3633 = load i32, ptr @test_count, align 4, !tbaa !5
  %3634 = add nsw i32 %3633, 1
  store i32 %3634, ptr @test_count, align 4, !tbaa !5
  %3635 = load ptr, ptr %82, align 8, !tbaa !9
  %3636 = getelementptr inbounds %struct.s2n_psk, ptr %3635, i32 0, i32 2
  %3637 = getelementptr inbounds %struct.s2n_blob, ptr %3636, i32 0, i32 1
  %3638 = load i32, ptr %3637, align 8, !tbaa !56
  %3639 = icmp eq i32 %3638, 0
  br i1 %3639, label %3693, label %3640

3640:                                             ; preds = %3632
  br label %3641

3641:                                             ; preds = %3640
  br label %3642

3642:                                             ; preds = %3641
  call void @llvm.lifetime.start.p0(i64 4, ptr %87) #13
  %3643 = call ptr @__errno_location() #14
  %3644 = load i32, ptr %3643, align 4, !tbaa !5
  store i32 %3644, ptr %87, align 4, !tbaa !5
  %3645 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3646 = call i32 @s2n_print_stacktrace(ptr noundef %3645)
  %3647 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3648 = trunc i8 %3647 to i1
  br i1 %3648, label %3649, label %3671

3649:                                             ; preds = %3642
  %3650 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3651 = call i32 @fileno(ptr noundef %3650) #13
  %3652 = call i32 @isatty(i32 noundef %3651) #13
  %3653 = icmp ne i32 %3652, 0
  br i1 %3653, label %3654, label %3671

3654:                                             ; preds = %3649
  %3655 = load i32, ptr %87, align 4, !tbaa !5
  %3656 = call ptr @__errno_location() #14
  store i32 %3655, ptr %3656, align 4, !tbaa !5
  %3657 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3658 = load i32, ptr @test_count, align 4, !tbaa !5
  %3659 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3660 = load i32, ptr %3659, align 4, !tbaa !5
  %3661 = call ptr @s2n_strerror(i32 noundef %3660, ptr noundef @.str.60)
  %3662 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3663 = load i32, ptr %3662, align 4, !tbaa !5
  %3664 = call ptr @s2n_strerror_debug(i32 noundef %3663, ptr noundef @.str.60)
  %3665 = call ptr @__errno_location() #14
  %3666 = load i32, ptr %3665, align 4, !tbaa !5
  %3667 = call ptr @strerror(i32 noundef %3666) #13
  %3668 = call ptr @__errno_location() #14
  %3669 = load i32, ptr %3668, align 4, !tbaa !5
  %3670 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3657, ptr noundef @.str.58, i32 noundef %3658, ptr noundef @.str.89, ptr noundef @.str.57, i32 noundef 153, ptr noundef %3661, ptr noundef %3664, ptr noundef %3667, i32 noundef %3669) #13
  br label %3688

3671:                                             ; preds = %3649, %3642
  %3672 = load i32, ptr %87, align 4, !tbaa !5
  %3673 = call ptr @__errno_location() #14
  store i32 %3672, ptr %3673, align 4, !tbaa !5
  %3674 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3675 = load i32, ptr @test_count, align 4, !tbaa !5
  %3676 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3677 = load i32, ptr %3676, align 4, !tbaa !5
  %3678 = call ptr @s2n_strerror(i32 noundef %3677, ptr noundef @.str.60)
  %3679 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3680 = load i32, ptr %3679, align 4, !tbaa !5
  %3681 = call ptr @s2n_strerror_debug(i32 noundef %3680, ptr noundef @.str.60)
  %3682 = call ptr @__errno_location() #14
  %3683 = load i32, ptr %3682, align 4, !tbaa !5
  %3684 = call ptr @strerror(i32 noundef %3683) #13
  %3685 = call ptr @__errno_location() #14
  %3686 = load i32, ptr %3685, align 4, !tbaa !5
  %3687 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3674, ptr noundef @.str.61, i32 noundef %3675, ptr noundef @.str.89, ptr noundef @.str.57, i32 noundef 153, ptr noundef %3678, ptr noundef %3681, ptr noundef %3684, i32 noundef %3686) #13
  br label %3688

3688:                                             ; preds = %3671, %3654
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #13
  br label %3689

3689:                                             ; preds = %3688
  br label %3690

3690:                                             ; preds = %3689
  call void @exit(i32 noundef 1) #15
  unreachable

3691:                                             ; No predecessors!
  br label %3692

3692:                                             ; preds = %3691
  br label %3693

3693:                                             ; preds = %3692, %3632
  br label %3694

3694:                                             ; preds = %3693
  br label %3695

3695:                                             ; preds = %3694
  br label %3696

3696:                                             ; preds = %3695
  %3697 = load i32, ptr @test_count, align 4, !tbaa !5
  %3698 = add nsw i32 %3697, 1
  store i32 %3698, ptr @test_count, align 4, !tbaa !5
  %3699 = load ptr, ptr %82, align 8, !tbaa !9
  %3700 = getelementptr inbounds %struct.s2n_psk, ptr %3699, i32 0, i32 6
  %3701 = getelementptr inbounds %struct.s2n_blob, ptr %3700, i32 0, i32 0
  %3702 = load ptr, ptr %3701, align 8, !tbaa !64
  %3703 = icmp eq ptr %3702, null
  br i1 %3703, label %3757, label %3704

3704:                                             ; preds = %3696
  br label %3705

3705:                                             ; preds = %3704
  br label %3706

3706:                                             ; preds = %3705
  call void @llvm.lifetime.start.p0(i64 4, ptr %88) #13
  %3707 = call ptr @__errno_location() #14
  %3708 = load i32, ptr %3707, align 4, !tbaa !5
  store i32 %3708, ptr %88, align 4, !tbaa !5
  %3709 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3710 = call i32 @s2n_print_stacktrace(ptr noundef %3709)
  %3711 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3712 = trunc i8 %3711 to i1
  br i1 %3712, label %3713, label %3735

3713:                                             ; preds = %3706
  %3714 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3715 = call i32 @fileno(ptr noundef %3714) #13
  %3716 = call i32 @isatty(i32 noundef %3715) #13
  %3717 = icmp ne i32 %3716, 0
  br i1 %3717, label %3718, label %3735

3718:                                             ; preds = %3713
  %3719 = load i32, ptr %88, align 4, !tbaa !5
  %3720 = call ptr @__errno_location() #14
  store i32 %3719, ptr %3720, align 4, !tbaa !5
  %3721 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3722 = load i32, ptr @test_count, align 4, !tbaa !5
  %3723 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3724 = load i32, ptr %3723, align 4, !tbaa !5
  %3725 = call ptr @s2n_strerror(i32 noundef %3724, ptr noundef @.str.60)
  %3726 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3727 = load i32, ptr %3726, align 4, !tbaa !5
  %3728 = call ptr @s2n_strerror_debug(i32 noundef %3727, ptr noundef @.str.60)
  %3729 = call ptr @__errno_location() #14
  %3730 = load i32, ptr %3729, align 4, !tbaa !5
  %3731 = call ptr @strerror(i32 noundef %3730) #13
  %3732 = call ptr @__errno_location() #14
  %3733 = load i32, ptr %3732, align 4, !tbaa !5
  %3734 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3721, ptr noundef @.str.58, i32 noundef %3722, ptr noundef @.str.99, ptr noundef @.str.57, i32 noundef 154, ptr noundef %3725, ptr noundef %3728, ptr noundef %3731, i32 noundef %3733) #13
  br label %3752

3735:                                             ; preds = %3713, %3706
  %3736 = load i32, ptr %88, align 4, !tbaa !5
  %3737 = call ptr @__errno_location() #14
  store i32 %3736, ptr %3737, align 4, !tbaa !5
  %3738 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3739 = load i32, ptr @test_count, align 4, !tbaa !5
  %3740 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3741 = load i32, ptr %3740, align 4, !tbaa !5
  %3742 = call ptr @s2n_strerror(i32 noundef %3741, ptr noundef @.str.60)
  %3743 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3744 = load i32, ptr %3743, align 4, !tbaa !5
  %3745 = call ptr @s2n_strerror_debug(i32 noundef %3744, ptr noundef @.str.60)
  %3746 = call ptr @__errno_location() #14
  %3747 = load i32, ptr %3746, align 4, !tbaa !5
  %3748 = call ptr @strerror(i32 noundef %3747) #13
  %3749 = call ptr @__errno_location() #14
  %3750 = load i32, ptr %3749, align 4, !tbaa !5
  %3751 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3738, ptr noundef @.str.61, i32 noundef %3739, ptr noundef @.str.99, ptr noundef @.str.57, i32 noundef 154, ptr noundef %3742, ptr noundef %3745, ptr noundef %3748, i32 noundef %3750) #13
  br label %3752

3752:                                             ; preds = %3735, %3718
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #13
  br label %3753

3753:                                             ; preds = %3752
  br label %3754

3754:                                             ; preds = %3753
  call void @exit(i32 noundef 1) #15
  unreachable

3755:                                             ; No predecessors!
  br label %3756

3756:                                             ; preds = %3755
  br label %3757

3757:                                             ; preds = %3756, %3696
  br label %3758

3758:                                             ; preds = %3757
  br label %3759

3759:                                             ; preds = %3758
  br label %3760

3760:                                             ; preds = %3759
  %3761 = load i32, ptr @test_count, align 4, !tbaa !5
  %3762 = add nsw i32 %3761, 1
  store i32 %3762, ptr @test_count, align 4, !tbaa !5
  %3763 = load ptr, ptr %82, align 8, !tbaa !9
  %3764 = getelementptr inbounds %struct.s2n_psk, ptr %3763, i32 0, i32 6
  %3765 = getelementptr inbounds %struct.s2n_blob, ptr %3764, i32 0, i32 1
  %3766 = load i32, ptr %3765, align 8, !tbaa !68
  %3767 = icmp eq i32 %3766, 0
  br i1 %3767, label %3821, label %3768

3768:                                             ; preds = %3760
  br label %3769

3769:                                             ; preds = %3768
  br label %3770

3770:                                             ; preds = %3769
  call void @llvm.lifetime.start.p0(i64 4, ptr %89) #13
  %3771 = call ptr @__errno_location() #14
  %3772 = load i32, ptr %3771, align 4, !tbaa !5
  store i32 %3772, ptr %89, align 4, !tbaa !5
  %3773 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3774 = call i32 @s2n_print_stacktrace(ptr noundef %3773)
  %3775 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3776 = trunc i8 %3775 to i1
  br i1 %3776, label %3777, label %3799

3777:                                             ; preds = %3770
  %3778 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3779 = call i32 @fileno(ptr noundef %3778) #13
  %3780 = call i32 @isatty(i32 noundef %3779) #13
  %3781 = icmp ne i32 %3780, 0
  br i1 %3781, label %3782, label %3799

3782:                                             ; preds = %3777
  %3783 = load i32, ptr %89, align 4, !tbaa !5
  %3784 = call ptr @__errno_location() #14
  store i32 %3783, ptr %3784, align 4, !tbaa !5
  %3785 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3786 = load i32, ptr @test_count, align 4, !tbaa !5
  %3787 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3788 = load i32, ptr %3787, align 4, !tbaa !5
  %3789 = call ptr @s2n_strerror(i32 noundef %3788, ptr noundef @.str.60)
  %3790 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3791 = load i32, ptr %3790, align 4, !tbaa !5
  %3792 = call ptr @s2n_strerror_debug(i32 noundef %3791, ptr noundef @.str.60)
  %3793 = call ptr @__errno_location() #14
  %3794 = load i32, ptr %3793, align 4, !tbaa !5
  %3795 = call ptr @strerror(i32 noundef %3794) #13
  %3796 = call ptr @__errno_location() #14
  %3797 = load i32, ptr %3796, align 4, !tbaa !5
  %3798 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3785, ptr noundef @.str.58, i32 noundef %3786, ptr noundef @.str.100, ptr noundef @.str.57, i32 noundef 155, ptr noundef %3789, ptr noundef %3792, ptr noundef %3795, i32 noundef %3797) #13
  br label %3816

3799:                                             ; preds = %3777, %3770
  %3800 = load i32, ptr %89, align 4, !tbaa !5
  %3801 = call ptr @__errno_location() #14
  store i32 %3800, ptr %3801, align 4, !tbaa !5
  %3802 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3803 = load i32, ptr @test_count, align 4, !tbaa !5
  %3804 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3805 = load i32, ptr %3804, align 4, !tbaa !5
  %3806 = call ptr @s2n_strerror(i32 noundef %3805, ptr noundef @.str.60)
  %3807 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3808 = load i32, ptr %3807, align 4, !tbaa !5
  %3809 = call ptr @s2n_strerror_debug(i32 noundef %3808, ptr noundef @.str.60)
  %3810 = call ptr @__errno_location() #14
  %3811 = load i32, ptr %3810, align 4, !tbaa !5
  %3812 = call ptr @strerror(i32 noundef %3811) #13
  %3813 = call ptr @__errno_location() #14
  %3814 = load i32, ptr %3813, align 4, !tbaa !5
  %3815 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3802, ptr noundef @.str.61, i32 noundef %3803, ptr noundef @.str.100, ptr noundef @.str.57, i32 noundef 155, ptr noundef %3806, ptr noundef %3809, ptr noundef %3812, i32 noundef %3814) #13
  br label %3816

3816:                                             ; preds = %3799, %3782
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #13
  br label %3817

3817:                                             ; preds = %3816
  br label %3818

3818:                                             ; preds = %3817
  call void @exit(i32 noundef 1) #15
  unreachable

3819:                                             ; No predecessors!
  br label %3820

3820:                                             ; preds = %3819
  br label %3821

3821:                                             ; preds = %3820, %3760
  br label %3822

3822:                                             ; preds = %3821
  br label %3823

3823:                                             ; preds = %3822
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #13
  br label %3824

3824:                                             ; preds = %3823
  %3825 = load i64, ptr %81, align 8, !tbaa !51
  %3826 = add i64 %3825, 1
  store i64 %3826, ptr %81, align 8, !tbaa !51
  br label %3424, !llvm.loop !71

3827:                                             ; preds = %3433
  br label %3828

3828:                                             ; preds = %3827
  %3829 = load i32, ptr @test_count, align 4, !tbaa !5
  %3830 = add nsw i32 %3829, 1
  store i32 %3830, ptr @test_count, align 4, !tbaa !5
  %3831 = load ptr, ptr %45, align 8, !tbaa !9
  %3832 = call i32 @s2n_connection_free(ptr noundef %3831)
  %3833 = icmp eq i32 %3832, -1
  br i1 %3833, label %3834, label %3887

3834:                                             ; preds = %3828
  br label %3835

3835:                                             ; preds = %3834
  br label %3836

3836:                                             ; preds = %3835
  call void @llvm.lifetime.start.p0(i64 4, ptr %90) #13
  %3837 = call ptr @__errno_location() #14
  %3838 = load i32, ptr %3837, align 4, !tbaa !5
  store i32 %3838, ptr %90, align 4, !tbaa !5
  %3839 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3840 = call i32 @s2n_print_stacktrace(ptr noundef %3839)
  %3841 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3842 = trunc i8 %3841 to i1
  br i1 %3842, label %3843, label %3865

3843:                                             ; preds = %3836
  %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
  %3847 = icmp ne i32 %3846, 0
  br i1 %3847, label %3848, label %3865

3848:                                             ; preds = %3843
  %3849 = load i32, ptr %90, align 4, !tbaa !5
  %3850 = call ptr @__errno_location() #14
  store i32 %3849, ptr %3850, align 4, !tbaa !5
  %3851 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3852 = load i32, ptr @test_count, align 4, !tbaa !5
  %3853 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3854 = load i32, ptr %3853, align 4, !tbaa !5
  %3855 = call ptr @s2n_strerror(i32 noundef %3854, ptr noundef @.str.60)
  %3856 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3857 = load i32, ptr %3856, align 4, !tbaa !5
  %3858 = call ptr @s2n_strerror_debug(i32 noundef %3857, ptr noundef @.str.60)
  %3859 = call ptr @__errno_location() #14
  %3860 = load i32, ptr %3859, align 4, !tbaa !5
  %3861 = call ptr @strerror(i32 noundef %3860) #13
  %3862 = call ptr @__errno_location() #14
  %3863 = load i32, ptr %3862, align 4, !tbaa !5
  %3864 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3851, ptr noundef @.str.58, i32 noundef %3852, ptr noundef @.str.90, ptr noundef @.str.57, i32 noundef 158, ptr noundef %3855, ptr noundef %3858, ptr noundef %3861, i32 noundef %3863) #13
  br label %3882

3865:                                             ; preds = %3843, %3836
  %3866 = load i32, ptr %90, align 4, !tbaa !5
  %3867 = call ptr @__errno_location() #14
  store i32 %3866, ptr %3867, align 4, !tbaa !5
  %3868 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3869 = load i32, ptr @test_count, align 4, !tbaa !5
  %3870 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3871 = load i32, ptr %3870, align 4, !tbaa !5
  %3872 = call ptr @s2n_strerror(i32 noundef %3871, ptr noundef @.str.60)
  %3873 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3874 = load i32, ptr %3873, align 4, !tbaa !5
  %3875 = call ptr @s2n_strerror_debug(i32 noundef %3874, ptr noundef @.str.60)
  %3876 = call ptr @__errno_location() #14
  %3877 = load i32, ptr %3876, align 4, !tbaa !5
  %3878 = call ptr @strerror(i32 noundef %3877) #13
  %3879 = call ptr @__errno_location() #14
  %3880 = load i32, ptr %3879, align 4, !tbaa !5
  %3881 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3868, ptr noundef @.str.61, i32 noundef %3869, ptr noundef @.str.90, ptr noundef @.str.57, i32 noundef 158, ptr noundef %3872, ptr noundef %3875, ptr noundef %3878, i32 noundef %3880) #13
  br label %3882

3882:                                             ; preds = %3865, %3848
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #13
  br label %3883

3883:                                             ; preds = %3882
  br label %3884

3884:                                             ; preds = %3883
  call void @exit(i32 noundef 1) #15
  unreachable

3885:                                             ; No predecessors!
  br label %3886

3886:                                             ; preds = %3885
  br label %3887

3887:                                             ; preds = %3886, %3828
  br label %3888

3888:                                             ; preds = %3887
  br label %3889

3889:                                             ; preds = %3888
  %3890 = call i32 @s2n_free(ptr noundef %79)
  call void @llvm.lifetime.end.p0(i64 24, ptr %79) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #13
  store i32 0, ptr %56, align 4
  br label %3891

3891:                                             ; preds = %3889, %3093
  call void @llvm.lifetime.end.p0(i64 32, ptr %54) #13
  call void @llvm.lifetime.end.p0(i64 17, ptr %53) #13
  call void @llvm.lifetime.end.p0(i64 19, ptr %52) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #13
  %3892 = load i32, ptr %56, align 4
  switch i32 %3892, label %9590 [
    i32 0, label %3893
    i32 1, label %9588
  ]

3893:                                             ; preds = %3891
  call void @llvm.lifetime.start.p0(i64 8, ptr %91) #13
  store ptr null, ptr %91, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %92) #13
  store ptr null, ptr %92, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %93) #13
  store ptr null, ptr %93, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %94) #13
  store ptr null, ptr %94, align 8, !tbaa !9
  br label %3894

3894:                                             ; preds = %3893
  %3895 = load i32, ptr @test_count, align 4, !tbaa !5
  %3896 = add nsw i32 %3895, 1
  store i32 %3896, ptr @test_count, align 4, !tbaa !5
  %3897 = call ptr @s2n_config_new()
  store ptr %3897, ptr %93, align 8, !tbaa !9
  %3898 = icmp eq ptr %3897, null
  br i1 %3898, label %3899, label %3952

3899:                                             ; preds = %3894
  br label %3900

3900:                                             ; preds = %3899
  br label %3901

3901:                                             ; preds = %3900
  call void @llvm.lifetime.start.p0(i64 4, ptr %95) #13
  %3902 = call ptr @__errno_location() #14
  %3903 = load i32, ptr %3902, align 4, !tbaa !5
  store i32 %3903, ptr %95, align 4, !tbaa !5
  %3904 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3905 = call i32 @s2n_print_stacktrace(ptr noundef %3904)
  %3906 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3907 = trunc i8 %3906 to i1
  br i1 %3907, label %3908, label %3930

3908:                                             ; preds = %3901
  %3909 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3910 = call i32 @fileno(ptr noundef %3909) #13
  %3911 = call i32 @isatty(i32 noundef %3910) #13
  %3912 = icmp ne i32 %3911, 0
  br i1 %3912, label %3913, label %3930

3913:                                             ; preds = %3908
  %3914 = load i32, ptr %95, align 4, !tbaa !5
  %3915 = call ptr @__errno_location() #14
  store i32 %3914, ptr %3915, align 4, !tbaa !5
  %3916 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3917 = load i32, ptr @test_count, align 4, !tbaa !5
  %3918 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3919 = load i32, ptr %3918, align 4, !tbaa !5
  %3920 = call ptr @s2n_strerror(i32 noundef %3919, ptr noundef @.str.60)
  %3921 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3922 = load i32, ptr %3921, align 4, !tbaa !5
  %3923 = call ptr @s2n_strerror_debug(i32 noundef %3922, ptr noundef @.str.60)
  %3924 = call ptr @__errno_location() #14
  %3925 = load i32, ptr %3924, align 4, !tbaa !5
  %3926 = call ptr @strerror(i32 noundef %3925) #13
  %3927 = call ptr @__errno_location() #14
  %3928 = load i32, ptr %3927, align 4, !tbaa !5
  %3929 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3916, ptr noundef @.str.58, i32 noundef %3917, ptr noundef @.str.101, ptr noundef @.str.57, i32 noundef 168, ptr noundef %3920, ptr noundef %3923, ptr noundef %3926, i32 noundef %3928) #13
  br label %3947

3930:                                             ; preds = %3908, %3901
  %3931 = load i32, ptr %95, align 4, !tbaa !5
  %3932 = call ptr @__errno_location() #14
  store i32 %3931, ptr %3932, align 4, !tbaa !5
  %3933 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3934 = load i32, ptr @test_count, align 4, !tbaa !5
  %3935 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3936 = load i32, ptr %3935, align 4, !tbaa !5
  %3937 = call ptr @s2n_strerror(i32 noundef %3936, ptr noundef @.str.60)
  %3938 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3939 = load i32, ptr %3938, align 4, !tbaa !5
  %3940 = call ptr @s2n_strerror_debug(i32 noundef %3939, ptr noundef @.str.60)
  %3941 = call ptr @__errno_location() #14
  %3942 = load i32, ptr %3941, align 4, !tbaa !5
  %3943 = call ptr @strerror(i32 noundef %3942) #13
  %3944 = call ptr @__errno_location() #14
  %3945 = load i32, ptr %3944, align 4, !tbaa !5
  %3946 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3933, ptr noundef @.str.61, i32 noundef %3934, ptr noundef @.str.101, ptr noundef @.str.57, i32 noundef 168, ptr noundef %3937, ptr noundef %3940, ptr noundef %3943, i32 noundef %3945) #13
  br label %3947

3947:                                             ; preds = %3930, %3913
  call void @llvm.lifetime.end.p0(i64 4, ptr %95) #13
  br label %3948

3948:                                             ; preds = %3947
  br label %3949

3949:                                             ; preds = %3948
  call void @exit(i32 noundef 1) #15
  unreachable

3950:                                             ; No predecessors!
  br label %3951

3951:                                             ; preds = %3950
  br label %3952

3952:                                             ; preds = %3951, %3894
  br label %3953

3953:                                             ; preds = %3952
  br label %3954

3954:                                             ; preds = %3953
  br label %3955

3955:                                             ; preds = %3954
  %3956 = load i32, ptr @test_count, align 4, !tbaa !5
  %3957 = add nsw i32 %3956, 1
  store i32 %3957, ptr @test_count, align 4, !tbaa !5
  %3958 = call ptr @s2n_config_new()
  store ptr %3958, ptr %94, align 8, !tbaa !9
  %3959 = icmp eq ptr %3958, null
  br i1 %3959, label %3960, label %4013

3960:                                             ; preds = %3955
  br label %3961

3961:                                             ; preds = %3960
  br label %3962

3962:                                             ; preds = %3961
  call void @llvm.lifetime.start.p0(i64 4, ptr %96) #13
  %3963 = call ptr @__errno_location() #14
  %3964 = load i32, ptr %3963, align 4, !tbaa !5
  store i32 %3964, ptr %96, align 4, !tbaa !5
  %3965 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3966 = call i32 @s2n_print_stacktrace(ptr noundef %3965)
  %3967 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3968 = trunc i8 %3967 to i1
  br i1 %3968, label %3969, label %3991

3969:                                             ; preds = %3962
  %3970 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3971 = call i32 @fileno(ptr noundef %3970) #13
  %3972 = call i32 @isatty(i32 noundef %3971) #13
  %3973 = icmp ne i32 %3972, 0
  br i1 %3973, label %3974, label %3991

3974:                                             ; preds = %3969
  %3975 = load i32, ptr %96, align 4, !tbaa !5
  %3976 = call ptr @__errno_location() #14
  store i32 %3975, ptr %3976, align 4, !tbaa !5
  %3977 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3978 = load i32, ptr @test_count, align 4, !tbaa !5
  %3979 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3980 = load i32, ptr %3979, align 4, !tbaa !5
  %3981 = call ptr @s2n_strerror(i32 noundef %3980, ptr noundef @.str.60)
  %3982 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3983 = load i32, ptr %3982, align 4, !tbaa !5
  %3984 = call ptr @s2n_strerror_debug(i32 noundef %3983, ptr noundef @.str.60)
  %3985 = call ptr @__errno_location() #14
  %3986 = load i32, ptr %3985, align 4, !tbaa !5
  %3987 = call ptr @strerror(i32 noundef %3986) #13
  %3988 = call ptr @__errno_location() #14
  %3989 = load i32, ptr %3988, align 4, !tbaa !5
  %3990 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3977, ptr noundef @.str.58, i32 noundef %3978, ptr noundef @.str.102, ptr noundef @.str.57, i32 noundef 169, ptr noundef %3981, ptr noundef %3984, ptr noundef %3987, i32 noundef %3989) #13
  br label %4008

3991:                                             ; preds = %3969, %3962
  %3992 = load i32, ptr %96, align 4, !tbaa !5
  %3993 = call ptr @__errno_location() #14
  store i32 %3992, ptr %3993, align 4, !tbaa !5
  %3994 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3995 = load i32, ptr @test_count, align 4, !tbaa !5
  %3996 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3997 = load i32, ptr %3996, align 4, !tbaa !5
  %3998 = call ptr @s2n_strerror(i32 noundef %3997, ptr noundef @.str.60)
  %3999 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4000 = load i32, ptr %3999, align 4, !tbaa !5
  %4001 = call ptr @s2n_strerror_debug(i32 noundef %4000, ptr noundef @.str.60)
  %4002 = call ptr @__errno_location() #14
  %4003 = load i32, ptr %4002, align 4, !tbaa !5
  %4004 = call ptr @strerror(i32 noundef %4003) #13
  %4005 = call ptr @__errno_location() #14
  %4006 = load i32, ptr %4005, align 4, !tbaa !5
  %4007 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3994, ptr noundef @.str.61, i32 noundef %3995, ptr noundef @.str.102, ptr noundef @.str.57, i32 noundef 169, ptr noundef %3998, ptr noundef %4001, ptr noundef %4004, i32 noundef %4006) #13
  br label %4008

4008:                                             ; preds = %3991, %3974
  call void @llvm.lifetime.end.p0(i64 4, ptr %96) #13
  br label %4009

4009:                                             ; preds = %4008
  br label %4010

4010:                                             ; preds = %4009
  call void @exit(i32 noundef 1) #15
  unreachable

4011:                                             ; No predecessors!
  br label %4012

4012:                                             ; preds = %4011
  br label %4013

4013:                                             ; preds = %4012, %3955
  br label %4014

4014:                                             ; preds = %4013
  br label %4015

4015:                                             ; preds = %4014
  br label %4016

4016:                                             ; preds = %4015
  %4017 = load i32, ptr @test_count, align 4, !tbaa !5
  %4018 = add nsw i32 %4017, 1
  store i32 %4018, ptr @test_count, align 4, !tbaa !5
  %4019 = load ptr, ptr %94, align 8, !tbaa !9
  %4020 = call i32 @s2n_config_set_unsafe_for_testing(ptr noundef %4019)
  %4021 = icmp eq i32 %4020, -1
  br i1 %4021, label %4022, label %4075

4022:                                             ; preds = %4016
  br label %4023

4023:                                             ; preds = %4022
  br label %4024

4024:                                             ; preds = %4023
  call void @llvm.lifetime.start.p0(i64 4, ptr %97) #13
  %4025 = call ptr @__errno_location() #14
  %4026 = load i32, ptr %4025, align 4, !tbaa !5
  store i32 %4026, ptr %97, align 4, !tbaa !5
  %4027 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4028 = call i32 @s2n_print_stacktrace(ptr noundef %4027)
  %4029 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4030 = trunc i8 %4029 to i1
  br i1 %4030, label %4031, label %4053

4031:                                             ; preds = %4024
  %4032 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4033 = call i32 @fileno(ptr noundef %4032) #13
  %4034 = call i32 @isatty(i32 noundef %4033) #13
  %4035 = icmp ne i32 %4034, 0
  br i1 %4035, label %4036, label %4053

4036:                                             ; preds = %4031
  %4037 = load i32, ptr %97, align 4, !tbaa !5
  %4038 = call ptr @__errno_location() #14
  store i32 %4037, ptr %4038, align 4, !tbaa !5
  %4039 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4040 = load i32, ptr @test_count, align 4, !tbaa !5
  %4041 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4042 = load i32, ptr %4041, align 4, !tbaa !5
  %4043 = call ptr @s2n_strerror(i32 noundef %4042, ptr noundef @.str.60)
  %4044 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4045 = load i32, ptr %4044, align 4, !tbaa !5
  %4046 = call ptr @s2n_strerror_debug(i32 noundef %4045, ptr noundef @.str.60)
  %4047 = call ptr @__errno_location() #14
  %4048 = load i32, ptr %4047, align 4, !tbaa !5
  %4049 = call ptr @strerror(i32 noundef %4048) #13
  %4050 = call ptr @__errno_location() #14
  %4051 = load i32, ptr %4050, align 4, !tbaa !5
  %4052 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4039, ptr noundef @.str.58, i32 noundef %4040, ptr noundef @.str.103, ptr noundef @.str.57, i32 noundef 170, ptr noundef %4043, ptr noundef %4046, ptr noundef %4049, i32 noundef %4051) #13
  br label %4070

4053:                                             ; preds = %4031, %4024
  %4054 = load i32, ptr %97, align 4, !tbaa !5
  %4055 = call ptr @__errno_location() #14
  store i32 %4054, ptr %4055, align 4, !tbaa !5
  %4056 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4057 = load i32, ptr @test_count, align 4, !tbaa !5
  %4058 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4059 = load i32, ptr %4058, align 4, !tbaa !5
  %4060 = call ptr @s2n_strerror(i32 noundef %4059, ptr noundef @.str.60)
  %4061 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4062 = load i32, ptr %4061, align 4, !tbaa !5
  %4063 = call ptr @s2n_strerror_debug(i32 noundef %4062, ptr noundef @.str.60)
  %4064 = call ptr @__errno_location() #14
  %4065 = load i32, ptr %4064, align 4, !tbaa !5
  %4066 = call ptr @strerror(i32 noundef %4065) #13
  %4067 = call ptr @__errno_location() #14
  %4068 = load i32, ptr %4067, align 4, !tbaa !5
  %4069 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4056, ptr noundef @.str.61, i32 noundef %4057, ptr noundef @.str.103, ptr noundef @.str.57, i32 noundef 170, ptr noundef %4060, ptr noundef %4063, ptr noundef %4066, i32 noundef %4068) #13
  br label %4070

4070:                                             ; preds = %4053, %4036
  call void @llvm.lifetime.end.p0(i64 4, ptr %97) #13
  br label %4071

4071:                                             ; preds = %4070
  br label %4072

4072:                                             ; preds = %4071
  call void @exit(i32 noundef 1) #15
  unreachable

4073:                                             ; No predecessors!
  br label %4074

4074:                                             ; preds = %4073
  br label %4075

4075:                                             ; preds = %4074, %4016
  br label %4076

4076:                                             ; preds = %4075
  br label %4077

4077:                                             ; preds = %4076
  call void @llvm.lifetime.start.p0(i64 8, ptr %98) #13
  store ptr null, ptr %98, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %99) #13
  store ptr null, ptr %99, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %100) #13
  store i32 0, ptr %100, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %101) #13
  store i32 0, ptr %101, align 4, !tbaa !5
  br label %4078

4078:                                             ; preds = %4077
  %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 noalias ptr @malloc(i64 noundef 12000) #17
  store ptr %4081, ptr %98, align 8, !tbaa !9
  %4082 = icmp eq ptr %4081, null
  br i1 %4082, label %4083, label %4136

4083:                                             ; preds = %4078
  br label %4084

4084:                                             ; preds = %4083
  br label %4085

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

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

4097:                                             ; preds = %4092
  %4098 = load i32, ptr %102, align 4, !tbaa !5
  %4099 = call ptr @__errno_location() #14
  store i32 %4098, ptr %4099, align 4, !tbaa !5
  %4100 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4101 = load i32, ptr @test_count, align 4, !tbaa !5
  %4102 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4103 = load i32, ptr %4102, align 4, !tbaa !5
  %4104 = call ptr @s2n_strerror(i32 noundef %4103, ptr noundef @.str.60)
  %4105 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4106 = load i32, ptr %4105, align 4, !tbaa !5
  %4107 = call ptr @s2n_strerror_debug(i32 noundef %4106, ptr noundef @.str.60)
  %4108 = call ptr @__errno_location() #14
  %4109 = load i32, ptr %4108, align 4, !tbaa !5
  %4110 = call ptr @strerror(i32 noundef %4109) #13
  %4111 = call ptr @__errno_location() #14
  %4112 = load i32, ptr %4111, align 4, !tbaa !5
  %4113 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4100, ptr noundef @.str.58, i32 noundef %4101, ptr noundef @.str.104, ptr noundef @.str.57, i32 noundef 177, ptr noundef %4104, ptr noundef %4107, ptr noundef %4110, i32 noundef %4112) #13
  br label %4131

4114:                                             ; preds = %4092, %4085
  %4115 = load i32, ptr %102, align 4, !tbaa !5
  %4116 = call ptr @__errno_location() #14
  store i32 %4115, ptr %4116, align 4, !tbaa !5
  %4117 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4118 = load i32, ptr @test_count, align 4, !tbaa !5
  %4119 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4120 = load i32, ptr %4119, align 4, !tbaa !5
  %4121 = call ptr @s2n_strerror(i32 noundef %4120, ptr noundef @.str.60)
  %4122 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4123 = load i32, ptr %4122, align 4, !tbaa !5
  %4124 = call ptr @s2n_strerror_debug(i32 noundef %4123, ptr noundef @.str.60)
  %4125 = call ptr @__errno_location() #14
  %4126 = load i32, ptr %4125, align 4, !tbaa !5
  %4127 = call ptr @strerror(i32 noundef %4126) #13
  %4128 = call ptr @__errno_location() #14
  %4129 = load i32, ptr %4128, align 4, !tbaa !5
  %4130 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4117, ptr noundef @.str.61, i32 noundef %4118, ptr noundef @.str.104, ptr noundef @.str.57, i32 noundef 177, ptr noundef %4121, ptr noundef %4124, ptr noundef %4127, i32 noundef %4129) #13
  br label %4131

4131:                                             ; preds = %4114, %4097
  call void @llvm.lifetime.end.p0(i64 4, ptr %102) #13
  br label %4132

4132:                                             ; preds = %4131
  br label %4133

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

4134:                                             ; No predecessors!
  br label %4135

4135:                                             ; preds = %4134
  br label %4136

4136:                                             ; preds = %4135, %4078
  br label %4137

4137:                                             ; preds = %4136
  br label %4138

4138:                                             ; preds = %4137
  br label %4139

4139:                                             ; preds = %4138
  %4140 = load i32, ptr @test_count, align 4, !tbaa !5
  %4141 = add nsw i32 %4140, 1
  store i32 %4141, ptr @test_count, align 4, !tbaa !5
  %4142 = call noalias ptr @malloc(i64 noundef 12000) #17
  store ptr %4142, ptr %99, align 8, !tbaa !9
  %4143 = icmp eq ptr %4142, null
  br i1 %4143, label %4144, label %4197

4144:                                             ; preds = %4139
  br label %4145

4145:                                             ; preds = %4144
  br label %4146

4146:                                             ; preds = %4145
  call void @llvm.lifetime.start.p0(i64 4, ptr %103) #13
  %4147 = call ptr @__errno_location() #14
  %4148 = load i32, ptr %4147, align 4, !tbaa !5
  store i32 %4148, ptr %103, align 4, !tbaa !5
  %4149 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4150 = call i32 @s2n_print_stacktrace(ptr noundef %4149)
  %4151 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4152 = trunc i8 %4151 to i1
  br i1 %4152, label %4153, label %4175

4153:                                             ; preds = %4146
  %4154 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4155 = call i32 @fileno(ptr noundef %4154) #13
  %4156 = call i32 @isatty(i32 noundef %4155) #13
  %4157 = icmp ne i32 %4156, 0
  br i1 %4157, label %4158, label %4175

4158:                                             ; preds = %4153
  %4159 = load i32, ptr %103, align 4, !tbaa !5
  %4160 = call ptr @__errno_location() #14
  store i32 %4159, ptr %4160, align 4, !tbaa !5
  %4161 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4162 = load i32, ptr @test_count, align 4, !tbaa !5
  %4163 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4164 = load i32, ptr %4163, align 4, !tbaa !5
  %4165 = call ptr @s2n_strerror(i32 noundef %4164, ptr noundef @.str.60)
  %4166 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4167 = load i32, ptr %4166, align 4, !tbaa !5
  %4168 = call ptr @s2n_strerror_debug(i32 noundef %4167, ptr noundef @.str.60)
  %4169 = call ptr @__errno_location() #14
  %4170 = load i32, ptr %4169, align 4, !tbaa !5
  %4171 = call ptr @strerror(i32 noundef %4170) #13
  %4172 = call ptr @__errno_location() #14
  %4173 = load i32, ptr %4172, align 4, !tbaa !5
  %4174 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4161, ptr noundef @.str.58, i32 noundef %4162, ptr noundef @.str.105, ptr noundef @.str.57, i32 noundef 178, ptr noundef %4165, ptr noundef %4168, ptr noundef %4171, i32 noundef %4173) #13
  br label %4192

4175:                                             ; preds = %4153, %4146
  %4176 = load i32, ptr %103, align 4, !tbaa !5
  %4177 = call ptr @__errno_location() #14
  store i32 %4176, ptr %4177, align 4, !tbaa !5
  %4178 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4179 = load i32, ptr @test_count, align 4, !tbaa !5
  %4180 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4181 = load i32, ptr %4180, align 4, !tbaa !5
  %4182 = call ptr @s2n_strerror(i32 noundef %4181, ptr noundef @.str.60)
  %4183 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4184 = load i32, ptr %4183, align 4, !tbaa !5
  %4185 = call ptr @s2n_strerror_debug(i32 noundef %4184, ptr noundef @.str.60)
  %4186 = call ptr @__errno_location() #14
  %4187 = load i32, ptr %4186, align 4, !tbaa !5
  %4188 = call ptr @strerror(i32 noundef %4187) #13
  %4189 = call ptr @__errno_location() #14
  %4190 = load i32, ptr %4189, align 4, !tbaa !5
  %4191 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4178, ptr noundef @.str.61, i32 noundef %4179, ptr noundef @.str.105, ptr noundef @.str.57, i32 noundef 178, ptr noundef %4182, ptr noundef %4185, ptr noundef %4188, i32 noundef %4190) #13
  br label %4192

4192:                                             ; preds = %4175, %4158
  call void @llvm.lifetime.end.p0(i64 4, ptr %103) #13
  br label %4193

4193:                                             ; preds = %4192
  br label %4194

4194:                                             ; preds = %4193
  call void @exit(i32 noundef 1) #15
  unreachable

4195:                                             ; No predecessors!
  br label %4196

4196:                                             ; preds = %4195
  br label %4197

4197:                                             ; preds = %4196, %4139
  br label %4198

4198:                                             ; preds = %4197
  br label %4199

4199:                                             ; preds = %4198
  br label %4200

4200:                                             ; preds = %4199
  %4201 = load i32, ptr @test_count, align 4, !tbaa !5
  %4202 = add nsw i32 %4201, 1
  store i32 %4202, ptr @test_count, align 4, !tbaa !5
  %4203 = load ptr, ptr %98, align 8, !tbaa !9
  %4204 = call i32 @s2n_read_test_pem_and_len(ptr noundef @.str.106, ptr noundef %4203, ptr noundef %100, i64 noundef 12000)
  %4205 = icmp eq i32 %4204, -1
  br i1 %4205, label %4206, label %4259

4206:                                             ; preds = %4200
  br label %4207

4207:                                             ; preds = %4206
  br label %4208

4208:                                             ; preds = %4207
  call void @llvm.lifetime.start.p0(i64 4, ptr %104) #13
  %4209 = call ptr @__errno_location() #14
  %4210 = load i32, ptr %4209, align 4, !tbaa !5
  store i32 %4210, ptr %104, align 4, !tbaa !5
  %4211 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4212 = call i32 @s2n_print_stacktrace(ptr noundef %4211)
  %4213 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4214 = trunc i8 %4213 to i1
  br i1 %4214, label %4215, label %4237

4215:                                             ; preds = %4208
  %4216 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4217 = call i32 @fileno(ptr noundef %4216) #13
  %4218 = call i32 @isatty(i32 noundef %4217) #13
  %4219 = icmp ne i32 %4218, 0
  br i1 %4219, label %4220, label %4237

4220:                                             ; preds = %4215
  %4221 = load i32, ptr %104, align 4, !tbaa !5
  %4222 = call ptr @__errno_location() #14
  store i32 %4221, ptr %4222, align 4, !tbaa !5
  %4223 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4224 = load i32, ptr @test_count, align 4, !tbaa !5
  %4225 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4226 = load i32, ptr %4225, align 4, !tbaa !5
  %4227 = call ptr @s2n_strerror(i32 noundef %4226, ptr noundef @.str.60)
  %4228 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4229 = load i32, ptr %4228, align 4, !tbaa !5
  %4230 = call ptr @s2n_strerror_debug(i32 noundef %4229, ptr noundef @.str.60)
  %4231 = call ptr @__errno_location() #14
  %4232 = load i32, ptr %4231, align 4, !tbaa !5
  %4233 = call ptr @strerror(i32 noundef %4232) #13
  %4234 = call ptr @__errno_location() #14
  %4235 = load i32, ptr %4234, align 4, !tbaa !5
  %4236 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4223, ptr noundef @.str.58, i32 noundef %4224, ptr noundef @.str.107, ptr noundef @.str.57, i32 noundef 180, ptr noundef %4227, ptr noundef %4230, ptr noundef %4233, i32 noundef %4235) #13
  br label %4254

4237:                                             ; preds = %4215, %4208
  %4238 = load i32, ptr %104, align 4, !tbaa !5
  %4239 = call ptr @__errno_location() #14
  store i32 %4238, ptr %4239, align 4, !tbaa !5
  %4240 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4241 = load i32, ptr @test_count, align 4, !tbaa !5
  %4242 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4243 = load i32, ptr %4242, align 4, !tbaa !5
  %4244 = call ptr @s2n_strerror(i32 noundef %4243, ptr noundef @.str.60)
  %4245 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4246 = load i32, ptr %4245, align 4, !tbaa !5
  %4247 = call ptr @s2n_strerror_debug(i32 noundef %4246, ptr noundef @.str.60)
  %4248 = call ptr @__errno_location() #14
  %4249 = load i32, ptr %4248, align 4, !tbaa !5
  %4250 = call ptr @strerror(i32 noundef %4249) #13
  %4251 = call ptr @__errno_location() #14
  %4252 = load i32, ptr %4251, align 4, !tbaa !5
  %4253 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4240, ptr noundef @.str.61, i32 noundef %4241, ptr noundef @.str.107, ptr noundef @.str.57, i32 noundef 180, ptr noundef %4244, ptr noundef %4247, ptr noundef %4250, i32 noundef %4252) #13
  br label %4254

4254:                                             ; preds = %4237, %4220
  call void @llvm.lifetime.end.p0(i64 4, ptr %104) #13
  br label %4255

4255:                                             ; preds = %4254
  br label %4256

4256:                                             ; preds = %4255
  call void @exit(i32 noundef 1) #15
  unreachable

4257:                                             ; No predecessors!
  br label %4258

4258:                                             ; preds = %4257
  br label %4259

4259:                                             ; preds = %4258, %4200
  br label %4260

4260:                                             ; preds = %4259
  br label %4261

4261:                                             ; preds = %4260
  br label %4262

4262:                                             ; preds = %4261
  %4263 = load i32, ptr @test_count, align 4, !tbaa !5
  %4264 = add nsw i32 %4263, 1
  store i32 %4264, ptr @test_count, align 4, !tbaa !5
  %4265 = load ptr, ptr %99, align 8, !tbaa !9
  %4266 = call i32 @s2n_read_test_pem_and_len(ptr noundef @.str.108, ptr noundef %4265, ptr noundef %101, i64 noundef 12000)
  %4267 = icmp eq i32 %4266, -1
  br i1 %4267, label %4268, label %4321

4268:                                             ; preds = %4262
  br label %4269

4269:                                             ; preds = %4268
  br label %4270

4270:                                             ; preds = %4269
  call void @llvm.lifetime.start.p0(i64 4, ptr %105) #13
  %4271 = call ptr @__errno_location() #14
  %4272 = load i32, ptr %4271, align 4, !tbaa !5
  store i32 %4272, ptr %105, align 4, !tbaa !5
  %4273 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4274 = call i32 @s2n_print_stacktrace(ptr noundef %4273)
  %4275 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4276 = trunc i8 %4275 to i1
  br i1 %4276, label %4277, label %4299

4277:                                             ; preds = %4270
  %4278 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4279 = call i32 @fileno(ptr noundef %4278) #13
  %4280 = call i32 @isatty(i32 noundef %4279) #13
  %4281 = icmp ne i32 %4280, 0
  br i1 %4281, label %4282, label %4299

4282:                                             ; preds = %4277
  %4283 = load i32, ptr %105, align 4, !tbaa !5
  %4284 = call ptr @__errno_location() #14
  store i32 %4283, ptr %4284, align 4, !tbaa !5
  %4285 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4286 = load i32, ptr @test_count, align 4, !tbaa !5
  %4287 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4288 = load i32, ptr %4287, align 4, !tbaa !5
  %4289 = call ptr @s2n_strerror(i32 noundef %4288, ptr noundef @.str.60)
  %4290 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4291 = load i32, ptr %4290, align 4, !tbaa !5
  %4292 = call ptr @s2n_strerror_debug(i32 noundef %4291, ptr noundef @.str.60)
  %4293 = call ptr @__errno_location() #14
  %4294 = load i32, ptr %4293, align 4, !tbaa !5
  %4295 = call ptr @strerror(i32 noundef %4294) #13
  %4296 = call ptr @__errno_location() #14
  %4297 = load i32, ptr %4296, align 4, !tbaa !5
  %4298 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4285, ptr noundef @.str.58, i32 noundef %4286, ptr noundef @.str.109, ptr noundef @.str.57, i32 noundef 181, ptr noundef %4289, ptr noundef %4292, ptr noundef %4295, i32 noundef %4297) #13
  br label %4316

4299:                                             ; preds = %4277, %4270
  %4300 = load i32, ptr %105, align 4, !tbaa !5
  %4301 = call ptr @__errno_location() #14
  store i32 %4300, ptr %4301, align 4, !tbaa !5
  %4302 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4303 = load i32, ptr @test_count, align 4, !tbaa !5
  %4304 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4305 = load i32, ptr %4304, align 4, !tbaa !5
  %4306 = call ptr @s2n_strerror(i32 noundef %4305, ptr noundef @.str.60)
  %4307 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4308 = load i32, ptr %4307, align 4, !tbaa !5
  %4309 = call ptr @s2n_strerror_debug(i32 noundef %4308, ptr noundef @.str.60)
  %4310 = call ptr @__errno_location() #14
  %4311 = load i32, ptr %4310, align 4, !tbaa !5
  %4312 = call ptr @strerror(i32 noundef %4311) #13
  %4313 = call ptr @__errno_location() #14
  %4314 = load i32, ptr %4313, align 4, !tbaa !5
  %4315 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4302, ptr noundef @.str.61, i32 noundef %4303, ptr noundef @.str.109, ptr noundef @.str.57, i32 noundef 181, ptr noundef %4306, ptr noundef %4309, ptr noundef %4312, i32 noundef %4314) #13
  br label %4316

4316:                                             ; preds = %4299, %4282
  call void @llvm.lifetime.end.p0(i64 4, ptr %105) #13
  br label %4317

4317:                                             ; preds = %4316
  br label %4318

4318:                                             ; preds = %4317
  call void @exit(i32 noundef 1) #15
  unreachable

4319:                                             ; No predecessors!
  br label %4320

4320:                                             ; preds = %4319
  br label %4321

4321:                                             ; preds = %4320, %4262
  br label %4322

4322:                                             ; preds = %4321
  br label %4323

4323:                                             ; preds = %4322
  call void @llvm.lifetime.start.p0(i64 8, ptr %106) #13
  store ptr null, ptr %106, align 8, !tbaa !9
  br label %4324

4324:                                             ; preds = %4323
  %4325 = load i32, ptr @test_count, align 4, !tbaa !5
  %4326 = add nsw i32 %4325, 1
  store i32 %4326, ptr @test_count, align 4, !tbaa !5
  %4327 = call ptr @s2n_cert_chain_and_key_new()
  store ptr %4327, ptr %106, align 8, !tbaa !9
  %4328 = icmp eq ptr %4327, null
  br i1 %4328, label %4329, label %4382

4329:                                             ; preds = %4324
  br label %4330

4330:                                             ; preds = %4329
  br label %4331

4331:                                             ; preds = %4330
  call void @llvm.lifetime.start.p0(i64 4, ptr %107) #13
  %4332 = call ptr @__errno_location() #14
  %4333 = load i32, ptr %4332, align 4, !tbaa !5
  store i32 %4333, ptr %107, align 4, !tbaa !5
  %4334 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4335 = call i32 @s2n_print_stacktrace(ptr noundef %4334)
  %4336 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4337 = trunc i8 %4336 to i1
  br i1 %4337, label %4338, label %4360

4338:                                             ; preds = %4331
  %4339 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4340 = call i32 @fileno(ptr noundef %4339) #13
  %4341 = call i32 @isatty(i32 noundef %4340) #13
  %4342 = icmp ne i32 %4341, 0
  br i1 %4342, label %4343, label %4360

4343:                                             ; preds = %4338
  %4344 = load i32, ptr %107, align 4, !tbaa !5
  %4345 = call ptr @__errno_location() #14
  store i32 %4344, ptr %4345, align 4, !tbaa !5
  %4346 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4347 = load i32, ptr @test_count, align 4, !tbaa !5
  %4348 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4349 = load i32, ptr %4348, align 4, !tbaa !5
  %4350 = call ptr @s2n_strerror(i32 noundef %4349, ptr noundef @.str.60)
  %4351 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4352 = load i32, ptr %4351, align 4, !tbaa !5
  %4353 = call ptr @s2n_strerror_debug(i32 noundef %4352, ptr noundef @.str.60)
  %4354 = call ptr @__errno_location() #14
  %4355 = load i32, ptr %4354, align 4, !tbaa !5
  %4356 = call ptr @strerror(i32 noundef %4355) #13
  %4357 = call ptr @__errno_location() #14
  %4358 = load i32, ptr %4357, align 4, !tbaa !5
  %4359 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4346, ptr noundef @.str.58, i32 noundef %4347, ptr noundef @.str.110, ptr noundef @.str.57, i32 noundef 184, ptr noundef %4350, ptr noundef %4353, ptr noundef %4356, i32 noundef %4358) #13
  br label %4377

4360:                                             ; preds = %4338, %4331
  %4361 = load i32, ptr %107, align 4, !tbaa !5
  %4362 = call ptr @__errno_location() #14
  store i32 %4361, ptr %4362, align 4, !tbaa !5
  %4363 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4364 = load i32, ptr @test_count, align 4, !tbaa !5
  %4365 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4366 = load i32, ptr %4365, align 4, !tbaa !5
  %4367 = call ptr @s2n_strerror(i32 noundef %4366, ptr noundef @.str.60)
  %4368 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4369 = load i32, ptr %4368, align 4, !tbaa !5
  %4370 = call ptr @s2n_strerror_debug(i32 noundef %4369, ptr noundef @.str.60)
  %4371 = call ptr @__errno_location() #14
  %4372 = load i32, ptr %4371, align 4, !tbaa !5
  %4373 = call ptr @strerror(i32 noundef %4372) #13
  %4374 = call ptr @__errno_location() #14
  %4375 = load i32, ptr %4374, align 4, !tbaa !5
  %4376 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4363, ptr noundef @.str.61, i32 noundef %4364, ptr noundef @.str.110, ptr noundef @.str.57, i32 noundef 184, ptr noundef %4367, ptr noundef %4370, ptr noundef %4373, i32 noundef %4375) #13
  br label %4377

4377:                                             ; preds = %4360, %4343
  call void @llvm.lifetime.end.p0(i64 4, ptr %107) #13
  br label %4378

4378:                                             ; preds = %4377
  br label %4379

4379:                                             ; preds = %4378
  call void @exit(i32 noundef 1) #15
  unreachable

4380:                                             ; No predecessors!
  br label %4381

4381:                                             ; preds = %4380
  br label %4382

4382:                                             ; preds = %4381, %4324
  br label %4383

4383:                                             ; preds = %4382
  br label %4384

4384:                                             ; preds = %4383
  br label %4385

4385:                                             ; preds = %4384
  %4386 = load i32, ptr @test_count, align 4, !tbaa !5
  %4387 = add nsw i32 %4386, 1
  store i32 %4387, ptr @test_count, align 4, !tbaa !5
  %4388 = load ptr, ptr %106, align 8, !tbaa !9
  %4389 = load ptr, ptr %98, align 8, !tbaa !9
  %4390 = load i32, ptr %100, align 4, !tbaa !5
  %4391 = load ptr, ptr %99, align 8, !tbaa !9
  %4392 = load i32, ptr %101, align 4, !tbaa !5
  %4393 = call i32 @s2n_cert_chain_and_key_load_pem_bytes(ptr noundef %4388, ptr noundef %4389, i32 noundef %4390, ptr noundef %4391, i32 noundef %4392)
  %4394 = icmp eq i32 %4393, -1
  br i1 %4394, label %4395, label %4448

4395:                                             ; preds = %4385
  br label %4396

4396:                                             ; preds = %4395
  br label %4397

4397:                                             ; preds = %4396
  call void @llvm.lifetime.start.p0(i64 4, ptr %108) #13
  %4398 = call ptr @__errno_location() #14
  %4399 = load i32, ptr %4398, align 4, !tbaa !5
  store i32 %4399, ptr %108, align 4, !tbaa !5
  %4400 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4401 = call i32 @s2n_print_stacktrace(ptr noundef %4400)
  %4402 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4403 = trunc i8 %4402 to i1
  br i1 %4403, label %4404, label %4426

4404:                                             ; preds = %4397
  %4405 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4406 = call i32 @fileno(ptr noundef %4405) #13
  %4407 = call i32 @isatty(i32 noundef %4406) #13
  %4408 = icmp ne i32 %4407, 0
  br i1 %4408, label %4409, label %4426

4409:                                             ; preds = %4404
  %4410 = load i32, ptr %108, align 4, !tbaa !5
  %4411 = call ptr @__errno_location() #14
  store i32 %4410, ptr %4411, align 4, !tbaa !5
  %4412 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4413 = load i32, ptr @test_count, align 4, !tbaa !5
  %4414 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4415 = load i32, ptr %4414, align 4, !tbaa !5
  %4416 = call ptr @s2n_strerror(i32 noundef %4415, ptr noundef @.str.60)
  %4417 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4418 = load i32, ptr %4417, align 4, !tbaa !5
  %4419 = call ptr @s2n_strerror_debug(i32 noundef %4418, ptr noundef @.str.60)
  %4420 = call ptr @__errno_location() #14
  %4421 = load i32, ptr %4420, align 4, !tbaa !5
  %4422 = call ptr @strerror(i32 noundef %4421) #13
  %4423 = call ptr @__errno_location() #14
  %4424 = load i32, ptr %4423, align 4, !tbaa !5
  %4425 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4412, ptr noundef @.str.58, i32 noundef %4413, ptr noundef @.str.111, ptr noundef @.str.57, i32 noundef 185, ptr noundef %4416, ptr noundef %4419, ptr noundef %4422, i32 noundef %4424) #13
  br label %4443

4426:                                             ; preds = %4404, %4397
  %4427 = load i32, ptr %108, align 4, !tbaa !5
  %4428 = call ptr @__errno_location() #14
  store i32 %4427, ptr %4428, align 4, !tbaa !5
  %4429 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4430 = load i32, ptr @test_count, align 4, !tbaa !5
  %4431 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4432 = load i32, ptr %4431, align 4, !tbaa !5
  %4433 = call ptr @s2n_strerror(i32 noundef %4432, ptr noundef @.str.60)
  %4434 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4435 = load i32, ptr %4434, align 4, !tbaa !5
  %4436 = call ptr @s2n_strerror_debug(i32 noundef %4435, ptr noundef @.str.60)
  %4437 = call ptr @__errno_location() #14
  %4438 = load i32, ptr %4437, align 4, !tbaa !5
  %4439 = call ptr @strerror(i32 noundef %4438) #13
  %4440 = call ptr @__errno_location() #14
  %4441 = load i32, ptr %4440, align 4, !tbaa !5
  %4442 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4429, ptr noundef @.str.61, i32 noundef %4430, ptr noundef @.str.111, ptr noundef @.str.57, i32 noundef 185, ptr noundef %4433, ptr noundef %4436, ptr noundef %4439, i32 noundef %4441) #13
  br label %4443

4443:                                             ; preds = %4426, %4409
  call void @llvm.lifetime.end.p0(i64 4, ptr %108) #13
  br label %4444

4444:                                             ; preds = %4443
  br label %4445

4445:                                             ; preds = %4444
  call void @exit(i32 noundef 1) #15
  unreachable

4446:                                             ; No predecessors!
  br label %4447

4447:                                             ; preds = %4446
  br label %4448

4448:                                             ; preds = %4447, %4385
  br label %4449

4449:                                             ; preds = %4448
  br label %4450

4450:                                             ; preds = %4449
  br label %4451

4451:                                             ; preds = %4450
  %4452 = load i32, ptr @test_count, align 4, !tbaa !5
  %4453 = add nsw i32 %4452, 1
  store i32 %4453, ptr @test_count, align 4, !tbaa !5
  %4454 = load ptr, ptr %93, align 8, !tbaa !9
  %4455 = load ptr, ptr %106, align 8, !tbaa !9
  %4456 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %4454, ptr noundef %4455)
  %4457 = icmp eq i32 %4456, -1
  br i1 %4457, label %4458, label %4511

4458:                                             ; preds = %4451
  br label %4459

4459:                                             ; preds = %4458
  br label %4460

4460:                                             ; preds = %4459
  call void @llvm.lifetime.start.p0(i64 4, ptr %109) #13
  %4461 = call ptr @__errno_location() #14
  %4462 = load i32, ptr %4461, align 4, !tbaa !5
  store i32 %4462, ptr %109, align 4, !tbaa !5
  %4463 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4464 = call i32 @s2n_print_stacktrace(ptr noundef %4463)
  %4465 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4466 = trunc i8 %4465 to i1
  br i1 %4466, label %4467, label %4489

4467:                                             ; preds = %4460
  %4468 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4469 = call i32 @fileno(ptr noundef %4468) #13
  %4470 = call i32 @isatty(i32 noundef %4469) #13
  %4471 = icmp ne i32 %4470, 0
  br i1 %4471, label %4472, label %4489

4472:                                             ; preds = %4467
  %4473 = load i32, ptr %109, align 4, !tbaa !5
  %4474 = call ptr @__errno_location() #14
  store i32 %4473, ptr %4474, align 4, !tbaa !5
  %4475 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4476 = load i32, ptr @test_count, align 4, !tbaa !5
  %4477 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4478 = load i32, ptr %4477, align 4, !tbaa !5
  %4479 = call ptr @s2n_strerror(i32 noundef %4478, ptr noundef @.str.60)
  %4480 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4481 = load i32, ptr %4480, align 4, !tbaa !5
  %4482 = call ptr @s2n_strerror_debug(i32 noundef %4481, ptr noundef @.str.60)
  %4483 = call ptr @__errno_location() #14
  %4484 = load i32, ptr %4483, align 4, !tbaa !5
  %4485 = call ptr @strerror(i32 noundef %4484) #13
  %4486 = call ptr @__errno_location() #14
  %4487 = load i32, ptr %4486, align 4, !tbaa !5
  %4488 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4475, ptr noundef @.str.58, i32 noundef %4476, ptr noundef @.str.112, ptr noundef @.str.57, i32 noundef 186, ptr noundef %4479, ptr noundef %4482, ptr noundef %4485, i32 noundef %4487) #13
  br label %4506

4489:                                             ; preds = %4467, %4460
  %4490 = load i32, ptr %109, align 4, !tbaa !5
  %4491 = call ptr @__errno_location() #14
  store i32 %4490, ptr %4491, align 4, !tbaa !5
  %4492 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4493 = load i32, ptr @test_count, align 4, !tbaa !5
  %4494 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4495 = load i32, ptr %4494, align 4, !tbaa !5
  %4496 = call ptr @s2n_strerror(i32 noundef %4495, ptr noundef @.str.60)
  %4497 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4498 = load i32, ptr %4497, align 4, !tbaa !5
  %4499 = call ptr @s2n_strerror_debug(i32 noundef %4498, ptr noundef @.str.60)
  %4500 = call ptr @__errno_location() #14
  %4501 = load i32, ptr %4500, align 4, !tbaa !5
  %4502 = call ptr @strerror(i32 noundef %4501) #13
  %4503 = call ptr @__errno_location() #14
  %4504 = load i32, ptr %4503, align 4, !tbaa !5
  %4505 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4492, ptr noundef @.str.61, i32 noundef %4493, ptr noundef @.str.112, ptr noundef @.str.57, i32 noundef 186, ptr noundef %4496, ptr noundef %4499, ptr noundef %4502, i32 noundef %4504) #13
  br label %4506

4506:                                             ; preds = %4489, %4472
  call void @llvm.lifetime.end.p0(i64 4, ptr %109) #13
  br label %4507

4507:                                             ; preds = %4506
  br label %4508

4508:                                             ; preds = %4507
  call void @exit(i32 noundef 1) #15
  unreachable

4509:                                             ; No predecessors!
  br label %4510

4510:                                             ; preds = %4509
  br label %4511

4511:                                             ; preds = %4510, %4451
  br label %4512

4512:                                             ; preds = %4511
  br label %4513

4513:                                             ; preds = %4512
  br label %4514

4514:                                             ; preds = %4513
  %4515 = load i32, ptr @test_count, align 4, !tbaa !5
  %4516 = add nsw i32 %4515, 1
  store i32 %4516, ptr @test_count, align 4, !tbaa !5
  %4517 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %4517, ptr %91, align 8, !tbaa !9
  %4518 = icmp eq ptr %4517, null
  br i1 %4518, label %4519, label %4572

4519:                                             ; preds = %4514
  br label %4520

4520:                                             ; preds = %4519
  br label %4521

4521:                                             ; preds = %4520
  call void @llvm.lifetime.start.p0(i64 4, ptr %110) #13
  %4522 = call ptr @__errno_location() #14
  %4523 = load i32, ptr %4522, align 4, !tbaa !5
  store i32 %4523, ptr %110, align 4, !tbaa !5
  %4524 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4525 = call i32 @s2n_print_stacktrace(ptr noundef %4524)
  %4526 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4527 = trunc i8 %4526 to i1
  br i1 %4527, label %4528, label %4550

4528:                                             ; preds = %4521
  %4529 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4530 = call i32 @fileno(ptr noundef %4529) #13
  %4531 = call i32 @isatty(i32 noundef %4530) #13
  %4532 = icmp ne i32 %4531, 0
  br i1 %4532, label %4533, label %4550

4533:                                             ; preds = %4528
  %4534 = load i32, ptr %110, align 4, !tbaa !5
  %4535 = call ptr @__errno_location() #14
  store i32 %4534, ptr %4535, align 4, !tbaa !5
  %4536 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4537 = load i32, ptr @test_count, align 4, !tbaa !5
  %4538 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4539 = load i32, ptr %4538, align 4, !tbaa !5
  %4540 = call ptr @s2n_strerror(i32 noundef %4539, ptr noundef @.str.60)
  %4541 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4542 = load i32, ptr %4541, align 4, !tbaa !5
  %4543 = call ptr @s2n_strerror_debug(i32 noundef %4542, ptr noundef @.str.60)
  %4544 = call ptr @__errno_location() #14
  %4545 = load i32, ptr %4544, align 4, !tbaa !5
  %4546 = call ptr @strerror(i32 noundef %4545) #13
  %4547 = call ptr @__errno_location() #14
  %4548 = load i32, ptr %4547, align 4, !tbaa !5
  %4549 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4536, ptr noundef @.str.58, i32 noundef %4537, ptr noundef @.str.113, ptr noundef @.str.57, i32 noundef 188, ptr noundef %4540, ptr noundef %4543, ptr noundef %4546, i32 noundef %4548) #13
  br label %4567

4550:                                             ; preds = %4528, %4521
  %4551 = load i32, ptr %110, align 4, !tbaa !5
  %4552 = call ptr @__errno_location() #14
  store i32 %4551, ptr %4552, align 4, !tbaa !5
  %4553 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4554 = load i32, ptr @test_count, align 4, !tbaa !5
  %4555 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4556 = load i32, ptr %4555, align 4, !tbaa !5
  %4557 = call ptr @s2n_strerror(i32 noundef %4556, ptr noundef @.str.60)
  %4558 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4559 = load i32, ptr %4558, align 4, !tbaa !5
  %4560 = call ptr @s2n_strerror_debug(i32 noundef %4559, ptr noundef @.str.60)
  %4561 = call ptr @__errno_location() #14
  %4562 = load i32, ptr %4561, align 4, !tbaa !5
  %4563 = call ptr @strerror(i32 noundef %4562) #13
  %4564 = call ptr @__errno_location() #14
  %4565 = load i32, ptr %4564, align 4, !tbaa !5
  %4566 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4553, ptr noundef @.str.61, i32 noundef %4554, ptr noundef @.str.113, ptr noundef @.str.57, i32 noundef 188, ptr noundef %4557, ptr noundef %4560, ptr noundef %4563, i32 noundef %4565) #13
  br label %4567

4567:                                             ; preds = %4550, %4533
  call void @llvm.lifetime.end.p0(i64 4, ptr %110) #13
  br label %4568

4568:                                             ; preds = %4567
  br label %4569

4569:                                             ; preds = %4568
  call void @exit(i32 noundef 1) #15
  unreachable

4570:                                             ; No predecessors!
  br label %4571

4571:                                             ; preds = %4570
  br label %4572

4572:                                             ; preds = %4571, %4514
  br label %4573

4573:                                             ; preds = %4572
  br label %4574

4574:                                             ; preds = %4573
  br label %4575

4575:                                             ; preds = %4574
  %4576 = load i32, ptr @test_count, align 4, !tbaa !5
  %4577 = add nsw i32 %4576, 1
  store i32 %4577, ptr @test_count, align 4, !tbaa !5
  %4578 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %4578, ptr %92, align 8, !tbaa !9
  %4579 = icmp eq ptr %4578, null
  br i1 %4579, label %4580, label %4633

4580:                                             ; preds = %4575
  br label %4581

4581:                                             ; preds = %4580
  br label %4582

4582:                                             ; preds = %4581
  call void @llvm.lifetime.start.p0(i64 4, ptr %111) #13
  %4583 = call ptr @__errno_location() #14
  %4584 = load i32, ptr %4583, align 4, !tbaa !5
  store i32 %4584, ptr %111, align 4, !tbaa !5
  %4585 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4586 = call i32 @s2n_print_stacktrace(ptr noundef %4585)
  %4587 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4588 = trunc i8 %4587 to i1
  br i1 %4588, label %4589, label %4611

4589:                                             ; preds = %4582
  %4590 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4591 = call i32 @fileno(ptr noundef %4590) #13
  %4592 = call i32 @isatty(i32 noundef %4591) #13
  %4593 = icmp ne i32 %4592, 0
  br i1 %4593, label %4594, label %4611

4594:                                             ; preds = %4589
  %4595 = load i32, ptr %111, align 4, !tbaa !5
  %4596 = call ptr @__errno_location() #14
  store i32 %4595, ptr %4596, align 4, !tbaa !5
  %4597 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4598 = load i32, ptr @test_count, align 4, !tbaa !5
  %4599 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4600 = load i32, ptr %4599, align 4, !tbaa !5
  %4601 = call ptr @s2n_strerror(i32 noundef %4600, ptr noundef @.str.60)
  %4602 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4603 = load i32, ptr %4602, align 4, !tbaa !5
  %4604 = call ptr @s2n_strerror_debug(i32 noundef %4603, ptr noundef @.str.60)
  %4605 = call ptr @__errno_location() #14
  %4606 = load i32, ptr %4605, align 4, !tbaa !5
  %4607 = call ptr @strerror(i32 noundef %4606) #13
  %4608 = call ptr @__errno_location() #14
  %4609 = load i32, ptr %4608, align 4, !tbaa !5
  %4610 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4597, ptr noundef @.str.58, i32 noundef %4598, ptr noundef @.str.114, ptr noundef @.str.57, i32 noundef 189, ptr noundef %4601, ptr noundef %4604, ptr noundef %4607, i32 noundef %4609) #13
  br label %4628

4611:                                             ; preds = %4589, %4582
  %4612 = load i32, ptr %111, align 4, !tbaa !5
  %4613 = call ptr @__errno_location() #14
  store i32 %4612, ptr %4613, align 4, !tbaa !5
  %4614 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4615 = load i32, ptr @test_count, align 4, !tbaa !5
  %4616 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4617 = load i32, ptr %4616, align 4, !tbaa !5
  %4618 = call ptr @s2n_strerror(i32 noundef %4617, ptr noundef @.str.60)
  %4619 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4620 = load i32, ptr %4619, align 4, !tbaa !5
  %4621 = call ptr @s2n_strerror_debug(i32 noundef %4620, ptr noundef @.str.60)
  %4622 = call ptr @__errno_location() #14
  %4623 = load i32, ptr %4622, align 4, !tbaa !5
  %4624 = call ptr @strerror(i32 noundef %4623) #13
  %4625 = call ptr @__errno_location() #14
  %4626 = load i32, ptr %4625, align 4, !tbaa !5
  %4627 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4614, ptr noundef @.str.61, i32 noundef %4615, ptr noundef @.str.114, ptr noundef @.str.57, i32 noundef 189, ptr noundef %4618, ptr noundef %4621, ptr noundef %4624, i32 noundef %4626) #13
  br label %4628

4628:                                             ; preds = %4611, %4594
  call void @llvm.lifetime.end.p0(i64 4, ptr %111) #13
  br label %4629

4629:                                             ; preds = %4628
  br label %4630

4630:                                             ; preds = %4629
  call void @exit(i32 noundef 1) #15
  unreachable

4631:                                             ; No predecessors!
  br label %4632

4632:                                             ; preds = %4631
  br label %4633

4633:                                             ; preds = %4632, %4575
  br label %4634

4634:                                             ; preds = %4633
  br label %4635

4635:                                             ; preds = %4634
  br label %4636

4636:                                             ; preds = %4635
  %4637 = load i32, ptr @test_count, align 4, !tbaa !5
  %4638 = add nsw i32 %4637, 1
  store i32 %4638, ptr @test_count, align 4, !tbaa !5
  %4639 = load ptr, ptr %92, align 8, !tbaa !9
  %4640 = load ptr, ptr %93, align 8, !tbaa !9
  %4641 = call i32 @s2n_connection_set_config(ptr noundef %4639, ptr noundef %4640)
  %4642 = icmp eq i32 %4641, -1
  br i1 %4642, label %4643, label %4696

4643:                                             ; preds = %4636
  br label %4644

4644:                                             ; preds = %4643
  br label %4645

4645:                                             ; preds = %4644
  call void @llvm.lifetime.start.p0(i64 4, ptr %112) #13
  %4646 = call ptr @__errno_location() #14
  %4647 = load i32, ptr %4646, align 4, !tbaa !5
  store i32 %4647, ptr %112, align 4, !tbaa !5
  %4648 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4649 = call i32 @s2n_print_stacktrace(ptr noundef %4648)
  %4650 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4651 = trunc i8 %4650 to i1
  br i1 %4651, label %4652, label %4674

4652:                                             ; preds = %4645
  %4653 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4654 = call i32 @fileno(ptr noundef %4653) #13
  %4655 = call i32 @isatty(i32 noundef %4654) #13
  %4656 = icmp ne i32 %4655, 0
  br i1 %4656, label %4657, label %4674

4657:                                             ; preds = %4652
  %4658 = load i32, ptr %112, align 4, !tbaa !5
  %4659 = call ptr @__errno_location() #14
  store i32 %4658, ptr %4659, align 4, !tbaa !5
  %4660 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4661 = load i32, ptr @test_count, align 4, !tbaa !5
  %4662 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4663 = load i32, ptr %4662, align 4, !tbaa !5
  %4664 = call ptr @s2n_strerror(i32 noundef %4663, ptr noundef @.str.60)
  %4665 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4666 = load i32, ptr %4665, align 4, !tbaa !5
  %4667 = call ptr @s2n_strerror_debug(i32 noundef %4666, ptr noundef @.str.60)
  %4668 = call ptr @__errno_location() #14
  %4669 = load i32, ptr %4668, align 4, !tbaa !5
  %4670 = call ptr @strerror(i32 noundef %4669) #13
  %4671 = call ptr @__errno_location() #14
  %4672 = load i32, ptr %4671, align 4, !tbaa !5
  %4673 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4660, ptr noundef @.str.58, i32 noundef %4661, ptr noundef @.str.115, ptr noundef @.str.57, i32 noundef 190, ptr noundef %4664, ptr noundef %4667, ptr noundef %4670, i32 noundef %4672) #13
  br label %4691

4674:                                             ; preds = %4652, %4645
  %4675 = load i32, ptr %112, align 4, !tbaa !5
  %4676 = call ptr @__errno_location() #14
  store i32 %4675, ptr %4676, align 4, !tbaa !5
  %4677 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4678 = load i32, ptr @test_count, align 4, !tbaa !5
  %4679 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4680 = load i32, ptr %4679, align 4, !tbaa !5
  %4681 = call ptr @s2n_strerror(i32 noundef %4680, ptr noundef @.str.60)
  %4682 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4683 = load i32, ptr %4682, align 4, !tbaa !5
  %4684 = call ptr @s2n_strerror_debug(i32 noundef %4683, ptr noundef @.str.60)
  %4685 = call ptr @__errno_location() #14
  %4686 = load i32, ptr %4685, align 4, !tbaa !5
  %4687 = call ptr @strerror(i32 noundef %4686) #13
  %4688 = call ptr @__errno_location() #14
  %4689 = load i32, ptr %4688, align 4, !tbaa !5
  %4690 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4677, ptr noundef @.str.61, i32 noundef %4678, ptr noundef @.str.115, ptr noundef @.str.57, i32 noundef 190, ptr noundef %4681, ptr noundef %4684, ptr noundef %4687, i32 noundef %4689) #13
  br label %4691

4691:                                             ; preds = %4674, %4657
  call void @llvm.lifetime.end.p0(i64 4, ptr %112) #13
  br label %4692

4692:                                             ; preds = %4691
  br label %4693

4693:                                             ; preds = %4692
  call void @exit(i32 noundef 1) #15
  unreachable

4694:                                             ; No predecessors!
  br label %4695

4695:                                             ; preds = %4694
  br label %4696

4696:                                             ; preds = %4695, %4636
  br label %4697

4697:                                             ; preds = %4696
  br label %4698

4698:                                             ; preds = %4697
  br label %4699

4699:                                             ; preds = %4698
  %4700 = load i32, ptr @test_count, align 4, !tbaa !5
  %4701 = add nsw i32 %4700, 1
  store i32 %4701, ptr @test_count, align 4, !tbaa !5
  %4702 = load ptr, ptr %91, align 8, !tbaa !9
  %4703 = load ptr, ptr %94, align 8, !tbaa !9
  %4704 = call i32 @s2n_connection_set_config(ptr noundef %4702, ptr noundef %4703)
  %4705 = icmp eq i32 %4704, -1
  br i1 %4705, label %4706, label %4759

4706:                                             ; preds = %4699
  br label %4707

4707:                                             ; preds = %4706
  br label %4708

4708:                                             ; preds = %4707
  call void @llvm.lifetime.start.p0(i64 4, ptr %113) #13
  %4709 = call ptr @__errno_location() #14
  %4710 = load i32, ptr %4709, align 4, !tbaa !5
  store i32 %4710, ptr %113, align 4, !tbaa !5
  %4711 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4712 = call i32 @s2n_print_stacktrace(ptr noundef %4711)
  %4713 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4714 = trunc i8 %4713 to i1
  br i1 %4714, label %4715, label %4737

4715:                                             ; preds = %4708
  %4716 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4717 = call i32 @fileno(ptr noundef %4716) #13
  %4718 = call i32 @isatty(i32 noundef %4717) #13
  %4719 = icmp ne i32 %4718, 0
  br i1 %4719, label %4720, label %4737

4720:                                             ; preds = %4715
  %4721 = load i32, ptr %113, align 4, !tbaa !5
  %4722 = call ptr @__errno_location() #14
  store i32 %4721, ptr %4722, align 4, !tbaa !5
  %4723 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4724 = load i32, ptr @test_count, align 4, !tbaa !5
  %4725 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4726 = load i32, ptr %4725, align 4, !tbaa !5
  %4727 = call ptr @s2n_strerror(i32 noundef %4726, ptr noundef @.str.60)
  %4728 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4729 = load i32, ptr %4728, align 4, !tbaa !5
  %4730 = call ptr @s2n_strerror_debug(i32 noundef %4729, ptr noundef @.str.60)
  %4731 = call ptr @__errno_location() #14
  %4732 = load i32, ptr %4731, align 4, !tbaa !5
  %4733 = call ptr @strerror(i32 noundef %4732) #13
  %4734 = call ptr @__errno_location() #14
  %4735 = load i32, ptr %4734, align 4, !tbaa !5
  %4736 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4723, ptr noundef @.str.58, i32 noundef %4724, ptr noundef @.str.116, ptr noundef @.str.57, i32 noundef 191, ptr noundef %4727, ptr noundef %4730, ptr noundef %4733, i32 noundef %4735) #13
  br label %4754

4737:                                             ; preds = %4715, %4708
  %4738 = load i32, ptr %113, align 4, !tbaa !5
  %4739 = call ptr @__errno_location() #14
  store i32 %4738, ptr %4739, align 4, !tbaa !5
  %4740 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4741 = load i32, ptr @test_count, align 4, !tbaa !5
  %4742 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4743 = load i32, ptr %4742, align 4, !tbaa !5
  %4744 = call ptr @s2n_strerror(i32 noundef %4743, ptr noundef @.str.60)
  %4745 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4746 = load i32, ptr %4745, align 4, !tbaa !5
  %4747 = call ptr @s2n_strerror_debug(i32 noundef %4746, ptr noundef @.str.60)
  %4748 = call ptr @__errno_location() #14
  %4749 = load i32, ptr %4748, align 4, !tbaa !5
  %4750 = call ptr @strerror(i32 noundef %4749) #13
  %4751 = call ptr @__errno_location() #14
  %4752 = load i32, ptr %4751, align 4, !tbaa !5
  %4753 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4740, ptr noundef @.str.61, i32 noundef %4741, ptr noundef @.str.116, ptr noundef @.str.57, i32 noundef 191, ptr noundef %4744, ptr noundef %4747, ptr noundef %4750, i32 noundef %4752) #13
  br label %4754

4754:                                             ; preds = %4737, %4720
  call void @llvm.lifetime.end.p0(i64 4, ptr %113) #13
  br label %4755

4755:                                             ; preds = %4754
  br label %4756

4756:                                             ; preds = %4755
  call void @exit(i32 noundef 1) #15
  unreachable

4757:                                             ; No predecessors!
  br label %4758

4758:                                             ; preds = %4757
  br label %4759

4759:                                             ; preds = %4758, %4699
  br label %4760

4760:                                             ; preds = %4759
  br label %4761

4761:                                             ; preds = %4760
  call void @llvm.lifetime.start.p0(i64 40, ptr %114) #13
  call void @llvm.memset.p0.i64(ptr align 8 %114, i8 0, i64 40, i1 false)
  call void @llvm.lifetime.start.p0(i64 40, ptr %115) #13
  call void @llvm.memset.p0.i64(ptr align 8 %115, i8 0, i64 40, i1 false)
  br label %4762

4762:                                             ; preds = %4761
  %4763 = load i32, ptr @test_count, align 4, !tbaa !5
  %4764 = add nsw i32 %4763, 1
  store i32 %4764, ptr @test_count, align 4, !tbaa !5
  %4765 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %114, i32 noundef 0)
  %4766 = icmp eq i32 %4765, -1
  br i1 %4766, label %4767, label %4820

4767:                                             ; preds = %4762
  br label %4768

4768:                                             ; preds = %4767
  br label %4769

4769:                                             ; preds = %4768
  call void @llvm.lifetime.start.p0(i64 4, ptr %116) #13
  %4770 = call ptr @__errno_location() #14
  %4771 = load i32, ptr %4770, align 4, !tbaa !5
  store i32 %4771, ptr %116, align 4, !tbaa !5
  %4772 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4773 = call i32 @s2n_print_stacktrace(ptr noundef %4772)
  %4774 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4775 = trunc i8 %4774 to i1
  br i1 %4775, label %4776, label %4798

4776:                                             ; preds = %4769
  %4777 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4778 = call i32 @fileno(ptr noundef %4777) #13
  %4779 = call i32 @isatty(i32 noundef %4778) #13
  %4780 = icmp ne i32 %4779, 0
  br i1 %4780, label %4781, label %4798

4781:                                             ; preds = %4776
  %4782 = load i32, ptr %116, align 4, !tbaa !5
  %4783 = call ptr @__errno_location() #14
  store i32 %4782, ptr %4783, align 4, !tbaa !5
  %4784 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4785 = load i32, ptr @test_count, align 4, !tbaa !5
  %4786 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4787 = load i32, ptr %4786, align 4, !tbaa !5
  %4788 = call ptr @s2n_strerror(i32 noundef %4787, ptr noundef @.str.60)
  %4789 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4790 = load i32, ptr %4789, align 4, !tbaa !5
  %4791 = call ptr @s2n_strerror_debug(i32 noundef %4790, ptr noundef @.str.60)
  %4792 = call ptr @__errno_location() #14
  %4793 = load i32, ptr %4792, align 4, !tbaa !5
  %4794 = call ptr @strerror(i32 noundef %4793) #13
  %4795 = call ptr @__errno_location() #14
  %4796 = load i32, ptr %4795, align 4, !tbaa !5
  %4797 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4784, ptr noundef @.str.58, i32 noundef %4785, ptr noundef @.str.117, ptr noundef @.str.57, i32 noundef 196, ptr noundef %4788, ptr noundef %4791, ptr noundef %4794, i32 noundef %4796) #13
  br label %4815

4798:                                             ; preds = %4776, %4769
  %4799 = load i32, ptr %116, align 4, !tbaa !5
  %4800 = call ptr @__errno_location() #14
  store i32 %4799, ptr %4800, align 4, !tbaa !5
  %4801 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4802 = load i32, ptr @test_count, align 4, !tbaa !5
  %4803 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4804 = load i32, ptr %4803, align 4, !tbaa !5
  %4805 = call ptr @s2n_strerror(i32 noundef %4804, ptr noundef @.str.60)
  %4806 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4807 = load i32, ptr %4806, align 4, !tbaa !5
  %4808 = call ptr @s2n_strerror_debug(i32 noundef %4807, ptr noundef @.str.60)
  %4809 = call ptr @__errno_location() #14
  %4810 = load i32, ptr %4809, align 4, !tbaa !5
  %4811 = call ptr @strerror(i32 noundef %4810) #13
  %4812 = call ptr @__errno_location() #14
  %4813 = load i32, ptr %4812, align 4, !tbaa !5
  %4814 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4801, ptr noundef @.str.61, i32 noundef %4802, ptr noundef @.str.117, ptr noundef @.str.57, i32 noundef 196, ptr noundef %4805, ptr noundef %4808, ptr noundef %4811, i32 noundef %4813) #13
  br label %4815

4815:                                             ; preds = %4798, %4781
  call void @llvm.lifetime.end.p0(i64 4, ptr %116) #13
  br label %4816

4816:                                             ; preds = %4815
  br label %4817

4817:                                             ; preds = %4816
  call void @exit(i32 noundef 1) #15
  unreachable

4818:                                             ; No predecessors!
  br label %4819

4819:                                             ; preds = %4818
  br label %4820

4820:                                             ; preds = %4819, %4762
  br label %4821

4821:                                             ; preds = %4820
  br label %4822

4822:                                             ; preds = %4821
  br label %4823

4823:                                             ; preds = %4822
  %4824 = load i32, ptr @test_count, align 4, !tbaa !5
  %4825 = add nsw i32 %4824, 1
  store i32 %4825, ptr @test_count, align 4, !tbaa !5
  %4826 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %115, i32 noundef 0)
  %4827 = icmp eq i32 %4826, -1
  br i1 %4827, label %4828, label %4881

4828:                                             ; preds = %4823
  br label %4829

4829:                                             ; preds = %4828
  br label %4830

4830:                                             ; preds = %4829
  call void @llvm.lifetime.start.p0(i64 4, ptr %117) #13
  %4831 = call ptr @__errno_location() #14
  %4832 = load i32, ptr %4831, align 4, !tbaa !5
  store i32 %4832, ptr %117, align 4, !tbaa !5
  %4833 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4834 = call i32 @s2n_print_stacktrace(ptr noundef %4833)
  %4835 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4836 = trunc i8 %4835 to i1
  br i1 %4836, label %4837, label %4859

4837:                                             ; preds = %4830
  %4838 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4839 = call i32 @fileno(ptr noundef %4838) #13
  %4840 = call i32 @isatty(i32 noundef %4839) #13
  %4841 = icmp ne i32 %4840, 0
  br i1 %4841, label %4842, label %4859

4842:                                             ; preds = %4837
  %4843 = load i32, ptr %117, align 4, !tbaa !5
  %4844 = call ptr @__errno_location() #14
  store i32 %4843, ptr %4844, align 4, !tbaa !5
  %4845 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4846 = load i32, ptr @test_count, align 4, !tbaa !5
  %4847 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4848 = load i32, ptr %4847, align 4, !tbaa !5
  %4849 = call ptr @s2n_strerror(i32 noundef %4848, ptr noundef @.str.60)
  %4850 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4851 = load i32, ptr %4850, align 4, !tbaa !5
  %4852 = call ptr @s2n_strerror_debug(i32 noundef %4851, ptr noundef @.str.60)
  %4853 = call ptr @__errno_location() #14
  %4854 = load i32, ptr %4853, align 4, !tbaa !5
  %4855 = call ptr @strerror(i32 noundef %4854) #13
  %4856 = call ptr @__errno_location() #14
  %4857 = load i32, ptr %4856, align 4, !tbaa !5
  %4858 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4845, ptr noundef @.str.58, i32 noundef %4846, ptr noundef @.str.118, ptr noundef @.str.57, i32 noundef 197, ptr noundef %4849, ptr noundef %4852, ptr noundef %4855, i32 noundef %4857) #13
  br label %4876

4859:                                             ; preds = %4837, %4830
  %4860 = load i32, ptr %117, align 4, !tbaa !5
  %4861 = call ptr @__errno_location() #14
  store i32 %4860, ptr %4861, align 4, !tbaa !5
  %4862 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4863 = load i32, ptr @test_count, align 4, !tbaa !5
  %4864 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4865 = load i32, ptr %4864, align 4, !tbaa !5
  %4866 = call ptr @s2n_strerror(i32 noundef %4865, ptr noundef @.str.60)
  %4867 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4868 = load i32, ptr %4867, align 4, !tbaa !5
  %4869 = call ptr @s2n_strerror_debug(i32 noundef %4868, ptr noundef @.str.60)
  %4870 = call ptr @__errno_location() #14
  %4871 = load i32, ptr %4870, align 4, !tbaa !5
  %4872 = call ptr @strerror(i32 noundef %4871) #13
  %4873 = call ptr @__errno_location() #14
  %4874 = load i32, ptr %4873, align 4, !tbaa !5
  %4875 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4862, ptr noundef @.str.61, i32 noundef %4863, ptr noundef @.str.118, ptr noundef @.str.57, i32 noundef 197, ptr noundef %4866, ptr noundef %4869, ptr noundef %4872, i32 noundef %4874) #13
  br label %4876

4876:                                             ; preds = %4859, %4842
  call void @llvm.lifetime.end.p0(i64 4, ptr %117) #13
  br label %4877

4877:                                             ; preds = %4876
  br label %4878

4878:                                             ; preds = %4877
  call void @exit(i32 noundef 1) #15
  unreachable

4879:                                             ; No predecessors!
  br label %4880

4880:                                             ; preds = %4879
  br label %4881

4881:                                             ; preds = %4880, %4823
  br label %4882

4882:                                             ; preds = %4881
  br label %4883

4883:                                             ; preds = %4882
  br label %4884

4884:                                             ; preds = %4883
  %4885 = load i32, ptr @test_count, align 4, !tbaa !5
  %4886 = add nsw i32 %4885, 1
  store i32 %4886, ptr @test_count, align 4, !tbaa !5
  %4887 = load ptr, ptr %91, align 8, !tbaa !9
  %4888 = call i32 @s2n_connection_set_io_stuffers(ptr noundef %115, ptr noundef %114, ptr noundef %4887)
  %4889 = icmp eq i32 %4888, -1
  br i1 %4889, label %4890, label %4943

4890:                                             ; preds = %4884
  br label %4891

4891:                                             ; preds = %4890
  br label %4892

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

4899:                                             ; preds = %4892
  %4900 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4901 = call i32 @fileno(ptr noundef %4900) #13
  %4902 = call i32 @isatty(i32 noundef %4901) #13
  %4903 = icmp ne i32 %4902, 0
  br i1 %4903, label %4904, label %4921

4904:                                             ; preds = %4899
  %4905 = load i32, ptr %118, align 4, !tbaa !5
  %4906 = call ptr @__errno_location() #14
  store i32 %4905, ptr %4906, align 4, !tbaa !5
  %4907 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4908 = load i32, ptr @test_count, align 4, !tbaa !5
  %4909 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4910 = load i32, ptr %4909, align 4, !tbaa !5
  %4911 = call ptr @s2n_strerror(i32 noundef %4910, ptr noundef @.str.60)
  %4912 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4913 = load i32, ptr %4912, align 4, !tbaa !5
  %4914 = call ptr @s2n_strerror_debug(i32 noundef %4913, ptr noundef @.str.60)
  %4915 = call ptr @__errno_location() #14
  %4916 = load i32, ptr %4915, align 4, !tbaa !5
  %4917 = call ptr @strerror(i32 noundef %4916) #13
  %4918 = call ptr @__errno_location() #14
  %4919 = load i32, ptr %4918, align 4, !tbaa !5
  %4920 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4907, ptr noundef @.str.58, i32 noundef %4908, ptr noundef @.str.119, ptr noundef @.str.57, i32 noundef 199, ptr noundef %4911, ptr noundef %4914, ptr noundef %4917, i32 noundef %4919) #13
  br label %4938

4921:                                             ; preds = %4899, %4892
  %4922 = load i32, ptr %118, align 4, !tbaa !5
  %4923 = call ptr @__errno_location() #14
  store i32 %4922, ptr %4923, align 4, !tbaa !5
  %4924 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4925 = load i32, ptr @test_count, align 4, !tbaa !5
  %4926 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4927 = load i32, ptr %4926, align 4, !tbaa !5
  %4928 = call ptr @s2n_strerror(i32 noundef %4927, ptr noundef @.str.60)
  %4929 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4930 = load i32, ptr %4929, align 4, !tbaa !5
  %4931 = call ptr @s2n_strerror_debug(i32 noundef %4930, ptr noundef @.str.60)
  %4932 = call ptr @__errno_location() #14
  %4933 = load i32, ptr %4932, align 4, !tbaa !5
  %4934 = call ptr @strerror(i32 noundef %4933) #13
  %4935 = call ptr @__errno_location() #14
  %4936 = load i32, ptr %4935, align 4, !tbaa !5
  %4937 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4924, ptr noundef @.str.61, i32 noundef %4925, ptr noundef @.str.119, ptr noundef @.str.57, i32 noundef 199, ptr noundef %4928, ptr noundef %4931, ptr noundef %4934, i32 noundef %4936) #13
  br label %4938

4938:                                             ; preds = %4921, %4904
  call void @llvm.lifetime.end.p0(i64 4, ptr %118) #13
  br label %4939

4939:                                             ; preds = %4938
  br label %4940

4940:                                             ; preds = %4939
  call void @exit(i32 noundef 1) #15
  unreachable

4941:                                             ; No predecessors!
  br label %4942

4942:                                             ; preds = %4941
  br label %4943

4943:                                             ; preds = %4942, %4884
  br label %4944

4944:                                             ; preds = %4943
  br label %4945

4945:                                             ; preds = %4944
  br label %4946

4946:                                             ; preds = %4945
  %4947 = load i32, ptr @test_count, align 4, !tbaa !5
  %4948 = add nsw i32 %4947, 1
  store i32 %4948, ptr @test_count, align 4, !tbaa !5
  %4949 = load ptr, ptr %92, align 8, !tbaa !9
  %4950 = call i32 @s2n_connection_set_io_stuffers(ptr noundef %114, ptr noundef %115, ptr noundef %4949)
  %4951 = icmp eq i32 %4950, -1
  br i1 %4951, label %4952, label %5005

4952:                                             ; preds = %4946
  br label %4953

4953:                                             ; preds = %4952
  br label %4954

4954:                                             ; preds = %4953
  call void @llvm.lifetime.start.p0(i64 4, ptr %119) #13
  %4955 = call ptr @__errno_location() #14
  %4956 = load i32, ptr %4955, align 4, !tbaa !5
  store i32 %4956, ptr %119, align 4, !tbaa !5
  %4957 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4958 = call i32 @s2n_print_stacktrace(ptr noundef %4957)
  %4959 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4960 = trunc i8 %4959 to i1
  br i1 %4960, label %4961, label %4983

4961:                                             ; preds = %4954
  %4962 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4963 = call i32 @fileno(ptr noundef %4962) #13
  %4964 = call i32 @isatty(i32 noundef %4963) #13
  %4965 = icmp ne i32 %4964, 0
  br i1 %4965, label %4966, label %4983

4966:                                             ; preds = %4961
  %4967 = load i32, ptr %119, align 4, !tbaa !5
  %4968 = call ptr @__errno_location() #14
  store i32 %4967, ptr %4968, align 4, !tbaa !5
  %4969 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4970 = load i32, ptr @test_count, align 4, !tbaa !5
  %4971 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4972 = load i32, ptr %4971, align 4, !tbaa !5
  %4973 = call ptr @s2n_strerror(i32 noundef %4972, ptr noundef @.str.60)
  %4974 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4975 = load i32, ptr %4974, align 4, !tbaa !5
  %4976 = call ptr @s2n_strerror_debug(i32 noundef %4975, ptr noundef @.str.60)
  %4977 = call ptr @__errno_location() #14
  %4978 = load i32, ptr %4977, align 4, !tbaa !5
  %4979 = call ptr @strerror(i32 noundef %4978) #13
  %4980 = call ptr @__errno_location() #14
  %4981 = load i32, ptr %4980, align 4, !tbaa !5
  %4982 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4969, ptr noundef @.str.58, i32 noundef %4970, ptr noundef @.str.120, ptr noundef @.str.57, i32 noundef 200, ptr noundef %4973, ptr noundef %4976, ptr noundef %4979, i32 noundef %4981) #13
  br label %5000

4983:                                             ; preds = %4961, %4954
  %4984 = load i32, ptr %119, align 4, !tbaa !5
  %4985 = call ptr @__errno_location() #14
  store i32 %4984, ptr %4985, align 4, !tbaa !5
  %4986 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4987 = load i32, ptr @test_count, align 4, !tbaa !5
  %4988 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4989 = load i32, ptr %4988, align 4, !tbaa !5
  %4990 = call ptr @s2n_strerror(i32 noundef %4989, ptr noundef @.str.60)
  %4991 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4992 = load i32, ptr %4991, align 4, !tbaa !5
  %4993 = call ptr @s2n_strerror_debug(i32 noundef %4992, ptr noundef @.str.60)
  %4994 = call ptr @__errno_location() #14
  %4995 = load i32, ptr %4994, align 4, !tbaa !5
  %4996 = call ptr @strerror(i32 noundef %4995) #13
  %4997 = call ptr @__errno_location() #14
  %4998 = load i32, ptr %4997, align 4, !tbaa !5
  %4999 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4986, ptr noundef @.str.61, i32 noundef %4987, ptr noundef @.str.120, ptr noundef @.str.57, i32 noundef 200, ptr noundef %4990, ptr noundef %4993, ptr noundef %4996, i32 noundef %4998) #13
  br label %5000

5000:                                             ; preds = %4983, %4966
  call void @llvm.lifetime.end.p0(i64 4, ptr %119) #13
  br label %5001

5001:                                             ; preds = %5000
  br label %5002

5002:                                             ; preds = %5001
  call void @exit(i32 noundef 1) #15
  unreachable

5003:                                             ; No predecessors!
  br label %5004

5004:                                             ; preds = %5003
  br label %5005

5005:                                             ; preds = %5004, %4946
  br label %5006

5006:                                             ; preds = %5005
  br label %5007

5007:                                             ; preds = %5006
  call void @llvm.lifetime.start.p0(i64 24, ptr %120) #13
  %5008 = getelementptr inbounds %struct.s2n_blob, ptr %120, i32 0, i32 0
  %5009 = load ptr, ptr %92, align 8, !tbaa !9
  %5010 = getelementptr inbounds %struct.s2n_connection, ptr %5009, i32 0, i32 27
  %5011 = load ptr, ptr %5010, align 8, !tbaa !15
  %5012 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %5011, i32 0, i32 8
  %5013 = getelementptr inbounds [8 x i8], ptr %5012, i64 0, i64 0
  store ptr %5013, ptr %5008, align 8, !tbaa !72
  %5014 = getelementptr inbounds %struct.s2n_blob, ptr %120, i32 0, i32 1
  store i32 8, ptr %5014, align 8, !tbaa !73
  %5015 = getelementptr inbounds %struct.s2n_blob, ptr %120, i32 0, i32 2
  store i32 0, ptr %5015, align 4, !tbaa !74
  %5016 = getelementptr inbounds %struct.s2n_blob, ptr %120, i32 0, i32 3
  %5017 = load i8, ptr %5016, align 8
  %5018 = and i8 %5017, -2
  %5019 = or i8 %5018, 0
  store i8 %5019, ptr %5016, align 8
  call void @llvm.lifetime.start.p0(i64 24, ptr %121) #13
  call void @llvm.memset.p0.i64(ptr align 8 %121, i8 0, i64 24, i1 false)
  br label %5020

5020:                                             ; preds = %5007
  %5021 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef %121, ptr noundef @.str.121)
  %5022 = getelementptr inbounds %struct.s2n_result, ptr %122, i32 0, i32 0
  store i32 %5021, ptr %5022, align 4
  %5023 = getelementptr inbounds %struct.s2n_result, ptr %122, i32 0, i32 0
  %5024 = load i32, ptr %5023, align 4
  %5025 = call zeroext i1 @s2n_result_is_ok(i32 %5024)
  br i1 %5025, label %5027, label %5026

5026:                                             ; preds = %5020
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %56, align 4
  br label %9439

5027:                                             ; preds = %5020
  br label %5028

5028:                                             ; preds = %5027
  br label %5029

5029:                                             ; preds = %5028
  call void @llvm.lifetime.start.p0(i64 24, ptr %123) #13
  call void @llvm.memset.p0.i64(ptr align 8 %123, i8 0, i64 24, i1 false)
  br label %5030

5030:                                             ; preds = %5029
  %5031 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef %123, ptr noundef @.str.122)
  %5032 = getelementptr inbounds %struct.s2n_result, ptr %124, i32 0, i32 0
  store i32 %5031, ptr %5032, align 4
  %5033 = getelementptr inbounds %struct.s2n_result, ptr %124, i32 0, i32 0
  %5034 = load i32, ptr %5033, align 4
  %5035 = call zeroext i1 @s2n_result_is_ok(i32 %5034)
  br i1 %5035, label %5037, label %5036

5036:                                             ; preds = %5030
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %56, align 4
  br label %9437

5037:                                             ; preds = %5030
  br label %5038

5038:                                             ; preds = %5037
  br label %5039

5039:                                             ; preds = %5038
  br label %5040

5040:                                             ; preds = %5039
  %5041 = load i32, ptr @test_count, align 4, !tbaa !5
  %5042 = add nsw i32 %5041, 1
  store i32 %5042, ptr @test_count, align 4, !tbaa !5
  %5043 = load ptr, ptr %91, align 8, !tbaa !9
  %5044 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %5043, ptr noundef @.str.123)
  %5045 = icmp eq i32 %5044, -1
  br i1 %5045, label %5046, label %5099

5046:                                             ; preds = %5040
  br label %5047

5047:                                             ; preds = %5046
  br label %5048

5048:                                             ; preds = %5047
  call void @llvm.lifetime.start.p0(i64 4, ptr %125) #13
  %5049 = call ptr @__errno_location() #14
  %5050 = load i32, ptr %5049, align 4, !tbaa !5
  store i32 %5050, ptr %125, align 4, !tbaa !5
  %5051 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5052 = call i32 @s2n_print_stacktrace(ptr noundef %5051)
  %5053 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5054 = trunc i8 %5053 to i1
  br i1 %5054, label %5055, label %5077

5055:                                             ; preds = %5048
  %5056 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5057 = call i32 @fileno(ptr noundef %5056) #13
  %5058 = call i32 @isatty(i32 noundef %5057) #13
  %5059 = icmp ne i32 %5058, 0
  br i1 %5059, label %5060, label %5077

5060:                                             ; preds = %5055
  %5061 = load i32, ptr %125, align 4, !tbaa !5
  %5062 = call ptr @__errno_location() #14
  store i32 %5061, ptr %5062, align 4, !tbaa !5
  %5063 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5064 = load i32, ptr @test_count, align 4, !tbaa !5
  %5065 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5066 = load i32, ptr %5065, align 4, !tbaa !5
  %5067 = call ptr @s2n_strerror(i32 noundef %5066, ptr noundef @.str.60)
  %5068 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5069 = load i32, ptr %5068, align 4, !tbaa !5
  %5070 = call ptr @s2n_strerror_debug(i32 noundef %5069, ptr noundef @.str.60)
  %5071 = call ptr @__errno_location() #14
  %5072 = load i32, ptr %5071, align 4, !tbaa !5
  %5073 = call ptr @strerror(i32 noundef %5072) #13
  %5074 = call ptr @__errno_location() #14
  %5075 = load i32, ptr %5074, align 4, !tbaa !5
  %5076 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5063, ptr noundef @.str.58, i32 noundef %5064, ptr noundef @.str.124, ptr noundef @.str.57, i32 noundef 206, ptr noundef %5067, ptr noundef %5070, ptr noundef %5073, i32 noundef %5075) #13
  br label %5094

5077:                                             ; preds = %5055, %5048
  %5078 = load i32, ptr %125, align 4, !tbaa !5
  %5079 = call ptr @__errno_location() #14
  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.60)
  %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.60)
  %5088 = call ptr @__errno_location() #14
  %5089 = load i32, ptr %5088, align 4, !tbaa !5
  %5090 = call ptr @strerror(i32 noundef %5089) #13
  %5091 = call ptr @__errno_location() #14
  %5092 = load i32, ptr %5091, align 4, !tbaa !5
  %5093 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5080, ptr noundef @.str.61, i32 noundef %5081, ptr noundef @.str.124, ptr noundef @.str.57, i32 noundef 206, ptr noundef %5084, ptr noundef %5087, ptr noundef %5090, i32 noundef %5092) #13
  br label %5094

5094:                                             ; preds = %5077, %5060
  call void @llvm.lifetime.end.p0(i64 4, ptr %125) #13
  br label %5095

5095:                                             ; preds = %5094
  br label %5096

5096:                                             ; preds = %5095
  call void @exit(i32 noundef 1) #15
  unreachable

5097:                                             ; No predecessors!
  br label %5098

5098:                                             ; preds = %5097
  br label %5099

5099:                                             ; preds = %5098, %5040
  br label %5100

5100:                                             ; preds = %5099
  br label %5101

5101:                                             ; preds = %5100
  br label %5102

5102:                                             ; preds = %5101
  %5103 = load i32, ptr @test_count, align 4, !tbaa !5
  %5104 = add nsw i32 %5103, 1
  store i32 %5104, ptr @test_count, align 4, !tbaa !5
  %5105 = load ptr, ptr %92, align 8, !tbaa !9
  %5106 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %5105, ptr noundef @.str.123)
  %5107 = icmp eq i32 %5106, -1
  br i1 %5107, label %5108, label %5161

5108:                                             ; preds = %5102
  br label %5109

5109:                                             ; preds = %5108
  br label %5110

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

5117:                                             ; preds = %5110
  %5118 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5119 = call i32 @fileno(ptr noundef %5118) #13
  %5120 = call i32 @isatty(i32 noundef %5119) #13
  %5121 = icmp ne i32 %5120, 0
  br i1 %5121, label %5122, label %5139

5122:                                             ; preds = %5117
  %5123 = load i32, ptr %126, align 4, !tbaa !5
  %5124 = call ptr @__errno_location() #14
  store i32 %5123, ptr %5124, align 4, !tbaa !5
  %5125 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5126 = load i32, ptr @test_count, align 4, !tbaa !5
  %5127 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5128 = load i32, ptr %5127, align 4, !tbaa !5
  %5129 = call ptr @s2n_strerror(i32 noundef %5128, ptr noundef @.str.60)
  %5130 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5131 = load i32, ptr %5130, align 4, !tbaa !5
  %5132 = call ptr @s2n_strerror_debug(i32 noundef %5131, ptr noundef @.str.60)
  %5133 = call ptr @__errno_location() #14
  %5134 = load i32, ptr %5133, align 4, !tbaa !5
  %5135 = call ptr @strerror(i32 noundef %5134) #13
  %5136 = call ptr @__errno_location() #14
  %5137 = load i32, ptr %5136, align 4, !tbaa !5
  %5138 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5125, ptr noundef @.str.58, i32 noundef %5126, ptr noundef @.str.125, ptr noundef @.str.57, i32 noundef 207, ptr noundef %5129, ptr noundef %5132, ptr noundef %5135, i32 noundef %5137) #13
  br label %5156

5139:                                             ; preds = %5117, %5110
  %5140 = load i32, ptr %126, align 4, !tbaa !5
  %5141 = call ptr @__errno_location() #14
  store i32 %5140, ptr %5141, align 4, !tbaa !5
  %5142 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5143 = load i32, ptr @test_count, align 4, !tbaa !5
  %5144 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5145 = load i32, ptr %5144, align 4, !tbaa !5
  %5146 = call ptr @s2n_strerror(i32 noundef %5145, ptr noundef @.str.60)
  %5147 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5148 = load i32, ptr %5147, align 4, !tbaa !5
  %5149 = call ptr @s2n_strerror_debug(i32 noundef %5148, ptr noundef @.str.60)
  %5150 = call ptr @__errno_location() #14
  %5151 = load i32, ptr %5150, align 4, !tbaa !5
  %5152 = call ptr @strerror(i32 noundef %5151) #13
  %5153 = call ptr @__errno_location() #14
  %5154 = load i32, ptr %5153, align 4, !tbaa !5
  %5155 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5142, ptr noundef @.str.61, i32 noundef %5143, ptr noundef @.str.125, ptr noundef @.str.57, i32 noundef 207, ptr noundef %5146, ptr noundef %5149, ptr noundef %5152, i32 noundef %5154) #13
  br label %5156

5156:                                             ; preds = %5139, %5122
  call void @llvm.lifetime.end.p0(i64 4, ptr %126) #13
  br label %5157

5157:                                             ; preds = %5156
  br label %5158

5158:                                             ; preds = %5157
  call void @exit(i32 noundef 1) #15
  unreachable

5159:                                             ; No predecessors!
  br label %5160

5160:                                             ; preds = %5159
  br label %5161

5161:                                             ; preds = %5160, %5102
  br label %5162

5162:                                             ; preds = %5161
  br label %5163

5163:                                             ; preds = %5162
  br label %5164

5164:                                             ; preds = %5163
  %5165 = load i32, ptr @test_count, align 4, !tbaa !5
  %5166 = add nsw i32 %5165, 1
  store i32 %5166, ptr @test_count, align 4, !tbaa !5
  %5167 = load ptr, ptr %91, align 8, !tbaa !9
  %5168 = call i32 @s2n_conn_get_current_message_type(ptr noundef %5167)
  %5169 = icmp eq i32 %5168, 0
  br i1 %5169, label %5223, label %5170

5170:                                             ; preds = %5164
  br label %5171

5171:                                             ; preds = %5170
  br label %5172

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

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

5184:                                             ; preds = %5179
  %5185 = load i32, ptr %127, align 4, !tbaa !5
  %5186 = call ptr @__errno_location() #14
  store i32 %5185, ptr %5186, align 4, !tbaa !5
  %5187 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5188 = load i32, ptr @test_count, align 4, !tbaa !5
  %5189 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5190 = load i32, ptr %5189, align 4, !tbaa !5
  %5191 = call ptr @s2n_strerror(i32 noundef %5190, ptr noundef @.str.60)
  %5192 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5193 = load i32, ptr %5192, align 4, !tbaa !5
  %5194 = call ptr @s2n_strerror_debug(i32 noundef %5193, ptr noundef @.str.60)
  %5195 = call ptr @__errno_location() #14
  %5196 = load i32, ptr %5195, align 4, !tbaa !5
  %5197 = call ptr @strerror(i32 noundef %5196) #13
  %5198 = call ptr @__errno_location() #14
  %5199 = load i32, ptr %5198, align 4, !tbaa !5
  %5200 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5187, ptr noundef @.str.58, i32 noundef %5188, ptr noundef @.str.126, ptr noundef @.str.57, i32 noundef 210, ptr noundef %5191, ptr noundef %5194, ptr noundef %5197, i32 noundef %5199) #13
  br label %5218

5201:                                             ; preds = %5179, %5172
  %5202 = load i32, ptr %127, align 4, !tbaa !5
  %5203 = call ptr @__errno_location() #14
  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.60)
  %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.60)
  %5212 = call ptr @__errno_location() #14
  %5213 = load i32, ptr %5212, align 4, !tbaa !5
  %5214 = call ptr @strerror(i32 noundef %5213) #13
  %5215 = call ptr @__errno_location() #14
  %5216 = load i32, ptr %5215, align 4, !tbaa !5
  %5217 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5204, ptr noundef @.str.61, i32 noundef %5205, ptr noundef @.str.126, ptr noundef @.str.57, i32 noundef 210, ptr noundef %5208, ptr noundef %5211, ptr noundef %5214, i32 noundef %5216) #13
  br label %5218

5218:                                             ; preds = %5201, %5184
  call void @llvm.lifetime.end.p0(i64 4, ptr %127) #13
  br label %5219

5219:                                             ; preds = %5218
  br label %5220

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

5221:                                             ; No predecessors!
  br label %5222

5222:                                             ; preds = %5221
  br label %5223

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

5224:                                             ; preds = %5223
  br label %5225

5225:                                             ; preds = %5224
  br label %5226

5226:                                             ; preds = %5225
  %5227 = load i32, ptr @test_count, align 4, !tbaa !5
  %5228 = add nsw i32 %5227, 1
  store i32 %5228, ptr @test_count, align 4, !tbaa !5
  %5229 = load ptr, ptr %91, align 8, !tbaa !9
  %5230 = call i32 @s2n_handshake_write_io(ptr noundef %5229)
  %5231 = icmp eq i32 %5230, -1
  br i1 %5231, label %5232, label %5285

5232:                                             ; preds = %5226
  br label %5233

5233:                                             ; preds = %5232
  br label %5234

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

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

5246:                                             ; preds = %5241
  %5247 = load i32, ptr %128, align 4, !tbaa !5
  %5248 = call ptr @__errno_location() #14
  store i32 %5247, ptr %5248, align 4, !tbaa !5
  %5249 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5250 = load i32, ptr @test_count, align 4, !tbaa !5
  %5251 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5252 = load i32, ptr %5251, align 4, !tbaa !5
  %5253 = call ptr @s2n_strerror(i32 noundef %5252, ptr noundef @.str.60)
  %5254 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5255 = load i32, ptr %5254, align 4, !tbaa !5
  %5256 = call ptr @s2n_strerror_debug(i32 noundef %5255, ptr noundef @.str.60)
  %5257 = call ptr @__errno_location() #14
  %5258 = load i32, ptr %5257, align 4, !tbaa !5
  %5259 = call ptr @strerror(i32 noundef %5258) #13
  %5260 = call ptr @__errno_location() #14
  %5261 = load i32, ptr %5260, align 4, !tbaa !5
  %5262 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5249, ptr noundef @.str.58, i32 noundef %5250, ptr noundef @.str.127, ptr noundef @.str.57, i32 noundef 211, ptr noundef %5253, ptr noundef %5256, ptr noundef %5259, i32 noundef %5261) #13
  br label %5280

5263:                                             ; preds = %5241, %5234
  %5264 = load i32, ptr %128, align 4, !tbaa !5
  %5265 = call ptr @__errno_location() #14
  store i32 %5264, ptr %5265, align 4, !tbaa !5
  %5266 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5267 = load i32, ptr @test_count, align 4, !tbaa !5
  %5268 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5269 = load i32, ptr %5268, align 4, !tbaa !5
  %5270 = call ptr @s2n_strerror(i32 noundef %5269, ptr noundef @.str.60)
  %5271 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5272 = load i32, ptr %5271, align 4, !tbaa !5
  %5273 = call ptr @s2n_strerror_debug(i32 noundef %5272, ptr noundef @.str.60)
  %5274 = call ptr @__errno_location() #14
  %5275 = load i32, ptr %5274, align 4, !tbaa !5
  %5276 = call ptr @strerror(i32 noundef %5275) #13
  %5277 = call ptr @__errno_location() #14
  %5278 = load i32, ptr %5277, align 4, !tbaa !5
  %5279 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5266, ptr noundef @.str.61, i32 noundef %5267, ptr noundef @.str.127, ptr noundef @.str.57, i32 noundef 211, ptr noundef %5270, ptr noundef %5273, ptr noundef %5276, i32 noundef %5278) #13
  br label %5280

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

5281:                                             ; preds = %5280
  br label %5282

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

5283:                                             ; No predecessors!
  br label %5284

5284:                                             ; preds = %5283
  br label %5285

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

5286:                                             ; preds = %5285
  br label %5287

5287:                                             ; preds = %5286
  br label %5288

5288:                                             ; preds = %5287
  %5289 = load i32, ptr @test_count, align 4, !tbaa !5
  %5290 = add nsw i32 %5289, 1
  store i32 %5290, ptr @test_count, align 4, !tbaa !5
  %5291 = load ptr, ptr %91, align 8, !tbaa !9
  %5292 = getelementptr inbounds %struct.s2n_connection, ptr %5291, i32 0, i32 23
  %5293 = load i8, ptr %5292, align 4, !tbaa !75
  %5294 = zext i8 %5293 to i32
  %5295 = icmp eq i32 %5294, 34
  br i1 %5295, label %5349, label %5296

5296:                                             ; preds = %5288
  br label %5297

5297:                                             ; preds = %5296
  br label %5298

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

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

5310:                                             ; preds = %5305
  %5311 = load i32, ptr %129, align 4, !tbaa !5
  %5312 = call ptr @__errno_location() #14
  store i32 %5311, ptr %5312, align 4, !tbaa !5
  %5313 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5314 = load i32, ptr @test_count, align 4, !tbaa !5
  %5315 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5316 = load i32, ptr %5315, align 4, !tbaa !5
  %5317 = call ptr @s2n_strerror(i32 noundef %5316, ptr noundef @.str.60)
  %5318 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5319 = load i32, ptr %5318, align 4, !tbaa !5
  %5320 = call ptr @s2n_strerror_debug(i32 noundef %5319, ptr noundef @.str.60)
  %5321 = call ptr @__errno_location() #14
  %5322 = load i32, ptr %5321, align 4, !tbaa !5
  %5323 = call ptr @strerror(i32 noundef %5322) #13
  %5324 = call ptr @__errno_location() #14
  %5325 = load i32, ptr %5324, align 4, !tbaa !5
  %5326 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5313, ptr noundef @.str.58, i32 noundef %5314, ptr noundef @.str.128, ptr noundef @.str.57, i32 noundef 213, ptr noundef %5317, ptr noundef %5320, ptr noundef %5323, i32 noundef %5325) #13
  br label %5344

5327:                                             ; preds = %5305, %5298
  %5328 = load i32, ptr %129, align 4, !tbaa !5
  %5329 = call ptr @__errno_location() #14
  store i32 %5328, ptr %5329, align 4, !tbaa !5
  %5330 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5331 = load i32, ptr @test_count, align 4, !tbaa !5
  %5332 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5333 = load i32, ptr %5332, align 4, !tbaa !5
  %5334 = call ptr @s2n_strerror(i32 noundef %5333, ptr noundef @.str.60)
  %5335 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5336 = load i32, ptr %5335, align 4, !tbaa !5
  %5337 = call ptr @s2n_strerror_debug(i32 noundef %5336, ptr noundef @.str.60)
  %5338 = call ptr @__errno_location() #14
  %5339 = load i32, ptr %5338, align 4, !tbaa !5
  %5340 = call ptr @strerror(i32 noundef %5339) #13
  %5341 = call ptr @__errno_location() #14
  %5342 = load i32, ptr %5341, align 4, !tbaa !5
  %5343 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5330, ptr noundef @.str.61, i32 noundef %5331, ptr noundef @.str.128, ptr noundef @.str.57, i32 noundef 213, ptr noundef %5334, ptr noundef %5337, ptr noundef %5340, i32 noundef %5342) #13
  br label %5344

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

5345:                                             ; preds = %5344
  br label %5346

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

5347:                                             ; No predecessors!
  br label %5348

5348:                                             ; preds = %5347
  br label %5349

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

5350:                                             ; preds = %5349
  br label %5351

5351:                                             ; preds = %5350
  br label %5352

5352:                                             ; preds = %5351
  %5353 = load i32, ptr @test_count, align 4, !tbaa !5
  %5354 = add nsw i32 %5353, 1
  store i32 %5354, ptr @test_count, align 4, !tbaa !5
  %5355 = load ptr, ptr %92, align 8, !tbaa !9
  %5356 = getelementptr inbounds %struct.s2n_connection, ptr %5355, i32 0, i32 23
  %5357 = load i8, ptr %5356, align 4, !tbaa !75
  %5358 = zext i8 %5357 to i32
  %5359 = icmp eq i32 %5358, 0
  br i1 %5359, label %5413, label %5360

5360:                                             ; preds = %5352
  br label %5361

5361:                                             ; preds = %5360
  br label %5362

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

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

5374:                                             ; preds = %5369
  %5375 = load i32, ptr %130, align 4, !tbaa !5
  %5376 = call ptr @__errno_location() #14
  store i32 %5375, ptr %5376, align 4, !tbaa !5
  %5377 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5378 = load i32, ptr @test_count, align 4, !tbaa !5
  %5379 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5380 = load i32, ptr %5379, align 4, !tbaa !5
  %5381 = call ptr @s2n_strerror(i32 noundef %5380, ptr noundef @.str.60)
  %5382 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5383 = load i32, ptr %5382, align 4, !tbaa !5
  %5384 = call ptr @s2n_strerror_debug(i32 noundef %5383, ptr noundef @.str.60)
  %5385 = call ptr @__errno_location() #14
  %5386 = load i32, ptr %5385, align 4, !tbaa !5
  %5387 = call ptr @strerror(i32 noundef %5386) #13
  %5388 = call ptr @__errno_location() #14
  %5389 = load i32, ptr %5388, align 4, !tbaa !5
  %5390 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5377, ptr noundef @.str.58, i32 noundef %5378, ptr noundef @.str.129, ptr noundef @.str.57, i32 noundef 214, ptr noundef %5381, ptr noundef %5384, ptr noundef %5387, i32 noundef %5389) #13
  br label %5408

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

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

5409:                                             ; preds = %5408
  br label %5410

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

5411:                                             ; No predecessors!
  br label %5412

5412:                                             ; preds = %5411
  br label %5413

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

5414:                                             ; preds = %5413
  br label %5415

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

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

5420:                                             ; preds = %5416
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %56, align 4
  br label %9435

5421:                                             ; preds = %5416
  br label %5422

5422:                                             ; preds = %5421
  br label %5423

5423:                                             ; preds = %5422
  br label %5424

5424:                                             ; preds = %5423
  %5425 = load i32, ptr @test_count, align 4, !tbaa !5
  %5426 = add nsw i32 %5425, 1
  store i32 %5426, ptr @test_count, align 4, !tbaa !5
  %5427 = getelementptr inbounds %struct.s2n_tls13_keys, ptr %131, i32 0, i32 2
  %5428 = load i8, ptr %5427, align 8, !tbaa !76
  %5429 = zext i8 %5428 to i32
  %5430 = icmp eq i32 %5429, 0
  br i1 %5430, label %5484, label %5431

5431:                                             ; preds = %5424
  br label %5432

5432:                                             ; preds = %5431
  br label %5433

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

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

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

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

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

5480:                                             ; preds = %5479
  br label %5481

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

5482:                                             ; No predecessors!
  br label %5483

5483:                                             ; preds = %5482
  br label %5484

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

5485:                                             ; preds = %5484
  br label %5486

5486:                                             ; preds = %5485
  br label %5487

5487:                                             ; preds = %5486
  %5488 = load i32, ptr @test_count, align 4, !tbaa !5
  %5489 = add nsw i32 %5488, 1
  store i32 %5489, ptr @test_count, align 4, !tbaa !5
  %5490 = load ptr, ptr %92, align 8, !tbaa !9
  %5491 = getelementptr inbounds %struct.s2n_connection, ptr %5490, i32 0, i32 52
  %5492 = getelementptr inbounds %struct.s2n_handshake, ptr %5491, i32 0, i32 6
  %5493 = load i32, ptr %5492, align 4, !tbaa !78
  %5494 = icmp eq i32 %5493, 0
  br i1 %5494, label %5548, label %5495

5495:                                             ; preds = %5487
  br label %5496

5496:                                             ; preds = %5495
  br label %5497

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

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

5509:                                             ; preds = %5504
  %5510 = load i32, ptr %133, align 4, !tbaa !5
  %5511 = call ptr @__errno_location() #14
  store i32 %5510, ptr %5511, align 4, !tbaa !5
  %5512 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5513 = load i32, ptr @test_count, align 4, !tbaa !5
  %5514 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5515 = load i32, ptr %5514, align 4, !tbaa !5
  %5516 = call ptr @s2n_strerror(i32 noundef %5515, ptr noundef @.str.60)
  %5517 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5518 = load i32, ptr %5517, align 4, !tbaa !5
  %5519 = call ptr @s2n_strerror_debug(i32 noundef %5518, ptr noundef @.str.60)
  %5520 = call ptr @__errno_location() #14
  %5521 = load i32, ptr %5520, align 4, !tbaa !5
  %5522 = call ptr @strerror(i32 noundef %5521) #13
  %5523 = call ptr @__errno_location() #14
  %5524 = load i32, ptr %5523, align 4, !tbaa !5
  %5525 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5512, ptr noundef @.str.58, i32 noundef %5513, ptr noundef @.str.131, ptr noundef @.str.57, i32 noundef 219, ptr noundef %5516, ptr noundef %5519, ptr noundef %5522, i32 noundef %5524) #13
  br label %5543

5526:                                             ; preds = %5504, %5497
  %5527 = load i32, ptr %133, align 4, !tbaa !5
  %5528 = call ptr @__errno_location() #14
  store i32 %5527, ptr %5528, align 4, !tbaa !5
  %5529 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5530 = load i32, ptr @test_count, align 4, !tbaa !5
  %5531 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5532 = load i32, ptr %5531, align 4, !tbaa !5
  %5533 = call ptr @s2n_strerror(i32 noundef %5532, ptr noundef @.str.60)
  %5534 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5535 = load i32, ptr %5534, align 4, !tbaa !5
  %5536 = call ptr @s2n_strerror_debug(i32 noundef %5535, ptr noundef @.str.60)
  %5537 = call ptr @__errno_location() #14
  %5538 = load i32, ptr %5537, align 4, !tbaa !5
  %5539 = call ptr @strerror(i32 noundef %5538) #13
  %5540 = call ptr @__errno_location() #14
  %5541 = load i32, ptr %5540, align 4, !tbaa !5
  %5542 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5529, ptr noundef @.str.61, i32 noundef %5530, ptr noundef @.str.131, ptr noundef @.str.57, i32 noundef 219, ptr noundef %5533, ptr noundef %5536, ptr noundef %5539, i32 noundef %5541) #13
  br label %5543

5543:                                             ; preds = %5526, %5509
  call void @llvm.lifetime.end.p0(i64 4, ptr %133) #13
  br label %5544

5544:                                             ; preds = %5543
  br label %5545

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

5546:                                             ; No predecessors!
  br label %5547

5547:                                             ; preds = %5546
  br label %5548

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

5549:                                             ; preds = %5548
  br label %5550

5550:                                             ; preds = %5549
  br label %5551

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

5557:                                             ; preds = %5551
  br label %5558

5558:                                             ; preds = %5557
  br label %5559

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

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

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

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

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

5606:                                             ; preds = %5605
  br label %5607

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

5608:                                             ; No predecessors!
  br label %5609

5609:                                             ; preds = %5608
  br label %5610

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

5611:                                             ; preds = %5610
  br label %5612

5612:                                             ; preds = %5611
  br label %5613

5613:                                             ; preds = %5612
  %5614 = load i32, ptr @test_count, align 4, !tbaa !5
  %5615 = add nsw i32 %5614, 1
  store i32 %5615, ptr @test_count, align 4, !tbaa !5
  %5616 = load ptr, ptr %92, align 8, !tbaa !9
  %5617 = call i32 @s2n_handshake_read_io(ptr noundef %5616)
  %5618 = icmp eq i32 %5617, -1
  br i1 %5618, label %5619, label %5672

5619:                                             ; preds = %5613
  br label %5620

5620:                                             ; preds = %5619
  br label %5621

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

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

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

5650:                                             ; preds = %5628, %5621
  %5651 = load i32, ptr %135, align 4, !tbaa !5
  %5652 = call ptr @__errno_location() #14
  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.60)
  %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.60)
  %5661 = call ptr @__errno_location() #14
  %5662 = load i32, ptr %5661, align 4, !tbaa !5
  %5663 = call ptr @strerror(i32 noundef %5662) #13
  %5664 = call ptr @__errno_location() #14
  %5665 = load i32, ptr %5664, align 4, !tbaa !5
  %5666 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5653, ptr noundef @.str.61, i32 noundef %5654, ptr noundef @.str.133, ptr noundef @.str.57, i32 noundef 223, ptr noundef %5657, ptr noundef %5660, ptr noundef %5663, i32 noundef %5665) #13
  br label %5667

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

5668:                                             ; preds = %5667
  br label %5669

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

5670:                                             ; No predecessors!
  br label %5671

5671:                                             ; preds = %5670
  br label %5672

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

5673:                                             ; preds = %5672
  br label %5674

5674:                                             ; preds = %5673
  br label %5675

5675:                                             ; preds = %5674
  %5676 = load i32, ptr @test_count, align 4, !tbaa !5
  %5677 = add nsw i32 %5676, 1
  store i32 %5677, ptr @test_count, align 4, !tbaa !5
  %5678 = load ptr, ptr %92, align 8, !tbaa !9
  %5679 = getelementptr inbounds %struct.s2n_connection, ptr %5678, i32 0, i32 23
  %5680 = load i8, ptr %5679, align 4, !tbaa !75
  %5681 = zext i8 %5680 to i32
  %5682 = icmp eq i32 %5681, 34
  br i1 %5682, label %5736, label %5683

5683:                                             ; preds = %5675
  br label %5684

5684:                                             ; preds = %5683
  br label %5685

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

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

5697:                                             ; preds = %5692
  %5698 = load i32, ptr %136, align 4, !tbaa !5
  %5699 = call ptr @__errno_location() #14
  store i32 %5698, ptr %5699, align 4, !tbaa !5
  %5700 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5701 = load i32, ptr @test_count, align 4, !tbaa !5
  %5702 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5703 = load i32, ptr %5702, align 4, !tbaa !5
  %5704 = call ptr @s2n_strerror(i32 noundef %5703, ptr noundef @.str.60)
  %5705 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5706 = load i32, ptr %5705, align 4, !tbaa !5
  %5707 = call ptr @s2n_strerror_debug(i32 noundef %5706, ptr noundef @.str.60)
  %5708 = call ptr @__errno_location() #14
  %5709 = load i32, ptr %5708, align 4, !tbaa !5
  %5710 = call ptr @strerror(i32 noundef %5709) #13
  %5711 = call ptr @__errno_location() #14
  %5712 = load i32, ptr %5711, align 4, !tbaa !5
  %5713 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5700, ptr noundef @.str.58, i32 noundef %5701, ptr noundef @.str.134, ptr noundef @.str.57, i32 noundef 225, ptr noundef %5704, ptr noundef %5707, ptr noundef %5710, i32 noundef %5712) #13
  br label %5731

5714:                                             ; preds = %5692, %5685
  %5715 = load i32, ptr %136, align 4, !tbaa !5
  %5716 = call ptr @__errno_location() #14
  store i32 %5715, ptr %5716, align 4, !tbaa !5
  %5717 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5718 = load i32, ptr @test_count, align 4, !tbaa !5
  %5719 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5720 = load i32, ptr %5719, align 4, !tbaa !5
  %5721 = call ptr @s2n_strerror(i32 noundef %5720, ptr noundef @.str.60)
  %5722 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5723 = load i32, ptr %5722, align 4, !tbaa !5
  %5724 = call ptr @s2n_strerror_debug(i32 noundef %5723, ptr noundef @.str.60)
  %5725 = call ptr @__errno_location() #14
  %5726 = load i32, ptr %5725, align 4, !tbaa !5
  %5727 = call ptr @strerror(i32 noundef %5726) #13
  %5728 = call ptr @__errno_location() #14
  %5729 = load i32, ptr %5728, align 4, !tbaa !5
  %5730 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5717, ptr noundef @.str.61, i32 noundef %5718, ptr noundef @.str.134, ptr noundef @.str.57, i32 noundef 225, ptr noundef %5721, ptr noundef %5724, ptr noundef %5727, i32 noundef %5729) #13
  br label %5731

5731:                                             ; preds = %5714, %5697
  call void @llvm.lifetime.end.p0(i64 4, ptr %136) #13
  br label %5732

5732:                                             ; preds = %5731
  br label %5733

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

5734:                                             ; No predecessors!
  br label %5735

5735:                                             ; preds = %5734
  br label %5736

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

5737:                                             ; preds = %5736
  br label %5738

5738:                                             ; preds = %5737
  br label %5739

5739:                                             ; preds = %5738
  %5740 = load i32, ptr @test_count, align 4, !tbaa !5
  %5741 = add nsw i32 %5740, 1
  store i32 %5741, ptr @test_count, align 4, !tbaa !5
  %5742 = load ptr, ptr %92, align 8, !tbaa !9
  %5743 = getelementptr inbounds %struct.s2n_connection, ptr %5742, i32 0, i32 52
  %5744 = getelementptr inbounds %struct.s2n_handshake, ptr %5743, i32 0, i32 6
  %5745 = load i32, ptr %5744, align 4, !tbaa !78
  %5746 = icmp eq i32 %5745, 35
  br i1 %5746, label %5800, label %5747

5747:                                             ; preds = %5739
  br label %5748

5748:                                             ; preds = %5747
  br label %5749

5749:                                             ; preds = %5748
  call void @llvm.lifetime.start.p0(i64 4, ptr %137) #13
  %5750 = call ptr @__errno_location() #14
  %5751 = load i32, ptr %5750, align 4, !tbaa !5
  store i32 %5751, ptr %137, align 4, !tbaa !5
  %5752 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5753 = call i32 @s2n_print_stacktrace(ptr noundef %5752)
  %5754 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5755 = trunc i8 %5754 to i1
  br i1 %5755, label %5756, label %5778

5756:                                             ; preds = %5749
  %5757 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5758 = call i32 @fileno(ptr noundef %5757) #13
  %5759 = call i32 @isatty(i32 noundef %5758) #13
  %5760 = icmp ne i32 %5759, 0
  br i1 %5760, label %5761, label %5778

5761:                                             ; preds = %5756
  %5762 = load i32, ptr %137, align 4, !tbaa !5
  %5763 = call ptr @__errno_location() #14
  store i32 %5762, ptr %5763, align 4, !tbaa !5
  %5764 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5765 = load i32, ptr @test_count, align 4, !tbaa !5
  %5766 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5767 = load i32, ptr %5766, align 4, !tbaa !5
  %5768 = call ptr @s2n_strerror(i32 noundef %5767, ptr noundef @.str.60)
  %5769 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5770 = load i32, ptr %5769, align 4, !tbaa !5
  %5771 = call ptr @s2n_strerror_debug(i32 noundef %5770, ptr noundef @.str.60)
  %5772 = call ptr @__errno_location() #14
  %5773 = load i32, ptr %5772, align 4, !tbaa !5
  %5774 = call ptr @strerror(i32 noundef %5773) #13
  %5775 = call ptr @__errno_location() #14
  %5776 = load i32, ptr %5775, align 4, !tbaa !5
  %5777 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5764, ptr noundef @.str.58, i32 noundef %5765, ptr noundef @.str.135, ptr noundef @.str.57, i32 noundef 226, ptr noundef %5768, ptr noundef %5771, ptr noundef %5774, i32 noundef %5776) #13
  br label %5795

5778:                                             ; preds = %5756, %5749
  %5779 = load i32, ptr %137, align 4, !tbaa !5
  %5780 = call ptr @__errno_location() #14
  store i32 %5779, ptr %5780, align 4, !tbaa !5
  %5781 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5782 = load i32, ptr @test_count, align 4, !tbaa !5
  %5783 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5784 = load i32, ptr %5783, align 4, !tbaa !5
  %5785 = call ptr @s2n_strerror(i32 noundef %5784, ptr noundef @.str.60)
  %5786 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5787 = load i32, ptr %5786, align 4, !tbaa !5
  %5788 = call ptr @s2n_strerror_debug(i32 noundef %5787, ptr noundef @.str.60)
  %5789 = call ptr @__errno_location() #14
  %5790 = load i32, ptr %5789, align 4, !tbaa !5
  %5791 = call ptr @strerror(i32 noundef %5790) #13
  %5792 = call ptr @__errno_location() #14
  %5793 = load i32, ptr %5792, align 4, !tbaa !5
  %5794 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5781, ptr noundef @.str.61, i32 noundef %5782, ptr noundef @.str.135, ptr noundef @.str.57, i32 noundef 226, ptr noundef %5785, ptr noundef %5788, ptr noundef %5791, i32 noundef %5793) #13
  br label %5795

5795:                                             ; preds = %5778, %5761
  call void @llvm.lifetime.end.p0(i64 4, ptr %137) #13
  br label %5796

5796:                                             ; preds = %5795
  br label %5797

5797:                                             ; preds = %5796
  call void @exit(i32 noundef 1) #15
  unreachable

5798:                                             ; No predecessors!
  br label %5799

5799:                                             ; preds = %5798
  br label %5800

5800:                                             ; preds = %5799, %5739
  br label %5801

5801:                                             ; preds = %5800
  br label %5802

5802:                                             ; preds = %5801
  call void @llvm.lifetime.start.p0(i64 592, ptr %138) #13
  call void @llvm.memset.p0.i64(ptr align 8 %138, i8 0, i64 592, i1 false)
  br label %5803

5803:                                             ; preds = %5802
  %5804 = load ptr, ptr %92, align 8, !tbaa !9
  %5805 = call i32 @s2n_tls13_keys_from_conn(ptr noundef %138, ptr noundef %5804)
  %5806 = icmp sgt i32 %5805, -1
  br i1 %5806, label %5808, label %5807

5807:                                             ; preds = %5803
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %56, align 4
  br label %9433

5808:                                             ; preds = %5803
  br label %5809

5809:                                             ; preds = %5808
  br label %5810

5810:                                             ; preds = %5809
  br label %5811

5811:                                             ; preds = %5810
  %5812 = load i32, ptr @test_count, align 4, !tbaa !5
  %5813 = add nsw i32 %5812, 1
  store i32 %5813, ptr @test_count, align 4, !tbaa !5
  %5814 = getelementptr inbounds %struct.s2n_tls13_keys, ptr %138, i32 0, i32 2
  %5815 = load i8, ptr %5814, align 8, !tbaa !76
  %5816 = zext i8 %5815 to i32
  %5817 = icmp eq i32 %5816, 32
  br i1 %5817, label %5871, label %5818

5818:                                             ; preds = %5811
  br label %5819

5819:                                             ; preds = %5818
  br label %5820

5820:                                             ; preds = %5819
  call void @llvm.lifetime.start.p0(i64 4, ptr %139) #13
  %5821 = call ptr @__errno_location() #14
  %5822 = load i32, ptr %5821, align 4, !tbaa !5
  store i32 %5822, ptr %139, align 4, !tbaa !5
  %5823 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5824 = call i32 @s2n_print_stacktrace(ptr noundef %5823)
  %5825 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5826 = trunc i8 %5825 to i1
  br i1 %5826, label %5827, label %5849

5827:                                             ; preds = %5820
  %5828 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5829 = call i32 @fileno(ptr noundef %5828) #13
  %5830 = call i32 @isatty(i32 noundef %5829) #13
  %5831 = icmp ne i32 %5830, 0
  br i1 %5831, label %5832, label %5849

5832:                                             ; preds = %5827
  %5833 = load i32, ptr %139, align 4, !tbaa !5
  %5834 = call ptr @__errno_location() #14
  store i32 %5833, ptr %5834, align 4, !tbaa !5
  %5835 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5836 = load i32, ptr @test_count, align 4, !tbaa !5
  %5837 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5838 = load i32, ptr %5837, align 4, !tbaa !5
  %5839 = call ptr @s2n_strerror(i32 noundef %5838, ptr noundef @.str.60)
  %5840 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5841 = load i32, ptr %5840, align 4, !tbaa !5
  %5842 = call ptr @s2n_strerror_debug(i32 noundef %5841, ptr noundef @.str.60)
  %5843 = call ptr @__errno_location() #14
  %5844 = load i32, ptr %5843, align 4, !tbaa !5
  %5845 = call ptr @strerror(i32 noundef %5844) #13
  %5846 = call ptr @__errno_location() #14
  %5847 = load i32, ptr %5846, align 4, !tbaa !5
  %5848 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5835, ptr noundef @.str.58, i32 noundef %5836, ptr noundef @.str.136, ptr noundef @.str.57, i32 noundef 229, ptr noundef %5839, ptr noundef %5842, ptr noundef %5845, i32 noundef %5847) #13
  br label %5866

5849:                                             ; preds = %5827, %5820
  %5850 = load i32, ptr %139, align 4, !tbaa !5
  %5851 = call ptr @__errno_location() #14
  store i32 %5850, ptr %5851, align 4, !tbaa !5
  %5852 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5853 = load i32, ptr @test_count, align 4, !tbaa !5
  %5854 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5855 = load i32, ptr %5854, align 4, !tbaa !5
  %5856 = call ptr @s2n_strerror(i32 noundef %5855, ptr noundef @.str.60)
  %5857 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5858 = load i32, ptr %5857, align 4, !tbaa !5
  %5859 = call ptr @s2n_strerror_debug(i32 noundef %5858, ptr noundef @.str.60)
  %5860 = call ptr @__errno_location() #14
  %5861 = load i32, ptr %5860, align 4, !tbaa !5
  %5862 = call ptr @strerror(i32 noundef %5861) #13
  %5863 = call ptr @__errno_location() #14
  %5864 = load i32, ptr %5863, align 4, !tbaa !5
  %5865 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5852, ptr noundef @.str.61, i32 noundef %5853, ptr noundef @.str.136, ptr noundef @.str.57, i32 noundef 229, ptr noundef %5856, ptr noundef %5859, ptr noundef %5862, i32 noundef %5864) #13
  br label %5866

5866:                                             ; preds = %5849, %5832
  call void @llvm.lifetime.end.p0(i64 4, ptr %139) #13
  br label %5867

5867:                                             ; preds = %5866
  br label %5868

5868:                                             ; preds = %5867
  call void @exit(i32 noundef 1) #15
  unreachable

5869:                                             ; No predecessors!
  br label %5870

5870:                                             ; preds = %5869
  br label %5871

5871:                                             ; preds = %5870, %5811
  br label %5872

5872:                                             ; preds = %5871
  br label %5873

5873:                                             ; preds = %5872
  br label %5874

5874:                                             ; preds = %5873
  %5875 = load i32, ptr @test_count, align 4, !tbaa !5
  %5876 = add nsw i32 %5875, 1
  store i32 %5876, ptr @test_count, align 4, !tbaa !5
  %5877 = load ptr, ptr %92, align 8, !tbaa !9
  %5878 = call i32 @s2n_conn_set_handshake_type(ptr noundef %5877)
  %5879 = icmp eq i32 %5878, -1
  br i1 %5879, label %5880, label %5933

5880:                                             ; preds = %5874
  br label %5881

5881:                                             ; preds = %5880
  br label %5882

5882:                                             ; preds = %5881
  call void @llvm.lifetime.start.p0(i64 4, ptr %140) #13
  %5883 = call ptr @__errno_location() #14
  %5884 = load i32, ptr %5883, align 4, !tbaa !5
  store i32 %5884, ptr %140, align 4, !tbaa !5
  %5885 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5886 = call i32 @s2n_print_stacktrace(ptr noundef %5885)
  %5887 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5888 = trunc i8 %5887 to i1
  br i1 %5888, label %5889, label %5911

5889:                                             ; preds = %5882
  %5890 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5891 = call i32 @fileno(ptr noundef %5890) #13
  %5892 = call i32 @isatty(i32 noundef %5891) #13
  %5893 = icmp ne i32 %5892, 0
  br i1 %5893, label %5894, label %5911

5894:                                             ; preds = %5889
  %5895 = load i32, ptr %140, align 4, !tbaa !5
  %5896 = call ptr @__errno_location() #14
  store i32 %5895, ptr %5896, align 4, !tbaa !5
  %5897 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5898 = load i32, ptr @test_count, align 4, !tbaa !5
  %5899 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5900 = load i32, ptr %5899, align 4, !tbaa !5
  %5901 = call ptr @s2n_strerror(i32 noundef %5900, ptr noundef @.str.60)
  %5902 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5903 = load i32, ptr %5902, align 4, !tbaa !5
  %5904 = call ptr @s2n_strerror_debug(i32 noundef %5903, ptr noundef @.str.60)
  %5905 = call ptr @__errno_location() #14
  %5906 = load i32, ptr %5905, align 4, !tbaa !5
  %5907 = call ptr @strerror(i32 noundef %5906) #13
  %5908 = call ptr @__errno_location() #14
  %5909 = load i32, ptr %5908, align 4, !tbaa !5
  %5910 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5897, ptr noundef @.str.58, i32 noundef %5898, ptr noundef @.str.137, ptr noundef @.str.57, i32 noundef 231, ptr noundef %5901, ptr noundef %5904, ptr noundef %5907, i32 noundef %5909) #13
  br label %5928

5911:                                             ; preds = %5889, %5882
  %5912 = load i32, ptr %140, align 4, !tbaa !5
  %5913 = call ptr @__errno_location() #14
  store i32 %5912, ptr %5913, align 4, !tbaa !5
  %5914 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5915 = load i32, ptr @test_count, align 4, !tbaa !5
  %5916 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5917 = load i32, ptr %5916, align 4, !tbaa !5
  %5918 = call ptr @s2n_strerror(i32 noundef %5917, ptr noundef @.str.60)
  %5919 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5920 = load i32, ptr %5919, align 4, !tbaa !5
  %5921 = call ptr @s2n_strerror_debug(i32 noundef %5920, ptr noundef @.str.60)
  %5922 = call ptr @__errno_location() #14
  %5923 = load i32, ptr %5922, align 4, !tbaa !5
  %5924 = call ptr @strerror(i32 noundef %5923) #13
  %5925 = call ptr @__errno_location() #14
  %5926 = load i32, ptr %5925, align 4, !tbaa !5
  %5927 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5914, ptr noundef @.str.61, i32 noundef %5915, ptr noundef @.str.137, ptr noundef @.str.57, i32 noundef 231, ptr noundef %5918, ptr noundef %5921, ptr noundef %5924, i32 noundef %5926) #13
  br label %5928

5928:                                             ; preds = %5911, %5894
  call void @llvm.lifetime.end.p0(i64 4, ptr %140) #13
  br label %5929

5929:                                             ; preds = %5928
  br label %5930

5930:                                             ; preds = %5929
  call void @exit(i32 noundef 1) #15
  unreachable

5931:                                             ; No predecessors!
  br label %5932

5932:                                             ; preds = %5931
  br label %5933

5933:                                             ; preds = %5932, %5874
  br label %5934

5934:                                             ; preds = %5933
  br label %5935

5935:                                             ; preds = %5934
  br label %5936

5936:                                             ; preds = %5935
  %5937 = load i32, ptr @test_count, align 4, !tbaa !5
  %5938 = add nsw i32 %5937, 1
  store i32 %5938, ptr @test_count, align 4, !tbaa !5
  %5939 = load ptr, ptr %92, align 8, !tbaa !9
  %5940 = call i32 @s2n_conn_get_current_message_type(ptr noundef %5939)
  %5941 = icmp eq i32 %5940, 1
  br i1 %5941, label %5995, label %5942

5942:                                             ; preds = %5936
  br label %5943

5943:                                             ; preds = %5942
  br label %5944

5944:                                             ; preds = %5943
  call void @llvm.lifetime.start.p0(i64 4, ptr %141) #13
  %5945 = call ptr @__errno_location() #14
  %5946 = load i32, ptr %5945, align 4, !tbaa !5
  store i32 %5946, ptr %141, align 4, !tbaa !5
  %5947 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5948 = call i32 @s2n_print_stacktrace(ptr noundef %5947)
  %5949 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5950 = trunc i8 %5949 to i1
  br i1 %5950, label %5951, label %5973

5951:                                             ; preds = %5944
  %5952 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5953 = call i32 @fileno(ptr noundef %5952) #13
  %5954 = call i32 @isatty(i32 noundef %5953) #13
  %5955 = icmp ne i32 %5954, 0
  br i1 %5955, label %5956, label %5973

5956:                                             ; preds = %5951
  %5957 = load i32, ptr %141, align 4, !tbaa !5
  %5958 = call ptr @__errno_location() #14
  store i32 %5957, ptr %5958, align 4, !tbaa !5
  %5959 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5960 = load i32, ptr @test_count, align 4, !tbaa !5
  %5961 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5962 = load i32, ptr %5961, align 4, !tbaa !5
  %5963 = call ptr @s2n_strerror(i32 noundef %5962, ptr noundef @.str.60)
  %5964 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5965 = load i32, ptr %5964, align 4, !tbaa !5
  %5966 = call ptr @s2n_strerror_debug(i32 noundef %5965, ptr noundef @.str.60)
  %5967 = call ptr @__errno_location() #14
  %5968 = load i32, ptr %5967, align 4, !tbaa !5
  %5969 = call ptr @strerror(i32 noundef %5968) #13
  %5970 = call ptr @__errno_location() #14
  %5971 = load i32, ptr %5970, align 4, !tbaa !5
  %5972 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5959, ptr noundef @.str.58, i32 noundef %5960, ptr noundef @.str.138, ptr noundef @.str.57, i32 noundef 234, ptr noundef %5963, ptr noundef %5966, ptr noundef %5969, i32 noundef %5971) #13
  br label %5990

5973:                                             ; preds = %5951, %5944
  %5974 = load i32, ptr %141, align 4, !tbaa !5
  %5975 = call ptr @__errno_location() #14
  store i32 %5974, ptr %5975, align 4, !tbaa !5
  %5976 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5977 = load i32, ptr @test_count, align 4, !tbaa !5
  %5978 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5979 = load i32, ptr %5978, align 4, !tbaa !5
  %5980 = call ptr @s2n_strerror(i32 noundef %5979, ptr noundef @.str.60)
  %5981 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5982 = load i32, ptr %5981, align 4, !tbaa !5
  %5983 = call ptr @s2n_strerror_debug(i32 noundef %5982, ptr noundef @.str.60)
  %5984 = call ptr @__errno_location() #14
  %5985 = load i32, ptr %5984, align 4, !tbaa !5
  %5986 = call ptr @strerror(i32 noundef %5985) #13
  %5987 = call ptr @__errno_location() #14
  %5988 = load i32, ptr %5987, align 4, !tbaa !5
  %5989 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5976, ptr noundef @.str.61, i32 noundef %5977, ptr noundef @.str.138, ptr noundef @.str.57, i32 noundef 234, ptr noundef %5980, ptr noundef %5983, ptr noundef %5986, i32 noundef %5988) #13
  br label %5990

5990:                                             ; preds = %5973, %5956
  call void @llvm.lifetime.end.p0(i64 4, ptr %141) #13
  br label %5991

5991:                                             ; preds = %5990
  br label %5992

5992:                                             ; preds = %5991
  call void @exit(i32 noundef 1) #15
  unreachable

5993:                                             ; No predecessors!
  br label %5994

5994:                                             ; preds = %5993
  br label %5995

5995:                                             ; preds = %5994, %5936
  br label %5996

5996:                                             ; preds = %5995
  br label %5997

5997:                                             ; preds = %5996
  br label %5998

5998:                                             ; preds = %5997
  %5999 = load i32, ptr @test_count, align 4, !tbaa !5
  %6000 = add nsw i32 %5999, 1
  store i32 %6000, ptr @test_count, align 4, !tbaa !5
  %6001 = load ptr, ptr %92, align 8, !tbaa !9
  %6002 = call i32 @s2n_handshake_write_io(ptr noundef %6001)
  %6003 = icmp eq i32 %6002, -1
  br i1 %6003, label %6004, label %6057

6004:                                             ; preds = %5998
  br label %6005

6005:                                             ; preds = %6004
  br label %6006

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

6013:                                             ; preds = %6006
  %6014 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6015 = call i32 @fileno(ptr noundef %6014) #13
  %6016 = call i32 @isatty(i32 noundef %6015) #13
  %6017 = icmp ne i32 %6016, 0
  br i1 %6017, label %6018, label %6035

6018:                                             ; preds = %6013
  %6019 = load i32, ptr %142, align 4, !tbaa !5
  %6020 = call ptr @__errno_location() #14
  store i32 %6019, ptr %6020, align 4, !tbaa !5
  %6021 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6022 = load i32, ptr @test_count, align 4, !tbaa !5
  %6023 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6024 = load i32, ptr %6023, align 4, !tbaa !5
  %6025 = call ptr @s2n_strerror(i32 noundef %6024, ptr noundef @.str.60)
  %6026 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6027 = load i32, ptr %6026, align 4, !tbaa !5
  %6028 = call ptr @s2n_strerror_debug(i32 noundef %6027, ptr noundef @.str.60)
  %6029 = call ptr @__errno_location() #14
  %6030 = load i32, ptr %6029, align 4, !tbaa !5
  %6031 = call ptr @strerror(i32 noundef %6030) #13
  %6032 = call ptr @__errno_location() #14
  %6033 = load i32, ptr %6032, align 4, !tbaa !5
  %6034 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6021, ptr noundef @.str.58, i32 noundef %6022, ptr noundef @.str.139, ptr noundef @.str.57, i32 noundef 235, ptr noundef %6025, ptr noundef %6028, ptr noundef %6031, i32 noundef %6033) #13
  br label %6052

6035:                                             ; preds = %6013, %6006
  %6036 = load i32, ptr %142, align 4, !tbaa !5
  %6037 = call ptr @__errno_location() #14
  store i32 %6036, ptr %6037, align 4, !tbaa !5
  %6038 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6039 = load i32, ptr @test_count, align 4, !tbaa !5
  %6040 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6041 = load i32, ptr %6040, align 4, !tbaa !5
  %6042 = call ptr @s2n_strerror(i32 noundef %6041, ptr noundef @.str.60)
  %6043 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6044 = load i32, ptr %6043, align 4, !tbaa !5
  %6045 = call ptr @s2n_strerror_debug(i32 noundef %6044, ptr noundef @.str.60)
  %6046 = call ptr @__errno_location() #14
  %6047 = load i32, ptr %6046, align 4, !tbaa !5
  %6048 = call ptr @strerror(i32 noundef %6047) #13
  %6049 = call ptr @__errno_location() #14
  %6050 = load i32, ptr %6049, align 4, !tbaa !5
  %6051 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6038, ptr noundef @.str.61, i32 noundef %6039, ptr noundef @.str.139, ptr noundef @.str.57, i32 noundef 235, ptr noundef %6042, ptr noundef %6045, ptr noundef %6048, i32 noundef %6050) #13
  br label %6052

6052:                                             ; preds = %6035, %6018
  call void @llvm.lifetime.end.p0(i64 4, ptr %142) #13
  br label %6053

6053:                                             ; preds = %6052
  br label %6054

6054:                                             ; preds = %6053
  call void @exit(i32 noundef 1) #15
  unreachable

6055:                                             ; No predecessors!
  br label %6056

6056:                                             ; preds = %6055
  br label %6057

6057:                                             ; preds = %6056, %5998
  br label %6058

6058:                                             ; preds = %6057
  br label %6059

6059:                                             ; preds = %6058
  br label %6060

6060:                                             ; preds = %6059
  %6061 = load i32, ptr @test_count, align 4, !tbaa !5
  %6062 = add nsw i32 %6061, 1
  store i32 %6062, ptr @test_count, align 4, !tbaa !5
  %6063 = load ptr, ptr %92, align 8, !tbaa !9
  %6064 = call i32 @s2n_conn_get_current_message_type(ptr noundef %6063)
  %6065 = icmp eq i32 %6064, 14
  br i1 %6065, label %6119, label %6066

6066:                                             ; preds = %6060
  br label %6067

6067:                                             ; preds = %6066
  br label %6068

6068:                                             ; preds = %6067
  call void @llvm.lifetime.start.p0(i64 4, ptr %143) #13
  %6069 = call ptr @__errno_location() #14
  %6070 = load i32, ptr %6069, align 4, !tbaa !5
  store i32 %6070, ptr %143, align 4, !tbaa !5
  %6071 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6072 = call i32 @s2n_print_stacktrace(ptr noundef %6071)
  %6073 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6074 = trunc i8 %6073 to i1
  br i1 %6074, label %6075, label %6097

6075:                                             ; preds = %6068
  %6076 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6077 = call i32 @fileno(ptr noundef %6076) #13
  %6078 = call i32 @isatty(i32 noundef %6077) #13
  %6079 = icmp ne i32 %6078, 0
  br i1 %6079, label %6080, label %6097

6080:                                             ; preds = %6075
  %6081 = load i32, ptr %143, align 4, !tbaa !5
  %6082 = call ptr @__errno_location() #14
  store i32 %6081, ptr %6082, align 4, !tbaa !5
  %6083 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6084 = load i32, ptr @test_count, align 4, !tbaa !5
  %6085 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6086 = load i32, ptr %6085, align 4, !tbaa !5
  %6087 = call ptr @s2n_strerror(i32 noundef %6086, ptr noundef @.str.60)
  %6088 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6089 = load i32, ptr %6088, align 4, !tbaa !5
  %6090 = call ptr @s2n_strerror_debug(i32 noundef %6089, ptr noundef @.str.60)
  %6091 = call ptr @__errno_location() #14
  %6092 = load i32, ptr %6091, align 4, !tbaa !5
  %6093 = call ptr @strerror(i32 noundef %6092) #13
  %6094 = call ptr @__errno_location() #14
  %6095 = load i32, ptr %6094, align 4, !tbaa !5
  %6096 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6083, ptr noundef @.str.58, i32 noundef %6084, ptr noundef @.str.140, ptr noundef @.str.57, i32 noundef 238, ptr noundef %6087, ptr noundef %6090, ptr noundef %6093, i32 noundef %6095) #13
  br label %6114

6097:                                             ; preds = %6075, %6068
  %6098 = load i32, ptr %143, align 4, !tbaa !5
  %6099 = call ptr @__errno_location() #14
  store i32 %6098, ptr %6099, align 4, !tbaa !5
  %6100 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6101 = load i32, ptr @test_count, align 4, !tbaa !5
  %6102 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6103 = load i32, ptr %6102, align 4, !tbaa !5
  %6104 = call ptr @s2n_strerror(i32 noundef %6103, ptr noundef @.str.60)
  %6105 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6106 = load i32, ptr %6105, align 4, !tbaa !5
  %6107 = call ptr @s2n_strerror_debug(i32 noundef %6106, ptr noundef @.str.60)
  %6108 = call ptr @__errno_location() #14
  %6109 = load i32, ptr %6108, align 4, !tbaa !5
  %6110 = call ptr @strerror(i32 noundef %6109) #13
  %6111 = call ptr @__errno_location() #14
  %6112 = load i32, ptr %6111, align 4, !tbaa !5
  %6113 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6100, ptr noundef @.str.61, i32 noundef %6101, ptr noundef @.str.140, ptr noundef @.str.57, i32 noundef 238, ptr noundef %6104, ptr noundef %6107, ptr noundef %6110, i32 noundef %6112) #13
  br label %6114

6114:                                             ; preds = %6097, %6080
  call void @llvm.lifetime.end.p0(i64 4, ptr %143) #13
  br label %6115

6115:                                             ; preds = %6114
  br label %6116

6116:                                             ; preds = %6115
  call void @exit(i32 noundef 1) #15
  unreachable

6117:                                             ; No predecessors!
  br label %6118

6118:                                             ; preds = %6117
  br label %6119

6119:                                             ; preds = %6118, %6060
  br label %6120

6120:                                             ; preds = %6119
  br label %6121

6121:                                             ; preds = %6120
  br label %6122

6122:                                             ; preds = %6121
  %6123 = load i32, ptr @test_count, align 4, !tbaa !5
  %6124 = add nsw i32 %6123, 1
  store i32 %6124, ptr @test_count, align 4, !tbaa !5
  %6125 = load ptr, ptr %92, align 8, !tbaa !9
  %6126 = call i32 @s2n_handshake_write_io(ptr noundef %6125)
  %6127 = icmp eq i32 %6126, -1
  br i1 %6127, label %6128, label %6181

6128:                                             ; preds = %6122
  br label %6129

6129:                                             ; preds = %6128
  br label %6130

6130:                                             ; preds = %6129
  call void @llvm.lifetime.start.p0(i64 4, ptr %144) #13
  %6131 = call ptr @__errno_location() #14
  %6132 = load i32, ptr %6131, align 4, !tbaa !5
  store i32 %6132, ptr %144, align 4, !tbaa !5
  %6133 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6134 = call i32 @s2n_print_stacktrace(ptr noundef %6133)
  %6135 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6136 = trunc i8 %6135 to i1
  br i1 %6136, label %6137, label %6159

6137:                                             ; preds = %6130
  %6138 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6139 = call i32 @fileno(ptr noundef %6138) #13
  %6140 = call i32 @isatty(i32 noundef %6139) #13
  %6141 = icmp ne i32 %6140, 0
  br i1 %6141, label %6142, label %6159

6142:                                             ; preds = %6137
  %6143 = load i32, ptr %144, align 4, !tbaa !5
  %6144 = call ptr @__errno_location() #14
  store i32 %6143, ptr %6144, align 4, !tbaa !5
  %6145 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6146 = load i32, ptr @test_count, align 4, !tbaa !5
  %6147 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6148 = load i32, ptr %6147, align 4, !tbaa !5
  %6149 = call ptr @s2n_strerror(i32 noundef %6148, ptr noundef @.str.60)
  %6150 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6151 = load i32, ptr %6150, align 4, !tbaa !5
  %6152 = call ptr @s2n_strerror_debug(i32 noundef %6151, ptr noundef @.str.60)
  %6153 = call ptr @__errno_location() #14
  %6154 = load i32, ptr %6153, align 4, !tbaa !5
  %6155 = call ptr @strerror(i32 noundef %6154) #13
  %6156 = call ptr @__errno_location() #14
  %6157 = load i32, ptr %6156, align 4, !tbaa !5
  %6158 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6145, ptr noundef @.str.58, i32 noundef %6146, ptr noundef @.str.139, ptr noundef @.str.57, i32 noundef 239, ptr noundef %6149, ptr noundef %6152, ptr noundef %6155, i32 noundef %6157) #13
  br label %6176

6159:                                             ; preds = %6137, %6130
  %6160 = load i32, ptr %144, align 4, !tbaa !5
  %6161 = call ptr @__errno_location() #14
  store i32 %6160, ptr %6161, align 4, !tbaa !5
  %6162 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6163 = load i32, ptr @test_count, align 4, !tbaa !5
  %6164 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6165 = load i32, ptr %6164, align 4, !tbaa !5
  %6166 = call ptr @s2n_strerror(i32 noundef %6165, ptr noundef @.str.60)
  %6167 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6168 = load i32, ptr %6167, align 4, !tbaa !5
  %6169 = call ptr @s2n_strerror_debug(i32 noundef %6168, ptr noundef @.str.60)
  %6170 = call ptr @__errno_location() #14
  %6171 = load i32, ptr %6170, align 4, !tbaa !5
  %6172 = call ptr @strerror(i32 noundef %6171) #13
  %6173 = call ptr @__errno_location() #14
  %6174 = load i32, ptr %6173, align 4, !tbaa !5
  %6175 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6162, ptr noundef @.str.61, i32 noundef %6163, ptr noundef @.str.139, ptr noundef @.str.57, i32 noundef 239, ptr noundef %6166, ptr noundef %6169, ptr noundef %6172, i32 noundef %6174) #13
  br label %6176

6176:                                             ; preds = %6159, %6142
  call void @llvm.lifetime.end.p0(i64 4, ptr %144) #13
  br label %6177

6177:                                             ; preds = %6176
  br label %6178

6178:                                             ; preds = %6177
  call void @exit(i32 noundef 1) #15
  unreachable

6179:                                             ; No predecessors!
  br label %6180

6180:                                             ; preds = %6179
  br label %6181

6181:                                             ; preds = %6180, %6122
  br label %6182

6182:                                             ; preds = %6181
  br label %6183

6183:                                             ; preds = %6182
  br label %6184

6184:                                             ; preds = %6183
  br label %6185

6185:                                             ; preds = %6184
  %6186 = load i32, ptr @test_count, align 4, !tbaa !5
  %6187 = add nsw i32 %6186, 1
  store i32 %6187, ptr @test_count, align 4, !tbaa !5
  %6188 = getelementptr inbounds %struct.s2n_blob, ptr %120, i32 0, i32 1
  %6189 = load i32, ptr %6188, align 8, !tbaa !73
  %6190 = getelementptr inbounds %struct.s2n_blob, ptr %121, i32 0, i32 1
  %6191 = load i32, ptr %6190, align 8, !tbaa !73
  %6192 = icmp eq i32 %6189, %6191
  br i1 %6192, label %6246, label %6193

6193:                                             ; preds = %6185
  br label %6194

6194:                                             ; preds = %6193
  br label %6195

6195:                                             ; preds = %6194
  call void @llvm.lifetime.start.p0(i64 4, ptr %145) #13
  %6196 = call ptr @__errno_location() #14
  %6197 = load i32, ptr %6196, align 4, !tbaa !5
  store i32 %6197, ptr %145, align 4, !tbaa !5
  %6198 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6199 = call i32 @s2n_print_stacktrace(ptr noundef %6198)
  %6200 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6201 = trunc i8 %6200 to i1
  br i1 %6201, label %6202, label %6224

6202:                                             ; preds = %6195
  %6203 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6204 = call i32 @fileno(ptr noundef %6203) #13
  %6205 = call i32 @isatty(i32 noundef %6204) #13
  %6206 = icmp ne i32 %6205, 0
  br i1 %6206, label %6207, label %6224

6207:                                             ; preds = %6202
  %6208 = load i32, ptr %145, align 4, !tbaa !5
  %6209 = call ptr @__errno_location() #14
  store i32 %6208, ptr %6209, align 4, !tbaa !5
  %6210 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6211 = load i32, ptr @test_count, align 4, !tbaa !5
  %6212 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6213 = load i32, ptr %6212, align 4, !tbaa !5
  %6214 = call ptr @s2n_strerror(i32 noundef %6213, ptr noundef @.str.60)
  %6215 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6216 = load i32, ptr %6215, align 4, !tbaa !5
  %6217 = call ptr @s2n_strerror_debug(i32 noundef %6216, ptr noundef @.str.60)
  %6218 = call ptr @__errno_location() #14
  %6219 = load i32, ptr %6218, align 4, !tbaa !5
  %6220 = call ptr @strerror(i32 noundef %6219) #13
  %6221 = call ptr @__errno_location() #14
  %6222 = load i32, ptr %6221, align 4, !tbaa !5
  %6223 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6210, ptr noundef @.str.58, i32 noundef %6211, ptr noundef @.str.141, ptr noundef @.str.57, i32 noundef 240, ptr noundef %6214, ptr noundef %6217, ptr noundef %6220, i32 noundef %6222) #13
  br label %6241

6224:                                             ; preds = %6202, %6195
  %6225 = load i32, ptr %145, align 4, !tbaa !5
  %6226 = call ptr @__errno_location() #14
  store i32 %6225, ptr %6226, align 4, !tbaa !5
  %6227 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6228 = load i32, ptr @test_count, align 4, !tbaa !5
  %6229 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6230 = load i32, ptr %6229, align 4, !tbaa !5
  %6231 = call ptr @s2n_strerror(i32 noundef %6230, ptr noundef @.str.60)
  %6232 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6233 = load i32, ptr %6232, align 4, !tbaa !5
  %6234 = call ptr @s2n_strerror_debug(i32 noundef %6233, ptr noundef @.str.60)
  %6235 = call ptr @__errno_location() #14
  %6236 = load i32, ptr %6235, align 4, !tbaa !5
  %6237 = call ptr @strerror(i32 noundef %6236) #13
  %6238 = call ptr @__errno_location() #14
  %6239 = load i32, ptr %6238, align 4, !tbaa !5
  %6240 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6227, ptr noundef @.str.61, i32 noundef %6228, ptr noundef @.str.141, ptr noundef @.str.57, i32 noundef 240, ptr noundef %6231, ptr noundef %6234, ptr noundef %6237, i32 noundef %6239) #13
  br label %6241

6241:                                             ; preds = %6224, %6207
  call void @llvm.lifetime.end.p0(i64 4, ptr %145) #13
  br label %6242

6242:                                             ; preds = %6241
  br label %6243

6243:                                             ; preds = %6242
  call void @exit(i32 noundef 1) #15
  unreachable

6244:                                             ; No predecessors!
  br label %6245

6245:                                             ; preds = %6244
  br label %6246

6246:                                             ; preds = %6245, %6185
  br label %6247

6247:                                             ; preds = %6246
  br label %6248

6248:                                             ; preds = %6247
  br label %6249

6249:                                             ; preds = %6248
  %6250 = getelementptr inbounds %struct.s2n_blob, ptr %120, i32 0, i32 1
  %6251 = load i32, ptr %6250, align 8, !tbaa !73
  %6252 = icmp ne i32 %6251, 0
  br i1 %6252, label %6253, label %6322

6253:                                             ; preds = %6249
  br label %6254

6254:                                             ; preds = %6253
  %6255 = load i32, ptr @test_count, align 4, !tbaa !5
  %6256 = add nsw i32 %6255, 1
  store i32 %6256, ptr @test_count, align 4, !tbaa !5
  %6257 = getelementptr inbounds %struct.s2n_blob, ptr %120, i32 0, i32 0
  %6258 = load ptr, ptr %6257, align 8, !tbaa !72
  %6259 = getelementptr inbounds %struct.s2n_blob, ptr %121, i32 0, i32 0
  %6260 = load ptr, ptr %6259, align 8, !tbaa !72
  %6261 = getelementptr inbounds %struct.s2n_blob, ptr %120, i32 0, i32 1
  %6262 = load i32, ptr %6261, align 8, !tbaa !73
  %6263 = zext i32 %6262 to i64
  %6264 = call i32 @memcmp(ptr noundef %6258, ptr noundef %6260, i64 noundef %6263) #16
  %6265 = icmp eq i32 %6264, 0
  br i1 %6265, label %6319, label %6266

6266:                                             ; preds = %6254
  br label %6267

6267:                                             ; preds = %6266
  br label %6268

6268:                                             ; preds = %6267
  call void @llvm.lifetime.start.p0(i64 4, ptr %146) #13
  %6269 = call ptr @__errno_location() #14
  %6270 = load i32, ptr %6269, align 4, !tbaa !5
  store i32 %6270, ptr %146, align 4, !tbaa !5
  %6271 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6272 = call i32 @s2n_print_stacktrace(ptr noundef %6271)
  %6273 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6274 = trunc i8 %6273 to i1
  br i1 %6274, label %6275, label %6297

6275:                                             ; preds = %6268
  %6276 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6277 = call i32 @fileno(ptr noundef %6276) #13
  %6278 = call i32 @isatty(i32 noundef %6277) #13
  %6279 = icmp ne i32 %6278, 0
  br i1 %6279, label %6280, label %6297

6280:                                             ; preds = %6275
  %6281 = load i32, ptr %146, align 4, !tbaa !5
  %6282 = call ptr @__errno_location() #14
  store i32 %6281, ptr %6282, align 4, !tbaa !5
  %6283 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6284 = load i32, ptr @test_count, align 4, !tbaa !5
  %6285 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6286 = load i32, ptr %6285, align 4, !tbaa !5
  %6287 = call ptr @s2n_strerror(i32 noundef %6286, ptr noundef @.str.60)
  %6288 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6289 = load i32, ptr %6288, align 4, !tbaa !5
  %6290 = call ptr @s2n_strerror_debug(i32 noundef %6289, ptr noundef @.str.60)
  %6291 = call ptr @__errno_location() #14
  %6292 = load i32, ptr %6291, align 4, !tbaa !5
  %6293 = call ptr @strerror(i32 noundef %6292) #13
  %6294 = call ptr @__errno_location() #14
  %6295 = load i32, ptr %6294, align 4, !tbaa !5
  %6296 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6283, ptr noundef @.str.58, i32 noundef %6284, ptr noundef @.str.142, ptr noundef @.str.57, i32 noundef 240, ptr noundef %6287, ptr noundef %6290, ptr noundef %6293, i32 noundef %6295) #13
  br label %6314

6297:                                             ; preds = %6275, %6268
  %6298 = load i32, ptr %146, align 4, !tbaa !5
  %6299 = call ptr @__errno_location() #14
  store i32 %6298, ptr %6299, align 4, !tbaa !5
  %6300 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6301 = load i32, ptr @test_count, align 4, !tbaa !5
  %6302 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6303 = load i32, ptr %6302, align 4, !tbaa !5
  %6304 = call ptr @s2n_strerror(i32 noundef %6303, ptr noundef @.str.60)
  %6305 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6306 = load i32, ptr %6305, align 4, !tbaa !5
  %6307 = call ptr @s2n_strerror_debug(i32 noundef %6306, ptr noundef @.str.60)
  %6308 = call ptr @__errno_location() #14
  %6309 = load i32, ptr %6308, align 4, !tbaa !5
  %6310 = call ptr @strerror(i32 noundef %6309) #13
  %6311 = call ptr @__errno_location() #14
  %6312 = load i32, ptr %6311, align 4, !tbaa !5
  %6313 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6300, ptr noundef @.str.61, i32 noundef %6301, ptr noundef @.str.142, ptr noundef @.str.57, i32 noundef 240, ptr noundef %6304, ptr noundef %6307, ptr noundef %6310, i32 noundef %6312) #13
  br label %6314

6314:                                             ; preds = %6297, %6280
  call void @llvm.lifetime.end.p0(i64 4, ptr %146) #13
  br label %6315

6315:                                             ; preds = %6314
  br label %6316

6316:                                             ; preds = %6315
  call void @exit(i32 noundef 1) #15
  unreachable

6317:                                             ; No predecessors!
  br label %6318

6318:                                             ; preds = %6317
  br label %6319

6319:                                             ; preds = %6318, %6254
  br label %6320

6320:                                             ; preds = %6319
  br label %6321

6321:                                             ; preds = %6320
  br label %6322

6322:                                             ; preds = %6321, %6249
  br label %6323

6323:                                             ; preds = %6322
  br label %6324

6324:                                             ; preds = %6323
  br label %6325

6325:                                             ; preds = %6324
  br label %6326

6326:                                             ; preds = %6325
  br label %6327

6327:                                             ; preds = %6326
  %6328 = load i32, ptr @test_count, align 4, !tbaa !5
  %6329 = add nsw i32 %6328, 1
  store i32 %6329, ptr @test_count, align 4, !tbaa !5
  %6330 = load ptr, ptr %92, align 8, !tbaa !9
  %6331 = call i32 @s2n_conn_get_current_message_type(ptr noundef %6330)
  %6332 = icmp eq i32 %6331, 16
  br i1 %6332, label %6386, label %6333

6333:                                             ; preds = %6327
  br label %6334

6334:                                             ; preds = %6333
  br label %6335

6335:                                             ; preds = %6334
  call void @llvm.lifetime.start.p0(i64 4, ptr %147) #13
  %6336 = call ptr @__errno_location() #14
  %6337 = load i32, ptr %6336, align 4, !tbaa !5
  store i32 %6337, ptr %147, align 4, !tbaa !5
  %6338 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6339 = call i32 @s2n_print_stacktrace(ptr noundef %6338)
  %6340 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6341 = trunc i8 %6340 to i1
  br i1 %6341, label %6342, label %6364

6342:                                             ; preds = %6335
  %6343 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6344 = call i32 @fileno(ptr noundef %6343) #13
  %6345 = call i32 @isatty(i32 noundef %6344) #13
  %6346 = icmp ne i32 %6345, 0
  br i1 %6346, label %6347, label %6364

6347:                                             ; preds = %6342
  %6348 = load i32, ptr %147, align 4, !tbaa !5
  %6349 = call ptr @__errno_location() #14
  store i32 %6348, ptr %6349, align 4, !tbaa !5
  %6350 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6351 = load i32, ptr @test_count, align 4, !tbaa !5
  %6352 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6353 = load i32, ptr %6352, align 4, !tbaa !5
  %6354 = call ptr @s2n_strerror(i32 noundef %6353, ptr noundef @.str.60)
  %6355 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6356 = load i32, ptr %6355, align 4, !tbaa !5
  %6357 = call ptr @s2n_strerror_debug(i32 noundef %6356, ptr noundef @.str.60)
  %6358 = call ptr @__errno_location() #14
  %6359 = load i32, ptr %6358, align 4, !tbaa !5
  %6360 = call ptr @strerror(i32 noundef %6359) #13
  %6361 = call ptr @__errno_location() #14
  %6362 = load i32, ptr %6361, align 4, !tbaa !5
  %6363 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6350, ptr noundef @.str.58, i32 noundef %6351, ptr noundef @.str.143, ptr noundef @.str.57, i32 noundef 243, ptr noundef %6354, ptr noundef %6357, ptr noundef %6360, i32 noundef %6362) #13
  br label %6381

6364:                                             ; preds = %6342, %6335
  %6365 = load i32, ptr %147, align 4, !tbaa !5
  %6366 = call ptr @__errno_location() #14
  store i32 %6365, ptr %6366, align 4, !tbaa !5
  %6367 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6368 = load i32, ptr @test_count, align 4, !tbaa !5
  %6369 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6370 = load i32, ptr %6369, align 4, !tbaa !5
  %6371 = call ptr @s2n_strerror(i32 noundef %6370, ptr noundef @.str.60)
  %6372 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6373 = load i32, ptr %6372, align 4, !tbaa !5
  %6374 = call ptr @s2n_strerror_debug(i32 noundef %6373, ptr noundef @.str.60)
  %6375 = call ptr @__errno_location() #14
  %6376 = load i32, ptr %6375, align 4, !tbaa !5
  %6377 = call ptr @strerror(i32 noundef %6376) #13
  %6378 = call ptr @__errno_location() #14
  %6379 = load i32, ptr %6378, align 4, !tbaa !5
  %6380 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6367, ptr noundef @.str.61, i32 noundef %6368, ptr noundef @.str.143, ptr noundef @.str.57, i32 noundef 243, ptr noundef %6371, ptr noundef %6374, ptr noundef %6377, i32 noundef %6379) #13
  br label %6381

6381:                                             ; preds = %6364, %6347
  call void @llvm.lifetime.end.p0(i64 4, ptr %147) #13
  br label %6382

6382:                                             ; preds = %6381
  br label %6383

6383:                                             ; preds = %6382
  call void @exit(i32 noundef 1) #15
  unreachable

6384:                                             ; No predecessors!
  br label %6385

6385:                                             ; preds = %6384
  br label %6386

6386:                                             ; preds = %6385, %6327
  br label %6387

6387:                                             ; preds = %6386
  br label %6388

6388:                                             ; preds = %6387
  br label %6389

6389:                                             ; preds = %6388
  %6390 = load i32, ptr @test_count, align 4, !tbaa !5
  %6391 = add nsw i32 %6390, 1
  store i32 %6391, ptr @test_count, align 4, !tbaa !5
  %6392 = load ptr, ptr %92, align 8, !tbaa !9
  %6393 = call i32 @s2n_handshake_write_io(ptr noundef %6392)
  %6394 = icmp eq i32 %6393, -1
  br i1 %6394, label %6395, label %6448

6395:                                             ; preds = %6389
  br label %6396

6396:                                             ; preds = %6395
  br label %6397

6397:                                             ; preds = %6396
  call void @llvm.lifetime.start.p0(i64 4, ptr %148) #13
  %6398 = call ptr @__errno_location() #14
  %6399 = load i32, ptr %6398, align 4, !tbaa !5
  store i32 %6399, ptr %148, align 4, !tbaa !5
  %6400 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6401 = call i32 @s2n_print_stacktrace(ptr noundef %6400)
  %6402 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6403 = trunc i8 %6402 to i1
  br i1 %6403, label %6404, label %6426

6404:                                             ; preds = %6397
  %6405 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6406 = call i32 @fileno(ptr noundef %6405) #13
  %6407 = call i32 @isatty(i32 noundef %6406) #13
  %6408 = icmp ne i32 %6407, 0
  br i1 %6408, label %6409, label %6426

6409:                                             ; preds = %6404
  %6410 = load i32, ptr %148, align 4, !tbaa !5
  %6411 = call ptr @__errno_location() #14
  store i32 %6410, ptr %6411, align 4, !tbaa !5
  %6412 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6413 = load i32, ptr @test_count, align 4, !tbaa !5
  %6414 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6415 = load i32, ptr %6414, align 4, !tbaa !5
  %6416 = call ptr @s2n_strerror(i32 noundef %6415, ptr noundef @.str.60)
  %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_debug(i32 noundef %6418, ptr noundef @.str.60)
  %6420 = call ptr @__errno_location() #14
  %6421 = load i32, ptr %6420, align 4, !tbaa !5
  %6422 = call ptr @strerror(i32 noundef %6421) #13
  %6423 = call ptr @__errno_location() #14
  %6424 = load i32, ptr %6423, align 4, !tbaa !5
  %6425 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6412, ptr noundef @.str.58, i32 noundef %6413, ptr noundef @.str.139, ptr noundef @.str.57, i32 noundef 244, ptr noundef %6416, ptr noundef %6419, ptr noundef %6422, i32 noundef %6424) #13
  br label %6443

6426:                                             ; preds = %6404, %6397
  %6427 = load i32, ptr %148, align 4, !tbaa !5
  %6428 = call ptr @__errno_location() #14
  store i32 %6427, ptr %6428, align 4, !tbaa !5
  %6429 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6430 = load i32, ptr @test_count, align 4, !tbaa !5
  %6431 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6432 = load i32, ptr %6431, align 4, !tbaa !5
  %6433 = call ptr @s2n_strerror(i32 noundef %6432, ptr noundef @.str.60)
  %6434 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6435 = load i32, ptr %6434, align 4, !tbaa !5
  %6436 = call ptr @s2n_strerror_debug(i32 noundef %6435, ptr noundef @.str.60)
  %6437 = call ptr @__errno_location() #14
  %6438 = load i32, ptr %6437, align 4, !tbaa !5
  %6439 = call ptr @strerror(i32 noundef %6438) #13
  %6440 = call ptr @__errno_location() #14
  %6441 = load i32, ptr %6440, align 4, !tbaa !5
  %6442 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6429, ptr noundef @.str.61, i32 noundef %6430, ptr noundef @.str.139, ptr noundef @.str.57, i32 noundef 244, ptr noundef %6433, ptr noundef %6436, ptr noundef %6439, i32 noundef %6441) #13
  br label %6443

6443:                                             ; preds = %6426, %6409
  call void @llvm.lifetime.end.p0(i64 4, ptr %148) #13
  br label %6444

6444:                                             ; preds = %6443
  br label %6445

6445:                                             ; preds = %6444
  call void @exit(i32 noundef 1) #15
  unreachable

6446:                                             ; No predecessors!
  br label %6447

6447:                                             ; preds = %6446
  br label %6448

6448:                                             ; preds = %6447, %6389
  br label %6449

6449:                                             ; preds = %6448
  br label %6450

6450:                                             ; preds = %6449
  br label %6451

6451:                                             ; preds = %6450
  br label %6452

6452:                                             ; preds = %6451
  %6453 = load i32, ptr @test_count, align 4, !tbaa !5
  %6454 = add nsw i32 %6453, 1
  store i32 %6454, ptr @test_count, align 4, !tbaa !5
  %6455 = getelementptr inbounds %struct.s2n_blob, ptr %120, i32 0, i32 1
  %6456 = load i32, ptr %6455, align 8, !tbaa !73
  %6457 = getelementptr inbounds %struct.s2n_blob, ptr %123, i32 0, i32 1
  %6458 = load i32, ptr %6457, align 8, !tbaa !73
  %6459 = icmp eq i32 %6456, %6458
  br i1 %6459, label %6513, label %6460

6460:                                             ; preds = %6452
  br label %6461

6461:                                             ; preds = %6460
  br label %6462

6462:                                             ; preds = %6461
  call void @llvm.lifetime.start.p0(i64 4, ptr %149) #13
  %6463 = call ptr @__errno_location() #14
  %6464 = load i32, ptr %6463, align 4, !tbaa !5
  store i32 %6464, ptr %149, align 4, !tbaa !5
  %6465 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6466 = call i32 @s2n_print_stacktrace(ptr noundef %6465)
  %6467 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6468 = trunc i8 %6467 to i1
  br i1 %6468, label %6469, label %6491

6469:                                             ; preds = %6462
  %6470 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6471 = call i32 @fileno(ptr noundef %6470) #13
  %6472 = call i32 @isatty(i32 noundef %6471) #13
  %6473 = icmp ne i32 %6472, 0
  br i1 %6473, label %6474, label %6491

6474:                                             ; preds = %6469
  %6475 = load i32, ptr %149, align 4, !tbaa !5
  %6476 = call ptr @__errno_location() #14
  store i32 %6475, ptr %6476, align 4, !tbaa !5
  %6477 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6478 = load i32, ptr @test_count, align 4, !tbaa !5
  %6479 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6480 = load i32, ptr %6479, align 4, !tbaa !5
  %6481 = call ptr @s2n_strerror(i32 noundef %6480, ptr noundef @.str.60)
  %6482 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6483 = load i32, ptr %6482, align 4, !tbaa !5
  %6484 = call ptr @s2n_strerror_debug(i32 noundef %6483, ptr noundef @.str.60)
  %6485 = call ptr @__errno_location() #14
  %6486 = load i32, ptr %6485, align 4, !tbaa !5
  %6487 = call ptr @strerror(i32 noundef %6486) #13
  %6488 = call ptr @__errno_location() #14
  %6489 = load i32, ptr %6488, align 4, !tbaa !5
  %6490 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6477, ptr noundef @.str.58, i32 noundef %6478, ptr noundef @.str.144, ptr noundef @.str.57, i32 noundef 245, ptr noundef %6481, ptr noundef %6484, ptr noundef %6487, i32 noundef %6489) #13
  br label %6508

6491:                                             ; preds = %6469, %6462
  %6492 = load i32, ptr %149, align 4, !tbaa !5
  %6493 = call ptr @__errno_location() #14
  store i32 %6492, ptr %6493, align 4, !tbaa !5
  %6494 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6495 = load i32, ptr @test_count, align 4, !tbaa !5
  %6496 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6497 = load i32, ptr %6496, align 4, !tbaa !5
  %6498 = call ptr @s2n_strerror(i32 noundef %6497, ptr noundef @.str.60)
  %6499 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6500 = load i32, ptr %6499, align 4, !tbaa !5
  %6501 = call ptr @s2n_strerror_debug(i32 noundef %6500, ptr noundef @.str.60)
  %6502 = call ptr @__errno_location() #14
  %6503 = load i32, ptr %6502, align 4, !tbaa !5
  %6504 = call ptr @strerror(i32 noundef %6503) #13
  %6505 = call ptr @__errno_location() #14
  %6506 = load i32, ptr %6505, align 4, !tbaa !5
  %6507 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6494, ptr noundef @.str.61, i32 noundef %6495, ptr noundef @.str.144, ptr noundef @.str.57, i32 noundef 245, ptr noundef %6498, ptr noundef %6501, ptr noundef %6504, i32 noundef %6506) #13
  br label %6508

6508:                                             ; preds = %6491, %6474
  call void @llvm.lifetime.end.p0(i64 4, ptr %149) #13
  br label %6509

6509:                                             ; preds = %6508
  br label %6510

6510:                                             ; preds = %6509
  call void @exit(i32 noundef 1) #15
  unreachable

6511:                                             ; No predecessors!
  br label %6512

6512:                                             ; preds = %6511
  br label %6513

6513:                                             ; preds = %6512, %6452
  br label %6514

6514:                                             ; preds = %6513
  br label %6515

6515:                                             ; preds = %6514
  br label %6516

6516:                                             ; preds = %6515
  %6517 = getelementptr inbounds %struct.s2n_blob, ptr %120, i32 0, i32 1
  %6518 = load i32, ptr %6517, align 8, !tbaa !73
  %6519 = icmp ne i32 %6518, 0
  br i1 %6519, label %6520, label %6589

6520:                                             ; preds = %6516
  br label %6521

6521:                                             ; preds = %6520
  %6522 = load i32, ptr @test_count, align 4, !tbaa !5
  %6523 = add nsw i32 %6522, 1
  store i32 %6523, ptr @test_count, align 4, !tbaa !5
  %6524 = getelementptr inbounds %struct.s2n_blob, ptr %120, i32 0, i32 0
  %6525 = load ptr, ptr %6524, align 8, !tbaa !72
  %6526 = getelementptr inbounds %struct.s2n_blob, ptr %123, i32 0, i32 0
  %6527 = load ptr, ptr %6526, align 8, !tbaa !72
  %6528 = getelementptr inbounds %struct.s2n_blob, ptr %120, i32 0, i32 1
  %6529 = load i32, ptr %6528, align 8, !tbaa !73
  %6530 = zext i32 %6529 to i64
  %6531 = call i32 @memcmp(ptr noundef %6525, ptr noundef %6527, i64 noundef %6530) #16
  %6532 = icmp eq i32 %6531, 0
  br i1 %6532, label %6586, label %6533

6533:                                             ; preds = %6521
  br label %6534

6534:                                             ; preds = %6533
  br label %6535

6535:                                             ; preds = %6534
  call void @llvm.lifetime.start.p0(i64 4, ptr %150) #13
  %6536 = call ptr @__errno_location() #14
  %6537 = load i32, ptr %6536, align 4, !tbaa !5
  store i32 %6537, ptr %150, align 4, !tbaa !5
  %6538 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6539 = call i32 @s2n_print_stacktrace(ptr noundef %6538)
  %6540 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6541 = trunc i8 %6540 to i1
  br i1 %6541, label %6542, label %6564

6542:                                             ; preds = %6535
  %6543 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6544 = call i32 @fileno(ptr noundef %6543) #13
  %6545 = call i32 @isatty(i32 noundef %6544) #13
  %6546 = icmp ne i32 %6545, 0
  br i1 %6546, label %6547, label %6564

6547:                                             ; preds = %6542
  %6548 = load i32, ptr %150, align 4, !tbaa !5
  %6549 = call ptr @__errno_location() #14
  store i32 %6548, ptr %6549, align 4, !tbaa !5
  %6550 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6551 = load i32, ptr @test_count, align 4, !tbaa !5
  %6552 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6553 = load i32, ptr %6552, align 4, !tbaa !5
  %6554 = call ptr @s2n_strerror(i32 noundef %6553, ptr noundef @.str.60)
  %6555 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6556 = load i32, ptr %6555, align 4, !tbaa !5
  %6557 = call ptr @s2n_strerror_debug(i32 noundef %6556, ptr noundef @.str.60)
  %6558 = call ptr @__errno_location() #14
  %6559 = load i32, ptr %6558, align 4, !tbaa !5
  %6560 = call ptr @strerror(i32 noundef %6559) #13
  %6561 = call ptr @__errno_location() #14
  %6562 = load i32, ptr %6561, align 4, !tbaa !5
  %6563 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6550, ptr noundef @.str.58, i32 noundef %6551, ptr noundef @.str.145, ptr noundef @.str.57, i32 noundef 245, ptr noundef %6554, ptr noundef %6557, ptr noundef %6560, i32 noundef %6562) #13
  br label %6581

6564:                                             ; preds = %6542, %6535
  %6565 = load i32, ptr %150, align 4, !tbaa !5
  %6566 = call ptr @__errno_location() #14
  store i32 %6565, ptr %6566, align 4, !tbaa !5
  %6567 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6568 = load i32, ptr @test_count, align 4, !tbaa !5
  %6569 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6570 = load i32, ptr %6569, align 4, !tbaa !5
  %6571 = call ptr @s2n_strerror(i32 noundef %6570, ptr noundef @.str.60)
  %6572 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6573 = load i32, ptr %6572, align 4, !tbaa !5
  %6574 = call ptr @s2n_strerror_debug(i32 noundef %6573, ptr noundef @.str.60)
  %6575 = call ptr @__errno_location() #14
  %6576 = load i32, ptr %6575, align 4, !tbaa !5
  %6577 = call ptr @strerror(i32 noundef %6576) #13
  %6578 = call ptr @__errno_location() #14
  %6579 = load i32, ptr %6578, align 4, !tbaa !5
  %6580 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6567, ptr noundef @.str.61, i32 noundef %6568, ptr noundef @.str.145, ptr noundef @.str.57, i32 noundef 245, ptr noundef %6571, ptr noundef %6574, ptr noundef %6577, i32 noundef %6579) #13
  br label %6581

6581:                                             ; preds = %6564, %6547
  call void @llvm.lifetime.end.p0(i64 4, ptr %150) #13
  br label %6582

6582:                                             ; preds = %6581
  br label %6583

6583:                                             ; preds = %6582
  call void @exit(i32 noundef 1) #15
  unreachable

6584:                                             ; No predecessors!
  br label %6585

6585:                                             ; preds = %6584
  br label %6586

6586:                                             ; preds = %6585, %6521
  br label %6587

6587:                                             ; preds = %6586
  br label %6588

6588:                                             ; preds = %6587
  br label %6589

6589:                                             ; preds = %6588, %6516
  br label %6590

6590:                                             ; preds = %6589
  br label %6591

6591:                                             ; preds = %6590
  br label %6592

6592:                                             ; preds = %6591
  br label %6593

6593:                                             ; preds = %6592
  br label %6594

6594:                                             ; preds = %6593
  %6595 = load i32, ptr @test_count, align 4, !tbaa !5
  %6596 = add nsw i32 %6595, 1
  store i32 %6596, ptr @test_count, align 4, !tbaa !5
  %6597 = load ptr, ptr %92, align 8, !tbaa !9
  %6598 = call i32 @s2n_conn_get_current_message_type(ptr noundef %6597)
  %6599 = icmp eq i32 %6598, 2
  br i1 %6599, label %6653, label %6600

6600:                                             ; preds = %6594
  br label %6601

6601:                                             ; preds = %6600
  br label %6602

6602:                                             ; preds = %6601
  call void @llvm.lifetime.start.p0(i64 4, ptr %151) #13
  %6603 = call ptr @__errno_location() #14
  %6604 = load i32, ptr %6603, align 4, !tbaa !5
  store i32 %6604, ptr %151, align 4, !tbaa !5
  %6605 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6606 = call i32 @s2n_print_stacktrace(ptr noundef %6605)
  %6607 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6608 = trunc i8 %6607 to i1
  br i1 %6608, label %6609, label %6631

6609:                                             ; preds = %6602
  %6610 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6611 = call i32 @fileno(ptr noundef %6610) #13
  %6612 = call i32 @isatty(i32 noundef %6611) #13
  %6613 = icmp ne i32 %6612, 0
  br i1 %6613, label %6614, label %6631

6614:                                             ; preds = %6609
  %6615 = load i32, ptr %151, align 4, !tbaa !5
  %6616 = call ptr @__errno_location() #14
  store i32 %6615, ptr %6616, align 4, !tbaa !5
  %6617 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6618 = load i32, ptr @test_count, align 4, !tbaa !5
  %6619 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6620 = load i32, ptr %6619, align 4, !tbaa !5
  %6621 = call ptr @s2n_strerror(i32 noundef %6620, ptr noundef @.str.60)
  %6622 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6623 = load i32, ptr %6622, align 4, !tbaa !5
  %6624 = call ptr @s2n_strerror_debug(i32 noundef %6623, ptr noundef @.str.60)
  %6625 = call ptr @__errno_location() #14
  %6626 = load i32, ptr %6625, align 4, !tbaa !5
  %6627 = call ptr @strerror(i32 noundef %6626) #13
  %6628 = call ptr @__errno_location() #14
  %6629 = load i32, ptr %6628, align 4, !tbaa !5
  %6630 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6617, ptr noundef @.str.58, i32 noundef %6618, ptr noundef @.str.146, ptr noundef @.str.57, i32 noundef 248, ptr noundef %6621, ptr noundef %6624, ptr noundef %6627, i32 noundef %6629) #13
  br label %6648

6631:                                             ; preds = %6609, %6602
  %6632 = load i32, ptr %151, align 4, !tbaa !5
  %6633 = call ptr @__errno_location() #14
  store i32 %6632, ptr %6633, align 4, !tbaa !5
  %6634 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6635 = load i32, ptr @test_count, align 4, !tbaa !5
  %6636 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6637 = load i32, ptr %6636, align 4, !tbaa !5
  %6638 = call ptr @s2n_strerror(i32 noundef %6637, ptr noundef @.str.60)
  %6639 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6640 = load i32, ptr %6639, align 4, !tbaa !5
  %6641 = call ptr @s2n_strerror_debug(i32 noundef %6640, ptr noundef @.str.60)
  %6642 = call ptr @__errno_location() #14
  %6643 = load i32, ptr %6642, align 4, !tbaa !5
  %6644 = call ptr @strerror(i32 noundef %6643) #13
  %6645 = call ptr @__errno_location() #14
  %6646 = load i32, ptr %6645, align 4, !tbaa !5
  %6647 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6634, ptr noundef @.str.61, i32 noundef %6635, ptr noundef @.str.146, ptr noundef @.str.57, i32 noundef 248, ptr noundef %6638, ptr noundef %6641, ptr noundef %6644, i32 noundef %6646) #13
  br label %6648

6648:                                             ; preds = %6631, %6614
  call void @llvm.lifetime.end.p0(i64 4, ptr %151) #13
  br label %6649

6649:                                             ; preds = %6648
  br label %6650

6650:                                             ; preds = %6649
  call void @exit(i32 noundef 1) #15
  unreachable

6651:                                             ; No predecessors!
  br label %6652

6652:                                             ; preds = %6651
  br label %6653

6653:                                             ; preds = %6652, %6594
  br label %6654

6654:                                             ; preds = %6653
  br label %6655

6655:                                             ; preds = %6654
  br label %6656

6656:                                             ; preds = %6655
  %6657 = load i32, ptr @test_count, align 4, !tbaa !5
  %6658 = add nsw i32 %6657, 1
  store i32 %6658, ptr @test_count, align 4, !tbaa !5
  %6659 = load ptr, ptr %92, align 8, !tbaa !9
  %6660 = call i32 @s2n_handshake_write_io(ptr noundef %6659)
  %6661 = icmp eq i32 %6660, -1
  br i1 %6661, label %6662, label %6715

6662:                                             ; preds = %6656
  br label %6663

6663:                                             ; preds = %6662
  br label %6664

6664:                                             ; preds = %6663
  call void @llvm.lifetime.start.p0(i64 4, ptr %152) #13
  %6665 = call ptr @__errno_location() #14
  %6666 = load i32, ptr %6665, align 4, !tbaa !5
  store i32 %6666, ptr %152, align 4, !tbaa !5
  %6667 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6668 = call i32 @s2n_print_stacktrace(ptr noundef %6667)
  %6669 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6670 = trunc i8 %6669 to i1
  br i1 %6670, label %6671, label %6693

6671:                                             ; preds = %6664
  %6672 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6673 = call i32 @fileno(ptr noundef %6672) #13
  %6674 = call i32 @isatty(i32 noundef %6673) #13
  %6675 = icmp ne i32 %6674, 0
  br i1 %6675, label %6676, label %6693

6676:                                             ; preds = %6671
  %6677 = load i32, ptr %152, align 4, !tbaa !5
  %6678 = call ptr @__errno_location() #14
  store i32 %6677, ptr %6678, align 4, !tbaa !5
  %6679 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6680 = load i32, ptr @test_count, align 4, !tbaa !5
  %6681 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6682 = load i32, ptr %6681, align 4, !tbaa !5
  %6683 = call ptr @s2n_strerror(i32 noundef %6682, ptr noundef @.str.60)
  %6684 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6685 = load i32, ptr %6684, align 4, !tbaa !5
  %6686 = call ptr @s2n_strerror_debug(i32 noundef %6685, ptr noundef @.str.60)
  %6687 = call ptr @__errno_location() #14
  %6688 = load i32, ptr %6687, align 4, !tbaa !5
  %6689 = call ptr @strerror(i32 noundef %6688) #13
  %6690 = call ptr @__errno_location() #14
  %6691 = load i32, ptr %6690, align 4, !tbaa !5
  %6692 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6679, ptr noundef @.str.58, i32 noundef %6680, ptr noundef @.str.139, ptr noundef @.str.57, i32 noundef 249, ptr noundef %6683, ptr noundef %6686, ptr noundef %6689, i32 noundef %6691) #13
  br label %6710

6693:                                             ; preds = %6671, %6664
  %6694 = load i32, ptr %152, align 4, !tbaa !5
  %6695 = call ptr @__errno_location() #14
  store i32 %6694, ptr %6695, align 4, !tbaa !5
  %6696 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6697 = load i32, ptr @test_count, align 4, !tbaa !5
  %6698 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6699 = load i32, ptr %6698, align 4, !tbaa !5
  %6700 = call ptr @s2n_strerror(i32 noundef %6699, ptr noundef @.str.60)
  %6701 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6702 = load i32, ptr %6701, align 4, !tbaa !5
  %6703 = call ptr @s2n_strerror_debug(i32 noundef %6702, ptr noundef @.str.60)
  %6704 = call ptr @__errno_location() #14
  %6705 = load i32, ptr %6704, align 4, !tbaa !5
  %6706 = call ptr @strerror(i32 noundef %6705) #13
  %6707 = call ptr @__errno_location() #14
  %6708 = load i32, ptr %6707, align 4, !tbaa !5
  %6709 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6696, ptr noundef @.str.61, i32 noundef %6697, ptr noundef @.str.139, ptr noundef @.str.57, i32 noundef 249, ptr noundef %6700, ptr noundef %6703, ptr noundef %6706, i32 noundef %6708) #13
  br label %6710

6710:                                             ; preds = %6693, %6676
  call void @llvm.lifetime.end.p0(i64 4, ptr %152) #13
  br label %6711

6711:                                             ; preds = %6710
  br label %6712

6712:                                             ; preds = %6711
  call void @exit(i32 noundef 1) #15
  unreachable

6713:                                             ; No predecessors!
  br label %6714

6714:                                             ; preds = %6713
  br label %6715

6715:                                             ; preds = %6714, %6656
  br label %6716

6716:                                             ; preds = %6715
  br label %6717

6717:                                             ; preds = %6716
  br label %6718

6718:                                             ; preds = %6717
  %6719 = load i32, ptr @test_count, align 4, !tbaa !5
  %6720 = add nsw i32 %6719, 1
  store i32 %6720, ptr @test_count, align 4, !tbaa !5
  %6721 = load ptr, ptr %92, align 8, !tbaa !9
  %6722 = call i32 @s2n_conn_get_current_message_type(ptr noundef %6721)
  %6723 = icmp eq i32 %6722, 17
  br i1 %6723, label %6777, label %6724

6724:                                             ; preds = %6718
  br label %6725

6725:                                             ; preds = %6724
  br label %6726

6726:                                             ; preds = %6725
  call void @llvm.lifetime.start.p0(i64 4, ptr %153) #13
  %6727 = call ptr @__errno_location() #14
  %6728 = load i32, ptr %6727, align 4, !tbaa !5
  store i32 %6728, ptr %153, align 4, !tbaa !5
  %6729 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6730 = call i32 @s2n_print_stacktrace(ptr noundef %6729)
  %6731 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6732 = trunc i8 %6731 to i1
  br i1 %6732, label %6733, label %6755

6733:                                             ; preds = %6726
  %6734 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6735 = call i32 @fileno(ptr noundef %6734) #13
  %6736 = call i32 @isatty(i32 noundef %6735) #13
  %6737 = icmp ne i32 %6736, 0
  br i1 %6737, label %6738, label %6755

6738:                                             ; preds = %6733
  %6739 = load i32, ptr %153, align 4, !tbaa !5
  %6740 = call ptr @__errno_location() #14
  store i32 %6739, ptr %6740, align 4, !tbaa !5
  %6741 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6742 = load i32, ptr @test_count, align 4, !tbaa !5
  %6743 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6744 = load i32, ptr %6743, align 4, !tbaa !5
  %6745 = call ptr @s2n_strerror(i32 noundef %6744, ptr noundef @.str.60)
  %6746 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6747 = load i32, ptr %6746, align 4, !tbaa !5
  %6748 = call ptr @s2n_strerror_debug(i32 noundef %6747, ptr noundef @.str.60)
  %6749 = call ptr @__errno_location() #14
  %6750 = load i32, ptr %6749, align 4, !tbaa !5
  %6751 = call ptr @strerror(i32 noundef %6750) #13
  %6752 = call ptr @__errno_location() #14
  %6753 = load i32, ptr %6752, align 4, !tbaa !5
  %6754 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6741, ptr noundef @.str.58, i32 noundef %6742, ptr noundef @.str.147, ptr noundef @.str.57, i32 noundef 252, ptr noundef %6745, ptr noundef %6748, ptr noundef %6751, i32 noundef %6753) #13
  br label %6772

6755:                                             ; preds = %6733, %6726
  %6756 = load i32, ptr %153, align 4, !tbaa !5
  %6757 = call ptr @__errno_location() #14
  store i32 %6756, ptr %6757, align 4, !tbaa !5
  %6758 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6759 = load i32, ptr @test_count, align 4, !tbaa !5
  %6760 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6761 = load i32, ptr %6760, align 4, !tbaa !5
  %6762 = call ptr @s2n_strerror(i32 noundef %6761, ptr noundef @.str.60)
  %6763 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6764 = load i32, ptr %6763, align 4, !tbaa !5
  %6765 = call ptr @s2n_strerror_debug(i32 noundef %6764, ptr noundef @.str.60)
  %6766 = call ptr @__errno_location() #14
  %6767 = load i32, ptr %6766, align 4, !tbaa !5
  %6768 = call ptr @strerror(i32 noundef %6767) #13
  %6769 = call ptr @__errno_location() #14
  %6770 = load i32, ptr %6769, align 4, !tbaa !5
  %6771 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6758, ptr noundef @.str.61, i32 noundef %6759, ptr noundef @.str.147, ptr noundef @.str.57, i32 noundef 252, ptr noundef %6762, ptr noundef %6765, ptr noundef %6768, i32 noundef %6770) #13
  br label %6772

6772:                                             ; preds = %6755, %6738
  call void @llvm.lifetime.end.p0(i64 4, ptr %153) #13
  br label %6773

6773:                                             ; preds = %6772
  br label %6774

6774:                                             ; preds = %6773
  call void @exit(i32 noundef 1) #15
  unreachable

6775:                                             ; No predecessors!
  br label %6776

6776:                                             ; preds = %6775
  br label %6777

6777:                                             ; preds = %6776, %6718
  br label %6778

6778:                                             ; preds = %6777
  br label %6779

6779:                                             ; preds = %6778
  br label %6780

6780:                                             ; preds = %6779
  %6781 = load i32, ptr @test_count, align 4, !tbaa !5
  %6782 = add nsw i32 %6781, 1
  store i32 %6782, ptr @test_count, align 4, !tbaa !5
  %6783 = load ptr, ptr %92, align 8, !tbaa !9
  %6784 = call i32 @s2n_handshake_write_io(ptr noundef %6783)
  %6785 = icmp eq i32 %6784, -1
  br i1 %6785, label %6786, label %6839

6786:                                             ; preds = %6780
  br label %6787

6787:                                             ; preds = %6786
  br label %6788

6788:                                             ; preds = %6787
  call void @llvm.lifetime.start.p0(i64 4, ptr %154) #13
  %6789 = call ptr @__errno_location() #14
  %6790 = load i32, ptr %6789, align 4, !tbaa !5
  store i32 %6790, ptr %154, align 4, !tbaa !5
  %6791 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6792 = call i32 @s2n_print_stacktrace(ptr noundef %6791)
  %6793 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6794 = trunc i8 %6793 to i1
  br i1 %6794, label %6795, label %6817

6795:                                             ; preds = %6788
  %6796 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6797 = call i32 @fileno(ptr noundef %6796) #13
  %6798 = call i32 @isatty(i32 noundef %6797) #13
  %6799 = icmp ne i32 %6798, 0
  br i1 %6799, label %6800, label %6817

6800:                                             ; preds = %6795
  %6801 = load i32, ptr %154, align 4, !tbaa !5
  %6802 = call ptr @__errno_location() #14
  store i32 %6801, ptr %6802, align 4, !tbaa !5
  %6803 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6804 = load i32, ptr @test_count, align 4, !tbaa !5
  %6805 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6806 = load i32, ptr %6805, align 4, !tbaa !5
  %6807 = call ptr @s2n_strerror(i32 noundef %6806, ptr noundef @.str.60)
  %6808 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6809 = load i32, ptr %6808, align 4, !tbaa !5
  %6810 = call ptr @s2n_strerror_debug(i32 noundef %6809, ptr noundef @.str.60)
  %6811 = call ptr @__errno_location() #14
  %6812 = load i32, ptr %6811, align 4, !tbaa !5
  %6813 = call ptr @strerror(i32 noundef %6812) #13
  %6814 = call ptr @__errno_location() #14
  %6815 = load i32, ptr %6814, align 4, !tbaa !5
  %6816 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6803, ptr noundef @.str.58, i32 noundef %6804, ptr noundef @.str.139, ptr noundef @.str.57, i32 noundef 253, ptr noundef %6807, ptr noundef %6810, ptr noundef %6813, i32 noundef %6815) #13
  br label %6834

6817:                                             ; preds = %6795, %6788
  %6818 = load i32, ptr %154, align 4, !tbaa !5
  %6819 = call ptr @__errno_location() #14
  store i32 %6818, ptr %6819, align 4, !tbaa !5
  %6820 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6821 = load i32, ptr @test_count, align 4, !tbaa !5
  %6822 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6823 = load i32, ptr %6822, align 4, !tbaa !5
  %6824 = call ptr @s2n_strerror(i32 noundef %6823, ptr noundef @.str.60)
  %6825 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6826 = load i32, ptr %6825, align 4, !tbaa !5
  %6827 = call ptr @s2n_strerror_debug(i32 noundef %6826, ptr noundef @.str.60)
  %6828 = call ptr @__errno_location() #14
  %6829 = load i32, ptr %6828, align 4, !tbaa !5
  %6830 = call ptr @strerror(i32 noundef %6829) #13
  %6831 = call ptr @__errno_location() #14
  %6832 = load i32, ptr %6831, align 4, !tbaa !5
  %6833 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6820, ptr noundef @.str.61, i32 noundef %6821, ptr noundef @.str.139, ptr noundef @.str.57, i32 noundef 253, ptr noundef %6824, ptr noundef %6827, ptr noundef %6830, i32 noundef %6832) #13
  br label %6834

6834:                                             ; preds = %6817, %6800
  call void @llvm.lifetime.end.p0(i64 4, ptr %154) #13
  br label %6835

6835:                                             ; preds = %6834
  br label %6836

6836:                                             ; preds = %6835
  call void @exit(i32 noundef 1) #15
  unreachable

6837:                                             ; No predecessors!
  br label %6838

6838:                                             ; preds = %6837
  br label %6839

6839:                                             ; preds = %6838, %6780
  br label %6840

6840:                                             ; preds = %6839
  br label %6841

6841:                                             ; preds = %6840
  br label %6842

6842:                                             ; preds = %6841
  %6843 = load i32, ptr @test_count, align 4, !tbaa !5
  %6844 = add nsw i32 %6843, 1
  store i32 %6844, ptr @test_count, align 4, !tbaa !5
  %6845 = load ptr, ptr %91, align 8, !tbaa !9
  %6846 = call i32 @s2n_conn_get_current_message_type(ptr noundef %6845)
  %6847 = icmp eq i32 %6846, 1
  br i1 %6847, label %6901, label %6848

6848:                                             ; preds = %6842
  br label %6849

6849:                                             ; preds = %6848
  br label %6850

6850:                                             ; preds = %6849
  call void @llvm.lifetime.start.p0(i64 4, ptr %155) #13
  %6851 = call ptr @__errno_location() #14
  %6852 = load i32, ptr %6851, align 4, !tbaa !5
  store i32 %6852, ptr %155, align 4, !tbaa !5
  %6853 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6854 = call i32 @s2n_print_stacktrace(ptr noundef %6853)
  %6855 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6856 = trunc i8 %6855 to i1
  br i1 %6856, label %6857, label %6879

6857:                                             ; preds = %6850
  %6858 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6859 = call i32 @fileno(ptr noundef %6858) #13
  %6860 = call i32 @isatty(i32 noundef %6859) #13
  %6861 = icmp ne i32 %6860, 0
  br i1 %6861, label %6862, label %6879

6862:                                             ; preds = %6857
  %6863 = load i32, ptr %155, align 4, !tbaa !5
  %6864 = call ptr @__errno_location() #14
  store i32 %6863, ptr %6864, align 4, !tbaa !5
  %6865 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6866 = load i32, ptr @test_count, align 4, !tbaa !5
  %6867 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6868 = load i32, ptr %6867, align 4, !tbaa !5
  %6869 = call ptr @s2n_strerror(i32 noundef %6868, ptr noundef @.str.60)
  %6870 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6871 = load i32, ptr %6870, align 4, !tbaa !5
  %6872 = call ptr @s2n_strerror_debug(i32 noundef %6871, ptr noundef @.str.60)
  %6873 = call ptr @__errno_location() #14
  %6874 = load i32, ptr %6873, align 4, !tbaa !5
  %6875 = call ptr @strerror(i32 noundef %6874) #13
  %6876 = call ptr @__errno_location() #14
  %6877 = load i32, ptr %6876, align 4, !tbaa !5
  %6878 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6865, ptr noundef @.str.58, i32 noundef %6866, ptr noundef @.str.148, ptr noundef @.str.57, i32 noundef 256, ptr noundef %6869, ptr noundef %6872, ptr noundef %6875, i32 noundef %6877) #13
  br label %6896

6879:                                             ; preds = %6857, %6850
  %6880 = load i32, ptr %155, align 4, !tbaa !5
  %6881 = call ptr @__errno_location() #14
  store i32 %6880, ptr %6881, align 4, !tbaa !5
  %6882 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6883 = load i32, ptr @test_count, align 4, !tbaa !5
  %6884 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6885 = load i32, ptr %6884, align 4, !tbaa !5
  %6886 = call ptr @s2n_strerror(i32 noundef %6885, ptr noundef @.str.60)
  %6887 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6888 = load i32, ptr %6887, align 4, !tbaa !5
  %6889 = call ptr @s2n_strerror_debug(i32 noundef %6888, ptr noundef @.str.60)
  %6890 = call ptr @__errno_location() #14
  %6891 = load i32, ptr %6890, align 4, !tbaa !5
  %6892 = call ptr @strerror(i32 noundef %6891) #13
  %6893 = call ptr @__errno_location() #14
  %6894 = load i32, ptr %6893, align 4, !tbaa !5
  %6895 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6882, ptr noundef @.str.61, i32 noundef %6883, ptr noundef @.str.148, ptr noundef @.str.57, i32 noundef 256, ptr noundef %6886, ptr noundef %6889, ptr noundef %6892, i32 noundef %6894) #13
  br label %6896

6896:                                             ; preds = %6879, %6862
  call void @llvm.lifetime.end.p0(i64 4, ptr %155) #13
  br label %6897

6897:                                             ; preds = %6896
  br label %6898

6898:                                             ; preds = %6897
  call void @exit(i32 noundef 1) #15
  unreachable

6899:                                             ; No predecessors!
  br label %6900

6900:                                             ; preds = %6899
  br label %6901

6901:                                             ; preds = %6900, %6842
  br label %6902

6902:                                             ; preds = %6901
  br label %6903

6903:                                             ; preds = %6902
  br label %6904

6904:                                             ; preds = %6903
  %6905 = load i32, ptr @test_count, align 4, !tbaa !5
  %6906 = add nsw i32 %6905, 1
  store i32 %6906, ptr @test_count, align 4, !tbaa !5
  %6907 = load ptr, ptr %91, align 8, !tbaa !9
  %6908 = call i32 @s2n_handshake_read_io(ptr noundef %6907)
  %6909 = icmp eq i32 %6908, -1
  br i1 %6909, label %6910, label %6963

6910:                                             ; preds = %6904
  br label %6911

6911:                                             ; preds = %6910
  br label %6912

6912:                                             ; preds = %6911
  call void @llvm.lifetime.start.p0(i64 4, ptr %156) #13
  %6913 = call ptr @__errno_location() #14
  %6914 = load i32, ptr %6913, align 4, !tbaa !5
  store i32 %6914, ptr %156, align 4, !tbaa !5
  %6915 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6916 = call i32 @s2n_print_stacktrace(ptr noundef %6915)
  %6917 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6918 = trunc i8 %6917 to i1
  br i1 %6918, label %6919, label %6941

6919:                                             ; preds = %6912
  %6920 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6921 = call i32 @fileno(ptr noundef %6920) #13
  %6922 = call i32 @isatty(i32 noundef %6921) #13
  %6923 = icmp ne i32 %6922, 0
  br i1 %6923, label %6924, label %6941

6924:                                             ; preds = %6919
  %6925 = load i32, ptr %156, align 4, !tbaa !5
  %6926 = call ptr @__errno_location() #14
  store i32 %6925, ptr %6926, align 4, !tbaa !5
  %6927 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6928 = load i32, ptr @test_count, align 4, !tbaa !5
  %6929 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6930 = load i32, ptr %6929, align 4, !tbaa !5
  %6931 = call ptr @s2n_strerror(i32 noundef %6930, ptr noundef @.str.60)
  %6932 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6933 = load i32, ptr %6932, align 4, !tbaa !5
  %6934 = call ptr @s2n_strerror_debug(i32 noundef %6933, ptr noundef @.str.60)
  %6935 = call ptr @__errno_location() #14
  %6936 = load i32, ptr %6935, align 4, !tbaa !5
  %6937 = call ptr @strerror(i32 noundef %6936) #13
  %6938 = call ptr @__errno_location() #14
  %6939 = load i32, ptr %6938, align 4, !tbaa !5
  %6940 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6927, ptr noundef @.str.58, i32 noundef %6928, ptr noundef @.str.149, ptr noundef @.str.57, i32 noundef 257, ptr noundef %6931, ptr noundef %6934, ptr noundef %6937, i32 noundef %6939) #13
  br label %6958

6941:                                             ; preds = %6919, %6912
  %6942 = load i32, ptr %156, align 4, !tbaa !5
  %6943 = call ptr @__errno_location() #14
  store i32 %6942, ptr %6943, align 4, !tbaa !5
  %6944 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6945 = load i32, ptr @test_count, align 4, !tbaa !5
  %6946 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6947 = load i32, ptr %6946, align 4, !tbaa !5
  %6948 = call ptr @s2n_strerror(i32 noundef %6947, ptr noundef @.str.60)
  %6949 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6950 = load i32, ptr %6949, align 4, !tbaa !5
  %6951 = call ptr @s2n_strerror_debug(i32 noundef %6950, ptr noundef @.str.60)
  %6952 = call ptr @__errno_location() #14
  %6953 = load i32, ptr %6952, align 4, !tbaa !5
  %6954 = call ptr @strerror(i32 noundef %6953) #13
  %6955 = call ptr @__errno_location() #14
  %6956 = load i32, ptr %6955, align 4, !tbaa !5
  %6957 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6944, ptr noundef @.str.61, i32 noundef %6945, ptr noundef @.str.149, ptr noundef @.str.57, i32 noundef 257, ptr noundef %6948, ptr noundef %6951, ptr noundef %6954, i32 noundef %6956) #13
  br label %6958

6958:                                             ; preds = %6941, %6924
  call void @llvm.lifetime.end.p0(i64 4, ptr %156) #13
  br label %6959

6959:                                             ; preds = %6958
  br label %6960

6960:                                             ; preds = %6959
  call void @exit(i32 noundef 1) #15
  unreachable

6961:                                             ; No predecessors!
  br label %6962

6962:                                             ; preds = %6961
  br label %6963

6963:                                             ; preds = %6962, %6904
  br label %6964

6964:                                             ; preds = %6963
  br label %6965

6965:                                             ; preds = %6964
  br label %6966

6966:                                             ; preds = %6965
  %6967 = load i32, ptr @test_count, align 4, !tbaa !5
  %6968 = add nsw i32 %6967, 1
  store i32 %6968, ptr @test_count, align 4, !tbaa !5
  %6969 = load ptr, ptr %91, align 8, !tbaa !9
  %6970 = call i32 @s2n_conn_get_current_message_type(ptr noundef %6969)
  %6971 = icmp eq i32 %6970, 16
  br i1 %6971, label %7025, label %6972

6972:                                             ; preds = %6966
  br label %6973

6973:                                             ; preds = %6972
  br label %6974

6974:                                             ; preds = %6973
  call void @llvm.lifetime.start.p0(i64 4, ptr %157) #13
  %6975 = call ptr @__errno_location() #14
  %6976 = load i32, ptr %6975, align 4, !tbaa !5
  store i32 %6976, ptr %157, align 4, !tbaa !5
  %6977 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6978 = call i32 @s2n_print_stacktrace(ptr noundef %6977)
  %6979 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6980 = trunc i8 %6979 to i1
  br i1 %6980, label %6981, label %7003

6981:                                             ; preds = %6974
  %6982 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6983 = call i32 @fileno(ptr noundef %6982) #13
  %6984 = call i32 @isatty(i32 noundef %6983) #13
  %6985 = icmp ne i32 %6984, 0
  br i1 %6985, label %6986, label %7003

6986:                                             ; preds = %6981
  %6987 = load i32, ptr %157, align 4, !tbaa !5
  %6988 = call ptr @__errno_location() #14
  store i32 %6987, ptr %6988, align 4, !tbaa !5
  %6989 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6990 = load i32, ptr @test_count, align 4, !tbaa !5
  %6991 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6992 = load i32, ptr %6991, align 4, !tbaa !5
  %6993 = call ptr @s2n_strerror(i32 noundef %6992, ptr noundef @.str.60)
  %6994 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6995 = load i32, ptr %6994, align 4, !tbaa !5
  %6996 = call ptr @s2n_strerror_debug(i32 noundef %6995, ptr noundef @.str.60)
  %6997 = call ptr @__errno_location() #14
  %6998 = load i32, ptr %6997, align 4, !tbaa !5
  %6999 = call ptr @strerror(i32 noundef %6998) #13
  %7000 = call ptr @__errno_location() #14
  %7001 = load i32, ptr %7000, align 4, !tbaa !5
  %7002 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6989, ptr noundef @.str.58, i32 noundef %6990, ptr noundef @.str.150, ptr noundef @.str.57, i32 noundef 261, ptr noundef %6993, ptr noundef %6996, ptr noundef %6999, i32 noundef %7001) #13
  br label %7020

7003:                                             ; preds = %6981, %6974
  %7004 = load i32, ptr %157, align 4, !tbaa !5
  %7005 = call ptr @__errno_location() #14
  store i32 %7004, ptr %7005, align 4, !tbaa !5
  %7006 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7007 = load i32, ptr @test_count, align 4, !tbaa !5
  %7008 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7009 = load i32, ptr %7008, align 4, !tbaa !5
  %7010 = call ptr @s2n_strerror(i32 noundef %7009, ptr noundef @.str.60)
  %7011 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7012 = load i32, ptr %7011, align 4, !tbaa !5
  %7013 = call ptr @s2n_strerror_debug(i32 noundef %7012, ptr noundef @.str.60)
  %7014 = call ptr @__errno_location() #14
  %7015 = load i32, ptr %7014, align 4, !tbaa !5
  %7016 = call ptr @strerror(i32 noundef %7015) #13
  %7017 = call ptr @__errno_location() #14
  %7018 = load i32, ptr %7017, align 4, !tbaa !5
  %7019 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7006, ptr noundef @.str.61, i32 noundef %7007, ptr noundef @.str.150, ptr noundef @.str.57, i32 noundef 261, ptr noundef %7010, ptr noundef %7013, ptr noundef %7016, i32 noundef %7018) #13
  br label %7020

7020:                                             ; preds = %7003, %6986
  call void @llvm.lifetime.end.p0(i64 4, ptr %157) #13
  br label %7021

7021:                                             ; preds = %7020
  br label %7022

7022:                                             ; preds = %7021
  call void @exit(i32 noundef 1) #15
  unreachable

7023:                                             ; No predecessors!
  br label %7024

7024:                                             ; preds = %7023
  br label %7025

7025:                                             ; preds = %7024, %6966
  br label %7026

7026:                                             ; preds = %7025
  br label %7027

7027:                                             ; preds = %7026
  br label %7028

7028:                                             ; preds = %7027
  %7029 = load i32, ptr @test_count, align 4, !tbaa !5
  %7030 = add nsw i32 %7029, 1
  store i32 %7030, ptr @test_count, align 4, !tbaa !5
  %7031 = load ptr, ptr %91, align 8, !tbaa !9
  %7032 = call i32 @s2n_handshake_read_io(ptr noundef %7031)
  %7033 = icmp eq i32 %7032, -1
  br i1 %7033, label %7034, label %7087

7034:                                             ; preds = %7028
  br label %7035

7035:                                             ; preds = %7034
  br label %7036

7036:                                             ; preds = %7035
  call void @llvm.lifetime.start.p0(i64 4, ptr %158) #13
  %7037 = call ptr @__errno_location() #14
  %7038 = load i32, ptr %7037, align 4, !tbaa !5
  store i32 %7038, ptr %158, align 4, !tbaa !5
  %7039 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7040 = call i32 @s2n_print_stacktrace(ptr noundef %7039)
  %7041 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7042 = trunc i8 %7041 to i1
  br i1 %7042, label %7043, label %7065

7043:                                             ; preds = %7036
  %7044 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7045 = call i32 @fileno(ptr noundef %7044) #13
  %7046 = call i32 @isatty(i32 noundef %7045) #13
  %7047 = icmp ne i32 %7046, 0
  br i1 %7047, label %7048, label %7065

7048:                                             ; preds = %7043
  %7049 = load i32, ptr %158, align 4, !tbaa !5
  %7050 = call ptr @__errno_location() #14
  store i32 %7049, ptr %7050, align 4, !tbaa !5
  %7051 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7052 = load i32, ptr @test_count, align 4, !tbaa !5
  %7053 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7054 = load i32, ptr %7053, align 4, !tbaa !5
  %7055 = call ptr @s2n_strerror(i32 noundef %7054, ptr noundef @.str.60)
  %7056 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7057 = load i32, ptr %7056, align 4, !tbaa !5
  %7058 = call ptr @s2n_strerror_debug(i32 noundef %7057, ptr noundef @.str.60)
  %7059 = call ptr @__errno_location() #14
  %7060 = load i32, ptr %7059, align 4, !tbaa !5
  %7061 = call ptr @strerror(i32 noundef %7060) #13
  %7062 = call ptr @__errno_location() #14
  %7063 = load i32, ptr %7062, align 4, !tbaa !5
  %7064 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7051, ptr noundef @.str.58, i32 noundef %7052, ptr noundef @.str.149, ptr noundef @.str.57, i32 noundef 262, ptr noundef %7055, ptr noundef %7058, ptr noundef %7061, i32 noundef %7063) #13
  br label %7082

7065:                                             ; preds = %7043, %7036
  %7066 = load i32, ptr %158, align 4, !tbaa !5
  %7067 = call ptr @__errno_location() #14
  store i32 %7066, ptr %7067, align 4, !tbaa !5
  %7068 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7069 = load i32, ptr @test_count, align 4, !tbaa !5
  %7070 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7071 = load i32, ptr %7070, align 4, !tbaa !5
  %7072 = call ptr @s2n_strerror(i32 noundef %7071, ptr noundef @.str.60)
  %7073 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7074 = load i32, ptr %7073, align 4, !tbaa !5
  %7075 = call ptr @s2n_strerror_debug(i32 noundef %7074, ptr noundef @.str.60)
  %7076 = call ptr @__errno_location() #14
  %7077 = load i32, ptr %7076, align 4, !tbaa !5
  %7078 = call ptr @strerror(i32 noundef %7077) #13
  %7079 = call ptr @__errno_location() #14
  %7080 = load i32, ptr %7079, align 4, !tbaa !5
  %7081 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7068, ptr noundef @.str.61, i32 noundef %7069, ptr noundef @.str.149, ptr noundef @.str.57, i32 noundef 262, ptr noundef %7072, ptr noundef %7075, ptr noundef %7078, i32 noundef %7080) #13
  br label %7082

7082:                                             ; preds = %7065, %7048
  call void @llvm.lifetime.end.p0(i64 4, ptr %158) #13
  br label %7083

7083:                                             ; preds = %7082
  br label %7084

7084:                                             ; preds = %7083
  call void @exit(i32 noundef 1) #15
  unreachable

7085:                                             ; No predecessors!
  br label %7086

7086:                                             ; preds = %7085
  br label %7087

7087:                                             ; preds = %7086, %7028
  br label %7088

7088:                                             ; preds = %7087
  br label %7089

7089:                                             ; preds = %7088
  call void @llvm.lifetime.start.p0(i64 592, ptr %159) #13
  call void @llvm.memset.p0.i64(ptr align 8 %159, i8 0, i64 592, i1 false)
  br label %7090

7090:                                             ; preds = %7089
  %7091 = load ptr, ptr %91, align 8, !tbaa !9
  %7092 = call i32 @s2n_tls13_keys_from_conn(ptr noundef %159, ptr noundef %7091)
  %7093 = icmp sgt i32 %7092, -1
  br i1 %7093, label %7095, label %7094

7094:                                             ; preds = %7090
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %56, align 4
  br label %9431

7095:                                             ; preds = %7090
  br label %7096

7096:                                             ; preds = %7095
  br label %7097

7097:                                             ; preds = %7096
  br label %7098

7098:                                             ; preds = %7097
  %7099 = load i32, ptr @test_count, align 4, !tbaa !5
  %7100 = add nsw i32 %7099, 1
  store i32 %7100, ptr @test_count, align 4, !tbaa !5
  %7101 = getelementptr inbounds %struct.s2n_tls13_keys, ptr %159, i32 0, i32 2
  %7102 = load i8, ptr %7101, align 8, !tbaa !76
  %7103 = zext i8 %7102 to i32
  %7104 = icmp eq i32 %7103, 32
  br i1 %7104, label %7158, label %7105

7105:                                             ; preds = %7098
  br label %7106

7106:                                             ; preds = %7105
  br label %7107

7107:                                             ; preds = %7106
  call void @llvm.lifetime.start.p0(i64 4, ptr %160) #13
  %7108 = call ptr @__errno_location() #14
  %7109 = load i32, ptr %7108, align 4, !tbaa !5
  store i32 %7109, ptr %160, align 4, !tbaa !5
  %7110 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7111 = call i32 @s2n_print_stacktrace(ptr noundef %7110)
  %7112 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7113 = trunc i8 %7112 to i1
  br i1 %7113, label %7114, label %7136

7114:                                             ; preds = %7107
  %7115 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7116 = call i32 @fileno(ptr noundef %7115) #13
  %7117 = call i32 @isatty(i32 noundef %7116) #13
  %7118 = icmp ne i32 %7117, 0
  br i1 %7118, label %7119, label %7136

7119:                                             ; preds = %7114
  %7120 = load i32, ptr %160, align 4, !tbaa !5
  %7121 = call ptr @__errno_location() #14
  store i32 %7120, ptr %7121, align 4, !tbaa !5
  %7122 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7123 = load i32, ptr @test_count, align 4, !tbaa !5
  %7124 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7125 = load i32, ptr %7124, align 4, !tbaa !5
  %7126 = call ptr @s2n_strerror(i32 noundef %7125, ptr noundef @.str.60)
  %7127 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7128 = load i32, ptr %7127, align 4, !tbaa !5
  %7129 = call ptr @s2n_strerror_debug(i32 noundef %7128, ptr noundef @.str.60)
  %7130 = call ptr @__errno_location() #14
  %7131 = load i32, ptr %7130, align 4, !tbaa !5
  %7132 = call ptr @strerror(i32 noundef %7131) #13
  %7133 = call ptr @__errno_location() #14
  %7134 = load i32, ptr %7133, align 4, !tbaa !5
  %7135 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7122, ptr noundef @.str.58, i32 noundef %7123, ptr noundef @.str.151, ptr noundef @.str.57, i32 noundef 265, ptr noundef %7126, ptr noundef %7129, ptr noundef %7132, i32 noundef %7134) #13
  br label %7153

7136:                                             ; preds = %7114, %7107
  %7137 = load i32, ptr %160, align 4, !tbaa !5
  %7138 = call ptr @__errno_location() #14
  store i32 %7137, ptr %7138, align 4, !tbaa !5
  %7139 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7140 = load i32, ptr @test_count, align 4, !tbaa !5
  %7141 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7142 = load i32, ptr %7141, align 4, !tbaa !5
  %7143 = call ptr @s2n_strerror(i32 noundef %7142, ptr noundef @.str.60)
  %7144 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7145 = load i32, ptr %7144, align 4, !tbaa !5
  %7146 = call ptr @s2n_strerror_debug(i32 noundef %7145, ptr noundef @.str.60)
  %7147 = call ptr @__errno_location() #14
  %7148 = load i32, ptr %7147, align 4, !tbaa !5
  %7149 = call ptr @strerror(i32 noundef %7148) #13
  %7150 = call ptr @__errno_location() #14
  %7151 = load i32, ptr %7150, align 4, !tbaa !5
  %7152 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7139, ptr noundef @.str.61, i32 noundef %7140, ptr noundef @.str.151, ptr noundef @.str.57, i32 noundef 265, ptr noundef %7143, ptr noundef %7146, ptr noundef %7149, i32 noundef %7151) #13
  br label %7153

7153:                                             ; preds = %7136, %7119
  call void @llvm.lifetime.end.p0(i64 4, ptr %160) #13
  br label %7154

7154:                                             ; preds = %7153
  br label %7155

7155:                                             ; preds = %7154
  call void @exit(i32 noundef 1) #15
  unreachable

7156:                                             ; No predecessors!
  br label %7157

7157:                                             ; preds = %7156
  br label %7158

7158:                                             ; preds = %7157, %7098
  br label %7159

7159:                                             ; preds = %7158
  br label %7160

7160:                                             ; preds = %7159
  br label %7161

7161:                                             ; preds = %7160
  br label %7162

7162:                                             ; preds = %7161
  %7163 = load i32, ptr @test_count, align 4, !tbaa !5
  %7164 = add nsw i32 %7163, 1
  store i32 %7164, ptr @test_count, align 4, !tbaa !5
  %7165 = getelementptr inbounds %struct.s2n_tls13_keys, ptr %138, i32 0, i32 4
  %7166 = getelementptr inbounds %struct.s2n_blob, ptr %7165, i32 0, i32 1
  %7167 = load i32, ptr %7166, align 8, !tbaa !79
  %7168 = getelementptr inbounds %struct.s2n_tls13_keys, ptr %159, i32 0, i32 4
  %7169 = getelementptr inbounds %struct.s2n_blob, ptr %7168, i32 0, i32 1
  %7170 = load i32, ptr %7169, align 8, !tbaa !79
  %7171 = icmp eq i32 %7167, %7170
  br i1 %7171, label %7225, label %7172

7172:                                             ; preds = %7162
  br label %7173

7173:                                             ; preds = %7172
  br label %7174

7174:                                             ; preds = %7173
  call void @llvm.lifetime.start.p0(i64 4, ptr %161) #13
  %7175 = call ptr @__errno_location() #14
  %7176 = load i32, ptr %7175, align 4, !tbaa !5
  store i32 %7176, ptr %161, align 4, !tbaa !5
  %7177 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7178 = call i32 @s2n_print_stacktrace(ptr noundef %7177)
  %7179 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7180 = trunc i8 %7179 to i1
  br i1 %7180, label %7181, label %7203

7181:                                             ; preds = %7174
  %7182 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7183 = call i32 @fileno(ptr noundef %7182) #13
  %7184 = call i32 @isatty(i32 noundef %7183) #13
  %7185 = icmp ne i32 %7184, 0
  br i1 %7185, label %7186, label %7203

7186:                                             ; preds = %7181
  %7187 = load i32, ptr %161, align 4, !tbaa !5
  %7188 = call ptr @__errno_location() #14
  store i32 %7187, ptr %7188, align 4, !tbaa !5
  %7189 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7190 = load i32, ptr @test_count, align 4, !tbaa !5
  %7191 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7192 = load i32, ptr %7191, align 4, !tbaa !5
  %7193 = call ptr @s2n_strerror(i32 noundef %7192, ptr noundef @.str.60)
  %7194 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7195 = load i32, ptr %7194, align 4, !tbaa !5
  %7196 = call ptr @s2n_strerror_debug(i32 noundef %7195, ptr noundef @.str.60)
  %7197 = call ptr @__errno_location() #14
  %7198 = load i32, ptr %7197, align 4, !tbaa !5
  %7199 = call ptr @strerror(i32 noundef %7198) #13
  %7200 = call ptr @__errno_location() #14
  %7201 = load i32, ptr %7200, align 4, !tbaa !5
  %7202 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7189, ptr noundef @.str.58, i32 noundef %7190, ptr noundef @.str.152, ptr noundef @.str.57, i32 noundef 268, ptr noundef %7193, ptr noundef %7196, ptr noundef %7199, i32 noundef %7201) #13
  br label %7220

7203:                                             ; preds = %7181, %7174
  %7204 = load i32, ptr %161, align 4, !tbaa !5
  %7205 = call ptr @__errno_location() #14
  store i32 %7204, ptr %7205, align 4, !tbaa !5
  %7206 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7207 = load i32, ptr @test_count, align 4, !tbaa !5
  %7208 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7209 = load i32, ptr %7208, align 4, !tbaa !5
  %7210 = call ptr @s2n_strerror(i32 noundef %7209, ptr noundef @.str.60)
  %7211 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7212 = load i32, ptr %7211, align 4, !tbaa !5
  %7213 = call ptr @s2n_strerror_debug(i32 noundef %7212, ptr noundef @.str.60)
  %7214 = call ptr @__errno_location() #14
  %7215 = load i32, ptr %7214, align 4, !tbaa !5
  %7216 = call ptr @strerror(i32 noundef %7215) #13
  %7217 = call ptr @__errno_location() #14
  %7218 = load i32, ptr %7217, align 4, !tbaa !5
  %7219 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7206, ptr noundef @.str.61, i32 noundef %7207, ptr noundef @.str.152, ptr noundef @.str.57, i32 noundef 268, ptr noundef %7210, ptr noundef %7213, ptr noundef %7216, i32 noundef %7218) #13
  br label %7220

7220:                                             ; preds = %7203, %7186
  call void @llvm.lifetime.end.p0(i64 4, ptr %161) #13
  br label %7221

7221:                                             ; preds = %7220
  br label %7222

7222:                                             ; preds = %7221
  call void @exit(i32 noundef 1) #15
  unreachable

7223:                                             ; No predecessors!
  br label %7224

7224:                                             ; preds = %7223
  br label %7225

7225:                                             ; preds = %7224, %7162
  br label %7226

7226:                                             ; preds = %7225
  br label %7227

7227:                                             ; preds = %7226
  br label %7228

7228:                                             ; preds = %7227
  %7229 = getelementptr inbounds %struct.s2n_tls13_keys, ptr %138, i32 0, i32 4
  %7230 = getelementptr inbounds %struct.s2n_blob, ptr %7229, i32 0, i32 1
  %7231 = load i32, ptr %7230, align 8, !tbaa !79
  %7232 = icmp ne i32 %7231, 0
  br i1 %7232, label %7233, label %7305

7233:                                             ; preds = %7228
  br label %7234

7234:                                             ; preds = %7233
  %7235 = load i32, ptr @test_count, align 4, !tbaa !5
  %7236 = add nsw i32 %7235, 1
  store i32 %7236, ptr @test_count, align 4, !tbaa !5
  %7237 = getelementptr inbounds %struct.s2n_tls13_keys, ptr %138, i32 0, i32 4
  %7238 = getelementptr inbounds %struct.s2n_blob, ptr %7237, i32 0, i32 0
  %7239 = load ptr, ptr %7238, align 8, !tbaa !80
  %7240 = getelementptr inbounds %struct.s2n_tls13_keys, ptr %159, i32 0, i32 4
  %7241 = getelementptr inbounds %struct.s2n_blob, ptr %7240, i32 0, i32 0
  %7242 = load ptr, ptr %7241, align 8, !tbaa !80
  %7243 = getelementptr inbounds %struct.s2n_tls13_keys, ptr %138, i32 0, i32 4
  %7244 = getelementptr inbounds %struct.s2n_blob, ptr %7243, i32 0, i32 1
  %7245 = load i32, ptr %7244, align 8, !tbaa !79
  %7246 = zext i32 %7245 to i64
  %7247 = call i32 @memcmp(ptr noundef %7239, ptr noundef %7242, i64 noundef %7246) #16
  %7248 = icmp eq i32 %7247, 0
  br i1 %7248, label %7302, label %7249

7249:                                             ; preds = %7234
  br label %7250

7250:                                             ; preds = %7249
  br label %7251

7251:                                             ; preds = %7250
  call void @llvm.lifetime.start.p0(i64 4, ptr %162) #13
  %7252 = call ptr @__errno_location() #14
  %7253 = load i32, ptr %7252, align 4, !tbaa !5
  store i32 %7253, ptr %162, align 4, !tbaa !5
  %7254 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7255 = call i32 @s2n_print_stacktrace(ptr noundef %7254)
  %7256 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7257 = trunc i8 %7256 to i1
  br i1 %7257, label %7258, label %7280

7258:                                             ; preds = %7251
  %7259 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7260 = call i32 @fileno(ptr noundef %7259) #13
  %7261 = call i32 @isatty(i32 noundef %7260) #13
  %7262 = icmp ne i32 %7261, 0
  br i1 %7262, label %7263, label %7280

7263:                                             ; preds = %7258
  %7264 = load i32, ptr %162, align 4, !tbaa !5
  %7265 = call ptr @__errno_location() #14
  store i32 %7264, ptr %7265, align 4, !tbaa !5
  %7266 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7267 = load i32, ptr @test_count, align 4, !tbaa !5
  %7268 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7269 = load i32, ptr %7268, align 4, !tbaa !5
  %7270 = call ptr @s2n_strerror(i32 noundef %7269, ptr noundef @.str.60)
  %7271 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7272 = load i32, ptr %7271, align 4, !tbaa !5
  %7273 = call ptr @s2n_strerror_debug(i32 noundef %7272, ptr noundef @.str.60)
  %7274 = call ptr @__errno_location() #14
  %7275 = load i32, ptr %7274, align 4, !tbaa !5
  %7276 = call ptr @strerror(i32 noundef %7275) #13
  %7277 = call ptr @__errno_location() #14
  %7278 = load i32, ptr %7277, align 4, !tbaa !5
  %7279 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7266, ptr noundef @.str.58, i32 noundef %7267, ptr noundef @.str.153, ptr noundef @.str.57, i32 noundef 268, ptr noundef %7270, ptr noundef %7273, ptr noundef %7276, i32 noundef %7278) #13
  br label %7297

7280:                                             ; preds = %7258, %7251
  %7281 = load i32, ptr %162, align 4, !tbaa !5
  %7282 = call ptr @__errno_location() #14
  store i32 %7281, ptr %7282, align 4, !tbaa !5
  %7283 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7284 = load i32, ptr @test_count, align 4, !tbaa !5
  %7285 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7286 = load i32, ptr %7285, align 4, !tbaa !5
  %7287 = call ptr @s2n_strerror(i32 noundef %7286, ptr noundef @.str.60)
  %7288 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7289 = load i32, ptr %7288, align 4, !tbaa !5
  %7290 = call ptr @s2n_strerror_debug(i32 noundef %7289, ptr noundef @.str.60)
  %7291 = call ptr @__errno_location() #14
  %7292 = load i32, ptr %7291, align 4, !tbaa !5
  %7293 = call ptr @strerror(i32 noundef %7292) #13
  %7294 = call ptr @__errno_location() #14
  %7295 = load i32, ptr %7294, align 4, !tbaa !5
  %7296 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7283, ptr noundef @.str.61, i32 noundef %7284, ptr noundef @.str.153, ptr noundef @.str.57, i32 noundef 268, ptr noundef %7287, ptr noundef %7290, ptr noundef %7293, i32 noundef %7295) #13
  br label %7297

7297:                                             ; preds = %7280, %7263
  call void @llvm.lifetime.end.p0(i64 4, ptr %162) #13
  br label %7298

7298:                                             ; preds = %7297
  br label %7299

7299:                                             ; preds = %7298
  call void @exit(i32 noundef 1) #15
  unreachable

7300:                                             ; No predecessors!
  br label %7301

7301:                                             ; preds = %7300
  br label %7302

7302:                                             ; preds = %7301, %7234
  br label %7303

7303:                                             ; preds = %7302
  br label %7304

7304:                                             ; preds = %7303
  br label %7305

7305:                                             ; preds = %7304, %7228
  br label %7306

7306:                                             ; preds = %7305
  br label %7307

7307:                                             ; preds = %7306
  br label %7308

7308:                                             ; preds = %7307
  br label %7309

7309:                                             ; preds = %7308
  br label %7310

7310:                                             ; preds = %7309
  br label %7311

7311:                                             ; preds = %7310
  %7312 = load i32, ptr @test_count, align 4, !tbaa !5
  %7313 = add nsw i32 %7312, 1
  store i32 %7313, ptr @test_count, align 4, !tbaa !5
  %7314 = getelementptr inbounds %struct.s2n_tls13_keys, ptr %138, i32 0, i32 3
  %7315 = getelementptr inbounds %struct.s2n_blob, ptr %7314, i32 0, i32 1
  %7316 = load i32, ptr %7315, align 8, !tbaa !81
  %7317 = getelementptr inbounds %struct.s2n_tls13_keys, ptr %159, i32 0, i32 3
  %7318 = getelementptr inbounds %struct.s2n_blob, ptr %7317, i32 0, i32 1
  %7319 = load i32, ptr %7318, align 8, !tbaa !81
  %7320 = icmp eq i32 %7316, %7319
  br i1 %7320, label %7374, label %7321

7321:                                             ; preds = %7311
  br label %7322

7322:                                             ; preds = %7321
  br label %7323

7323:                                             ; preds = %7322
  call void @llvm.lifetime.start.p0(i64 4, ptr %163) #13
  %7324 = call ptr @__errno_location() #14
  %7325 = load i32, ptr %7324, align 4, !tbaa !5
  store i32 %7325, ptr %163, align 4, !tbaa !5
  %7326 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7327 = call i32 @s2n_print_stacktrace(ptr noundef %7326)
  %7328 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7329 = trunc i8 %7328 to i1
  br i1 %7329, label %7330, label %7352

7330:                                             ; preds = %7323
  %7331 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7332 = call i32 @fileno(ptr noundef %7331) #13
  %7333 = call i32 @isatty(i32 noundef %7332) #13
  %7334 = icmp ne i32 %7333, 0
  br i1 %7334, label %7335, label %7352

7335:                                             ; preds = %7330
  %7336 = load i32, ptr %163, align 4, !tbaa !5
  %7337 = call ptr @__errno_location() #14
  store i32 %7336, ptr %7337, align 4, !tbaa !5
  %7338 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7339 = load i32, ptr @test_count, align 4, !tbaa !5
  %7340 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7341 = load i32, ptr %7340, align 4, !tbaa !5
  %7342 = call ptr @s2n_strerror(i32 noundef %7341, ptr noundef @.str.60)
  %7343 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7344 = load i32, ptr %7343, align 4, !tbaa !5
  %7345 = call ptr @s2n_strerror_debug(i32 noundef %7344, ptr noundef @.str.60)
  %7346 = call ptr @__errno_location() #14
  %7347 = load i32, ptr %7346, align 4, !tbaa !5
  %7348 = call ptr @strerror(i32 noundef %7347) #13
  %7349 = call ptr @__errno_location() #14
  %7350 = load i32, ptr %7349, align 4, !tbaa !5
  %7351 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7338, ptr noundef @.str.58, i32 noundef %7339, ptr noundef @.str.154, ptr noundef @.str.57, i32 noundef 269, ptr noundef %7342, ptr noundef %7345, ptr noundef %7348, i32 noundef %7350) #13
  br label %7369

7352:                                             ; preds = %7330, %7323
  %7353 = load i32, ptr %163, align 4, !tbaa !5
  %7354 = call ptr @__errno_location() #14
  store i32 %7353, ptr %7354, align 4, !tbaa !5
  %7355 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7356 = load i32, ptr @test_count, align 4, !tbaa !5
  %7357 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7358 = load i32, ptr %7357, align 4, !tbaa !5
  %7359 = call ptr @s2n_strerror(i32 noundef %7358, ptr noundef @.str.60)
  %7360 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7361 = load i32, ptr %7360, align 4, !tbaa !5
  %7362 = call ptr @s2n_strerror_debug(i32 noundef %7361, ptr noundef @.str.60)
  %7363 = call ptr @__errno_location() #14
  %7364 = load i32, ptr %7363, align 4, !tbaa !5
  %7365 = call ptr @strerror(i32 noundef %7364) #13
  %7366 = call ptr @__errno_location() #14
  %7367 = load i32, ptr %7366, align 4, !tbaa !5
  %7368 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7355, ptr noundef @.str.61, i32 noundef %7356, ptr noundef @.str.154, ptr noundef @.str.57, i32 noundef 269, ptr noundef %7359, ptr noundef %7362, ptr noundef %7365, i32 noundef %7367) #13
  br label %7369

7369:                                             ; preds = %7352, %7335
  call void @llvm.lifetime.end.p0(i64 4, ptr %163) #13
  br label %7370

7370:                                             ; preds = %7369
  br label %7371

7371:                                             ; preds = %7370
  call void @exit(i32 noundef 1) #15
  unreachable

7372:                                             ; No predecessors!
  br label %7373

7373:                                             ; preds = %7372
  br label %7374

7374:                                             ; preds = %7373, %7311
  br label %7375

7375:                                             ; preds = %7374
  br label %7376

7376:                                             ; preds = %7375
  br label %7377

7377:                                             ; preds = %7376
  %7378 = getelementptr inbounds %struct.s2n_tls13_keys, ptr %138, i32 0, i32 3
  %7379 = getelementptr inbounds %struct.s2n_blob, ptr %7378, i32 0, i32 1
  %7380 = load i32, ptr %7379, align 8, !tbaa !81
  %7381 = icmp ne i32 %7380, 0
  br i1 %7381, label %7382, label %7454

7382:                                             ; preds = %7377
  br label %7383

7383:                                             ; preds = %7382
  %7384 = load i32, ptr @test_count, align 4, !tbaa !5
  %7385 = add nsw i32 %7384, 1
  store i32 %7385, ptr @test_count, align 4, !tbaa !5
  %7386 = getelementptr inbounds %struct.s2n_tls13_keys, ptr %138, i32 0, i32 3
  %7387 = getelementptr inbounds %struct.s2n_blob, ptr %7386, i32 0, i32 0
  %7388 = load ptr, ptr %7387, align 8, !tbaa !82
  %7389 = getelementptr inbounds %struct.s2n_tls13_keys, ptr %159, i32 0, i32 3
  %7390 = getelementptr inbounds %struct.s2n_blob, ptr %7389, i32 0, i32 0
  %7391 = load ptr, ptr %7390, align 8, !tbaa !82
  %7392 = getelementptr inbounds %struct.s2n_tls13_keys, ptr %138, i32 0, i32 3
  %7393 = getelementptr inbounds %struct.s2n_blob, ptr %7392, i32 0, i32 1
  %7394 = load i32, ptr %7393, align 8, !tbaa !81
  %7395 = zext i32 %7394 to i64
  %7396 = call i32 @memcmp(ptr noundef %7388, ptr noundef %7391, i64 noundef %7395) #16
  %7397 = icmp eq i32 %7396, 0
  br i1 %7397, label %7451, label %7398

7398:                                             ; preds = %7383
  br label %7399

7399:                                             ; preds = %7398
  br label %7400

7400:                                             ; preds = %7399
  call void @llvm.lifetime.start.p0(i64 4, ptr %164) #13
  %7401 = call ptr @__errno_location() #14
  %7402 = load i32, ptr %7401, align 4, !tbaa !5
  store i32 %7402, ptr %164, align 4, !tbaa !5
  %7403 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7404 = call i32 @s2n_print_stacktrace(ptr noundef %7403)
  %7405 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7406 = trunc i8 %7405 to i1
  br i1 %7406, label %7407, label %7429

7407:                                             ; preds = %7400
  %7408 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7409 = call i32 @fileno(ptr noundef %7408) #13
  %7410 = call i32 @isatty(i32 noundef %7409) #13
  %7411 = icmp ne i32 %7410, 0
  br i1 %7411, label %7412, label %7429

7412:                                             ; preds = %7407
  %7413 = load i32, ptr %164, align 4, !tbaa !5
  %7414 = call ptr @__errno_location() #14
  store i32 %7413, ptr %7414, align 4, !tbaa !5
  %7415 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7416 = load i32, ptr @test_count, align 4, !tbaa !5
  %7417 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7418 = load i32, ptr %7417, align 4, !tbaa !5
  %7419 = call ptr @s2n_strerror(i32 noundef %7418, ptr noundef @.str.60)
  %7420 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7421 = load i32, ptr %7420, align 4, !tbaa !5
  %7422 = call ptr @s2n_strerror_debug(i32 noundef %7421, ptr noundef @.str.60)
  %7423 = call ptr @__errno_location() #14
  %7424 = load i32, ptr %7423, align 4, !tbaa !5
  %7425 = call ptr @strerror(i32 noundef %7424) #13
  %7426 = call ptr @__errno_location() #14
  %7427 = load i32, ptr %7426, align 4, !tbaa !5
  %7428 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7415, ptr noundef @.str.58, i32 noundef %7416, ptr noundef @.str.155, ptr noundef @.str.57, i32 noundef 269, ptr noundef %7419, ptr noundef %7422, ptr noundef %7425, i32 noundef %7427) #13
  br label %7446

7429:                                             ; preds = %7407, %7400
  %7430 = load i32, ptr %164, align 4, !tbaa !5
  %7431 = call ptr @__errno_location() #14
  store i32 %7430, ptr %7431, align 4, !tbaa !5
  %7432 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7433 = load i32, ptr @test_count, align 4, !tbaa !5
  %7434 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7435 = load i32, ptr %7434, align 4, !tbaa !5
  %7436 = call ptr @s2n_strerror(i32 noundef %7435, ptr noundef @.str.60)
  %7437 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7438 = load i32, ptr %7437, align 4, !tbaa !5
  %7439 = call ptr @s2n_strerror_debug(i32 noundef %7438, ptr noundef @.str.60)
  %7440 = call ptr @__errno_location() #14
  %7441 = load i32, ptr %7440, align 4, !tbaa !5
  %7442 = call ptr @strerror(i32 noundef %7441) #13
  %7443 = call ptr @__errno_location() #14
  %7444 = load i32, ptr %7443, align 4, !tbaa !5
  %7445 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7432, ptr noundef @.str.61, i32 noundef %7433, ptr noundef @.str.155, ptr noundef @.str.57, i32 noundef 269, ptr noundef %7436, ptr noundef %7439, ptr noundef %7442, i32 noundef %7444) #13
  br label %7446

7446:                                             ; preds = %7429, %7412
  call void @llvm.lifetime.end.p0(i64 4, ptr %164) #13
  br label %7447

7447:                                             ; preds = %7446
  br label %7448

7448:                                             ; preds = %7447
  call void @exit(i32 noundef 1) #15
  unreachable

7449:                                             ; No predecessors!
  br label %7450

7450:                                             ; preds = %7449
  br label %7451

7451:                                             ; preds = %7450, %7383
  br label %7452

7452:                                             ; preds = %7451
  br label %7453

7453:                                             ; preds = %7452
  br label %7454

7454:                                             ; preds = %7453, %7377
  br label %7455

7455:                                             ; preds = %7454
  br label %7456

7456:                                             ; preds = %7455
  br label %7457

7457:                                             ; preds = %7456
  br label %7458

7458:                                             ; preds = %7457
  br label %7459

7459:                                             ; preds = %7458
  %7460 = load i32, ptr @test_count, align 4, !tbaa !5
  %7461 = add nsw i32 %7460, 1
  store i32 %7461, ptr @test_count, align 4, !tbaa !5
  %7462 = load ptr, ptr %91, align 8, !tbaa !9
  %7463 = call i32 @s2n_conn_get_current_message_type(ptr noundef %7462)
  %7464 = icmp eq i32 %7463, 16
  br i1 %7464, label %7518, label %7465

7465:                                             ; preds = %7459
  br label %7466

7466:                                             ; preds = %7465
  br label %7467

7467:                                             ; preds = %7466
  call void @llvm.lifetime.start.p0(i64 4, ptr %165) #13
  %7468 = call ptr @__errno_location() #14
  %7469 = load i32, ptr %7468, align 4, !tbaa !5
  store i32 %7469, ptr %165, align 4, !tbaa !5
  %7470 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7471 = call i32 @s2n_print_stacktrace(ptr noundef %7470)
  %7472 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7473 = trunc i8 %7472 to i1
  br i1 %7473, label %7474, label %7496

7474:                                             ; preds = %7467
  %7475 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7476 = call i32 @fileno(ptr noundef %7475) #13
  %7477 = call i32 @isatty(i32 noundef %7476) #13
  %7478 = icmp ne i32 %7477, 0
  br i1 %7478, label %7479, label %7496

7479:                                             ; preds = %7474
  %7480 = load i32, ptr %165, align 4, !tbaa !5
  %7481 = call ptr @__errno_location() #14
  store i32 %7480, ptr %7481, align 4, !tbaa !5
  %7482 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7483 = load i32, ptr @test_count, align 4, !tbaa !5
  %7484 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7485 = load i32, ptr %7484, align 4, !tbaa !5
  %7486 = call ptr @s2n_strerror(i32 noundef %7485, ptr noundef @.str.60)
  %7487 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7488 = load i32, ptr %7487, align 4, !tbaa !5
  %7489 = call ptr @s2n_strerror_debug(i32 noundef %7488, ptr noundef @.str.60)
  %7490 = call ptr @__errno_location() #14
  %7491 = load i32, ptr %7490, align 4, !tbaa !5
  %7492 = call ptr @strerror(i32 noundef %7491) #13
  %7493 = call ptr @__errno_location() #14
  %7494 = load i32, ptr %7493, align 4, !tbaa !5
  %7495 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7482, ptr noundef @.str.58, i32 noundef %7483, ptr noundef @.str.150, ptr noundef @.str.57, i32 noundef 272, ptr noundef %7486, ptr noundef %7489, ptr noundef %7492, i32 noundef %7494) #13
  br label %7513

7496:                                             ; preds = %7474, %7467
  %7497 = load i32, ptr %165, align 4, !tbaa !5
  %7498 = call ptr @__errno_location() #14
  store i32 %7497, ptr %7498, align 4, !tbaa !5
  %7499 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7500 = load i32, ptr @test_count, align 4, !tbaa !5
  %7501 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7502 = load i32, ptr %7501, align 4, !tbaa !5
  %7503 = call ptr @s2n_strerror(i32 noundef %7502, ptr noundef @.str.60)
  %7504 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7505 = load i32, ptr %7504, align 4, !tbaa !5
  %7506 = call ptr @s2n_strerror_debug(i32 noundef %7505, ptr noundef @.str.60)
  %7507 = call ptr @__errno_location() #14
  %7508 = load i32, ptr %7507, align 4, !tbaa !5
  %7509 = call ptr @strerror(i32 noundef %7508) #13
  %7510 = call ptr @__errno_location() #14
  %7511 = load i32, ptr %7510, align 4, !tbaa !5
  %7512 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7499, ptr noundef @.str.61, i32 noundef %7500, ptr noundef @.str.150, ptr noundef @.str.57, i32 noundef 272, ptr noundef %7503, ptr noundef %7506, ptr noundef %7509, i32 noundef %7511) #13
  br label %7513

7513:                                             ; preds = %7496, %7479
  call void @llvm.lifetime.end.p0(i64 4, ptr %165) #13
  br label %7514

7514:                                             ; preds = %7513
  br label %7515

7515:                                             ; preds = %7514
  call void @exit(i32 noundef 1) #15
  unreachable

7516:                                             ; No predecessors!
  br label %7517

7517:                                             ; preds = %7516
  br label %7518

7518:                                             ; preds = %7517, %7459
  br label %7519

7519:                                             ; preds = %7518
  br label %7520

7520:                                             ; preds = %7519
  br label %7521

7521:                                             ; preds = %7520
  %7522 = load i32, ptr @test_count, align 4, !tbaa !5
  %7523 = add nsw i32 %7522, 1
  store i32 %7523, ptr @test_count, align 4, !tbaa !5
  %7524 = load ptr, ptr %91, align 8, !tbaa !9
  %7525 = call i32 @s2n_handshake_read_io(ptr noundef %7524)
  %7526 = icmp eq i32 %7525, -1
  br i1 %7526, label %7527, label %7580

7527:                                             ; preds = %7521
  br label %7528

7528:                                             ; preds = %7527
  br label %7529

7529:                                             ; preds = %7528
  call void @llvm.lifetime.start.p0(i64 4, ptr %166) #13
  %7530 = call ptr @__errno_location() #14
  %7531 = load i32, ptr %7530, align 4, !tbaa !5
  store i32 %7531, ptr %166, align 4, !tbaa !5
  %7532 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7533 = call i32 @s2n_print_stacktrace(ptr noundef %7532)
  %7534 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7535 = trunc i8 %7534 to i1
  br i1 %7535, label %7536, label %7558

7536:                                             ; preds = %7529
  %7537 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7538 = call i32 @fileno(ptr noundef %7537) #13
  %7539 = call i32 @isatty(i32 noundef %7538) #13
  %7540 = icmp ne i32 %7539, 0
  br i1 %7540, label %7541, label %7558

7541:                                             ; preds = %7536
  %7542 = load i32, ptr %166, align 4, !tbaa !5
  %7543 = call ptr @__errno_location() #14
  store i32 %7542, ptr %7543, align 4, !tbaa !5
  %7544 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7545 = load i32, ptr @test_count, align 4, !tbaa !5
  %7546 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7547 = load i32, ptr %7546, align 4, !tbaa !5
  %7548 = call ptr @s2n_strerror(i32 noundef %7547, ptr noundef @.str.60)
  %7549 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7550 = load i32, ptr %7549, align 4, !tbaa !5
  %7551 = call ptr @s2n_strerror_debug(i32 noundef %7550, ptr noundef @.str.60)
  %7552 = call ptr @__errno_location() #14
  %7553 = load i32, ptr %7552, align 4, !tbaa !5
  %7554 = call ptr @strerror(i32 noundef %7553) #13
  %7555 = call ptr @__errno_location() #14
  %7556 = load i32, ptr %7555, align 4, !tbaa !5
  %7557 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7544, ptr noundef @.str.58, i32 noundef %7545, ptr noundef @.str.149, ptr noundef @.str.57, i32 noundef 273, ptr noundef %7548, ptr noundef %7551, ptr noundef %7554, i32 noundef %7556) #13
  br label %7575

7558:                                             ; preds = %7536, %7529
  %7559 = load i32, ptr %166, align 4, !tbaa !5
  %7560 = call ptr @__errno_location() #14
  store i32 %7559, ptr %7560, align 4, !tbaa !5
  %7561 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7562 = load i32, ptr @test_count, align 4, !tbaa !5
  %7563 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7564 = load i32, ptr %7563, align 4, !tbaa !5
  %7565 = call ptr @s2n_strerror(i32 noundef %7564, ptr noundef @.str.60)
  %7566 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7567 = load i32, ptr %7566, align 4, !tbaa !5
  %7568 = call ptr @s2n_strerror_debug(i32 noundef %7567, ptr noundef @.str.60)
  %7569 = call ptr @__errno_location() #14
  %7570 = load i32, ptr %7569, align 4, !tbaa !5
  %7571 = call ptr @strerror(i32 noundef %7570) #13
  %7572 = call ptr @__errno_location() #14
  %7573 = load i32, ptr %7572, align 4, !tbaa !5
  %7574 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7561, ptr noundef @.str.61, i32 noundef %7562, ptr noundef @.str.149, ptr noundef @.str.57, i32 noundef 273, ptr noundef %7565, ptr noundef %7568, ptr noundef %7571, i32 noundef %7573) #13
  br label %7575

7575:                                             ; preds = %7558, %7541
  call void @llvm.lifetime.end.p0(i64 4, ptr %166) #13
  br label %7576

7576:                                             ; preds = %7575
  br label %7577

7577:                                             ; preds = %7576
  call void @exit(i32 noundef 1) #15
  unreachable

7578:                                             ; No predecessors!
  br label %7579

7579:                                             ; preds = %7578
  br label %7580

7580:                                             ; preds = %7579, %7521
  br label %7581

7581:                                             ; preds = %7580
  br label %7582

7582:                                             ; preds = %7581
  br label %7583

7583:                                             ; preds = %7582
  %7584 = load i32, ptr @test_count, align 4, !tbaa !5
  %7585 = add nsw i32 %7584, 1
  store i32 %7585, ptr @test_count, align 4, !tbaa !5
  %7586 = load ptr, ptr %91, align 8, !tbaa !9
  %7587 = call i32 @s2n_conn_get_current_message_type(ptr noundef %7586)
  %7588 = icmp eq i32 %7587, 2
  br i1 %7588, label %7642, label %7589

7589:                                             ; preds = %7583
  br label %7590

7590:                                             ; preds = %7589
  br label %7591

7591:                                             ; preds = %7590
  call void @llvm.lifetime.start.p0(i64 4, ptr %167) #13
  %7592 = call ptr @__errno_location() #14
  %7593 = load i32, ptr %7592, align 4, !tbaa !5
  store i32 %7593, ptr %167, align 4, !tbaa !5
  %7594 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7595 = call i32 @s2n_print_stacktrace(ptr noundef %7594)
  %7596 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7597 = trunc i8 %7596 to i1
  br i1 %7597, label %7598, label %7620

7598:                                             ; preds = %7591
  %7599 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7600 = call i32 @fileno(ptr noundef %7599) #13
  %7601 = call i32 @isatty(i32 noundef %7600) #13
  %7602 = icmp ne i32 %7601, 0
  br i1 %7602, label %7603, label %7620

7603:                                             ; preds = %7598
  %7604 = load i32, ptr %167, align 4, !tbaa !5
  %7605 = call ptr @__errno_location() #14
  store i32 %7604, ptr %7605, align 4, !tbaa !5
  %7606 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7607 = load i32, ptr @test_count, align 4, !tbaa !5
  %7608 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7609 = load i32, ptr %7608, align 4, !tbaa !5
  %7610 = call ptr @s2n_strerror(i32 noundef %7609, ptr noundef @.str.60)
  %7611 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7612 = load i32, ptr %7611, align 4, !tbaa !5
  %7613 = call ptr @s2n_strerror_debug(i32 noundef %7612, ptr noundef @.str.60)
  %7614 = call ptr @__errno_location() #14
  %7615 = load i32, ptr %7614, align 4, !tbaa !5
  %7616 = call ptr @strerror(i32 noundef %7615) #13
  %7617 = call ptr @__errno_location() #14
  %7618 = load i32, ptr %7617, align 4, !tbaa !5
  %7619 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7606, ptr noundef @.str.58, i32 noundef %7607, ptr noundef @.str.156, ptr noundef @.str.57, i32 noundef 276, ptr noundef %7610, ptr noundef %7613, ptr noundef %7616, i32 noundef %7618) #13
  br label %7637

7620:                                             ; preds = %7598, %7591
  %7621 = load i32, ptr %167, align 4, !tbaa !5
  %7622 = call ptr @__errno_location() #14
  store i32 %7621, ptr %7622, align 4, !tbaa !5
  %7623 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7624 = load i32, ptr @test_count, align 4, !tbaa !5
  %7625 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7626 = load i32, ptr %7625, align 4, !tbaa !5
  %7627 = call ptr @s2n_strerror(i32 noundef %7626, ptr noundef @.str.60)
  %7628 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7629 = load i32, ptr %7628, align 4, !tbaa !5
  %7630 = call ptr @s2n_strerror_debug(i32 noundef %7629, ptr noundef @.str.60)
  %7631 = call ptr @__errno_location() #14
  %7632 = load i32, ptr %7631, align 4, !tbaa !5
  %7633 = call ptr @strerror(i32 noundef %7632) #13
  %7634 = call ptr @__errno_location() #14
  %7635 = load i32, ptr %7634, align 4, !tbaa !5
  %7636 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7623, ptr noundef @.str.61, i32 noundef %7624, ptr noundef @.str.156, ptr noundef @.str.57, i32 noundef 276, ptr noundef %7627, ptr noundef %7630, ptr noundef %7633, i32 noundef %7635) #13
  br label %7637

7637:                                             ; preds = %7620, %7603
  call void @llvm.lifetime.end.p0(i64 4, ptr %167) #13
  br label %7638

7638:                                             ; preds = %7637
  br label %7639

7639:                                             ; preds = %7638
  call void @exit(i32 noundef 1) #15
  unreachable

7640:                                             ; No predecessors!
  br label %7641

7641:                                             ; preds = %7640
  br label %7642

7642:                                             ; preds = %7641, %7583
  br label %7643

7643:                                             ; preds = %7642
  br label %7644

7644:                                             ; preds = %7643
  br label %7645

7645:                                             ; preds = %7644
  %7646 = load i32, ptr @test_count, align 4, !tbaa !5
  %7647 = add nsw i32 %7646, 1
  store i32 %7647, ptr @test_count, align 4, !tbaa !5
  %7648 = load ptr, ptr %91, align 8, !tbaa !9
  %7649 = call i32 @s2n_handshake_read_io(ptr noundef %7648)
  %7650 = icmp eq i32 %7649, -1
  br i1 %7650, label %7651, label %7704

7651:                                             ; preds = %7645
  br label %7652

7652:                                             ; preds = %7651
  br label %7653

7653:                                             ; preds = %7652
  call void @llvm.lifetime.start.p0(i64 4, ptr %168) #13
  %7654 = call ptr @__errno_location() #14
  %7655 = load i32, ptr %7654, align 4, !tbaa !5
  store i32 %7655, ptr %168, align 4, !tbaa !5
  %7656 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7657 = call i32 @s2n_print_stacktrace(ptr noundef %7656)
  %7658 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7659 = trunc i8 %7658 to i1
  br i1 %7659, label %7660, label %7682

7660:                                             ; preds = %7653
  %7661 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7662 = call i32 @fileno(ptr noundef %7661) #13
  %7663 = call i32 @isatty(i32 noundef %7662) #13
  %7664 = icmp ne i32 %7663, 0
  br i1 %7664, label %7665, label %7682

7665:                                             ; preds = %7660
  %7666 = load i32, ptr %168, align 4, !tbaa !5
  %7667 = call ptr @__errno_location() #14
  store i32 %7666, ptr %7667, align 4, !tbaa !5
  %7668 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7669 = load i32, ptr @test_count, align 4, !tbaa !5
  %7670 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7671 = load i32, ptr %7670, align 4, !tbaa !5
  %7672 = call ptr @s2n_strerror(i32 noundef %7671, ptr noundef @.str.60)
  %7673 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7674 = load i32, ptr %7673, align 4, !tbaa !5
  %7675 = call ptr @s2n_strerror_debug(i32 noundef %7674, ptr noundef @.str.60)
  %7676 = call ptr @__errno_location() #14
  %7677 = load i32, ptr %7676, align 4, !tbaa !5
  %7678 = call ptr @strerror(i32 noundef %7677) #13
  %7679 = call ptr @__errno_location() #14
  %7680 = load i32, ptr %7679, align 4, !tbaa !5
  %7681 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7668, ptr noundef @.str.58, i32 noundef %7669, ptr noundef @.str.149, ptr noundef @.str.57, i32 noundef 277, ptr noundef %7672, ptr noundef %7675, ptr noundef %7678, i32 noundef %7680) #13
  br label %7699

7682:                                             ; preds = %7660, %7653
  %7683 = load i32, ptr %168, align 4, !tbaa !5
  %7684 = call ptr @__errno_location() #14
  store i32 %7683, ptr %7684, align 4, !tbaa !5
  %7685 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7686 = load i32, ptr @test_count, align 4, !tbaa !5
  %7687 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7688 = load i32, ptr %7687, align 4, !tbaa !5
  %7689 = call ptr @s2n_strerror(i32 noundef %7688, ptr noundef @.str.60)
  %7690 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7691 = load i32, ptr %7690, align 4, !tbaa !5
  %7692 = call ptr @s2n_strerror_debug(i32 noundef %7691, ptr noundef @.str.60)
  %7693 = call ptr @__errno_location() #14
  %7694 = load i32, ptr %7693, align 4, !tbaa !5
  %7695 = call ptr @strerror(i32 noundef %7694) #13
  %7696 = call ptr @__errno_location() #14
  %7697 = load i32, ptr %7696, align 4, !tbaa !5
  %7698 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7685, ptr noundef @.str.61, i32 noundef %7686, ptr noundef @.str.149, ptr noundef @.str.57, i32 noundef 277, ptr noundef %7689, ptr noundef %7692, ptr noundef %7695, i32 noundef %7697) #13
  br label %7699

7699:                                             ; preds = %7682, %7665
  call void @llvm.lifetime.end.p0(i64 4, ptr %168) #13
  br label %7700

7700:                                             ; preds = %7699
  br label %7701

7701:                                             ; preds = %7700
  call void @exit(i32 noundef 1) #15
  unreachable

7702:                                             ; No predecessors!
  br label %7703

7703:                                             ; preds = %7702
  br label %7704

7704:                                             ; preds = %7703, %7645
  br label %7705

7705:                                             ; preds = %7704
  br label %7706

7706:                                             ; preds = %7705
  br label %7707

7707:                                             ; preds = %7706
  %7708 = load i32, ptr @test_count, align 4, !tbaa !5
  %7709 = add nsw i32 %7708, 1
  store i32 %7709, ptr @test_count, align 4, !tbaa !5
  %7710 = load ptr, ptr %91, align 8, !tbaa !9
  %7711 = call i32 @s2n_conn_get_current_message_type(ptr noundef %7710)
  %7712 = icmp eq i32 %7711, 17
  br i1 %7712, label %7766, label %7713

7713:                                             ; preds = %7707
  br label %7714

7714:                                             ; preds = %7713
  br label %7715

7715:                                             ; preds = %7714
  call void @llvm.lifetime.start.p0(i64 4, ptr %169) #13
  %7716 = call ptr @__errno_location() #14
  %7717 = load i32, ptr %7716, align 4, !tbaa !5
  store i32 %7717, ptr %169, align 4, !tbaa !5
  %7718 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7719 = call i32 @s2n_print_stacktrace(ptr noundef %7718)
  %7720 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7721 = trunc i8 %7720 to i1
  br i1 %7721, label %7722, label %7744

7722:                                             ; preds = %7715
  %7723 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7724 = call i32 @fileno(ptr noundef %7723) #13
  %7725 = call i32 @isatty(i32 noundef %7724) #13
  %7726 = icmp ne i32 %7725, 0
  br i1 %7726, label %7727, label %7744

7727:                                             ; preds = %7722
  %7728 = load i32, ptr %169, align 4, !tbaa !5
  %7729 = call ptr @__errno_location() #14
  store i32 %7728, ptr %7729, align 4, !tbaa !5
  %7730 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7731 = load i32, ptr @test_count, align 4, !tbaa !5
  %7732 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7733 = load i32, ptr %7732, align 4, !tbaa !5
  %7734 = call ptr @s2n_strerror(i32 noundef %7733, ptr noundef @.str.60)
  %7735 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7736 = load i32, ptr %7735, align 4, !tbaa !5
  %7737 = call ptr @s2n_strerror_debug(i32 noundef %7736, ptr noundef @.str.60)
  %7738 = call ptr @__errno_location() #14
  %7739 = load i32, ptr %7738, align 4, !tbaa !5
  %7740 = call ptr @strerror(i32 noundef %7739) #13
  %7741 = call ptr @__errno_location() #14
  %7742 = load i32, ptr %7741, align 4, !tbaa !5
  %7743 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7730, ptr noundef @.str.58, i32 noundef %7731, ptr noundef @.str.157, ptr noundef @.str.57, i32 noundef 280, ptr noundef %7734, ptr noundef %7737, ptr noundef %7740, i32 noundef %7742) #13
  br label %7761

7744:                                             ; preds = %7722, %7715
  %7745 = load i32, ptr %169, align 4, !tbaa !5
  %7746 = call ptr @__errno_location() #14
  store i32 %7745, ptr %7746, align 4, !tbaa !5
  %7747 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7748 = load i32, ptr @test_count, align 4, !tbaa !5
  %7749 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7750 = load i32, ptr %7749, align 4, !tbaa !5
  %7751 = call ptr @s2n_strerror(i32 noundef %7750, ptr noundef @.str.60)
  %7752 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7753 = load i32, ptr %7752, align 4, !tbaa !5
  %7754 = call ptr @s2n_strerror_debug(i32 noundef %7753, ptr noundef @.str.60)
  %7755 = call ptr @__errno_location() #14
  %7756 = load i32, ptr %7755, align 4, !tbaa !5
  %7757 = call ptr @strerror(i32 noundef %7756) #13
  %7758 = call ptr @__errno_location() #14
  %7759 = load i32, ptr %7758, align 4, !tbaa !5
  %7760 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7747, ptr noundef @.str.61, i32 noundef %7748, ptr noundef @.str.157, ptr noundef @.str.57, i32 noundef 280, ptr noundef %7751, ptr noundef %7754, ptr noundef %7757, i32 noundef %7759) #13
  br label %7761

7761:                                             ; preds = %7744, %7727
  call void @llvm.lifetime.end.p0(i64 4, ptr %169) #13
  br label %7762

7762:                                             ; preds = %7761
  br label %7763

7763:                                             ; preds = %7762
  call void @exit(i32 noundef 1) #15
  unreachable

7764:                                             ; No predecessors!
  br label %7765

7765:                                             ; preds = %7764
  br label %7766

7766:                                             ; preds = %7765, %7707
  br label %7767

7767:                                             ; preds = %7766
  br label %7768

7768:                                             ; preds = %7767
  br label %7769

7769:                                             ; preds = %7768
  %7770 = load i32, ptr @test_count, align 4, !tbaa !5
  %7771 = add nsw i32 %7770, 1
  store i32 %7771, ptr @test_count, align 4, !tbaa !5
  %7772 = load ptr, ptr %91, align 8, !tbaa !9
  %7773 = call i32 @s2n_handshake_read_io(ptr noundef %7772)
  %7774 = icmp eq i32 %7773, -1
  br i1 %7774, label %7775, label %7828

7775:                                             ; preds = %7769
  br label %7776

7776:                                             ; preds = %7775
  br label %7777

7777:                                             ; preds = %7776
  call void @llvm.lifetime.start.p0(i64 4, ptr %170) #13
  %7778 = call ptr @__errno_location() #14
  %7779 = load i32, ptr %7778, align 4, !tbaa !5
  store i32 %7779, ptr %170, align 4, !tbaa !5
  %7780 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7781 = call i32 @s2n_print_stacktrace(ptr noundef %7780)
  %7782 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7783 = trunc i8 %7782 to i1
  br i1 %7783, label %7784, label %7806

7784:                                             ; preds = %7777
  %7785 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7786 = call i32 @fileno(ptr noundef %7785) #13
  %7787 = call i32 @isatty(i32 noundef %7786) #13
  %7788 = icmp ne i32 %7787, 0
  br i1 %7788, label %7789, label %7806

7789:                                             ; preds = %7784
  %7790 = load i32, ptr %170, align 4, !tbaa !5
  %7791 = call ptr @__errno_location() #14
  store i32 %7790, ptr %7791, align 4, !tbaa !5
  %7792 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7793 = load i32, ptr @test_count, align 4, !tbaa !5
  %7794 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7795 = load i32, ptr %7794, align 4, !tbaa !5
  %7796 = call ptr @s2n_strerror(i32 noundef %7795, ptr noundef @.str.60)
  %7797 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7798 = load i32, ptr %7797, align 4, !tbaa !5
  %7799 = call ptr @s2n_strerror_debug(i32 noundef %7798, ptr noundef @.str.60)
  %7800 = call ptr @__errno_location() #14
  %7801 = load i32, ptr %7800, align 4, !tbaa !5
  %7802 = call ptr @strerror(i32 noundef %7801) #13
  %7803 = call ptr @__errno_location() #14
  %7804 = load i32, ptr %7803, align 4, !tbaa !5
  %7805 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7792, ptr noundef @.str.58, i32 noundef %7793, ptr noundef @.str.149, ptr noundef @.str.57, i32 noundef 281, ptr noundef %7796, ptr noundef %7799, ptr noundef %7802, i32 noundef %7804) #13
  br label %7823

7806:                                             ; preds = %7784, %7777
  %7807 = load i32, ptr %170, align 4, !tbaa !5
  %7808 = call ptr @__errno_location() #14
  store i32 %7807, ptr %7808, align 4, !tbaa !5
  %7809 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7810 = load i32, ptr @test_count, align 4, !tbaa !5
  %7811 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7812 = load i32, ptr %7811, align 4, !tbaa !5
  %7813 = call ptr @s2n_strerror(i32 noundef %7812, ptr noundef @.str.60)
  %7814 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7815 = load i32, ptr %7814, align 4, !tbaa !5
  %7816 = call ptr @s2n_strerror_debug(i32 noundef %7815, ptr noundef @.str.60)
  %7817 = call ptr @__errno_location() #14
  %7818 = load i32, ptr %7817, align 4, !tbaa !5
  %7819 = call ptr @strerror(i32 noundef %7818) #13
  %7820 = call ptr @__errno_location() #14
  %7821 = load i32, ptr %7820, align 4, !tbaa !5
  %7822 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7809, ptr noundef @.str.61, i32 noundef %7810, ptr noundef @.str.149, ptr noundef @.str.57, i32 noundef 281, ptr noundef %7813, ptr noundef %7816, ptr noundef %7819, i32 noundef %7821) #13
  br label %7823

7823:                                             ; preds = %7806, %7789
  call void @llvm.lifetime.end.p0(i64 4, ptr %170) #13
  br label %7824

7824:                                             ; preds = %7823
  br label %7825

7825:                                             ; preds = %7824
  call void @exit(i32 noundef 1) #15
  unreachable

7826:                                             ; No predecessors!
  br label %7827

7827:                                             ; preds = %7826
  br label %7828

7828:                                             ; preds = %7827, %7769
  br label %7829

7829:                                             ; preds = %7828
  br label %7830

7830:                                             ; preds = %7829
  br label %7831

7831:                                             ; preds = %7830
  %7832 = load i32, ptr @test_count, align 4, !tbaa !5
  %7833 = add nsw i32 %7832, 1
  store i32 %7833, ptr @test_count, align 4, !tbaa !5
  %7834 = load ptr, ptr %92, align 8, !tbaa !9
  %7835 = call i32 @s2n_conn_get_current_message_type(ptr noundef %7834)
  %7836 = icmp eq i32 %7835, 15
  br i1 %7836, label %7890, label %7837

7837:                                             ; preds = %7831
  br label %7838

7838:                                             ; preds = %7837
  br label %7839

7839:                                             ; preds = %7838
  call void @llvm.lifetime.start.p0(i64 4, ptr %171) #13
  %7840 = call ptr @__errno_location() #14
  %7841 = load i32, ptr %7840, align 4, !tbaa !5
  store i32 %7841, ptr %171, align 4, !tbaa !5
  %7842 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7843 = call i32 @s2n_print_stacktrace(ptr noundef %7842)
  %7844 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7845 = trunc i8 %7844 to i1
  br i1 %7845, label %7846, label %7868

7846:                                             ; preds = %7839
  %7847 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7848 = call i32 @fileno(ptr noundef %7847) #13
  %7849 = call i32 @isatty(i32 noundef %7848) #13
  %7850 = icmp ne i32 %7849, 0
  br i1 %7850, label %7851, label %7868

7851:                                             ; preds = %7846
  %7852 = load i32, ptr %171, align 4, !tbaa !5
  %7853 = call ptr @__errno_location() #14
  store i32 %7852, ptr %7853, align 4, !tbaa !5
  %7854 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7855 = load i32, ptr @test_count, align 4, !tbaa !5
  %7856 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7857 = load i32, ptr %7856, align 4, !tbaa !5
  %7858 = call ptr @s2n_strerror(i32 noundef %7857, ptr noundef @.str.60)
  %7859 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7860 = load i32, ptr %7859, align 4, !tbaa !5
  %7861 = call ptr @s2n_strerror_debug(i32 noundef %7860, ptr noundef @.str.60)
  %7862 = call ptr @__errno_location() #14
  %7863 = load i32, ptr %7862, align 4, !tbaa !5
  %7864 = call ptr @strerror(i32 noundef %7863) #13
  %7865 = call ptr @__errno_location() #14
  %7866 = load i32, ptr %7865, align 4, !tbaa !5
  %7867 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7854, ptr noundef @.str.58, i32 noundef %7855, ptr noundef @.str.158, ptr noundef @.str.57, i32 noundef 284, ptr noundef %7858, ptr noundef %7861, ptr noundef %7864, i32 noundef %7866) #13
  br label %7885

7868:                                             ; preds = %7846, %7839
  %7869 = load i32, ptr %171, align 4, !tbaa !5
  %7870 = call ptr @__errno_location() #14
  store i32 %7869, ptr %7870, align 4, !tbaa !5
  %7871 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7872 = load i32, ptr @test_count, align 4, !tbaa !5
  %7873 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7874 = load i32, ptr %7873, align 4, !tbaa !5
  %7875 = call ptr @s2n_strerror(i32 noundef %7874, ptr noundef @.str.60)
  %7876 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7877 = load i32, ptr %7876, align 4, !tbaa !5
  %7878 = call ptr @s2n_strerror_debug(i32 noundef %7877, ptr noundef @.str.60)
  %7879 = call ptr @__errno_location() #14
  %7880 = load i32, ptr %7879, align 4, !tbaa !5
  %7881 = call ptr @strerror(i32 noundef %7880) #13
  %7882 = call ptr @__errno_location() #14
  %7883 = load i32, ptr %7882, align 4, !tbaa !5
  %7884 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7871, ptr noundef @.str.61, i32 noundef %7872, ptr noundef @.str.158, ptr noundef @.str.57, i32 noundef 284, ptr noundef %7875, ptr noundef %7878, ptr noundef %7881, i32 noundef %7883) #13
  br label %7885

7885:                                             ; preds = %7868, %7851
  call void @llvm.lifetime.end.p0(i64 4, ptr %171) #13
  br label %7886

7886:                                             ; preds = %7885
  br label %7887

7887:                                             ; preds = %7886
  call void @exit(i32 noundef 1) #15
  unreachable

7888:                                             ; No predecessors!
  br label %7889

7889:                                             ; preds = %7888
  br label %7890

7890:                                             ; preds = %7889, %7831
  br label %7891

7891:                                             ; preds = %7890
  br label %7892

7892:                                             ; preds = %7891
  br label %7893

7893:                                             ; preds = %7892
  %7894 = load i32, ptr @test_count, align 4, !tbaa !5
  %7895 = add nsw i32 %7894, 1
  store i32 %7895, ptr @test_count, align 4, !tbaa !5
  %7896 = load ptr, ptr %92, align 8, !tbaa !9
  %7897 = call i32 @s2n_handshake_write_io(ptr noundef %7896)
  %7898 = icmp eq i32 %7897, -1
  br i1 %7898, label %7899, label %7952

7899:                                             ; preds = %7893
  br label %7900

7900:                                             ; preds = %7899
  br label %7901

7901:                                             ; preds = %7900
  call void @llvm.lifetime.start.p0(i64 4, ptr %172) #13
  %7902 = call ptr @__errno_location() #14
  %7903 = load i32, ptr %7902, align 4, !tbaa !5
  store i32 %7903, ptr %172, align 4, !tbaa !5
  %7904 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7905 = call i32 @s2n_print_stacktrace(ptr noundef %7904)
  %7906 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7907 = trunc i8 %7906 to i1
  br i1 %7907, label %7908, label %7930

7908:                                             ; preds = %7901
  %7909 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7910 = call i32 @fileno(ptr noundef %7909) #13
  %7911 = call i32 @isatty(i32 noundef %7910) #13
  %7912 = icmp ne i32 %7911, 0
  br i1 %7912, label %7913, label %7930

7913:                                             ; preds = %7908
  %7914 = load i32, ptr %172, align 4, !tbaa !5
  %7915 = call ptr @__errno_location() #14
  store i32 %7914, ptr %7915, align 4, !tbaa !5
  %7916 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7917 = load i32, ptr @test_count, align 4, !tbaa !5
  %7918 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7919 = load i32, ptr %7918, align 4, !tbaa !5
  %7920 = call ptr @s2n_strerror(i32 noundef %7919, ptr noundef @.str.60)
  %7921 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7922 = load i32, ptr %7921, align 4, !tbaa !5
  %7923 = call ptr @s2n_strerror_debug(i32 noundef %7922, ptr noundef @.str.60)
  %7924 = call ptr @__errno_location() #14
  %7925 = load i32, ptr %7924, align 4, !tbaa !5
  %7926 = call ptr @strerror(i32 noundef %7925) #13
  %7927 = call ptr @__errno_location() #14
  %7928 = load i32, ptr %7927, align 4, !tbaa !5
  %7929 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7916, ptr noundef @.str.58, i32 noundef %7917, ptr noundef @.str.139, ptr noundef @.str.57, i32 noundef 285, ptr noundef %7920, ptr noundef %7923, ptr noundef %7926, i32 noundef %7928) #13
  br label %7947

7930:                                             ; preds = %7908, %7901
  %7931 = load i32, ptr %172, align 4, !tbaa !5
  %7932 = call ptr @__errno_location() #14
  store i32 %7931, ptr %7932, align 4, !tbaa !5
  %7933 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7934 = load i32, ptr @test_count, align 4, !tbaa !5
  %7935 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7936 = load i32, ptr %7935, align 4, !tbaa !5
  %7937 = call ptr @s2n_strerror(i32 noundef %7936, ptr noundef @.str.60)
  %7938 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7939 = load i32, ptr %7938, align 4, !tbaa !5
  %7940 = call ptr @s2n_strerror_debug(i32 noundef %7939, ptr noundef @.str.60)
  %7941 = call ptr @__errno_location() #14
  %7942 = load i32, ptr %7941, align 4, !tbaa !5
  %7943 = call ptr @strerror(i32 noundef %7942) #13
  %7944 = call ptr @__errno_location() #14
  %7945 = load i32, ptr %7944, align 4, !tbaa !5
  %7946 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7933, ptr noundef @.str.61, i32 noundef %7934, ptr noundef @.str.139, ptr noundef @.str.57, i32 noundef 285, ptr noundef %7937, ptr noundef %7940, ptr noundef %7943, i32 noundef %7945) #13
  br label %7947

7947:                                             ; preds = %7930, %7913
  call void @llvm.lifetime.end.p0(i64 4, ptr %172) #13
  br label %7948

7948:                                             ; preds = %7947
  br label %7949

7949:                                             ; preds = %7948
  call void @exit(i32 noundef 1) #15
  unreachable

7950:                                             ; No predecessors!
  br label %7951

7951:                                             ; preds = %7950
  br label %7952

7952:                                             ; preds = %7951, %7893
  br label %7953

7953:                                             ; preds = %7952
  br label %7954

7954:                                             ; preds = %7953
  br label %7955

7955:                                             ; preds = %7954
  %7956 = load i32, ptr @test_count, align 4, !tbaa !5
  %7957 = add nsw i32 %7956, 1
  store i32 %7957, ptr @test_count, align 4, !tbaa !5
  %7958 = load ptr, ptr %91, align 8, !tbaa !9
  %7959 = call i32 @s2n_conn_get_current_message_type(ptr noundef %7958)
  %7960 = icmp eq i32 %7959, 15
  br i1 %7960, label %8014, label %7961

7961:                                             ; preds = %7955
  br label %7962

7962:                                             ; preds = %7961
  br label %7963

7963:                                             ; preds = %7962
  call void @llvm.lifetime.start.p0(i64 4, ptr %173) #13
  %7964 = call ptr @__errno_location() #14
  %7965 = load i32, ptr %7964, align 4, !tbaa !5
  store i32 %7965, ptr %173, align 4, !tbaa !5
  %7966 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7967 = call i32 @s2n_print_stacktrace(ptr noundef %7966)
  %7968 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7969 = trunc i8 %7968 to i1
  br i1 %7969, label %7970, label %7992

7970:                                             ; preds = %7963
  %7971 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7972 = call i32 @fileno(ptr noundef %7971) #13
  %7973 = call i32 @isatty(i32 noundef %7972) #13
  %7974 = icmp ne i32 %7973, 0
  br i1 %7974, label %7975, label %7992

7975:                                             ; preds = %7970
  %7976 = load i32, ptr %173, align 4, !tbaa !5
  %7977 = call ptr @__errno_location() #14
  store i32 %7976, ptr %7977, align 4, !tbaa !5
  %7978 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7979 = load i32, ptr @test_count, align 4, !tbaa !5
  %7980 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7981 = load i32, ptr %7980, align 4, !tbaa !5
  %7982 = call ptr @s2n_strerror(i32 noundef %7981, ptr noundef @.str.60)
  %7983 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7984 = load i32, ptr %7983, align 4, !tbaa !5
  %7985 = call ptr @s2n_strerror_debug(i32 noundef %7984, ptr noundef @.str.60)
  %7986 = call ptr @__errno_location() #14
  %7987 = load i32, ptr %7986, align 4, !tbaa !5
  %7988 = call ptr @strerror(i32 noundef %7987) #13
  %7989 = call ptr @__errno_location() #14
  %7990 = load i32, ptr %7989, align 4, !tbaa !5
  %7991 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7978, ptr noundef @.str.58, i32 noundef %7979, ptr noundef @.str.159, ptr noundef @.str.57, i32 noundef 288, ptr noundef %7982, ptr noundef %7985, ptr noundef %7988, i32 noundef %7990) #13
  br label %8009

7992:                                             ; preds = %7970, %7963
  %7993 = load i32, ptr %173, align 4, !tbaa !5
  %7994 = call ptr @__errno_location() #14
  store i32 %7993, ptr %7994, align 4, !tbaa !5
  %7995 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7996 = load i32, ptr @test_count, align 4, !tbaa !5
  %7997 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7998 = load i32, ptr %7997, align 4, !tbaa !5
  %7999 = call ptr @s2n_strerror(i32 noundef %7998, ptr noundef @.str.60)
  %8000 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8001 = load i32, ptr %8000, align 4, !tbaa !5
  %8002 = call ptr @s2n_strerror_debug(i32 noundef %8001, ptr noundef @.str.60)
  %8003 = call ptr @__errno_location() #14
  %8004 = load i32, ptr %8003, align 4, !tbaa !5
  %8005 = call ptr @strerror(i32 noundef %8004) #13
  %8006 = call ptr @__errno_location() #14
  %8007 = load i32, ptr %8006, align 4, !tbaa !5
  %8008 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7995, ptr noundef @.str.61, i32 noundef %7996, ptr noundef @.str.159, ptr noundef @.str.57, i32 noundef 288, ptr noundef %7999, ptr noundef %8002, ptr noundef %8005, i32 noundef %8007) #13
  br label %8009

8009:                                             ; preds = %7992, %7975
  call void @llvm.lifetime.end.p0(i64 4, ptr %173) #13
  br label %8010

8010:                                             ; preds = %8009
  br label %8011

8011:                                             ; preds = %8010
  call void @exit(i32 noundef 1) #15
  unreachable

8012:                                             ; No predecessors!
  br label %8013

8013:                                             ; preds = %8012
  br label %8014

8014:                                             ; preds = %8013, %7955
  br label %8015

8015:                                             ; preds = %8014
  br label %8016

8016:                                             ; preds = %8015
  br label %8017

8017:                                             ; preds = %8016
  %8018 = load i32, ptr @test_count, align 4, !tbaa !5
  %8019 = add nsw i32 %8018, 1
  store i32 %8019, ptr @test_count, align 4, !tbaa !5
  %8020 = load ptr, ptr %91, align 8, !tbaa !9
  %8021 = call i32 @s2n_handshake_read_io(ptr noundef %8020)
  %8022 = icmp eq i32 %8021, -1
  br i1 %8022, label %8023, label %8076

8023:                                             ; preds = %8017
  br label %8024

8024:                                             ; preds = %8023
  br label %8025

8025:                                             ; preds = %8024
  call void @llvm.lifetime.start.p0(i64 4, ptr %174) #13
  %8026 = call ptr @__errno_location() #14
  %8027 = load i32, ptr %8026, align 4, !tbaa !5
  store i32 %8027, ptr %174, align 4, !tbaa !5
  %8028 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8029 = call i32 @s2n_print_stacktrace(ptr noundef %8028)
  %8030 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8031 = trunc i8 %8030 to i1
  br i1 %8031, label %8032, label %8054

8032:                                             ; preds = %8025
  %8033 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8034 = call i32 @fileno(ptr noundef %8033) #13
  %8035 = call i32 @isatty(i32 noundef %8034) #13
  %8036 = icmp ne i32 %8035, 0
  br i1 %8036, label %8037, label %8054

8037:                                             ; preds = %8032
  %8038 = load i32, ptr %174, align 4, !tbaa !5
  %8039 = call ptr @__errno_location() #14
  store i32 %8038, ptr %8039, align 4, !tbaa !5
  %8040 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8041 = load i32, ptr @test_count, align 4, !tbaa !5
  %8042 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8043 = load i32, ptr %8042, align 4, !tbaa !5
  %8044 = call ptr @s2n_strerror(i32 noundef %8043, ptr noundef @.str.60)
  %8045 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8046 = load i32, ptr %8045, align 4, !tbaa !5
  %8047 = call ptr @s2n_strerror_debug(i32 noundef %8046, ptr noundef @.str.60)
  %8048 = call ptr @__errno_location() #14
  %8049 = load i32, ptr %8048, align 4, !tbaa !5
  %8050 = call ptr @strerror(i32 noundef %8049) #13
  %8051 = call ptr @__errno_location() #14
  %8052 = load i32, ptr %8051, align 4, !tbaa !5
  %8053 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8040, ptr noundef @.str.58, i32 noundef %8041, ptr noundef @.str.149, ptr noundef @.str.57, i32 noundef 289, ptr noundef %8044, ptr noundef %8047, ptr noundef %8050, i32 noundef %8052) #13
  br label %8071

8054:                                             ; preds = %8032, %8025
  %8055 = load i32, ptr %174, align 4, !tbaa !5
  %8056 = call ptr @__errno_location() #14
  store i32 %8055, ptr %8056, align 4, !tbaa !5
  %8057 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8058 = load i32, ptr @test_count, align 4, !tbaa !5
  %8059 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8060 = load i32, ptr %8059, align 4, !tbaa !5
  %8061 = call ptr @s2n_strerror(i32 noundef %8060, ptr noundef @.str.60)
  %8062 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8063 = load i32, ptr %8062, align 4, !tbaa !5
  %8064 = call ptr @s2n_strerror_debug(i32 noundef %8063, ptr noundef @.str.60)
  %8065 = call ptr @__errno_location() #14
  %8066 = load i32, ptr %8065, align 4, !tbaa !5
  %8067 = call ptr @strerror(i32 noundef %8066) #13
  %8068 = call ptr @__errno_location() #14
  %8069 = load i32, ptr %8068, align 4, !tbaa !5
  %8070 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8057, ptr noundef @.str.61, i32 noundef %8058, ptr noundef @.str.149, ptr noundef @.str.57, i32 noundef 289, ptr noundef %8061, ptr noundef %8064, ptr noundef %8067, i32 noundef %8069) #13
  br label %8071

8071:                                             ; preds = %8054, %8037
  call void @llvm.lifetime.end.p0(i64 4, ptr %174) #13
  br label %8072

8072:                                             ; preds = %8071
  br label %8073

8073:                                             ; preds = %8072
  call void @exit(i32 noundef 1) #15
  unreachable

8074:                                             ; No predecessors!
  br label %8075

8075:                                             ; preds = %8074
  br label %8076

8076:                                             ; preds = %8075, %8017
  br label %8077

8077:                                             ; preds = %8076
  br label %8078

8078:                                             ; preds = %8077
  br label %8079

8079:                                             ; preds = %8078
  %8080 = load i32, ptr @test_count, align 4, !tbaa !5
  %8081 = add nsw i32 %8080, 1
  store i32 %8081, ptr @test_count, align 4, !tbaa !5
  %8082 = load ptr, ptr %91, align 8, !tbaa !9
  %8083 = call i32 @s2n_conn_get_current_message_type(ptr noundef %8082)
  %8084 = icmp eq i32 %8083, 11
  br i1 %8084, label %8138, label %8085

8085:                                             ; preds = %8079
  br label %8086

8086:                                             ; preds = %8085
  br label %8087

8087:                                             ; preds = %8086
  call void @llvm.lifetime.start.p0(i64 4, ptr %175) #13
  %8088 = call ptr @__errno_location() #14
  %8089 = load i32, ptr %8088, align 4, !tbaa !5
  store i32 %8089, ptr %175, align 4, !tbaa !5
  %8090 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8091 = call i32 @s2n_print_stacktrace(ptr noundef %8090)
  %8092 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8093 = trunc i8 %8092 to i1
  br i1 %8093, label %8094, label %8116

8094:                                             ; preds = %8087
  %8095 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8096 = call i32 @fileno(ptr noundef %8095) #13
  %8097 = call i32 @isatty(i32 noundef %8096) #13
  %8098 = icmp ne i32 %8097, 0
  br i1 %8098, label %8099, label %8116

8099:                                             ; preds = %8094
  %8100 = load i32, ptr %175, align 4, !tbaa !5
  %8101 = call ptr @__errno_location() #14
  store i32 %8100, ptr %8101, align 4, !tbaa !5
  %8102 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8103 = load i32, ptr @test_count, align 4, !tbaa !5
  %8104 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8105 = load i32, ptr %8104, align 4, !tbaa !5
  %8106 = call ptr @s2n_strerror(i32 noundef %8105, ptr noundef @.str.60)
  %8107 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8108 = load i32, ptr %8107, align 4, !tbaa !5
  %8109 = call ptr @s2n_strerror_debug(i32 noundef %8108, ptr noundef @.str.60)
  %8110 = call ptr @__errno_location() #14
  %8111 = load i32, ptr %8110, align 4, !tbaa !5
  %8112 = call ptr @strerror(i32 noundef %8111) #13
  %8113 = call ptr @__errno_location() #14
  %8114 = load i32, ptr %8113, align 4, !tbaa !5
  %8115 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8102, ptr noundef @.str.58, i32 noundef %8103, ptr noundef @.str.160, ptr noundef @.str.57, i32 noundef 292, ptr noundef %8106, ptr noundef %8109, ptr noundef %8112, i32 noundef %8114) #13
  br label %8133

8116:                                             ; preds = %8094, %8087
  %8117 = load i32, ptr %175, align 4, !tbaa !5
  %8118 = call ptr @__errno_location() #14
  store i32 %8117, ptr %8118, align 4, !tbaa !5
  %8119 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8120 = load i32, ptr @test_count, align 4, !tbaa !5
  %8121 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8122 = load i32, ptr %8121, align 4, !tbaa !5
  %8123 = call ptr @s2n_strerror(i32 noundef %8122, ptr noundef @.str.60)
  %8124 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8125 = load i32, ptr %8124, align 4, !tbaa !5
  %8126 = call ptr @s2n_strerror_debug(i32 noundef %8125, ptr noundef @.str.60)
  %8127 = call ptr @__errno_location() #14
  %8128 = load i32, ptr %8127, align 4, !tbaa !5
  %8129 = call ptr @strerror(i32 noundef %8128) #13
  %8130 = call ptr @__errno_location() #14
  %8131 = load i32, ptr %8130, align 4, !tbaa !5
  %8132 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8119, ptr noundef @.str.61, i32 noundef %8120, ptr noundef @.str.160, ptr noundef @.str.57, i32 noundef 292, ptr noundef %8123, ptr noundef %8126, ptr noundef %8129, i32 noundef %8131) #13
  br label %8133

8133:                                             ; preds = %8116, %8099
  call void @llvm.lifetime.end.p0(i64 4, ptr %175) #13
  br label %8134

8134:                                             ; preds = %8133
  br label %8135

8135:                                             ; preds = %8134
  call void @exit(i32 noundef 1) #15
  unreachable

8136:                                             ; No predecessors!
  br label %8137

8137:                                             ; preds = %8136
  br label %8138

8138:                                             ; preds = %8137, %8079
  br label %8139

8139:                                             ; preds = %8138
  br label %8140

8140:                                             ; preds = %8139
  br label %8141

8141:                                             ; preds = %8140
  %8142 = load i32, ptr @test_count, align 4, !tbaa !5
  %8143 = add nsw i32 %8142, 1
  store i32 %8143, ptr @test_count, align 4, !tbaa !5
  %8144 = load ptr, ptr %91, align 8, !tbaa !9
  %8145 = call i32 @s2n_handshake_write_io(ptr noundef %8144)
  %8146 = icmp eq i32 %8145, -1
  br i1 %8146, label %8147, label %8200

8147:                                             ; preds = %8141
  br label %8148

8148:                                             ; preds = %8147
  br label %8149

8149:                                             ; preds = %8148
  call void @llvm.lifetime.start.p0(i64 4, ptr %176) #13
  %8150 = call ptr @__errno_location() #14
  %8151 = load i32, ptr %8150, align 4, !tbaa !5
  store i32 %8151, ptr %176, align 4, !tbaa !5
  %8152 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8153 = call i32 @s2n_print_stacktrace(ptr noundef %8152)
  %8154 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8155 = trunc i8 %8154 to i1
  br i1 %8155, label %8156, label %8178

8156:                                             ; preds = %8149
  %8157 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8158 = call i32 @fileno(ptr noundef %8157) #13
  %8159 = call i32 @isatty(i32 noundef %8158) #13
  %8160 = icmp ne i32 %8159, 0
  br i1 %8160, label %8161, label %8178

8161:                                             ; preds = %8156
  %8162 = load i32, ptr %176, align 4, !tbaa !5
  %8163 = call ptr @__errno_location() #14
  store i32 %8162, ptr %8163, align 4, !tbaa !5
  %8164 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8165 = load i32, ptr @test_count, align 4, !tbaa !5
  %8166 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8167 = load i32, ptr %8166, align 4, !tbaa !5
  %8168 = call ptr @s2n_strerror(i32 noundef %8167, ptr noundef @.str.60)
  %8169 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8170 = load i32, ptr %8169, align 4, !tbaa !5
  %8171 = call ptr @s2n_strerror_debug(i32 noundef %8170, ptr noundef @.str.60)
  %8172 = call ptr @__errno_location() #14
  %8173 = load i32, ptr %8172, align 4, !tbaa !5
  %8174 = call ptr @strerror(i32 noundef %8173) #13
  %8175 = call ptr @__errno_location() #14
  %8176 = load i32, ptr %8175, align 4, !tbaa !5
  %8177 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8164, ptr noundef @.str.58, i32 noundef %8165, ptr noundef @.str.127, ptr noundef @.str.57, i32 noundef 293, ptr noundef %8168, ptr noundef %8171, ptr noundef %8174, i32 noundef %8176) #13
  br label %8195

8178:                                             ; preds = %8156, %8149
  %8179 = load i32, ptr %176, align 4, !tbaa !5
  %8180 = call ptr @__errno_location() #14
  store i32 %8179, ptr %8180, align 4, !tbaa !5
  %8181 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8182 = load i32, ptr @test_count, align 4, !tbaa !5
  %8183 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8184 = load i32, ptr %8183, align 4, !tbaa !5
  %8185 = call ptr @s2n_strerror(i32 noundef %8184, ptr noundef @.str.60)
  %8186 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8187 = load i32, ptr %8186, align 4, !tbaa !5
  %8188 = call ptr @s2n_strerror_debug(i32 noundef %8187, ptr noundef @.str.60)
  %8189 = call ptr @__errno_location() #14
  %8190 = load i32, ptr %8189, align 4, !tbaa !5
  %8191 = call ptr @strerror(i32 noundef %8190) #13
  %8192 = call ptr @__errno_location() #14
  %8193 = load i32, ptr %8192, align 4, !tbaa !5
  %8194 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8181, ptr noundef @.str.61, i32 noundef %8182, ptr noundef @.str.127, ptr noundef @.str.57, i32 noundef 293, ptr noundef %8185, ptr noundef %8188, ptr noundef %8191, i32 noundef %8193) #13
  br label %8195

8195:                                             ; preds = %8178, %8161
  call void @llvm.lifetime.end.p0(i64 4, ptr %176) #13
  br label %8196

8196:                                             ; preds = %8195
  br label %8197

8197:                                             ; preds = %8196
  call void @exit(i32 noundef 1) #15
  unreachable

8198:                                             ; No predecessors!
  br label %8199

8199:                                             ; preds = %8198
  br label %8200

8200:                                             ; preds = %8199, %8141
  br label %8201

8201:                                             ; preds = %8200
  br label %8202

8202:                                             ; preds = %8201
  br label %8203

8203:                                             ; preds = %8202
  %8204 = load i32, ptr @test_count, align 4, !tbaa !5
  %8205 = add nsw i32 %8204, 1
  store i32 %8205, ptr @test_count, align 4, !tbaa !5
  %8206 = load ptr, ptr %91, align 8, !tbaa !9
  %8207 = call i32 @s2n_conn_get_current_message_type(ptr noundef %8206)
  %8208 = icmp eq i32 %8207, 13
  br i1 %8208, label %8262, label %8209

8209:                                             ; preds = %8203
  br label %8210

8210:                                             ; preds = %8209
  br label %8211

8211:                                             ; preds = %8210
  call void @llvm.lifetime.start.p0(i64 4, ptr %177) #13
  %8212 = call ptr @__errno_location() #14
  %8213 = load i32, ptr %8212, align 4, !tbaa !5
  store i32 %8213, ptr %177, align 4, !tbaa !5
  %8214 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8215 = call i32 @s2n_print_stacktrace(ptr noundef %8214)
  %8216 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8217 = trunc i8 %8216 to i1
  br i1 %8217, label %8218, label %8240

8218:                                             ; preds = %8211
  %8219 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8220 = call i32 @fileno(ptr noundef %8219) #13
  %8221 = call i32 @isatty(i32 noundef %8220) #13
  %8222 = icmp ne i32 %8221, 0
  br i1 %8222, label %8223, label %8240

8223:                                             ; preds = %8218
  %8224 = load i32, ptr %177, align 4, !tbaa !5
  %8225 = call ptr @__errno_location() #14
  store i32 %8224, ptr %8225, align 4, !tbaa !5
  %8226 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8227 = load i32, ptr @test_count, align 4, !tbaa !5
  %8228 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8229 = load i32, ptr %8228, align 4, !tbaa !5
  %8230 = call ptr @s2n_strerror(i32 noundef %8229, ptr noundef @.str.60)
  %8231 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8232 = load i32, ptr %8231, align 4, !tbaa !5
  %8233 = call ptr @s2n_strerror_debug(i32 noundef %8232, ptr noundef @.str.60)
  %8234 = call ptr @__errno_location() #14
  %8235 = load i32, ptr %8234, align 4, !tbaa !5
  %8236 = call ptr @strerror(i32 noundef %8235) #13
  %8237 = call ptr @__errno_location() #14
  %8238 = load i32, ptr %8237, align 4, !tbaa !5
  %8239 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8226, ptr noundef @.str.58, i32 noundef %8227, ptr noundef @.str.161, ptr noundef @.str.57, i32 noundef 296, ptr noundef %8230, ptr noundef %8233, ptr noundef %8236, i32 noundef %8238) #13
  br label %8257

8240:                                             ; preds = %8218, %8211
  %8241 = load i32, ptr %177, align 4, !tbaa !5
  %8242 = call ptr @__errno_location() #14
  store i32 %8241, ptr %8242, align 4, !tbaa !5
  %8243 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8244 = load i32, ptr @test_count, align 4, !tbaa !5
  %8245 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8246 = load i32, ptr %8245, align 4, !tbaa !5
  %8247 = call ptr @s2n_strerror(i32 noundef %8246, ptr noundef @.str.60)
  %8248 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8249 = load i32, ptr %8248, align 4, !tbaa !5
  %8250 = call ptr @s2n_strerror_debug(i32 noundef %8249, ptr noundef @.str.60)
  %8251 = call ptr @__errno_location() #14
  %8252 = load i32, ptr %8251, align 4, !tbaa !5
  %8253 = call ptr @strerror(i32 noundef %8252) #13
  %8254 = call ptr @__errno_location() #14
  %8255 = load i32, ptr %8254, align 4, !tbaa !5
  %8256 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8243, ptr noundef @.str.61, i32 noundef %8244, ptr noundef @.str.161, ptr noundef @.str.57, i32 noundef 296, ptr noundef %8247, ptr noundef %8250, ptr noundef %8253, i32 noundef %8255) #13
  br label %8257

8257:                                             ; preds = %8240, %8223
  call void @llvm.lifetime.end.p0(i64 4, ptr %177) #13
  br label %8258

8258:                                             ; preds = %8257
  br label %8259

8259:                                             ; preds = %8258
  call void @exit(i32 noundef 1) #15
  unreachable

8260:                                             ; No predecessors!
  br label %8261

8261:                                             ; preds = %8260
  br label %8262

8262:                                             ; preds = %8261, %8203
  br label %8263

8263:                                             ; preds = %8262
  br label %8264

8264:                                             ; preds = %8263
  br label %8265

8265:                                             ; preds = %8264
  %8266 = load i32, ptr @test_count, align 4, !tbaa !5
  %8267 = add nsw i32 %8266, 1
  store i32 %8267, ptr @test_count, align 4, !tbaa !5
  %8268 = load ptr, ptr %91, align 8, !tbaa !9
  %8269 = call i32 @s2n_handshake_write_io(ptr noundef %8268)
  %8270 = icmp eq i32 %8269, -1
  br i1 %8270, label %8271, label %8324

8271:                                             ; preds = %8265
  br label %8272

8272:                                             ; preds = %8271
  br label %8273

8273:                                             ; preds = %8272
  call void @llvm.lifetime.start.p0(i64 4, ptr %178) #13
  %8274 = call ptr @__errno_location() #14
  %8275 = load i32, ptr %8274, align 4, !tbaa !5
  store i32 %8275, ptr %178, align 4, !tbaa !5
  %8276 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8277 = call i32 @s2n_print_stacktrace(ptr noundef %8276)
  %8278 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8279 = trunc i8 %8278 to i1
  br i1 %8279, label %8280, label %8302

8280:                                             ; preds = %8273
  %8281 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8282 = call i32 @fileno(ptr noundef %8281) #13
  %8283 = call i32 @isatty(i32 noundef %8282) #13
  %8284 = icmp ne i32 %8283, 0
  br i1 %8284, label %8285, label %8302

8285:                                             ; preds = %8280
  %8286 = load i32, ptr %178, align 4, !tbaa !5
  %8287 = call ptr @__errno_location() #14
  store i32 %8286, ptr %8287, align 4, !tbaa !5
  %8288 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8289 = load i32, ptr @test_count, align 4, !tbaa !5
  %8290 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8291 = load i32, ptr %8290, align 4, !tbaa !5
  %8292 = call ptr @s2n_strerror(i32 noundef %8291, ptr noundef @.str.60)
  %8293 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8294 = load i32, ptr %8293, align 4, !tbaa !5
  %8295 = call ptr @s2n_strerror_debug(i32 noundef %8294, ptr noundef @.str.60)
  %8296 = call ptr @__errno_location() #14
  %8297 = load i32, ptr %8296, align 4, !tbaa !5
  %8298 = call ptr @strerror(i32 noundef %8297) #13
  %8299 = call ptr @__errno_location() #14
  %8300 = load i32, ptr %8299, align 4, !tbaa !5
  %8301 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8288, ptr noundef @.str.58, i32 noundef %8289, ptr noundef @.str.127, ptr noundef @.str.57, i32 noundef 297, ptr noundef %8292, ptr noundef %8295, ptr noundef %8298, i32 noundef %8300) #13
  br label %8319

8302:                                             ; preds = %8280, %8273
  %8303 = load i32, ptr %178, align 4, !tbaa !5
  %8304 = call ptr @__errno_location() #14
  store i32 %8303, ptr %8304, align 4, !tbaa !5
  %8305 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8306 = load i32, ptr @test_count, align 4, !tbaa !5
  %8307 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8308 = load i32, ptr %8307, align 4, !tbaa !5
  %8309 = call ptr @s2n_strerror(i32 noundef %8308, ptr noundef @.str.60)
  %8310 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8311 = load i32, ptr %8310, align 4, !tbaa !5
  %8312 = call ptr @s2n_strerror_debug(i32 noundef %8311, ptr noundef @.str.60)
  %8313 = call ptr @__errno_location() #14
  %8314 = load i32, ptr %8313, align 4, !tbaa !5
  %8315 = call ptr @strerror(i32 noundef %8314) #13
  %8316 = call ptr @__errno_location() #14
  %8317 = load i32, ptr %8316, align 4, !tbaa !5
  %8318 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8305, ptr noundef @.str.61, i32 noundef %8306, ptr noundef @.str.127, ptr noundef @.str.57, i32 noundef 297, ptr noundef %8309, ptr noundef %8312, ptr noundef %8315, i32 noundef %8317) #13
  br label %8319

8319:                                             ; preds = %8302, %8285
  call void @llvm.lifetime.end.p0(i64 4, ptr %178) #13
  br label %8320

8320:                                             ; preds = %8319
  br label %8321

8321:                                             ; preds = %8320
  call void @exit(i32 noundef 1) #15
  unreachable

8322:                                             ; No predecessors!
  br label %8323

8323:                                             ; preds = %8322
  br label %8324

8324:                                             ; preds = %8323, %8265
  br label %8325

8325:                                             ; preds = %8324
  br label %8326

8326:                                             ; preds = %8325
  br label %8327

8327:                                             ; preds = %8326
  %8328 = load i32, ptr @test_count, align 4, !tbaa !5
  %8329 = add nsw i32 %8328, 1
  store i32 %8329, ptr @test_count, align 4, !tbaa !5
  %8330 = load ptr, ptr %92, align 8, !tbaa !9
  %8331 = call i32 @s2n_conn_get_current_message_type(ptr noundef %8330)
  %8332 = icmp eq i32 %8331, 13
  br i1 %8332, label %8386, label %8333

8333:                                             ; preds = %8327
  br label %8334

8334:                                             ; preds = %8333
  br label %8335

8335:                                             ; preds = %8334
  call void @llvm.lifetime.start.p0(i64 4, ptr %179) #13
  %8336 = call ptr @__errno_location() #14
  %8337 = load i32, ptr %8336, align 4, !tbaa !5
  store i32 %8337, ptr %179, align 4, !tbaa !5
  %8338 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8339 = call i32 @s2n_print_stacktrace(ptr noundef %8338)
  %8340 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8341 = trunc i8 %8340 to i1
  br i1 %8341, label %8342, label %8364

8342:                                             ; preds = %8335
  %8343 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8344 = call i32 @fileno(ptr noundef %8343) #13
  %8345 = call i32 @isatty(i32 noundef %8344) #13
  %8346 = icmp ne i32 %8345, 0
  br i1 %8346, label %8347, label %8364

8347:                                             ; preds = %8342
  %8348 = load i32, ptr %179, align 4, !tbaa !5
  %8349 = call ptr @__errno_location() #14
  store i32 %8348, ptr %8349, align 4, !tbaa !5
  %8350 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8351 = load i32, ptr @test_count, align 4, !tbaa !5
  %8352 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8353 = load i32, ptr %8352, align 4, !tbaa !5
  %8354 = call ptr @s2n_strerror(i32 noundef %8353, ptr noundef @.str.60)
  %8355 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8356 = load i32, ptr %8355, align 4, !tbaa !5
  %8357 = call ptr @s2n_strerror_debug(i32 noundef %8356, ptr noundef @.str.60)
  %8358 = call ptr @__errno_location() #14
  %8359 = load i32, ptr %8358, align 4, !tbaa !5
  %8360 = call ptr @strerror(i32 noundef %8359) #13
  %8361 = call ptr @__errno_location() #14
  %8362 = load i32, ptr %8361, align 4, !tbaa !5
  %8363 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8350, ptr noundef @.str.58, i32 noundef %8351, ptr noundef @.str.162, ptr noundef @.str.57, i32 noundef 301, ptr noundef %8354, ptr noundef %8357, ptr noundef %8360, i32 noundef %8362) #13
  br label %8381

8364:                                             ; preds = %8342, %8335
  %8365 = load i32, ptr %179, align 4, !tbaa !5
  %8366 = call ptr @__errno_location() #14
  store i32 %8365, ptr %8366, align 4, !tbaa !5
  %8367 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8368 = load i32, ptr @test_count, align 4, !tbaa !5
  %8369 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8370 = load i32, ptr %8369, align 4, !tbaa !5
  %8371 = call ptr @s2n_strerror(i32 noundef %8370, ptr noundef @.str.60)
  %8372 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8373 = load i32, ptr %8372, align 4, !tbaa !5
  %8374 = call ptr @s2n_strerror_debug(i32 noundef %8373, ptr noundef @.str.60)
  %8375 = call ptr @__errno_location() #14
  %8376 = load i32, ptr %8375, align 4, !tbaa !5
  %8377 = call ptr @strerror(i32 noundef %8376) #13
  %8378 = call ptr @__errno_location() #14
  %8379 = load i32, ptr %8378, align 4, !tbaa !5
  %8380 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8367, ptr noundef @.str.61, i32 noundef %8368, ptr noundef @.str.162, ptr noundef @.str.57, i32 noundef 301, ptr noundef %8371, ptr noundef %8374, ptr noundef %8377, i32 noundef %8379) #13
  br label %8381

8381:                                             ; preds = %8364, %8347
  call void @llvm.lifetime.end.p0(i64 4, ptr %179) #13
  br label %8382

8382:                                             ; preds = %8381
  br label %8383

8383:                                             ; preds = %8382
  call void @exit(i32 noundef 1) #15
  unreachable

8384:                                             ; No predecessors!
  br label %8385

8385:                                             ; preds = %8384
  br label %8386

8386:                                             ; preds = %8385, %8327
  br label %8387

8387:                                             ; preds = %8386
  br label %8388

8388:                                             ; preds = %8387
  br label %8389

8389:                                             ; preds = %8388
  %8390 = load i32, ptr @test_count, align 4, !tbaa !5
  %8391 = add nsw i32 %8390, 1
  store i32 %8391, ptr @test_count, align 4, !tbaa !5
  %8392 = load ptr, ptr %92, align 8, !tbaa !9
  %8393 = call i32 @s2n_handshake_read_io(ptr noundef %8392)
  %8394 = icmp eq i32 %8393, -1
  br i1 %8394, label %8395, label %8448

8395:                                             ; preds = %8389
  br label %8396

8396:                                             ; preds = %8395
  br label %8397

8397:                                             ; preds = %8396
  call void @llvm.lifetime.start.p0(i64 4, ptr %180) #13
  %8398 = call ptr @__errno_location() #14
  %8399 = load i32, ptr %8398, align 4, !tbaa !5
  store i32 %8399, ptr %180, align 4, !tbaa !5
  %8400 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8401 = call i32 @s2n_print_stacktrace(ptr noundef %8400)
  %8402 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8403 = trunc i8 %8402 to i1
  br i1 %8403, label %8404, label %8426

8404:                                             ; preds = %8397
  %8405 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8406 = call i32 @fileno(ptr noundef %8405) #13
  %8407 = call i32 @isatty(i32 noundef %8406) #13
  %8408 = icmp ne i32 %8407, 0
  br i1 %8408, label %8409, label %8426

8409:                                             ; preds = %8404
  %8410 = load i32, ptr %180, align 4, !tbaa !5
  %8411 = call ptr @__errno_location() #14
  store i32 %8410, ptr %8411, align 4, !tbaa !5
  %8412 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8413 = load i32, ptr @test_count, align 4, !tbaa !5
  %8414 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8415 = load i32, ptr %8414, align 4, !tbaa !5
  %8416 = call ptr @s2n_strerror(i32 noundef %8415, ptr noundef @.str.60)
  %8417 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8418 = load i32, ptr %8417, align 4, !tbaa !5
  %8419 = call ptr @s2n_strerror_debug(i32 noundef %8418, ptr noundef @.str.60)
  %8420 = call ptr @__errno_location() #14
  %8421 = load i32, ptr %8420, align 4, !tbaa !5
  %8422 = call ptr @strerror(i32 noundef %8421) #13
  %8423 = call ptr @__errno_location() #14
  %8424 = load i32, ptr %8423, align 4, !tbaa !5
  %8425 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8412, ptr noundef @.str.58, i32 noundef %8413, ptr noundef @.str.133, ptr noundef @.str.57, i32 noundef 302, ptr noundef %8416, ptr noundef %8419, ptr noundef %8422, i32 noundef %8424) #13
  br label %8443

8426:                                             ; preds = %8404, %8397
  %8427 = load i32, ptr %180, align 4, !tbaa !5
  %8428 = call ptr @__errno_location() #14
  store i32 %8427, ptr %8428, align 4, !tbaa !5
  %8429 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8430 = load i32, ptr @test_count, align 4, !tbaa !5
  %8431 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8432 = load i32, ptr %8431, align 4, !tbaa !5
  %8433 = call ptr @s2n_strerror(i32 noundef %8432, ptr noundef @.str.60)
  %8434 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8435 = load i32, ptr %8434, align 4, !tbaa !5
  %8436 = call ptr @s2n_strerror_debug(i32 noundef %8435, ptr noundef @.str.60)
  %8437 = call ptr @__errno_location() #14
  %8438 = load i32, ptr %8437, align 4, !tbaa !5
  %8439 = call ptr @strerror(i32 noundef %8438) #13
  %8440 = call ptr @__errno_location() #14
  %8441 = load i32, ptr %8440, align 4, !tbaa !5
  %8442 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8429, ptr noundef @.str.61, i32 noundef %8430, ptr noundef @.str.133, ptr noundef @.str.57, i32 noundef 302, ptr noundef %8433, ptr noundef %8436, ptr noundef %8439, i32 noundef %8441) #13
  br label %8443

8443:                                             ; preds = %8426, %8409
  call void @llvm.lifetime.end.p0(i64 4, ptr %180) #13
  br label %8444

8444:                                             ; preds = %8443
  br label %8445

8445:                                             ; preds = %8444
  call void @exit(i32 noundef 1) #15
  unreachable

8446:                                             ; No predecessors!
  br label %8447

8447:                                             ; preds = %8446
  br label %8448

8448:                                             ; preds = %8447, %8389
  br label %8449

8449:                                             ; preds = %8448
  br label %8450

8450:                                             ; preds = %8449
  br label %8451

8451:                                             ; preds = %8450
  %8452 = load i32, ptr @test_count, align 4, !tbaa !5
  %8453 = add nsw i32 %8452, 1
  store i32 %8453, ptr @test_count, align 4, !tbaa !5
  %8454 = load ptr, ptr %92, align 8, !tbaa !9
  %8455 = call i32 @s2n_conn_get_current_message_type(ptr noundef %8454)
  %8456 = icmp eq i32 %8455, 13
  br i1 %8456, label %8510, label %8457

8457:                                             ; preds = %8451
  br label %8458

8458:                                             ; preds = %8457
  br label %8459

8459:                                             ; preds = %8458
  call void @llvm.lifetime.start.p0(i64 4, ptr %181) #13
  %8460 = call ptr @__errno_location() #14
  %8461 = load i32, ptr %8460, align 4, !tbaa !5
  store i32 %8461, ptr %181, align 4, !tbaa !5
  %8462 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8463 = call i32 @s2n_print_stacktrace(ptr noundef %8462)
  %8464 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8465 = trunc i8 %8464 to i1
  br i1 %8465, label %8466, label %8488

8466:                                             ; preds = %8459
  %8467 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8468 = call i32 @fileno(ptr noundef %8467) #13
  %8469 = call i32 @isatty(i32 noundef %8468) #13
  %8470 = icmp ne i32 %8469, 0
  br i1 %8470, label %8471, label %8488

8471:                                             ; preds = %8466
  %8472 = load i32, ptr %181, align 4, !tbaa !5
  %8473 = call ptr @__errno_location() #14
  store i32 %8472, ptr %8473, align 4, !tbaa !5
  %8474 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8475 = load i32, ptr @test_count, align 4, !tbaa !5
  %8476 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8477 = load i32, ptr %8476, align 4, !tbaa !5
  %8478 = call ptr @s2n_strerror(i32 noundef %8477, ptr noundef @.str.60)
  %8479 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8480 = load i32, ptr %8479, align 4, !tbaa !5
  %8481 = call ptr @s2n_strerror_debug(i32 noundef %8480, ptr noundef @.str.60)
  %8482 = call ptr @__errno_location() #14
  %8483 = load i32, ptr %8482, align 4, !tbaa !5
  %8484 = call ptr @strerror(i32 noundef %8483) #13
  %8485 = call ptr @__errno_location() #14
  %8486 = load i32, ptr %8485, align 4, !tbaa !5
  %8487 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8474, ptr noundef @.str.58, i32 noundef %8475, ptr noundef @.str.162, ptr noundef @.str.57, i32 noundef 305, ptr noundef %8478, ptr noundef %8481, ptr noundef %8484, i32 noundef %8486) #13
  br label %8505

8488:                                             ; preds = %8466, %8459
  %8489 = load i32, ptr %181, align 4, !tbaa !5
  %8490 = call ptr @__errno_location() #14
  store i32 %8489, ptr %8490, align 4, !tbaa !5
  %8491 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8492 = load i32, ptr @test_count, align 4, !tbaa !5
  %8493 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8494 = load i32, ptr %8493, align 4, !tbaa !5
  %8495 = call ptr @s2n_strerror(i32 noundef %8494, ptr noundef @.str.60)
  %8496 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8497 = load i32, ptr %8496, align 4, !tbaa !5
  %8498 = call ptr @s2n_strerror_debug(i32 noundef %8497, ptr noundef @.str.60)
  %8499 = call ptr @__errno_location() #14
  %8500 = load i32, ptr %8499, align 4, !tbaa !5
  %8501 = call ptr @strerror(i32 noundef %8500) #13
  %8502 = call ptr @__errno_location() #14
  %8503 = load i32, ptr %8502, align 4, !tbaa !5
  %8504 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8491, ptr noundef @.str.61, i32 noundef %8492, ptr noundef @.str.162, ptr noundef @.str.57, i32 noundef 305, ptr noundef %8495, ptr noundef %8498, ptr noundef %8501, i32 noundef %8503) #13
  br label %8505

8505:                                             ; preds = %8488, %8471
  call void @llvm.lifetime.end.p0(i64 4, ptr %181) #13
  br label %8506

8506:                                             ; preds = %8505
  br label %8507

8507:                                             ; preds = %8506
  call void @exit(i32 noundef 1) #15
  unreachable

8508:                                             ; No predecessors!
  br label %8509

8509:                                             ; preds = %8508
  br label %8510

8510:                                             ; preds = %8509, %8451
  br label %8511

8511:                                             ; preds = %8510
  br label %8512

8512:                                             ; preds = %8511
  br label %8513

8513:                                             ; preds = %8512
  %8514 = load i32, ptr @test_count, align 4, !tbaa !5
  %8515 = add nsw i32 %8514, 1
  store i32 %8515, ptr @test_count, align 4, !tbaa !5
  %8516 = load ptr, ptr %92, align 8, !tbaa !9
  %8517 = call i32 @s2n_handshake_read_io(ptr noundef %8516)
  %8518 = icmp eq i32 %8517, -1
  br i1 %8518, label %8519, label %8572

8519:                                             ; preds = %8513
  br label %8520

8520:                                             ; preds = %8519
  br label %8521

8521:                                             ; preds = %8520
  call void @llvm.lifetime.start.p0(i64 4, ptr %182) #13
  %8522 = call ptr @__errno_location() #14
  %8523 = load i32, ptr %8522, align 4, !tbaa !5
  store i32 %8523, ptr %182, align 4, !tbaa !5
  %8524 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8525 = call i32 @s2n_print_stacktrace(ptr noundef %8524)
  %8526 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8527 = trunc i8 %8526 to i1
  br i1 %8527, label %8528, label %8550

8528:                                             ; preds = %8521
  %8529 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8530 = call i32 @fileno(ptr noundef %8529) #13
  %8531 = call i32 @isatty(i32 noundef %8530) #13
  %8532 = icmp ne i32 %8531, 0
  br i1 %8532, label %8533, label %8550

8533:                                             ; preds = %8528
  %8534 = load i32, ptr %182, align 4, !tbaa !5
  %8535 = call ptr @__errno_location() #14
  store i32 %8534, ptr %8535, align 4, !tbaa !5
  %8536 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8537 = load i32, ptr @test_count, align 4, !tbaa !5
  %8538 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8539 = load i32, ptr %8538, align 4, !tbaa !5
  %8540 = call ptr @s2n_strerror(i32 noundef %8539, ptr noundef @.str.60)
  %8541 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8542 = load i32, ptr %8541, align 4, !tbaa !5
  %8543 = call ptr @s2n_strerror_debug(i32 noundef %8542, ptr noundef @.str.60)
  %8544 = call ptr @__errno_location() #14
  %8545 = load i32, ptr %8544, align 4, !tbaa !5
  %8546 = call ptr @strerror(i32 noundef %8545) #13
  %8547 = call ptr @__errno_location() #14
  %8548 = load i32, ptr %8547, align 4, !tbaa !5
  %8549 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8536, ptr noundef @.str.58, i32 noundef %8537, ptr noundef @.str.133, ptr noundef @.str.57, i32 noundef 306, ptr noundef %8540, ptr noundef %8543, ptr noundef %8546, i32 noundef %8548) #13
  br label %8567

8550:                                             ; preds = %8528, %8521
  %8551 = load i32, ptr %182, align 4, !tbaa !5
  %8552 = call ptr @__errno_location() #14
  store i32 %8551, ptr %8552, align 4, !tbaa !5
  %8553 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8554 = load i32, ptr @test_count, align 4, !tbaa !5
  %8555 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8556 = load i32, ptr %8555, align 4, !tbaa !5
  %8557 = call ptr @s2n_strerror(i32 noundef %8556, ptr noundef @.str.60)
  %8558 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8559 = load i32, ptr %8558, align 4, !tbaa !5
  %8560 = call ptr @s2n_strerror_debug(i32 noundef %8559, ptr noundef @.str.60)
  %8561 = call ptr @__errno_location() #14
  %8562 = load i32, ptr %8561, align 4, !tbaa !5
  %8563 = call ptr @strerror(i32 noundef %8562) #13
  %8564 = call ptr @__errno_location() #14
  %8565 = load i32, ptr %8564, align 4, !tbaa !5
  %8566 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8553, ptr noundef @.str.61, i32 noundef %8554, ptr noundef @.str.133, ptr noundef @.str.57, i32 noundef 306, ptr noundef %8557, ptr noundef %8560, ptr noundef %8563, i32 noundef %8565) #13
  br label %8567

8567:                                             ; preds = %8550, %8533
  call void @llvm.lifetime.end.p0(i64 4, ptr %182) #13
  br label %8568

8568:                                             ; preds = %8567
  br label %8569

8569:                                             ; preds = %8568
  call void @exit(i32 noundef 1) #15
  unreachable

8570:                                             ; No predecessors!
  br label %8571

8571:                                             ; preds = %8570
  br label %8572

8572:                                             ; preds = %8571, %8513
  br label %8573

8573:                                             ; preds = %8572
  br label %8574

8574:                                             ; preds = %8573
  br label %8575

8575:                                             ; preds = %8574
  %8576 = load i32, ptr @test_count, align 4, !tbaa !5
  %8577 = add nsw i32 %8576, 1
  store i32 %8577, ptr @test_count, align 4, !tbaa !5
  %8578 = load ptr, ptr %91, align 8, !tbaa !9
  %8579 = call i32 @s2n_conn_get_current_message_type(ptr noundef %8578)
  %8580 = icmp eq i32 %8579, 20
  br i1 %8580, label %8634, label %8581

8581:                                             ; preds = %8575
  br label %8582

8582:                                             ; preds = %8581
  br label %8583

8583:                                             ; preds = %8582
  call void @llvm.lifetime.start.p0(i64 4, ptr %183) #13
  %8584 = call ptr @__errno_location() #14
  %8585 = load i32, ptr %8584, align 4, !tbaa !5
  store i32 %8585, ptr %183, align 4, !tbaa !5
  %8586 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8587 = call i32 @s2n_print_stacktrace(ptr noundef %8586)
  %8588 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8589 = trunc i8 %8588 to i1
  br i1 %8589, label %8590, label %8612

8590:                                             ; preds = %8583
  %8591 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8592 = call i32 @fileno(ptr noundef %8591) #13
  %8593 = call i32 @isatty(i32 noundef %8592) #13
  %8594 = icmp ne i32 %8593, 0
  br i1 %8594, label %8595, label %8612

8595:                                             ; preds = %8590
  %8596 = load i32, ptr %183, align 4, !tbaa !5
  %8597 = call ptr @__errno_location() #14
  store i32 %8596, ptr %8597, align 4, !tbaa !5
  %8598 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8599 = load i32, ptr @test_count, align 4, !tbaa !5
  %8600 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8601 = load i32, ptr %8600, align 4, !tbaa !5
  %8602 = call ptr @s2n_strerror(i32 noundef %8601, ptr noundef @.str.60)
  %8603 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8604 = load i32, ptr %8603, align 4, !tbaa !5
  %8605 = call ptr @s2n_strerror_debug(i32 noundef %8604, ptr noundef @.str.60)
  %8606 = call ptr @__errno_location() #14
  %8607 = load i32, ptr %8606, align 4, !tbaa !5
  %8608 = call ptr @strerror(i32 noundef %8607) #13
  %8609 = call ptr @__errno_location() #14
  %8610 = load i32, ptr %8609, align 4, !tbaa !5
  %8611 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8598, ptr noundef @.str.58, i32 noundef %8599, ptr noundef @.str.163, ptr noundef @.str.57, i32 noundef 308, ptr noundef %8602, ptr noundef %8605, ptr noundef %8608, i32 noundef %8610) #13
  br label %8629

8612:                                             ; preds = %8590, %8583
  %8613 = load i32, ptr %183, align 4, !tbaa !5
  %8614 = call ptr @__errno_location() #14
  store i32 %8613, ptr %8614, align 4, !tbaa !5
  %8615 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8616 = load i32, ptr @test_count, align 4, !tbaa !5
  %8617 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8618 = load i32, ptr %8617, align 4, !tbaa !5
  %8619 = call ptr @s2n_strerror(i32 noundef %8618, ptr noundef @.str.60)
  %8620 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8621 = load i32, ptr %8620, align 4, !tbaa !5
  %8622 = call ptr @s2n_strerror_debug(i32 noundef %8621, ptr noundef @.str.60)
  %8623 = call ptr @__errno_location() #14
  %8624 = load i32, ptr %8623, align 4, !tbaa !5
  %8625 = call ptr @strerror(i32 noundef %8624) #13
  %8626 = call ptr @__errno_location() #14
  %8627 = load i32, ptr %8626, align 4, !tbaa !5
  %8628 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8615, ptr noundef @.str.61, i32 noundef %8616, ptr noundef @.str.163, ptr noundef @.str.57, i32 noundef 308, ptr noundef %8619, ptr noundef %8622, ptr noundef %8625, i32 noundef %8627) #13
  br label %8629

8629:                                             ; preds = %8612, %8595
  call void @llvm.lifetime.end.p0(i64 4, ptr %183) #13
  br label %8630

8630:                                             ; preds = %8629
  br label %8631

8631:                                             ; preds = %8630
  call void @exit(i32 noundef 1) #15
  unreachable

8632:                                             ; No predecessors!
  br label %8633

8633:                                             ; preds = %8632
  br label %8634

8634:                                             ; preds = %8633, %8575
  br label %8635

8635:                                             ; preds = %8634
  br label %8636

8636:                                             ; preds = %8635
  br label %8637

8637:                                             ; preds = %8636
  %8638 = load i32, ptr @test_count, align 4, !tbaa !5
  %8639 = add nsw i32 %8638, 1
  store i32 %8639, ptr @test_count, align 4, !tbaa !5
  %8640 = load ptr, ptr %92, align 8, !tbaa !9
  %8641 = call i32 @s2n_conn_get_current_message_type(ptr noundef %8640)
  %8642 = icmp eq i32 %8641, 20
  br i1 %8642, label %8696, label %8643

8643:                                             ; preds = %8637
  br label %8644

8644:                                             ; preds = %8643
  br label %8645

8645:                                             ; preds = %8644
  call void @llvm.lifetime.start.p0(i64 4, ptr %184) #13
  %8646 = call ptr @__errno_location() #14
  %8647 = load i32, ptr %8646, align 4, !tbaa !5
  store i32 %8647, ptr %184, align 4, !tbaa !5
  %8648 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8649 = call i32 @s2n_print_stacktrace(ptr noundef %8648)
  %8650 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8651 = trunc i8 %8650 to i1
  br i1 %8651, label %8652, label %8674

8652:                                             ; preds = %8645
  %8653 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8654 = call i32 @fileno(ptr noundef %8653) #13
  %8655 = call i32 @isatty(i32 noundef %8654) #13
  %8656 = icmp ne i32 %8655, 0
  br i1 %8656, label %8657, label %8674

8657:                                             ; preds = %8652
  %8658 = load i32, ptr %184, align 4, !tbaa !5
  %8659 = call ptr @__errno_location() #14
  store i32 %8658, ptr %8659, align 4, !tbaa !5
  %8660 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8661 = load i32, ptr @test_count, align 4, !tbaa !5
  %8662 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8663 = load i32, ptr %8662, align 4, !tbaa !5
  %8664 = call ptr @s2n_strerror(i32 noundef %8663, ptr noundef @.str.60)
  %8665 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8666 = load i32, ptr %8665, align 4, !tbaa !5
  %8667 = call ptr @s2n_strerror_debug(i32 noundef %8666, ptr noundef @.str.60)
  %8668 = call ptr @__errno_location() #14
  %8669 = load i32, ptr %8668, align 4, !tbaa !5
  %8670 = call ptr @strerror(i32 noundef %8669) #13
  %8671 = call ptr @__errno_location() #14
  %8672 = load i32, ptr %8671, align 4, !tbaa !5
  %8673 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8660, ptr noundef @.str.58, i32 noundef %8661, ptr noundef @.str.164, ptr noundef @.str.57, i32 noundef 309, ptr noundef %8664, ptr noundef %8667, ptr noundef %8670, i32 noundef %8672) #13
  br label %8691

8674:                                             ; preds = %8652, %8645
  %8675 = load i32, ptr %184, align 4, !tbaa !5
  %8676 = call ptr @__errno_location() #14
  store i32 %8675, ptr %8676, align 4, !tbaa !5
  %8677 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8678 = load i32, ptr @test_count, align 4, !tbaa !5
  %8679 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8680 = load i32, ptr %8679, align 4, !tbaa !5
  %8681 = call ptr @s2n_strerror(i32 noundef %8680, ptr noundef @.str.60)
  %8682 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8683 = load i32, ptr %8682, align 4, !tbaa !5
  %8684 = call ptr @s2n_strerror_debug(i32 noundef %8683, ptr noundef @.str.60)
  %8685 = call ptr @__errno_location() #14
  %8686 = load i32, ptr %8685, align 4, !tbaa !5
  %8687 = call ptr @strerror(i32 noundef %8686) #13
  %8688 = call ptr @__errno_location() #14
  %8689 = load i32, ptr %8688, align 4, !tbaa !5
  %8690 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8677, ptr noundef @.str.61, i32 noundef %8678, ptr noundef @.str.164, ptr noundef @.str.57, i32 noundef 309, ptr noundef %8681, ptr noundef %8684, ptr noundef %8687, i32 noundef %8689) #13
  br label %8691

8691:                                             ; preds = %8674, %8657
  call void @llvm.lifetime.end.p0(i64 4, ptr %184) #13
  br label %8692

8692:                                             ; preds = %8691
  br label %8693

8693:                                             ; preds = %8692
  call void @exit(i32 noundef 1) #15
  unreachable

8694:                                             ; No predecessors!
  br label %8695

8695:                                             ; preds = %8694
  br label %8696

8696:                                             ; preds = %8695, %8637
  br label %8697

8697:                                             ; preds = %8696
  br label %8698

8698:                                             ; preds = %8697
  br label %8699

8699:                                             ; preds = %8698
  br label %8700

8700:                                             ; preds = %8699
  %8701 = load i32, ptr @test_count, align 4, !tbaa !5
  %8702 = add nsw i32 %8701, 1
  store i32 %8702, ptr @test_count, align 4, !tbaa !5
  %8703 = getelementptr inbounds %struct.s2n_tls13_keys, ptr %138, i32 0, i32 4
  %8704 = getelementptr inbounds %struct.s2n_blob, ptr %8703, i32 0, i32 1
  %8705 = load i32, ptr %8704, align 8, !tbaa !79
  %8706 = getelementptr inbounds %struct.s2n_tls13_keys, ptr %159, i32 0, i32 4
  %8707 = getelementptr inbounds %struct.s2n_blob, ptr %8706, i32 0, i32 1
  %8708 = load i32, ptr %8707, align 8, !tbaa !79
  %8709 = icmp eq i32 %8705, %8708
  br i1 %8709, label %8763, label %8710

8710:                                             ; preds = %8700
  br label %8711

8711:                                             ; preds = %8710
  br label %8712

8712:                                             ; preds = %8711
  call void @llvm.lifetime.start.p0(i64 4, ptr %185) #13
  %8713 = call ptr @__errno_location() #14
  %8714 = load i32, ptr %8713, align 4, !tbaa !5
  store i32 %8714, ptr %185, align 4, !tbaa !5
  %8715 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8716 = call i32 @s2n_print_stacktrace(ptr noundef %8715)
  %8717 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8718 = trunc i8 %8717 to i1
  br i1 %8718, label %8719, label %8741

8719:                                             ; preds = %8712
  %8720 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8721 = call i32 @fileno(ptr noundef %8720) #13
  %8722 = call i32 @isatty(i32 noundef %8721) #13
  %8723 = icmp ne i32 %8722, 0
  br i1 %8723, label %8724, label %8741

8724:                                             ; preds = %8719
  %8725 = load i32, ptr %185, align 4, !tbaa !5
  %8726 = call ptr @__errno_location() #14
  store i32 %8725, ptr %8726, align 4, !tbaa !5
  %8727 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8728 = load i32, ptr @test_count, align 4, !tbaa !5
  %8729 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8730 = load i32, ptr %8729, align 4, !tbaa !5
  %8731 = call ptr @s2n_strerror(i32 noundef %8730, ptr noundef @.str.60)
  %8732 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8733 = load i32, ptr %8732, align 4, !tbaa !5
  %8734 = call ptr @s2n_strerror_debug(i32 noundef %8733, ptr noundef @.str.60)
  %8735 = call ptr @__errno_location() #14
  %8736 = load i32, ptr %8735, align 4, !tbaa !5
  %8737 = call ptr @strerror(i32 noundef %8736) #13
  %8738 = call ptr @__errno_location() #14
  %8739 = load i32, ptr %8738, align 4, !tbaa !5
  %8740 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8727, ptr noundef @.str.58, i32 noundef %8728, ptr noundef @.str.152, ptr noundef @.str.57, i32 noundef 312, ptr noundef %8731, ptr noundef %8734, ptr noundef %8737, i32 noundef %8739) #13
  br label %8758

8741:                                             ; preds = %8719, %8712
  %8742 = load i32, ptr %185, align 4, !tbaa !5
  %8743 = call ptr @__errno_location() #14
  store i32 %8742, ptr %8743, align 4, !tbaa !5
  %8744 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8745 = load i32, ptr @test_count, align 4, !tbaa !5
  %8746 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8747 = load i32, ptr %8746, align 4, !tbaa !5
  %8748 = call ptr @s2n_strerror(i32 noundef %8747, ptr noundef @.str.60)
  %8749 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8750 = load i32, ptr %8749, align 4, !tbaa !5
  %8751 = call ptr @s2n_strerror_debug(i32 noundef %8750, ptr noundef @.str.60)
  %8752 = call ptr @__errno_location() #14
  %8753 = load i32, ptr %8752, align 4, !tbaa !5
  %8754 = call ptr @strerror(i32 noundef %8753) #13
  %8755 = call ptr @__errno_location() #14
  %8756 = load i32, ptr %8755, align 4, !tbaa !5
  %8757 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8744, ptr noundef @.str.61, i32 noundef %8745, ptr noundef @.str.152, ptr noundef @.str.57, i32 noundef 312, ptr noundef %8748, ptr noundef %8751, ptr noundef %8754, i32 noundef %8756) #13
  br label %8758

8758:                                             ; preds = %8741, %8724
  call void @llvm.lifetime.end.p0(i64 4, ptr %185) #13
  br label %8759

8759:                                             ; preds = %8758
  br label %8760

8760:                                             ; preds = %8759
  call void @exit(i32 noundef 1) #15
  unreachable

8761:                                             ; No predecessors!
  br label %8762

8762:                                             ; preds = %8761
  br label %8763

8763:                                             ; preds = %8762, %8700
  br label %8764

8764:                                             ; preds = %8763
  br label %8765

8765:                                             ; preds = %8764
  br label %8766

8766:                                             ; preds = %8765
  %8767 = getelementptr inbounds %struct.s2n_tls13_keys, ptr %138, i32 0, i32 4
  %8768 = getelementptr inbounds %struct.s2n_blob, ptr %8767, i32 0, i32 1
  %8769 = load i32, ptr %8768, align 8, !tbaa !79
  %8770 = icmp ne i32 %8769, 0
  br i1 %8770, label %8771, label %8843

8771:                                             ; preds = %8766
  br label %8772

8772:                                             ; preds = %8771
  %8773 = load i32, ptr @test_count, align 4, !tbaa !5
  %8774 = add nsw i32 %8773, 1
  store i32 %8774, ptr @test_count, align 4, !tbaa !5
  %8775 = getelementptr inbounds %struct.s2n_tls13_keys, ptr %138, i32 0, i32 4
  %8776 = getelementptr inbounds %struct.s2n_blob, ptr %8775, i32 0, i32 0
  %8777 = load ptr, ptr %8776, align 8, !tbaa !80
  %8778 = getelementptr inbounds %struct.s2n_tls13_keys, ptr %159, i32 0, i32 4
  %8779 = getelementptr inbounds %struct.s2n_blob, ptr %8778, i32 0, i32 0
  %8780 = load ptr, ptr %8779, align 8, !tbaa !80
  %8781 = getelementptr inbounds %struct.s2n_tls13_keys, ptr %138, i32 0, i32 4
  %8782 = getelementptr inbounds %struct.s2n_blob, ptr %8781, i32 0, i32 1
  %8783 = load i32, ptr %8782, align 8, !tbaa !79
  %8784 = zext i32 %8783 to i64
  %8785 = call i32 @memcmp(ptr noundef %8777, ptr noundef %8780, i64 noundef %8784) #16
  %8786 = icmp eq i32 %8785, 0
  br i1 %8786, label %8840, label %8787

8787:                                             ; preds = %8772
  br label %8788

8788:                                             ; preds = %8787
  br label %8789

8789:                                             ; preds = %8788
  call void @llvm.lifetime.start.p0(i64 4, ptr %186) #13
  %8790 = call ptr @__errno_location() #14
  %8791 = load i32, ptr %8790, align 4, !tbaa !5
  store i32 %8791, ptr %186, align 4, !tbaa !5
  %8792 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8793 = call i32 @s2n_print_stacktrace(ptr noundef %8792)
  %8794 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8795 = trunc i8 %8794 to i1
  br i1 %8795, label %8796, label %8818

8796:                                             ; preds = %8789
  %8797 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8798 = call i32 @fileno(ptr noundef %8797) #13
  %8799 = call i32 @isatty(i32 noundef %8798) #13
  %8800 = icmp ne i32 %8799, 0
  br i1 %8800, label %8801, label %8818

8801:                                             ; preds = %8796
  %8802 = load i32, ptr %186, align 4, !tbaa !5
  %8803 = call ptr @__errno_location() #14
  store i32 %8802, ptr %8803, align 4, !tbaa !5
  %8804 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8805 = load i32, ptr @test_count, align 4, !tbaa !5
  %8806 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8807 = load i32, ptr %8806, align 4, !tbaa !5
  %8808 = call ptr @s2n_strerror(i32 noundef %8807, ptr noundef @.str.60)
  %8809 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8810 = load i32, ptr %8809, align 4, !tbaa !5
  %8811 = call ptr @s2n_strerror_debug(i32 noundef %8810, ptr noundef @.str.60)
  %8812 = call ptr @__errno_location() #14
  %8813 = load i32, ptr %8812, align 4, !tbaa !5
  %8814 = call ptr @strerror(i32 noundef %8813) #13
  %8815 = call ptr @__errno_location() #14
  %8816 = load i32, ptr %8815, align 4, !tbaa !5
  %8817 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8804, ptr noundef @.str.58, i32 noundef %8805, ptr noundef @.str.153, ptr noundef @.str.57, i32 noundef 312, ptr noundef %8808, ptr noundef %8811, ptr noundef %8814, i32 noundef %8816) #13
  br label %8835

8818:                                             ; preds = %8796, %8789
  %8819 = load i32, ptr %186, align 4, !tbaa !5
  %8820 = call ptr @__errno_location() #14
  store i32 %8819, ptr %8820, align 4, !tbaa !5
  %8821 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8822 = load i32, ptr @test_count, align 4, !tbaa !5
  %8823 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8824 = load i32, ptr %8823, align 4, !tbaa !5
  %8825 = call ptr @s2n_strerror(i32 noundef %8824, ptr noundef @.str.60)
  %8826 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8827 = load i32, ptr %8826, align 4, !tbaa !5
  %8828 = call ptr @s2n_strerror_debug(i32 noundef %8827, ptr noundef @.str.60)
  %8829 = call ptr @__errno_location() #14
  %8830 = load i32, ptr %8829, align 4, !tbaa !5
  %8831 = call ptr @strerror(i32 noundef %8830) #13
  %8832 = call ptr @__errno_location() #14
  %8833 = load i32, ptr %8832, align 4, !tbaa !5
  %8834 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8821, ptr noundef @.str.61, i32 noundef %8822, ptr noundef @.str.153, ptr noundef @.str.57, i32 noundef 312, ptr noundef %8825, ptr noundef %8828, ptr noundef %8831, i32 noundef %8833) #13
  br label %8835

8835:                                             ; preds = %8818, %8801
  call void @llvm.lifetime.end.p0(i64 4, ptr %186) #13
  br label %8836

8836:                                             ; preds = %8835
  br label %8837

8837:                                             ; preds = %8836
  call void @exit(i32 noundef 1) #15
  unreachable

8838:                                             ; No predecessors!
  br label %8839

8839:                                             ; preds = %8838
  br label %8840

8840:                                             ; preds = %8839, %8772
  br label %8841

8841:                                             ; preds = %8840
  br label %8842

8842:                                             ; preds = %8841
  br label %8843

8843:                                             ; preds = %8842, %8766
  br label %8844

8844:                                             ; preds = %8843
  br label %8845

8845:                                             ; preds = %8844
  br label %8846

8846:                                             ; preds = %8845
  br label %8847

8847:                                             ; preds = %8846
  br label %8848

8848:                                             ; preds = %8847
  br label %8849

8849:                                             ; preds = %8848
  %8850 = load i32, ptr @test_count, align 4, !tbaa !5
  %8851 = add nsw i32 %8850, 1
  store i32 %8851, ptr @test_count, align 4, !tbaa !5
  %8852 = getelementptr inbounds %struct.s2n_tls13_keys, ptr %138, i32 0, i32 3
  %8853 = getelementptr inbounds %struct.s2n_blob, ptr %8852, i32 0, i32 1
  %8854 = load i32, ptr %8853, align 8, !tbaa !81
  %8855 = getelementptr inbounds %struct.s2n_tls13_keys, ptr %159, i32 0, i32 3
  %8856 = getelementptr inbounds %struct.s2n_blob, ptr %8855, i32 0, i32 1
  %8857 = load i32, ptr %8856, align 8, !tbaa !81
  %8858 = icmp eq i32 %8854, %8857
  br i1 %8858, label %8912, label %8859

8859:                                             ; preds = %8849
  br label %8860

8860:                                             ; preds = %8859
  br label %8861

8861:                                             ; preds = %8860
  call void @llvm.lifetime.start.p0(i64 4, ptr %187) #13
  %8862 = call ptr @__errno_location() #14
  %8863 = load i32, ptr %8862, align 4, !tbaa !5
  store i32 %8863, ptr %187, align 4, !tbaa !5
  %8864 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8865 = call i32 @s2n_print_stacktrace(ptr noundef %8864)
  %8866 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8867 = trunc i8 %8866 to i1
  br i1 %8867, label %8868, label %8890

8868:                                             ; preds = %8861
  %8869 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8870 = call i32 @fileno(ptr noundef %8869) #13
  %8871 = call i32 @isatty(i32 noundef %8870) #13
  %8872 = icmp ne i32 %8871, 0
  br i1 %8872, label %8873, label %8890

8873:                                             ; preds = %8868
  %8874 = load i32, ptr %187, align 4, !tbaa !5
  %8875 = call ptr @__errno_location() #14
  store i32 %8874, ptr %8875, align 4, !tbaa !5
  %8876 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8877 = load i32, ptr @test_count, align 4, !tbaa !5
  %8878 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8879 = load i32, ptr %8878, align 4, !tbaa !5
  %8880 = call ptr @s2n_strerror(i32 noundef %8879, ptr noundef @.str.60)
  %8881 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8882 = load i32, ptr %8881, align 4, !tbaa !5
  %8883 = call ptr @s2n_strerror_debug(i32 noundef %8882, ptr noundef @.str.60)
  %8884 = call ptr @__errno_location() #14
  %8885 = load i32, ptr %8884, align 4, !tbaa !5
  %8886 = call ptr @strerror(i32 noundef %8885) #13
  %8887 = call ptr @__errno_location() #14
  %8888 = load i32, ptr %8887, align 4, !tbaa !5
  %8889 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8876, ptr noundef @.str.58, i32 noundef %8877, ptr noundef @.str.154, ptr noundef @.str.57, i32 noundef 313, ptr noundef %8880, ptr noundef %8883, ptr noundef %8886, i32 noundef %8888) #13
  br label %8907

8890:                                             ; preds = %8868, %8861
  %8891 = load i32, ptr %187, align 4, !tbaa !5
  %8892 = call ptr @__errno_location() #14
  store i32 %8891, ptr %8892, align 4, !tbaa !5
  %8893 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8894 = load i32, ptr @test_count, align 4, !tbaa !5
  %8895 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8896 = load i32, ptr %8895, align 4, !tbaa !5
  %8897 = call ptr @s2n_strerror(i32 noundef %8896, ptr noundef @.str.60)
  %8898 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8899 = load i32, ptr %8898, align 4, !tbaa !5
  %8900 = call ptr @s2n_strerror_debug(i32 noundef %8899, ptr noundef @.str.60)
  %8901 = call ptr @__errno_location() #14
  %8902 = load i32, ptr %8901, align 4, !tbaa !5
  %8903 = call ptr @strerror(i32 noundef %8902) #13
  %8904 = call ptr @__errno_location() #14
  %8905 = load i32, ptr %8904, align 4, !tbaa !5
  %8906 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8893, ptr noundef @.str.61, i32 noundef %8894, ptr noundef @.str.154, ptr noundef @.str.57, i32 noundef 313, ptr noundef %8897, ptr noundef %8900, ptr noundef %8903, i32 noundef %8905) #13
  br label %8907

8907:                                             ; preds = %8890, %8873
  call void @llvm.lifetime.end.p0(i64 4, ptr %187) #13
  br label %8908

8908:                                             ; preds = %8907
  br label %8909

8909:                                             ; preds = %8908
  call void @exit(i32 noundef 1) #15
  unreachable

8910:                                             ; No predecessors!
  br label %8911

8911:                                             ; preds = %8910
  br label %8912

8912:                                             ; preds = %8911, %8849
  br label %8913

8913:                                             ; preds = %8912
  br label %8914

8914:                                             ; preds = %8913
  br label %8915

8915:                                             ; preds = %8914
  %8916 = getelementptr inbounds %struct.s2n_tls13_keys, ptr %138, i32 0, i32 3
  %8917 = getelementptr inbounds %struct.s2n_blob, ptr %8916, i32 0, i32 1
  %8918 = load i32, ptr %8917, align 8, !tbaa !81
  %8919 = icmp ne i32 %8918, 0
  br i1 %8919, label %8920, label %8992

8920:                                             ; preds = %8915
  br label %8921

8921:                                             ; preds = %8920
  %8922 = load i32, ptr @test_count, align 4, !tbaa !5
  %8923 = add nsw i32 %8922, 1
  store i32 %8923, ptr @test_count, align 4, !tbaa !5
  %8924 = getelementptr inbounds %struct.s2n_tls13_keys, ptr %138, i32 0, i32 3
  %8925 = getelementptr inbounds %struct.s2n_blob, ptr %8924, i32 0, i32 0
  %8926 = load ptr, ptr %8925, align 8, !tbaa !82
  %8927 = getelementptr inbounds %struct.s2n_tls13_keys, ptr %159, i32 0, i32 3
  %8928 = getelementptr inbounds %struct.s2n_blob, ptr %8927, i32 0, i32 0
  %8929 = load ptr, ptr %8928, align 8, !tbaa !82
  %8930 = getelementptr inbounds %struct.s2n_tls13_keys, ptr %138, i32 0, i32 3
  %8931 = getelementptr inbounds %struct.s2n_blob, ptr %8930, i32 0, i32 1
  %8932 = load i32, ptr %8931, align 8, !tbaa !81
  %8933 = zext i32 %8932 to i64
  %8934 = call i32 @memcmp(ptr noundef %8926, ptr noundef %8929, i64 noundef %8933) #16
  %8935 = icmp eq i32 %8934, 0
  br i1 %8935, label %8989, label %8936

8936:                                             ; preds = %8921
  br label %8937

8937:                                             ; preds = %8936
  br label %8938

8938:                                             ; preds = %8937
  call void @llvm.lifetime.start.p0(i64 4, ptr %188) #13
  %8939 = call ptr @__errno_location() #14
  %8940 = load i32, ptr %8939, align 4, !tbaa !5
  store i32 %8940, ptr %188, align 4, !tbaa !5
  %8941 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8942 = call i32 @s2n_print_stacktrace(ptr noundef %8941)
  %8943 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8944 = trunc i8 %8943 to i1
  br i1 %8944, label %8945, label %8967

8945:                                             ; preds = %8938
  %8946 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8947 = call i32 @fileno(ptr noundef %8946) #13
  %8948 = call i32 @isatty(i32 noundef %8947) #13
  %8949 = icmp ne i32 %8948, 0
  br i1 %8949, label %8950, label %8967

8950:                                             ; preds = %8945
  %8951 = load i32, ptr %188, align 4, !tbaa !5
  %8952 = call ptr @__errno_location() #14
  store i32 %8951, ptr %8952, align 4, !tbaa !5
  %8953 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8954 = load i32, ptr @test_count, align 4, !tbaa !5
  %8955 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8956 = load i32, ptr %8955, align 4, !tbaa !5
  %8957 = call ptr @s2n_strerror(i32 noundef %8956, ptr noundef @.str.60)
  %8958 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8959 = load i32, ptr %8958, align 4, !tbaa !5
  %8960 = call ptr @s2n_strerror_debug(i32 noundef %8959, ptr noundef @.str.60)
  %8961 = call ptr @__errno_location() #14
  %8962 = load i32, ptr %8961, align 4, !tbaa !5
  %8963 = call ptr @strerror(i32 noundef %8962) #13
  %8964 = call ptr @__errno_location() #14
  %8965 = load i32, ptr %8964, align 4, !tbaa !5
  %8966 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8953, ptr noundef @.str.58, i32 noundef %8954, ptr noundef @.str.155, ptr noundef @.str.57, i32 noundef 313, ptr noundef %8957, ptr noundef %8960, ptr noundef %8963, i32 noundef %8965) #13
  br label %8984

8967:                                             ; preds = %8945, %8938
  %8968 = load i32, ptr %188, align 4, !tbaa !5
  %8969 = call ptr @__errno_location() #14
  store i32 %8968, ptr %8969, align 4, !tbaa !5
  %8970 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8971 = load i32, ptr @test_count, align 4, !tbaa !5
  %8972 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8973 = load i32, ptr %8972, align 4, !tbaa !5
  %8974 = call ptr @s2n_strerror(i32 noundef %8973, ptr noundef @.str.60)
  %8975 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8976 = load i32, ptr %8975, align 4, !tbaa !5
  %8977 = call ptr @s2n_strerror_debug(i32 noundef %8976, ptr noundef @.str.60)
  %8978 = call ptr @__errno_location() #14
  %8979 = load i32, ptr %8978, align 4, !tbaa !5
  %8980 = call ptr @strerror(i32 noundef %8979) #13
  %8981 = call ptr @__errno_location() #14
  %8982 = load i32, ptr %8981, align 4, !tbaa !5
  %8983 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8970, ptr noundef @.str.61, i32 noundef %8971, ptr noundef @.str.155, ptr noundef @.str.57, i32 noundef 313, ptr noundef %8974, ptr noundef %8977, ptr noundef %8980, i32 noundef %8982) #13
  br label %8984

8984:                                             ; preds = %8967, %8950
  call void @llvm.lifetime.end.p0(i64 4, ptr %188) #13
  br label %8985

8985:                                             ; preds = %8984
  br label %8986

8986:                                             ; preds = %8985
  call void @exit(i32 noundef 1) #15
  unreachable

8987:                                             ; No predecessors!
  br label %8988

8988:                                             ; preds = %8987
  br label %8989

8989:                                             ; preds = %8988, %8921
  br label %8990

8990:                                             ; preds = %8989
  br label %8991

8991:                                             ; preds = %8990
  br label %8992

8992:                                             ; preds = %8991, %8915
  br label %8993

8993:                                             ; preds = %8992
  br label %8994

8994:                                             ; preds = %8993
  br label %8995

8995:                                             ; preds = %8994
  br label %8996

8996:                                             ; preds = %8995
  br label %8997

8997:                                             ; preds = %8996
  %8998 = load i32, ptr @test_count, align 4, !tbaa !5
  %8999 = add nsw i32 %8998, 1
  store i32 %8999, ptr @test_count, align 4, !tbaa !5
  %9000 = call i32 @s2n_stuffer_free(ptr noundef %114)
  %9001 = icmp eq i32 %9000, -1
  br i1 %9001, label %9002, label %9055

9002:                                             ; preds = %8997
  br label %9003

9003:                                             ; preds = %9002
  br label %9004

9004:                                             ; preds = %9003
  call void @llvm.lifetime.start.p0(i64 4, ptr %189) #13
  %9005 = call ptr @__errno_location() #14
  %9006 = load i32, ptr %9005, align 4, !tbaa !5
  store i32 %9006, ptr %189, align 4, !tbaa !5
  %9007 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9008 = call i32 @s2n_print_stacktrace(ptr noundef %9007)
  %9009 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9010 = trunc i8 %9009 to i1
  br i1 %9010, label %9011, label %9033

9011:                                             ; preds = %9004
  %9012 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9013 = call i32 @fileno(ptr noundef %9012) #13
  %9014 = call i32 @isatty(i32 noundef %9013) #13
  %9015 = icmp ne i32 %9014, 0
  br i1 %9015, label %9016, label %9033

9016:                                             ; preds = %9011
  %9017 = load i32, ptr %189, align 4, !tbaa !5
  %9018 = call ptr @__errno_location() #14
  store i32 %9017, ptr %9018, align 4, !tbaa !5
  %9019 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9020 = load i32, ptr @test_count, align 4, !tbaa !5
  %9021 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9022 = load i32, ptr %9021, align 4, !tbaa !5
  %9023 = call ptr @s2n_strerror(i32 noundef %9022, ptr noundef @.str.60)
  %9024 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9025 = load i32, ptr %9024, align 4, !tbaa !5
  %9026 = call ptr @s2n_strerror_debug(i32 noundef %9025, ptr noundef @.str.60)
  %9027 = call ptr @__errno_location() #14
  %9028 = load i32, ptr %9027, align 4, !tbaa !5
  %9029 = call ptr @strerror(i32 noundef %9028) #13
  %9030 = call ptr @__errno_location() #14
  %9031 = load i32, ptr %9030, align 4, !tbaa !5
  %9032 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9019, ptr noundef @.str.58, i32 noundef %9020, ptr noundef @.str.165, ptr noundef @.str.57, i32 noundef 316, ptr noundef %9023, ptr noundef %9026, ptr noundef %9029, i32 noundef %9031) #13
  br label %9050

9033:                                             ; preds = %9011, %9004
  %9034 = load i32, ptr %189, align 4, !tbaa !5
  %9035 = call ptr @__errno_location() #14
  store i32 %9034, ptr %9035, align 4, !tbaa !5
  %9036 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9037 = load i32, ptr @test_count, align 4, !tbaa !5
  %9038 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9039 = load i32, ptr %9038, align 4, !tbaa !5
  %9040 = call ptr @s2n_strerror(i32 noundef %9039, ptr noundef @.str.60)
  %9041 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9042 = load i32, ptr %9041, align 4, !tbaa !5
  %9043 = call ptr @s2n_strerror_debug(i32 noundef %9042, ptr noundef @.str.60)
  %9044 = call ptr @__errno_location() #14
  %9045 = load i32, ptr %9044, align 4, !tbaa !5
  %9046 = call ptr @strerror(i32 noundef %9045) #13
  %9047 = call ptr @__errno_location() #14
  %9048 = load i32, ptr %9047, align 4, !tbaa !5
  %9049 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9036, ptr noundef @.str.61, i32 noundef %9037, ptr noundef @.str.165, ptr noundef @.str.57, i32 noundef 316, ptr noundef %9040, ptr noundef %9043, ptr noundef %9046, i32 noundef %9048) #13
  br label %9050

9050:                                             ; preds = %9033, %9016
  call void @llvm.lifetime.end.p0(i64 4, ptr %189) #13
  br label %9051

9051:                                             ; preds = %9050
  br label %9052

9052:                                             ; preds = %9051
  call void @exit(i32 noundef 1) #15
  unreachable

9053:                                             ; No predecessors!
  br label %9054

9054:                                             ; preds = %9053
  br label %9055

9055:                                             ; preds = %9054, %8997
  br label %9056

9056:                                             ; preds = %9055
  br label %9057

9057:                                             ; preds = %9056
  br label %9058

9058:                                             ; preds = %9057
  %9059 = load i32, ptr @test_count, align 4, !tbaa !5
  %9060 = add nsw i32 %9059, 1
  store i32 %9060, ptr @test_count, align 4, !tbaa !5
  %9061 = call i32 @s2n_stuffer_free(ptr noundef %115)
  %9062 = icmp eq i32 %9061, -1
  br i1 %9062, label %9063, label %9116

9063:                                             ; preds = %9058
  br label %9064

9064:                                             ; preds = %9063
  br label %9065

9065:                                             ; preds = %9064
  call void @llvm.lifetime.start.p0(i64 4, ptr %190) #13
  %9066 = call ptr @__errno_location() #14
  %9067 = load i32, ptr %9066, align 4, !tbaa !5
  store i32 %9067, ptr %190, align 4, !tbaa !5
  %9068 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9069 = call i32 @s2n_print_stacktrace(ptr noundef %9068)
  %9070 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9071 = trunc i8 %9070 to i1
  br i1 %9071, label %9072, label %9094

9072:                                             ; preds = %9065
  %9073 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9074 = call i32 @fileno(ptr noundef %9073) #13
  %9075 = call i32 @isatty(i32 noundef %9074) #13
  %9076 = icmp ne i32 %9075, 0
  br i1 %9076, label %9077, label %9094

9077:                                             ; preds = %9072
  %9078 = load i32, ptr %190, align 4, !tbaa !5
  %9079 = call ptr @__errno_location() #14
  store i32 %9078, ptr %9079, align 4, !tbaa !5
  %9080 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9081 = load i32, ptr @test_count, align 4, !tbaa !5
  %9082 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9083 = load i32, ptr %9082, align 4, !tbaa !5
  %9084 = call ptr @s2n_strerror(i32 noundef %9083, ptr noundef @.str.60)
  %9085 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9086 = load i32, ptr %9085, align 4, !tbaa !5
  %9087 = call ptr @s2n_strerror_debug(i32 noundef %9086, ptr noundef @.str.60)
  %9088 = call ptr @__errno_location() #14
  %9089 = load i32, ptr %9088, align 4, !tbaa !5
  %9090 = call ptr @strerror(i32 noundef %9089) #13
  %9091 = call ptr @__errno_location() #14
  %9092 = load i32, ptr %9091, align 4, !tbaa !5
  %9093 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9080, ptr noundef @.str.58, i32 noundef %9081, ptr noundef @.str.166, ptr noundef @.str.57, i32 noundef 317, ptr noundef %9084, ptr noundef %9087, ptr noundef %9090, i32 noundef %9092) #13
  br label %9111

9094:                                             ; preds = %9072, %9065
  %9095 = load i32, ptr %190, align 4, !tbaa !5
  %9096 = call ptr @__errno_location() #14
  store i32 %9095, ptr %9096, align 4, !tbaa !5
  %9097 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9098 = load i32, ptr @test_count, align 4, !tbaa !5
  %9099 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9100 = load i32, ptr %9099, align 4, !tbaa !5
  %9101 = call ptr @s2n_strerror(i32 noundef %9100, ptr noundef @.str.60)
  %9102 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9103 = load i32, ptr %9102, align 4, !tbaa !5
  %9104 = call ptr @s2n_strerror_debug(i32 noundef %9103, ptr noundef @.str.60)
  %9105 = call ptr @__errno_location() #14
  %9106 = load i32, ptr %9105, align 4, !tbaa !5
  %9107 = call ptr @strerror(i32 noundef %9106) #13
  %9108 = call ptr @__errno_location() #14
  %9109 = load i32, ptr %9108, align 4, !tbaa !5
  %9110 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9097, ptr noundef @.str.61, i32 noundef %9098, ptr noundef @.str.166, ptr noundef @.str.57, i32 noundef 317, ptr noundef %9101, ptr noundef %9104, ptr noundef %9107, i32 noundef %9109) #13
  br label %9111

9111:                                             ; preds = %9094, %9077
  call void @llvm.lifetime.end.p0(i64 4, ptr %190) #13
  br label %9112

9112:                                             ; preds = %9111
  br label %9113

9113:                                             ; preds = %9112
  call void @exit(i32 noundef 1) #15
  unreachable

9114:                                             ; No predecessors!
  br label %9115

9115:                                             ; preds = %9114
  br label %9116

9116:                                             ; preds = %9115, %9058
  br label %9117

9117:                                             ; preds = %9116
  br label %9118

9118:                                             ; preds = %9117
  br label %9119

9119:                                             ; preds = %9118
  %9120 = load i32, ptr @test_count, align 4, !tbaa !5
  %9121 = add nsw i32 %9120, 1
  store i32 %9121, ptr @test_count, align 4, !tbaa !5
  %9122 = load ptr, ptr %91, align 8, !tbaa !9
  %9123 = call i32 @s2n_connection_free(ptr noundef %9122)
  %9124 = icmp eq i32 %9123, -1
  br i1 %9124, label %9125, label %9178

9125:                                             ; preds = %9119
  br label %9126

9126:                                             ; preds = %9125
  br label %9127

9127:                                             ; preds = %9126
  call void @llvm.lifetime.start.p0(i64 4, ptr %191) #13
  %9128 = call ptr @__errno_location() #14
  %9129 = load i32, ptr %9128, align 4, !tbaa !5
  store i32 %9129, ptr %191, align 4, !tbaa !5
  %9130 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9131 = call i32 @s2n_print_stacktrace(ptr noundef %9130)
  %9132 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9133 = trunc i8 %9132 to i1
  br i1 %9133, label %9134, label %9156

9134:                                             ; preds = %9127
  %9135 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9136 = call i32 @fileno(ptr noundef %9135) #13
  %9137 = call i32 @isatty(i32 noundef %9136) #13
  %9138 = icmp ne i32 %9137, 0
  br i1 %9138, label %9139, label %9156

9139:                                             ; preds = %9134
  %9140 = load i32, ptr %191, align 4, !tbaa !5
  %9141 = call ptr @__errno_location() #14
  store i32 %9140, ptr %9141, align 4, !tbaa !5
  %9142 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9143 = load i32, ptr @test_count, align 4, !tbaa !5
  %9144 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9145 = load i32, ptr %9144, align 4, !tbaa !5
  %9146 = call ptr @s2n_strerror(i32 noundef %9145, ptr noundef @.str.60)
  %9147 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9148 = load i32, ptr %9147, align 4, !tbaa !5
  %9149 = call ptr @s2n_strerror_debug(i32 noundef %9148, ptr noundef @.str.60)
  %9150 = call ptr @__errno_location() #14
  %9151 = load i32, ptr %9150, align 4, !tbaa !5
  %9152 = call ptr @strerror(i32 noundef %9151) #13
  %9153 = call ptr @__errno_location() #14
  %9154 = load i32, ptr %9153, align 4, !tbaa !5
  %9155 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9142, ptr noundef @.str.58, i32 noundef %9143, ptr noundef @.str.167, ptr noundef @.str.57, i32 noundef 319, ptr noundef %9146, ptr noundef %9149, ptr noundef %9152, i32 noundef %9154) #13
  br label %9173

9156:                                             ; preds = %9134, %9127
  %9157 = load i32, ptr %191, align 4, !tbaa !5
  %9158 = call ptr @__errno_location() #14
  store i32 %9157, ptr %9158, align 4, !tbaa !5
  %9159 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9160 = load i32, ptr @test_count, align 4, !tbaa !5
  %9161 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9162 = load i32, ptr %9161, align 4, !tbaa !5
  %9163 = call ptr @s2n_strerror(i32 noundef %9162, ptr noundef @.str.60)
  %9164 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9165 = load i32, ptr %9164, align 4, !tbaa !5
  %9166 = call ptr @s2n_strerror_debug(i32 noundef %9165, ptr noundef @.str.60)
  %9167 = call ptr @__errno_location() #14
  %9168 = load i32, ptr %9167, align 4, !tbaa !5
  %9169 = call ptr @strerror(i32 noundef %9168) #13
  %9170 = call ptr @__errno_location() #14
  %9171 = load i32, ptr %9170, align 4, !tbaa !5
  %9172 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9159, ptr noundef @.str.61, i32 noundef %9160, ptr noundef @.str.167, ptr noundef @.str.57, i32 noundef 319, ptr noundef %9163, ptr noundef %9166, ptr noundef %9169, i32 noundef %9171) #13
  br label %9173

9173:                                             ; preds = %9156, %9139
  call void @llvm.lifetime.end.p0(i64 4, ptr %191) #13
  br label %9174

9174:                                             ; preds = %9173
  br label %9175

9175:                                             ; preds = %9174
  call void @exit(i32 noundef 1) #15
  unreachable

9176:                                             ; No predecessors!
  br label %9177

9177:                                             ; preds = %9176
  br label %9178

9178:                                             ; preds = %9177, %9119
  br label %9179

9179:                                             ; preds = %9178
  br label %9180

9180:                                             ; preds = %9179
  br label %9181

9181:                                             ; preds = %9180
  %9182 = load i32, ptr @test_count, align 4, !tbaa !5
  %9183 = add nsw i32 %9182, 1
  store i32 %9183, ptr @test_count, align 4, !tbaa !5
  %9184 = load ptr, ptr %92, align 8, !tbaa !9
  %9185 = call i32 @s2n_connection_free(ptr noundef %9184)
  %9186 = icmp eq i32 %9185, -1
  br i1 %9186, label %9187, label %9240

9187:                                             ; preds = %9181
  br label %9188

9188:                                             ; preds = %9187
  br label %9189

9189:                                             ; preds = %9188
  call void @llvm.lifetime.start.p0(i64 4, ptr %192) #13
  %9190 = call ptr @__errno_location() #14
  %9191 = load i32, ptr %9190, align 4, !tbaa !5
  store i32 %9191, ptr %192, align 4, !tbaa !5
  %9192 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9193 = call i32 @s2n_print_stacktrace(ptr noundef %9192)
  %9194 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9195 = trunc i8 %9194 to i1
  br i1 %9195, label %9196, label %9218

9196:                                             ; preds = %9189
  %9197 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9198 = call i32 @fileno(ptr noundef %9197) #13
  %9199 = call i32 @isatty(i32 noundef %9198) #13
  %9200 = icmp ne i32 %9199, 0
  br i1 %9200, label %9201, label %9218

9201:                                             ; preds = %9196
  %9202 = load i32, ptr %192, align 4, !tbaa !5
  %9203 = call ptr @__errno_location() #14
  store i32 %9202, ptr %9203, align 4, !tbaa !5
  %9204 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9205 = load i32, ptr @test_count, align 4, !tbaa !5
  %9206 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9207 = load i32, ptr %9206, align 4, !tbaa !5
  %9208 = call ptr @s2n_strerror(i32 noundef %9207, ptr noundef @.str.60)
  %9209 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9210 = load i32, ptr %9209, align 4, !tbaa !5
  %9211 = call ptr @s2n_strerror_debug(i32 noundef %9210, ptr noundef @.str.60)
  %9212 = call ptr @__errno_location() #14
  %9213 = load i32, ptr %9212, align 4, !tbaa !5
  %9214 = call ptr @strerror(i32 noundef %9213) #13
  %9215 = call ptr @__errno_location() #14
  %9216 = load i32, ptr %9215, align 4, !tbaa !5
  %9217 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9204, ptr noundef @.str.58, i32 noundef %9205, ptr noundef @.str.168, ptr noundef @.str.57, i32 noundef 320, ptr noundef %9208, ptr noundef %9211, ptr noundef %9214, i32 noundef %9216) #13
  br label %9235

9218:                                             ; preds = %9196, %9189
  %9219 = load i32, ptr %192, align 4, !tbaa !5
  %9220 = call ptr @__errno_location() #14
  store i32 %9219, ptr %9220, align 4, !tbaa !5
  %9221 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9222 = load i32, ptr @test_count, align 4, !tbaa !5
  %9223 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9224 = load i32, ptr %9223, align 4, !tbaa !5
  %9225 = call ptr @s2n_strerror(i32 noundef %9224, ptr noundef @.str.60)
  %9226 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9227 = load i32, ptr %9226, align 4, !tbaa !5
  %9228 = call ptr @s2n_strerror_debug(i32 noundef %9227, ptr noundef @.str.60)
  %9229 = call ptr @__errno_location() #14
  %9230 = load i32, ptr %9229, align 4, !tbaa !5
  %9231 = call ptr @strerror(i32 noundef %9230) #13
  %9232 = call ptr @__errno_location() #14
  %9233 = load i32, ptr %9232, align 4, !tbaa !5
  %9234 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9221, ptr noundef @.str.61, i32 noundef %9222, ptr noundef @.str.168, ptr noundef @.str.57, i32 noundef 320, ptr noundef %9225, ptr noundef %9228, ptr noundef %9231, i32 noundef %9233) #13
  br label %9235

9235:                                             ; preds = %9218, %9201
  call void @llvm.lifetime.end.p0(i64 4, ptr %192) #13
  br label %9236

9236:                                             ; preds = %9235
  br label %9237

9237:                                             ; preds = %9236
  call void @exit(i32 noundef 1) #15
  unreachable

9238:                                             ; No predecessors!
  br label %9239

9239:                                             ; preds = %9238
  br label %9240

9240:                                             ; preds = %9239, %9181
  br label %9241

9241:                                             ; preds = %9240
  br label %9242

9242:                                             ; preds = %9241
  br label %9243

9243:                                             ; preds = %9242
  %9244 = load i32, ptr @test_count, align 4, !tbaa !5
  %9245 = add nsw i32 %9244, 1
  store i32 %9245, ptr @test_count, align 4, !tbaa !5
  %9246 = load ptr, ptr %106, align 8, !tbaa !9
  %9247 = call i32 @s2n_cert_chain_and_key_free(ptr noundef %9246)
  %9248 = icmp eq i32 %9247, -1
  br i1 %9248, label %9249, label %9302

9249:                                             ; preds = %9243
  br label %9250

9250:                                             ; preds = %9249
  br label %9251

9251:                                             ; preds = %9250
  call void @llvm.lifetime.start.p0(i64 4, ptr %193) #13
  %9252 = call ptr @__errno_location() #14
  %9253 = load i32, ptr %9252, align 4, !tbaa !5
  store i32 %9253, ptr %193, align 4, !tbaa !5
  %9254 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9255 = call i32 @s2n_print_stacktrace(ptr noundef %9254)
  %9256 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9257 = trunc i8 %9256 to i1
  br i1 %9257, label %9258, label %9280

9258:                                             ; preds = %9251
  %9259 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9260 = call i32 @fileno(ptr noundef %9259) #13
  %9261 = call i32 @isatty(i32 noundef %9260) #13
  %9262 = icmp ne i32 %9261, 0
  br i1 %9262, label %9263, label %9280

9263:                                             ; preds = %9258
  %9264 = load i32, ptr %193, align 4, !tbaa !5
  %9265 = call ptr @__errno_location() #14
  store i32 %9264, ptr %9265, align 4, !tbaa !5
  %9266 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9267 = load i32, ptr @test_count, align 4, !tbaa !5
  %9268 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9269 = load i32, ptr %9268, align 4, !tbaa !5
  %9270 = call ptr @s2n_strerror(i32 noundef %9269, ptr noundef @.str.60)
  %9271 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9272 = load i32, ptr %9271, align 4, !tbaa !5
  %9273 = call ptr @s2n_strerror_debug(i32 noundef %9272, ptr noundef @.str.60)
  %9274 = call ptr @__errno_location() #14
  %9275 = load i32, ptr %9274, align 4, !tbaa !5
  %9276 = call ptr @strerror(i32 noundef %9275) #13
  %9277 = call ptr @__errno_location() #14
  %9278 = load i32, ptr %9277, align 4, !tbaa !5
  %9279 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9266, ptr noundef @.str.58, i32 noundef %9267, ptr noundef @.str.169, ptr noundef @.str.57, i32 noundef 322, ptr noundef %9270, ptr noundef %9273, ptr noundef %9276, i32 noundef %9278) #13
  br label %9297

9280:                                             ; preds = %9258, %9251
  %9281 = load i32, ptr %193, align 4, !tbaa !5
  %9282 = call ptr @__errno_location() #14
  store i32 %9281, ptr %9282, align 4, !tbaa !5
  %9283 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9284 = load i32, ptr @test_count, align 4, !tbaa !5
  %9285 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9286 = load i32, ptr %9285, align 4, !tbaa !5
  %9287 = call ptr @s2n_strerror(i32 noundef %9286, ptr noundef @.str.60)
  %9288 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9289 = load i32, ptr %9288, align 4, !tbaa !5
  %9290 = call ptr @s2n_strerror_debug(i32 noundef %9289, ptr noundef @.str.60)
  %9291 = call ptr @__errno_location() #14
  %9292 = load i32, ptr %9291, align 4, !tbaa !5
  %9293 = call ptr @strerror(i32 noundef %9292) #13
  %9294 = call ptr @__errno_location() #14
  %9295 = load i32, ptr %9294, align 4, !tbaa !5
  %9296 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9283, ptr noundef @.str.61, i32 noundef %9284, ptr noundef @.str.169, ptr noundef @.str.57, i32 noundef 322, ptr noundef %9287, ptr noundef %9290, ptr noundef %9293, i32 noundef %9295) #13
  br label %9297

9297:                                             ; preds = %9280, %9263
  call void @llvm.lifetime.end.p0(i64 4, ptr %193) #13
  br label %9298

9298:                                             ; preds = %9297
  br label %9299

9299:                                             ; preds = %9298
  call void @exit(i32 noundef 1) #15
  unreachable

9300:                                             ; No predecessors!
  br label %9301

9301:                                             ; preds = %9300
  br label %9302

9302:                                             ; preds = %9301, %9243
  br label %9303

9303:                                             ; preds = %9302
  br label %9304

9304:                                             ; preds = %9303
  br label %9305

9305:                                             ; preds = %9304
  %9306 = load i32, ptr @test_count, align 4, !tbaa !5
  %9307 = add nsw i32 %9306, 1
  store i32 %9307, ptr @test_count, align 4, !tbaa !5
  %9308 = load ptr, ptr %93, align 8, !tbaa !9
  %9309 = call i32 @s2n_config_free(ptr noundef %9308)
  %9310 = icmp eq i32 %9309, -1
  br i1 %9310, label %9311, label %9364

9311:                                             ; preds = %9305
  br label %9312

9312:                                             ; preds = %9311
  br label %9313

9313:                                             ; preds = %9312
  call void @llvm.lifetime.start.p0(i64 4, ptr %194) #13
  %9314 = call ptr @__errno_location() #14
  %9315 = load i32, ptr %9314, align 4, !tbaa !5
  store i32 %9315, ptr %194, align 4, !tbaa !5
  %9316 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9317 = call i32 @s2n_print_stacktrace(ptr noundef %9316)
  %9318 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9319 = trunc i8 %9318 to i1
  br i1 %9319, label %9320, label %9342

9320:                                             ; preds = %9313
  %9321 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9322 = call i32 @fileno(ptr noundef %9321) #13
  %9323 = call i32 @isatty(i32 noundef %9322) #13
  %9324 = icmp ne i32 %9323, 0
  br i1 %9324, label %9325, label %9342

9325:                                             ; preds = %9320
  %9326 = load i32, ptr %194, align 4, !tbaa !5
  %9327 = call ptr @__errno_location() #14
  store i32 %9326, ptr %9327, align 4, !tbaa !5
  %9328 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9329 = load i32, ptr @test_count, align 4, !tbaa !5
  %9330 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9331 = load i32, ptr %9330, align 4, !tbaa !5
  %9332 = call ptr @s2n_strerror(i32 noundef %9331, ptr noundef @.str.60)
  %9333 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9334 = load i32, ptr %9333, align 4, !tbaa !5
  %9335 = call ptr @s2n_strerror_debug(i32 noundef %9334, ptr noundef @.str.60)
  %9336 = call ptr @__errno_location() #14
  %9337 = load i32, ptr %9336, align 4, !tbaa !5
  %9338 = call ptr @strerror(i32 noundef %9337) #13
  %9339 = call ptr @__errno_location() #14
  %9340 = load i32, ptr %9339, align 4, !tbaa !5
  %9341 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9328, ptr noundef @.str.58, i32 noundef %9329, ptr noundef @.str.170, ptr noundef @.str.57, i32 noundef 323, ptr noundef %9332, ptr noundef %9335, ptr noundef %9338, i32 noundef %9340) #13
  br label %9359

9342:                                             ; preds = %9320, %9313
  %9343 = load i32, ptr %194, align 4, !tbaa !5
  %9344 = call ptr @__errno_location() #14
  store i32 %9343, ptr %9344, align 4, !tbaa !5
  %9345 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9346 = load i32, ptr @test_count, align 4, !tbaa !5
  %9347 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9348 = load i32, ptr %9347, align 4, !tbaa !5
  %9349 = call ptr @s2n_strerror(i32 noundef %9348, ptr noundef @.str.60)
  %9350 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9351 = load i32, ptr %9350, align 4, !tbaa !5
  %9352 = call ptr @s2n_strerror_debug(i32 noundef %9351, ptr noundef @.str.60)
  %9353 = call ptr @__errno_location() #14
  %9354 = load i32, ptr %9353, align 4, !tbaa !5
  %9355 = call ptr @strerror(i32 noundef %9354) #13
  %9356 = call ptr @__errno_location() #14
  %9357 = load i32, ptr %9356, align 4, !tbaa !5
  %9358 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9345, ptr noundef @.str.61, i32 noundef %9346, ptr noundef @.str.170, ptr noundef @.str.57, i32 noundef 323, ptr noundef %9349, ptr noundef %9352, ptr noundef %9355, i32 noundef %9357) #13
  br label %9359

9359:                                             ; preds = %9342, %9325
  call void @llvm.lifetime.end.p0(i64 4, ptr %194) #13
  br label %9360

9360:                                             ; preds = %9359
  br label %9361

9361:                                             ; preds = %9360
  call void @exit(i32 noundef 1) #15
  unreachable

9362:                                             ; No predecessors!
  br label %9363

9363:                                             ; preds = %9362
  br label %9364

9364:                                             ; preds = %9363, %9305
  br label %9365

9365:                                             ; preds = %9364
  br label %9366

9366:                                             ; preds = %9365
  br label %9367

9367:                                             ; preds = %9366
  %9368 = load i32, ptr @test_count, align 4, !tbaa !5
  %9369 = add nsw i32 %9368, 1
  store i32 %9369, ptr @test_count, align 4, !tbaa !5
  %9370 = load ptr, ptr %94, align 8, !tbaa !9
  %9371 = call i32 @s2n_config_free(ptr noundef %9370)
  %9372 = icmp eq i32 %9371, -1
  br i1 %9372, label %9373, label %9426

9373:                                             ; preds = %9367
  br label %9374

9374:                                             ; preds = %9373
  br label %9375

9375:                                             ; preds = %9374
  call void @llvm.lifetime.start.p0(i64 4, ptr %195) #13
  %9376 = call ptr @__errno_location() #14
  %9377 = load i32, ptr %9376, align 4, !tbaa !5
  store i32 %9377, ptr %195, align 4, !tbaa !5
  %9378 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9379 = call i32 @s2n_print_stacktrace(ptr noundef %9378)
  %9380 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9381 = trunc i8 %9380 to i1
  br i1 %9381, label %9382, label %9404

9382:                                             ; preds = %9375
  %9383 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9384 = call i32 @fileno(ptr noundef %9383) #13
  %9385 = call i32 @isatty(i32 noundef %9384) #13
  %9386 = icmp ne i32 %9385, 0
  br i1 %9386, label %9387, label %9404

9387:                                             ; preds = %9382
  %9388 = load i32, ptr %195, align 4, !tbaa !5
  %9389 = call ptr @__errno_location() #14
  store i32 %9388, ptr %9389, align 4, !tbaa !5
  %9390 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9391 = load i32, ptr @test_count, align 4, !tbaa !5
  %9392 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9393 = load i32, ptr %9392, align 4, !tbaa !5
  %9394 = call ptr @s2n_strerror(i32 noundef %9393, ptr noundef @.str.60)
  %9395 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9396 = load i32, ptr %9395, align 4, !tbaa !5
  %9397 = call ptr @s2n_strerror_debug(i32 noundef %9396, ptr noundef @.str.60)
  %9398 = call ptr @__errno_location() #14
  %9399 = load i32, ptr %9398, align 4, !tbaa !5
  %9400 = call ptr @strerror(i32 noundef %9399) #13
  %9401 = call ptr @__errno_location() #14
  %9402 = load i32, ptr %9401, align 4, !tbaa !5
  %9403 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9390, ptr noundef @.str.58, i32 noundef %9391, ptr noundef @.str.171, ptr noundef @.str.57, i32 noundef 324, ptr noundef %9394, ptr noundef %9397, ptr noundef %9400, i32 noundef %9402) #13
  br label %9421

9404:                                             ; preds = %9382, %9375
  %9405 = load i32, ptr %195, align 4, !tbaa !5
  %9406 = call ptr @__errno_location() #14
  store i32 %9405, ptr %9406, align 4, !tbaa !5
  %9407 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9408 = load i32, ptr @test_count, align 4, !tbaa !5
  %9409 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9410 = load i32, ptr %9409, align 4, !tbaa !5
  %9411 = call ptr @s2n_strerror(i32 noundef %9410, ptr noundef @.str.60)
  %9412 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9413 = load i32, ptr %9412, align 4, !tbaa !5
  %9414 = call ptr @s2n_strerror_debug(i32 noundef %9413, ptr noundef @.str.60)
  %9415 = call ptr @__errno_location() #14
  %9416 = load i32, ptr %9415, align 4, !tbaa !5
  %9417 = call ptr @strerror(i32 noundef %9416) #13
  %9418 = call ptr @__errno_location() #14
  %9419 = load i32, ptr %9418, align 4, !tbaa !5
  %9420 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9407, ptr noundef @.str.61, i32 noundef %9408, ptr noundef @.str.171, ptr noundef @.str.57, i32 noundef 324, ptr noundef %9411, ptr noundef %9414, ptr noundef %9417, i32 noundef %9419) #13
  br label %9421

9421:                                             ; preds = %9404, %9387
  call void @llvm.lifetime.end.p0(i64 4, ptr %195) #13
  br label %9422

9422:                                             ; preds = %9421
  br label %9423

9423:                                             ; preds = %9422
  call void @exit(i32 noundef 1) #15
  unreachable

9424:                                             ; No predecessors!
  br label %9425

9425:                                             ; preds = %9424
  br label %9426

9426:                                             ; preds = %9425, %9367
  br label %9427

9427:                                             ; preds = %9426
  br label %9428

9428:                                             ; preds = %9427
  %9429 = load ptr, ptr %99, align 8, !tbaa !9
  call void @free(ptr noundef %9429) #13
  %9430 = load ptr, ptr %98, align 8, !tbaa !9
  call void @free(ptr noundef %9430) #13
  store i32 0, ptr %56, align 4
  br label %9431

9431:                                             ; preds = %9428, %7094
  %9432 = call i32 @s2n_tls13_keys_free(ptr noundef %159)
  call void @llvm.lifetime.end.p0(i64 592, ptr %159) #13
  br label %9433

9433:                                             ; preds = %9431, %5807
  %9434 = call i32 @s2n_tls13_keys_free(ptr noundef %138)
  call void @llvm.lifetime.end.p0(i64 592, ptr %138) #13
  br label %9435

9435:                                             ; preds = %9433, %5420
  %9436 = call i32 @s2n_tls13_keys_free(ptr noundef %131)
  call void @llvm.lifetime.end.p0(i64 592, ptr %131) #13
  br label %9437

9437:                                             ; preds = %9435, %5036
  %9438 = call i32 @s2n_free(ptr noundef %123)
  call void @llvm.lifetime.end.p0(i64 24, ptr %123) #13
  br label %9439

9439:                                             ; preds = %9437, %5026
  %9440 = call i32 @s2n_free(ptr noundef %121)
  call void @llvm.lifetime.end.p0(i64 24, ptr %121) #13
  call void @llvm.lifetime.end.p0(i64 24, ptr %120) #13
  call void @llvm.lifetime.end.p0(i64 40, ptr %115) #13
  call void @llvm.lifetime.end.p0(i64 40, ptr %114) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %106) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr %101) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr %100) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %99) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %98) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %94) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %93) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %92) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %91) #13
  %9441 = load i32, ptr %56, align 4
  switch i32 %9441, label %9590 [
    i32 0, label %9442
    i32 1, label %9588
  ]

9442:                                             ; preds = %9439
  br label %9443

9443:                                             ; preds = %9442
  br label %9444

9444:                                             ; preds = %9443
  %9445 = call i32 @s2n_cleanup()
  %9446 = icmp eq i32 %9445, -1
  br i1 %9446, label %9447, label %9498

9447:                                             ; preds = %9444
  br label %9448

9448:                                             ; preds = %9447
  br label %9449

9449:                                             ; preds = %9448
  call void @llvm.lifetime.start.p0(i64 4, ptr %196) #13
  %9450 = call ptr @__errno_location() #14
  %9451 = load i32, ptr %9450, align 4, !tbaa !5
  store i32 %9451, ptr %196, align 4, !tbaa !5
  %9452 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9453 = call i32 @s2n_print_stacktrace(ptr noundef %9452)
  %9454 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9455 = trunc i8 %9454 to i1
  br i1 %9455, label %9456, label %9478

9456:                                             ; preds = %9449
  %9457 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9458 = call i32 @fileno(ptr noundef %9457) #13
  %9459 = call i32 @isatty(i32 noundef %9458) #13
  %9460 = icmp ne i32 %9459, 0
  br i1 %9460, label %9461, label %9478

9461:                                             ; preds = %9456
  %9462 = load i32, ptr %196, align 4, !tbaa !5
  %9463 = call ptr @__errno_location() #14
  store i32 %9462, ptr %9463, align 4, !tbaa !5
  %9464 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9465 = load i32, ptr @test_count, align 4, !tbaa !5
  %9466 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9467 = load i32, ptr %9466, align 4, !tbaa !5
  %9468 = call ptr @s2n_strerror(i32 noundef %9467, ptr noundef @.str.60)
  %9469 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9470 = load i32, ptr %9469, align 4, !tbaa !5
  %9471 = call ptr @s2n_strerror_debug(i32 noundef %9470, ptr noundef @.str.60)
  %9472 = call ptr @__errno_location() #14
  %9473 = load i32, ptr %9472, align 4, !tbaa !5
  %9474 = call ptr @strerror(i32 noundef %9473) #13
  %9475 = call ptr @__errno_location() #14
  %9476 = load i32, ptr %9475, align 4, !tbaa !5
  %9477 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9464, ptr noundef @.str.58, i32 noundef %9465, ptr noundef @.str.64, ptr noundef @.str.57, i32 noundef 330, ptr noundef %9468, ptr noundef %9471, ptr noundef %9474, i32 noundef %9476) #13
  br label %9495

9478:                                             ; preds = %9456, %9449
  %9479 = load i32, ptr %196, align 4, !tbaa !5
  %9480 = call ptr @__errno_location() #14
  store i32 %9479, ptr %9480, align 4, !tbaa !5
  %9481 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9482 = load i32, ptr @test_count, align 4, !tbaa !5
  %9483 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9484 = load i32, ptr %9483, align 4, !tbaa !5
  %9485 = call ptr @s2n_strerror(i32 noundef %9484, ptr noundef @.str.60)
  %9486 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9487 = load i32, ptr %9486, align 4, !tbaa !5
  %9488 = call ptr @s2n_strerror_debug(i32 noundef %9487, ptr noundef @.str.60)
  %9489 = call ptr @__errno_location() #14
  %9490 = load i32, ptr %9489, align 4, !tbaa !5
  %9491 = call ptr @strerror(i32 noundef %9490) #13
  %9492 = call ptr @__errno_location() #14
  %9493 = load i32, ptr %9492, align 4, !tbaa !5
  %9494 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9481, ptr noundef @.str.61, i32 noundef %9482, ptr noundef @.str.64, ptr noundef @.str.57, i32 noundef 330, ptr noundef %9485, ptr noundef %9488, ptr noundef %9491, i32 noundef %9493) #13
  br label %9495

9495:                                             ; preds = %9478, %9461
  call void @llvm.lifetime.end.p0(i64 4, ptr %196) #13
  br label %9496

9496:                                             ; preds = %9495
  call void @exit(i32 noundef 1) #15
  unreachable

9497:                                             ; No predecessors!
  br label %9498

9498:                                             ; preds = %9497, %9444
  br label %9499

9499:                                             ; preds = %9498
  br label %9500

9500:                                             ; preds = %9499
  br label %9501

9501:                                             ; preds = %9500
  %9502 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %9503 = icmp eq i32 %9502, -1
  br i1 %9503, label %9504, label %9555

9504:                                             ; preds = %9501
  br label %9505

9505:                                             ; preds = %9504
  br label %9506

9506:                                             ; preds = %9505
  call void @llvm.lifetime.start.p0(i64 4, ptr %197) #13
  %9507 = call ptr @__errno_location() #14
  %9508 = load i32, ptr %9507, align 4, !tbaa !5
  store i32 %9508, ptr %197, align 4, !tbaa !5
  %9509 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9510 = call i32 @s2n_print_stacktrace(ptr noundef %9509)
  %9511 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9512 = trunc i8 %9511 to i1
  br i1 %9512, label %9513, label %9535

9513:                                             ; preds = %9506
  %9514 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9515 = call i32 @fileno(ptr noundef %9514) #13
  %9516 = call i32 @isatty(i32 noundef %9515) #13
  %9517 = icmp ne i32 %9516, 0
  br i1 %9517, label %9518, label %9535

9518:                                             ; preds = %9513
  %9519 = load i32, ptr %197, align 4, !tbaa !5
  %9520 = call ptr @__errno_location() #14
  store i32 %9519, ptr %9520, align 4, !tbaa !5
  %9521 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9522 = load i32, ptr @test_count, align 4, !tbaa !5
  %9523 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9524 = load i32, ptr %9523, align 4, !tbaa !5
  %9525 = call ptr @s2n_strerror(i32 noundef %9524, ptr noundef @.str.60)
  %9526 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9527 = load i32, ptr %9526, align 4, !tbaa !5
  %9528 = call ptr @s2n_strerror_debug(i32 noundef %9527, ptr noundef @.str.60)
  %9529 = call ptr @__errno_location() #14
  %9530 = load i32, ptr %9529, align 4, !tbaa !5
  %9531 = call ptr @strerror(i32 noundef %9530) #13
  %9532 = call ptr @__errno_location() #14
  %9533 = load i32, ptr %9532, align 4, !tbaa !5
  %9534 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9521, ptr noundef @.str.58, i32 noundef %9522, ptr noundef @.str.65, ptr noundef @.str.57, i32 noundef 330, ptr noundef %9525, ptr noundef %9528, ptr noundef %9531, i32 noundef %9533) #13
  br label %9552

9535:                                             ; preds = %9513, %9506
  %9536 = load i32, ptr %197, align 4, !tbaa !5
  %9537 = call ptr @__errno_location() #14
  store i32 %9536, ptr %9537, align 4, !tbaa !5
  %9538 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9539 = load i32, ptr @test_count, align 4, !tbaa !5
  %9540 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9541 = load i32, ptr %9540, align 4, !tbaa !5
  %9542 = call ptr @s2n_strerror(i32 noundef %9541, ptr noundef @.str.60)
  %9543 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9544 = load i32, ptr %9543, align 4, !tbaa !5
  %9545 = call ptr @s2n_strerror_debug(i32 noundef %9544, ptr noundef @.str.60)
  %9546 = call ptr @__errno_location() #14
  %9547 = load i32, ptr %9546, align 4, !tbaa !5
  %9548 = call ptr @strerror(i32 noundef %9547) #13
  %9549 = call ptr @__errno_location() #14
  %9550 = load i32, ptr %9549, align 4, !tbaa !5
  %9551 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9538, ptr noundef @.str.61, i32 noundef %9539, ptr noundef @.str.65, ptr noundef @.str.57, i32 noundef 330, ptr noundef %9542, ptr noundef %9545, ptr noundef %9548, i32 noundef %9550) #13
  br label %9552

9552:                                             ; preds = %9535, %9518
  call void @llvm.lifetime.end.p0(i64 4, ptr %197) #13
  br label %9553

9553:                                             ; preds = %9552
  call void @exit(i32 noundef 1) #15
  unreachable

9554:                                             ; No predecessors!
  br label %9555

9555:                                             ; preds = %9554, %9501
  br label %9556

9556:                                             ; preds = %9555
  %9557 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9558 = trunc i8 %9557 to i1
  br i1 %9558, label %9559, label %9575

9559:                                             ; preds = %9556
  %9560 = load ptr, ptr @stdout, align 8, !tbaa !9
  %9561 = call i32 @fileno(ptr noundef %9560) #13
  %9562 = call i32 @isatty(i32 noundef %9561) #13
  %9563 = icmp ne i32 %9562, 0
  br i1 %9563, label %9564, label %9575

9564:                                             ; preds = %9559
  %9565 = load i32, ptr @test_count, align 4, !tbaa !5
  %9566 = icmp ne i32 %9565, 0
  br i1 %9566, label %9567, label %9571

9567:                                             ; preds = %9564
  %9568 = load ptr, ptr @stdout, align 8, !tbaa !9
  %9569 = load i32, ptr @test_count, align 4, !tbaa !5
  %9570 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9568, ptr noundef @.str.66, i32 noundef %9569) #13
  br label %9574

9571:                                             ; preds = %9564
  %9572 = load ptr, ptr @stdout, align 8, !tbaa !9
  %9573 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9572, ptr noundef @.str.67) #13
  br label %9574

9574:                                             ; preds = %9571, %9567
  br label %9586

9575:                                             ; preds = %9559, %9556
  %9576 = load i32, ptr @test_count, align 4, !tbaa !5
  %9577 = icmp ne i32 %9576, 0
  br i1 %9577, label %9578, label %9582

9578:                                             ; preds = %9575
  %9579 = load ptr, ptr @stdout, align 8, !tbaa !9
  %9580 = load i32, ptr @test_count, align 4, !tbaa !5
  %9581 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9579, ptr noundef @.str.68, i32 noundef %9580) #13
  br label %9585

9582:                                             ; preds = %9575
  %9583 = load ptr, ptr @stdout, align 8, !tbaa !9
  %9584 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9583, ptr noundef @.str.69) #13
  br label %9585

9585:                                             ; preds = %9582, %9578
  br label %9586

9586:                                             ; preds = %9585, %9574
  store i32 0, ptr %3, align 4
  br label %9588

9587:                                             ; No predecessors!
  br label %9588

9588:                                             ; preds = %9587, %9586, %9439, %3891, %521
  %9589 = load i32, ptr %3, align 4
  ret i32 %9589

9590:                                             ; preds = %9439, %3891
  unreachable
}

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

declare i32 @fflush(ptr noundef) #6

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) #6

declare i32 @s2n_print_stacktrace(ptr noundef) #6

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

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

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

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

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

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

declare i32 @s2n_enable_atexit() #6

declare i32 @s2n_init() #6

declare zeroext i1 @s2n_is_tls13_fully_supported(...) #6

declare i32 @s2n_cleanup() #6

declare ptr @s2n_connection_new(i32 noundef) #6

declare i32 @s2n_ecc_evp_generate_ephemeral_key(ptr noundef) #6

declare i32 @s2n_array_pushback(ptr noundef, ptr noundef) #6

declare i32 @s2n_psk_init(ptr noundef, i32 noundef) #6

declare i32 @s2n_psk_set_identity(ptr noundef, ptr noundef, i16 noundef zeroext) #6

declare i32 @s2n_psk_set_secret(ptr noundef, ptr noundef, i16 noundef zeroext) #6

declare i32 @s2n_free(ptr noundef) #6

declare i32 @s2n_array_get(ptr noundef, i32 noundef, ptr noundef) #6

declare i32 @s2n_connection_free(ptr noundef) #6

declare i32 @s2n_realloc(ptr noundef, i32 noundef) #6

declare ptr @s2n_config_new() #6

declare i32 @s2n_config_set_unsafe_for_testing(ptr noundef) #6

; Function Attrs: nounwind allocsize(0)
declare noalias ptr @malloc(i64 noundef) #12

declare i32 @s2n_read_test_pem_and_len(ptr noundef, ptr noundef, ptr noundef, i64 noundef) #6

declare ptr @s2n_cert_chain_and_key_new() #6

declare i32 @s2n_cert_chain_and_key_load_pem_bytes(ptr noundef, ptr noundef, i32 noundef, ptr noundef, i32 noundef) #6

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

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

declare i32 @s2n_stuffer_growable_alloc(ptr noundef, i32 noundef) #6

declare i32 @s2n_connection_set_io_stuffers(ptr noundef, ptr noundef, ptr noundef) #6

declare i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef, ptr noundef) #6

declare i32 @s2n_connection_set_cipher_preferences(ptr noundef, ptr noundef) #6

; Function Attrs: nounwind willreturn memory(read)
declare i32 @memcmp(ptr noundef, ptr noundef, i64 noundef) #5

declare i32 @s2n_stuffer_free(ptr noundef) #6

declare i32 @s2n_cert_chain_and_key_free(ptr noundef) #6

declare i32 @s2n_config_free(ptr noundef) #6

; Function Attrs: nounwind
declare void @free(ptr noundef) #10

attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #3 = { 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 #4 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #5 = { 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 #6 = { "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 nosync nounwind willreturn memory(none) }
attributes #8 = { nounwind willreturn memory(none) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #9 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #10 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #11 = { 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 #12 = { nounwind allocsize(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 #13 = { nounwind }
attributes #14 = { nounwind willreturn memory(none) }
attributes #15 = { noreturn nounwind }
attributes #16 = { nounwind willreturn memory(read) }
attributes #17 = { nounwind allocsize(0) }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"_Bool", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = !{!16, !10, i64 232}
!16 = !{!"s2n_connection", !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40, !10, i64 48, !10, i64 56, !10, i64 64, !10, i64 72, !7, i64 80, !7, i64 102, !7, i64 124, !6, i64 148, !6, i64 152, !17, i64 160, !18, i64 168, !18, i64 176, !7, i64 184, !7, i64 216, !7, i64 217, !7, i64 218, !7, i64 219, !7, i64 220, !7, i64 221, !7, i64 222, !10, i64 224, !10, i64 232, !19, i64 240, !10, i64 632, !10, i64 640, !20, i64 648, !26, i64 1144, !29, i64 1688, !10, i64 1752, !7, i64 1760, !6, i64 1764, !7, i64 1768, !32, i64 1776, !32, i64 1816, !32, i64 1856, !32, i64 1896, !6, i64 1936, !18, i64 1944, !7, i64 1952, !32, i64 1960, !7, i64 2000, !7, i64 2001, !7, i64 2002, !12, i64 2003, !33, i64 2004, !33, i64 2008, !34, i64 2016, !31, i64 2208, !6, i64 2212, !31, i64 2216, !18, i64 2224, !7, i64 2232, !18, i64 2240, !18, i64 2248, !18, i64 2256, !33, i64 2264, !33, i64 2268, !7, i64 2272, !7, i64 2528, !6, i64 2784, !25, i64 2792, !6, i64 2816, !25, i64 2824, !25, i64 2848, !25, i64 2872, !36, i64 2896, !38, i64 3704, !10, i64 3760, !10, i64 3768, !7, i64 3776, !6, i64 3780, !25, i64 3784, !6, i64 3808, !40, i64 3816, !7, i64 3848, !32, i64 3992, !25, i64 4032, !25, i64 4056, !12, i64 4080, !12, i64 4081, !12, i64 4082, !31, i64 4084, !31, i64 4086, !6, i64 4088, !6, i64 4092, !25, i64 4096, !6, i64 4120, !41, i64 4128, !33, i64 4176, !7, i64 4180, !7, i64 4181}
!17 = !{!"s2n_timer", !18, i64 0}
!18 = !{!"long", !7, i64 0}
!19 = !{!"s2n_secrets", !7, i64 0, !6, i64 388}
!20 = !{!"s2n_kex_parameters", !21, i64 0, !22, i64 8, !7, i64 24, !22, i64 56, !23, i64 72, !23, i64 184, !7, i64 296, !24, i64 360, !25, i64 448, !25, i64 472}
!21 = !{!"s2n_dh_params", !10, i64 0}
!22 = !{!"s2n_ecc_evp_params", !10, i64 0, !10, i64 8}
!23 = !{!"s2n_kem_group_params", !10, i64 0, !24, i64 8, !22, i64 96}
!24 = !{!"s2n_kem_params", !10, i64 0, !25, i64 8, !25, i64 32, !25, i64 56, !12, i64 80}
!25 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!26 = !{!"s2n_handshake_parameters", !27, i64 0, !27, i64 48, !25, i64 96, !6, i64 120, !28, i64 124, !10, i64 384, !10, i64 392, !10, i64 400, !7, i64 408, !7, i64 440, !7, i64 472, !7, i64 473, !7, i64 474, !7, i64 506}
!27 = !{!"s2n_pkey", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40}
!28 = !{!"s2n_sig_scheme_list", !7, i64 0, !7, i64 256}
!29 = !{!"s2n_psk_parameters", !6, i64 0, !30, i64 8, !31, i64 40, !31, i64 42, !10, i64 48, !6, i64 56}
!30 = !{!"s2n_array", !25, i64 0, !6, i64 24, !6, i64 28}
!31 = !{!"short", !7, i64 0}
!32 = !{!"s2n_stuffer", !25, i64 0, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 36, !6, i64 36}
!33 = !{!"", !6, i64 0}
!34 = !{!"s2n_handshake", !32, i64 0, !10, i64 40, !7, i64 48, !7, i64 56, !7, i64 104, !7, i64 152, !6, i64 156, !6, i64 160, !6, i64 164, !6, i64 168, !35, i64 176, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 188}
!35 = !{!"s2n_offered_early_data", !10, i64 0}
!36 = !{!"s2n_client_hello", !25, i64 0, !37, i64 24, !25, i64 728, !25, i64 752, !25, i64 776, !7, i64 800, !7, i64 801, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802}
!37 = !{!"", !7, i64 0, !25, i64 672, !31, i64 696}
!38 = !{!"s2n_x509_validator", !10, i64 0, !10, i64 8, !7, i64 16, !7, i64 17, !31, i64 18, !10, i64 24, !6, i64 32, !10, i64 40, !39, i64 48, !12, i64 52}
!39 = !{!"s2n_cert_validation_info", !6, i64 0, !6, i64 0}
!40 = !{!"s2n_ticket_fields", !25, i64 0, !6, i64 24}
!41 = !{!"s2n_post_handshake", !32, i64 0, !7, i64 40}
!42 = !{!43, !10, i64 0}
!43 = !{!"s2n_crypto_parameters", !10, i64 0, !44, i64 8, !44, i64 16, !45, i64 24, !45, i64 456, !7, i64 888, !7, i64 904, !7, i64 920, !7, i64 928}
!44 = !{!"s2n_session_key", !10, i64 0}
!45 = !{!"s2n_hmac_state", !6, i64 0, !31, i64 4, !6, i64 8, !31, i64 12, !7, i64 14, !46, i64 16, !46, i64 72, !46, i64 128, !46, i64 184, !7, i64 240, !7, i64 368}
!46 = !{!"s2n_hash_state", !10, i64 0, !6, i64 8, !7, i64 12, !18, i64 16, !7, i64 24}
!47 = !{!48, !10, i64 8}
!48 = !{!"s2n_ecc_preferences", !7, i64 0, !10, i64 8}
!49 = !{!16, !10, i64 656}
!50 = !{!16, !10, i64 704}
!51 = !{!18, !18, i64 0}
!52 = !{!53, !6, i64 16}
!53 = !{!"s2n_psk", !6, i64 0, !25, i64 8, !25, i64 32, !6, i64 56, !6, i64 60, !18, i64 64, !25, i64 72, !54, i64 96, !18, i64 160}
!54 = !{!"s2n_early_data_config", !6, i64 0, !7, i64 4, !10, i64 8, !25, i64 16, !25, i64 40}
!55 = !{!53, !10, i64 8}
!56 = !{!53, !6, i64 40}
!57 = !{!53, !10, i64 32}
!58 = distinct !{!58, !59}
!59 = !{!"llvm.loop.mustprogress"}
!60 = !{!16, !6, i64 1708}
!61 = !{!16, !6, i64 1720}
!62 = !{!16, !10, i64 1736}
!63 = distinct !{!63, !59}
!64 = !{!53, !10, i64 72}
!65 = !{!66, !10, i64 0}
!66 = !{!"s2n_debug_info", !10, i64 0, !10, i64 8}
!67 = !{!66, !10, i64 8}
!68 = !{!53, !6, i64 80}
!69 = distinct !{!69, !59}
!70 = !{!16, !31, i64 1730}
!71 = distinct !{!71, !59}
!72 = !{!25, !10, i64 0}
!73 = !{!25, !6, i64 8}
!74 = !{!25, !6, i64 12}
!75 = !{!16, !7, i64 220}
!76 = !{!77, !7, i64 8}
!77 = !{!"s2n_tls13_keys", !6, i64 0, !6, i64 4, !7, i64 8, !25, i64 16, !25, i64 40, !7, i64 64, !7, i64 112, !45, i64 160}
!78 = !{!16, !6, i64 2172}
!79 = !{!77, !6, i64 48}
!80 = !{!77, !10, i64 40}
!81 = !{!77, !6, i64 24}
!82 = !{!77, !10, i64 16}


; Optimized IR (opt -passes='default<O3>'):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%struct.s2n_debug_info = type { ptr, ptr }
%struct.s2n_cipher_suite = type { i8, ptr, ptr, [2 x i8], ptr, i32, ptr, [2 x ptr], i8, ptr, ptr, i32, i8 }
%struct.s2n_blob = type { ptr, i32, i32, i8 }
%struct.s2n_stuffer = type { %struct.s2n_blob, i32, 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 }

@s2n_use_color_in_output = external dso_local local_unnamed_addr global i8, align 1
@_s2n_debug_info = external thread_local local_unnamed_addr global %struct.s2n_debug_info, align 8
@s2n_errno = external thread_local local_unnamed_addr global i32, align 4
@test_count = external dso_local local_unnamed_addr global i32, align 4
@stdout = external local_unnamed_addr global ptr, align 8
@.str.56 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [83 x i8], align 1
@stderr = external local_unnamed_addr global ptr, align 8
@.str.58 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [50 x i8], align 1
@s2n_tls13_aes_128_gcm_sha256 = external global %struct.s2n_cipher_suite, align 8
@.str.73 = external hidden unnamed_addr constant [104 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [104 x i8], align 1
@__const.main.psk_data = external hidden unnamed_addr constant [19 x i8], align 16
@__const.main.secret_data = external hidden unnamed_addr constant [17 x i8], align 16
@.str.75 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.81 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.85 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.86 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.88 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.89 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [54 x i8], align 1
@__const.main.psk_data.91 = external hidden unnamed_addr constant [19 x i8], align 16
@__const.main.secret_data.92 = external hidden unnamed_addr constant [17 x i8], align 16
@__const.main.early_secret_data = external hidden unnamed_addr constant [32 x i8], align 16
@.str.93 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.94 = external hidden unnamed_addr constant [108 x i8], align 1
@.str.95 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.96 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.97 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.98 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.99 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.100 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.101 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.102 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.103 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.104 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.105 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.106 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.107 = external hidden unnamed_addr constant [127 x i8], align 1
@.str.108 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.109 = external hidden unnamed_addr constant [128 x i8], align 1
@.str.110 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.111 = external hidden unnamed_addr constant [138 x i8], align 1
@.str.112 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.113 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.114 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.115 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.116 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.117 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.118 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.119 = external hidden unnamed_addr constant [110 x i8], align 1
@.str.120 = external hidden unnamed_addr constant [110 x i8], align 1
@.str.121 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.122 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.123 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.124 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.125 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.126 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.127 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.128 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.129 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.130 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.131 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.132 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.133 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.134 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.135 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.136 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.137 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.138 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.139 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.140 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.141 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.142 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.143 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.144 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.145 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.146 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.147 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.148 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.149 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.150 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.151 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.152 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.153 = external hidden unnamed_addr constant [142 x i8], align 1
@.str.154 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.155 = external hidden unnamed_addr constant [145 x i8], align 1
@.str.156 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.157 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.158 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.159 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.160 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.161 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.162 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.163 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.164 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.165 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.166 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.167 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.168 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.169 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.170 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.171 = external hidden unnamed_addr constant [59 x i8], align 1

; Function Attrs: nounwind uwtable
declare dso_local i32 @s2n_conn_get_current_message_type(ptr noundef) local_unnamed_addr #0

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

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

; Function Attrs: inlinehint nounwind uwtable
declare hidden zeroext i1 @s2n_result_is_ok(i32) 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) #1

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

; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: read)
declare ptr @strrchr(ptr noundef, i32 noundef) local_unnamed_addr #5

declare i32 @s2n_calculate_stacktrace() local_unnamed_addr #6

; Function Attrs: nounwind uwtable
declare dso_local i32 @s2n_conn_set_handshake_type(ptr noundef) local_unnamed_addr #0

declare ptr @s2n_ensure_memmove_trace(ptr noundef, ptr noundef, i64 noundef) local_unnamed_addr #6

; Function Attrs: mustprogress nofree nosync nounwind willreturn memory(none)
declare ptr @__errno_location() local_unnamed_addr #7

; Function Attrs: nounwind uwtable
declare hidden i32 @s2n_handshake_write_io(ptr noundef) local_unnamed_addr #0

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

; Function Attrs: nounwind uwtable
declare hidden i32 @s2n_handshake_read_io(ptr noundef) local_unnamed_addr #0

declare i32 @s2n_tls13_keys_free(ptr noundef) local_unnamed_addr #6

; Function Attrs: nounwind uwtable
declare dso_local i32 @s2n_tls13_keys_from_conn(ptr noundef, ptr noundef) local_unnamed_addr #0

declare i32 @s2n_connection_get_ecc_preferences(ptr noundef, ptr noundef) local_unnamed_addr #6

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

; Function Attrs: nounwind uwtable
define dso_local range(i32 -1, 1) i32 @main(i32 noundef %0, ptr nocapture noundef readnone %1) local_unnamed_addr #0 {
  %3 = alloca ptr, align 8
  %4 = alloca [19 x i8], align 16
  %5 = alloca [17 x i8], align 16
  %6 = alloca ptr, align 8
  %7 = alloca %struct.s2n_blob, align 8
  %8 = alloca ptr, align 8
  %9 = alloca ptr, align 8
  %10 = alloca [19 x i8], align 16
  %11 = alloca [17 x i8], align 16
  %12 = alloca [32 x i8], align 16
  %13 = alloca ptr, align 8
  %14 = alloca ptr, align 8
  %15 = alloca %struct.s2n_blob, align 8
  %16 = alloca ptr, align 8
  %17 = alloca i32, align 4
  %18 = alloca i32, align 4
  %19 = alloca %struct.s2n_stuffer, align 8
  %20 = alloca %struct.s2n_stuffer, align 8
  %21 = alloca %struct.s2n_blob, align 8
  %22 = alloca %struct.s2n_blob, align 8
  %23 = alloca %struct.s2n_tls13_keys, align 8
  %24 = alloca %struct.s2n_tls13_keys, align 8
  %25 = alloca %struct.s2n_tls13_keys, align 8
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %26 = load ptr, ptr @stdout, align 8, !tbaa !9
  %27 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %26, ptr noundef nonnull @.str.56, ptr noundef nonnull @.str.57) #15
  %28 = load ptr, ptr @stdout, align 8, !tbaa !9
  %29 = tail call i32 @fflush(ptr noundef %28)
  %30 = tail call i32 @s2n_in_unit_test_set(i1 noundef zeroext true) #15
  %31 = icmp eq i32 %30, -1
  br i1 %31, label %32, label %56

32:                                               ; preds = %2
  %33 = tail call ptr @__errno_location() #16
  %34 = load i32, ptr %33, align 4, !tbaa !5
  %35 = load ptr, ptr @stderr, align 8, !tbaa !9
  %36 = tail call i32 @s2n_print_stacktrace(ptr noundef %35) #15
  %37 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %38 = trunc nuw i8 %37 to i1
  br i1 %38, label %39, label %43

39:                                               ; preds = %32
  %40 = load ptr, ptr @stderr, align 8, !tbaa !9
  %41 = tail call i32 @fileno(ptr noundef %40) #15
  %42 = tail call i32 @isatty(i32 noundef %41) #15
  %.not615 = icmp eq i32 %42, 0
  br i1 %.not615, label %43, label %44

43:                                               ; preds = %39, %32
  br label %44

44:                                               ; preds = %39, %43
  %.str.61.sink = phi ptr [ @.str.61, %43 ], [ @.str.58, %39 ]
  store i32 %34, ptr %33, align 4, !tbaa !5
  %45 = load ptr, ptr @stderr, align 8, !tbaa !9
  %46 = load i32, ptr @test_count, align 4, !tbaa !5
  %47 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %48 = load i32, ptr %47, align 4, !tbaa !5
  %49 = tail call ptr @s2n_strerror(i32 noundef %48, ptr noundef nonnull @.str.60) #15
  %50 = load i32, ptr %47, align 4, !tbaa !5
  %51 = tail call ptr @s2n_strerror_debug(i32 noundef %50, ptr noundef nonnull @.str.60) #15
  %52 = load i32, ptr %33, align 4, !tbaa !5
  %53 = tail call ptr @strerror(i32 noundef %52) #15
  %54 = load i32, ptr %33, align 4, !tbaa !5
  %55 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %45, ptr noundef nonnull %.str.61.sink, i32 noundef %46, ptr noundef nonnull @.str.59, ptr noundef nonnull @.str.57, i32 noundef 44, ptr noundef %49, ptr noundef %51, ptr noundef %53, i32 noundef %54) #17
  tail call void @exit(i32 noundef 1) #18
  unreachable

56:                                               ; preds = %2
  %57 = load i32, ptr @test_count, align 4, !tbaa !5
  %58 = add nsw i32 %57, 1
  store i32 %58, ptr @test_count, align 4, !tbaa !5
  %59 = tail call i32 @s2n_enable_atexit() #15
  %60 = icmp eq i32 %59, -1
  br i1 %60, label %61, label %85

61:                                               ; preds = %56
  %62 = tail call ptr @__errno_location() #16
  %63 = load i32, ptr %62, align 4, !tbaa !5
  %64 = load ptr, ptr @stderr, align 8, !tbaa !9
  %65 = tail call i32 @s2n_print_stacktrace(ptr noundef %64) #15
  %66 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %67 = trunc nuw i8 %66 to i1
  br i1 %67, label %68, label %72

68:                                               ; preds = %61
  %69 = load ptr, ptr @stderr, align 8, !tbaa !9
  %70 = tail call i32 @fileno(ptr noundef %69) #15
  %71 = tail call i32 @isatty(i32 noundef %70) #15
  %.not614 = icmp eq i32 %71, 0
  br i1 %.not614, label %72, label %73

72:                                               ; preds = %68, %61
  br label %73

73:                                               ; preds = %68, %72
  %.str.61.sink665 = phi ptr [ @.str.61, %72 ], [ @.str.58, %68 ]
  store i32 %63, ptr %62, align 4, !tbaa !5
  %74 = load ptr, ptr @stderr, align 8, !tbaa !9
  %75 = load i32, ptr @test_count, align 4, !tbaa !5
  %76 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %77 = load i32, ptr %76, align 4, !tbaa !5
  %78 = tail call ptr @s2n_strerror(i32 noundef %77, ptr noundef nonnull @.str.60) #15
  %79 = load i32, ptr %76, align 4, !tbaa !5
  %80 = tail call ptr @s2n_strerror_debug(i32 noundef %79, ptr noundef nonnull @.str.60) #15
  %81 = load i32, ptr %62, align 4, !tbaa !5
  %82 = tail call ptr @strerror(i32 noundef %81) #15
  %83 = load i32, ptr %62, align 4, !tbaa !5
  %84 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %74, ptr noundef nonnull %.str.61.sink665, i32 noundef %75, ptr noundef nonnull @.str.62, ptr noundef nonnull @.str.57, i32 noundef 44, ptr noundef %78, ptr noundef %80, ptr noundef %82, i32 noundef %83) #17
  tail call void @exit(i32 noundef 1) #18
  unreachable

85:                                               ; preds = %56
  %86 = tail call i32 @s2n_init() #15
  %87 = icmp eq i32 %86, -1
  br i1 %87, label %88, label %112

88:                                               ; preds = %85
  %89 = tail call ptr @__errno_location() #16
  %90 = load i32, ptr %89, align 4, !tbaa !5
  %91 = load ptr, ptr @stderr, align 8, !tbaa !9
  %92 = tail call i32 @s2n_print_stacktrace(ptr noundef %91) #15
  %93 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %94 = trunc nuw i8 %93 to i1
  br i1 %94, label %95, label %99

95:                                               ; preds = %88
  %96 = load ptr, ptr @stderr, align 8, !tbaa !9
  %97 = tail call i32 @fileno(ptr noundef %96) #15
  %98 = tail call i32 @isatty(i32 noundef %97) #15
  %.not613 = icmp eq i32 %98, 0
  br i1 %.not613, label %99, label %100

99:                                               ; preds = %95, %88
  br label %100

100:                                              ; preds = %95, %99
  %.str.61.sink676 = phi ptr [ @.str.61, %99 ], [ @.str.58, %95 ]
  store i32 %90, ptr %89, align 4, !tbaa !5
  %101 = load ptr, ptr @stderr, align 8, !tbaa !9
  %102 = load i32, ptr @test_count, align 4, !tbaa !5
  %103 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %104 = load i32, ptr %103, align 4, !tbaa !5
  %105 = tail call ptr @s2n_strerror(i32 noundef %104, ptr noundef nonnull @.str.60) #15
  %106 = load i32, ptr %103, align 4, !tbaa !5
  %107 = tail call ptr @s2n_strerror_debug(i32 noundef %106, ptr noundef nonnull @.str.60) #15
  %108 = load i32, ptr %89, align 4, !tbaa !5
  %109 = tail call ptr @strerror(i32 noundef %108) #15
  %110 = load i32, ptr %89, align 4, !tbaa !5
  %111 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %101, ptr noundef nonnull %.str.61.sink676, i32 noundef %102, ptr noundef nonnull @.str.63, ptr noundef nonnull @.str.57, i32 noundef 44, ptr noundef %105, ptr noundef %107, ptr noundef %109, i32 noundef %110) #17
  tail call void @exit(i32 noundef 1) #18
  unreachable

112:                                              ; preds = %85
  %113 = tail call zeroext i1 (...) @s2n_is_tls13_fully_supported() #15
  br i1 %113, label %189, label %114

114:                                              ; preds = %112
  %115 = tail call i32 @s2n_cleanup() #15
  %116 = icmp eq i32 %115, -1
  br i1 %116, label %117, label %141

117:                                              ; preds = %114
  %118 = tail call ptr @__errno_location() #16
  %119 = load i32, ptr %118, align 4, !tbaa !5
  %120 = load ptr, ptr @stderr, align 8, !tbaa !9
  %121 = tail call i32 @s2n_print_stacktrace(ptr noundef %120) #15
  %122 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %123 = trunc nuw i8 %122 to i1
  br i1 %123, label %124, label %128

124:                                              ; preds = %117
  %125 = load ptr, ptr @stderr, align 8, !tbaa !9
  %126 = tail call i32 @fileno(ptr noundef %125) #15
  %127 = tail call i32 @isatty(i32 noundef %126) #15
  %.not460 = icmp eq i32 %127, 0
  br i1 %.not460, label %128, label %129

128:                                              ; preds = %124, %117
  br label %129

129:                                              ; preds = %124, %128
  %.str.61.sink687 = phi ptr [ @.str.61, %128 ], [ @.str.58, %124 ]
  store i32 %119, ptr %118, align 4, !tbaa !5
  %130 = load ptr, ptr @stderr, align 8, !tbaa !9
  %131 = load i32, ptr @test_count, align 4, !tbaa !5
  %132 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %133 = load i32, ptr %132, align 4, !tbaa !5
  %134 = tail call ptr @s2n_strerror(i32 noundef %133, ptr noundef nonnull @.str.60) #15
  %135 = load i32, ptr %132, align 4, !tbaa !5
  %136 = tail call ptr @s2n_strerror_debug(i32 noundef %135, ptr noundef nonnull @.str.60) #15
  %137 = load i32, ptr %118, align 4, !tbaa !5
  %138 = tail call ptr @strerror(i32 noundef %137) #15
  %139 = load i32, ptr %118, align 4, !tbaa !5
  %140 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %130, ptr noundef nonnull %.str.61.sink687, i32 noundef %131, ptr noundef nonnull @.str.64, ptr noundef nonnull @.str.57, i32 noundef 47, ptr noundef %134, ptr noundef %136, ptr noundef %138, i32 noundef %139) #17
  tail call void @exit(i32 noundef 1) #18
  unreachable

141:                                              ; preds = %114
  %142 = tail call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #15
  %143 = icmp eq i32 %142, -1
  br i1 %143, label %144, label %168

144:                                              ; preds = %141
  %145 = tail call ptr @__errno_location() #16
  %146 = load i32, ptr %145, align 4, !tbaa !5
  %147 = load ptr, ptr @stderr, align 8, !tbaa !9
  %148 = tail call i32 @s2n_print_stacktrace(ptr noundef %147) #15
  %149 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %150 = trunc nuw i8 %149 to i1
  br i1 %150, label %151, label %155

151:                                              ; preds = %144
  %152 = load ptr, ptr @stderr, align 8, !tbaa !9
  %153 = tail call i32 @fileno(ptr noundef %152) #15
  %154 = tail call i32 @isatty(i32 noundef %153) #15
  %.not459 = icmp eq i32 %154, 0
  br i1 %.not459, label %155, label %156

155:                                              ; preds = %151, %144
  br label %156

156:                                              ; preds = %151, %155
  %.str.61.sink698 = phi ptr [ @.str.61, %155 ], [ @.str.58, %151 ]
  store i32 %146, ptr %145, align 4, !tbaa !5
  %157 = load ptr, ptr @stderr, align 8, !tbaa !9
  %158 = load i32, ptr @test_count, align 4, !tbaa !5
  %159 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %160 = load i32, ptr %159, align 4, !tbaa !5
  %161 = tail call ptr @s2n_strerror(i32 noundef %160, ptr noundef nonnull @.str.60) #15
  %162 = load i32, ptr %159, align 4, !tbaa !5
  %163 = tail call ptr @s2n_strerror_debug(i32 noundef %162, ptr noundef nonnull @.str.60) #15
  %164 = load i32, ptr %145, align 4, !tbaa !5
  %165 = tail call ptr @strerror(i32 noundef %164) #15
  %166 = load i32, ptr %145, align 4, !tbaa !5
  %167 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %157, ptr noundef nonnull %.str.61.sink698, i32 noundef %158, ptr noundef nonnull @.str.65, ptr noundef nonnull @.str.57, i32 noundef 47, ptr noundef %161, ptr noundef %163, ptr noundef %165, i32 noundef %166) #17
  tail call void @exit(i32 noundef 1) #18
  unreachable

168:                                              ; preds = %141
  %169 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %170 = trunc nuw i8 %169 to i1
  br i1 %170, label %171, label %182

171:                                              ; preds = %168
  %172 = load ptr, ptr @stdout, align 8, !tbaa !9
  %173 = tail call i32 @fileno(ptr noundef %172) #15
  %174 = tail call i32 @isatty(i32 noundef %173) #15
  %.not = icmp eq i32 %174, 0
  br i1 %.not, label %182, label %175

175:                                              ; preds = %171
  %176 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not458 = icmp eq i32 %176, 0
  %177 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not458, label %180, label %178

178:                                              ; preds = %175
  %179 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %177, ptr noundef nonnull @.str.66, i32 noundef %176) #15
  br label %4325

180:                                              ; preds = %175
  %181 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %177, ptr noundef nonnull @.str.67) #15
  br label %4325

182:                                              ; preds = %171, %168
  %183 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not457 = icmp eq i32 %183, 0
  %184 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not457, label %187, label %185

185:                                              ; preds = %182
  %186 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %184, ptr noundef nonnull @.str.68, i32 noundef %183) #15
  br label %4325

187:                                              ; preds = %182
  %188 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %184, ptr noundef nonnull @.str.69) #15
  br label %4325

189:                                              ; preds = %112
  %190 = load i32, ptr @test_count, align 4, !tbaa !5
  %191 = add nsw i32 %190, 1
  store i32 %191, ptr @test_count, align 4, !tbaa !5
  %192 = tail call ptr @s2n_connection_new(i32 noundef 0) #15
  %193 = icmp eq ptr %192, null
  br i1 %193, label %194, label %218

194:                                              ; preds = %189
  %195 = tail call ptr @__errno_location() #16
  %196 = load i32, ptr %195, align 4, !tbaa !5
  %197 = load ptr, ptr @stderr, align 8, !tbaa !9
  %198 = tail call i32 @s2n_print_stacktrace(ptr noundef %197) #15
  %199 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %200 = trunc nuw i8 %199 to i1
  br i1 %200, label %201, label %205

201:                                              ; preds = %194
  %202 = load ptr, ptr @stderr, align 8, !tbaa !9
  %203 = tail call i32 @fileno(ptr noundef %202) #15
  %204 = tail call i32 @isatty(i32 noundef %203) #15
  %.not612 = icmp eq i32 %204, 0
  br i1 %.not612, label %205, label %206

205:                                              ; preds = %201, %194
  br label %206

206:                                              ; preds = %201, %205
  %.str.61.sink709 = phi ptr [ @.str.61, %205 ], [ @.str.58, %201 ]
  store i32 %196, ptr %195, align 4, !tbaa !5
  %207 = load ptr, ptr @stderr, align 8, !tbaa !9
  %208 = load i32, ptr @test_count, align 4, !tbaa !5
  %209 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %210 = load i32, ptr %209, align 4, !tbaa !5
  %211 = tail call ptr @s2n_strerror(i32 noundef %210, ptr noundef nonnull @.str.60) #15
  %212 = load i32, ptr %209, align 4, !tbaa !5
  %213 = tail call ptr @s2n_strerror_debug(i32 noundef %212, ptr noundef nonnull @.str.60) #15
  %214 = load i32, ptr %195, align 4, !tbaa !5
  %215 = tail call ptr @strerror(i32 noundef %214) #15
  %216 = load i32, ptr %195, align 4, !tbaa !5
  %217 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %207, ptr noundef nonnull %.str.61.sink709, i32 noundef %208, ptr noundef nonnull @.str.70, ptr noundef nonnull @.str.57, i32 noundef 55, ptr noundef %211, ptr noundef %213, ptr noundef %215, i32 noundef %216) #17
  tail call void @exit(i32 noundef 1) #18
  unreachable

218:                                              ; preds = %189
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %3) #15
  store ptr null, ptr %3, align 8, !tbaa !9
  %219 = load i32, ptr @test_count, align 4, !tbaa !5
  %220 = add nsw i32 %219, 1
  store i32 %220, ptr @test_count, align 4, !tbaa !5
  %221 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef nonnull %192, ptr noundef nonnull %3) #15
  %222 = icmp eq i32 %221, -1
  br i1 %222, label %223, label %247

223:                                              ; preds = %218
  %224 = tail call ptr @__errno_location() #16
  %225 = load i32, ptr %224, align 4, !tbaa !5
  %226 = load ptr, ptr @stderr, align 8, !tbaa !9
  %227 = call i32 @s2n_print_stacktrace(ptr noundef %226) #15
  %228 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %229 = trunc nuw i8 %228 to i1
  br i1 %229, label %230, label %234

230:                                              ; preds = %223
  %231 = load ptr, ptr @stderr, align 8, !tbaa !9
  %232 = call i32 @fileno(ptr noundef %231) #15
  %233 = call i32 @isatty(i32 noundef %232) #15
  %.not611 = icmp eq i32 %233, 0
  br i1 %.not611, label %234, label %235

234:                                              ; preds = %230, %223
  br label %235

235:                                              ; preds = %230, %234
  %.str.61.sink720 = phi ptr [ @.str.61, %234 ], [ @.str.58, %230 ]
  store i32 %225, ptr %224, align 4, !tbaa !5
  %236 = load ptr, ptr @stderr, align 8, !tbaa !9
  %237 = load i32, ptr @test_count, align 4, !tbaa !5
  %238 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %239 = load i32, ptr %238, align 4, !tbaa !5
  %240 = call ptr @s2n_strerror(i32 noundef %239, ptr noundef nonnull @.str.60) #15
  %241 = load i32, ptr %238, align 4, !tbaa !5
  %242 = call ptr @s2n_strerror_debug(i32 noundef %241, ptr noundef nonnull @.str.60) #15
  %243 = load i32, ptr %224, align 4, !tbaa !5
  %244 = call ptr @strerror(i32 noundef %243) #15
  %245 = load i32, ptr %224, align 4, !tbaa !5
  %246 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %236, ptr noundef nonnull %.str.61.sink720, i32 noundef %237, ptr noundef nonnull @.str.71, ptr noundef nonnull @.str.57, i32 noundef 58, ptr noundef %240, ptr noundef %242, ptr noundef %244, i32 noundef %245) #17
  call void @exit(i32 noundef 1) #18
  unreachable

247:                                              ; preds = %218
  %248 = load i32, ptr @test_count, align 4, !tbaa !5
  %249 = add nsw i32 %248, 1
  store i32 %249, ptr @test_count, align 4, !tbaa !5
  %250 = load ptr, ptr %3, align 8, !tbaa !9
  %251 = icmp eq ptr %250, null
  br i1 %251, label %252, label %276

252:                                              ; preds = %247
  %253 = tail call ptr @__errno_location() #16
  %254 = load i32, ptr %253, align 4, !tbaa !5
  %255 = load ptr, ptr @stderr, align 8, !tbaa !9
  %256 = call i32 @s2n_print_stacktrace(ptr noundef %255) #15
  %257 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %258 = trunc nuw i8 %257 to i1
  br i1 %258, label %259, label %263

259:                                              ; preds = %252
  %260 = load ptr, ptr @stderr, align 8, !tbaa !9
  %261 = call i32 @fileno(ptr noundef %260) #15
  %262 = call i32 @isatty(i32 noundef %261) #15
  %.not610 = icmp eq i32 %262, 0
  br i1 %.not610, label %263, label %264

263:                                              ; preds = %259, %252
  br label %264

264:                                              ; preds = %259, %263
  %.str.61.sink731 = phi ptr [ @.str.61, %263 ], [ @.str.58, %259 ]
  store i32 %254, ptr %253, align 4, !tbaa !5
  %265 = load ptr, ptr @stderr, align 8, !tbaa !9
  %266 = load i32, ptr @test_count, align 4, !tbaa !5
  %267 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %268 = load i32, ptr %267, align 4, !tbaa !5
  %269 = call ptr @s2n_strerror(i32 noundef %268, ptr noundef nonnull @.str.60) #15
  %270 = load i32, ptr %267, align 4, !tbaa !5
  %271 = call ptr @s2n_strerror_debug(i32 noundef %270, ptr noundef nonnull @.str.60) #15
  %272 = load i32, ptr %253, align 4, !tbaa !5
  %273 = call ptr @strerror(i32 noundef %272) #15
  %274 = load i32, ptr %253, align 4, !tbaa !5
  %275 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %265, ptr noundef nonnull %.str.61.sink731, i32 noundef %266, ptr noundef nonnull @.str.72, ptr noundef nonnull @.str.57, i32 noundef 59, ptr noundef %269, ptr noundef %271, ptr noundef %273, i32 noundef %274) #17
  call void @exit(i32 noundef 1) #18
  unreachable

276:                                              ; preds = %247
  %277 = getelementptr inbounds i8, ptr %192, i64 232
  %278 = load ptr, ptr %277, align 8, !tbaa !15
  store ptr @s2n_tls13_aes_128_gcm_sha256, ptr %278, align 8, !tbaa !42
  %279 = load ptr, ptr %3, align 8, !tbaa !9
  %280 = getelementptr inbounds i8, ptr %279, i64 8
  %281 = load ptr, ptr %280, align 8, !tbaa !47
  %282 = load ptr, ptr %281, align 8, !tbaa !9
  %283 = getelementptr inbounds i8, ptr %192, i64 656
  store ptr %282, ptr %283, align 8, !tbaa !49
  %284 = add nsw i32 %248, 2
  store i32 %284, ptr @test_count, align 4, !tbaa !5
  %285 = call i32 @s2n_ecc_evp_generate_ephemeral_key(ptr noundef nonnull %283) #15
  %286 = icmp eq i32 %285, -1
  br i1 %286, label %287, label %311

287:                                              ; preds = %276
  %288 = tail call ptr @__errno_location() #16
  %289 = load i32, ptr %288, align 4, !tbaa !5
  %290 = load ptr, ptr @stderr, align 8, !tbaa !9
  %291 = call i32 @s2n_print_stacktrace(ptr noundef %290) #15
  %292 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %293 = trunc nuw i8 %292 to i1
  br i1 %293, label %294, label %298

294:                                              ; preds = %287
  %295 = load ptr, ptr @stderr, align 8, !tbaa !9
  %296 = call i32 @fileno(ptr noundef %295) #15
  %297 = call i32 @isatty(i32 noundef %296) #15
  %.not609 = icmp eq i32 %297, 0
  br i1 %.not609, label %298, label %299

298:                                              ; preds = %294, %287
  br label %299

299:                                              ; preds = %294, %298
  %.str.61.sink742 = phi ptr [ @.str.61, %298 ], [ @.str.58, %294 ]
  store i32 %289, ptr %288, 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 nonnull @.str.60) #15
  %305 = load i32, ptr %302, align 4, !tbaa !5
  %306 = call ptr @s2n_strerror_debug(i32 noundef %305, ptr noundef nonnull @.str.60) #15
  %307 = load i32, ptr %288, align 4, !tbaa !5
  %308 = call ptr @strerror(i32 noundef %307) #15
  %309 = load i32, ptr %288, align 4, !tbaa !5
  %310 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %300, ptr noundef nonnull %.str.61.sink742, i32 noundef %301, ptr noundef nonnull @.str.73, ptr noundef nonnull @.str.57, i32 noundef 63, ptr noundef %304, ptr noundef %306, ptr noundef %308, i32 noundef %309) #17
  call void @exit(i32 noundef 1) #18
  unreachable

311:                                              ; preds = %276
  %312 = load ptr, ptr %3, align 8, !tbaa !9
  %313 = getelementptr inbounds i8, ptr %312, i64 8
  %314 = load ptr, ptr %313, align 8, !tbaa !47
  %315 = load ptr, ptr %314, align 8, !tbaa !9
  %316 = getelementptr inbounds i8, ptr %192, i64 704
  store ptr %315, ptr %316, align 8, !tbaa !50
  %317 = load i32, ptr @test_count, align 4, !tbaa !5
  %318 = add nsw i32 %317, 1
  store i32 %318, ptr @test_count, align 4, !tbaa !5
  %319 = call i32 @s2n_ecc_evp_generate_ephemeral_key(ptr noundef nonnull %316) #15
  %320 = icmp eq i32 %319, -1
  br i1 %320, label %321, label %345

321:                                              ; preds = %311
  %322 = tail call ptr @__errno_location() #16
  %323 = load i32, ptr %322, align 4, !tbaa !5
  %324 = load ptr, ptr @stderr, align 8, !tbaa !9
  %325 = call i32 @s2n_print_stacktrace(ptr noundef %324) #15
  %326 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %327 = trunc nuw i8 %326 to i1
  br i1 %327, label %328, label %332

328:                                              ; preds = %321
  %329 = load ptr, ptr @stderr, align 8, !tbaa !9
  %330 = call i32 @fileno(ptr noundef %329) #15
  %331 = call i32 @isatty(i32 noundef %330) #15
  %.not608 = icmp eq i32 %331, 0
  br i1 %.not608, label %332, label %333

332:                                              ; preds = %328, %321
  br label %333

333:                                              ; preds = %328, %332
  %.str.61.sink753 = phi ptr [ @.str.61, %332 ], [ @.str.58, %328 ]
  store i32 %323, ptr %322, align 4, !tbaa !5
  %334 = load ptr, ptr @stderr, align 8, !tbaa !9
  %335 = load i32, ptr @test_count, align 4, !tbaa !5
  %336 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %337 = load i32, ptr %336, align 4, !tbaa !5
  %338 = call ptr @s2n_strerror(i32 noundef %337, ptr noundef nonnull @.str.60) #15
  %339 = load i32, ptr %336, align 4, !tbaa !5
  %340 = call ptr @s2n_strerror_debug(i32 noundef %339, ptr noundef nonnull @.str.60) #15
  %341 = load i32, ptr %322, align 4, !tbaa !5
  %342 = call ptr @strerror(i32 noundef %341) #15
  %343 = load i32, ptr %322, align 4, !tbaa !5
  %344 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %334, ptr noundef nonnull %.str.61.sink753, i32 noundef %335, ptr noundef nonnull @.str.74, ptr noundef nonnull @.str.57, i32 noundef 65, ptr noundef %338, ptr noundef %340, ptr noundef %342, i32 noundef %343) #17
  call void @exit(i32 noundef 1) #18
  unreachable

345:                                              ; preds = %311
  call void @llvm.lifetime.start.p0(i64 19, ptr nonnull %4) #15
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(19) %4, ptr noundef nonnull align 16 dereferenceable(19) @__const.main.psk_data, i64 19, i1 false)
  call void @llvm.lifetime.start.p0(i64 17, ptr nonnull %5) #15
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(17) %5, ptr noundef nonnull align 16 dereferenceable(17) @__const.main.secret_data, i64 17, i1 false)
  %346 = getelementptr inbounds i8, ptr %192, i64 1696
  %.pre = load i32, ptr @test_count, align 4, !tbaa !5
  br label %352

347:                                              ; preds = %589
  %348 = add nsw i32 %530, 3
  store i32 %348, ptr @test_count, align 4, !tbaa !5
  %349 = getelementptr inbounds i8, ptr %192, i64 1708
  %350 = load i32, ptr %349, align 4, !tbaa !51
  %351 = icmp eq i32 %350, 0
  br i1 %351, label %591, label %615

352:                                              ; preds = %345, %589
  %353 = phi i32 [ %.pre, %345 ], [ %561, %589 ]
  %.0424635 = phi i64 [ 0, %345 ], [ %590, %589 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #15
  store ptr null, ptr %6, align 8, !tbaa !9
  %354 = add nsw i32 %353, 1
  store i32 %354, ptr @test_count, align 4, !tbaa !5
  %355 = call i32 @s2n_array_pushback(ptr noundef nonnull %346, ptr noundef nonnull %6) #15
  %356 = call zeroext i1 @s2n_result_is_ok(i32 %355)
  br i1 %356, label %381, label %357

357:                                              ; preds = %352
  %358 = tail call ptr @__errno_location() #16
  %359 = load i32, ptr %358, align 4, !tbaa !5
  %360 = load ptr, ptr @stderr, align 8, !tbaa !9
  %361 = call i32 @s2n_print_stacktrace(ptr noundef %360) #15
  %362 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %363 = trunc nuw i8 %362 to i1
  br i1 %363, label %364, label %368

364:                                              ; preds = %357
  %365 = load ptr, ptr @stderr, align 8, !tbaa !9
  %366 = call i32 @fileno(ptr noundef %365) #15
  %367 = call i32 @isatty(i32 noundef %366) #15
  %.not600 = icmp eq i32 %367, 0
  br i1 %.not600, label %368, label %369

368:                                              ; preds = %364, %357
  br label %369

369:                                              ; preds = %364, %368
  %.str.61.sink764 = phi ptr [ @.str.61, %368 ], [ @.str.58, %364 ]
  store i32 %359, ptr %358, align 4, !tbaa !5
  %370 = load ptr, ptr @stderr, align 8, !tbaa !9
  %371 = load i32, ptr @test_count, align 4, !tbaa !5
  %372 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %373 = load i32, ptr %372, align 4, !tbaa !5
  %374 = call ptr @s2n_strerror(i32 noundef %373, ptr noundef nonnull @.str.60) #15
  %375 = load i32, ptr %372, align 4, !tbaa !5
  %376 = call ptr @s2n_strerror_debug(i32 noundef %375, ptr noundef nonnull @.str.60) #15
  %377 = load i32, ptr %358, align 4, !tbaa !5
  %378 = call ptr @strerror(i32 noundef %377) #15
  %379 = load i32, ptr %358, align 4, !tbaa !5
  %380 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %370, ptr noundef nonnull %.str.61.sink764, i32 noundef %371, ptr noundef nonnull @.str.75, ptr noundef nonnull @.str.57, i32 noundef 71, ptr noundef %374, ptr noundef %376, ptr noundef %378, i32 noundef %379) #17
  call void @exit(i32 noundef 1) #18
  unreachable

381:                                              ; preds = %352
  %382 = load i32, ptr @test_count, align 4, !tbaa !5
  %383 = add nsw i32 %382, 1
  store i32 %383, ptr @test_count, align 4, !tbaa !5
  %384 = load ptr, ptr %6, align 8, !tbaa !9
  %385 = call i32 @s2n_psk_init(ptr noundef %384, i32 noundef 1) #15
  %386 = call zeroext i1 @s2n_result_is_ok(i32 %385)
  br i1 %386, label %411, label %387

387:                                              ; preds = %381
  %388 = tail call ptr @__errno_location() #16
  %389 = load i32, ptr %388, align 4, !tbaa !5
  %390 = load ptr, ptr @stderr, align 8, !tbaa !9
  %391 = call i32 @s2n_print_stacktrace(ptr noundef %390) #15
  %392 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %393 = trunc nuw i8 %392 to i1
  br i1 %393, label %394, label %398

394:                                              ; preds = %387
  %395 = load ptr, ptr @stderr, align 8, !tbaa !9
  %396 = call i32 @fileno(ptr noundef %395) #15
  %397 = call i32 @isatty(i32 noundef %396) #15
  %.not601 = icmp eq i32 %397, 0
  br i1 %.not601, label %398, label %399

398:                                              ; preds = %394, %387
  br label %399

399:                                              ; preds = %394, %398
  %.str.61.sink775 = phi ptr [ @.str.61, %398 ], [ @.str.58, %394 ]
  store i32 %389, ptr %388, align 4, !tbaa !5
  %400 = load ptr, ptr @stderr, align 8, !tbaa !9
  %401 = load i32, ptr @test_count, align 4, !tbaa !5
  %402 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %403 = load i32, ptr %402, align 4, !tbaa !5
  %404 = call ptr @s2n_strerror(i32 noundef %403, ptr noundef nonnull @.str.60) #15
  %405 = load i32, ptr %402, align 4, !tbaa !5
  %406 = call ptr @s2n_strerror_debug(i32 noundef %405, ptr noundef nonnull @.str.60) #15
  %407 = load i32, ptr %388, align 4, !tbaa !5
  %408 = call ptr @strerror(i32 noundef %407) #15
  %409 = load i32, ptr %388, align 4, !tbaa !5
  %410 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %400, ptr noundef nonnull %.str.61.sink775, i32 noundef %401, ptr noundef nonnull @.str.76, ptr noundef nonnull @.str.57, i32 noundef 72, ptr noundef %404, ptr noundef %406, ptr noundef %408, i32 noundef %409) #17
  call void @exit(i32 noundef 1) #18
  unreachable

411:                                              ; preds = %381
  %412 = load i32, ptr @test_count, align 4, !tbaa !5
  %413 = add nsw i32 %412, 1
  store i32 %413, ptr @test_count, align 4, !tbaa !5
  %414 = load ptr, ptr %6, align 8, !tbaa !9
  %415 = call i32 @s2n_psk_set_identity(ptr noundef %414, ptr noundef nonnull %4, i16 noundef zeroext 19) #15
  %416 = icmp eq i32 %415, -1
  br i1 %416, label %417, label %441

417:                                              ; preds = %411
  %418 = tail call ptr @__errno_location() #16
  %419 = load i32, ptr %418, align 4, !tbaa !5
  %420 = load ptr, ptr @stderr, align 8, !tbaa !9
  %421 = call i32 @s2n_print_stacktrace(ptr noundef %420) #15
  %422 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %423 = trunc nuw i8 %422 to i1
  br i1 %423, label %424, label %428

424:                                              ; preds = %417
  %425 = load ptr, ptr @stderr, align 8, !tbaa !9
  %426 = call i32 @fileno(ptr noundef %425) #15
  %427 = call i32 @isatty(i32 noundef %426) #15
  %.not607 = icmp eq i32 %427, 0
  br i1 %.not607, label %428, label %429

428:                                              ; preds = %424, %417
  br label %429

429:                                              ; preds = %424, %428
  %.str.61.sink786 = phi ptr [ @.str.61, %428 ], [ @.str.58, %424 ]
  store i32 %419, ptr %418, align 4, !tbaa !5
  %430 = load ptr, ptr @stderr, align 8, !tbaa !9
  %431 = load i32, ptr @test_count, align 4, !tbaa !5
  %432 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %433 = load i32, ptr %432, align 4, !tbaa !5
  %434 = call ptr @s2n_strerror(i32 noundef %433, ptr noundef nonnull @.str.60) #15
  %435 = load i32, ptr %432, align 4, !tbaa !5
  %436 = call ptr @s2n_strerror_debug(i32 noundef %435, ptr noundef nonnull @.str.60) #15
  %437 = load i32, ptr %418, align 4, !tbaa !5
  %438 = call ptr @strerror(i32 noundef %437) #15
  %439 = load i32, ptr %418, align 4, !tbaa !5
  %440 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %430, ptr noundef nonnull %.str.61.sink786, i32 noundef %431, ptr noundef nonnull @.str.77, ptr noundef nonnull @.str.57, i32 noundef 73, ptr noundef %434, ptr noundef %436, ptr noundef %438, i32 noundef %439) #17
  call void @exit(i32 noundef 1) #18
  unreachable

441:                                              ; preds = %411
  %442 = load i32, ptr @test_count, align 4, !tbaa !5
  %443 = add nsw i32 %442, 1
  store i32 %443, ptr @test_count, align 4, !tbaa !5
  %444 = load ptr, ptr %6, align 8, !tbaa !9
  %445 = getelementptr inbounds i8, ptr %444, i64 16
  %446 = load i32, ptr %445, align 8, !tbaa !52
  %447 = icmp eq i32 %446, 0
  br i1 %447, label %448, label %472

448:                                              ; preds = %441
  %449 = tail call ptr @__errno_location() #16
  %450 = load i32, ptr %449, align 4, !tbaa !5
  %451 = load ptr, ptr @stderr, align 8, !tbaa !9
  %452 = call i32 @s2n_print_stacktrace(ptr noundef %451) #15
  %453 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %454 = trunc nuw i8 %453 to i1
  br i1 %454, label %455, label %459

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

459:                                              ; preds = %455, %448
  br label %460

460:                                              ; preds = %455, %459
  %.str.61.sink797 = phi ptr [ @.str.61, %459 ], [ @.str.58, %455 ]
  store i32 %450, ptr %449, align 4, !tbaa !5
  %461 = load ptr, ptr @stderr, align 8, !tbaa !9
  %462 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %464, ptr noundef nonnull @.str.60) #15
  %466 = load i32, ptr %463, align 4, !tbaa !5
  %467 = call ptr @s2n_strerror_debug(i32 noundef %466, ptr noundef nonnull @.str.60) #15
  %468 = load i32, ptr %449, align 4, !tbaa !5
  %469 = call ptr @strerror(i32 noundef %468) #15
  %470 = load i32, ptr %449, align 4, !tbaa !5
  %471 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %461, ptr noundef nonnull %.str.61.sink797, i32 noundef %462, ptr noundef nonnull @.str.78, ptr noundef nonnull @.str.57, i32 noundef 74, ptr noundef %465, ptr noundef %467, ptr noundef %469, i32 noundef %470) #17
  call void @exit(i32 noundef 1) #18
  unreachable

472:                                              ; preds = %441
  %473 = add nsw i32 %442, 2
  store i32 %473, ptr @test_count, align 4, !tbaa !5
  %474 = getelementptr inbounds i8, ptr %444, i64 8
  %475 = load ptr, ptr %474, align 8, !tbaa !55
  %476 = icmp eq ptr %475, null
  br i1 %476, label %477, label %501

477:                                              ; preds = %472
  %478 = tail call ptr @__errno_location() #16
  %479 = load i32, ptr %478, align 4, !tbaa !5
  %480 = load ptr, ptr @stderr, align 8, !tbaa !9
  %481 = call i32 @s2n_print_stacktrace(ptr noundef %480) #15
  %482 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %483 = trunc nuw i8 %482 to i1
  br i1 %483, label %484, label %488

484:                                              ; preds = %477
  %485 = load ptr, ptr @stderr, align 8, !tbaa !9
  %486 = call i32 @fileno(ptr noundef %485) #15
  %487 = call i32 @isatty(i32 noundef %486) #15
  %.not605 = icmp eq i32 %487, 0
  br i1 %.not605, label %488, label %489

488:                                              ; preds = %484, %477
  br label %489

489:                                              ; preds = %484, %488
  %.str.61.sink808 = phi ptr [ @.str.61, %488 ], [ @.str.58, %484 ]
  store i32 %479, ptr %478, align 4, !tbaa !5
  %490 = load ptr, ptr @stderr, align 8, !tbaa !9
  %491 = load i32, ptr @test_count, align 4, !tbaa !5
  %492 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %493 = load i32, ptr %492, align 4, !tbaa !5
  %494 = call ptr @s2n_strerror(i32 noundef %493, ptr noundef nonnull @.str.60) #15
  %495 = load i32, ptr %492, align 4, !tbaa !5
  %496 = call ptr @s2n_strerror_debug(i32 noundef %495, ptr noundef nonnull @.str.60) #15
  %497 = load i32, ptr %478, align 4, !tbaa !5
  %498 = call ptr @strerror(i32 noundef %497) #15
  %499 = load i32, ptr %478, align 4, !tbaa !5
  %500 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %490, ptr noundef nonnull %.str.61.sink808, i32 noundef %491, ptr noundef nonnull @.str.79, ptr noundef nonnull @.str.57, i32 noundef 75, ptr noundef %494, ptr noundef %496, ptr noundef %498, i32 noundef %499) #17
  call void @exit(i32 noundef 1) #18
  unreachable

501:                                              ; preds = %472
  %502 = add nsw i32 %442, 3
  store i32 %502, ptr @test_count, align 4, !tbaa !5
  %503 = call i32 @s2n_psk_set_secret(ptr noundef nonnull %444, ptr noundef nonnull %5, i16 noundef zeroext 17) #15
  %504 = icmp eq i32 %503, -1
  br i1 %504, label %505, label %529

505:                                              ; preds = %501
  %506 = tail call ptr @__errno_location() #16
  %507 = load i32, ptr %506, align 4, !tbaa !5
  %508 = load ptr, ptr @stderr, align 8, !tbaa !9
  %509 = call i32 @s2n_print_stacktrace(ptr noundef %508) #15
  %510 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %511 = trunc nuw i8 %510 to i1
  br i1 %511, label %512, label %516

512:                                              ; preds = %505
  %513 = load ptr, ptr @stderr, align 8, !tbaa !9
  %514 = call i32 @fileno(ptr noundef %513) #15
  %515 = call i32 @isatty(i32 noundef %514) #15
  %.not604 = icmp eq i32 %515, 0
  br i1 %.not604, label %516, label %517

516:                                              ; preds = %512, %505
  br label %517

517:                                              ; preds = %512, %516
  %.str.61.sink819 = phi ptr [ @.str.61, %516 ], [ @.str.58, %512 ]
  store i32 %507, ptr %506, align 4, !tbaa !5
  %518 = load ptr, ptr @stderr, align 8, !tbaa !9
  %519 = load i32, ptr @test_count, align 4, !tbaa !5
  %520 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %521 = load i32, ptr %520, align 4, !tbaa !5
  %522 = call ptr @s2n_strerror(i32 noundef %521, ptr noundef nonnull @.str.60) #15
  %523 = load i32, ptr %520, align 4, !tbaa !5
  %524 = call ptr @s2n_strerror_debug(i32 noundef %523, ptr noundef nonnull @.str.60) #15
  %525 = load i32, ptr %506, align 4, !tbaa !5
  %526 = call ptr @strerror(i32 noundef %525) #15
  %527 = load i32, ptr %506, align 4, !tbaa !5
  %528 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %518, ptr noundef nonnull %.str.61.sink819, i32 noundef %519, ptr noundef nonnull @.str.80, ptr noundef nonnull @.str.57, i32 noundef 76, ptr noundef %522, ptr noundef %524, ptr noundef %526, i32 noundef %527) #17
  call void @exit(i32 noundef 1) #18
  unreachable

529:                                              ; preds = %501
  %530 = load i32, ptr @test_count, align 4, !tbaa !5
  %531 = add nsw i32 %530, 1
  store i32 %531, ptr @test_count, align 4, !tbaa !5
  %532 = load ptr, ptr %6, align 8, !tbaa !9
  %533 = getelementptr inbounds i8, ptr %532, i64 40
  %534 = load i32, ptr %533, align 8, !tbaa !56
  %535 = icmp eq i32 %534, 0
  br i1 %535, label %536, label %560

536:                                              ; preds = %529
  %537 = tail call ptr @__errno_location() #16
  %538 = load i32, ptr %537, align 4, !tbaa !5
  %539 = load ptr, ptr @stderr, align 8, !tbaa !9
  %540 = call i32 @s2n_print_stacktrace(ptr noundef %539) #15
  %541 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %542 = trunc nuw i8 %541 to i1
  br i1 %542, label %543, label %547

543:                                              ; preds = %536
  %544 = load ptr, ptr @stderr, align 8, !tbaa !9
  %545 = call i32 @fileno(ptr noundef %544) #15
  %546 = call i32 @isatty(i32 noundef %545) #15
  %.not603 = icmp eq i32 %546, 0
  br i1 %.not603, label %547, label %548

547:                                              ; preds = %543, %536
  br label %548

548:                                              ; preds = %543, %547
  %.str.61.sink830 = phi ptr [ @.str.61, %547 ], [ @.str.58, %543 ]
  store i32 %538, ptr %537, align 4, !tbaa !5
  %549 = load ptr, ptr @stderr, align 8, !tbaa !9
  %550 = load i32, ptr @test_count, align 4, !tbaa !5
  %551 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %552 = load i32, ptr %551, align 4, !tbaa !5
  %553 = call ptr @s2n_strerror(i32 noundef %552, ptr noundef nonnull @.str.60) #15
  %554 = load i32, ptr %551, align 4, !tbaa !5
  %555 = call ptr @s2n_strerror_debug(i32 noundef %554, ptr noundef nonnull @.str.60) #15
  %556 = load i32, ptr %537, align 4, !tbaa !5
  %557 = call ptr @strerror(i32 noundef %556) #15
  %558 = load i32, ptr %537, align 4, !tbaa !5
  %559 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %549, ptr noundef nonnull %.str.61.sink830, i32 noundef %550, ptr noundef nonnull @.str.81, ptr noundef nonnull @.str.57, i32 noundef 77, ptr noundef %553, ptr noundef %555, ptr noundef %557, i32 noundef %558) #17
  call void @exit(i32 noundef 1) #18
  unreachable

560:                                              ; preds = %529
  %561 = add nsw i32 %530, 2
  store i32 %561, ptr @test_count, align 4, !tbaa !5
  %562 = getelementptr inbounds i8, ptr %532, i64 32
  %563 = load ptr, ptr %562, align 8, !tbaa !57
  %564 = icmp eq ptr %563, null
  br i1 %564, label %565, label %589

565:                                              ; preds = %560
  %566 = tail call ptr @__errno_location() #16
  %567 = load i32, ptr %566, align 4, !tbaa !5
  %568 = load ptr, ptr @stderr, align 8, !tbaa !9
  %569 = call i32 @s2n_print_stacktrace(ptr noundef %568) #15
  %570 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %571 = trunc nuw i8 %570 to i1
  br i1 %571, label %572, label %576

572:                                              ; preds = %565
  %573 = load ptr, ptr @stderr, align 8, !tbaa !9
  %574 = call i32 @fileno(ptr noundef %573) #15
  %575 = call i32 @isatty(i32 noundef %574) #15
  %.not602 = icmp eq i32 %575, 0
  br i1 %.not602, label %576, label %577

576:                                              ; preds = %572, %565
  br label %577

577:                                              ; preds = %572, %576
  %.str.61.sink841 = phi ptr [ @.str.61, %576 ], [ @.str.58, %572 ]
  store i32 %567, ptr %566, align 4, !tbaa !5
  %578 = load ptr, ptr @stderr, align 8, !tbaa !9
  %579 = load i32, ptr @test_count, align 4, !tbaa !5
  %580 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %581 = load i32, ptr %580, align 4, !tbaa !5
  %582 = call ptr @s2n_strerror(i32 noundef %581, ptr noundef nonnull @.str.60) #15
  %583 = load i32, ptr %580, align 4, !tbaa !5
  %584 = call ptr @s2n_strerror_debug(i32 noundef %583, ptr noundef nonnull @.str.60) #15
  %585 = load i32, ptr %566, align 4, !tbaa !5
  %586 = call ptr @strerror(i32 noundef %585) #15
  %587 = load i32, ptr %566, align 4, !tbaa !5
  %588 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %578, ptr noundef nonnull %.str.61.sink841, i32 noundef %579, ptr noundef nonnull @.str.82, ptr noundef nonnull @.str.57, i32 noundef 78, ptr noundef %582, ptr noundef %584, ptr noundef %586, i32 noundef %587) #17
  call void @exit(i32 noundef 1) #18
  unreachable

589:                                              ; preds = %560
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #15
  %590 = add nuw nsw i64 %.0424635, 1
  %exitcond.not = icmp eq i64 %590, 10
  br i1 %exitcond.not, label %347, label %352, !llvm.loop !58

591:                                              ; preds = %347
  %592 = tail call ptr @__errno_location() #16
  %593 = load i32, ptr %592, align 4, !tbaa !5
  %594 = load ptr, ptr @stderr, align 8, !tbaa !9
  %595 = call i32 @s2n_print_stacktrace(ptr noundef %594) #15
  %596 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %597 = trunc nuw i8 %596 to i1
  br i1 %597, label %598, label %602

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

602:                                              ; preds = %598, %591
  br label %603

603:                                              ; preds = %598, %602
  %.str.61.sink852 = phi ptr [ @.str.61, %602 ], [ @.str.58, %598 ]
  store i32 %593, ptr %592, align 4, !tbaa !5
  %604 = load ptr, ptr @stderr, align 8, !tbaa !9
  %605 = load i32, ptr @test_count, align 4, !tbaa !5
  %606 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %607 = load i32, ptr %606, align 4, !tbaa !5
  %608 = call ptr @s2n_strerror(i32 noundef %607, ptr noundef nonnull @.str.60) #15
  %609 = load i32, ptr %606, align 4, !tbaa !5
  %610 = call ptr @s2n_strerror_debug(i32 noundef %609, ptr noundef nonnull @.str.60) #15
  %611 = load i32, ptr %592, align 4, !tbaa !5
  %612 = call ptr @strerror(i32 noundef %611) #15
  %613 = load i32, ptr %592, align 4, !tbaa !5
  %614 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %604, ptr noundef nonnull %.str.61.sink852, i32 noundef %605, ptr noundef nonnull @.str.83, ptr noundef nonnull @.str.57, i32 noundef 81, ptr noundef %608, ptr noundef %610, ptr noundef %612, i32 noundef %613) #17
  call void @exit(i32 noundef 1) #18
  unreachable

615:                                              ; preds = %347
  %616 = add nsw i32 %530, 4
  store i32 %616, ptr @test_count, align 4, !tbaa !5
  %617 = getelementptr inbounds i8, ptr %192, i64 1720
  %618 = load i32, ptr %617, align 8, !tbaa !60
  %619 = icmp eq i32 %618, 10
  br i1 %619, label %644, label %620

620:                                              ; preds = %615
  %621 = tail call ptr @__errno_location() #16
  %622 = load i32, ptr %621, align 4, !tbaa !5
  %623 = load ptr, ptr @stderr, align 8, !tbaa !9
  %624 = call i32 @s2n_print_stacktrace(ptr noundef %623) #15
  %625 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %626 = trunc nuw i8 %625 to i1
  br i1 %626, label %627, label %631

627:                                              ; preds = %620
  %628 = load ptr, ptr @stderr, align 8, !tbaa !9
  %629 = call i32 @fileno(ptr noundef %628) #15
  %630 = call i32 @isatty(i32 noundef %629) #15
  %.not461 = icmp eq i32 %630, 0
  br i1 %.not461, label %631, label %632

631:                                              ; preds = %627, %620
  br label %632

632:                                              ; preds = %627, %631
  %.str.61.sink863 = phi ptr [ @.str.61, %631 ], [ @.str.58, %627 ]
  store i32 %622, ptr %621, align 4, !tbaa !5
  %633 = load ptr, ptr @stderr, align 8, !tbaa !9
  %634 = load i32, ptr @test_count, align 4, !tbaa !5
  %635 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %636 = load i32, ptr %635, align 4, !tbaa !5
  %637 = call ptr @s2n_strerror(i32 noundef %636, ptr noundef nonnull @.str.60) #15
  %638 = load i32, ptr %635, align 4, !tbaa !5
  %639 = call ptr @s2n_strerror_debug(i32 noundef %638, ptr noundef nonnull @.str.60) #15
  %640 = load i32, ptr %621, align 4, !tbaa !5
  %641 = call ptr @strerror(i32 noundef %640) #15
  %642 = load i32, ptr %621, align 4, !tbaa !5
  %643 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %633, ptr noundef nonnull %.str.61.sink863, i32 noundef %634, ptr noundef nonnull @.str.84, ptr noundef nonnull @.str.57, i32 noundef 82, ptr noundef %637, ptr noundef %639, ptr noundef %641, i32 noundef %642) #17
  call void @exit(i32 noundef 1) #18
  unreachable

644:                                              ; preds = %615
  %645 = add nsw i32 %530, 5
  store i32 %645, ptr @test_count, align 4, !tbaa !5
  %646 = getelementptr inbounds i8, ptr %192, i64 1736
  %647 = load ptr, ptr %646, align 8, !tbaa !61
  %648 = icmp eq ptr %647, null
  br i1 %648, label %673, label %649

649:                                              ; preds = %644
  %650 = tail call ptr @__errno_location() #16
  %651 = load i32, ptr %650, align 4, !tbaa !5
  %652 = load ptr, ptr @stderr, align 8, !tbaa !9
  %653 = call i32 @s2n_print_stacktrace(ptr noundef %652) #15
  %654 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %655 = trunc nuw i8 %654 to i1
  br i1 %655, label %656, label %660

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

660:                                              ; preds = %656, %649
  br label %661

661:                                              ; preds = %656, %660
  %.str.61.sink874 = phi ptr [ @.str.61, %660 ], [ @.str.58, %656 ]
  store i32 %651, ptr %650, align 4, !tbaa !5
  %662 = load ptr, ptr @stderr, align 8, !tbaa !9
  %663 = load i32, ptr @test_count, align 4, !tbaa !5
  %664 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %665 = load i32, ptr %664, align 4, !tbaa !5
  %666 = call ptr @s2n_strerror(i32 noundef %665, ptr noundef nonnull @.str.60) #15
  %667 = load i32, ptr %664, align 4, !tbaa !5
  %668 = call ptr @s2n_strerror_debug(i32 noundef %667, ptr noundef nonnull @.str.60) #15
  %669 = load i32, ptr %650, align 4, !tbaa !5
  %670 = call ptr @strerror(i32 noundef %669) #15
  %671 = load i32, ptr %650, align 4, !tbaa !5
  %672 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %662, ptr noundef nonnull %.str.61.sink874, i32 noundef %663, ptr noundef nonnull @.str.85, ptr noundef nonnull @.str.57, i32 noundef 83, ptr noundef %666, ptr noundef %668, ptr noundef %670, i32 noundef %671) #17
  call void @exit(i32 noundef 1) #18
  unreachable

673:                                              ; preds = %644
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %7) #15
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %7, i8 0, i64 24, i1 false)
  %674 = add nsw i32 %530, 6
  store i32 %674, ptr @test_count, align 4, !tbaa !5
  %675 = call i32 @s2n_tls13_compute_shared_secret(ptr noundef nonnull %192, ptr noundef nonnull %7)
  %676 = icmp eq i32 %675, -1
  br i1 %676, label %678, label %.preheader634

.preheader634:                                    ; preds = %673
  %677 = load i32, ptr %617, align 8, !tbaa !60
  %.not641 = icmp eq i32 %677, 0
  %.pre645 = load i32, ptr @test_count, align 4, !tbaa !5
  br i1 %.not641, label %._crit_edge, label %.lr.ph

678:                                              ; preds = %673
  %679 = tail call ptr @__errno_location() #16
  %680 = load i32, ptr %679, align 4, !tbaa !5
  %681 = load ptr, ptr @stderr, align 8, !tbaa !9
  %682 = call i32 @s2n_print_stacktrace(ptr noundef %681) #15
  %683 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %684 = trunc nuw i8 %683 to i1
  br i1 %684, label %685, label %689

685:                                              ; preds = %678
  %686 = load ptr, ptr @stderr, align 8, !tbaa !9
  %687 = call i32 @fileno(ptr noundef %686) #15
  %688 = call i32 @isatty(i32 noundef %687) #15
  %.not598 = icmp eq i32 %688, 0
  br i1 %.not598, label %689, label %690

689:                                              ; preds = %685, %678
  br label %690

690:                                              ; preds = %685, %689
  %.str.61.sink885 = phi ptr [ @.str.61, %689 ], [ @.str.58, %685 ]
  store i32 %680, ptr %679, align 4, !tbaa !5
  %691 = load ptr, ptr @stderr, align 8, !tbaa !9
  %692 = load i32, ptr @test_count, align 4, !tbaa !5
  %693 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %694 = load i32, ptr %693, align 4, !tbaa !5
  %695 = call ptr @s2n_strerror(i32 noundef %694, ptr noundef nonnull @.str.60) #15
  %696 = load i32, ptr %693, align 4, !tbaa !5
  %697 = call ptr @s2n_strerror_debug(i32 noundef %696, ptr noundef nonnull @.str.60) #15
  %698 = load i32, ptr %679, align 4, !tbaa !5
  %699 = call ptr @strerror(i32 noundef %698) #15
  %700 = load i32, ptr %679, align 4, !tbaa !5
  %701 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %691, ptr noundef nonnull %.str.61.sink885, i32 noundef %692, ptr noundef nonnull @.str.86, ptr noundef nonnull @.str.57, i32 noundef 86, ptr noundef %695, ptr noundef %697, ptr noundef %699, i32 noundef %700) #17
  call void @exit(i32 noundef 1) #18
  unreachable

._crit_edge:                                      ; preds = %824, %.preheader634
  %702 = phi i32 [ %.pre645, %.preheader634 ], [ %796, %824 ]
  %703 = add nsw i32 %702, 1
  store i32 %703, ptr @test_count, align 4, !tbaa !5
  %704 = call i32 @s2n_connection_free(ptr noundef nonnull %192) #15
  %705 = icmp eq i32 %704, -1
  br i1 %705, label %829, label %853

.lr.ph:                                           ; preds = %.preheader634, %824
  %706 = phi i32 [ %796, %824 ], [ %.pre645, %.preheader634 ]
  %.0425636 = phi i64 [ %825, %824 ], [ 0, %.preheader634 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #15
  store ptr null, ptr %8, align 8, !tbaa !9
  %707 = add nsw i32 %706, 1
  store i32 %707, ptr @test_count, align 4, !tbaa !5
  %708 = trunc nuw i64 %.0425636 to i32
  %709 = call i32 @s2n_array_get(ptr noundef nonnull %346, i32 noundef %708, ptr noundef nonnull %8) #15
  %710 = call zeroext i1 @s2n_result_is_ok(i32 %709)
  br i1 %710, label %735, label %711

711:                                              ; preds = %.lr.ph
  %712 = tail call ptr @__errno_location() #16
  %713 = load i32, ptr %712, align 4, !tbaa !5
  %714 = load ptr, ptr @stderr, align 8, !tbaa !9
  %715 = call i32 @s2n_print_stacktrace(ptr noundef %714) #15
  %716 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %717 = trunc nuw i8 %716 to i1
  br i1 %717, label %718, label %722

718:                                              ; preds = %711
  %719 = load ptr, ptr @stderr, align 8, !tbaa !9
  %720 = call i32 @fileno(ptr noundef %719) #15
  %721 = call i32 @isatty(i32 noundef %720) #15
  %.not594 = icmp eq i32 %721, 0
  br i1 %.not594, label %722, label %723

722:                                              ; preds = %718, %711
  br label %723

723:                                              ; preds = %718, %722
  %.str.61.sink896 = phi ptr [ @.str.61, %722 ], [ @.str.58, %718 ]
  store i32 %713, ptr %712, align 4, !tbaa !5
  %724 = load ptr, ptr @stderr, align 8, !tbaa !9
  %725 = load i32, ptr @test_count, align 4, !tbaa !5
  %726 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %727 = load i32, ptr %726, align 4, !tbaa !5
  %728 = call ptr @s2n_strerror(i32 noundef %727, ptr noundef nonnull @.str.60) #15
  %729 = load i32, ptr %726, align 4, !tbaa !5
  %730 = call ptr @s2n_strerror_debug(i32 noundef %729, ptr noundef nonnull @.str.60) #15
  %731 = load i32, ptr %712, align 4, !tbaa !5
  %732 = call ptr @strerror(i32 noundef %731) #15
  %733 = load i32, ptr %712, align 4, !tbaa !5
  %734 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %724, ptr noundef nonnull %.str.61.sink896, i32 noundef %725, ptr noundef nonnull @.str.87, ptr noundef nonnull @.str.57, i32 noundef 91, ptr noundef %728, ptr noundef %730, ptr noundef %732, i32 noundef %733) #17
  call void @exit(i32 noundef 1) #18
  unreachable

735:                                              ; preds = %.lr.ph
  %736 = load i32, ptr @test_count, align 4, !tbaa !5
  %737 = add nsw i32 %736, 1
  store i32 %737, ptr @test_count, align 4, !tbaa !5
  %738 = load ptr, ptr %8, align 8, !tbaa !9
  %739 = getelementptr inbounds i8, ptr %738, i64 16
  %740 = load i32, ptr %739, align 8, !tbaa !52
  %741 = icmp eq i32 %740, 0
  br i1 %741, label %742, label %766

742:                                              ; preds = %735
  %743 = tail call ptr @__errno_location() #16
  %744 = load i32, ptr %743, align 4, !tbaa !5
  %745 = load ptr, ptr @stderr, align 8, !tbaa !9
  %746 = call i32 @s2n_print_stacktrace(ptr noundef %745) #15
  %747 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %748 = trunc nuw i8 %747 to i1
  br i1 %748, label %749, label %753

749:                                              ; preds = %742
  %750 = load ptr, ptr @stderr, align 8, !tbaa !9
  %751 = call i32 @fileno(ptr noundef %750) #15
  %752 = call i32 @isatty(i32 noundef %751) #15
  %.not597 = icmp eq i32 %752, 0
  br i1 %.not597, label %753, label %754

753:                                              ; preds = %749, %742
  br label %754

754:                                              ; preds = %749, %753
  %.str.61.sink907 = phi ptr [ @.str.61, %753 ], [ @.str.58, %749 ]
  store i32 %744, ptr %743, align 4, !tbaa !5
  %755 = load ptr, ptr @stderr, align 8, !tbaa !9
  %756 = load i32, ptr @test_count, align 4, !tbaa !5
  %757 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %758 = load i32, ptr %757, align 4, !tbaa !5
  %759 = call ptr @s2n_strerror(i32 noundef %758, ptr noundef nonnull @.str.60) #15
  %760 = load i32, ptr %757, align 4, !tbaa !5
  %761 = call ptr @s2n_strerror_debug(i32 noundef %760, ptr noundef nonnull @.str.60) #15
  %762 = load i32, ptr %743, align 4, !tbaa !5
  %763 = call ptr @strerror(i32 noundef %762) #15
  %764 = load i32, ptr %743, align 4, !tbaa !5
  %765 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %755, ptr noundef nonnull %.str.61.sink907, i32 noundef %756, ptr noundef nonnull @.str.78, ptr noundef nonnull @.str.57, i32 noundef 92, ptr noundef %759, ptr noundef %761, ptr noundef %763, i32 noundef %764) #17
  call void @exit(i32 noundef 1) #18
  unreachable

766:                                              ; preds = %735
  %767 = add nsw i32 %736, 2
  store i32 %767, ptr @test_count, align 4, !tbaa !5
  %768 = getelementptr inbounds i8, ptr %738, i64 32
  %769 = load ptr, ptr %768, align 8, !tbaa !57
  %770 = icmp eq ptr %769, null
  br i1 %770, label %795, label %771

771:                                              ; preds = %766
  %772 = tail call ptr @__errno_location() #16
  %773 = load i32, ptr %772, align 4, !tbaa !5
  %774 = load ptr, ptr @stderr, align 8, !tbaa !9
  %775 = call i32 @s2n_print_stacktrace(ptr noundef %774) #15
  %776 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %777 = trunc nuw i8 %776 to i1
  br i1 %777, label %778, label %782

778:                                              ; preds = %771
  %779 = load ptr, ptr @stderr, align 8, !tbaa !9
  %780 = call i32 @fileno(ptr noundef %779) #15
  %781 = call i32 @isatty(i32 noundef %780) #15
  %.not595 = icmp eq i32 %781, 0
  br i1 %.not595, label %782, label %783

782:                                              ; preds = %778, %771
  br label %783

783:                                              ; preds = %778, %782
  %.str.61.sink918 = phi ptr [ @.str.61, %782 ], [ @.str.58, %778 ]
  store i32 %773, ptr %772, align 4, !tbaa !5
  %784 = load ptr, ptr @stderr, align 8, !tbaa !9
  %785 = load i32, ptr @test_count, align 4, !tbaa !5
  %786 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %787 = load i32, ptr %786, align 4, !tbaa !5
  %788 = call ptr @s2n_strerror(i32 noundef %787, ptr noundef nonnull @.str.60) #15
  %789 = load i32, ptr %786, align 4, !tbaa !5
  %790 = call ptr @s2n_strerror_debug(i32 noundef %789, ptr noundef nonnull @.str.60) #15
  %791 = load i32, ptr %772, align 4, !tbaa !5
  %792 = call ptr @strerror(i32 noundef %791) #15
  %793 = load i32, ptr %772, align 4, !tbaa !5
  %794 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %784, ptr noundef nonnull %.str.61.sink918, i32 noundef %785, ptr noundef nonnull @.str.88, ptr noundef nonnull @.str.57, i32 noundef 93, ptr noundef %788, ptr noundef %790, ptr noundef %792, i32 noundef %793) #17
  call void @exit(i32 noundef 1) #18
  unreachable

795:                                              ; preds = %766
  %796 = add nsw i32 %736, 3
  store i32 %796, ptr @test_count, align 4, !tbaa !5
  %797 = getelementptr inbounds i8, ptr %738, i64 40
  %798 = load i32, ptr %797, align 8, !tbaa !56
  %799 = icmp eq i32 %798, 0
  br i1 %799, label %824, label %800

800:                                              ; preds = %795
  %801 = tail call ptr @__errno_location() #16
  %802 = load i32, ptr %801, align 4, !tbaa !5
  %803 = load ptr, ptr @stderr, align 8, !tbaa !9
  %804 = call i32 @s2n_print_stacktrace(ptr noundef %803) #15
  %805 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %806 = trunc nuw i8 %805 to i1
  br i1 %806, label %807, label %811

807:                                              ; preds = %800
  %808 = load ptr, ptr @stderr, align 8, !tbaa !9
  %809 = call i32 @fileno(ptr noundef %808) #15
  %810 = call i32 @isatty(i32 noundef %809) #15
  %.not596 = icmp eq i32 %810, 0
  br i1 %.not596, label %811, label %812

811:                                              ; preds = %807, %800
  br label %812

812:                                              ; preds = %807, %811
  %.str.61.sink929 = phi ptr [ @.str.61, %811 ], [ @.str.58, %807 ]
  store i32 %802, ptr %801, align 4, !tbaa !5
  %813 = load ptr, ptr @stderr, align 8, !tbaa !9
  %814 = load i32, ptr @test_count, align 4, !tbaa !5
  %815 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %816 = load i32, ptr %815, align 4, !tbaa !5
  %817 = call ptr @s2n_strerror(i32 noundef %816, ptr noundef nonnull @.str.60) #15
  %818 = load i32, ptr %815, align 4, !tbaa !5
  %819 = call ptr @s2n_strerror_debug(i32 noundef %818, ptr noundef nonnull @.str.60) #15
  %820 = load i32, ptr %801, align 4, !tbaa !5
  %821 = call ptr @strerror(i32 noundef %820) #15
  %822 = load i32, ptr %801, align 4, !tbaa !5
  %823 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %813, ptr noundef nonnull %.str.61.sink929, i32 noundef %814, ptr noundef nonnull @.str.89, ptr noundef nonnull @.str.57, i32 noundef 94, ptr noundef %817, ptr noundef %819, ptr noundef %821, i32 noundef %822) #17
  call void @exit(i32 noundef 1) #18
  unreachable

824:                                              ; preds = %795
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #15
  %825 = add nuw nsw i64 %.0425636, 1
  %826 = load i32, ptr %617, align 8, !tbaa !60
  %827 = zext i32 %826 to i64
  %828 = icmp ult i64 %825, %827
  br i1 %828, label %.lr.ph, label %._crit_edge, !llvm.loop !62

829:                                              ; preds = %._crit_edge
  %830 = tail call ptr @__errno_location() #16
  %831 = load i32, ptr %830, align 4, !tbaa !5
  %832 = load ptr, ptr @stderr, align 8, !tbaa !9
  %833 = call i32 @s2n_print_stacktrace(ptr noundef %832) #15
  %834 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %835 = trunc nuw i8 %834 to i1
  br i1 %835, label %836, label %840

836:                                              ; preds = %829
  %837 = load ptr, ptr @stderr, align 8, !tbaa !9
  %838 = call i32 @fileno(ptr noundef %837) #15
  %839 = call i32 @isatty(i32 noundef %838) #15
  %.not593 = icmp eq i32 %839, 0
  br i1 %.not593, label %840, label %841

840:                                              ; preds = %836, %829
  br label %841

841:                                              ; preds = %836, %840
  %.str.61.sink940 = phi ptr [ @.str.61, %840 ], [ @.str.58, %836 ]
  store i32 %831, ptr %830, align 4, !tbaa !5
  %842 = load ptr, ptr @stderr, align 8, !tbaa !9
  %843 = load i32, ptr @test_count, align 4, !tbaa !5
  %844 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %845 = load i32, ptr %844, align 4, !tbaa !5
  %846 = call ptr @s2n_strerror(i32 noundef %845, ptr noundef nonnull @.str.60) #15
  %847 = load i32, ptr %844, align 4, !tbaa !5
  %848 = call ptr @s2n_strerror_debug(i32 noundef %847, ptr noundef nonnull @.str.60) #15
  %849 = load i32, ptr %830, align 4, !tbaa !5
  %850 = call ptr @strerror(i32 noundef %849) #15
  %851 = load i32, ptr %830, align 4, !tbaa !5
  %852 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %842, ptr noundef nonnull %.str.61.sink940, i32 noundef %843, ptr noundef nonnull @.str.90, ptr noundef nonnull @.str.57, i32 noundef 97, ptr noundef %846, ptr noundef %848, ptr noundef %850, i32 noundef %851) #17
  call void @exit(i32 noundef 1) #18
  unreachable

853:                                              ; preds = %._crit_edge
  %854 = call i32 @s2n_free(ptr noundef nonnull %7) #15
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %7) #15
  call void @llvm.lifetime.end.p0(i64 17, ptr nonnull %5) #15
  call void @llvm.lifetime.end.p0(i64 19, ptr nonnull %4) #15
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3) #15
  %855 = load i32, ptr @test_count, align 4, !tbaa !5
  %856 = add nsw i32 %855, 1
  store i32 %856, ptr @test_count, align 4, !tbaa !5
  %857 = call ptr @s2n_connection_new(i32 noundef 0) #15
  %858 = icmp eq ptr %857, null
  br i1 %858, label %859, label %883

859:                                              ; preds = %853
  %860 = tail call ptr @__errno_location() #16
  %861 = load i32, ptr %860, align 4, !tbaa !5
  %862 = load ptr, ptr @stderr, align 8, !tbaa !9
  %863 = call i32 @s2n_print_stacktrace(ptr noundef %862) #15
  %864 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %865 = trunc nuw i8 %864 to i1
  br i1 %865, label %866, label %870

866:                                              ; preds = %859
  %867 = load ptr, ptr @stderr, align 8, !tbaa !9
  %868 = call i32 @fileno(ptr noundef %867) #15
  %869 = call i32 @isatty(i32 noundef %868) #15
  %.not592 = icmp eq i32 %869, 0
  br i1 %.not592, label %870, label %871

870:                                              ; preds = %866, %859
  br label %871

871:                                              ; preds = %866, %870
  %.str.61.sink951 = phi ptr [ @.str.61, %870 ], [ @.str.58, %866 ]
  store i32 %861, ptr %860, align 4, !tbaa !5
  %872 = load ptr, ptr @stderr, align 8, !tbaa !9
  %873 = load i32, ptr @test_count, align 4, !tbaa !5
  %874 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %875 = load i32, ptr %874, align 4, !tbaa !5
  %876 = call ptr @s2n_strerror(i32 noundef %875, ptr noundef nonnull @.str.60) #15
  %877 = load i32, ptr %874, align 4, !tbaa !5
  %878 = call ptr @s2n_strerror_debug(i32 noundef %877, ptr noundef nonnull @.str.60) #15
  %879 = load i32, ptr %860, align 4, !tbaa !5
  %880 = call ptr @strerror(i32 noundef %879) #15
  %881 = load i32, ptr %860, align 4, !tbaa !5
  %882 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %872, ptr noundef nonnull %.str.61.sink951, i32 noundef %873, ptr noundef nonnull @.str.70, ptr noundef nonnull @.str.57, i32 noundef 103, ptr noundef %876, ptr noundef %878, ptr noundef %880, i32 noundef %881) #17
  call void @exit(i32 noundef 1) #18
  unreachable

883:                                              ; preds = %853
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #15
  store ptr null, ptr %9, align 8, !tbaa !9
  %884 = load i32, ptr @test_count, align 4, !tbaa !5
  %885 = add nsw i32 %884, 1
  store i32 %885, ptr @test_count, align 4, !tbaa !5
  %886 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef nonnull %857, ptr noundef nonnull %9) #15
  %887 = icmp eq i32 %886, -1
  br i1 %887, label %888, label %912

888:                                              ; preds = %883
  %889 = tail call ptr @__errno_location() #16
  %890 = load i32, ptr %889, align 4, !tbaa !5
  %891 = load ptr, ptr @stderr, align 8, !tbaa !9
  %892 = call i32 @s2n_print_stacktrace(ptr noundef %891) #15
  %893 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %894 = trunc nuw i8 %893 to i1
  br i1 %894, label %895, label %899

895:                                              ; preds = %888
  %896 = load ptr, ptr @stderr, align 8, !tbaa !9
  %897 = call i32 @fileno(ptr noundef %896) #15
  %898 = call i32 @isatty(i32 noundef %897) #15
  %.not591 = icmp eq i32 %898, 0
  br i1 %.not591, label %899, label %900

899:                                              ; preds = %895, %888
  br label %900

900:                                              ; preds = %895, %899
  %.str.61.sink962 = phi ptr [ @.str.61, %899 ], [ @.str.58, %895 ]
  store i32 %890, ptr %889, align 4, !tbaa !5
  %901 = load ptr, ptr @stderr, align 8, !tbaa !9
  %902 = load i32, ptr @test_count, align 4, !tbaa !5
  %903 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %904 = load i32, ptr %903, align 4, !tbaa !5
  %905 = call ptr @s2n_strerror(i32 noundef %904, ptr noundef nonnull @.str.60) #15
  %906 = load i32, ptr %903, align 4, !tbaa !5
  %907 = call ptr @s2n_strerror_debug(i32 noundef %906, ptr noundef nonnull @.str.60) #15
  %908 = load i32, ptr %889, align 4, !tbaa !5
  %909 = call ptr @strerror(i32 noundef %908) #15
  %910 = load i32, ptr %889, align 4, !tbaa !5
  %911 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %901, ptr noundef nonnull %.str.61.sink962, i32 noundef %902, ptr noundef nonnull @.str.71, ptr noundef nonnull @.str.57, i32 noundef 106, ptr noundef %905, ptr noundef %907, ptr noundef %909, i32 noundef %910) #17
  call void @exit(i32 noundef 1) #18
  unreachable

912:                                              ; preds = %883
  %913 = load i32, ptr @test_count, align 4, !tbaa !5
  %914 = add nsw i32 %913, 1
  store i32 %914, ptr @test_count, align 4, !tbaa !5
  %915 = load ptr, ptr %9, align 8, !tbaa !9
  %916 = icmp eq ptr %915, null
  br i1 %916, label %917, label %941

917:                                              ; preds = %912
  %918 = tail call ptr @__errno_location() #16
  %919 = load i32, ptr %918, align 4, !tbaa !5
  %920 = load ptr, ptr @stderr, align 8, !tbaa !9
  %921 = call i32 @s2n_print_stacktrace(ptr noundef %920) #15
  %922 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %923 = trunc nuw i8 %922 to i1
  br i1 %923, label %924, label %928

924:                                              ; preds = %917
  %925 = load ptr, ptr @stderr, align 8, !tbaa !9
  %926 = call i32 @fileno(ptr noundef %925) #15
  %927 = call i32 @isatty(i32 noundef %926) #15
  %.not590 = icmp eq i32 %927, 0
  br i1 %.not590, label %928, label %929

928:                                              ; preds = %924, %917
  br label %929

929:                                              ; preds = %924, %928
  %.str.61.sink973 = phi ptr [ @.str.61, %928 ], [ @.str.58, %924 ]
  store i32 %919, ptr %918, align 4, !tbaa !5
  %930 = load ptr, ptr @stderr, align 8, !tbaa !9
  %931 = load i32, ptr @test_count, align 4, !tbaa !5
  %932 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %933 = load i32, ptr %932, align 4, !tbaa !5
  %934 = call ptr @s2n_strerror(i32 noundef %933, ptr noundef nonnull @.str.60) #15
  %935 = load i32, ptr %932, align 4, !tbaa !5
  %936 = call ptr @s2n_strerror_debug(i32 noundef %935, ptr noundef nonnull @.str.60) #15
  %937 = load i32, ptr %918, align 4, !tbaa !5
  %938 = call ptr @strerror(i32 noundef %937) #15
  %939 = load i32, ptr %918, align 4, !tbaa !5
  %940 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %930, ptr noundef nonnull %.str.61.sink973, i32 noundef %931, ptr noundef nonnull @.str.72, ptr noundef nonnull @.str.57, i32 noundef 107, ptr noundef %934, ptr noundef %936, ptr noundef %938, i32 noundef %939) #17
  call void @exit(i32 noundef 1) #18
  unreachable

941:                                              ; preds = %912
  %942 = getelementptr inbounds i8, ptr %857, i64 232
  %943 = load ptr, ptr %942, align 8, !tbaa !15
  store ptr @s2n_tls13_aes_128_gcm_sha256, ptr %943, align 8, !tbaa !42
  %944 = load ptr, ptr %9, align 8, !tbaa !9
  %945 = getelementptr inbounds i8, ptr %944, i64 8
  %946 = load ptr, ptr %945, align 8, !tbaa !47
  %947 = load ptr, ptr %946, align 8, !tbaa !9
  %948 = getelementptr inbounds i8, ptr %857, i64 656
  store ptr %947, ptr %948, align 8, !tbaa !49
  %949 = add nsw i32 %913, 2
  store i32 %949, ptr @test_count, align 4, !tbaa !5
  %950 = call i32 @s2n_ecc_evp_generate_ephemeral_key(ptr noundef nonnull %948) #15
  %951 = icmp eq i32 %950, -1
  br i1 %951, label %952, label %976

952:                                              ; preds = %941
  %953 = tail call ptr @__errno_location() #16
  %954 = load i32, ptr %953, align 4, !tbaa !5
  %955 = load ptr, ptr @stderr, align 8, !tbaa !9
  %956 = call i32 @s2n_print_stacktrace(ptr noundef %955) #15
  %957 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %958 = trunc nuw i8 %957 to i1
  br i1 %958, label %959, label %963

959:                                              ; preds = %952
  %960 = load ptr, ptr @stderr, align 8, !tbaa !9
  %961 = call i32 @fileno(ptr noundef %960) #15
  %962 = call i32 @isatty(i32 noundef %961) #15
  %.not589 = icmp eq i32 %962, 0
  br i1 %.not589, label %963, label %964

963:                                              ; preds = %959, %952
  br label %964

964:                                              ; preds = %959, %963
  %.str.61.sink984 = phi ptr [ @.str.61, %963 ], [ @.str.58, %959 ]
  store i32 %954, ptr %953, align 4, !tbaa !5
  %965 = load ptr, ptr @stderr, align 8, !tbaa !9
  %966 = load i32, ptr @test_count, align 4, !tbaa !5
  %967 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %968 = load i32, ptr %967, align 4, !tbaa !5
  %969 = call ptr @s2n_strerror(i32 noundef %968, ptr noundef nonnull @.str.60) #15
  %970 = load i32, ptr %967, align 4, !tbaa !5
  %971 = call ptr @s2n_strerror_debug(i32 noundef %970, ptr noundef nonnull @.str.60) #15
  %972 = load i32, ptr %953, align 4, !tbaa !5
  %973 = call ptr @strerror(i32 noundef %972) #15
  %974 = load i32, ptr %953, align 4, !tbaa !5
  %975 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %965, ptr noundef nonnull %.str.61.sink984, i32 noundef %966, ptr noundef nonnull @.str.73, ptr noundef nonnull @.str.57, i32 noundef 111, ptr noundef %969, ptr noundef %971, ptr noundef %973, i32 noundef %974) #17
  call void @exit(i32 noundef 1) #18
  unreachable

976:                                              ; preds = %941
  %977 = load ptr, ptr %9, align 8, !tbaa !9
  %978 = getelementptr inbounds i8, ptr %977, i64 8
  %979 = load ptr, ptr %978, align 8, !tbaa !47
  %980 = load ptr, ptr %979, align 8, !tbaa !9
  %981 = getelementptr inbounds i8, ptr %857, i64 704
  store ptr %980, ptr %981, align 8, !tbaa !50
  %982 = load i32, ptr @test_count, align 4, !tbaa !5
  %983 = add nsw i32 %982, 1
  store i32 %983, ptr @test_count, align 4, !tbaa !5
  %984 = call i32 @s2n_ecc_evp_generate_ephemeral_key(ptr noundef nonnull %981) #15
  %985 = icmp eq i32 %984, -1
  br i1 %985, label %986, label %1010

986:                                              ; preds = %976
  %987 = tail call ptr @__errno_location() #16
  %988 = load i32, ptr %987, align 4, !tbaa !5
  %989 = load ptr, ptr @stderr, align 8, !tbaa !9
  %990 = call i32 @s2n_print_stacktrace(ptr noundef %989) #15
  %991 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %992 = trunc nuw i8 %991 to i1
  br i1 %992, label %993, label %997

993:                                              ; preds = %986
  %994 = load ptr, ptr @stderr, align 8, !tbaa !9
  %995 = call i32 @fileno(ptr noundef %994) #15
  %996 = call i32 @isatty(i32 noundef %995) #15
  %.not588 = icmp eq i32 %996, 0
  br i1 %.not588, label %997, label %998

997:                                              ; preds = %993, %986
  br label %998

998:                                              ; preds = %993, %997
  %.str.61.sink995 = phi ptr [ @.str.61, %997 ], [ @.str.58, %993 ]
  store i32 %988, ptr %987, align 4, !tbaa !5
  %999 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1000 = load i32, ptr @test_count, align 4, !tbaa !5
  %1001 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1002 = load i32, ptr %1001, align 4, !tbaa !5
  %1003 = call ptr @s2n_strerror(i32 noundef %1002, ptr noundef nonnull @.str.60) #15
  %1004 = load i32, ptr %1001, align 4, !tbaa !5
  %1005 = call ptr @s2n_strerror_debug(i32 noundef %1004, ptr noundef nonnull @.str.60) #15
  %1006 = load i32, ptr %987, align 4, !tbaa !5
  %1007 = call ptr @strerror(i32 noundef %1006) #15
  %1008 = load i32, ptr %987, align 4, !tbaa !5
  %1009 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %999, ptr noundef nonnull %.str.61.sink995, i32 noundef %1000, ptr noundef nonnull @.str.74, ptr noundef nonnull @.str.57, i32 noundef 113, ptr noundef %1003, ptr noundef %1005, ptr noundef %1007, i32 noundef %1008) #17
  call void @exit(i32 noundef 1) #18
  unreachable

1010:                                             ; preds = %976
  call void @llvm.lifetime.start.p0(i64 19, ptr nonnull %10) #15
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(19) %10, ptr noundef nonnull align 16 dereferenceable(19) @__const.main.psk_data.91, i64 19, i1 false)
  call void @llvm.lifetime.start.p0(i64 17, ptr nonnull %11) #15
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(17) %11, ptr noundef nonnull align 16 dereferenceable(17) @__const.main.secret_data.92, i64 17, i1 false)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %12) #15
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(32) %12, ptr noundef nonnull align 16 dereferenceable(32) @__const.main.early_secret_data, i64 32, i1 false)
  %1011 = getelementptr inbounds i8, ptr %857, i64 1696
  %.pre646 = load i32, ptr @test_count, align 4, !tbaa !5
  br label %1012

1012:                                             ; preds = %1010, %1343
  %1013 = phi i32 [ %.pre646, %1010 ], [ %1315, %1343 ]
  %.0426637 = phi i64 [ 0, %1010 ], [ %1344, %1343 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #15
  store ptr null, ptr %13, align 8, !tbaa !9
  %1014 = add nsw i32 %1013, 1
  store i32 %1014, ptr @test_count, align 4, !tbaa !5
  %1015 = call i32 @s2n_array_pushback(ptr noundef nonnull %1011, ptr noundef nonnull %13) #15
  %1016 = call zeroext i1 @s2n_result_is_ok(i32 %1015)
  br i1 %1016, label %1041, label %1017

1017:                                             ; preds = %1012
  %1018 = tail call ptr @__errno_location() #16
  %1019 = load i32, ptr %1018, align 4, !tbaa !5
  %1020 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1021 = call i32 @s2n_print_stacktrace(ptr noundef %1020) #15
  %1022 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1023 = trunc nuw i8 %1022 to i1
  br i1 %1023, label %1024, label %1028

1024:                                             ; preds = %1017
  %1025 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1026 = call i32 @fileno(ptr noundef %1025) #15
  %1027 = call i32 @isatty(i32 noundef %1026) #15
  %.not463 = icmp eq i32 %1027, 0
  br i1 %.not463, label %1028, label %1029

1028:                                             ; preds = %1024, %1017
  br label %1029

1029:                                             ; preds = %1024, %1028
  %.str.61.sink1006 = phi ptr [ @.str.61, %1028 ], [ @.str.58, %1024 ]
  store i32 %1019, ptr %1018, align 4, !tbaa !5
  %1030 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1031 = load i32, ptr @test_count, align 4, !tbaa !5
  %1032 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1033 = load i32, ptr %1032, align 4, !tbaa !5
  %1034 = call ptr @s2n_strerror(i32 noundef %1033, ptr noundef nonnull @.str.60) #15
  %1035 = load i32, ptr %1032, align 4, !tbaa !5
  %1036 = call ptr @s2n_strerror_debug(i32 noundef %1035, ptr noundef nonnull @.str.60) #15
  %1037 = load i32, ptr %1018, align 4, !tbaa !5
  %1038 = call ptr @strerror(i32 noundef %1037) #15
  %1039 = load i32, ptr %1018, align 4, !tbaa !5
  %1040 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1030, ptr noundef nonnull %.str.61.sink1006, i32 noundef %1031, ptr noundef nonnull @.str.75, ptr noundef nonnull @.str.57, i32 noundef 120, ptr noundef %1034, ptr noundef %1036, ptr noundef %1038, i32 noundef %1039) #17
  call void @exit(i32 noundef 1) #18
  unreachable

1041:                                             ; preds = %1012
  %1042 = load i32, ptr @test_count, align 4, !tbaa !5
  %1043 = add nsw i32 %1042, 1
  store i32 %1043, ptr @test_count, align 4, !tbaa !5
  %1044 = load ptr, ptr %13, align 8, !tbaa !9
  %1045 = call i32 @s2n_psk_init(ptr noundef %1044, i32 noundef 1) #15
  %1046 = call zeroext i1 @s2n_result_is_ok(i32 %1045)
  br i1 %1046, label %1071, label %1047

1047:                                             ; preds = %1041
  %1048 = tail call ptr @__errno_location() #16
  %1049 = load i32, ptr %1048, align 4, !tbaa !5
  %1050 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1051 = call i32 @s2n_print_stacktrace(ptr noundef %1050) #15
  %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 = call i32 @fileno(ptr noundef %1055) #15
  %1057 = call i32 @isatty(i32 noundef %1056) #15
  %.not464 = icmp eq i32 %1057, 0
  br i1 %.not464, label %1058, label %1059

1058:                                             ; preds = %1054, %1047
  br label %1059

1059:                                             ; preds = %1054, %1058
  %.str.61.sink1017 = phi ptr [ @.str.61, %1058 ], [ @.str.58, %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 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1063 = load i32, ptr %1062, align 4, !tbaa !5
  %1064 = call ptr @s2n_strerror(i32 noundef %1063, ptr noundef nonnull @.str.60) #15
  %1065 = load i32, ptr %1062, align 4, !tbaa !5
  %1066 = call ptr @s2n_strerror_debug(i32 noundef %1065, ptr noundef nonnull @.str.60) #15
  %1067 = load i32, ptr %1048, align 4, !tbaa !5
  %1068 = call ptr @strerror(i32 noundef %1067) #15
  %1069 = load i32, ptr %1048, align 4, !tbaa !5
  %1070 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1060, ptr noundef nonnull %.str.61.sink1017, i32 noundef %1061, ptr noundef nonnull @.str.76, ptr noundef nonnull @.str.57, i32 noundef 121, ptr noundef %1064, ptr noundef %1066, ptr noundef %1068, i32 noundef %1069) #17
  call void @exit(i32 noundef 1) #18
  unreachable

1071:                                             ; preds = %1041
  %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 = load ptr, ptr %13, align 8, !tbaa !9
  %1075 = call i32 @s2n_psk_set_identity(ptr noundef %1074, ptr noundef nonnull %10, i16 noundef zeroext 19) #15
  %1076 = icmp eq i32 %1075, -1
  br i1 %1076, label %1077, label %1101

1077:                                             ; preds = %1071
  %1078 = tail call ptr @__errno_location() #16
  %1079 = load i32, ptr %1078, align 4, !tbaa !5
  %1080 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1081 = call i32 @s2n_print_stacktrace(ptr noundef %1080) #15
  %1082 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1083 = trunc nuw i8 %1082 to i1
  br i1 %1083, label %1084, label %1088

1084:                                             ; preds = %1077
  %1085 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1086 = call i32 @fileno(ptr noundef %1085) #15
  %1087 = call i32 @isatty(i32 noundef %1086) #15
  %.not587 = icmp eq i32 %1087, 0
  br i1 %.not587, label %1088, label %1089

1088:                                             ; preds = %1084, %1077
  br label %1089

1089:                                             ; preds = %1084, %1088
  %.str.61.sink1028 = phi ptr [ @.str.61, %1088 ], [ @.str.58, %1084 ]
  store i32 %1079, ptr %1078, align 4, !tbaa !5
  %1090 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1091 = load i32, ptr @test_count, align 4, !tbaa !5
  %1092 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1093 = load i32, ptr %1092, align 4, !tbaa !5
  %1094 = call ptr @s2n_strerror(i32 noundef %1093, ptr noundef nonnull @.str.60) #15
  %1095 = load i32, ptr %1092, align 4, !tbaa !5
  %1096 = call ptr @s2n_strerror_debug(i32 noundef %1095, ptr noundef nonnull @.str.60) #15
  %1097 = load i32, ptr %1078, align 4, !tbaa !5
  %1098 = call ptr @strerror(i32 noundef %1097) #15
  %1099 = load i32, ptr %1078, align 4, !tbaa !5
  %1100 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1090, ptr noundef nonnull %.str.61.sink1028, i32 noundef %1091, ptr noundef nonnull @.str.77, ptr noundef nonnull @.str.57, i32 noundef 122, ptr noundef %1094, ptr noundef %1096, ptr noundef %1098, i32 noundef %1099) #17
  call void @exit(i32 noundef 1) #18
  unreachable

1101:                                             ; preds = %1071
  %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 = getelementptr inbounds i8, ptr %1104, i64 16
  %1106 = load i32, ptr %1105, align 8, !tbaa !52
  %1107 = icmp eq i32 %1106, 0
  br i1 %1107, label %1108, label %1132

1108:                                             ; preds = %1101
  %1109 = tail call ptr @__errno_location() #16
  %1110 = load i32, ptr %1109, align 4, !tbaa !5
  %1111 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1112 = call i32 @s2n_print_stacktrace(ptr noundef %1111) #15
  %1113 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1114 = trunc nuw i8 %1113 to i1
  br i1 %1114, label %1115, label %1119

1115:                                             ; preds = %1108
  %1116 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1117 = call i32 @fileno(ptr noundef %1116) #15
  %1118 = call i32 @isatty(i32 noundef %1117) #15
  %.not586 = icmp eq i32 %1118, 0
  br i1 %.not586, label %1119, label %1120

1119:                                             ; preds = %1115, %1108
  br label %1120

1120:                                             ; preds = %1115, %1119
  %.str.61.sink1039 = phi ptr [ @.str.61, %1119 ], [ @.str.58, %1115 ]
  store i32 %1110, ptr %1109, align 4, !tbaa !5
  %1121 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1122 = load i32, ptr @test_count, align 4, !tbaa !5
  %1123 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1124 = load i32, ptr %1123, align 4, !tbaa !5
  %1125 = call ptr @s2n_strerror(i32 noundef %1124, ptr noundef nonnull @.str.60) #15
  %1126 = load i32, ptr %1123, align 4, !tbaa !5
  %1127 = call ptr @s2n_strerror_debug(i32 noundef %1126, ptr noundef nonnull @.str.60) #15
  %1128 = load i32, ptr %1109, align 4, !tbaa !5
  %1129 = call ptr @strerror(i32 noundef %1128) #15
  %1130 = load i32, ptr %1109, align 4, !tbaa !5
  %1131 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1121, ptr noundef nonnull %.str.61.sink1039, i32 noundef %1122, ptr noundef nonnull @.str.78, ptr noundef nonnull @.str.57, i32 noundef 123, ptr noundef %1125, ptr noundef %1127, ptr noundef %1129, i32 noundef %1130) #17
  call void @exit(i32 noundef 1) #18
  unreachable

1132:                                             ; preds = %1101
  %1133 = add nsw i32 %1102, 2
  store i32 %1133, ptr @test_count, align 4, !tbaa !5
  %1134 = getelementptr inbounds i8, ptr %1104, i64 8
  %1135 = load ptr, ptr %1134, align 8, !tbaa !55
  %1136 = icmp eq ptr %1135, null
  br i1 %1136, label %1137, label %1161

1137:                                             ; preds = %1132
  %1138 = tail call ptr @__errno_location() #16
  %1139 = load i32, ptr %1138, align 4, !tbaa !5
  %1140 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1141 = call i32 @s2n_print_stacktrace(ptr noundef %1140) #15
  %1142 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1143 = trunc nuw i8 %1142 to i1
  br i1 %1143, label %1144, label %1148

1144:                                             ; preds = %1137
  %1145 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1146 = call i32 @fileno(ptr noundef %1145) #15
  %1147 = call i32 @isatty(i32 noundef %1146) #15
  %.not585 = icmp eq i32 %1147, 0
  br i1 %.not585, label %1148, label %1149

1148:                                             ; preds = %1144, %1137
  br label %1149

1149:                                             ; preds = %1144, %1148
  %.str.61.sink1050 = phi ptr [ @.str.61, %1148 ], [ @.str.58, %1144 ]
  store i32 %1139, ptr %1138, align 4, !tbaa !5
  %1150 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1151 = load i32, ptr @test_count, align 4, !tbaa !5
  %1152 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1153 = load i32, ptr %1152, align 4, !tbaa !5
  %1154 = call ptr @s2n_strerror(i32 noundef %1153, ptr noundef nonnull @.str.60) #15
  %1155 = load i32, ptr %1152, align 4, !tbaa !5
  %1156 = call ptr @s2n_strerror_debug(i32 noundef %1155, ptr noundef nonnull @.str.60) #15
  %1157 = load i32, ptr %1138, align 4, !tbaa !5
  %1158 = call ptr @strerror(i32 noundef %1157) #15
  %1159 = load i32, ptr %1138, align 4, !tbaa !5
  %1160 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1150, ptr noundef nonnull %.str.61.sink1050, i32 noundef %1151, ptr noundef nonnull @.str.79, ptr noundef nonnull @.str.57, i32 noundef 124, ptr noundef %1154, ptr noundef %1156, ptr noundef %1158, i32 noundef %1159) #17
  call void @exit(i32 noundef 1) #18
  unreachable

1161:                                             ; preds = %1132
  %1162 = add nsw i32 %1102, 3
  store i32 %1162, ptr @test_count, align 4, !tbaa !5
  %1163 = call i32 @s2n_psk_set_secret(ptr noundef nonnull %1104, ptr noundef nonnull %11, i16 noundef zeroext 17) #15
  %1164 = icmp eq i32 %1163, -1
  br i1 %1164, label %1165, label %1189

1165:                                             ; preds = %1161
  %1166 = tail call ptr @__errno_location() #16
  %1167 = load i32, ptr %1166, align 4, !tbaa !5
  %1168 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1169 = call i32 @s2n_print_stacktrace(ptr noundef %1168) #15
  %1170 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1171 = trunc nuw i8 %1170 to i1
  br i1 %1171, label %1172, label %1176

1172:                                             ; preds = %1165
  %1173 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1174 = call i32 @fileno(ptr noundef %1173) #15
  %1175 = call i32 @isatty(i32 noundef %1174) #15
  %.not584 = icmp eq i32 %1175, 0
  br i1 %.not584, label %1176, label %1177

1176:                                             ; preds = %1172, %1165
  br label %1177

1177:                                             ; preds = %1172, %1176
  %.str.61.sink1061 = phi ptr [ @.str.61, %1176 ], [ @.str.58, %1172 ]
  store i32 %1167, ptr %1166, align 4, !tbaa !5
  %1178 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1179 = load i32, ptr @test_count, align 4, !tbaa !5
  %1180 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1181 = load i32, ptr %1180, align 4, !tbaa !5
  %1182 = call ptr @s2n_strerror(i32 noundef %1181, ptr noundef nonnull @.str.60) #15
  %1183 = load i32, ptr %1180, align 4, !tbaa !5
  %1184 = call ptr @s2n_strerror_debug(i32 noundef %1183, ptr noundef nonnull @.str.60) #15
  %1185 = load i32, ptr %1166, align 4, !tbaa !5
  %1186 = call ptr @strerror(i32 noundef %1185) #15
  %1187 = load i32, ptr %1166, align 4, !tbaa !5
  %1188 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1178, ptr noundef nonnull %.str.61.sink1061, i32 noundef %1179, ptr noundef nonnull @.str.80, ptr noundef nonnull @.str.57, i32 noundef 125, ptr noundef %1182, ptr noundef %1184, ptr noundef %1186, i32 noundef %1187) #17
  call void @exit(i32 noundef 1) #18
  unreachable

1189:                                             ; preds = %1161
  %1190 = load i32, ptr @test_count, align 4, !tbaa !5
  %1191 = add nsw i32 %1190, 1
  store i32 %1191, ptr @test_count, align 4, !tbaa !5
  %1192 = load ptr, ptr %13, align 8, !tbaa !9
  %1193 = getelementptr inbounds i8, ptr %1192, i64 40
  %1194 = load i32, ptr %1193, align 8, !tbaa !56
  %1195 = icmp eq i32 %1194, 0
  br i1 %1195, label %1196, label %1220

1196:                                             ; preds = %1189
  %1197 = tail call ptr @__errno_location() #16
  %1198 = load i32, ptr %1197, align 4, !tbaa !5
  %1199 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1200 = call i32 @s2n_print_stacktrace(ptr noundef %1199) #15
  %1201 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1202 = trunc nuw i8 %1201 to i1
  br i1 %1202, label %1203, label %1207

1203:                                             ; preds = %1196
  %1204 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1205 = call i32 @fileno(ptr noundef %1204) #15
  %1206 = call i32 @isatty(i32 noundef %1205) #15
  %.not583 = icmp eq i32 %1206, 0
  br i1 %.not583, label %1207, label %1208

1207:                                             ; preds = %1203, %1196
  br label %1208

1208:                                             ; preds = %1203, %1207
  %.str.61.sink1072 = phi ptr [ @.str.61, %1207 ], [ @.str.58, %1203 ]
  store i32 %1198, ptr %1197, align 4, !tbaa !5
  %1209 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1210 = load i32, ptr @test_count, align 4, !tbaa !5
  %1211 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1212 = load i32, ptr %1211, align 4, !tbaa !5
  %1213 = call ptr @s2n_strerror(i32 noundef %1212, ptr noundef nonnull @.str.60) #15
  %1214 = load i32, ptr %1211, align 4, !tbaa !5
  %1215 = call ptr @s2n_strerror_debug(i32 noundef %1214, ptr noundef nonnull @.str.60) #15
  %1216 = load i32, ptr %1197, align 4, !tbaa !5
  %1217 = call ptr @strerror(i32 noundef %1216) #15
  %1218 = load i32, ptr %1197, align 4, !tbaa !5
  %1219 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1209, ptr noundef nonnull %.str.61.sink1072, i32 noundef %1210, ptr noundef nonnull @.str.81, ptr noundef nonnull @.str.57, i32 noundef 126, ptr noundef %1213, ptr noundef %1215, ptr noundef %1217, i32 noundef %1218) #17
  call void @exit(i32 noundef 1) #18
  unreachable

1220:                                             ; preds = %1189
  %1221 = add nsw i32 %1190, 2
  store i32 %1221, ptr @test_count, align 4, !tbaa !5
  %1222 = getelementptr inbounds i8, ptr %1192, i64 32
  %1223 = load ptr, ptr %1222, align 8, !tbaa !57
  %1224 = icmp eq ptr %1223, null
  br i1 %1224, label %1225, label %1249

1225:                                             ; preds = %1220
  %1226 = tail call ptr @__errno_location() #16
  %1227 = load i32, ptr %1226, align 4, !tbaa !5
  %1228 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1229 = call i32 @s2n_print_stacktrace(ptr noundef %1228) #15
  %1230 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1231 = trunc nuw i8 %1230 to i1
  br i1 %1231, label %1232, label %1236

1232:                                             ; preds = %1225
  %1233 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1234 = call i32 @fileno(ptr noundef %1233) #15
  %1235 = call i32 @isatty(i32 noundef %1234) #15
  %.not582 = icmp eq i32 %1235, 0
  br i1 %.not582, label %1236, label %1237

1236:                                             ; preds = %1232, %1225
  br label %1237

1237:                                             ; preds = %1232, %1236
  %.str.61.sink1083 = phi ptr [ @.str.61, %1236 ], [ @.str.58, %1232 ]
  store i32 %1227, ptr %1226, align 4, !tbaa !5
  %1238 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1239 = load i32, ptr @test_count, align 4, !tbaa !5
  %1240 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1241 = load i32, ptr %1240, align 4, !tbaa !5
  %1242 = call ptr @s2n_strerror(i32 noundef %1241, ptr noundef nonnull @.str.60) #15
  %1243 = load i32, ptr %1240, align 4, !tbaa !5
  %1244 = call ptr @s2n_strerror_debug(i32 noundef %1243, ptr noundef nonnull @.str.60) #15
  %1245 = load i32, ptr %1226, align 4, !tbaa !5
  %1246 = call ptr @strerror(i32 noundef %1245) #15
  %1247 = load i32, ptr %1226, align 4, !tbaa !5
  %1248 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1238, ptr noundef nonnull %.str.61.sink1083, i32 noundef %1239, ptr noundef nonnull @.str.82, ptr noundef nonnull @.str.57, i32 noundef 127, ptr noundef %1242, ptr noundef %1244, ptr noundef %1246, i32 noundef %1247) #17
  call void @exit(i32 noundef 1) #18
  unreachable

1249:                                             ; preds = %1220
  %1250 = add nsw i32 %1190, 3
  store i32 %1250, ptr @test_count, align 4, !tbaa !5
  %1251 = getelementptr inbounds i8, ptr %1192, i64 72
  %1252 = call i32 @s2n_realloc(ptr noundef nonnull %1251, i32 noundef 32) #15
  %1253 = icmp eq i32 %1252, -1
  br i1 %1253, label %1254, label %1278

1254:                                             ; preds = %1249
  %1255 = tail call ptr @__errno_location() #16
  %1256 = load i32, ptr %1255, align 4, !tbaa !5
  %1257 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1258 = call i32 @s2n_print_stacktrace(ptr noundef %1257) #15
  %1259 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1260 = trunc nuw i8 %1259 to i1
  br i1 %1260, label %1261, label %1265

1261:                                             ; preds = %1254
  %1262 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1263 = call i32 @fileno(ptr noundef %1262) #15
  %1264 = call i32 @isatty(i32 noundef %1263) #15
  %.not581 = icmp eq i32 %1264, 0
  br i1 %.not581, label %1265, label %1266

1265:                                             ; preds = %1261, %1254
  br label %1266

1266:                                             ; preds = %1261, %1265
  %.str.61.sink1094 = phi ptr [ @.str.61, %1265 ], [ @.str.58, %1261 ]
  store i32 %1256, ptr %1255, align 4, !tbaa !5
  %1267 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1268 = load i32, ptr @test_count, align 4, !tbaa !5
  %1269 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1270 = load i32, ptr %1269, align 4, !tbaa !5
  %1271 = call ptr @s2n_strerror(i32 noundef %1270, ptr noundef nonnull @.str.60) #15
  %1272 = load i32, ptr %1269, align 4, !tbaa !5
  %1273 = call ptr @s2n_strerror_debug(i32 noundef %1272, ptr noundef nonnull @.str.60) #15
  %1274 = load i32, ptr %1255, align 4, !tbaa !5
  %1275 = call ptr @strerror(i32 noundef %1274) #15
  %1276 = load i32, ptr %1255, align 4, !tbaa !5
  %1277 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1267, ptr noundef nonnull %.str.61.sink1094, i32 noundef %1268, ptr noundef nonnull @.str.93, ptr noundef nonnull @.str.57, i32 noundef 128, ptr noundef %1271, ptr noundef %1273, ptr noundef %1275, i32 noundef %1276) #17
  call void @exit(i32 noundef 1) #18
  unreachable

1278:                                             ; preds = %1249
  %1279 = load ptr, ptr %13, align 8, !tbaa !9
  %1280 = getelementptr inbounds i8, ptr %1279, i64 72
  %1281 = load ptr, ptr %1280, align 8, !tbaa !63
  %1282 = call ptr @s2n_ensure_memmove_trace(ptr noundef %1281, ptr noundef nonnull %12, i64 noundef 32) #15
  %.not465.not.not.not = icmp eq ptr %1282, null
  br i1 %.not465.not.not.not, label %1700, label %1283

1283:                                             ; preds = %1278
  %1284 = load i32, ptr @test_count, align 4, !tbaa !5
  %1285 = add nsw i32 %1284, 1
  store i32 %1285, ptr @test_count, align 4, !tbaa !5
  %1286 = load ptr, ptr %13, align 8, !tbaa !9
  %1287 = getelementptr inbounds i8, ptr %1286, i64 80
  %1288 = load i32, ptr %1287, align 8, !tbaa !64
  %1289 = icmp eq i32 %1288, 0
  br i1 %1289, label %1290, label %1314

1290:                                             ; preds = %1283
  %1291 = tail call ptr @__errno_location() #16
  %1292 = load i32, ptr %1291, align 4, !tbaa !5
  %1293 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1294 = call i32 @s2n_print_stacktrace(ptr noundef %1293) #15
  %1295 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1296 = trunc nuw i8 %1295 to i1
  br i1 %1296, label %1297, label %1301

1297:                                             ; preds = %1290
  %1298 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1299 = call i32 @fileno(ptr noundef %1298) #15
  %1300 = call i32 @isatty(i32 noundef %1299) #15
  %.not580 = icmp eq i32 %1300, 0
  br i1 %.not580, label %1301, label %1302

1301:                                             ; preds = %1297, %1290
  br label %1302

1302:                                             ; preds = %1297, %1301
  %.str.61.sink1105 = phi ptr [ @.str.61, %1301 ], [ @.str.58, %1297 ]
  store i32 %1292, ptr %1291, align 4, !tbaa !5
  %1303 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1304 = load i32, ptr @test_count, align 4, !tbaa !5
  %1305 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1306 = load i32, ptr %1305, align 4, !tbaa !5
  %1307 = call ptr @s2n_strerror(i32 noundef %1306, ptr noundef nonnull @.str.60) #15
  %1308 = load i32, ptr %1305, align 4, !tbaa !5
  %1309 = call ptr @s2n_strerror_debug(i32 noundef %1308, ptr noundef nonnull @.str.60) #15
  %1310 = load i32, ptr %1291, align 4, !tbaa !5
  %1311 = call ptr @strerror(i32 noundef %1310) #15
  %1312 = load i32, ptr %1291, align 4, !tbaa !5
  %1313 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1303, ptr noundef nonnull %.str.61.sink1105, i32 noundef %1304, ptr noundef nonnull @.str.95, ptr noundef nonnull @.str.57, i32 noundef 130, ptr noundef %1307, ptr noundef %1309, ptr noundef %1311, i32 noundef %1312) #17
  call void @exit(i32 noundef 1) #18
  unreachable

1314:                                             ; preds = %1283
  %1315 = add nsw i32 %1284, 2
  store i32 %1315, ptr @test_count, align 4, !tbaa !5
  %1316 = getelementptr inbounds i8, ptr %1286, i64 72
  %1317 = load ptr, ptr %1316, align 8, !tbaa !63
  %1318 = icmp eq ptr %1317, null
  br i1 %1318, label %1319, label %1343

1319:                                             ; preds = %1314
  %1320 = tail call ptr @__errno_location() #16
  %1321 = load i32, ptr %1320, align 4, !tbaa !5
  %1322 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1323 = call i32 @s2n_print_stacktrace(ptr noundef %1322) #15
  %1324 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1325 = trunc nuw i8 %1324 to i1
  br i1 %1325, label %1326, label %1330

1326:                                             ; preds = %1319
  %1327 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1328 = call i32 @fileno(ptr noundef %1327) #15
  %1329 = call i32 @isatty(i32 noundef %1328) #15
  %.not579 = icmp eq i32 %1329, 0
  br i1 %.not579, label %1330, label %1331

1330:                                             ; preds = %1326, %1319
  br label %1331

1331:                                             ; preds = %1326, %1330
  %.str.61.sink1116 = phi ptr [ @.str.61, %1330 ], [ @.str.58, %1326 ]
  store i32 %1321, ptr %1320, align 4, !tbaa !5
  %1332 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1333 = load i32, ptr @test_count, align 4, !tbaa !5
  %1334 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1335 = load i32, ptr %1334, align 4, !tbaa !5
  %1336 = call ptr @s2n_strerror(i32 noundef %1335, ptr noundef nonnull @.str.60) #15
  %1337 = load i32, ptr %1334, align 4, !tbaa !5
  %1338 = call ptr @s2n_strerror_debug(i32 noundef %1337, ptr noundef nonnull @.str.60) #15
  %1339 = load i32, ptr %1320, align 4, !tbaa !5
  %1340 = call ptr @strerror(i32 noundef %1339) #15
  %1341 = load i32, ptr %1320, align 4, !tbaa !5
  %1342 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1332, ptr noundef nonnull %.str.61.sink1116, i32 noundef %1333, ptr noundef nonnull @.str.96, ptr noundef nonnull @.str.57, i32 noundef 131, ptr noundef %1336, ptr noundef %1338, ptr noundef %1340, i32 noundef %1341) #17
  call void @exit(i32 noundef 1) #18
  unreachable

1343:                                             ; preds = %1314
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #15
  %1344 = add nuw nsw i64 %.0426637, 1
  %exitcond643 = icmp eq i64 %1344, 10
  br i1 %exitcond643, label %1345, label %1012, !llvm.loop !65

1345:                                             ; preds = %1343
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %14) #15
  store ptr null, ptr %14, align 8, !tbaa !9
  %1346 = add nsw i32 %1284, 3
  store i32 %1346, ptr @test_count, align 4, !tbaa !5
  %1347 = call i32 @s2n_array_get(ptr noundef nonnull %1011, i32 noundef 0, ptr noundef nonnull %14) #15
  %1348 = call zeroext i1 @s2n_result_is_ok(i32 %1347)
  br i1 %1348, label %1373, label %1349

1349:                                             ; preds = %1345
  %1350 = tail call ptr @__errno_location() #16
  %1351 = load i32, ptr %1350, align 4, !tbaa !5
  %1352 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1353 = call i32 @s2n_print_stacktrace(ptr noundef %1352) #15
  %1354 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1355 = trunc nuw i8 %1354 to i1
  br i1 %1355, label %1356, label %1360

1356:                                             ; preds = %1349
  %1357 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1358 = call i32 @fileno(ptr noundef %1357) #15
  %1359 = call i32 @isatty(i32 noundef %1358) #15
  %.not467 = icmp eq i32 %1359, 0
  br i1 %.not467, label %1360, label %1361

1360:                                             ; preds = %1356, %1349
  br label %1361

1361:                                             ; preds = %1356, %1360
  %.str.61.sink1127 = phi ptr [ @.str.61, %1360 ], [ @.str.58, %1356 ]
  store i32 %1351, ptr %1350, align 4, !tbaa !5
  %1362 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1363 = load i32, ptr @test_count, align 4, !tbaa !5
  %1364 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1365 = load i32, ptr %1364, align 4, !tbaa !5
  %1366 = call ptr @s2n_strerror(i32 noundef %1365, ptr noundef nonnull @.str.60) #15
  %1367 = load i32, ptr %1364, align 4, !tbaa !5
  %1368 = call ptr @s2n_strerror_debug(i32 noundef %1367, ptr noundef nonnull @.str.60) #15
  %1369 = load i32, ptr %1350, align 4, !tbaa !5
  %1370 = call ptr @strerror(i32 noundef %1369) #15
  %1371 = load i32, ptr %1350, align 4, !tbaa !5
  %1372 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1362, ptr noundef nonnull %.str.61.sink1127, i32 noundef %1363, ptr noundef nonnull @.str.97, ptr noundef nonnull @.str.57, i32 noundef 136, ptr noundef %1366, ptr noundef %1368, ptr noundef %1370, i32 noundef %1371) #17
  call void @exit(i32 noundef 1) #18
  unreachable

1373:                                             ; preds = %1345
  %1374 = load i32, ptr @test_count, align 4, !tbaa !5
  %1375 = add nsw i32 %1374, 1
  store i32 %1375, ptr @test_count, align 4, !tbaa !5
  %1376 = load ptr, ptr %14, align 8, !tbaa !9
  %1377 = icmp eq ptr %1376, null
  br i1 %1377, label %1378, label %1402

1378:                                             ; preds = %1373
  %1379 = tail call ptr @__errno_location() #16
  %1380 = load i32, ptr %1379, align 4, !tbaa !5
  %1381 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1382 = call i32 @s2n_print_stacktrace(ptr noundef %1381) #15
  %1383 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1384 = trunc nuw i8 %1383 to i1
  br i1 %1384, label %1385, label %1389

1385:                                             ; preds = %1378
  %1386 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1387 = call i32 @fileno(ptr noundef %1386) #15
  %1388 = call i32 @isatty(i32 noundef %1387) #15
  %.not578 = icmp eq i32 %1388, 0
  br i1 %.not578, label %1389, label %1390

1389:                                             ; preds = %1385, %1378
  br label %1390

1390:                                             ; preds = %1385, %1389
  %.str.61.sink1138 = phi ptr [ @.str.61, %1389 ], [ @.str.58, %1385 ]
  store i32 %1380, ptr %1379, 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 nonnull @.str.60) #15
  %1396 = load i32, ptr %1393, align 4, !tbaa !5
  %1397 = call ptr @s2n_strerror_debug(i32 noundef %1396, ptr noundef nonnull @.str.60) #15
  %1398 = load i32, ptr %1379, align 4, !tbaa !5
  %1399 = call ptr @strerror(i32 noundef %1398) #15
  %1400 = load i32, ptr %1379, align 4, !tbaa !5
  %1401 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1391, ptr noundef nonnull %.str.61.sink1138, i32 noundef %1392, ptr noundef nonnull @.str.98, ptr noundef nonnull @.str.57, i32 noundef 137, ptr noundef %1395, ptr noundef %1397, ptr noundef %1399, i32 noundef %1400) #17
  call void @exit(i32 noundef 1) #18
  unreachable

1402:                                             ; preds = %1373
  %1403 = getelementptr inbounds i8, ptr %857, i64 1736
  store ptr %1376, ptr %1403, align 8, !tbaa !61
  %1404 = getelementptr inbounds i8, ptr %857, i64 1730
  store i16 0, ptr %1404, align 2, !tbaa !66
  %1405 = add nsw i32 %1374, 2
  store i32 %1405, ptr @test_count, align 4, !tbaa !5
  %1406 = getelementptr inbounds i8, ptr %857, i64 1708
  %1407 = load i32, ptr %1406, align 4, !tbaa !51
  %1408 = icmp eq i32 %1407, 0
  br i1 %1408, label %1409, label %1433

1409:                                             ; preds = %1402
  %1410 = tail call ptr @__errno_location() #16
  %1411 = load i32, ptr %1410, align 4, !tbaa !5
  %1412 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1413 = call i32 @s2n_print_stacktrace(ptr noundef %1412) #15
  %1414 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1415 = trunc nuw i8 %1414 to i1
  br i1 %1415, label %1416, label %1420

1416:                                             ; preds = %1409
  %1417 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1418 = call i32 @fileno(ptr noundef %1417) #15
  %1419 = call i32 @isatty(i32 noundef %1418) #15
  %.not577 = icmp eq i32 %1419, 0
  br i1 %.not577, label %1420, label %1421

1420:                                             ; preds = %1416, %1409
  br label %1421

1421:                                             ; preds = %1416, %1420
  %.str.61.sink1149 = phi ptr [ @.str.61, %1420 ], [ @.str.58, %1416 ]
  store i32 %1411, ptr %1410, align 4, !tbaa !5
  %1422 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1423 = load i32, ptr @test_count, align 4, !tbaa !5
  %1424 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1425 = load i32, ptr %1424, align 4, !tbaa !5
  %1426 = call ptr @s2n_strerror(i32 noundef %1425, ptr noundef nonnull @.str.60) #15
  %1427 = load i32, ptr %1424, align 4, !tbaa !5
  %1428 = call ptr @s2n_strerror_debug(i32 noundef %1427, ptr noundef nonnull @.str.60) #15
  %1429 = load i32, ptr %1410, align 4, !tbaa !5
  %1430 = call ptr @strerror(i32 noundef %1429) #15
  %1431 = load i32, ptr %1410, align 4, !tbaa !5
  %1432 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1422, ptr noundef nonnull %.str.61.sink1149, i32 noundef %1423, ptr noundef nonnull @.str.83, ptr noundef nonnull @.str.57, i32 noundef 141, ptr noundef %1426, ptr noundef %1428, ptr noundef %1430, i32 noundef %1431) #17
  call void @exit(i32 noundef 1) #18
  unreachable

1433:                                             ; preds = %1402
  %1434 = add nsw i32 %1374, 3
  store i32 %1434, ptr @test_count, align 4, !tbaa !5
  %1435 = getelementptr inbounds i8, ptr %857, i64 1720
  %1436 = load i32, ptr %1435, align 8, !tbaa !60
  %1437 = icmp eq i32 %1436, 10
  br i1 %1437, label %1462, label %1438

1438:                                             ; preds = %1433
  %1439 = tail call ptr @__errno_location() #16
  %1440 = load i32, ptr %1439, align 4, !tbaa !5
  %1441 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1442 = call i32 @s2n_print_stacktrace(ptr noundef %1441) #15
  %1443 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1444 = trunc nuw i8 %1443 to i1
  br i1 %1444, label %1445, label %1449

1445:                                             ; preds = %1438
  %1446 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1447 = call i32 @fileno(ptr noundef %1446) #15
  %1448 = call i32 @isatty(i32 noundef %1447) #15
  %.not468 = icmp eq i32 %1448, 0
  br i1 %.not468, label %1449, label %1450

1449:                                             ; preds = %1445, %1438
  br label %1450

1450:                                             ; preds = %1445, %1449
  %.str.61.sink1160 = phi ptr [ @.str.61, %1449 ], [ @.str.58, %1445 ]
  store i32 %1440, ptr %1439, align 4, !tbaa !5
  %1451 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1452 = load i32, ptr @test_count, align 4, !tbaa !5
  %1453 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1454 = load i32, ptr %1453, align 4, !tbaa !5
  %1455 = call ptr @s2n_strerror(i32 noundef %1454, ptr noundef nonnull @.str.60) #15
  %1456 = load i32, ptr %1453, align 4, !tbaa !5
  %1457 = call ptr @s2n_strerror_debug(i32 noundef %1456, ptr noundef nonnull @.str.60) #15
  %1458 = load i32, ptr %1439, align 4, !tbaa !5
  %1459 = call ptr @strerror(i32 noundef %1458) #15
  %1460 = load i32, ptr %1439, align 4, !tbaa !5
  %1461 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1451, ptr noundef nonnull %.str.61.sink1160, i32 noundef %1452, ptr noundef nonnull @.str.84, ptr noundef nonnull @.str.57, i32 noundef 142, ptr noundef %1455, ptr noundef %1457, ptr noundef %1459, i32 noundef %1460) #17
  call void @exit(i32 noundef 1) #18
  unreachable

1462:                                             ; preds = %1433
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %15) #15
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %15, i8 0, i64 24, i1 false)
  %1463 = add nsw i32 %1374, 4
  store i32 %1463, ptr @test_count, align 4, !tbaa !5
  %1464 = call i32 @s2n_tls13_compute_shared_secret(ptr noundef nonnull %857, ptr noundef nonnull %15)
  %1465 = icmp eq i32 %1464, -1
  br i1 %1465, label %1467, label %.preheader

.preheader:                                       ; preds = %1462
  %1466 = load i32, ptr %1435, align 8, !tbaa !60
  %.not642 = icmp eq i32 %1466, 0
  %.pre648 = load i32, ptr @test_count, align 4, !tbaa !5
  br i1 %.not642, label %._crit_edge640, label %.lr.ph639

1467:                                             ; preds = %1462
  %1468 = tail call ptr @__errno_location() #16
  %1469 = load i32, ptr %1468, align 4, !tbaa !5
  %1470 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1471 = call i32 @s2n_print_stacktrace(ptr noundef %1470) #15
  %1472 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1473 = trunc nuw i8 %1472 to i1
  br i1 %1473, label %1474, label %1478

1474:                                             ; preds = %1467
  %1475 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1476 = call i32 @fileno(ptr noundef %1475) #15
  %1477 = call i32 @isatty(i32 noundef %1476) #15
  %.not576 = icmp eq i32 %1477, 0
  br i1 %.not576, label %1478, label %1479

1478:                                             ; preds = %1474, %1467
  br label %1479

1479:                                             ; preds = %1474, %1478
  %.str.61.sink1171 = phi ptr [ @.str.61, %1478 ], [ @.str.58, %1474 ]
  store i32 %1469, ptr %1468, align 4, !tbaa !5
  %1480 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1481 = load i32, ptr @test_count, align 4, !tbaa !5
  %1482 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1483 = load i32, ptr %1482, align 4, !tbaa !5
  %1484 = call ptr @s2n_strerror(i32 noundef %1483, ptr noundef nonnull @.str.60) #15
  %1485 = load i32, ptr %1482, align 4, !tbaa !5
  %1486 = call ptr @s2n_strerror_debug(i32 noundef %1485, ptr noundef nonnull @.str.60) #15
  %1487 = load i32, ptr %1468, align 4, !tbaa !5
  %1488 = call ptr @strerror(i32 noundef %1487) #15
  %1489 = load i32, ptr %1468, align 4, !tbaa !5
  %1490 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1480, ptr noundef nonnull %.str.61.sink1171, i32 noundef %1481, ptr noundef nonnull @.str.86, ptr noundef nonnull @.str.57, i32 noundef 145, ptr noundef %1484, ptr noundef %1486, ptr noundef %1488, i32 noundef %1489) #17
  call void @exit(i32 noundef 1) #18
  unreachable

._crit_edge640:                                   ; preds = %1671, %.preheader
  %1491 = phi i32 [ %.pre648, %.preheader ], [ %1643, %1671 ]
  %1492 = add nsw i32 %1491, 1
  store i32 %1492, ptr @test_count, align 4, !tbaa !5
  %1493 = call i32 @s2n_connection_free(ptr noundef nonnull %857) #15
  %1494 = icmp eq i32 %1493, -1
  br i1 %1494, label %1676, label %1708

.lr.ph639:                                        ; preds = %.preheader, %1671
  %1495 = phi i32 [ %1643, %1671 ], [ %.pre648, %.preheader ]
  %.0437638 = phi i64 [ %1672, %1671 ], [ 0, %.preheader ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %16) #15
  store ptr null, ptr %16, align 8, !tbaa !9
  %1496 = add nsw i32 %1495, 1
  store i32 %1496, ptr @test_count, align 4, !tbaa !5
  %1497 = trunc nuw i64 %.0437638 to i32
  %1498 = call i32 @s2n_array_get(ptr noundef nonnull %1011, i32 noundef %1497, ptr noundef nonnull %16) #15
  %1499 = call zeroext i1 @s2n_result_is_ok(i32 %1498)
  br i1 %1499, label %1524, label %1500

1500:                                             ; preds = %.lr.ph639
  %1501 = tail call ptr @__errno_location() #16
  %1502 = load i32, ptr %1501, align 4, !tbaa !5
  %1503 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1504 = call i32 @s2n_print_stacktrace(ptr noundef %1503) #15
  %1505 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1506 = trunc nuw i8 %1505 to i1
  br i1 %1506, label %1507, label %1511

1507:                                             ; preds = %1500
  %1508 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1509 = call i32 @fileno(ptr noundef %1508) #15
  %1510 = call i32 @isatty(i32 noundef %1509) #15
  %.not570 = icmp eq i32 %1510, 0
  br i1 %.not570, label %1511, label %1512

1511:                                             ; preds = %1507, %1500
  br label %1512

1512:                                             ; preds = %1507, %1511
  %.str.61.sink1182 = phi ptr [ @.str.61, %1511 ], [ @.str.58, %1507 ]
  store i32 %1502, ptr %1501, align 4, !tbaa !5
  %1513 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1514 = load i32, ptr @test_count, align 4, !tbaa !5
  %1515 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1516 = load i32, ptr %1515, align 4, !tbaa !5
  %1517 = call ptr @s2n_strerror(i32 noundef %1516, ptr noundef nonnull @.str.60) #15
  %1518 = load i32, ptr %1515, align 4, !tbaa !5
  %1519 = call ptr @s2n_strerror_debug(i32 noundef %1518, ptr noundef nonnull @.str.60) #15
  %1520 = load i32, ptr %1501, align 4, !tbaa !5
  %1521 = call ptr @strerror(i32 noundef %1520) #15
  %1522 = load i32, ptr %1501, align 4, !tbaa !5
  %1523 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1513, ptr noundef nonnull %.str.61.sink1182, i32 noundef %1514, ptr noundef nonnull @.str.87, ptr noundef nonnull @.str.57, i32 noundef 150, ptr noundef %1517, ptr noundef %1519, ptr noundef %1521, i32 noundef %1522) #17
  call void @exit(i32 noundef 1) #18
  unreachable

1524:                                             ; preds = %.lr.ph639
  %1525 = load i32, ptr @test_count, align 4, !tbaa !5
  %1526 = add nsw i32 %1525, 1
  store i32 %1526, ptr @test_count, align 4, !tbaa !5
  %1527 = load ptr, ptr %16, align 8, !tbaa !9
  %1528 = getelementptr inbounds i8, ptr %1527, i64 16
  %1529 = load i32, ptr %1528, align 8, !tbaa !52
  %1530 = icmp eq i32 %1529, 0
  br i1 %1530, label %1531, label %1555

1531:                                             ; preds = %1524
  %1532 = tail call ptr @__errno_location() #16
  %1533 = load i32, ptr %1532, align 4, !tbaa !5
  %1534 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1535 = call i32 @s2n_print_stacktrace(ptr noundef %1534) #15
  %1536 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1537 = trunc nuw i8 %1536 to i1
  br i1 %1537, label %1538, label %1542

1538:                                             ; preds = %1531
  %1539 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1540 = call i32 @fileno(ptr noundef %1539) #15
  %1541 = call i32 @isatty(i32 noundef %1540) #15
  %.not575 = icmp eq i32 %1541, 0
  br i1 %.not575, label %1542, label %1543

1542:                                             ; preds = %1538, %1531
  br label %1543

1543:                                             ; preds = %1538, %1542
  %.str.61.sink1193 = phi ptr [ @.str.61, %1542 ], [ @.str.58, %1538 ]
  store i32 %1533, ptr %1532, align 4, !tbaa !5
  %1544 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1545 = load i32, ptr @test_count, align 4, !tbaa !5
  %1546 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1547 = load i32, ptr %1546, align 4, !tbaa !5
  %1548 = call ptr @s2n_strerror(i32 noundef %1547, ptr noundef nonnull @.str.60) #15
  %1549 = load i32, ptr %1546, align 4, !tbaa !5
  %1550 = call ptr @s2n_strerror_debug(i32 noundef %1549, ptr noundef nonnull @.str.60) #15
  %1551 = load i32, ptr %1532, align 4, !tbaa !5
  %1552 = call ptr @strerror(i32 noundef %1551) #15
  %1553 = load i32, ptr %1532, align 4, !tbaa !5
  %1554 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1544, ptr noundef nonnull %.str.61.sink1193, i32 noundef %1545, ptr noundef nonnull @.str.78, ptr noundef nonnull @.str.57, i32 noundef 151, ptr noundef %1548, ptr noundef %1550, ptr noundef %1552, i32 noundef %1553) #17
  call void @exit(i32 noundef 1) #18
  unreachable

1555:                                             ; preds = %1524
  %1556 = add nsw i32 %1525, 2
  store i32 %1556, ptr @test_count, align 4, !tbaa !5
  %1557 = getelementptr inbounds i8, ptr %1527, i64 32
  %1558 = load ptr, ptr %1557, align 8, !tbaa !57
  %1559 = icmp eq ptr %1558, null
  br i1 %1559, label %1584, label %1560

1560:                                             ; preds = %1555
  %1561 = tail call ptr @__errno_location() #16
  %1562 = load i32, ptr %1561, align 4, !tbaa !5
  %1563 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1564 = call i32 @s2n_print_stacktrace(ptr noundef %1563) #15
  %1565 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1566 = trunc nuw i8 %1565 to i1
  br i1 %1566, label %1567, label %1571

1567:                                             ; preds = %1560
  %1568 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1569 = call i32 @fileno(ptr noundef %1568) #15
  %1570 = call i32 @isatty(i32 noundef %1569) #15
  %.not571 = icmp eq i32 %1570, 0
  br i1 %.not571, label %1571, label %1572

1571:                                             ; preds = %1567, %1560
  br label %1572

1572:                                             ; preds = %1567, %1571
  %.str.61.sink1204 = phi ptr [ @.str.61, %1571 ], [ @.str.58, %1567 ]
  store i32 %1562, ptr %1561, align 4, !tbaa !5
  %1573 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1574 = load i32, ptr @test_count, align 4, !tbaa !5
  %1575 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1576 = load i32, ptr %1575, align 4, !tbaa !5
  %1577 = call ptr @s2n_strerror(i32 noundef %1576, ptr noundef nonnull @.str.60) #15
  %1578 = load i32, ptr %1575, align 4, !tbaa !5
  %1579 = call ptr @s2n_strerror_debug(i32 noundef %1578, ptr noundef nonnull @.str.60) #15
  %1580 = load i32, ptr %1561, align 4, !tbaa !5
  %1581 = call ptr @strerror(i32 noundef %1580) #15
  %1582 = load i32, ptr %1561, align 4, !tbaa !5
  %1583 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1573, ptr noundef nonnull %.str.61.sink1204, i32 noundef %1574, ptr noundef nonnull @.str.88, ptr noundef nonnull @.str.57, i32 noundef 152, ptr noundef %1577, ptr noundef %1579, ptr noundef %1581, i32 noundef %1582) #17
  call void @exit(i32 noundef 1) #18
  unreachable

1584:                                             ; preds = %1555
  %1585 = add nsw i32 %1525, 3
  store i32 %1585, ptr @test_count, align 4, !tbaa !5
  %1586 = getelementptr inbounds i8, ptr %1527, i64 40
  %1587 = load i32, ptr %1586, align 8, !tbaa !56
  %1588 = icmp eq i32 %1587, 0
  br i1 %1588, label %1613, label %1589

1589:                                             ; preds = %1584
  %1590 = tail call ptr @__errno_location() #16
  %1591 = load i32, ptr %1590, align 4, !tbaa !5
  %1592 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1593 = call i32 @s2n_print_stacktrace(ptr noundef %1592) #15
  %1594 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1595 = trunc nuw i8 %1594 to i1
  br i1 %1595, label %1596, label %1600

1596:                                             ; preds = %1589
  %1597 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1598 = call i32 @fileno(ptr noundef %1597) #15
  %1599 = call i32 @isatty(i32 noundef %1598) #15
  %.not572 = icmp eq i32 %1599, 0
  br i1 %.not572, label %1600, label %1601

1600:                                             ; preds = %1596, %1589
  br label %1601

1601:                                             ; preds = %1596, %1600
  %.str.61.sink1215 = phi ptr [ @.str.61, %1600 ], [ @.str.58, %1596 ]
  store i32 %1591, ptr %1590, align 4, !tbaa !5
  %1602 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1603 = load i32, ptr @test_count, align 4, !tbaa !5
  %1604 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1605 = load i32, ptr %1604, align 4, !tbaa !5
  %1606 = call ptr @s2n_strerror(i32 noundef %1605, ptr noundef nonnull @.str.60) #15
  %1607 = load i32, ptr %1604, align 4, !tbaa !5
  %1608 = call ptr @s2n_strerror_debug(i32 noundef %1607, ptr noundef nonnull @.str.60) #15
  %1609 = load i32, ptr %1590, align 4, !tbaa !5
  %1610 = call ptr @strerror(i32 noundef %1609) #15
  %1611 = load i32, ptr %1590, align 4, !tbaa !5
  %1612 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1602, ptr noundef nonnull %.str.61.sink1215, i32 noundef %1603, ptr noundef nonnull @.str.89, ptr noundef nonnull @.str.57, i32 noundef 153, ptr noundef %1606, ptr noundef %1608, ptr noundef %1610, i32 noundef %1611) #17
  call void @exit(i32 noundef 1) #18
  unreachable

1613:                                             ; preds = %1584
  %1614 = add nsw i32 %1525, 4
  store i32 %1614, ptr @test_count, align 4, !tbaa !5
  %1615 = getelementptr inbounds i8, ptr %1527, i64 72
  %1616 = load ptr, ptr %1615, align 8, !tbaa !63
  %1617 = icmp eq ptr %1616, null
  br i1 %1617, label %1642, label %1618

1618:                                             ; preds = %1613
  %1619 = tail call ptr @__errno_location() #16
  %1620 = load i32, ptr %1619, align 4, !tbaa !5
  %1621 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1622 = call i32 @s2n_print_stacktrace(ptr noundef %1621) #15
  %1623 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1624 = trunc nuw i8 %1623 to i1
  br i1 %1624, label %1625, label %1629

1625:                                             ; preds = %1618
  %1626 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1627 = call i32 @fileno(ptr noundef %1626) #15
  %1628 = call i32 @isatty(i32 noundef %1627) #15
  %.not573 = icmp eq i32 %1628, 0
  br i1 %.not573, label %1629, label %1630

1629:                                             ; preds = %1625, %1618
  br label %1630

1630:                                             ; preds = %1625, %1629
  %.str.61.sink1226 = phi ptr [ @.str.61, %1629 ], [ @.str.58, %1625 ]
  store i32 %1620, ptr %1619, align 4, !tbaa !5
  %1631 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1632 = load i32, ptr @test_count, align 4, !tbaa !5
  %1633 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1634 = load i32, ptr %1633, align 4, !tbaa !5
  %1635 = call ptr @s2n_strerror(i32 noundef %1634, ptr noundef nonnull @.str.60) #15
  %1636 = load i32, ptr %1633, align 4, !tbaa !5
  %1637 = call ptr @s2n_strerror_debug(i32 noundef %1636, ptr noundef nonnull @.str.60) #15
  %1638 = load i32, ptr %1619, align 4, !tbaa !5
  %1639 = call ptr @strerror(i32 noundef %1638) #15
  %1640 = load i32, ptr %1619, align 4, !tbaa !5
  %1641 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1631, ptr noundef nonnull %.str.61.sink1226, i32 noundef %1632, ptr noundef nonnull @.str.99, ptr noundef nonnull @.str.57, i32 noundef 154, ptr noundef %1635, ptr noundef %1637, ptr noundef %1639, i32 noundef %1640) #17
  call void @exit(i32 noundef 1) #18
  unreachable

1642:                                             ; preds = %1613
  %1643 = add nsw i32 %1525, 5
  store i32 %1643, ptr @test_count, align 4, !tbaa !5
  %1644 = getelementptr inbounds i8, ptr %1527, i64 80
  %1645 = load i32, ptr %1644, align 8, !tbaa !64
  %1646 = icmp eq i32 %1645, 0
  br i1 %1646, label %1671, label %1647

1647:                                             ; preds = %1642
  %1648 = tail call ptr @__errno_location() #16
  %1649 = load i32, ptr %1648, align 4, !tbaa !5
  %1650 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1651 = call i32 @s2n_print_stacktrace(ptr noundef %1650) #15
  %1652 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1653 = trunc nuw i8 %1652 to i1
  br i1 %1653, label %1654, label %1658

1654:                                             ; preds = %1647
  %1655 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1656 = call i32 @fileno(ptr noundef %1655) #15
  %1657 = call i32 @isatty(i32 noundef %1656) #15
  %.not574 = icmp eq i32 %1657, 0
  br i1 %.not574, label %1658, label %1659

1658:                                             ; preds = %1654, %1647
  br label %1659

1659:                                             ; preds = %1654, %1658
  %.str.61.sink1237 = phi ptr [ @.str.61, %1658 ], [ @.str.58, %1654 ]
  store i32 %1649, ptr %1648, align 4, !tbaa !5
  %1660 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1661 = load i32, ptr @test_count, align 4, !tbaa !5
  %1662 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1663 = load i32, ptr %1662, align 4, !tbaa !5
  %1664 = call ptr @s2n_strerror(i32 noundef %1663, ptr noundef nonnull @.str.60) #15
  %1665 = load i32, ptr %1662, align 4, !tbaa !5
  %1666 = call ptr @s2n_strerror_debug(i32 noundef %1665, ptr noundef nonnull @.str.60) #15
  %1667 = load i32, ptr %1648, align 4, !tbaa !5
  %1668 = call ptr @strerror(i32 noundef %1667) #15
  %1669 = load i32, ptr %1648, align 4, !tbaa !5
  %1670 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1660, ptr noundef nonnull %.str.61.sink1237, i32 noundef %1661, ptr noundef nonnull @.str.100, ptr noundef nonnull @.str.57, i32 noundef 155, ptr noundef %1664, ptr noundef %1666, ptr noundef %1668, i32 noundef %1669) #17
  call void @exit(i32 noundef 1) #18
  unreachable

1671:                                             ; preds = %1642
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #15
  %1672 = add nuw nsw i64 %.0437638, 1
  %1673 = load i32, ptr %1435, align 8, !tbaa !60
  %1674 = zext i32 %1673 to i64
  %1675 = icmp ult i64 %1672, %1674
  br i1 %1675, label %.lr.ph639, label %._crit_edge640, !llvm.loop !67

1676:                                             ; preds = %._crit_edge640
  %1677 = tail call ptr @__errno_location() #16
  %1678 = load i32, ptr %1677, align 4, !tbaa !5
  %1679 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1680 = call i32 @s2n_print_stacktrace(ptr noundef %1679) #15
  %1681 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1682 = trunc nuw i8 %1681 to i1
  br i1 %1682, label %1683, label %1687

1683:                                             ; preds = %1676
  %1684 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1685 = call i32 @fileno(ptr noundef %1684) #15
  %1686 = call i32 @isatty(i32 noundef %1685) #15
  %.not569 = icmp eq i32 %1686, 0
  br i1 %.not569, label %1687, label %1688

1687:                                             ; preds = %1683, %1676
  br label %1688

1688:                                             ; preds = %1683, %1687
  %.str.61.sink1248 = phi ptr [ @.str.61, %1687 ], [ @.str.58, %1683 ]
  store i32 %1678, ptr %1677, align 4, !tbaa !5
  %1689 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1690 = load i32, ptr @test_count, align 4, !tbaa !5
  %1691 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1692 = load i32, ptr %1691, align 4, !tbaa !5
  %1693 = call ptr @s2n_strerror(i32 noundef %1692, ptr noundef nonnull @.str.60) #15
  %1694 = load i32, ptr %1691, align 4, !tbaa !5
  %1695 = call ptr @s2n_strerror_debug(i32 noundef %1694, ptr noundef nonnull @.str.60) #15
  %1696 = load i32, ptr %1677, align 4, !tbaa !5
  %1697 = call ptr @strerror(i32 noundef %1696) #15
  %1698 = load i32, ptr %1677, align 4, !tbaa !5
  %1699 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1689, ptr noundef nonnull %.str.61.sink1248, i32 noundef %1690, ptr noundef nonnull @.str.90, ptr noundef nonnull @.str.57, i32 noundef 158, ptr noundef %1693, ptr noundef %1695, ptr noundef %1697, i32 noundef %1698) #17
  call void @exit(i32 noundef 1) #18
  unreachable

1700:                                             ; preds = %1278
  %1701 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  store ptr @.str.94, ptr %1701, align 8, !tbaa !68
  %1702 = call ptr @strrchr(ptr noundef nonnull dereferenceable(1) getelementptr inbounds (i8, ptr @.str.94, i64 21), i32 noundef 47) #19
  %.not466 = icmp eq ptr %1702, null
  %1703 = getelementptr inbounds i8, ptr %1702, i64 1
  %1704 = select i1 %.not466, ptr getelementptr inbounds (i8, ptr @.str.94, i64 21), ptr %1703
  %1705 = getelementptr inbounds i8, ptr %1701, i64 8
  store ptr %1704, ptr %1705, align 8, !tbaa !70
  %1706 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 402653193, ptr %1706, align 4, !tbaa !5
  %1707 = call i32 @s2n_calculate_stacktrace() #15
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #15
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #15
  call void @llvm.lifetime.end.p0(i64 17, ptr nonnull %11) #15
  call void @llvm.lifetime.end.p0(i64 19, ptr nonnull %10) #15
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #15
  br label %4325

1708:                                             ; preds = %._crit_edge640
  %1709 = call i32 @s2n_free(ptr noundef nonnull %15) #15
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %15) #15
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #15
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #15
  call void @llvm.lifetime.end.p0(i64 17, ptr nonnull %11) #15
  call void @llvm.lifetime.end.p0(i64 19, ptr nonnull %10) #15
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #15
  %1710 = load i32, ptr @test_count, align 4, !tbaa !5
  %1711 = add nsw i32 %1710, 1
  store i32 %1711, ptr @test_count, align 4, !tbaa !5
  %1712 = call ptr @s2n_config_new() #15
  %1713 = icmp eq ptr %1712, null
  br i1 %1713, label %1714, label %1738

1714:                                             ; preds = %1708
  %1715 = tail call ptr @__errno_location() #16
  %1716 = load i32, ptr %1715, align 4, !tbaa !5
  %1717 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1718 = call i32 @s2n_print_stacktrace(ptr noundef %1717) #15
  %1719 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1720 = trunc nuw i8 %1719 to i1
  br i1 %1720, label %1721, label %1725

1721:                                             ; preds = %1714
  %1722 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1723 = call i32 @fileno(ptr noundef %1722) #15
  %1724 = call i32 @isatty(i32 noundef %1723) #15
  %.not568 = icmp eq i32 %1724, 0
  br i1 %.not568, label %1725, label %1726

1725:                                             ; preds = %1721, %1714
  br label %1726

1726:                                             ; preds = %1721, %1725
  %.str.61.sink1259 = phi ptr [ @.str.61, %1725 ], [ @.str.58, %1721 ]
  store i32 %1716, ptr %1715, align 4, !tbaa !5
  %1727 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1728 = load i32, ptr @test_count, align 4, !tbaa !5
  %1729 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1730 = load i32, ptr %1729, align 4, !tbaa !5
  %1731 = call ptr @s2n_strerror(i32 noundef %1730, ptr noundef nonnull @.str.60) #15
  %1732 = load i32, ptr %1729, align 4, !tbaa !5
  %1733 = call ptr @s2n_strerror_debug(i32 noundef %1732, ptr noundef nonnull @.str.60) #15
  %1734 = load i32, ptr %1715, align 4, !tbaa !5
  %1735 = call ptr @strerror(i32 noundef %1734) #15
  %1736 = load i32, ptr %1715, align 4, !tbaa !5
  %1737 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1727, ptr noundef nonnull %.str.61.sink1259, i32 noundef %1728, ptr noundef nonnull @.str.101, ptr noundef nonnull @.str.57, i32 noundef 168, ptr noundef %1731, ptr noundef %1733, ptr noundef %1735, i32 noundef %1736) #17
  call void @exit(i32 noundef 1) #18
  unreachable

1738:                                             ; preds = %1708
  %1739 = load i32, ptr @test_count, align 4, !tbaa !5
  %1740 = add nsw i32 %1739, 1
  store i32 %1740, ptr @test_count, align 4, !tbaa !5
  %1741 = call ptr @s2n_config_new() #15
  %1742 = icmp eq ptr %1741, null
  br i1 %1742, label %1743, label %1767

1743:                                             ; preds = %1738
  %1744 = tail call ptr @__errno_location() #16
  %1745 = load i32, ptr %1744, align 4, !tbaa !5
  %1746 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1747 = call i32 @s2n_print_stacktrace(ptr noundef %1746) #15
  %1748 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1749 = trunc nuw i8 %1748 to i1
  br i1 %1749, label %1750, label %1754

1750:                                             ; preds = %1743
  %1751 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1752 = call i32 @fileno(ptr noundef %1751) #15
  %1753 = call i32 @isatty(i32 noundef %1752) #15
  %.not567 = icmp eq i32 %1753, 0
  br i1 %.not567, label %1754, label %1755

1754:                                             ; preds = %1750, %1743
  br label %1755

1755:                                             ; preds = %1750, %1754
  %.str.61.sink1270 = phi ptr [ @.str.61, %1754 ], [ @.str.58, %1750 ]
  store i32 %1745, ptr %1744, align 4, !tbaa !5
  %1756 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1757 = load i32, ptr @test_count, align 4, !tbaa !5
  %1758 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1759 = load i32, ptr %1758, align 4, !tbaa !5
  %1760 = call ptr @s2n_strerror(i32 noundef %1759, ptr noundef nonnull @.str.60) #15
  %1761 = load i32, ptr %1758, align 4, !tbaa !5
  %1762 = call ptr @s2n_strerror_debug(i32 noundef %1761, ptr noundef nonnull @.str.60) #15
  %1763 = load i32, ptr %1744, align 4, !tbaa !5
  %1764 = call ptr @strerror(i32 noundef %1763) #15
  %1765 = load i32, ptr %1744, align 4, !tbaa !5
  %1766 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1756, ptr noundef nonnull %.str.61.sink1270, i32 noundef %1757, ptr noundef nonnull @.str.102, ptr noundef nonnull @.str.57, i32 noundef 169, ptr noundef %1760, ptr noundef %1762, ptr noundef %1764, i32 noundef %1765) #17
  call void @exit(i32 noundef 1) #18
  unreachable

1767:                                             ; preds = %1738
  %1768 = load i32, ptr @test_count, align 4, !tbaa !5
  %1769 = add nsw i32 %1768, 1
  store i32 %1769, ptr @test_count, align 4, !tbaa !5
  %1770 = call i32 @s2n_config_set_unsafe_for_testing(ptr noundef nonnull %1741) #15
  %1771 = icmp eq i32 %1770, -1
  br i1 %1771, label %1772, label %1796

1772:                                             ; preds = %1767
  %1773 = tail call ptr @__errno_location() #16
  %1774 = load i32, ptr %1773, align 4, !tbaa !5
  %1775 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1776 = call i32 @s2n_print_stacktrace(ptr noundef %1775) #15
  %1777 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1778 = trunc nuw i8 %1777 to i1
  br i1 %1778, label %1779, label %1783

1779:                                             ; preds = %1772
  %1780 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1781 = call i32 @fileno(ptr noundef %1780) #15
  %1782 = call i32 @isatty(i32 noundef %1781) #15
  %.not566 = icmp eq i32 %1782, 0
  br i1 %.not566, label %1783, label %1784

1783:                                             ; preds = %1779, %1772
  br label %1784

1784:                                             ; preds = %1779, %1783
  %.str.61.sink1281 = phi ptr [ @.str.61, %1783 ], [ @.str.58, %1779 ]
  store i32 %1774, ptr %1773, align 4, !tbaa !5
  %1785 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1786 = load i32, ptr @test_count, align 4, !tbaa !5
  %1787 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1788 = load i32, ptr %1787, align 4, !tbaa !5
  %1789 = call ptr @s2n_strerror(i32 noundef %1788, ptr noundef nonnull @.str.60) #15
  %1790 = load i32, ptr %1787, align 4, !tbaa !5
  %1791 = call ptr @s2n_strerror_debug(i32 noundef %1790, ptr noundef nonnull @.str.60) #15
  %1792 = load i32, ptr %1773, align 4, !tbaa !5
  %1793 = call ptr @strerror(i32 noundef %1792) #15
  %1794 = load i32, ptr %1773, align 4, !tbaa !5
  %1795 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1785, ptr noundef nonnull %.str.61.sink1281, i32 noundef %1786, ptr noundef nonnull @.str.103, ptr noundef nonnull @.str.57, i32 noundef 170, ptr noundef %1789, ptr noundef %1791, ptr noundef %1793, i32 noundef %1794) #17
  call void @exit(i32 noundef 1) #18
  unreachable

1796:                                             ; preds = %1767
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %17) #15
  store i32 0, ptr %17, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %18) #15
  store i32 0, ptr %18, align 4, !tbaa !5
  %1797 = load i32, ptr @test_count, align 4, !tbaa !5
  %1798 = add nsw i32 %1797, 1
  store i32 %1798, ptr @test_count, align 4, !tbaa !5
  %1799 = call noalias dereferenceable_or_null(12000) ptr @malloc(i64 noundef 12000) #20
  %1800 = icmp eq ptr %1799, null
  br i1 %1800, label %1801, label %1825

1801:                                             ; preds = %1796
  %1802 = tail call ptr @__errno_location() #16
  %1803 = load i32, ptr %1802, align 4, !tbaa !5
  %1804 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1805 = call i32 @s2n_print_stacktrace(ptr noundef %1804) #15
  %1806 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1807 = trunc nuw i8 %1806 to i1
  br i1 %1807, label %1808, label %1812

1808:                                             ; preds = %1801
  %1809 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1810 = call i32 @fileno(ptr noundef %1809) #15
  %1811 = call i32 @isatty(i32 noundef %1810) #15
  %.not565 = icmp eq i32 %1811, 0
  br i1 %.not565, label %1812, label %1813

1812:                                             ; preds = %1808, %1801
  br label %1813

1813:                                             ; preds = %1808, %1812
  %.str.61.sink1292 = phi ptr [ @.str.61, %1812 ], [ @.str.58, %1808 ]
  store i32 %1803, ptr %1802, align 4, !tbaa !5
  %1814 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1815 = load i32, ptr @test_count, align 4, !tbaa !5
  %1816 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1817 = load i32, ptr %1816, align 4, !tbaa !5
  %1818 = call ptr @s2n_strerror(i32 noundef %1817, ptr noundef nonnull @.str.60) #15
  %1819 = load i32, ptr %1816, align 4, !tbaa !5
  %1820 = call ptr @s2n_strerror_debug(i32 noundef %1819, ptr noundef nonnull @.str.60) #15
  %1821 = load i32, ptr %1802, align 4, !tbaa !5
  %1822 = call ptr @strerror(i32 noundef %1821) #15
  %1823 = load i32, ptr %1802, align 4, !tbaa !5
  %1824 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1814, ptr noundef nonnull %.str.61.sink1292, i32 noundef %1815, ptr noundef nonnull @.str.104, ptr noundef nonnull @.str.57, i32 noundef 177, ptr noundef %1818, ptr noundef %1820, ptr noundef %1822, i32 noundef %1823) #17
  call void @exit(i32 noundef 1) #18
  unreachable

1825:                                             ; preds = %1796
  %1826 = add nsw i32 %1797, 2
  store i32 %1826, ptr @test_count, align 4, !tbaa !5
  %1827 = call noalias dereferenceable_or_null(12000) ptr @malloc(i64 noundef 12000) #20
  %1828 = icmp eq ptr %1827, null
  br i1 %1828, label %1829, label %1853

1829:                                             ; preds = %1825
  %1830 = tail call ptr @__errno_location() #16
  %1831 = load i32, ptr %1830, align 4, !tbaa !5
  %1832 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1833 = call i32 @s2n_print_stacktrace(ptr noundef %1832) #15
  %1834 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1835 = trunc nuw i8 %1834 to i1
  br i1 %1835, label %1836, label %1840

1836:                                             ; preds = %1829
  %1837 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1838 = call i32 @fileno(ptr noundef %1837) #15
  %1839 = call i32 @isatty(i32 noundef %1838) #15
  %.not564 = icmp eq i32 %1839, 0
  br i1 %.not564, label %1840, label %1841

1840:                                             ; preds = %1836, %1829
  br label %1841

1841:                                             ; preds = %1836, %1840
  %.str.61.sink1303 = phi ptr [ @.str.61, %1840 ], [ @.str.58, %1836 ]
  store i32 %1831, ptr %1830, align 4, !tbaa !5
  %1842 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1843 = load i32, ptr @test_count, align 4, !tbaa !5
  %1844 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1845 = load i32, ptr %1844, align 4, !tbaa !5
  %1846 = call ptr @s2n_strerror(i32 noundef %1845, ptr noundef nonnull @.str.60) #15
  %1847 = load i32, ptr %1844, align 4, !tbaa !5
  %1848 = call ptr @s2n_strerror_debug(i32 noundef %1847, ptr noundef nonnull @.str.60) #15
  %1849 = load i32, ptr %1830, align 4, !tbaa !5
  %1850 = call ptr @strerror(i32 noundef %1849) #15
  %1851 = load i32, ptr %1830, align 4, !tbaa !5
  %1852 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1842, ptr noundef nonnull %.str.61.sink1303, i32 noundef %1843, ptr noundef nonnull @.str.105, ptr noundef nonnull @.str.57, i32 noundef 178, ptr noundef %1846, ptr noundef %1848, ptr noundef %1850, i32 noundef %1851) #17
  call void @exit(i32 noundef 1) #18
  unreachable

1853:                                             ; preds = %1825
  %1854 = add nsw i32 %1797, 3
  store i32 %1854, ptr @test_count, align 4, !tbaa !5
  %1855 = call i32 @s2n_read_test_pem_and_len(ptr noundef nonnull @.str.106, ptr noundef nonnull %1799, ptr noundef nonnull %17, i64 noundef 12000) #15
  %1856 = icmp eq i32 %1855, -1
  br i1 %1856, label %1857, label %1881

1857:                                             ; preds = %1853
  %1858 = tail call ptr @__errno_location() #16
  %1859 = load i32, ptr %1858, align 4, !tbaa !5
  %1860 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1861 = call i32 @s2n_print_stacktrace(ptr noundef %1860) #15
  %1862 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1863 = trunc nuw i8 %1862 to i1
  br i1 %1863, label %1864, label %1868

1864:                                             ; preds = %1857
  %1865 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1866 = call i32 @fileno(ptr noundef %1865) #15
  %1867 = call i32 @isatty(i32 noundef %1866) #15
  %.not563 = icmp eq i32 %1867, 0
  br i1 %.not563, label %1868, label %1869

1868:                                             ; preds = %1864, %1857
  br label %1869

1869:                                             ; preds = %1864, %1868
  %.str.61.sink1314 = phi ptr [ @.str.61, %1868 ], [ @.str.58, %1864 ]
  store i32 %1859, ptr %1858, align 4, !tbaa !5
  %1870 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1871 = load i32, ptr @test_count, align 4, !tbaa !5
  %1872 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1873 = load i32, ptr %1872, align 4, !tbaa !5
  %1874 = call ptr @s2n_strerror(i32 noundef %1873, ptr noundef nonnull @.str.60) #15
  %1875 = load i32, ptr %1872, align 4, !tbaa !5
  %1876 = call ptr @s2n_strerror_debug(i32 noundef %1875, ptr noundef nonnull @.str.60) #15
  %1877 = load i32, ptr %1858, align 4, !tbaa !5
  %1878 = call ptr @strerror(i32 noundef %1877) #15
  %1879 = load i32, ptr %1858, align 4, !tbaa !5
  %1880 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1870, ptr noundef nonnull %.str.61.sink1314, i32 noundef %1871, ptr noundef nonnull @.str.107, ptr noundef nonnull @.str.57, i32 noundef 180, ptr noundef %1874, ptr noundef %1876, ptr noundef %1878, i32 noundef %1879) #17
  call void @exit(i32 noundef 1) #18
  unreachable

1881:                                             ; preds = %1853
  %1882 = load i32, ptr @test_count, align 4, !tbaa !5
  %1883 = add nsw i32 %1882, 1
  store i32 %1883, ptr @test_count, align 4, !tbaa !5
  %1884 = call i32 @s2n_read_test_pem_and_len(ptr noundef nonnull @.str.108, ptr noundef nonnull %1827, ptr noundef nonnull %18, i64 noundef 12000) #15
  %1885 = icmp eq i32 %1884, -1
  br i1 %1885, label %1886, label %1910

1886:                                             ; preds = %1881
  %1887 = tail call ptr @__errno_location() #16
  %1888 = load i32, ptr %1887, align 4, !tbaa !5
  %1889 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1890 = call i32 @s2n_print_stacktrace(ptr noundef %1889) #15
  %1891 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1892 = trunc nuw i8 %1891 to i1
  br i1 %1892, label %1893, label %1897

1893:                                             ; preds = %1886
  %1894 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1895 = call i32 @fileno(ptr noundef %1894) #15
  %1896 = call i32 @isatty(i32 noundef %1895) #15
  %.not562 = icmp eq i32 %1896, 0
  br i1 %.not562, label %1897, label %1898

1897:                                             ; preds = %1893, %1886
  br label %1898

1898:                                             ; preds = %1893, %1897
  %.str.61.sink1325 = phi ptr [ @.str.61, %1897 ], [ @.str.58, %1893 ]
  store i32 %1888, ptr %1887, align 4, !tbaa !5
  %1899 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1900 = load i32, ptr @test_count, align 4, !tbaa !5
  %1901 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1902 = load i32, ptr %1901, align 4, !tbaa !5
  %1903 = call ptr @s2n_strerror(i32 noundef %1902, ptr noundef nonnull @.str.60) #15
  %1904 = load i32, ptr %1901, align 4, !tbaa !5
  %1905 = call ptr @s2n_strerror_debug(i32 noundef %1904, ptr noundef nonnull @.str.60) #15
  %1906 = load i32, ptr %1887, align 4, !tbaa !5
  %1907 = call ptr @strerror(i32 noundef %1906) #15
  %1908 = load i32, ptr %1887, align 4, !tbaa !5
  %1909 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1899, ptr noundef nonnull %.str.61.sink1325, i32 noundef %1900, ptr noundef nonnull @.str.109, ptr noundef nonnull @.str.57, i32 noundef 181, ptr noundef %1903, ptr noundef %1905, ptr noundef %1907, i32 noundef %1908) #17
  call void @exit(i32 noundef 1) #18
  unreachable

1910:                                             ; preds = %1881
  %1911 = load i32, ptr @test_count, align 4, !tbaa !5
  %1912 = add nsw i32 %1911, 1
  store i32 %1912, ptr @test_count, align 4, !tbaa !5
  %1913 = call ptr @s2n_cert_chain_and_key_new() #15
  %1914 = icmp eq ptr %1913, null
  br i1 %1914, label %1915, label %1939

1915:                                             ; preds = %1910
  %1916 = tail call ptr @__errno_location() #16
  %1917 = load i32, ptr %1916, align 4, !tbaa !5
  %1918 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1919 = call i32 @s2n_print_stacktrace(ptr noundef %1918) #15
  %1920 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1921 = trunc nuw i8 %1920 to i1
  br i1 %1921, label %1922, label %1926

1922:                                             ; preds = %1915
  %1923 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1924 = call i32 @fileno(ptr noundef %1923) #15
  %1925 = call i32 @isatty(i32 noundef %1924) #15
  %.not561 = icmp eq i32 %1925, 0
  br i1 %.not561, label %1926, label %1927

1926:                                             ; preds = %1922, %1915
  br label %1927

1927:                                             ; preds = %1922, %1926
  %.str.61.sink1336 = phi ptr [ @.str.61, %1926 ], [ @.str.58, %1922 ]
  store i32 %1917, ptr %1916, align 4, !tbaa !5
  %1928 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1929 = load i32, ptr @test_count, align 4, !tbaa !5
  %1930 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1931 = load i32, ptr %1930, align 4, !tbaa !5
  %1932 = call ptr @s2n_strerror(i32 noundef %1931, ptr noundef nonnull @.str.60) #15
  %1933 = load i32, ptr %1930, align 4, !tbaa !5
  %1934 = call ptr @s2n_strerror_debug(i32 noundef %1933, ptr noundef nonnull @.str.60) #15
  %1935 = load i32, ptr %1916, align 4, !tbaa !5
  %1936 = call ptr @strerror(i32 noundef %1935) #15
  %1937 = load i32, ptr %1916, align 4, !tbaa !5
  %1938 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1928, ptr noundef nonnull %.str.61.sink1336, i32 noundef %1929, ptr noundef nonnull @.str.110, ptr noundef nonnull @.str.57, i32 noundef 184, ptr noundef %1932, ptr noundef %1934, ptr noundef %1936, i32 noundef %1937) #17
  call void @exit(i32 noundef 1) #18
  unreachable

1939:                                             ; preds = %1910
  %1940 = load i32, ptr @test_count, align 4, !tbaa !5
  %1941 = add nsw i32 %1940, 1
  store i32 %1941, ptr @test_count, align 4, !tbaa !5
  %1942 = load i32, ptr %17, align 4, !tbaa !5
  %1943 = load i32, ptr %18, align 4, !tbaa !5
  %1944 = call i32 @s2n_cert_chain_and_key_load_pem_bytes(ptr noundef nonnull %1913, ptr noundef nonnull %1799, i32 noundef %1942, ptr noundef nonnull %1827, i32 noundef %1943) #15
  %1945 = icmp eq i32 %1944, -1
  br i1 %1945, label %1946, label %1970

1946:                                             ; preds = %1939
  %1947 = tail call ptr @__errno_location() #16
  %1948 = load i32, ptr %1947, align 4, !tbaa !5
  %1949 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1950 = call i32 @s2n_print_stacktrace(ptr noundef %1949) #15
  %1951 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1952 = trunc nuw i8 %1951 to i1
  br i1 %1952, label %1953, label %1957

1953:                                             ; preds = %1946
  %1954 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1955 = call i32 @fileno(ptr noundef %1954) #15
  %1956 = call i32 @isatty(i32 noundef %1955) #15
  %.not560 = icmp eq i32 %1956, 0
  br i1 %.not560, label %1957, label %1958

1957:                                             ; preds = %1953, %1946
  br label %1958

1958:                                             ; preds = %1953, %1957
  %.str.61.sink1347 = phi ptr [ @.str.61, %1957 ], [ @.str.58, %1953 ]
  store i32 %1948, ptr %1947, align 4, !tbaa !5
  %1959 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1960 = load i32, ptr @test_count, align 4, !tbaa !5
  %1961 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1962 = load i32, ptr %1961, align 4, !tbaa !5
  %1963 = call ptr @s2n_strerror(i32 noundef %1962, ptr noundef nonnull @.str.60) #15
  %1964 = load i32, ptr %1961, align 4, !tbaa !5
  %1965 = call ptr @s2n_strerror_debug(i32 noundef %1964, ptr noundef nonnull @.str.60) #15
  %1966 = load i32, ptr %1947, align 4, !tbaa !5
  %1967 = call ptr @strerror(i32 noundef %1966) #15
  %1968 = load i32, ptr %1947, align 4, !tbaa !5
  %1969 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1959, ptr noundef nonnull %.str.61.sink1347, i32 noundef %1960, ptr noundef nonnull @.str.111, ptr noundef nonnull @.str.57, i32 noundef 185, ptr noundef %1963, ptr noundef %1965, ptr noundef %1967, i32 noundef %1968) #17
  call void @exit(i32 noundef 1) #18
  unreachable

1970:                                             ; preds = %1939
  %1971 = load i32, ptr @test_count, align 4, !tbaa !5
  %1972 = add nsw i32 %1971, 1
  store i32 %1972, ptr @test_count, align 4, !tbaa !5
  %1973 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef nonnull %1712, ptr noundef nonnull %1913) #15
  %1974 = icmp eq i32 %1973, -1
  br i1 %1974, label %1975, label %1999

1975:                                             ; preds = %1970
  %1976 = tail call ptr @__errno_location() #16
  %1977 = load i32, ptr %1976, align 4, !tbaa !5
  %1978 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1979 = call i32 @s2n_print_stacktrace(ptr noundef %1978) #15
  %1980 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1981 = trunc nuw i8 %1980 to i1
  br i1 %1981, label %1982, label %1986

1982:                                             ; preds = %1975
  %1983 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1984 = call i32 @fileno(ptr noundef %1983) #15
  %1985 = call i32 @isatty(i32 noundef %1984) #15
  %.not559 = icmp eq i32 %1985, 0
  br i1 %.not559, label %1986, label %1987

1986:                                             ; preds = %1982, %1975
  br label %1987

1987:                                             ; preds = %1982, %1986
  %.str.61.sink1358 = phi ptr [ @.str.61, %1986 ], [ @.str.58, %1982 ]
  store i32 %1977, ptr %1976, align 4, !tbaa !5
  %1988 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1989 = load i32, ptr @test_count, align 4, !tbaa !5
  %1990 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1991 = load i32, ptr %1990, align 4, !tbaa !5
  %1992 = call ptr @s2n_strerror(i32 noundef %1991, ptr noundef nonnull @.str.60) #15
  %1993 = load i32, ptr %1990, align 4, !tbaa !5
  %1994 = call ptr @s2n_strerror_debug(i32 noundef %1993, ptr noundef nonnull @.str.60) #15
  %1995 = load i32, ptr %1976, align 4, !tbaa !5
  %1996 = call ptr @strerror(i32 noundef %1995) #15
  %1997 = load i32, ptr %1976, align 4, !tbaa !5
  %1998 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1988, ptr noundef nonnull %.str.61.sink1358, i32 noundef %1989, ptr noundef nonnull @.str.112, ptr noundef nonnull @.str.57, i32 noundef 186, ptr noundef %1992, ptr noundef %1994, ptr noundef %1996, i32 noundef %1997) #17
  call void @exit(i32 noundef 1) #18
  unreachable

1999:                                             ; preds = %1970
  %2000 = load i32, ptr @test_count, align 4, !tbaa !5
  %2001 = add nsw i32 %2000, 1
  store i32 %2001, ptr @test_count, align 4, !tbaa !5
  %2002 = call ptr @s2n_connection_new(i32 noundef 1) #15
  %2003 = icmp eq ptr %2002, null
  br i1 %2003, label %2004, label %2028

2004:                                             ; preds = %1999
  %2005 = tail call ptr @__errno_location() #16
  %2006 = load i32, ptr %2005, align 4, !tbaa !5
  %2007 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2008 = call i32 @s2n_print_stacktrace(ptr noundef %2007) #15
  %2009 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2010 = trunc nuw i8 %2009 to i1
  br i1 %2010, label %2011, label %2015

2011:                                             ; preds = %2004
  %2012 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2013 = call i32 @fileno(ptr noundef %2012) #15
  %2014 = call i32 @isatty(i32 noundef %2013) #15
  %.not558 = icmp eq i32 %2014, 0
  br i1 %.not558, label %2015, label %2016

2015:                                             ; preds = %2011, %2004
  br label %2016

2016:                                             ; preds = %2011, %2015
  %.str.61.sink1369 = phi ptr [ @.str.61, %2015 ], [ @.str.58, %2011 ]
  store i32 %2006, ptr %2005, align 4, !tbaa !5
  %2017 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2018 = load i32, ptr @test_count, align 4, !tbaa !5
  %2019 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2020 = load i32, ptr %2019, align 4, !tbaa !5
  %2021 = call ptr @s2n_strerror(i32 noundef %2020, ptr noundef nonnull @.str.60) #15
  %2022 = load i32, ptr %2019, align 4, !tbaa !5
  %2023 = call ptr @s2n_strerror_debug(i32 noundef %2022, ptr noundef nonnull @.str.60) #15
  %2024 = load i32, ptr %2005, align 4, !tbaa !5
  %2025 = call ptr @strerror(i32 noundef %2024) #15
  %2026 = load i32, ptr %2005, align 4, !tbaa !5
  %2027 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2017, ptr noundef nonnull %.str.61.sink1369, i32 noundef %2018, ptr noundef nonnull @.str.113, ptr noundef nonnull @.str.57, i32 noundef 188, ptr noundef %2021, ptr noundef %2023, ptr noundef %2025, i32 noundef %2026) #17
  call void @exit(i32 noundef 1) #18
  unreachable

2028:                                             ; preds = %1999
  %2029 = load i32, ptr @test_count, align 4, !tbaa !5
  %2030 = add nsw i32 %2029, 1
  store i32 %2030, ptr @test_count, align 4, !tbaa !5
  %2031 = call ptr @s2n_connection_new(i32 noundef 0) #15
  %2032 = icmp eq ptr %2031, null
  br i1 %2032, label %2033, label %2057

2033:                                             ; preds = %2028
  %2034 = tail call ptr @__errno_location() #16
  %2035 = load i32, ptr %2034, align 4, !tbaa !5
  %2036 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2037 = call i32 @s2n_print_stacktrace(ptr noundef %2036) #15
  %2038 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2039 = trunc nuw i8 %2038 to i1
  br i1 %2039, label %2040, label %2044

2040:                                             ; preds = %2033
  %2041 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2042 = call i32 @fileno(ptr noundef %2041) #15
  %2043 = call i32 @isatty(i32 noundef %2042) #15
  %.not557 = icmp eq i32 %2043, 0
  br i1 %.not557, label %2044, label %2045

2044:                                             ; preds = %2040, %2033
  br label %2045

2045:                                             ; preds = %2040, %2044
  %.str.61.sink1380 = phi ptr [ @.str.61, %2044 ], [ @.str.58, %2040 ]
  store i32 %2035, ptr %2034, align 4, !tbaa !5
  %2046 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2047 = load i32, ptr @test_count, align 4, !tbaa !5
  %2048 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2049 = load i32, ptr %2048, align 4, !tbaa !5
  %2050 = call ptr @s2n_strerror(i32 noundef %2049, ptr noundef nonnull @.str.60) #15
  %2051 = load i32, ptr %2048, align 4, !tbaa !5
  %2052 = call ptr @s2n_strerror_debug(i32 noundef %2051, ptr noundef nonnull @.str.60) #15
  %2053 = load i32, ptr %2034, align 4, !tbaa !5
  %2054 = call ptr @strerror(i32 noundef %2053) #15
  %2055 = load i32, ptr %2034, align 4, !tbaa !5
  %2056 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2046, ptr noundef nonnull %.str.61.sink1380, i32 noundef %2047, ptr noundef nonnull @.str.114, ptr noundef nonnull @.str.57, i32 noundef 189, ptr noundef %2050, ptr noundef %2052, ptr noundef %2054, i32 noundef %2055) #17
  call void @exit(i32 noundef 1) #18
  unreachable

2057:                                             ; preds = %2028
  %2058 = load i32, ptr @test_count, align 4, !tbaa !5
  %2059 = add nsw i32 %2058, 1
  store i32 %2059, ptr @test_count, align 4, !tbaa !5
  %2060 = call i32 @s2n_connection_set_config(ptr noundef nonnull %2031, ptr noundef nonnull %1712) #15
  %2061 = icmp eq i32 %2060, -1
  br i1 %2061, label %2062, label %2086

2062:                                             ; preds = %2057
  %2063 = tail call ptr @__errno_location() #16
  %2064 = load i32, ptr %2063, align 4, !tbaa !5
  %2065 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2066 = call i32 @s2n_print_stacktrace(ptr noundef %2065) #15
  %2067 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2068 = trunc nuw i8 %2067 to i1
  br i1 %2068, label %2069, label %2073

2069:                                             ; preds = %2062
  %2070 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2071 = call i32 @fileno(ptr noundef %2070) #15
  %2072 = call i32 @isatty(i32 noundef %2071) #15
  %.not556 = icmp eq i32 %2072, 0
  br i1 %.not556, label %2073, label %2074

2073:                                             ; preds = %2069, %2062
  br label %2074

2074:                                             ; preds = %2069, %2073
  %.str.61.sink1391 = phi ptr [ @.str.61, %2073 ], [ @.str.58, %2069 ]
  store i32 %2064, ptr %2063, align 4, !tbaa !5
  %2075 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2076 = load i32, ptr @test_count, align 4, !tbaa !5
  %2077 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2078 = load i32, ptr %2077, align 4, !tbaa !5
  %2079 = call ptr @s2n_strerror(i32 noundef %2078, ptr noundef nonnull @.str.60) #15
  %2080 = load i32, ptr %2077, align 4, !tbaa !5
  %2081 = call ptr @s2n_strerror_debug(i32 noundef %2080, ptr noundef nonnull @.str.60) #15
  %2082 = load i32, ptr %2063, align 4, !tbaa !5
  %2083 = call ptr @strerror(i32 noundef %2082) #15
  %2084 = load i32, ptr %2063, align 4, !tbaa !5
  %2085 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2075, ptr noundef nonnull %.str.61.sink1391, i32 noundef %2076, ptr noundef nonnull @.str.115, ptr noundef nonnull @.str.57, i32 noundef 190, ptr noundef %2079, ptr noundef %2081, ptr noundef %2083, i32 noundef %2084) #17
  call void @exit(i32 noundef 1) #18
  unreachable

2086:                                             ; preds = %2057
  %2087 = load i32, ptr @test_count, align 4, !tbaa !5
  %2088 = add nsw i32 %2087, 1
  store i32 %2088, ptr @test_count, align 4, !tbaa !5
  %2089 = call i32 @s2n_connection_set_config(ptr noundef nonnull %2002, ptr noundef nonnull %1741) #15
  %2090 = icmp eq i32 %2089, -1
  br i1 %2090, label %2091, label %2115

2091:                                             ; preds = %2086
  %2092 = tail call ptr @__errno_location() #16
  %2093 = load i32, ptr %2092, align 4, !tbaa !5
  %2094 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2095 = call i32 @s2n_print_stacktrace(ptr noundef %2094) #15
  %2096 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2097 = trunc nuw i8 %2096 to i1
  br i1 %2097, label %2098, label %2102

2098:                                             ; preds = %2091
  %2099 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2100 = call i32 @fileno(ptr noundef %2099) #15
  %2101 = call i32 @isatty(i32 noundef %2100) #15
  %.not555 = icmp eq i32 %2101, 0
  br i1 %.not555, label %2102, label %2103

2102:                                             ; preds = %2098, %2091
  br label %2103

2103:                                             ; preds = %2098, %2102
  %.str.61.sink1402 = phi ptr [ @.str.61, %2102 ], [ @.str.58, %2098 ]
  store i32 %2093, ptr %2092, align 4, !tbaa !5
  %2104 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2105 = load i32, ptr @test_count, align 4, !tbaa !5
  %2106 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2107 = load i32, ptr %2106, align 4, !tbaa !5
  %2108 = call ptr @s2n_strerror(i32 noundef %2107, ptr noundef nonnull @.str.60) #15
  %2109 = load i32, ptr %2106, align 4, !tbaa !5
  %2110 = call ptr @s2n_strerror_debug(i32 noundef %2109, ptr noundef nonnull @.str.60) #15
  %2111 = load i32, ptr %2092, align 4, !tbaa !5
  %2112 = call ptr @strerror(i32 noundef %2111) #15
  %2113 = load i32, ptr %2092, align 4, !tbaa !5
  %2114 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2104, ptr noundef nonnull %.str.61.sink1402, i32 noundef %2105, ptr noundef nonnull @.str.116, ptr noundef nonnull @.str.57, i32 noundef 191, ptr noundef %2108, ptr noundef %2110, ptr noundef %2112, i32 noundef %2113) #17
  call void @exit(i32 noundef 1) #18
  unreachable

2115:                                             ; preds = %2086
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %19) #15
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %19, i8 0, i64 40, i1 false)
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %20) #15
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %20, i8 0, i64 40, i1 false)
  %2116 = load i32, ptr @test_count, align 4, !tbaa !5
  %2117 = add nsw i32 %2116, 1
  store i32 %2117, ptr @test_count, align 4, !tbaa !5
  %2118 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %19, i32 noundef 0) #15
  %2119 = icmp eq i32 %2118, -1
  br i1 %2119, label %2120, label %2144

2120:                                             ; preds = %2115
  %2121 = tail call ptr @__errno_location() #16
  %2122 = load i32, ptr %2121, align 4, !tbaa !5
  %2123 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2124 = call i32 @s2n_print_stacktrace(ptr noundef %2123) #15
  %2125 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2126 = trunc nuw i8 %2125 to i1
  br i1 %2126, label %2127, label %2131

2127:                                             ; preds = %2120
  %2128 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2129 = call i32 @fileno(ptr noundef %2128) #15
  %2130 = call i32 @isatty(i32 noundef %2129) #15
  %.not554 = icmp eq i32 %2130, 0
  br i1 %.not554, label %2131, label %2132

2131:                                             ; preds = %2127, %2120
  br label %2132

2132:                                             ; preds = %2127, %2131
  %.str.61.sink1413 = phi ptr [ @.str.61, %2131 ], [ @.str.58, %2127 ]
  store i32 %2122, ptr %2121, align 4, !tbaa !5
  %2133 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2134 = load i32, ptr @test_count, align 4, !tbaa !5
  %2135 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2136 = load i32, ptr %2135, align 4, !tbaa !5
  %2137 = call ptr @s2n_strerror(i32 noundef %2136, ptr noundef nonnull @.str.60) #15
  %2138 = load i32, ptr %2135, align 4, !tbaa !5
  %2139 = call ptr @s2n_strerror_debug(i32 noundef %2138, ptr noundef nonnull @.str.60) #15
  %2140 = load i32, ptr %2121, align 4, !tbaa !5
  %2141 = call ptr @strerror(i32 noundef %2140) #15
  %2142 = load i32, ptr %2121, align 4, !tbaa !5
  %2143 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2133, ptr noundef nonnull %.str.61.sink1413, i32 noundef %2134, ptr noundef nonnull @.str.117, ptr noundef nonnull @.str.57, i32 noundef 196, ptr noundef %2137, ptr noundef %2139, ptr noundef %2141, i32 noundef %2142) #17
  call void @exit(i32 noundef 1) #18
  unreachable

2144:                                             ; preds = %2115
  %2145 = load i32, ptr @test_count, align 4, !tbaa !5
  %2146 = add nsw i32 %2145, 1
  store i32 %2146, ptr @test_count, align 4, !tbaa !5
  %2147 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %20, i32 noundef 0) #15
  %2148 = icmp eq i32 %2147, -1
  br i1 %2148, label %2149, label %2173

2149:                                             ; preds = %2144
  %2150 = tail call ptr @__errno_location() #16
  %2151 = load i32, ptr %2150, align 4, !tbaa !5
  %2152 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2153 = call i32 @s2n_print_stacktrace(ptr noundef %2152) #15
  %2154 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2155 = trunc nuw i8 %2154 to i1
  br i1 %2155, label %2156, label %2160

2156:                                             ; preds = %2149
  %2157 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2158 = call i32 @fileno(ptr noundef %2157) #15
  %2159 = call i32 @isatty(i32 noundef %2158) #15
  %.not553 = icmp eq i32 %2159, 0
  br i1 %.not553, label %2160, label %2161

2160:                                             ; preds = %2156, %2149
  br label %2161

2161:                                             ; preds = %2156, %2160
  %.str.61.sink1424 = phi ptr [ @.str.61, %2160 ], [ @.str.58, %2156 ]
  store i32 %2151, ptr %2150, align 4, !tbaa !5
  %2162 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2163 = load i32, ptr @test_count, align 4, !tbaa !5
  %2164 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2165 = load i32, ptr %2164, align 4, !tbaa !5
  %2166 = call ptr @s2n_strerror(i32 noundef %2165, ptr noundef nonnull @.str.60) #15
  %2167 = load i32, ptr %2164, align 4, !tbaa !5
  %2168 = call ptr @s2n_strerror_debug(i32 noundef %2167, ptr noundef nonnull @.str.60) #15
  %2169 = load i32, ptr %2150, align 4, !tbaa !5
  %2170 = call ptr @strerror(i32 noundef %2169) #15
  %2171 = load i32, ptr %2150, align 4, !tbaa !5
  %2172 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2162, ptr noundef nonnull %.str.61.sink1424, i32 noundef %2163, ptr noundef nonnull @.str.118, ptr noundef nonnull @.str.57, i32 noundef 197, ptr noundef %2166, ptr noundef %2168, ptr noundef %2170, i32 noundef %2171) #17
  call void @exit(i32 noundef 1) #18
  unreachable

2173:                                             ; preds = %2144
  %2174 = load i32, ptr @test_count, align 4, !tbaa !5
  %2175 = add nsw i32 %2174, 1
  store i32 %2175, ptr @test_count, align 4, !tbaa !5
  %2176 = call i32 @s2n_connection_set_io_stuffers(ptr noundef nonnull %20, ptr noundef nonnull %19, ptr noundef nonnull %2002) #15
  %2177 = icmp eq i32 %2176, -1
  br i1 %2177, label %2178, label %2202

2178:                                             ; preds = %2173
  %2179 = tail call ptr @__errno_location() #16
  %2180 = load i32, ptr %2179, align 4, !tbaa !5
  %2181 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2182 = call i32 @s2n_print_stacktrace(ptr noundef %2181) #15
  %2183 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2184 = trunc nuw i8 %2183 to i1
  br i1 %2184, label %2185, label %2189

2185:                                             ; preds = %2178
  %2186 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2187 = call i32 @fileno(ptr noundef %2186) #15
  %2188 = call i32 @isatty(i32 noundef %2187) #15
  %.not552 = icmp eq i32 %2188, 0
  br i1 %.not552, label %2189, label %2190

2189:                                             ; preds = %2185, %2178
  br label %2190

2190:                                             ; preds = %2185, %2189
  %.str.61.sink1435 = phi ptr [ @.str.61, %2189 ], [ @.str.58, %2185 ]
  store i32 %2180, ptr %2179, align 4, !tbaa !5
  %2191 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2192 = load i32, ptr @test_count, align 4, !tbaa !5
  %2193 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2194 = load i32, ptr %2193, align 4, !tbaa !5
  %2195 = call ptr @s2n_strerror(i32 noundef %2194, ptr noundef nonnull @.str.60) #15
  %2196 = load i32, ptr %2193, align 4, !tbaa !5
  %2197 = call ptr @s2n_strerror_debug(i32 noundef %2196, ptr noundef nonnull @.str.60) #15
  %2198 = load i32, ptr %2179, align 4, !tbaa !5
  %2199 = call ptr @strerror(i32 noundef %2198) #15
  %2200 = load i32, ptr %2179, align 4, !tbaa !5
  %2201 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2191, ptr noundef nonnull %.str.61.sink1435, i32 noundef %2192, ptr noundef nonnull @.str.119, ptr noundef nonnull @.str.57, i32 noundef 199, ptr noundef %2195, ptr noundef %2197, ptr noundef %2199, i32 noundef %2200) #17
  call void @exit(i32 noundef 1) #18
  unreachable

2202:                                             ; preds = %2173
  %2203 = load i32, ptr @test_count, align 4, !tbaa !5
  %2204 = add nsw i32 %2203, 1
  store i32 %2204, ptr @test_count, align 4, !tbaa !5
  %2205 = call i32 @s2n_connection_set_io_stuffers(ptr noundef nonnull %19, ptr noundef nonnull %20, ptr noundef nonnull %2031) #15
  %2206 = icmp eq i32 %2205, -1
  br i1 %2206, label %2207, label %2231

2207:                                             ; preds = %2202
  %2208 = tail call ptr @__errno_location() #16
  %2209 = load i32, ptr %2208, align 4, !tbaa !5
  %2210 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2211 = call i32 @s2n_print_stacktrace(ptr noundef %2210) #15
  %2212 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2213 = trunc nuw i8 %2212 to i1
  br i1 %2213, label %2214, label %2218

2214:                                             ; preds = %2207
  %2215 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2216 = call i32 @fileno(ptr noundef %2215) #15
  %2217 = call i32 @isatty(i32 noundef %2216) #15
  %.not551 = icmp eq i32 %2217, 0
  br i1 %.not551, label %2218, label %2219

2218:                                             ; preds = %2214, %2207
  br label %2219

2219:                                             ; preds = %2214, %2218
  %.str.61.sink1446 = phi ptr [ @.str.61, %2218 ], [ @.str.58, %2214 ]
  store i32 %2209, ptr %2208, 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 nonnull @.str.60) #15
  %2225 = load i32, ptr %2222, align 4, !tbaa !5
  %2226 = call ptr @s2n_strerror_debug(i32 noundef %2225, ptr noundef nonnull @.str.60) #15
  %2227 = load i32, ptr %2208, align 4, !tbaa !5
  %2228 = call ptr @strerror(i32 noundef %2227) #15
  %2229 = load i32, ptr %2208, align 4, !tbaa !5
  %2230 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2220, ptr noundef nonnull %.str.61.sink1446, i32 noundef %2221, ptr noundef nonnull @.str.120, ptr noundef nonnull @.str.57, i32 noundef 200, ptr noundef %2224, ptr noundef %2226, ptr noundef %2228, i32 noundef %2229) #17
  call void @exit(i32 noundef 1) #18
  unreachable

2231:                                             ; preds = %2202
  %2232 = getelementptr inbounds i8, ptr %2031, i64 232
  %2233 = load ptr, ptr %2232, align 8, !tbaa !15
  %2234 = getelementptr inbounds i8, ptr %2233, i64 928
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %21) #15
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %21, i8 0, i64 24, i1 false)
  %2235 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef nonnull %21, ptr noundef nonnull @.str.121) #15
  %2236 = call zeroext i1 @s2n_result_is_ok(i32 %2235)
  br i1 %2236, label %2238, label %.thread630

.thread630:                                       ; preds = %2231
  %2237 = call i32 @s2n_free(ptr noundef nonnull %21) #15
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %21) #15
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %20) #15
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %19) #15
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %18) #15
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %17) #15
  br label %4325

2238:                                             ; preds = %2231
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %22) #15
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %22, i8 0, i64 24, i1 false)
  %2239 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef nonnull %22, ptr noundef nonnull @.str.122) #15
  %2240 = call zeroext i1 @s2n_result_is_ok(i32 %2239)
  br i1 %2240, label %2241, label %4247

2241:                                             ; preds = %2238
  %2242 = load i32, ptr @test_count, align 4, !tbaa !5
  %2243 = add nsw i32 %2242, 1
  store i32 %2243, ptr @test_count, align 4, !tbaa !5
  %2244 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %2002, ptr noundef nonnull @.str.123) #15
  %2245 = icmp eq i32 %2244, -1
  br i1 %2245, label %2246, label %2270

2246:                                             ; preds = %2241
  %2247 = tail call ptr @__errno_location() #16
  %2248 = load i32, ptr %2247, align 4, !tbaa !5
  %2249 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2250 = call i32 @s2n_print_stacktrace(ptr noundef %2249) #15
  %2251 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2252 = trunc nuw i8 %2251 to i1
  br i1 %2252, label %2253, label %2257

2253:                                             ; preds = %2246
  %2254 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2255 = call i32 @fileno(ptr noundef %2254) #15
  %2256 = call i32 @isatty(i32 noundef %2255) #15
  %.not550 = icmp eq i32 %2256, 0
  br i1 %.not550, label %2257, label %2258

2257:                                             ; preds = %2253, %2246
  br label %2258

2258:                                             ; preds = %2253, %2257
  %.str.61.sink1457 = phi ptr [ @.str.61, %2257 ], [ @.str.58, %2253 ]
  store i32 %2248, ptr %2247, align 4, !tbaa !5
  %2259 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2260 = load i32, ptr @test_count, align 4, !tbaa !5
  %2261 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2262 = load i32, ptr %2261, align 4, !tbaa !5
  %2263 = call ptr @s2n_strerror(i32 noundef %2262, ptr noundef nonnull @.str.60) #15
  %2264 = load i32, ptr %2261, align 4, !tbaa !5
  %2265 = call ptr @s2n_strerror_debug(i32 noundef %2264, ptr noundef nonnull @.str.60) #15
  %2266 = load i32, ptr %2247, align 4, !tbaa !5
  %2267 = call ptr @strerror(i32 noundef %2266) #15
  %2268 = load i32, ptr %2247, align 4, !tbaa !5
  %2269 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2259, ptr noundef nonnull %.str.61.sink1457, i32 noundef %2260, ptr noundef nonnull @.str.124, ptr noundef nonnull @.str.57, i32 noundef 206, ptr noundef %2263, ptr noundef %2265, ptr noundef %2267, i32 noundef %2268) #17
  call void @exit(i32 noundef 1) #18
  unreachable

2270:                                             ; preds = %2241
  %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_connection_set_cipher_preferences(ptr noundef nonnull %2031, ptr noundef nonnull @.str.123) #15
  %2274 = icmp eq i32 %2273, -1
  br i1 %2274, label %2275, label %2299

2275:                                             ; preds = %2270
  %2276 = tail call ptr @__errno_location() #16
  %2277 = load i32, ptr %2276, align 4, !tbaa !5
  %2278 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2279 = call i32 @s2n_print_stacktrace(ptr noundef %2278) #15
  %2280 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2281 = trunc nuw i8 %2280 to i1
  br i1 %2281, label %2282, label %2286

2282:                                             ; preds = %2275
  %2283 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2284 = call i32 @fileno(ptr noundef %2283) #15
  %2285 = call i32 @isatty(i32 noundef %2284) #15
  %.not549 = icmp eq i32 %2285, 0
  br i1 %.not549, label %2286, label %2287

2286:                                             ; preds = %2282, %2275
  br label %2287

2287:                                             ; preds = %2282, %2286
  %.str.61.sink1468 = phi ptr [ @.str.61, %2286 ], [ @.str.58, %2282 ]
  store i32 %2277, ptr %2276, align 4, !tbaa !5
  %2288 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2289 = load i32, ptr @test_count, align 4, !tbaa !5
  %2290 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2291 = load i32, ptr %2290, align 4, !tbaa !5
  %2292 = call ptr @s2n_strerror(i32 noundef %2291, ptr noundef nonnull @.str.60) #15
  %2293 = load i32, ptr %2290, align 4, !tbaa !5
  %2294 = call ptr @s2n_strerror_debug(i32 noundef %2293, ptr noundef nonnull @.str.60) #15
  %2295 = load i32, ptr %2276, align 4, !tbaa !5
  %2296 = call ptr @strerror(i32 noundef %2295) #15
  %2297 = load i32, ptr %2276, align 4, !tbaa !5
  %2298 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2288, ptr noundef nonnull %.str.61.sink1468, i32 noundef %2289, ptr noundef nonnull @.str.125, ptr noundef nonnull @.str.57, i32 noundef 207, ptr noundef %2292, ptr noundef %2294, ptr noundef %2296, i32 noundef %2297) #17
  call void @exit(i32 noundef 1) #18
  unreachable

2299:                                             ; preds = %2270
  %2300 = load i32, ptr @test_count, align 4, !tbaa !5
  %2301 = add nsw i32 %2300, 1
  store i32 %2301, ptr @test_count, align 4, !tbaa !5
  %2302 = call i32 @s2n_conn_get_current_message_type(ptr noundef nonnull %2002)
  %2303 = icmp eq i32 %2302, 0
  br i1 %2303, label %2328, label %2304

2304:                                             ; preds = %2299
  %2305 = tail call ptr @__errno_location() #16
  %2306 = load i32, ptr %2305, align 4, !tbaa !5
  %2307 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2308 = call i32 @s2n_print_stacktrace(ptr noundef %2307) #15
  %2309 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2310 = trunc nuw i8 %2309 to i1
  br i1 %2310, label %2311, label %2315

2311:                                             ; preds = %2304
  %2312 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2313 = call i32 @fileno(ptr noundef %2312) #15
  %2314 = call i32 @isatty(i32 noundef %2313) #15
  %.not469 = icmp eq i32 %2314, 0
  br i1 %.not469, label %2315, label %2316

2315:                                             ; preds = %2311, %2304
  br label %2316

2316:                                             ; preds = %2311, %2315
  %.str.61.sink1479 = phi ptr [ @.str.61, %2315 ], [ @.str.58, %2311 ]
  store i32 %2306, ptr %2305, align 4, !tbaa !5
  %2317 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2318 = load i32, ptr @test_count, align 4, !tbaa !5
  %2319 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2320 = load i32, ptr %2319, align 4, !tbaa !5
  %2321 = call ptr @s2n_strerror(i32 noundef %2320, ptr noundef nonnull @.str.60) #15
  %2322 = load i32, ptr %2319, align 4, !tbaa !5
  %2323 = call ptr @s2n_strerror_debug(i32 noundef %2322, ptr noundef nonnull @.str.60) #15
  %2324 = load i32, ptr %2305, align 4, !tbaa !5
  %2325 = call ptr @strerror(i32 noundef %2324) #15
  %2326 = load i32, ptr %2305, align 4, !tbaa !5
  %2327 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2317, ptr noundef nonnull %.str.61.sink1479, i32 noundef %2318, ptr noundef nonnull @.str.126, ptr noundef nonnull @.str.57, i32 noundef 210, ptr noundef %2321, ptr noundef %2323, ptr noundef %2325, i32 noundef %2326) #17
  call void @exit(i32 noundef 1) #18
  unreachable

2328:                                             ; preds = %2299
  %2329 = load i32, ptr @test_count, align 4, !tbaa !5
  %2330 = add nsw i32 %2329, 1
  store i32 %2330, ptr @test_count, align 4, !tbaa !5
  %2331 = call i32 @s2n_handshake_write_io(ptr noundef nonnull %2002)
  %2332 = icmp eq i32 %2331, -1
  br i1 %2332, label %2333, label %2357

2333:                                             ; preds = %2328
  %2334 = tail call ptr @__errno_location() #16
  %2335 = load i32, ptr %2334, align 4, !tbaa !5
  %2336 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2337 = call i32 @s2n_print_stacktrace(ptr noundef %2336) #15
  %2338 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2339 = trunc nuw i8 %2338 to i1
  br i1 %2339, label %2340, label %2344

2340:                                             ; preds = %2333
  %2341 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2342 = call i32 @fileno(ptr noundef %2341) #15
  %2343 = call i32 @isatty(i32 noundef %2342) #15
  %.not548 = icmp eq i32 %2343, 0
  br i1 %.not548, label %2344, label %2345

2344:                                             ; preds = %2340, %2333
  br label %2345

2345:                                             ; preds = %2340, %2344
  %.str.61.sink1490 = phi ptr [ @.str.61, %2344 ], [ @.str.58, %2340 ]
  store i32 %2335, ptr %2334, align 4, !tbaa !5
  %2346 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2347 = load i32, ptr @test_count, align 4, !tbaa !5
  %2348 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2349 = load i32, ptr %2348, align 4, !tbaa !5
  %2350 = call ptr @s2n_strerror(i32 noundef %2349, ptr noundef nonnull @.str.60) #15
  %2351 = load i32, ptr %2348, align 4, !tbaa !5
  %2352 = call ptr @s2n_strerror_debug(i32 noundef %2351, ptr noundef nonnull @.str.60) #15
  %2353 = load i32, ptr %2334, align 4, !tbaa !5
  %2354 = call ptr @strerror(i32 noundef %2353) #15
  %2355 = load i32, ptr %2334, align 4, !tbaa !5
  %2356 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2346, ptr noundef nonnull %.str.61.sink1490, i32 noundef %2347, ptr noundef nonnull @.str.127, ptr noundef nonnull @.str.57, i32 noundef 211, ptr noundef %2350, ptr noundef %2352, ptr noundef %2354, i32 noundef %2355) #17
  call void @exit(i32 noundef 1) #18
  unreachable

2357:                                             ; preds = %2328
  %2358 = load i32, ptr @test_count, align 4, !tbaa !5
  %2359 = add nsw i32 %2358, 1
  store i32 %2359, ptr @test_count, align 4, !tbaa !5
  %2360 = getelementptr inbounds i8, ptr %2002, i64 220
  %2361 = load i8, ptr %2360, align 4, !tbaa !71
  %2362 = icmp eq i8 %2361, 34
  br i1 %2362, label %2387, label %2363

2363:                                             ; preds = %2357
  %2364 = tail call ptr @__errno_location() #16
  %2365 = load i32, ptr %2364, align 4, !tbaa !5
  %2366 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2367 = call i32 @s2n_print_stacktrace(ptr noundef %2366) #15
  %2368 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2369 = trunc nuw i8 %2368 to i1
  br i1 %2369, label %2370, label %2374

2370:                                             ; preds = %2363
  %2371 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2372 = call i32 @fileno(ptr noundef %2371) #15
  %2373 = call i32 @isatty(i32 noundef %2372) #15
  %.not470 = icmp eq i32 %2373, 0
  br i1 %.not470, label %2374, label %2375

2374:                                             ; preds = %2370, %2363
  br label %2375

2375:                                             ; preds = %2370, %2374
  %.str.61.sink1501 = phi ptr [ @.str.61, %2374 ], [ @.str.58, %2370 ]
  store i32 %2365, ptr %2364, align 4, !tbaa !5
  %2376 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2377 = load i32, ptr @test_count, align 4, !tbaa !5
  %2378 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2379 = load i32, ptr %2378, align 4, !tbaa !5
  %2380 = call ptr @s2n_strerror(i32 noundef %2379, ptr noundef nonnull @.str.60) #15
  %2381 = load i32, ptr %2378, align 4, !tbaa !5
  %2382 = call ptr @s2n_strerror_debug(i32 noundef %2381, ptr noundef nonnull @.str.60) #15
  %2383 = load i32, ptr %2364, align 4, !tbaa !5
  %2384 = call ptr @strerror(i32 noundef %2383) #15
  %2385 = load i32, ptr %2364, align 4, !tbaa !5
  %2386 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2376, ptr noundef nonnull %.str.61.sink1501, i32 noundef %2377, ptr noundef nonnull @.str.128, ptr noundef nonnull @.str.57, i32 noundef 213, ptr noundef %2380, ptr noundef %2382, ptr noundef %2384, i32 noundef %2385) #17
  call void @exit(i32 noundef 1) #18
  unreachable

2387:                                             ; preds = %2357
  %2388 = add nsw i32 %2358, 2
  store i32 %2388, ptr @test_count, align 4, !tbaa !5
  %2389 = getelementptr inbounds i8, ptr %2031, i64 220
  %2390 = load i8, ptr %2389, align 4, !tbaa !71
  %2391 = icmp eq i8 %2390, 0
  br i1 %2391, label %2416, label %2392

2392:                                             ; preds = %2387
  %2393 = tail call ptr @__errno_location() #16
  %2394 = load i32, ptr %2393, align 4, !tbaa !5
  %2395 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2396 = call i32 @s2n_print_stacktrace(ptr noundef %2395) #15
  %2397 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2398 = trunc nuw i8 %2397 to i1
  br i1 %2398, label %2399, label %2403

2399:                                             ; preds = %2392
  %2400 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2401 = call i32 @fileno(ptr noundef %2400) #15
  %2402 = call i32 @isatty(i32 noundef %2401) #15
  %.not471 = icmp eq i32 %2402, 0
  br i1 %.not471, label %2403, label %2404

2403:                                             ; preds = %2399, %2392
  br label %2404

2404:                                             ; preds = %2399, %2403
  %.str.61.sink1512 = phi ptr [ @.str.61, %2403 ], [ @.str.58, %2399 ]
  store i32 %2394, ptr %2393, 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 nonnull @.str.60) #15
  %2410 = load i32, ptr %2407, align 4, !tbaa !5
  %2411 = call ptr @s2n_strerror_debug(i32 noundef %2410, ptr noundef nonnull @.str.60) #15
  %2412 = load i32, ptr %2393, align 4, !tbaa !5
  %2413 = call ptr @strerror(i32 noundef %2412) #15
  %2414 = load i32, ptr %2393, align 4, !tbaa !5
  %2415 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2405, ptr noundef nonnull %.str.61.sink1512, i32 noundef %2406, ptr noundef nonnull @.str.129, ptr noundef nonnull @.str.57, i32 noundef 214, ptr noundef %2409, ptr noundef %2411, ptr noundef %2413, i32 noundef %2414) #17
  call void @exit(i32 noundef 1) #18
  unreachable

2416:                                             ; preds = %2387
  call void @llvm.lifetime.start.p0(i64 592, ptr nonnull %23) #15
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(592) %23, i8 0, i64 592, i1 false)
  %2417 = call i32 @s2n_tls13_keys_from_conn(ptr noundef nonnull %23, ptr noundef nonnull %2031)
  %2418 = icmp sgt i32 %2417, -1
  br i1 %2418, label %2419, label %4245

2419:                                             ; preds = %2416
  %2420 = load i32, ptr @test_count, align 4, !tbaa !5
  %2421 = add nsw i32 %2420, 1
  store i32 %2421, ptr @test_count, align 4, !tbaa !5
  %2422 = getelementptr inbounds i8, ptr %23, i64 8
  %2423 = load i8, ptr %2422, align 8, !tbaa !72
  %2424 = icmp eq i8 %2423, 0
  br i1 %2424, label %2449, label %2425

2425:                                             ; preds = %2419
  %2426 = tail call ptr @__errno_location() #16
  %2427 = load i32, ptr %2426, align 4, !tbaa !5
  %2428 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2429 = call i32 @s2n_print_stacktrace(ptr noundef %2428) #15
  %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 = %2425
  %2433 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2434 = call i32 @fileno(ptr noundef %2433) #15
  %2435 = call i32 @isatty(i32 noundef %2434) #15
  %.not472 = icmp eq i32 %2435, 0
  br i1 %.not472, label %2436, label %2437

2436:                                             ; preds = %2432, %2425
  br label %2437

2437:                                             ; preds = %2432, %2436
  %.str.61.sink1523 = phi ptr [ @.str.61, %2436 ], [ @.str.58, %2432 ]
  store i32 %2427, ptr %2426, align 4, !tbaa !5
  %2438 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2439 = load i32, ptr @test_count, align 4, !tbaa !5
  %2440 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2441 = load i32, ptr %2440, align 4, !tbaa !5
  %2442 = call ptr @s2n_strerror(i32 noundef %2441, ptr noundef nonnull @.str.60) #15
  %2443 = load i32, ptr %2440, align 4, !tbaa !5
  %2444 = call ptr @s2n_strerror_debug(i32 noundef %2443, ptr noundef nonnull @.str.60) #15
  %2445 = load i32, ptr %2426, align 4, !tbaa !5
  %2446 = call ptr @strerror(i32 noundef %2445) #15
  %2447 = load i32, ptr %2426, align 4, !tbaa !5
  %2448 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2438, ptr noundef nonnull %.str.61.sink1523, i32 noundef %2439, ptr noundef nonnull @.str.130, ptr noundef nonnull @.str.57, i32 noundef 217, ptr noundef %2442, ptr noundef %2444, ptr noundef %2446, i32 noundef %2447) #17
  call void @exit(i32 noundef 1) #18
  unreachable

2449:                                             ; preds = %2419
  %2450 = add nsw i32 %2420, 2
  store i32 %2450, ptr @test_count, align 4, !tbaa !5
  %2451 = getelementptr inbounds i8, ptr %2031, i64 2172
  %2452 = load i32, ptr %2451, align 4, !tbaa !74
  %2453 = icmp eq i32 %2452, 0
  br i1 %2453, label %2478, label %2454

2454:                                             ; preds = %2449
  %2455 = tail call ptr @__errno_location() #16
  %2456 = load i32, ptr %2455, align 4, !tbaa !5
  %2457 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2458 = call i32 @s2n_print_stacktrace(ptr noundef %2457) #15
  %2459 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2460 = trunc nuw i8 %2459 to i1
  br i1 %2460, label %2461, label %2465

2461:                                             ; preds = %2454
  %2462 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2463 = call i32 @fileno(ptr noundef %2462) #15
  %2464 = call i32 @isatty(i32 noundef %2463) #15
  %.not473 = icmp eq i32 %2464, 0
  br i1 %.not473, label %2465, label %2466

2465:                                             ; preds = %2461, %2454
  br label %2466

2466:                                             ; preds = %2461, %2465
  %.str.61.sink1534 = phi ptr [ @.str.61, %2465 ], [ @.str.58, %2461 ]
  store i32 %2456, ptr %2455, align 4, !tbaa !5
  %2467 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2468 = load i32, ptr @test_count, align 4, !tbaa !5
  %2469 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2470 = load i32, ptr %2469, align 4, !tbaa !5
  %2471 = call ptr @s2n_strerror(i32 noundef %2470, ptr noundef nonnull @.str.60) #15
  %2472 = load i32, ptr %2469, align 4, !tbaa !5
  %2473 = call ptr @s2n_strerror_debug(i32 noundef %2472, ptr noundef nonnull @.str.60) #15
  %2474 = load i32, ptr %2455, align 4, !tbaa !5
  %2475 = call ptr @strerror(i32 noundef %2474) #15
  %2476 = load i32, ptr %2455, align 4, !tbaa !5
  %2477 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2467, ptr noundef nonnull %.str.61.sink1534, i32 noundef %2468, ptr noundef nonnull @.str.131, ptr noundef nonnull @.str.57, i32 noundef 219, ptr noundef %2471, ptr noundef %2473, ptr noundef %2475, i32 noundef %2476) #17
  call void @exit(i32 noundef 1) #18
  unreachable

2478:                                             ; preds = %2449
  %2479 = add nsw i32 %2420, 3
  store i32 %2479, ptr @test_count, align 4, !tbaa !5
  %2480 = call i32 @s2n_conn_get_current_message_type(ptr noundef nonnull %2031)
  %2481 = icmp eq i32 %2480, 0
  br i1 %2481, label %2506, label %2482

2482:                                             ; preds = %2478
  %2483 = tail call ptr @__errno_location() #16
  %2484 = load i32, ptr %2483, align 4, !tbaa !5
  %2485 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2486 = call i32 @s2n_print_stacktrace(ptr noundef %2485) #15
  %2487 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2488 = trunc nuw i8 %2487 to i1
  br i1 %2488, label %2489, label %2493

2489:                                             ; preds = %2482
  %2490 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2491 = call i32 @fileno(ptr noundef %2490) #15
  %2492 = call i32 @isatty(i32 noundef %2491) #15
  %.not474 = icmp eq i32 %2492, 0
  br i1 %.not474, label %2493, label %2494

2493:                                             ; preds = %2489, %2482
  br label %2494

2494:                                             ; preds = %2489, %2493
  %.str.61.sink1545 = phi ptr [ @.str.61, %2493 ], [ @.str.58, %2489 ]
  store i32 %2484, ptr %2483, align 4, !tbaa !5
  %2495 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2496 = load i32, ptr @test_count, align 4, !tbaa !5
  %2497 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2498 = load i32, ptr %2497, align 4, !tbaa !5
  %2499 = call ptr @s2n_strerror(i32 noundef %2498, ptr noundef nonnull @.str.60) #15
  %2500 = load i32, ptr %2497, align 4, !tbaa !5
  %2501 = call ptr @s2n_strerror_debug(i32 noundef %2500, ptr noundef nonnull @.str.60) #15
  %2502 = load i32, ptr %2483, align 4, !tbaa !5
  %2503 = call ptr @strerror(i32 noundef %2502) #15
  %2504 = load i32, ptr %2483, align 4, !tbaa !5
  %2505 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2495, ptr noundef nonnull %.str.61.sink1545, i32 noundef %2496, ptr noundef nonnull @.str.132, ptr noundef nonnull @.str.57, i32 noundef 222, ptr noundef %2499, ptr noundef %2501, ptr noundef %2503, i32 noundef %2504) #17
  call void @exit(i32 noundef 1) #18
  unreachable

2506:                                             ; preds = %2478
  %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_handshake_read_io(ptr noundef nonnull %2031)
  %2510 = icmp eq i32 %2509, -1
  br i1 %2510, label %2511, label %2535

2511:                                             ; preds = %2506
  %2512 = tail call ptr @__errno_location() #16
  %2513 = load i32, ptr %2512, align 4, !tbaa !5
  %2514 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2515 = call i32 @s2n_print_stacktrace(ptr noundef %2514) #15
  %2516 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2517 = trunc nuw i8 %2516 to i1
  br i1 %2517, label %2518, label %2522

2518:                                             ; preds = %2511
  %2519 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2520 = call i32 @fileno(ptr noundef %2519) #15
  %2521 = call i32 @isatty(i32 noundef %2520) #15
  %.not547 = icmp eq i32 %2521, 0
  br i1 %.not547, label %2522, label %2523

2522:                                             ; preds = %2518, %2511
  br label %2523

2523:                                             ; preds = %2518, %2522
  %.str.61.sink1556 = phi ptr [ @.str.61, %2522 ], [ @.str.58, %2518 ]
  store i32 %2513, ptr %2512, align 4, !tbaa !5
  %2524 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2525 = load i32, ptr @test_count, align 4, !tbaa !5
  %2526 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2527 = load i32, ptr %2526, align 4, !tbaa !5
  %2528 = call ptr @s2n_strerror(i32 noundef %2527, ptr noundef nonnull @.str.60) #15
  %2529 = load i32, ptr %2526, align 4, !tbaa !5
  %2530 = call ptr @s2n_strerror_debug(i32 noundef %2529, ptr noundef nonnull @.str.60) #15
  %2531 = load i32, ptr %2512, align 4, !tbaa !5
  %2532 = call ptr @strerror(i32 noundef %2531) #15
  %2533 = load i32, ptr %2512, align 4, !tbaa !5
  %2534 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2524, ptr noundef nonnull %.str.61.sink1556, i32 noundef %2525, ptr noundef nonnull @.str.133, ptr noundef nonnull @.str.57, i32 noundef 223, ptr noundef %2528, ptr noundef %2530, ptr noundef %2532, i32 noundef %2533) #17
  call void @exit(i32 noundef 1) #18
  unreachable

2535:                                             ; preds = %2506
  %2536 = load i32, ptr @test_count, align 4, !tbaa !5
  %2537 = add nsw i32 %2536, 1
  store i32 %2537, ptr @test_count, align 4, !tbaa !5
  %2538 = load i8, ptr %2389, align 4, !tbaa !71
  %2539 = icmp eq i8 %2538, 34
  br i1 %2539, label %2564, label %2540

2540:                                             ; preds = %2535
  %2541 = tail call ptr @__errno_location() #16
  %2542 = load i32, ptr %2541, align 4, !tbaa !5
  %2543 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2544 = call i32 @s2n_print_stacktrace(ptr noundef %2543) #15
  %2545 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2546 = trunc nuw i8 %2545 to i1
  br i1 %2546, label %2547, label %2551

2547:                                             ; preds = %2540
  %2548 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2549 = call i32 @fileno(ptr noundef %2548) #15
  %2550 = call i32 @isatty(i32 noundef %2549) #15
  %.not475 = icmp eq i32 %2550, 0
  br i1 %.not475, label %2551, label %2552

2551:                                             ; preds = %2547, %2540
  br label %2552

2552:                                             ; preds = %2547, %2551
  %.str.61.sink1567 = phi ptr [ @.str.61, %2551 ], [ @.str.58, %2547 ]
  store i32 %2542, ptr %2541, align 4, !tbaa !5
  %2553 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2554 = load i32, ptr @test_count, align 4, !tbaa !5
  %2555 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2556 = load i32, ptr %2555, align 4, !tbaa !5
  %2557 = call ptr @s2n_strerror(i32 noundef %2556, ptr noundef nonnull @.str.60) #15
  %2558 = load i32, ptr %2555, align 4, !tbaa !5
  %2559 = call ptr @s2n_strerror_debug(i32 noundef %2558, ptr noundef nonnull @.str.60) #15
  %2560 = load i32, ptr %2541, align 4, !tbaa !5
  %2561 = call ptr @strerror(i32 noundef %2560) #15
  %2562 = load i32, ptr %2541, align 4, !tbaa !5
  %2563 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2553, ptr noundef nonnull %.str.61.sink1567, i32 noundef %2554, ptr noundef nonnull @.str.134, ptr noundef nonnull @.str.57, i32 noundef 225, ptr noundef %2557, ptr noundef %2559, ptr noundef %2561, i32 noundef %2562) #17
  call void @exit(i32 noundef 1) #18
  unreachable

2564:                                             ; preds = %2535
  %2565 = add nsw i32 %2536, 2
  store i32 %2565, ptr @test_count, align 4, !tbaa !5
  %2566 = load i32, ptr %2451, align 4, !tbaa !74
  %2567 = icmp eq i32 %2566, 35
  br i1 %2567, label %2592, label %2568

2568:                                             ; preds = %2564
  %2569 = tail call ptr @__errno_location() #16
  %2570 = load i32, ptr %2569, align 4, !tbaa !5
  %2571 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2572 = call i32 @s2n_print_stacktrace(ptr noundef %2571) #15
  %2573 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2574 = trunc nuw i8 %2573 to i1
  br i1 %2574, label %2575, label %2579

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

2579:                                             ; preds = %2575, %2568
  br label %2580

2580:                                             ; preds = %2575, %2579
  %.str.61.sink1578 = phi ptr [ @.str.61, %2579 ], [ @.str.58, %2575 ]
  store i32 %2570, ptr %2569, align 4, !tbaa !5
  %2581 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2582 = load i32, ptr @test_count, align 4, !tbaa !5
  %2583 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2584 = load i32, ptr %2583, align 4, !tbaa !5
  %2585 = call ptr @s2n_strerror(i32 noundef %2584, ptr noundef nonnull @.str.60) #15
  %2586 = load i32, ptr %2583, align 4, !tbaa !5
  %2587 = call ptr @s2n_strerror_debug(i32 noundef %2586, ptr noundef nonnull @.str.60) #15
  %2588 = load i32, ptr %2569, align 4, !tbaa !5
  %2589 = call ptr @strerror(i32 noundef %2588) #15
  %2590 = load i32, ptr %2569, align 4, !tbaa !5
  %2591 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2581, ptr noundef nonnull %.str.61.sink1578, i32 noundef %2582, ptr noundef nonnull @.str.135, ptr noundef nonnull @.str.57, i32 noundef 226, ptr noundef %2585, ptr noundef %2587, ptr noundef %2589, i32 noundef %2590) #17
  call void @exit(i32 noundef 1) #18
  unreachable

2592:                                             ; preds = %2564
  call void @llvm.lifetime.start.p0(i64 592, ptr nonnull %24) #15
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(592) %24, i8 0, i64 592, i1 false)
  %2593 = call i32 @s2n_tls13_keys_from_conn(ptr noundef nonnull %24, ptr noundef nonnull %2031)
  %2594 = icmp sgt i32 %2593, -1
  br i1 %2594, label %2595, label %4243

2595:                                             ; preds = %2592
  %2596 = load i32, ptr @test_count, align 4, !tbaa !5
  %2597 = add nsw i32 %2596, 1
  store i32 %2597, ptr @test_count, align 4, !tbaa !5
  %2598 = getelementptr inbounds i8, ptr %24, i64 8
  %2599 = load i8, ptr %2598, align 8, !tbaa !72
  %2600 = icmp eq i8 %2599, 32
  br i1 %2600, label %2625, label %2601

2601:                                             ; preds = %2595
  %2602 = tail call ptr @__errno_location() #16
  %2603 = load i32, ptr %2602, align 4, !tbaa !5
  %2604 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2605 = call i32 @s2n_print_stacktrace(ptr noundef %2604) #15
  %2606 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2607 = trunc nuw i8 %2606 to i1
  br i1 %2607, label %2608, label %2612

2608:                                             ; preds = %2601
  %2609 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2610 = call i32 @fileno(ptr noundef %2609) #15
  %2611 = call i32 @isatty(i32 noundef %2610) #15
  %.not477 = icmp eq i32 %2611, 0
  br i1 %.not477, label %2612, label %2613

2612:                                             ; preds = %2608, %2601
  br label %2613

2613:                                             ; preds = %2608, %2612
  %.str.61.sink1589 = phi ptr [ @.str.61, %2612 ], [ @.str.58, %2608 ]
  store i32 %2603, ptr %2602, align 4, !tbaa !5
  %2614 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2615 = load i32, ptr @test_count, align 4, !tbaa !5
  %2616 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2617 = load i32, ptr %2616, align 4, !tbaa !5
  %2618 = call ptr @s2n_strerror(i32 noundef %2617, ptr noundef nonnull @.str.60) #15
  %2619 = load i32, ptr %2616, align 4, !tbaa !5
  %2620 = call ptr @s2n_strerror_debug(i32 noundef %2619, ptr noundef nonnull @.str.60) #15
  %2621 = load i32, ptr %2602, align 4, !tbaa !5
  %2622 = call ptr @strerror(i32 noundef %2621) #15
  %2623 = load i32, ptr %2602, align 4, !tbaa !5
  %2624 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2614, ptr noundef nonnull %.str.61.sink1589, i32 noundef %2615, ptr noundef nonnull @.str.136, ptr noundef nonnull @.str.57, i32 noundef 229, ptr noundef %2618, ptr noundef %2620, ptr noundef %2622, i32 noundef %2623) #17
  call void @exit(i32 noundef 1) #18
  unreachable

2625:                                             ; preds = %2595
  %2626 = add nsw i32 %2596, 2
  store i32 %2626, ptr @test_count, align 4, !tbaa !5
  %2627 = call i32 @s2n_conn_set_handshake_type(ptr noundef nonnull %2031)
  %2628 = icmp eq i32 %2627, -1
  br i1 %2628, label %2629, label %2653

2629:                                             ; preds = %2625
  %2630 = tail call ptr @__errno_location() #16
  %2631 = load i32, ptr %2630, align 4, !tbaa !5
  %2632 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2633 = call i32 @s2n_print_stacktrace(ptr noundef %2632) #15
  %2634 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2635 = trunc nuw i8 %2634 to i1
  br i1 %2635, label %2636, label %2640

2636:                                             ; preds = %2629
  %2637 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2638 = call i32 @fileno(ptr noundef %2637) #15
  %2639 = call i32 @isatty(i32 noundef %2638) #15
  %.not546 = icmp eq i32 %2639, 0
  br i1 %.not546, label %2640, label %2641

2640:                                             ; preds = %2636, %2629
  br label %2641

2641:                                             ; preds = %2636, %2640
  %.str.61.sink1600 = phi ptr [ @.str.61, %2640 ], [ @.str.58, %2636 ]
  store i32 %2631, ptr %2630, align 4, !tbaa !5
  %2642 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2643 = load i32, ptr @test_count, align 4, !tbaa !5
  %2644 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2645 = load i32, ptr %2644, align 4, !tbaa !5
  %2646 = call ptr @s2n_strerror(i32 noundef %2645, ptr noundef nonnull @.str.60) #15
  %2647 = load i32, ptr %2644, align 4, !tbaa !5
  %2648 = call ptr @s2n_strerror_debug(i32 noundef %2647, ptr noundef nonnull @.str.60) #15
  %2649 = load i32, ptr %2630, align 4, !tbaa !5
  %2650 = call ptr @strerror(i32 noundef %2649) #15
  %2651 = load i32, ptr %2630, align 4, !tbaa !5
  %2652 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2642, ptr noundef nonnull %.str.61.sink1600, i32 noundef %2643, ptr noundef nonnull @.str.137, ptr noundef nonnull @.str.57, i32 noundef 231, ptr noundef %2646, ptr noundef %2648, ptr noundef %2650, i32 noundef %2651) #17
  call void @exit(i32 noundef 1) #18
  unreachable

2653:                                             ; preds = %2625
  %2654 = load i32, ptr @test_count, align 4, !tbaa !5
  %2655 = add nsw i32 %2654, 1
  store i32 %2655, ptr @test_count, align 4, !tbaa !5
  %2656 = call i32 @s2n_conn_get_current_message_type(ptr noundef nonnull %2031)
  %2657 = icmp eq i32 %2656, 1
  br i1 %2657, label %2682, label %2658

2658:                                             ; preds = %2653
  %2659 = tail call ptr @__errno_location() #16
  %2660 = load i32, ptr %2659, align 4, !tbaa !5
  %2661 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2662 = call i32 @s2n_print_stacktrace(ptr noundef %2661) #15
  %2663 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2664 = trunc nuw i8 %2663 to i1
  br i1 %2664, label %2665, label %2669

2665:                                             ; preds = %2658
  %2666 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2667 = call i32 @fileno(ptr noundef %2666) #15
  %2668 = call i32 @isatty(i32 noundef %2667) #15
  %.not478 = icmp eq i32 %2668, 0
  br i1 %.not478, label %2669, label %2670

2669:                                             ; preds = %2665, %2658
  br label %2670

2670:                                             ; preds = %2665, %2669
  %.str.61.sink1611 = phi ptr [ @.str.61, %2669 ], [ @.str.58, %2665 ]
  store i32 %2660, ptr %2659, align 4, !tbaa !5
  %2671 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2672 = load i32, ptr @test_count, align 4, !tbaa !5
  %2673 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2674 = load i32, ptr %2673, align 4, !tbaa !5
  %2675 = call ptr @s2n_strerror(i32 noundef %2674, ptr noundef nonnull @.str.60) #15
  %2676 = load i32, ptr %2673, align 4, !tbaa !5
  %2677 = call ptr @s2n_strerror_debug(i32 noundef %2676, ptr noundef nonnull @.str.60) #15
  %2678 = load i32, ptr %2659, align 4, !tbaa !5
  %2679 = call ptr @strerror(i32 noundef %2678) #15
  %2680 = load i32, ptr %2659, align 4, !tbaa !5
  %2681 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2671, ptr noundef nonnull %.str.61.sink1611, i32 noundef %2672, ptr noundef nonnull @.str.138, ptr noundef nonnull @.str.57, i32 noundef 234, ptr noundef %2675, ptr noundef %2677, ptr noundef %2679, i32 noundef %2680) #17
  call void @exit(i32 noundef 1) #18
  unreachable

2682:                                             ; preds = %2653
  %2683 = load i32, ptr @test_count, align 4, !tbaa !5
  %2684 = add nsw i32 %2683, 1
  store i32 %2684, ptr @test_count, align 4, !tbaa !5
  %2685 = call i32 @s2n_handshake_write_io(ptr noundef nonnull %2031)
  %2686 = icmp eq i32 %2685, -1
  br i1 %2686, label %2687, label %2711

2687:                                             ; preds = %2682
  %2688 = tail call ptr @__errno_location() #16
  %2689 = load i32, ptr %2688, align 4, !tbaa !5
  %2690 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2691 = call i32 @s2n_print_stacktrace(ptr noundef %2690) #15
  %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 = %2687
  %2695 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2696 = call i32 @fileno(ptr noundef %2695) #15
  %2697 = call i32 @isatty(i32 noundef %2696) #15
  %.not545 = icmp eq i32 %2697, 0
  br i1 %.not545, label %2698, label %2699

2698:                                             ; preds = %2694, %2687
  br label %2699

2699:                                             ; preds = %2694, %2698
  %.str.61.sink1622 = phi ptr [ @.str.61, %2698 ], [ @.str.58, %2694 ]
  store i32 %2689, ptr %2688, align 4, !tbaa !5
  %2700 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2701 = load i32, ptr @test_count, align 4, !tbaa !5
  %2702 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2703 = load i32, ptr %2702, align 4, !tbaa !5
  %2704 = call ptr @s2n_strerror(i32 noundef %2703, ptr noundef nonnull @.str.60) #15
  %2705 = load i32, ptr %2702, align 4, !tbaa !5
  %2706 = call ptr @s2n_strerror_debug(i32 noundef %2705, ptr noundef nonnull @.str.60) #15
  %2707 = load i32, ptr %2688, align 4, !tbaa !5
  %2708 = call ptr @strerror(i32 noundef %2707) #15
  %2709 = load i32, ptr %2688, align 4, !tbaa !5
  %2710 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2700, ptr noundef nonnull %.str.61.sink1622, i32 noundef %2701, ptr noundef nonnull @.str.139, ptr noundef nonnull @.str.57, i32 noundef 235, ptr noundef %2704, ptr noundef %2706, ptr noundef %2708, i32 noundef %2709) #17
  call void @exit(i32 noundef 1) #18
  unreachable

2711:                                             ; preds = %2682
  %2712 = load i32, ptr @test_count, align 4, !tbaa !5
  %2713 = add nsw i32 %2712, 1
  store i32 %2713, ptr @test_count, align 4, !tbaa !5
  %2714 = call i32 @s2n_conn_get_current_message_type(ptr noundef nonnull %2031)
  %2715 = icmp eq i32 %2714, 14
  br i1 %2715, label %2740, label %2716

2716:                                             ; preds = %2711
  %2717 = tail call ptr @__errno_location() #16
  %2718 = load i32, ptr %2717, align 4, !tbaa !5
  %2719 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2720 = call i32 @s2n_print_stacktrace(ptr noundef %2719) #15
  %2721 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2722 = trunc nuw i8 %2721 to i1
  br i1 %2722, label %2723, label %2727

2723:                                             ; preds = %2716
  %2724 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2725 = call i32 @fileno(ptr noundef %2724) #15
  %2726 = call i32 @isatty(i32 noundef %2725) #15
  %.not479 = icmp eq i32 %2726, 0
  br i1 %.not479, label %2727, label %2728

2727:                                             ; preds = %2723, %2716
  br label %2728

2728:                                             ; preds = %2723, %2727
  %.str.61.sink1633 = phi ptr [ @.str.61, %2727 ], [ @.str.58, %2723 ]
  store i32 %2718, ptr %2717, align 4, !tbaa !5
  %2729 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2730 = load i32, ptr @test_count, align 4, !tbaa !5
  %2731 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2732 = load i32, ptr %2731, align 4, !tbaa !5
  %2733 = call ptr @s2n_strerror(i32 noundef %2732, ptr noundef nonnull @.str.60) #15
  %2734 = load i32, ptr %2731, align 4, !tbaa !5
  %2735 = call ptr @s2n_strerror_debug(i32 noundef %2734, ptr noundef nonnull @.str.60) #15
  %2736 = load i32, ptr %2717, align 4, !tbaa !5
  %2737 = call ptr @strerror(i32 noundef %2736) #15
  %2738 = load i32, ptr %2717, align 4, !tbaa !5
  %2739 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2729, ptr noundef nonnull %.str.61.sink1633, i32 noundef %2730, ptr noundef nonnull @.str.140, ptr noundef nonnull @.str.57, i32 noundef 238, ptr noundef %2733, ptr noundef %2735, ptr noundef %2737, i32 noundef %2738) #17
  call void @exit(i32 noundef 1) #18
  unreachable

2740:                                             ; preds = %2711
  %2741 = load i32, ptr @test_count, align 4, !tbaa !5
  %2742 = add nsw i32 %2741, 1
  store i32 %2742, ptr @test_count, align 4, !tbaa !5
  %2743 = call i32 @s2n_handshake_write_io(ptr noundef nonnull %2031)
  %2744 = icmp eq i32 %2743, -1
  br i1 %2744, label %2745, label %2769

2745:                                             ; preds = %2740
  %2746 = tail call ptr @__errno_location() #16
  %2747 = load i32, ptr %2746, align 4, !tbaa !5
  %2748 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2749 = call i32 @s2n_print_stacktrace(ptr noundef %2748) #15
  %2750 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2751 = trunc nuw i8 %2750 to i1
  br i1 %2751, label %2752, label %2756

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

2756:                                             ; preds = %2752, %2745
  br label %2757

2757:                                             ; preds = %2752, %2756
  %.str.61.sink1644 = phi ptr [ @.str.61, %2756 ], [ @.str.58, %2752 ]
  store i32 %2747, ptr %2746, align 4, !tbaa !5
  %2758 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2759 = load i32, ptr @test_count, align 4, !tbaa !5
  %2760 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2761 = load i32, ptr %2760, align 4, !tbaa !5
  %2762 = call ptr @s2n_strerror(i32 noundef %2761, ptr noundef nonnull @.str.60) #15
  %2763 = load i32, ptr %2760, align 4, !tbaa !5
  %2764 = call ptr @s2n_strerror_debug(i32 noundef %2763, ptr noundef nonnull @.str.60) #15
  %2765 = load i32, ptr %2746, align 4, !tbaa !5
  %2766 = call ptr @strerror(i32 noundef %2765) #15
  %2767 = load i32, ptr %2746, align 4, !tbaa !5
  %2768 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2758, ptr noundef nonnull %.str.61.sink1644, i32 noundef %2759, ptr noundef nonnull @.str.139, ptr noundef nonnull @.str.57, i32 noundef 239, ptr noundef %2762, ptr noundef %2764, ptr noundef %2766, i32 noundef %2767) #17
  call void @exit(i32 noundef 1) #18
  unreachable

2769:                                             ; preds = %2740
  %2770 = load i32, ptr @test_count, align 4, !tbaa !5
  %2771 = add nsw i32 %2770, 1
  store i32 %2771, ptr @test_count, align 4, !tbaa !5
  %2772 = getelementptr inbounds i8, ptr %21, i64 8
  %2773 = load i32, ptr %2772, align 8, !tbaa !75
  %2774 = icmp eq i32 %2773, 8
  br i1 %2774, label %2799, label %2775

2775:                                             ; preds = %2769
  %2776 = tail call ptr @__errno_location() #16
  %2777 = load i32, ptr %2776, align 4, !tbaa !5
  %2778 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2779 = call i32 @s2n_print_stacktrace(ptr noundef %2778) #15
  %2780 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2781 = trunc nuw i8 %2780 to i1
  br i1 %2781, label %2782, label %2786

2782:                                             ; preds = %2775
  %2783 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2784 = call i32 @fileno(ptr noundef %2783) #15
  %2785 = call i32 @isatty(i32 noundef %2784) #15
  %.not480 = icmp eq i32 %2785, 0
  br i1 %.not480, label %2786, label %2787

2786:                                             ; preds = %2782, %2775
  br label %2787

2787:                                             ; preds = %2782, %2786
  %.str.61.sink1655 = phi ptr [ @.str.61, %2786 ], [ @.str.58, %2782 ]
  store i32 %2777, ptr %2776, align 4, !tbaa !5
  %2788 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2789 = load i32, ptr @test_count, align 4, !tbaa !5
  %2790 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2791 = load i32, ptr %2790, align 4, !tbaa !5
  %2792 = call ptr @s2n_strerror(i32 noundef %2791, ptr noundef nonnull @.str.60) #15
  %2793 = load i32, ptr %2790, align 4, !tbaa !5
  %2794 = call ptr @s2n_strerror_debug(i32 noundef %2793, ptr noundef nonnull @.str.60) #15
  %2795 = load i32, ptr %2776, align 4, !tbaa !5
  %2796 = call ptr @strerror(i32 noundef %2795) #15
  %2797 = load i32, ptr %2776, align 4, !tbaa !5
  %2798 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2788, ptr noundef nonnull %.str.61.sink1655, i32 noundef %2789, ptr noundef nonnull @.str.141, ptr noundef nonnull @.str.57, i32 noundef 240, ptr noundef %2792, ptr noundef %2794, ptr noundef %2796, i32 noundef %2797) #17
  call void @exit(i32 noundef 1) #18
  unreachable

2799:                                             ; preds = %2769
  %2800 = add nsw i32 %2770, 2
  store i32 %2800, ptr @test_count, align 4, !tbaa !5
  %2801 = load ptr, ptr %21, align 8, !tbaa !76
  %bcmp = call i32 @bcmp(ptr noundef nonnull dereferenceable(8) %2234, ptr noundef nonnull dereferenceable(8) %2801, i64 8)
  %2802 = icmp eq i32 %bcmp, 0
  br i1 %2802, label %2827, label %2803

2803:                                             ; preds = %2799
  %2804 = tail call ptr @__errno_location() #16
  %2805 = load i32, ptr %2804, align 4, !tbaa !5
  %2806 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2807 = call i32 @s2n_print_stacktrace(ptr noundef %2806) #15
  %2808 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2809 = trunc nuw i8 %2808 to i1
  br i1 %2809, label %2810, label %2814

2810:                                             ; preds = %2803
  %2811 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2812 = call i32 @fileno(ptr noundef %2811) #15
  %2813 = call i32 @isatty(i32 noundef %2812) #15
  %.not481 = icmp eq i32 %2813, 0
  br i1 %.not481, label %2814, label %2815

2814:                                             ; preds = %2810, %2803
  br label %2815

2815:                                             ; preds = %2810, %2814
  %.str.61.sink1666 = phi ptr [ @.str.61, %2814 ], [ @.str.58, %2810 ]
  store i32 %2805, ptr %2804, align 4, !tbaa !5
  %2816 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2817 = load i32, ptr @test_count, align 4, !tbaa !5
  %2818 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2819 = load i32, ptr %2818, align 4, !tbaa !5
  %2820 = call ptr @s2n_strerror(i32 noundef %2819, ptr noundef nonnull @.str.60) #15
  %2821 = load i32, ptr %2818, align 4, !tbaa !5
  %2822 = call ptr @s2n_strerror_debug(i32 noundef %2821, ptr noundef nonnull @.str.60) #15
  %2823 = load i32, ptr %2804, align 4, !tbaa !5
  %2824 = call ptr @strerror(i32 noundef %2823) #15
  %2825 = load i32, ptr %2804, align 4, !tbaa !5
  %2826 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2816, ptr noundef nonnull %.str.61.sink1666, i32 noundef %2817, ptr noundef nonnull @.str.142, ptr noundef nonnull @.str.57, i32 noundef 240, ptr noundef %2820, ptr noundef %2822, ptr noundef %2824, i32 noundef %2825) #17
  call void @exit(i32 noundef 1) #18
  unreachable

2827:                                             ; preds = %2799
  %2828 = add nsw i32 %2770, 3
  store i32 %2828, ptr @test_count, align 4, !tbaa !5
  %2829 = call i32 @s2n_conn_get_current_message_type(ptr noundef nonnull %2031)
  %2830 = icmp eq i32 %2829, 16
  br i1 %2830, label %2855, label %2831

2831:                                             ; preds = %2827
  %2832 = tail call ptr @__errno_location() #16
  %2833 = load i32, ptr %2832, align 4, !tbaa !5
  %2834 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2835 = call i32 @s2n_print_stacktrace(ptr noundef %2834) #15
  %2836 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2837 = trunc nuw i8 %2836 to i1
  br i1 %2837, label %2838, label %2842

2838:                                             ; preds = %2831
  %2839 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2840 = call i32 @fileno(ptr noundef %2839) #15
  %2841 = call i32 @isatty(i32 noundef %2840) #15
  %.not482 = icmp eq i32 %2841, 0
  br i1 %.not482, label %2842, label %2843

2842:                                             ; preds = %2838, %2831
  br label %2843

2843:                                             ; preds = %2838, %2842
  %.str.61.sink1677 = phi ptr [ @.str.61, %2842 ], [ @.str.58, %2838 ]
  store i32 %2833, ptr %2832, align 4, !tbaa !5
  %2844 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2845 = load i32, ptr @test_count, align 4, !tbaa !5
  %2846 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2847 = load i32, ptr %2846, align 4, !tbaa !5
  %2848 = call ptr @s2n_strerror(i32 noundef %2847, ptr noundef nonnull @.str.60) #15
  %2849 = load i32, ptr %2846, align 4, !tbaa !5
  %2850 = call ptr @s2n_strerror_debug(i32 noundef %2849, ptr noundef nonnull @.str.60) #15
  %2851 = load i32, ptr %2832, align 4, !tbaa !5
  %2852 = call ptr @strerror(i32 noundef %2851) #15
  %2853 = load i32, ptr %2832, align 4, !tbaa !5
  %2854 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2844, ptr noundef nonnull %.str.61.sink1677, i32 noundef %2845, ptr noundef nonnull @.str.143, ptr noundef nonnull @.str.57, i32 noundef 243, ptr noundef %2848, ptr noundef %2850, ptr noundef %2852, i32 noundef %2853) #17
  call void @exit(i32 noundef 1) #18
  unreachable

2855:                                             ; preds = %2827
  %2856 = load i32, ptr @test_count, align 4, !tbaa !5
  %2857 = add nsw i32 %2856, 1
  store i32 %2857, ptr @test_count, align 4, !tbaa !5
  %2858 = call i32 @s2n_handshake_write_io(ptr noundef nonnull %2031)
  %2859 = icmp eq i32 %2858, -1
  br i1 %2859, label %2860, label %2884

2860:                                             ; preds = %2855
  %2861 = tail call ptr @__errno_location() #16
  %2862 = load i32, ptr %2861, align 4, !tbaa !5
  %2863 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2864 = call i32 @s2n_print_stacktrace(ptr noundef %2863) #15
  %2865 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2866 = trunc nuw i8 %2865 to i1
  br i1 %2866, label %2867, label %2871

2867:                                             ; preds = %2860
  %2868 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2869 = call i32 @fileno(ptr noundef %2868) #15
  %2870 = call i32 @isatty(i32 noundef %2869) #15
  %.not543 = icmp eq i32 %2870, 0
  br i1 %.not543, label %2871, label %2872

2871:                                             ; preds = %2867, %2860
  br label %2872

2872:                                             ; preds = %2867, %2871
  %.str.61.sink1688 = phi ptr [ @.str.61, %2871 ], [ @.str.58, %2867 ]
  store i32 %2862, ptr %2861, align 4, !tbaa !5
  %2873 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2874 = load i32, ptr @test_count, align 4, !tbaa !5
  %2875 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2876 = load i32, ptr %2875, align 4, !tbaa !5
  %2877 = call ptr @s2n_strerror(i32 noundef %2876, ptr noundef nonnull @.str.60) #15
  %2878 = load i32, ptr %2875, align 4, !tbaa !5
  %2879 = call ptr @s2n_strerror_debug(i32 noundef %2878, ptr noundef nonnull @.str.60) #15
  %2880 = load i32, ptr %2861, align 4, !tbaa !5
  %2881 = call ptr @strerror(i32 noundef %2880) #15
  %2882 = load i32, ptr %2861, align 4, !tbaa !5
  %2883 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2873, ptr noundef nonnull %.str.61.sink1688, i32 noundef %2874, ptr noundef nonnull @.str.139, ptr noundef nonnull @.str.57, i32 noundef 244, ptr noundef %2877, ptr noundef %2879, ptr noundef %2881, i32 noundef %2882) #17
  call void @exit(i32 noundef 1) #18
  unreachable

2884:                                             ; preds = %2855
  %2885 = load i32, ptr @test_count, align 4, !tbaa !5
  %2886 = add nsw i32 %2885, 1
  store i32 %2886, ptr @test_count, align 4, !tbaa !5
  %2887 = getelementptr inbounds i8, ptr %22, i64 8
  %2888 = load i32, ptr %2887, align 8, !tbaa !75
  %2889 = icmp eq i32 %2888, 8
  br i1 %2889, label %2914, label %2890

2890:                                             ; preds = %2884
  %2891 = tail call ptr @__errno_location() #16
  %2892 = load i32, ptr %2891, align 4, !tbaa !5
  %2893 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2894 = call i32 @s2n_print_stacktrace(ptr noundef %2893) #15
  %2895 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2896 = trunc nuw i8 %2895 to i1
  br i1 %2896, label %2897, label %2901

2897:                                             ; preds = %2890
  %2898 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2899 = call i32 @fileno(ptr noundef %2898) #15
  %2900 = call i32 @isatty(i32 noundef %2899) #15
  %.not483 = icmp eq i32 %2900, 0
  br i1 %.not483, label %2901, label %2902

2901:                                             ; preds = %2897, %2890
  br label %2902

2902:                                             ; preds = %2897, %2901
  %.str.61.sink1699 = phi ptr [ @.str.61, %2901 ], [ @.str.58, %2897 ]
  store i32 %2892, ptr %2891, align 4, !tbaa !5
  %2903 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2904 = load i32, ptr @test_count, align 4, !tbaa !5
  %2905 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2906 = load i32, ptr %2905, align 4, !tbaa !5
  %2907 = call ptr @s2n_strerror(i32 noundef %2906, ptr noundef nonnull @.str.60) #15
  %2908 = load i32, ptr %2905, align 4, !tbaa !5
  %2909 = call ptr @s2n_strerror_debug(i32 noundef %2908, ptr noundef nonnull @.str.60) #15
  %2910 = load i32, ptr %2891, align 4, !tbaa !5
  %2911 = call ptr @strerror(i32 noundef %2910) #15
  %2912 = load i32, ptr %2891, align 4, !tbaa !5
  %2913 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2903, ptr noundef nonnull %.str.61.sink1699, i32 noundef %2904, ptr noundef nonnull @.str.144, ptr noundef nonnull @.str.57, i32 noundef 245, ptr noundef %2907, ptr noundef %2909, ptr noundef %2911, i32 noundef %2912) #17
  call void @exit(i32 noundef 1) #18
  unreachable

2914:                                             ; preds = %2884
  %2915 = add nsw i32 %2885, 2
  store i32 %2915, ptr @test_count, align 4, !tbaa !5
  %2916 = load ptr, ptr %22, align 8, !tbaa !76
  %bcmp484 = call i32 @bcmp(ptr noundef nonnull dereferenceable(8) %2234, ptr noundef nonnull dereferenceable(8) %2916, i64 8)
  %2917 = icmp eq i32 %bcmp484, 0
  br i1 %2917, label %2942, label %2918

2918:                                             ; preds = %2914
  %2919 = tail call ptr @__errno_location() #16
  %2920 = load i32, ptr %2919, align 4, !tbaa !5
  %2921 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2922 = call i32 @s2n_print_stacktrace(ptr noundef %2921) #15
  %2923 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2924 = trunc nuw i8 %2923 to i1
  br i1 %2924, label %2925, label %2929

2925:                                             ; preds = %2918
  %2926 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2927 = call i32 @fileno(ptr noundef %2926) #15
  %2928 = call i32 @isatty(i32 noundef %2927) #15
  %.not485 = icmp eq i32 %2928, 0
  br i1 %.not485, label %2929, label %2930

2929:                                             ; preds = %2925, %2918
  br label %2930

2930:                                             ; preds = %2925, %2929
  %.str.61.sink1710 = phi ptr [ @.str.61, %2929 ], [ @.str.58, %2925 ]
  store i32 %2920, ptr %2919, align 4, !tbaa !5
  %2931 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2932 = load i32, ptr @test_count, align 4, !tbaa !5
  %2933 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2934 = load i32, ptr %2933, align 4, !tbaa !5
  %2935 = call ptr @s2n_strerror(i32 noundef %2934, ptr noundef nonnull @.str.60) #15
  %2936 = load i32, ptr %2933, align 4, !tbaa !5
  %2937 = call ptr @s2n_strerror_debug(i32 noundef %2936, ptr noundef nonnull @.str.60) #15
  %2938 = load i32, ptr %2919, align 4, !tbaa !5
  %2939 = call ptr @strerror(i32 noundef %2938) #15
  %2940 = load i32, ptr %2919, align 4, !tbaa !5
  %2941 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2931, ptr noundef nonnull %.str.61.sink1710, i32 noundef %2932, ptr noundef nonnull @.str.145, ptr noundef nonnull @.str.57, i32 noundef 245, ptr noundef %2935, ptr noundef %2937, ptr noundef %2939, i32 noundef %2940) #17
  call void @exit(i32 noundef 1) #18
  unreachable

2942:                                             ; preds = %2914
  %2943 = add nsw i32 %2885, 3
  store i32 %2943, ptr @test_count, align 4, !tbaa !5
  %2944 = call i32 @s2n_conn_get_current_message_type(ptr noundef nonnull %2031)
  %2945 = icmp eq i32 %2944, 2
  br i1 %2945, label %2970, label %2946

2946:                                             ; preds = %2942
  %2947 = tail call ptr @__errno_location() #16
  %2948 = load i32, ptr %2947, align 4, !tbaa !5
  %2949 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2950 = call i32 @s2n_print_stacktrace(ptr noundef %2949) #15
  %2951 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2952 = trunc nuw i8 %2951 to i1
  br i1 %2952, label %2953, label %2957

2953:                                             ; preds = %2946
  %2954 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2955 = call i32 @fileno(ptr noundef %2954) #15
  %2956 = call i32 @isatty(i32 noundef %2955) #15
  %.not486 = icmp eq i32 %2956, 0
  br i1 %.not486, label %2957, label %2958

2957:                                             ; preds = %2953, %2946
  br label %2958

2958:                                             ; preds = %2953, %2957
  %.str.61.sink1721 = phi ptr [ @.str.61, %2957 ], [ @.str.58, %2953 ]
  store i32 %2948, ptr %2947, align 4, !tbaa !5
  %2959 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2960 = load i32, ptr @test_count, align 4, !tbaa !5
  %2961 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2962 = load i32, ptr %2961, align 4, !tbaa !5
  %2963 = call ptr @s2n_strerror(i32 noundef %2962, ptr noundef nonnull @.str.60) #15
  %2964 = load i32, ptr %2961, align 4, !tbaa !5
  %2965 = call ptr @s2n_strerror_debug(i32 noundef %2964, ptr noundef nonnull @.str.60) #15
  %2966 = load i32, ptr %2947, align 4, !tbaa !5
  %2967 = call ptr @strerror(i32 noundef %2966) #15
  %2968 = load i32, ptr %2947, align 4, !tbaa !5
  %2969 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2959, ptr noundef nonnull %.str.61.sink1721, i32 noundef %2960, ptr noundef nonnull @.str.146, ptr noundef nonnull @.str.57, i32 noundef 248, ptr noundef %2963, ptr noundef %2965, ptr noundef %2967, i32 noundef %2968) #17
  call void @exit(i32 noundef 1) #18
  unreachable

2970:                                             ; preds = %2942
  %2971 = load i32, ptr @test_count, align 4, !tbaa !5
  %2972 = add nsw i32 %2971, 1
  store i32 %2972, ptr @test_count, align 4, !tbaa !5
  %2973 = call i32 @s2n_handshake_write_io(ptr noundef nonnull %2031)
  %2974 = icmp eq i32 %2973, -1
  br i1 %2974, label %2975, label %2999

2975:                                             ; preds = %2970
  %2976 = tail call ptr @__errno_location() #16
  %2977 = load i32, ptr %2976, align 4, !tbaa !5
  %2978 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2979 = call i32 @s2n_print_stacktrace(ptr noundef %2978) #15
  %2980 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2981 = trunc nuw i8 %2980 to i1
  br i1 %2981, label %2982, label %2986

2982:                                             ; preds = %2975
  %2983 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2984 = call i32 @fileno(ptr noundef %2983) #15
  %2985 = call i32 @isatty(i32 noundef %2984) #15
  %.not542 = icmp eq i32 %2985, 0
  br i1 %.not542, label %2986, label %2987

2986:                                             ; preds = %2982, %2975
  br label %2987

2987:                                             ; preds = %2982, %2986
  %.str.61.sink1732 = phi ptr [ @.str.61, %2986 ], [ @.str.58, %2982 ]
  store i32 %2977, ptr %2976, align 4, !tbaa !5
  %2988 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2989 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %2991, ptr noundef nonnull @.str.60) #15
  %2993 = load i32, ptr %2990, align 4, !tbaa !5
  %2994 = call ptr @s2n_strerror_debug(i32 noundef %2993, ptr noundef nonnull @.str.60) #15
  %2995 = load i32, ptr %2976, align 4, !tbaa !5
  %2996 = call ptr @strerror(i32 noundef %2995) #15
  %2997 = load i32, ptr %2976, align 4, !tbaa !5
  %2998 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2988, ptr noundef nonnull %.str.61.sink1732, i32 noundef %2989, ptr noundef nonnull @.str.139, ptr noundef nonnull @.str.57, i32 noundef 249, ptr noundef %2992, ptr noundef %2994, ptr noundef %2996, i32 noundef %2997) #17
  call void @exit(i32 noundef 1) #18
  unreachable

2999:                                             ; preds = %2970
  %3000 = load i32, ptr @test_count, align 4, !tbaa !5
  %3001 = add nsw i32 %3000, 1
  store i32 %3001, ptr @test_count, align 4, !tbaa !5
  %3002 = call i32 @s2n_conn_get_current_message_type(ptr noundef nonnull %2031)
  %3003 = icmp eq i32 %3002, 17
  br i1 %3003, label %3028, label %3004

3004:                                             ; preds = %2999
  %3005 = tail call ptr @__errno_location() #16
  %3006 = load i32, ptr %3005, align 4, !tbaa !5
  %3007 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3008 = call i32 @s2n_print_stacktrace(ptr noundef %3007) #15
  %3009 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3010 = trunc nuw i8 %3009 to i1
  br i1 %3010, label %3011, label %3015

3011:                                             ; preds = %3004
  %3012 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3013 = call i32 @fileno(ptr noundef %3012) #15
  %3014 = call i32 @isatty(i32 noundef %3013) #15
  %.not487 = icmp eq i32 %3014, 0
  br i1 %.not487, label %3015, label %3016

3015:                                             ; preds = %3011, %3004
  br label %3016

3016:                                             ; preds = %3011, %3015
  %.str.61.sink1743 = phi ptr [ @.str.61, %3015 ], [ @.str.58, %3011 ]
  store i32 %3006, ptr %3005, align 4, !tbaa !5
  %3017 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3018 = load i32, ptr @test_count, align 4, !tbaa !5
  %3019 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3020 = load i32, ptr %3019, align 4, !tbaa !5
  %3021 = call ptr @s2n_strerror(i32 noundef %3020, ptr noundef nonnull @.str.60) #15
  %3022 = load i32, ptr %3019, align 4, !tbaa !5
  %3023 = call ptr @s2n_strerror_debug(i32 noundef %3022, ptr noundef nonnull @.str.60) #15
  %3024 = load i32, ptr %3005, align 4, !tbaa !5
  %3025 = call ptr @strerror(i32 noundef %3024) #15
  %3026 = load i32, ptr %3005, align 4, !tbaa !5
  %3027 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3017, ptr noundef nonnull %.str.61.sink1743, i32 noundef %3018, ptr noundef nonnull @.str.147, ptr noundef nonnull @.str.57, i32 noundef 252, ptr noundef %3021, ptr noundef %3023, ptr noundef %3025, i32 noundef %3026) #17
  call void @exit(i32 noundef 1) #18
  unreachable

3028:                                             ; preds = %2999
  %3029 = load i32, ptr @test_count, align 4, !tbaa !5
  %3030 = add nsw i32 %3029, 1
  store i32 %3030, ptr @test_count, align 4, !tbaa !5
  %3031 = call i32 @s2n_handshake_write_io(ptr noundef nonnull %2031)
  %3032 = icmp eq i32 %3031, -1
  br i1 %3032, label %3033, label %3057

3033:                                             ; preds = %3028
  %3034 = tail call ptr @__errno_location() #16
  %3035 = load i32, ptr %3034, align 4, !tbaa !5
  %3036 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3037 = call i32 @s2n_print_stacktrace(ptr noundef %3036) #15
  %3038 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3039 = trunc nuw i8 %3038 to i1
  br i1 %3039, label %3040, label %3044

3040:                                             ; preds = %3033
  %3041 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3042 = call i32 @fileno(ptr noundef %3041) #15
  %3043 = call i32 @isatty(i32 noundef %3042) #15
  %.not541 = icmp eq i32 %3043, 0
  br i1 %.not541, label %3044, label %3045

3044:                                             ; preds = %3040, %3033
  br label %3045

3045:                                             ; preds = %3040, %3044
  %.str.61.sink1754 = phi ptr [ @.str.61, %3044 ], [ @.str.58, %3040 ]
  store i32 %3035, ptr %3034, align 4, !tbaa !5
  %3046 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3047 = load i32, ptr @test_count, align 4, !tbaa !5
  %3048 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3049 = load i32, ptr %3048, align 4, !tbaa !5
  %3050 = call ptr @s2n_strerror(i32 noundef %3049, ptr noundef nonnull @.str.60) #15
  %3051 = load i32, ptr %3048, align 4, !tbaa !5
  %3052 = call ptr @s2n_strerror_debug(i32 noundef %3051, ptr noundef nonnull @.str.60) #15
  %3053 = load i32, ptr %3034, align 4, !tbaa !5
  %3054 = call ptr @strerror(i32 noundef %3053) #15
  %3055 = load i32, ptr %3034, align 4, !tbaa !5
  %3056 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3046, ptr noundef nonnull %.str.61.sink1754, i32 noundef %3047, ptr noundef nonnull @.str.139, ptr noundef nonnull @.str.57, i32 noundef 253, ptr noundef %3050, ptr noundef %3052, ptr noundef %3054, i32 noundef %3055) #17
  call void @exit(i32 noundef 1) #18
  unreachable

3057:                                             ; preds = %3028
  %3058 = load i32, ptr @test_count, align 4, !tbaa !5
  %3059 = add nsw i32 %3058, 1
  store i32 %3059, ptr @test_count, align 4, !tbaa !5
  %3060 = call i32 @s2n_conn_get_current_message_type(ptr noundef nonnull %2002)
  %3061 = icmp eq i32 %3060, 1
  br i1 %3061, label %3086, label %3062

3062:                                             ; preds = %3057
  %3063 = tail call ptr @__errno_location() #16
  %3064 = load i32, ptr %3063, align 4, !tbaa !5
  %3065 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3066 = call i32 @s2n_print_stacktrace(ptr noundef %3065) #15
  %3067 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3068 = trunc nuw i8 %3067 to i1
  br i1 %3068, label %3069, label %3073

3069:                                             ; preds = %3062
  %3070 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3071 = call i32 @fileno(ptr noundef %3070) #15
  %3072 = call i32 @isatty(i32 noundef %3071) #15
  %.not488 = icmp eq i32 %3072, 0
  br i1 %.not488, label %3073, label %3074

3073:                                             ; preds = %3069, %3062
  br label %3074

3074:                                             ; preds = %3069, %3073
  %.str.61.sink1765 = phi ptr [ @.str.61, %3073 ], [ @.str.58, %3069 ]
  store i32 %3064, ptr %3063, align 4, !tbaa !5
  %3075 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3076 = load i32, ptr @test_count, align 4, !tbaa !5
  %3077 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3078 = load i32, ptr %3077, align 4, !tbaa !5
  %3079 = call ptr @s2n_strerror(i32 noundef %3078, ptr noundef nonnull @.str.60) #15
  %3080 = load i32, ptr %3077, align 4, !tbaa !5
  %3081 = call ptr @s2n_strerror_debug(i32 noundef %3080, ptr noundef nonnull @.str.60) #15
  %3082 = load i32, ptr %3063, align 4, !tbaa !5
  %3083 = call ptr @strerror(i32 noundef %3082) #15
  %3084 = load i32, ptr %3063, align 4, !tbaa !5
  %3085 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3075, ptr noundef nonnull %.str.61.sink1765, i32 noundef %3076, ptr noundef nonnull @.str.148, ptr noundef nonnull @.str.57, i32 noundef 256, ptr noundef %3079, ptr noundef %3081, ptr noundef %3083, i32 noundef %3084) #17
  call void @exit(i32 noundef 1) #18
  unreachable

3086:                                             ; preds = %3057
  %3087 = load i32, ptr @test_count, align 4, !tbaa !5
  %3088 = add nsw i32 %3087, 1
  store i32 %3088, ptr @test_count, align 4, !tbaa !5
  %3089 = call i32 @s2n_handshake_read_io(ptr noundef nonnull %2002)
  %3090 = icmp eq i32 %3089, -1
  br i1 %3090, label %3091, label %3115

3091:                                             ; preds = %3086
  %3092 = tail call ptr @__errno_location() #16
  %3093 = load i32, ptr %3092, align 4, !tbaa !5
  %3094 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3095 = call i32 @s2n_print_stacktrace(ptr noundef %3094) #15
  %3096 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3097 = trunc nuw i8 %3096 to i1
  br i1 %3097, label %3098, label %3102

3098:                                             ; preds = %3091
  %3099 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3100 = call i32 @fileno(ptr noundef %3099) #15
  %3101 = call i32 @isatty(i32 noundef %3100) #15
  %.not540 = icmp eq i32 %3101, 0
  br i1 %.not540, label %3102, label %3103

3102:                                             ; preds = %3098, %3091
  br label %3103

3103:                                             ; preds = %3098, %3102
  %.str.61.sink1776 = phi ptr [ @.str.61, %3102 ], [ @.str.58, %3098 ]
  store i32 %3093, ptr %3092, align 4, !tbaa !5
  %3104 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3105 = load i32, ptr @test_count, align 4, !tbaa !5
  %3106 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3107 = load i32, ptr %3106, align 4, !tbaa !5
  %3108 = call ptr @s2n_strerror(i32 noundef %3107, ptr noundef nonnull @.str.60) #15
  %3109 = load i32, ptr %3106, align 4, !tbaa !5
  %3110 = call ptr @s2n_strerror_debug(i32 noundef %3109, ptr noundef nonnull @.str.60) #15
  %3111 = load i32, ptr %3092, align 4, !tbaa !5
  %3112 = call ptr @strerror(i32 noundef %3111) #15
  %3113 = load i32, ptr %3092, align 4, !tbaa !5
  %3114 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3104, ptr noundef nonnull %.str.61.sink1776, i32 noundef %3105, ptr noundef nonnull @.str.149, ptr noundef nonnull @.str.57, i32 noundef 257, ptr noundef %3108, ptr noundef %3110, ptr noundef %3112, i32 noundef %3113) #17
  call void @exit(i32 noundef 1) #18
  unreachable

3115:                                             ; preds = %3086
  %3116 = load i32, ptr @test_count, align 4, !tbaa !5
  %3117 = add nsw i32 %3116, 1
  store i32 %3117, ptr @test_count, align 4, !tbaa !5
  %3118 = call i32 @s2n_conn_get_current_message_type(ptr noundef nonnull %2002)
  %3119 = icmp eq i32 %3118, 16
  br i1 %3119, label %3144, label %3120

3120:                                             ; preds = %3115
  %3121 = tail call ptr @__errno_location() #16
  %3122 = load i32, ptr %3121, align 4, !tbaa !5
  %3123 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3124 = call i32 @s2n_print_stacktrace(ptr noundef %3123) #15
  %3125 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3126 = trunc nuw i8 %3125 to i1
  br i1 %3126, label %3127, label %3131

3127:                                             ; preds = %3120
  %3128 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3129 = call i32 @fileno(ptr noundef %3128) #15
  %3130 = call i32 @isatty(i32 noundef %3129) #15
  %.not489 = icmp eq i32 %3130, 0
  br i1 %.not489, label %3131, label %3132

3131:                                             ; preds = %3127, %3120
  br label %3132

3132:                                             ; preds = %3127, %3131
  %.str.61.sink1787 = phi ptr [ @.str.61, %3131 ], [ @.str.58, %3127 ]
  store i32 %3122, ptr %3121, align 4, !tbaa !5
  %3133 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3134 = load i32, ptr @test_count, align 4, !tbaa !5
  %3135 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3136 = load i32, ptr %3135, align 4, !tbaa !5
  %3137 = call ptr @s2n_strerror(i32 noundef %3136, ptr noundef nonnull @.str.60) #15
  %3138 = load i32, ptr %3135, align 4, !tbaa !5
  %3139 = call ptr @s2n_strerror_debug(i32 noundef %3138, ptr noundef nonnull @.str.60) #15
  %3140 = load i32, ptr %3121, align 4, !tbaa !5
  %3141 = call ptr @strerror(i32 noundef %3140) #15
  %3142 = load i32, ptr %3121, align 4, !tbaa !5
  %3143 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3133, ptr noundef nonnull %.str.61.sink1787, i32 noundef %3134, ptr noundef nonnull @.str.150, ptr noundef nonnull @.str.57, i32 noundef 261, ptr noundef %3137, ptr noundef %3139, ptr noundef %3141, i32 noundef %3142) #17
  call void @exit(i32 noundef 1) #18
  unreachable

3144:                                             ; preds = %3115
  %3145 = load i32, ptr @test_count, align 4, !tbaa !5
  %3146 = add nsw i32 %3145, 1
  store i32 %3146, ptr @test_count, align 4, !tbaa !5
  %3147 = call i32 @s2n_handshake_read_io(ptr noundef nonnull %2002)
  %3148 = icmp eq i32 %3147, -1
  br i1 %3148, label %3149, label %3173

3149:                                             ; preds = %3144
  %3150 = tail call ptr @__errno_location() #16
  %3151 = load i32, ptr %3150, align 4, !tbaa !5
  %3152 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3153 = call i32 @s2n_print_stacktrace(ptr noundef %3152) #15
  %3154 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3155 = trunc nuw i8 %3154 to i1
  br i1 %3155, label %3156, label %3160

3156:                                             ; preds = %3149
  %3157 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3158 = call i32 @fileno(ptr noundef %3157) #15
  %3159 = call i32 @isatty(i32 noundef %3158) #15
  %.not539 = icmp eq i32 %3159, 0
  br i1 %.not539, label %3160, label %3161

3160:                                             ; preds = %3156, %3149
  br label %3161

3161:                                             ; preds = %3156, %3160
  %.str.61.sink1798 = phi ptr [ @.str.61, %3160 ], [ @.str.58, %3156 ]
  store i32 %3151, ptr %3150, align 4, !tbaa !5
  %3162 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3163 = load i32, ptr @test_count, align 4, !tbaa !5
  %3164 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3165 = load i32, ptr %3164, align 4, !tbaa !5
  %3166 = call ptr @s2n_strerror(i32 noundef %3165, ptr noundef nonnull @.str.60) #15
  %3167 = load i32, ptr %3164, align 4, !tbaa !5
  %3168 = call ptr @s2n_strerror_debug(i32 noundef %3167, ptr noundef nonnull @.str.60) #15
  %3169 = load i32, ptr %3150, align 4, !tbaa !5
  %3170 = call ptr @strerror(i32 noundef %3169) #15
  %3171 = load i32, ptr %3150, align 4, !tbaa !5
  %3172 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3162, ptr noundef nonnull %.str.61.sink1798, i32 noundef %3163, ptr noundef nonnull @.str.149, ptr noundef nonnull @.str.57, i32 noundef 262, ptr noundef %3166, ptr noundef %3168, ptr noundef %3170, i32 noundef %3171) #17
  call void @exit(i32 noundef 1) #18
  unreachable

3173:                                             ; preds = %3144
  call void @llvm.lifetime.start.p0(i64 592, ptr nonnull %25) #15
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(592) %25, i8 0, i64 592, i1 false)
  %3174 = call i32 @s2n_tls13_keys_from_conn(ptr noundef nonnull %25, ptr noundef nonnull %2002)
  %3175 = icmp sgt i32 %3174, -1
  br i1 %3175, label %3176, label %4241

3176:                                             ; preds = %3173
  %3177 = load i32, ptr @test_count, align 4, !tbaa !5
  %3178 = add nsw i32 %3177, 1
  store i32 %3178, ptr @test_count, align 4, !tbaa !5
  %3179 = getelementptr inbounds i8, ptr %25, i64 8
  %3180 = load i8, ptr %3179, align 8, !tbaa !72
  %3181 = icmp eq i8 %3180, 32
  br i1 %3181, label %3206, label %3182

3182:                                             ; preds = %3176
  %3183 = tail call ptr @__errno_location() #16
  %3184 = load i32, ptr %3183, align 4, !tbaa !5
  %3185 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3186 = call i32 @s2n_print_stacktrace(ptr noundef %3185) #15
  %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 = %3182
  %3190 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3191 = call i32 @fileno(ptr noundef %3190) #15
  %3192 = call i32 @isatty(i32 noundef %3191) #15
  %.not490 = icmp eq i32 %3192, 0
  br i1 %.not490, label %3193, label %3194

3193:                                             ; preds = %3189, %3182
  br label %3194

3194:                                             ; preds = %3189, %3193
  %.str.61.sink1809 = phi ptr [ @.str.61, %3193 ], [ @.str.58, %3189 ]
  store i32 %3184, ptr %3183, align 4, !tbaa !5
  %3195 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3196 = load i32, ptr @test_count, align 4, !tbaa !5
  %3197 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3198 = load i32, ptr %3197, align 4, !tbaa !5
  %3199 = call ptr @s2n_strerror(i32 noundef %3198, ptr noundef nonnull @.str.60) #15
  %3200 = load i32, ptr %3197, align 4, !tbaa !5
  %3201 = call ptr @s2n_strerror_debug(i32 noundef %3200, ptr noundef nonnull @.str.60) #15
  %3202 = load i32, ptr %3183, align 4, !tbaa !5
  %3203 = call ptr @strerror(i32 noundef %3202) #15
  %3204 = load i32, ptr %3183, align 4, !tbaa !5
  %3205 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3195, ptr noundef nonnull %.str.61.sink1809, i32 noundef %3196, ptr noundef nonnull @.str.151, ptr noundef nonnull @.str.57, i32 noundef 265, ptr noundef %3199, ptr noundef %3201, ptr noundef %3203, i32 noundef %3204) #17
  call void @exit(i32 noundef 1) #18
  unreachable

3206:                                             ; preds = %3176
  %3207 = add nsw i32 %3177, 2
  store i32 %3207, ptr @test_count, align 4, !tbaa !5
  %3208 = getelementptr inbounds i8, ptr %24, i64 40
  %3209 = getelementptr inbounds i8, ptr %24, i64 48
  %3210 = load i32, ptr %3209, align 8, !tbaa !77
  %3211 = getelementptr inbounds i8, ptr %25, i64 40
  %3212 = getelementptr inbounds i8, ptr %25, i64 48
  %3213 = load i32, ptr %3212, align 8, !tbaa !77
  %3214 = icmp eq i32 %3210, %3213
  br i1 %3214, label %3239, label %3215

3215:                                             ; preds = %3206
  %3216 = tail call ptr @__errno_location() #16
  %3217 = load i32, ptr %3216, align 4, !tbaa !5
  %3218 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3219 = call i32 @s2n_print_stacktrace(ptr noundef %3218) #15
  %3220 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3221 = trunc nuw i8 %3220 to i1
  br i1 %3221, label %3222, label %3226

3222:                                             ; preds = %3215
  %3223 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3224 = call i32 @fileno(ptr noundef %3223) #15
  %3225 = call i32 @isatty(i32 noundef %3224) #15
  %.not491 = icmp eq i32 %3225, 0
  br i1 %.not491, label %3226, label %3227

3226:                                             ; preds = %3222, %3215
  br label %3227

3227:                                             ; preds = %3222, %3226
  %.str.61.sink1820 = phi ptr [ @.str.61, %3226 ], [ @.str.58, %3222 ]
  store i32 %3217, ptr %3216, align 4, !tbaa !5
  %3228 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3229 = load i32, ptr @test_count, align 4, !tbaa !5
  %3230 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3231 = load i32, ptr %3230, align 4, !tbaa !5
  %3232 = call ptr @s2n_strerror(i32 noundef %3231, ptr noundef nonnull @.str.60) #15
  %3233 = load i32, ptr %3230, align 4, !tbaa !5
  %3234 = call ptr @s2n_strerror_debug(i32 noundef %3233, ptr noundef nonnull @.str.60) #15
  %3235 = load i32, ptr %3216, align 4, !tbaa !5
  %3236 = call ptr @strerror(i32 noundef %3235) #15
  %3237 = load i32, ptr %3216, align 4, !tbaa !5
  %3238 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3228, ptr noundef nonnull %.str.61.sink1820, i32 noundef %3229, ptr noundef nonnull @.str.152, ptr noundef nonnull @.str.57, i32 noundef 268, ptr noundef %3232, ptr noundef %3234, ptr noundef %3236, i32 noundef %3237) #17
  call void @exit(i32 noundef 1) #18
  unreachable

3239:                                             ; preds = %3206
  %.not492 = icmp eq i32 %3210, 0
  br i1 %.not492, label %3270, label %3240

3240:                                             ; preds = %3239
  %3241 = add nsw i32 %3177, 3
  store i32 %3241, ptr @test_count, align 4, !tbaa !5
  %3242 = load ptr, ptr %3208, align 8, !tbaa !78
  %3243 = load ptr, ptr %3211, align 8, !tbaa !78
  %3244 = zext i32 %3210 to i64
  %bcmp493 = call i32 @bcmp(ptr %3242, ptr %3243, i64 %3244)
  %3245 = icmp eq i32 %bcmp493, 0
  br i1 %3245, label %3270, label %3246

3246:                                             ; preds = %3240
  %3247 = tail call ptr @__errno_location() #16
  %3248 = load i32, ptr %3247, align 4, !tbaa !5
  %3249 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3250 = call i32 @s2n_print_stacktrace(ptr noundef %3249) #15
  %3251 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3252 = trunc nuw i8 %3251 to i1
  br i1 %3252, label %3253, label %3257

3253:                                             ; preds = %3246
  %3254 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3255 = call i32 @fileno(ptr noundef %3254) #15
  %3256 = call i32 @isatty(i32 noundef %3255) #15
  %.not494 = icmp eq i32 %3256, 0
  br i1 %.not494, label %3257, label %3258

3257:                                             ; preds = %3253, %3246
  br label %3258

3258:                                             ; preds = %3253, %3257
  %.str.61.sink1831 = phi ptr [ @.str.61, %3257 ], [ @.str.58, %3253 ]
  store i32 %3248, ptr %3247, align 4, !tbaa !5
  %3259 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3260 = load i32, ptr @test_count, align 4, !tbaa !5
  %3261 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3262 = load i32, ptr %3261, align 4, !tbaa !5
  %3263 = call ptr @s2n_strerror(i32 noundef %3262, ptr noundef nonnull @.str.60) #15
  %3264 = load i32, ptr %3261, align 4, !tbaa !5
  %3265 = call ptr @s2n_strerror_debug(i32 noundef %3264, ptr noundef nonnull @.str.60) #15
  %3266 = load i32, ptr %3247, align 4, !tbaa !5
  %3267 = call ptr @strerror(i32 noundef %3266) #15
  %3268 = load i32, ptr %3247, align 4, !tbaa !5
  %3269 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3259, ptr noundef nonnull %.str.61.sink1831, i32 noundef %3260, ptr noundef nonnull @.str.153, ptr noundef nonnull @.str.57, i32 noundef 268, ptr noundef %3263, ptr noundef %3265, ptr noundef %3267, i32 noundef %3268) #17
  call void @exit(i32 noundef 1) #18
  unreachable

3270:                                             ; preds = %3240, %3239
  %3271 = phi i32 [ %3241, %3240 ], [ %3207, %3239 ]
  %3272 = add nsw i32 %3271, 1
  store i32 %3272, ptr @test_count, align 4, !tbaa !5
  %3273 = getelementptr inbounds i8, ptr %24, i64 16
  %3274 = getelementptr inbounds i8, ptr %24, i64 24
  %3275 = load i32, ptr %3274, align 8, !tbaa !79
  %3276 = getelementptr inbounds i8, ptr %25, i64 16
  %3277 = getelementptr inbounds i8, ptr %25, i64 24
  %3278 = load i32, ptr %3277, align 8, !tbaa !79
  %3279 = icmp eq i32 %3275, %3278
  br i1 %3279, label %3304, label %3280

3280:                                             ; preds = %3270
  %3281 = tail call ptr @__errno_location() #16
  %3282 = load i32, ptr %3281, align 4, !tbaa !5
  %3283 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3284 = call i32 @s2n_print_stacktrace(ptr noundef %3283) #15
  %3285 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3286 = trunc nuw i8 %3285 to i1
  br i1 %3286, label %3287, label %3291

3287:                                             ; preds = %3280
  %3288 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3289 = call i32 @fileno(ptr noundef %3288) #15
  %3290 = call i32 @isatty(i32 noundef %3289) #15
  %.not495 = icmp eq i32 %3290, 0
  br i1 %.not495, label %3291, label %3292

3291:                                             ; preds = %3287, %3280
  br label %3292

3292:                                             ; preds = %3287, %3291
  %.str.61.sink1842 = phi ptr [ @.str.61, %3291 ], [ @.str.58, %3287 ]
  store i32 %3282, ptr %3281, align 4, !tbaa !5
  %3293 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3294 = load i32, ptr @test_count, align 4, !tbaa !5
  %3295 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3296 = load i32, ptr %3295, align 4, !tbaa !5
  %3297 = call ptr @s2n_strerror(i32 noundef %3296, ptr noundef nonnull @.str.60) #15
  %3298 = load i32, ptr %3295, align 4, !tbaa !5
  %3299 = call ptr @s2n_strerror_debug(i32 noundef %3298, ptr noundef nonnull @.str.60) #15
  %3300 = load i32, ptr %3281, align 4, !tbaa !5
  %3301 = call ptr @strerror(i32 noundef %3300) #15
  %3302 = load i32, ptr %3281, align 4, !tbaa !5
  %3303 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3293, ptr noundef nonnull %.str.61.sink1842, i32 noundef %3294, ptr noundef nonnull @.str.154, ptr noundef nonnull @.str.57, i32 noundef 269, ptr noundef %3297, ptr noundef %3299, ptr noundef %3301, i32 noundef %3302) #17
  call void @exit(i32 noundef 1) #18
  unreachable

3304:                                             ; preds = %3270
  %.not496 = icmp eq i32 %3275, 0
  br i1 %.not496, label %3335, label %3305

3305:                                             ; preds = %3304
  %3306 = add nsw i32 %3271, 2
  store i32 %3306, ptr @test_count, align 4, !tbaa !5
  %3307 = load ptr, ptr %3273, align 8, !tbaa !80
  %3308 = load ptr, ptr %3276, align 8, !tbaa !80
  %3309 = zext i32 %3275 to i64
  %bcmp497 = call i32 @bcmp(ptr %3307, ptr %3308, i64 %3309)
  %3310 = icmp eq i32 %bcmp497, 0
  br i1 %3310, label %3335, label %3311

3311:                                             ; preds = %3305
  %3312 = tail call ptr @__errno_location() #16
  %3313 = load i32, ptr %3312, align 4, !tbaa !5
  %3314 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3315 = call i32 @s2n_print_stacktrace(ptr noundef %3314) #15
  %3316 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3317 = trunc nuw i8 %3316 to i1
  br i1 %3317, label %3318, label %3322

3318:                                             ; preds = %3311
  %3319 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3320 = call i32 @fileno(ptr noundef %3319) #15
  %3321 = call i32 @isatty(i32 noundef %3320) #15
  %.not498 = icmp eq i32 %3321, 0
  br i1 %.not498, label %3322, label %3323

3322:                                             ; preds = %3318, %3311
  br label %3323

3323:                                             ; preds = %3318, %3322
  %.str.61.sink1853 = phi ptr [ @.str.61, %3322 ], [ @.str.58, %3318 ]
  store i32 %3313, ptr %3312, align 4, !tbaa !5
  %3324 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3325 = load i32, ptr @test_count, align 4, !tbaa !5
  %3326 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3327 = load i32, ptr %3326, align 4, !tbaa !5
  %3328 = call ptr @s2n_strerror(i32 noundef %3327, ptr noundef nonnull @.str.60) #15
  %3329 = load i32, ptr %3326, align 4, !tbaa !5
  %3330 = call ptr @s2n_strerror_debug(i32 noundef %3329, ptr noundef nonnull @.str.60) #15
  %3331 = load i32, ptr %3312, align 4, !tbaa !5
  %3332 = call ptr @strerror(i32 noundef %3331) #15
  %3333 = load i32, ptr %3312, align 4, !tbaa !5
  %3334 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3324, ptr noundef nonnull %.str.61.sink1853, i32 noundef %3325, ptr noundef nonnull @.str.155, ptr noundef nonnull @.str.57, i32 noundef 269, ptr noundef %3328, ptr noundef %3330, ptr noundef %3332, i32 noundef %3333) #17
  call void @exit(i32 noundef 1) #18
  unreachable

3335:                                             ; preds = %3304, %3305
  %3336 = phi i32 [ %3272, %3304 ], [ %3306, %3305 ]
  %3337 = add nsw i32 %3336, 1
  store i32 %3337, ptr @test_count, align 4, !tbaa !5
  %3338 = call i32 @s2n_conn_get_current_message_type(ptr noundef nonnull %2002)
  %3339 = icmp eq i32 %3338, 16
  br i1 %3339, label %3364, label %3340

3340:                                             ; preds = %3335
  %3341 = tail call ptr @__errno_location() #16
  %3342 = load i32, ptr %3341, align 4, !tbaa !5
  %3343 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3344 = call i32 @s2n_print_stacktrace(ptr noundef %3343) #15
  %3345 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3346 = trunc nuw i8 %3345 to i1
  br i1 %3346, label %3347, label %3351

3347:                                             ; preds = %3340
  %3348 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3349 = call i32 @fileno(ptr noundef %3348) #15
  %3350 = call i32 @isatty(i32 noundef %3349) #15
  %.not499 = icmp eq i32 %3350, 0
  br i1 %.not499, label %3351, label %3352

3351:                                             ; preds = %3347, %3340
  br label %3352

3352:                                             ; preds = %3347, %3351
  %.str.61.sink1864 = phi ptr [ @.str.61, %3351 ], [ @.str.58, %3347 ]
  store i32 %3342, ptr %3341, align 4, !tbaa !5
  %3353 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3354 = load i32, ptr @test_count, align 4, !tbaa !5
  %3355 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3356 = load i32, ptr %3355, align 4, !tbaa !5
  %3357 = call ptr @s2n_strerror(i32 noundef %3356, ptr noundef nonnull @.str.60) #15
  %3358 = load i32, ptr %3355, align 4, !tbaa !5
  %3359 = call ptr @s2n_strerror_debug(i32 noundef %3358, ptr noundef nonnull @.str.60) #15
  %3360 = load i32, ptr %3341, align 4, !tbaa !5
  %3361 = call ptr @strerror(i32 noundef %3360) #15
  %3362 = load i32, ptr %3341, align 4, !tbaa !5
  %3363 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3353, ptr noundef nonnull %.str.61.sink1864, i32 noundef %3354, ptr noundef nonnull @.str.150, ptr noundef nonnull @.str.57, i32 noundef 272, ptr noundef %3357, ptr noundef %3359, ptr noundef %3361, i32 noundef %3362) #17
  call void @exit(i32 noundef 1) #18
  unreachable

3364:                                             ; preds = %3335
  %3365 = load i32, ptr @test_count, align 4, !tbaa !5
  %3366 = add nsw i32 %3365, 1
  store i32 %3366, ptr @test_count, align 4, !tbaa !5
  %3367 = call i32 @s2n_handshake_read_io(ptr noundef nonnull %2002)
  %3368 = icmp eq i32 %3367, -1
  br i1 %3368, label %3369, label %3393

3369:                                             ; preds = %3364
  %3370 = tail call ptr @__errno_location() #16
  %3371 = load i32, ptr %3370, align 4, !tbaa !5
  %3372 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3373 = call i32 @s2n_print_stacktrace(ptr noundef %3372) #15
  %3374 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3375 = trunc nuw i8 %3374 to i1
  br i1 %3375, label %3376, label %3380

3376:                                             ; preds = %3369
  %3377 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3378 = call i32 @fileno(ptr noundef %3377) #15
  %3379 = call i32 @isatty(i32 noundef %3378) #15
  %.not538 = icmp eq i32 %3379, 0
  br i1 %.not538, label %3380, label %3381

3380:                                             ; preds = %3376, %3369
  br label %3381

3381:                                             ; preds = %3376, %3380
  %.str.61.sink1875 = phi ptr [ @.str.61, %3380 ], [ @.str.58, %3376 ]
  store i32 %3371, ptr %3370, align 4, !tbaa !5
  %3382 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3383 = load i32, ptr @test_count, align 4, !tbaa !5
  %3384 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3385 = load i32, ptr %3384, align 4, !tbaa !5
  %3386 = call ptr @s2n_strerror(i32 noundef %3385, ptr noundef nonnull @.str.60) #15
  %3387 = load i32, ptr %3384, align 4, !tbaa !5
  %3388 = call ptr @s2n_strerror_debug(i32 noundef %3387, ptr noundef nonnull @.str.60) #15
  %3389 = load i32, ptr %3370, align 4, !tbaa !5
  %3390 = call ptr @strerror(i32 noundef %3389) #15
  %3391 = load i32, ptr %3370, align 4, !tbaa !5
  %3392 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3382, ptr noundef nonnull %.str.61.sink1875, i32 noundef %3383, ptr noundef nonnull @.str.149, ptr noundef nonnull @.str.57, i32 noundef 273, ptr noundef %3386, ptr noundef %3388, ptr noundef %3390, i32 noundef %3391) #17
  call void @exit(i32 noundef 1) #18
  unreachable

3393:                                             ; preds = %3364
  %3394 = load i32, ptr @test_count, align 4, !tbaa !5
  %3395 = add nsw i32 %3394, 1
  store i32 %3395, ptr @test_count, align 4, !tbaa !5
  %3396 = call i32 @s2n_conn_get_current_message_type(ptr noundef nonnull %2002)
  %3397 = icmp eq i32 %3396, 2
  br i1 %3397, label %3422, label %3398

3398:                                             ; preds = %3393
  %3399 = tail call ptr @__errno_location() #16
  %3400 = load i32, ptr %3399, align 4, !tbaa !5
  %3401 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3402 = call i32 @s2n_print_stacktrace(ptr noundef %3401) #15
  %3403 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3404 = trunc nuw i8 %3403 to i1
  br i1 %3404, label %3405, label %3409

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

3409:                                             ; preds = %3405, %3398
  br label %3410

3410:                                             ; preds = %3405, %3409
  %.str.61.sink1886 = phi ptr [ @.str.61, %3409 ], [ @.str.58, %3405 ]
  store i32 %3400, ptr %3399, align 4, !tbaa !5
  %3411 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3412 = load i32, ptr @test_count, align 4, !tbaa !5
  %3413 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3414 = load i32, ptr %3413, align 4, !tbaa !5
  %3415 = call ptr @s2n_strerror(i32 noundef %3414, ptr noundef nonnull @.str.60) #15
  %3416 = load i32, ptr %3413, align 4, !tbaa !5
  %3417 = call ptr @s2n_strerror_debug(i32 noundef %3416, ptr noundef nonnull @.str.60) #15
  %3418 = load i32, ptr %3399, align 4, !tbaa !5
  %3419 = call ptr @strerror(i32 noundef %3418) #15
  %3420 = load i32, ptr %3399, align 4, !tbaa !5
  %3421 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3411, ptr noundef nonnull %.str.61.sink1886, i32 noundef %3412, ptr noundef nonnull @.str.156, ptr noundef nonnull @.str.57, i32 noundef 276, ptr noundef %3415, ptr noundef %3417, ptr noundef %3419, i32 noundef %3420) #17
  call void @exit(i32 noundef 1) #18
  unreachable

3422:                                             ; preds = %3393
  %3423 = load i32, ptr @test_count, align 4, !tbaa !5
  %3424 = add nsw i32 %3423, 1
  store i32 %3424, ptr @test_count, align 4, !tbaa !5
  %3425 = call i32 @s2n_handshake_read_io(ptr noundef nonnull %2002)
  %3426 = icmp eq i32 %3425, -1
  br i1 %3426, label %3427, label %3451

3427:                                             ; preds = %3422
  %3428 = tail call ptr @__errno_location() #16
  %3429 = load i32, ptr %3428, align 4, !tbaa !5
  %3430 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3431 = call i32 @s2n_print_stacktrace(ptr noundef %3430) #15
  %3432 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3433 = trunc nuw i8 %3432 to i1
  br i1 %3433, label %3434, label %3438

3434:                                             ; preds = %3427
  %3435 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3436 = call i32 @fileno(ptr noundef %3435) #15
  %3437 = call i32 @isatty(i32 noundef %3436) #15
  %.not537 = icmp eq i32 %3437, 0
  br i1 %.not537, label %3438, label %3439

3438:                                             ; preds = %3434, %3427
  br label %3439

3439:                                             ; preds = %3434, %3438
  %.str.61.sink1897 = phi ptr [ @.str.61, %3438 ], [ @.str.58, %3434 ]
  store i32 %3429, ptr %3428, align 4, !tbaa !5
  %3440 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3441 = load i32, ptr @test_count, align 4, !tbaa !5
  %3442 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3443 = load i32, ptr %3442, align 4, !tbaa !5
  %3444 = call ptr @s2n_strerror(i32 noundef %3443, ptr noundef nonnull @.str.60) #15
  %3445 = load i32, ptr %3442, align 4, !tbaa !5
  %3446 = call ptr @s2n_strerror_debug(i32 noundef %3445, ptr noundef nonnull @.str.60) #15
  %3447 = load i32, ptr %3428, align 4, !tbaa !5
  %3448 = call ptr @strerror(i32 noundef %3447) #15
  %3449 = load i32, ptr %3428, align 4, !tbaa !5
  %3450 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3440, ptr noundef nonnull %.str.61.sink1897, i32 noundef %3441, ptr noundef nonnull @.str.149, ptr noundef nonnull @.str.57, i32 noundef 277, ptr noundef %3444, ptr noundef %3446, ptr noundef %3448, i32 noundef %3449) #17
  call void @exit(i32 noundef 1) #18
  unreachable

3451:                                             ; preds = %3422
  %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 = call i32 @s2n_conn_get_current_message_type(ptr noundef nonnull %2002)
  %3455 = icmp eq i32 %3454, 17
  br i1 %3455, label %3480, label %3456

3456:                                             ; preds = %3451
  %3457 = tail call ptr @__errno_location() #16
  %3458 = load i32, ptr %3457, align 4, !tbaa !5
  %3459 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3460 = call i32 @s2n_print_stacktrace(ptr noundef %3459) #15
  %3461 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3462 = trunc nuw i8 %3461 to i1
  br i1 %3462, label %3463, label %3467

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

3467:                                             ; preds = %3463, %3456
  br label %3468

3468:                                             ; preds = %3463, %3467
  %.str.61.sink1908 = phi ptr [ @.str.61, %3467 ], [ @.str.58, %3463 ]
  store i32 %3458, ptr %3457, align 4, !tbaa !5
  %3469 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3470 = load i32, ptr @test_count, align 4, !tbaa !5
  %3471 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3472 = load i32, ptr %3471, align 4, !tbaa !5
  %3473 = call ptr @s2n_strerror(i32 noundef %3472, ptr noundef nonnull @.str.60) #15
  %3474 = load i32, ptr %3471, align 4, !tbaa !5
  %3475 = call ptr @s2n_strerror_debug(i32 noundef %3474, ptr noundef nonnull @.str.60) #15
  %3476 = load i32, ptr %3457, align 4, !tbaa !5
  %3477 = call ptr @strerror(i32 noundef %3476) #15
  %3478 = load i32, ptr %3457, align 4, !tbaa !5
  %3479 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3469, ptr noundef nonnull %.str.61.sink1908, i32 noundef %3470, ptr noundef nonnull @.str.157, ptr noundef nonnull @.str.57, i32 noundef 280, ptr noundef %3473, ptr noundef %3475, ptr noundef %3477, i32 noundef %3478) #17
  call void @exit(i32 noundef 1) #18
  unreachable

3480:                                             ; preds = %3451
  %3481 = load i32, ptr @test_count, align 4, !tbaa !5
  %3482 = add nsw i32 %3481, 1
  store i32 %3482, ptr @test_count, align 4, !tbaa !5
  %3483 = call i32 @s2n_handshake_read_io(ptr noundef nonnull %2002)
  %3484 = icmp eq i32 %3483, -1
  br i1 %3484, label %3485, label %3509

3485:                                             ; preds = %3480
  %3486 = tail call ptr @__errno_location() #16
  %3487 = load i32, ptr %3486, align 4, !tbaa !5
  %3488 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3489 = call i32 @s2n_print_stacktrace(ptr noundef %3488) #15
  %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 = %3485
  %3493 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3494 = call i32 @fileno(ptr noundef %3493) #15
  %3495 = call i32 @isatty(i32 noundef %3494) #15
  %.not536 = icmp eq i32 %3495, 0
  br i1 %.not536, label %3496, label %3497

3496:                                             ; preds = %3492, %3485
  br label %3497

3497:                                             ; preds = %3492, %3496
  %.str.61.sink1919 = phi ptr [ @.str.61, %3496 ], [ @.str.58, %3492 ]
  store i32 %3487, ptr %3486, align 4, !tbaa !5
  %3498 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3499 = load i32, ptr @test_count, align 4, !tbaa !5
  %3500 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3501 = load i32, ptr %3500, align 4, !tbaa !5
  %3502 = call ptr @s2n_strerror(i32 noundef %3501, ptr noundef nonnull @.str.60) #15
  %3503 = load i32, ptr %3500, align 4, !tbaa !5
  %3504 = call ptr @s2n_strerror_debug(i32 noundef %3503, ptr noundef nonnull @.str.60) #15
  %3505 = load i32, ptr %3486, align 4, !tbaa !5
  %3506 = call ptr @strerror(i32 noundef %3505) #15
  %3507 = load i32, ptr %3486, align 4, !tbaa !5
  %3508 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3498, ptr noundef nonnull %.str.61.sink1919, i32 noundef %3499, ptr noundef nonnull @.str.149, ptr noundef nonnull @.str.57, i32 noundef 281, ptr noundef %3502, ptr noundef %3504, ptr noundef %3506, i32 noundef %3507) #17
  call void @exit(i32 noundef 1) #18
  unreachable

3509:                                             ; preds = %3480
  %3510 = load i32, ptr @test_count, align 4, !tbaa !5
  %3511 = add nsw i32 %3510, 1
  store i32 %3511, ptr @test_count, align 4, !tbaa !5
  %3512 = call i32 @s2n_conn_get_current_message_type(ptr noundef nonnull %2031)
  %3513 = icmp eq i32 %3512, 15
  br i1 %3513, label %3538, label %3514

3514:                                             ; preds = %3509
  %3515 = tail call ptr @__errno_location() #16
  %3516 = load i32, ptr %3515, align 4, !tbaa !5
  %3517 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3518 = call i32 @s2n_print_stacktrace(ptr noundef %3517) #15
  %3519 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3520 = trunc nuw i8 %3519 to i1
  br i1 %3520, label %3521, label %3525

3521:                                             ; preds = %3514
  %3522 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3523 = call i32 @fileno(ptr noundef %3522) #15
  %3524 = call i32 @isatty(i32 noundef %3523) #15
  %.not502 = icmp eq i32 %3524, 0
  br i1 %.not502, label %3525, label %3526

3525:                                             ; preds = %3521, %3514
  br label %3526

3526:                                             ; preds = %3521, %3525
  %.str.61.sink1930 = phi ptr [ @.str.61, %3525 ], [ @.str.58, %3521 ]
  store i32 %3516, ptr %3515, align 4, !tbaa !5
  %3527 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3528 = load i32, ptr @test_count, align 4, !tbaa !5
  %3529 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3530 = load i32, ptr %3529, align 4, !tbaa !5
  %3531 = call ptr @s2n_strerror(i32 noundef %3530, ptr noundef nonnull @.str.60) #15
  %3532 = load i32, ptr %3529, align 4, !tbaa !5
  %3533 = call ptr @s2n_strerror_debug(i32 noundef %3532, ptr noundef nonnull @.str.60) #15
  %3534 = load i32, ptr %3515, align 4, !tbaa !5
  %3535 = call ptr @strerror(i32 noundef %3534) #15
  %3536 = load i32, ptr %3515, align 4, !tbaa !5
  %3537 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3527, ptr noundef nonnull %.str.61.sink1930, i32 noundef %3528, ptr noundef nonnull @.str.158, ptr noundef nonnull @.str.57, i32 noundef 284, ptr noundef %3531, ptr noundef %3533, ptr noundef %3535, i32 noundef %3536) #17
  call void @exit(i32 noundef 1) #18
  unreachable

3538:                                             ; preds = %3509
  %3539 = load i32, ptr @test_count, align 4, !tbaa !5
  %3540 = add nsw i32 %3539, 1
  store i32 %3540, ptr @test_count, align 4, !tbaa !5
  %3541 = call i32 @s2n_handshake_write_io(ptr noundef nonnull %2031)
  %3542 = icmp eq i32 %3541, -1
  br i1 %3542, label %3543, label %3567

3543:                                             ; preds = %3538
  %3544 = tail call ptr @__errno_location() #16
  %3545 = load i32, ptr %3544, align 4, !tbaa !5
  %3546 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3547 = call i32 @s2n_print_stacktrace(ptr noundef %3546) #15
  %3548 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3549 = trunc nuw i8 %3548 to i1
  br i1 %3549, label %3550, label %3554

3550:                                             ; preds = %3543
  %3551 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3552 = call i32 @fileno(ptr noundef %3551) #15
  %3553 = call i32 @isatty(i32 noundef %3552) #15
  %.not535 = icmp eq i32 %3553, 0
  br i1 %.not535, label %3554, label %3555

3554:                                             ; preds = %3550, %3543
  br label %3555

3555:                                             ; preds = %3550, %3554
  %.str.61.sink1941 = phi ptr [ @.str.61, %3554 ], [ @.str.58, %3550 ]
  store i32 %3545, ptr %3544, align 4, !tbaa !5
  %3556 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3557 = load i32, ptr @test_count, align 4, !tbaa !5
  %3558 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3559 = load i32, ptr %3558, align 4, !tbaa !5
  %3560 = call ptr @s2n_strerror(i32 noundef %3559, ptr noundef nonnull @.str.60) #15
  %3561 = load i32, ptr %3558, align 4, !tbaa !5
  %3562 = call ptr @s2n_strerror_debug(i32 noundef %3561, ptr noundef nonnull @.str.60) #15
  %3563 = load i32, ptr %3544, align 4, !tbaa !5
  %3564 = call ptr @strerror(i32 noundef %3563) #15
  %3565 = load i32, ptr %3544, align 4, !tbaa !5
  %3566 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3556, ptr noundef nonnull %.str.61.sink1941, i32 noundef %3557, ptr noundef nonnull @.str.139, ptr noundef nonnull @.str.57, i32 noundef 285, ptr noundef %3560, ptr noundef %3562, ptr noundef %3564, i32 noundef %3565) #17
  call void @exit(i32 noundef 1) #18
  unreachable

3567:                                             ; preds = %3538
  %3568 = load i32, ptr @test_count, align 4, !tbaa !5
  %3569 = add nsw i32 %3568, 1
  store i32 %3569, ptr @test_count, align 4, !tbaa !5
  %3570 = call i32 @s2n_conn_get_current_message_type(ptr noundef nonnull %2002)
  %3571 = icmp eq i32 %3570, 15
  br i1 %3571, label %3596, label %3572

3572:                                             ; preds = %3567
  %3573 = tail call ptr @__errno_location() #16
  %3574 = load i32, ptr %3573, align 4, !tbaa !5
  %3575 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3576 = call i32 @s2n_print_stacktrace(ptr noundef %3575) #15
  %3577 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3578 = trunc nuw i8 %3577 to i1
  br i1 %3578, label %3579, label %3583

3579:                                             ; preds = %3572
  %3580 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3581 = call i32 @fileno(ptr noundef %3580) #15
  %3582 = call i32 @isatty(i32 noundef %3581) #15
  %.not503 = icmp eq i32 %3582, 0
  br i1 %.not503, label %3583, label %3584

3583:                                             ; preds = %3579, %3572
  br label %3584

3584:                                             ; preds = %3579, %3583
  %.str.61.sink1952 = phi ptr [ @.str.61, %3583 ], [ @.str.58, %3579 ]
  store i32 %3574, ptr %3573, align 4, !tbaa !5
  %3585 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3586 = load i32, ptr @test_count, align 4, !tbaa !5
  %3587 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3588 = load i32, ptr %3587, align 4, !tbaa !5
  %3589 = call ptr @s2n_strerror(i32 noundef %3588, ptr noundef nonnull @.str.60) #15
  %3590 = load i32, ptr %3587, align 4, !tbaa !5
  %3591 = call ptr @s2n_strerror_debug(i32 noundef %3590, ptr noundef nonnull @.str.60) #15
  %3592 = load i32, ptr %3573, align 4, !tbaa !5
  %3593 = call ptr @strerror(i32 noundef %3592) #15
  %3594 = load i32, ptr %3573, align 4, !tbaa !5
  %3595 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3585, ptr noundef nonnull %.str.61.sink1952, i32 noundef %3586, ptr noundef nonnull @.str.159, ptr noundef nonnull @.str.57, i32 noundef 288, ptr noundef %3589, ptr noundef %3591, ptr noundef %3593, i32 noundef %3594) #17
  call void @exit(i32 noundef 1) #18
  unreachable

3596:                                             ; preds = %3567
  %3597 = load i32, ptr @test_count, align 4, !tbaa !5
  %3598 = add nsw i32 %3597, 1
  store i32 %3598, ptr @test_count, align 4, !tbaa !5
  %3599 = call i32 @s2n_handshake_read_io(ptr noundef nonnull %2002)
  %3600 = icmp eq i32 %3599, -1
  br i1 %3600, label %3601, label %3625

3601:                                             ; preds = %3596
  %3602 = tail call ptr @__errno_location() #16
  %3603 = load i32, ptr %3602, align 4, !tbaa !5
  %3604 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3605 = call i32 @s2n_print_stacktrace(ptr noundef %3604) #15
  %3606 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3607 = trunc nuw i8 %3606 to i1
  br i1 %3607, label %3608, label %3612

3608:                                             ; preds = %3601
  %3609 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3610 = call i32 @fileno(ptr noundef %3609) #15
  %3611 = call i32 @isatty(i32 noundef %3610) #15
  %.not534 = icmp eq i32 %3611, 0
  br i1 %.not534, label %3612, label %3613

3612:                                             ; preds = %3608, %3601
  br label %3613

3613:                                             ; preds = %3608, %3612
  %.str.61.sink1963 = phi ptr [ @.str.61, %3612 ], [ @.str.58, %3608 ]
  store i32 %3603, ptr %3602, align 4, !tbaa !5
  %3614 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3615 = load i32, ptr @test_count, align 4, !tbaa !5
  %3616 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3617 = load i32, ptr %3616, align 4, !tbaa !5
  %3618 = call ptr @s2n_strerror(i32 noundef %3617, ptr noundef nonnull @.str.60) #15
  %3619 = load i32, ptr %3616, align 4, !tbaa !5
  %3620 = call ptr @s2n_strerror_debug(i32 noundef %3619, ptr noundef nonnull @.str.60) #15
  %3621 = load i32, ptr %3602, align 4, !tbaa !5
  %3622 = call ptr @strerror(i32 noundef %3621) #15
  %3623 = load i32, ptr %3602, align 4, !tbaa !5
  %3624 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3614, ptr noundef nonnull %.str.61.sink1963, i32 noundef %3615, ptr noundef nonnull @.str.149, ptr noundef nonnull @.str.57, i32 noundef 289, ptr noundef %3618, ptr noundef %3620, ptr noundef %3622, i32 noundef %3623) #17
  call void @exit(i32 noundef 1) #18
  unreachable

3625:                                             ; preds = %3596
  %3626 = load i32, ptr @test_count, align 4, !tbaa !5
  %3627 = add nsw i32 %3626, 1
  store i32 %3627, ptr @test_count, align 4, !tbaa !5
  %3628 = call i32 @s2n_conn_get_current_message_type(ptr noundef nonnull %2002)
  %3629 = icmp eq i32 %3628, 11
  br i1 %3629, label %3654, label %3630

3630:                                             ; preds = %3625
  %3631 = tail call ptr @__errno_location() #16
  %3632 = load i32, ptr %3631, align 4, !tbaa !5
  %3633 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3634 = call i32 @s2n_print_stacktrace(ptr noundef %3633) #15
  %3635 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3636 = trunc nuw i8 %3635 to i1
  br i1 %3636, label %3637, label %3641

3637:                                             ; preds = %3630
  %3638 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3639 = call i32 @fileno(ptr noundef %3638) #15
  %3640 = call i32 @isatty(i32 noundef %3639) #15
  %.not504 = icmp eq i32 %3640, 0
  br i1 %.not504, label %3641, label %3642

3641:                                             ; preds = %3637, %3630
  br label %3642

3642:                                             ; preds = %3637, %3641
  %.str.61.sink1974 = phi ptr [ @.str.61, %3641 ], [ @.str.58, %3637 ]
  store i32 %3632, ptr %3631, align 4, !tbaa !5
  %3643 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3644 = load i32, ptr @test_count, align 4, !tbaa !5
  %3645 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3646 = load i32, ptr %3645, align 4, !tbaa !5
  %3647 = call ptr @s2n_strerror(i32 noundef %3646, ptr noundef nonnull @.str.60) #15
  %3648 = load i32, ptr %3645, align 4, !tbaa !5
  %3649 = call ptr @s2n_strerror_debug(i32 noundef %3648, ptr noundef nonnull @.str.60) #15
  %3650 = load i32, ptr %3631, align 4, !tbaa !5
  %3651 = call ptr @strerror(i32 noundef %3650) #15
  %3652 = load i32, ptr %3631, align 4, !tbaa !5
  %3653 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3643, ptr noundef nonnull %.str.61.sink1974, i32 noundef %3644, ptr noundef nonnull @.str.160, ptr noundef nonnull @.str.57, i32 noundef 292, ptr noundef %3647, ptr noundef %3649, ptr noundef %3651, i32 noundef %3652) #17
  call void @exit(i32 noundef 1) #18
  unreachable

3654:                                             ; preds = %3625
  %3655 = load i32, ptr @test_count, align 4, !tbaa !5
  %3656 = add nsw i32 %3655, 1
  store i32 %3656, ptr @test_count, align 4, !tbaa !5
  %3657 = call i32 @s2n_handshake_write_io(ptr noundef nonnull %2002)
  %3658 = icmp eq i32 %3657, -1
  br i1 %3658, label %3659, label %3683

3659:                                             ; preds = %3654
  %3660 = tail call ptr @__errno_location() #16
  %3661 = load i32, ptr %3660, align 4, !tbaa !5
  %3662 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3663 = call i32 @s2n_print_stacktrace(ptr noundef %3662) #15
  %3664 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3665 = trunc nuw i8 %3664 to i1
  br i1 %3665, label %3666, label %3670

3666:                                             ; preds = %3659
  %3667 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3668 = call i32 @fileno(ptr noundef %3667) #15
  %3669 = call i32 @isatty(i32 noundef %3668) #15
  %.not533 = icmp eq i32 %3669, 0
  br i1 %.not533, label %3670, label %3671

3670:                                             ; preds = %3666, %3659
  br label %3671

3671:                                             ; preds = %3666, %3670
  %.str.61.sink1985 = phi ptr [ @.str.61, %3670 ], [ @.str.58, %3666 ]
  store i32 %3661, ptr %3660, align 4, !tbaa !5
  %3672 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3673 = load i32, ptr @test_count, align 4, !tbaa !5
  %3674 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3675 = load i32, ptr %3674, align 4, !tbaa !5
  %3676 = call ptr @s2n_strerror(i32 noundef %3675, ptr noundef nonnull @.str.60) #15
  %3677 = load i32, ptr %3674, align 4, !tbaa !5
  %3678 = call ptr @s2n_strerror_debug(i32 noundef %3677, ptr noundef nonnull @.str.60) #15
  %3679 = load i32, ptr %3660, align 4, !tbaa !5
  %3680 = call ptr @strerror(i32 noundef %3679) #15
  %3681 = load i32, ptr %3660, align 4, !tbaa !5
  %3682 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3672, ptr noundef nonnull %.str.61.sink1985, i32 noundef %3673, ptr noundef nonnull @.str.127, ptr noundef nonnull @.str.57, i32 noundef 293, ptr noundef %3676, ptr noundef %3678, ptr noundef %3680, i32 noundef %3681) #17
  call void @exit(i32 noundef 1) #18
  unreachable

3683:                                             ; preds = %3654
  %3684 = load i32, ptr @test_count, align 4, !tbaa !5
  %3685 = add nsw i32 %3684, 1
  store i32 %3685, ptr @test_count, align 4, !tbaa !5
  %3686 = call i32 @s2n_conn_get_current_message_type(ptr noundef nonnull %2002)
  %3687 = icmp eq i32 %3686, 13
  br i1 %3687, label %3712, label %3688

3688:                                             ; preds = %3683
  %3689 = tail call ptr @__errno_location() #16
  %3690 = load i32, ptr %3689, align 4, !tbaa !5
  %3691 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3692 = call i32 @s2n_print_stacktrace(ptr noundef %3691) #15
  %3693 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3694 = trunc nuw i8 %3693 to i1
  br i1 %3694, label %3695, label %3699

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

3699:                                             ; preds = %3695, %3688
  br label %3700

3700:                                             ; preds = %3695, %3699
  %.str.61.sink1996 = phi ptr [ @.str.61, %3699 ], [ @.str.58, %3695 ]
  store i32 %3690, ptr %3689, align 4, !tbaa !5
  %3701 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3702 = load i32, ptr @test_count, align 4, !tbaa !5
  %3703 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3704 = load i32, ptr %3703, align 4, !tbaa !5
  %3705 = call ptr @s2n_strerror(i32 noundef %3704, ptr noundef nonnull @.str.60) #15
  %3706 = load i32, ptr %3703, align 4, !tbaa !5
  %3707 = call ptr @s2n_strerror_debug(i32 noundef %3706, ptr noundef nonnull @.str.60) #15
  %3708 = load i32, ptr %3689, align 4, !tbaa !5
  %3709 = call ptr @strerror(i32 noundef %3708) #15
  %3710 = load i32, ptr %3689, align 4, !tbaa !5
  %3711 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3701, ptr noundef nonnull %.str.61.sink1996, i32 noundef %3702, ptr noundef nonnull @.str.161, ptr noundef nonnull @.str.57, i32 noundef 296, ptr noundef %3705, ptr noundef %3707, ptr noundef %3709, i32 noundef %3710) #17
  call void @exit(i32 noundef 1) #18
  unreachable

3712:                                             ; preds = %3683
  %3713 = load i32, ptr @test_count, align 4, !tbaa !5
  %3714 = add nsw i32 %3713, 1
  store i32 %3714, ptr @test_count, align 4, !tbaa !5
  %3715 = call i32 @s2n_handshake_write_io(ptr noundef nonnull %2002)
  %3716 = icmp eq i32 %3715, -1
  br i1 %3716, label %3717, label %3741

3717:                                             ; preds = %3712
  %3718 = tail call ptr @__errno_location() #16
  %3719 = load i32, ptr %3718, align 4, !tbaa !5
  %3720 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3721 = call i32 @s2n_print_stacktrace(ptr noundef %3720) #15
  %3722 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3723 = trunc nuw i8 %3722 to i1
  br i1 %3723, label %3724, label %3728

3724:                                             ; preds = %3717
  %3725 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3726 = call i32 @fileno(ptr noundef %3725) #15
  %3727 = call i32 @isatty(i32 noundef %3726) #15
  %.not532 = icmp eq i32 %3727, 0
  br i1 %.not532, label %3728, label %3729

3728:                                             ; preds = %3724, %3717
  br label %3729

3729:                                             ; preds = %3724, %3728
  %.str.61.sink2007 = phi ptr [ @.str.61, %3728 ], [ @.str.58, %3724 ]
  store i32 %3719, ptr %3718, align 4, !tbaa !5
  %3730 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3731 = load i32, ptr @test_count, align 4, !tbaa !5
  %3732 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3733 = load i32, ptr %3732, align 4, !tbaa !5
  %3734 = call ptr @s2n_strerror(i32 noundef %3733, ptr noundef nonnull @.str.60) #15
  %3735 = load i32, ptr %3732, align 4, !tbaa !5
  %3736 = call ptr @s2n_strerror_debug(i32 noundef %3735, ptr noundef nonnull @.str.60) #15
  %3737 = load i32, ptr %3718, align 4, !tbaa !5
  %3738 = call ptr @strerror(i32 noundef %3737) #15
  %3739 = load i32, ptr %3718, align 4, !tbaa !5
  %3740 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3730, ptr noundef nonnull %.str.61.sink2007, i32 noundef %3731, ptr noundef nonnull @.str.127, ptr noundef nonnull @.str.57, i32 noundef 297, ptr noundef %3734, ptr noundef %3736, ptr noundef %3738, i32 noundef %3739) #17
  call void @exit(i32 noundef 1) #18
  unreachable

3741:                                             ; preds = %3712
  %3742 = load i32, ptr @test_count, align 4, !tbaa !5
  %3743 = add nsw i32 %3742, 1
  store i32 %3743, ptr @test_count, align 4, !tbaa !5
  %3744 = call i32 @s2n_conn_get_current_message_type(ptr noundef nonnull %2031)
  %3745 = icmp eq i32 %3744, 13
  br i1 %3745, label %3770, label %3746

3746:                                             ; preds = %3741
  %3747 = tail call ptr @__errno_location() #16
  %3748 = load i32, ptr %3747, align 4, !tbaa !5
  %3749 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3750 = call i32 @s2n_print_stacktrace(ptr noundef %3749) #15
  %3751 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3752 = trunc nuw i8 %3751 to i1
  br i1 %3752, label %3753, label %3757

3753:                                             ; preds = %3746
  %3754 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3755 = call i32 @fileno(ptr noundef %3754) #15
  %3756 = call i32 @isatty(i32 noundef %3755) #15
  %.not506 = icmp eq i32 %3756, 0
  br i1 %.not506, label %3757, label %3758

3757:                                             ; preds = %3753, %3746
  br label %3758

3758:                                             ; preds = %3753, %3757
  %.str.61.sink2018 = phi ptr [ @.str.61, %3757 ], [ @.str.58, %3753 ]
  store i32 %3748, ptr %3747, align 4, !tbaa !5
  %3759 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3760 = load i32, ptr @test_count, align 4, !tbaa !5
  %3761 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3762 = load i32, ptr %3761, align 4, !tbaa !5
  %3763 = call ptr @s2n_strerror(i32 noundef %3762, ptr noundef nonnull @.str.60) #15
  %3764 = load i32, ptr %3761, align 4, !tbaa !5
  %3765 = call ptr @s2n_strerror_debug(i32 noundef %3764, ptr noundef nonnull @.str.60) #15
  %3766 = load i32, ptr %3747, align 4, !tbaa !5
  %3767 = call ptr @strerror(i32 noundef %3766) #15
  %3768 = load i32, ptr %3747, align 4, !tbaa !5
  %3769 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3759, ptr noundef nonnull %.str.61.sink2018, i32 noundef %3760, ptr noundef nonnull @.str.162, ptr noundef nonnull @.str.57, i32 noundef 301, ptr noundef %3763, ptr noundef %3765, ptr noundef %3767, i32 noundef %3768) #17
  call void @exit(i32 noundef 1) #18
  unreachable

3770:                                             ; preds = %3741
  %3771 = load i32, ptr @test_count, align 4, !tbaa !5
  %3772 = add nsw i32 %3771, 1
  store i32 %3772, ptr @test_count, align 4, !tbaa !5
  %3773 = call i32 @s2n_handshake_read_io(ptr noundef nonnull %2031)
  %3774 = icmp eq i32 %3773, -1
  br i1 %3774, label %3775, label %3799

3775:                                             ; preds = %3770
  %3776 = tail call ptr @__errno_location() #16
  %3777 = load i32, ptr %3776, align 4, !tbaa !5
  %3778 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3779 = call i32 @s2n_print_stacktrace(ptr noundef %3778) #15
  %3780 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3781 = trunc nuw i8 %3780 to i1
  br i1 %3781, label %3782, label %3786

3782:                                             ; preds = %3775
  %3783 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3784 = call i32 @fileno(ptr noundef %3783) #15
  %3785 = call i32 @isatty(i32 noundef %3784) #15
  %.not531 = icmp eq i32 %3785, 0
  br i1 %.not531, label %3786, label %3787

3786:                                             ; preds = %3782, %3775
  br label %3787

3787:                                             ; preds = %3782, %3786
  %.str.61.sink2029 = phi ptr [ @.str.61, %3786 ], [ @.str.58, %3782 ]
  store i32 %3777, ptr %3776, align 4, !tbaa !5
  %3788 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3789 = load i32, ptr @test_count, align 4, !tbaa !5
  %3790 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3791 = load i32, ptr %3790, align 4, !tbaa !5
  %3792 = call ptr @s2n_strerror(i32 noundef %3791, ptr noundef nonnull @.str.60) #15
  %3793 = load i32, ptr %3790, align 4, !tbaa !5
  %3794 = call ptr @s2n_strerror_debug(i32 noundef %3793, ptr noundef nonnull @.str.60) #15
  %3795 = load i32, ptr %3776, align 4, !tbaa !5
  %3796 = call ptr @strerror(i32 noundef %3795) #15
  %3797 = load i32, ptr %3776, align 4, !tbaa !5
  %3798 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3788, ptr noundef nonnull %.str.61.sink2029, i32 noundef %3789, ptr noundef nonnull @.str.133, ptr noundef nonnull @.str.57, i32 noundef 302, ptr noundef %3792, ptr noundef %3794, ptr noundef %3796, i32 noundef %3797) #17
  call void @exit(i32 noundef 1) #18
  unreachable

3799:                                             ; preds = %3770
  %3800 = load i32, ptr @test_count, align 4, !tbaa !5
  %3801 = add nsw i32 %3800, 1
  store i32 %3801, ptr @test_count, align 4, !tbaa !5
  %3802 = call i32 @s2n_conn_get_current_message_type(ptr noundef nonnull %2031)
  %3803 = icmp eq i32 %3802, 13
  br i1 %3803, label %3828, label %3804

3804:                                             ; preds = %3799
  %3805 = tail call ptr @__errno_location() #16
  %3806 = load i32, ptr %3805, align 4, !tbaa !5
  %3807 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3808 = call i32 @s2n_print_stacktrace(ptr noundef %3807) #15
  %3809 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3810 = trunc nuw i8 %3809 to i1
  br i1 %3810, label %3811, label %3815

3811:                                             ; preds = %3804
  %3812 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3813 = call i32 @fileno(ptr noundef %3812) #15
  %3814 = call i32 @isatty(i32 noundef %3813) #15
  %.not507 = icmp eq i32 %3814, 0
  br i1 %.not507, label %3815, label %3816

3815:                                             ; preds = %3811, %3804
  br label %3816

3816:                                             ; preds = %3811, %3815
  %.str.61.sink2040 = phi ptr [ @.str.61, %3815 ], [ @.str.58, %3811 ]
  store i32 %3806, ptr %3805, align 4, !tbaa !5
  %3817 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3818 = load i32, ptr @test_count, align 4, !tbaa !5
  %3819 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3820 = load i32, ptr %3819, align 4, !tbaa !5
  %3821 = call ptr @s2n_strerror(i32 noundef %3820, ptr noundef nonnull @.str.60) #15
  %3822 = load i32, ptr %3819, align 4, !tbaa !5
  %3823 = call ptr @s2n_strerror_debug(i32 noundef %3822, ptr noundef nonnull @.str.60) #15
  %3824 = load i32, ptr %3805, align 4, !tbaa !5
  %3825 = call ptr @strerror(i32 noundef %3824) #15
  %3826 = load i32, ptr %3805, align 4, !tbaa !5
  %3827 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3817, ptr noundef nonnull %.str.61.sink2040, i32 noundef %3818, ptr noundef nonnull @.str.162, ptr noundef nonnull @.str.57, i32 noundef 305, ptr noundef %3821, ptr noundef %3823, ptr noundef %3825, i32 noundef %3826) #17
  call void @exit(i32 noundef 1) #18
  unreachable

3828:                                             ; preds = %3799
  %3829 = load i32, ptr @test_count, align 4, !tbaa !5
  %3830 = add nsw i32 %3829, 1
  store i32 %3830, ptr @test_count, align 4, !tbaa !5
  %3831 = call i32 @s2n_handshake_read_io(ptr noundef nonnull %2031)
  %3832 = icmp eq i32 %3831, -1
  br i1 %3832, label %3833, label %3857

3833:                                             ; preds = %3828
  %3834 = tail call ptr @__errno_location() #16
  %3835 = load i32, ptr %3834, align 4, !tbaa !5
  %3836 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3837 = call i32 @s2n_print_stacktrace(ptr noundef %3836) #15
  %3838 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3839 = trunc nuw i8 %3838 to i1
  br i1 %3839, label %3840, label %3844

3840:                                             ; preds = %3833
  %3841 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3842 = call i32 @fileno(ptr noundef %3841) #15
  %3843 = call i32 @isatty(i32 noundef %3842) #15
  %.not530 = icmp eq i32 %3843, 0
  br i1 %.not530, label %3844, label %3845

3844:                                             ; preds = %3840, %3833
  br label %3845

3845:                                             ; preds = %3840, %3844
  %.str.61.sink2051 = phi ptr [ @.str.61, %3844 ], [ @.str.58, %3840 ]
  store i32 %3835, ptr %3834, align 4, !tbaa !5
  %3846 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3847 = load i32, ptr @test_count, align 4, !tbaa !5
  %3848 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3849 = load i32, ptr %3848, align 4, !tbaa !5
  %3850 = call ptr @s2n_strerror(i32 noundef %3849, ptr noundef nonnull @.str.60) #15
  %3851 = load i32, ptr %3848, align 4, !tbaa !5
  %3852 = call ptr @s2n_strerror_debug(i32 noundef %3851, ptr noundef nonnull @.str.60) #15
  %3853 = load i32, ptr %3834, align 4, !tbaa !5
  %3854 = call ptr @strerror(i32 noundef %3853) #15
  %3855 = load i32, ptr %3834, align 4, !tbaa !5
  %3856 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3846, ptr noundef nonnull %.str.61.sink2051, i32 noundef %3847, ptr noundef nonnull @.str.133, ptr noundef nonnull @.str.57, i32 noundef 306, ptr noundef %3850, ptr noundef %3852, ptr noundef %3854, i32 noundef %3855) #17
  call void @exit(i32 noundef 1) #18
  unreachable

3857:                                             ; preds = %3828
  %3858 = load i32, ptr @test_count, align 4, !tbaa !5
  %3859 = add nsw i32 %3858, 1
  store i32 %3859, ptr @test_count, align 4, !tbaa !5
  %3860 = call i32 @s2n_conn_get_current_message_type(ptr noundef nonnull %2002)
  %3861 = icmp eq i32 %3860, 20
  br i1 %3861, label %3886, label %3862

3862:                                             ; preds = %3857
  %3863 = tail call ptr @__errno_location() #16
  %3864 = load i32, ptr %3863, align 4, !tbaa !5
  %3865 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3866 = call i32 @s2n_print_stacktrace(ptr noundef %3865) #15
  %3867 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3868 = trunc nuw i8 %3867 to i1
  br i1 %3868, label %3869, label %3873

3869:                                             ; preds = %3862
  %3870 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3871 = call i32 @fileno(ptr noundef %3870) #15
  %3872 = call i32 @isatty(i32 noundef %3871) #15
  %.not508 = icmp eq i32 %3872, 0
  br i1 %.not508, label %3873, label %3874

3873:                                             ; preds = %3869, %3862
  br label %3874

3874:                                             ; preds = %3869, %3873
  %.str.61.sink2062 = phi ptr [ @.str.61, %3873 ], [ @.str.58, %3869 ]
  store i32 %3864, ptr %3863, align 4, !tbaa !5
  %3875 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3876 = load i32, ptr @test_count, align 4, !tbaa !5
  %3877 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3878 = load i32, ptr %3877, align 4, !tbaa !5
  %3879 = call ptr @s2n_strerror(i32 noundef %3878, ptr noundef nonnull @.str.60) #15
  %3880 = load i32, ptr %3877, align 4, !tbaa !5
  %3881 = call ptr @s2n_strerror_debug(i32 noundef %3880, ptr noundef nonnull @.str.60) #15
  %3882 = load i32, ptr %3863, align 4, !tbaa !5
  %3883 = call ptr @strerror(i32 noundef %3882) #15
  %3884 = load i32, ptr %3863, align 4, !tbaa !5
  %3885 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3875, ptr noundef nonnull %.str.61.sink2062, i32 noundef %3876, ptr noundef nonnull @.str.163, ptr noundef nonnull @.str.57, i32 noundef 308, ptr noundef %3879, ptr noundef %3881, ptr noundef %3883, i32 noundef %3884) #17
  call void @exit(i32 noundef 1) #18
  unreachable

3886:                                             ; preds = %3857
  %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_conn_get_current_message_type(ptr noundef nonnull %2031)
  %3890 = icmp eq i32 %3889, 20
  br i1 %3890, label %3915, label %3891

3891:                                             ; preds = %3886
  %3892 = tail call ptr @__errno_location() #16
  %3893 = load i32, ptr %3892, align 4, !tbaa !5
  %3894 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3895 = call i32 @s2n_print_stacktrace(ptr noundef %3894) #15
  %3896 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3897 = trunc nuw i8 %3896 to i1
  br i1 %3897, label %3898, label %3902

3898:                                             ; preds = %3891
  %3899 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3900 = call i32 @fileno(ptr noundef %3899) #15
  %3901 = call i32 @isatty(i32 noundef %3900) #15
  %.not509 = icmp eq i32 %3901, 0
  br i1 %.not509, label %3902, label %3903

3902:                                             ; preds = %3898, %3891
  br label %3903

3903:                                             ; preds = %3898, %3902
  %.str.61.sink2073 = phi ptr [ @.str.61, %3902 ], [ @.str.58, %3898 ]
  store i32 %3893, ptr %3892, align 4, !tbaa !5
  %3904 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3905 = load i32, ptr @test_count, align 4, !tbaa !5
  %3906 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3907 = load i32, ptr %3906, align 4, !tbaa !5
  %3908 = call ptr @s2n_strerror(i32 noundef %3907, ptr noundef nonnull @.str.60) #15
  %3909 = load i32, ptr %3906, align 4, !tbaa !5
  %3910 = call ptr @s2n_strerror_debug(i32 noundef %3909, ptr noundef nonnull @.str.60) #15
  %3911 = load i32, ptr %3892, align 4, !tbaa !5
  %3912 = call ptr @strerror(i32 noundef %3911) #15
  %3913 = load i32, ptr %3892, align 4, !tbaa !5
  %3914 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3904, ptr noundef nonnull %.str.61.sink2073, i32 noundef %3905, ptr noundef nonnull @.str.164, ptr noundef nonnull @.str.57, i32 noundef 309, ptr noundef %3908, ptr noundef %3910, ptr noundef %3912, i32 noundef %3913) #17
  call void @exit(i32 noundef 1) #18
  unreachable

3915:                                             ; preds = %3886
  %3916 = load i32, ptr @test_count, align 4, !tbaa !5
  %3917 = add nsw i32 %3916, 1
  store i32 %3917, ptr @test_count, align 4, !tbaa !5
  %3918 = load i32, ptr %3209, align 8, !tbaa !77
  %3919 = load i32, ptr %3212, align 8, !tbaa !77
  %3920 = icmp eq i32 %3918, %3919
  br i1 %3920, label %3945, label %3921

3921:                                             ; preds = %3915
  %3922 = tail call ptr @__errno_location() #16
  %3923 = load i32, ptr %3922, align 4, !tbaa !5
  %3924 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3925 = call i32 @s2n_print_stacktrace(ptr noundef %3924) #15
  %3926 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3927 = trunc nuw i8 %3926 to i1
  br i1 %3927, label %3928, label %3932

3928:                                             ; preds = %3921
  %3929 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3930 = call i32 @fileno(ptr noundef %3929) #15
  %3931 = call i32 @isatty(i32 noundef %3930) #15
  %.not510 = icmp eq i32 %3931, 0
  br i1 %.not510, label %3932, label %3933

3932:                                             ; preds = %3928, %3921
  br label %3933

3933:                                             ; preds = %3928, %3932
  %.str.61.sink2084 = phi ptr [ @.str.61, %3932 ], [ @.str.58, %3928 ]
  store i32 %3923, ptr %3922, align 4, !tbaa !5
  %3934 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3935 = load i32, ptr @test_count, align 4, !tbaa !5
  %3936 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3937 = load i32, ptr %3936, align 4, !tbaa !5
  %3938 = call ptr @s2n_strerror(i32 noundef %3937, ptr noundef nonnull @.str.60) #15
  %3939 = load i32, ptr %3936, align 4, !tbaa !5
  %3940 = call ptr @s2n_strerror_debug(i32 noundef %3939, ptr noundef nonnull @.str.60) #15
  %3941 = load i32, ptr %3922, align 4, !tbaa !5
  %3942 = call ptr @strerror(i32 noundef %3941) #15
  %3943 = load i32, ptr %3922, align 4, !tbaa !5
  %3944 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3934, ptr noundef nonnull %.str.61.sink2084, i32 noundef %3935, ptr noundef nonnull @.str.152, ptr noundef nonnull @.str.57, i32 noundef 312, ptr noundef %3938, ptr noundef %3940, ptr noundef %3942, i32 noundef %3943) #17
  call void @exit(i32 noundef 1) #18
  unreachable

3945:                                             ; preds = %3915
  %.not511 = icmp eq i32 %3918, 0
  br i1 %.not511, label %3976, label %3946

3946:                                             ; preds = %3945
  %3947 = add nsw i32 %3916, 2
  store i32 %3947, ptr @test_count, align 4, !tbaa !5
  %3948 = load ptr, ptr %3208, align 8, !tbaa !78
  %3949 = load ptr, ptr %3211, align 8, !tbaa !78
  %3950 = zext i32 %3918 to i64
  %bcmp512 = call i32 @bcmp(ptr %3948, ptr %3949, i64 %3950)
  %3951 = icmp eq i32 %bcmp512, 0
  br i1 %3951, label %3976, label %3952

3952:                                             ; preds = %3946
  %3953 = tail call ptr @__errno_location() #16
  %3954 = load i32, ptr %3953, align 4, !tbaa !5
  %3955 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3956 = call i32 @s2n_print_stacktrace(ptr noundef %3955) #15
  %3957 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3958 = trunc nuw i8 %3957 to i1
  br i1 %3958, label %3959, label %3963

3959:                                             ; preds = %3952
  %3960 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3961 = call i32 @fileno(ptr noundef %3960) #15
  %3962 = call i32 @isatty(i32 noundef %3961) #15
  %.not513 = icmp eq i32 %3962, 0
  br i1 %.not513, label %3963, label %3964

3963:                                             ; preds = %3959, %3952
  br label %3964

3964:                                             ; preds = %3959, %3963
  %.str.61.sink2095 = phi ptr [ @.str.61, %3963 ], [ @.str.58, %3959 ]
  store i32 %3954, ptr %3953, align 4, !tbaa !5
  %3965 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3966 = load i32, ptr @test_count, align 4, !tbaa !5
  %3967 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3968 = load i32, ptr %3967, align 4, !tbaa !5
  %3969 = call ptr @s2n_strerror(i32 noundef %3968, ptr noundef nonnull @.str.60) #15
  %3970 = load i32, ptr %3967, align 4, !tbaa !5
  %3971 = call ptr @s2n_strerror_debug(i32 noundef %3970, ptr noundef nonnull @.str.60) #15
  %3972 = load i32, ptr %3953, align 4, !tbaa !5
  %3973 = call ptr @strerror(i32 noundef %3972) #15
  %3974 = load i32, ptr %3953, align 4, !tbaa !5
  %3975 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3965, ptr noundef nonnull %.str.61.sink2095, i32 noundef %3966, ptr noundef nonnull @.str.153, ptr noundef nonnull @.str.57, i32 noundef 312, ptr noundef %3969, ptr noundef %3971, ptr noundef %3973, i32 noundef %3974) #17
  call void @exit(i32 noundef 1) #18
  unreachable

3976:                                             ; preds = %3946, %3945
  %3977 = phi i32 [ %3947, %3946 ], [ %3917, %3945 ]
  %3978 = add nsw i32 %3977, 1
  store i32 %3978, ptr @test_count, align 4, !tbaa !5
  %3979 = load i32, ptr %3274, align 8, !tbaa !79
  %3980 = load i32, ptr %3277, align 8, !tbaa !79
  %3981 = icmp eq i32 %3979, %3980
  br i1 %3981, label %4006, label %3982

3982:                                             ; preds = %3976
  %3983 = tail call ptr @__errno_location() #16
  %3984 = load i32, ptr %3983, align 4, !tbaa !5
  %3985 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3986 = call i32 @s2n_print_stacktrace(ptr noundef %3985) #15
  %3987 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3988 = trunc nuw i8 %3987 to i1
  br i1 %3988, label %3989, label %3993

3989:                                             ; preds = %3982
  %3990 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3991 = call i32 @fileno(ptr noundef %3990) #15
  %3992 = call i32 @isatty(i32 noundef %3991) #15
  %.not514 = icmp eq i32 %3992, 0
  br i1 %.not514, label %3993, label %3994

3993:                                             ; preds = %3989, %3982
  br label %3994

3994:                                             ; preds = %3989, %3993
  %.str.61.sink2106 = phi ptr [ @.str.61, %3993 ], [ @.str.58, %3989 ]
  store i32 %3984, ptr %3983, align 4, !tbaa !5
  %3995 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3996 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %3998, ptr noundef nonnull @.str.60) #15
  %4000 = load i32, ptr %3997, align 4, !tbaa !5
  %4001 = call ptr @s2n_strerror_debug(i32 noundef %4000, ptr noundef nonnull @.str.60) #15
  %4002 = load i32, ptr %3983, align 4, !tbaa !5
  %4003 = call ptr @strerror(i32 noundef %4002) #15
  %4004 = load i32, ptr %3983, align 4, !tbaa !5
  %4005 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3995, ptr noundef nonnull %.str.61.sink2106, i32 noundef %3996, ptr noundef nonnull @.str.154, ptr noundef nonnull @.str.57, i32 noundef 313, ptr noundef %3999, ptr noundef %4001, ptr noundef %4003, i32 noundef %4004) #17
  call void @exit(i32 noundef 1) #18
  unreachable

4006:                                             ; preds = %3976
  %.not515 = icmp eq i32 %3979, 0
  br i1 %.not515, label %4037, label %4007

4007:                                             ; preds = %4006
  %4008 = add nsw i32 %3977, 2
  store i32 %4008, ptr @test_count, align 4, !tbaa !5
  %4009 = load ptr, ptr %3273, align 8, !tbaa !80
  %4010 = load ptr, ptr %3276, align 8, !tbaa !80
  %4011 = zext i32 %3979 to i64
  %bcmp516 = call i32 @bcmp(ptr %4009, ptr %4010, i64 %4011)
  %4012 = icmp eq i32 %bcmp516, 0
  br i1 %4012, label %4037, label %4013

4013:                                             ; preds = %4007
  %4014 = tail call ptr @__errno_location() #16
  %4015 = load i32, ptr %4014, align 4, !tbaa !5
  %4016 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4017 = call i32 @s2n_print_stacktrace(ptr noundef %4016) #15
  %4018 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4019 = trunc nuw i8 %4018 to i1
  br i1 %4019, label %4020, label %4024

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

4024:                                             ; preds = %4020, %4013
  br label %4025

4025:                                             ; preds = %4020, %4024
  %.str.61.sink2117 = phi ptr [ @.str.61, %4024 ], [ @.str.58, %4020 ]
  store i32 %4015, ptr %4014, align 4, !tbaa !5
  %4026 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4027 = load i32, ptr @test_count, align 4, !tbaa !5
  %4028 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4029 = load i32, ptr %4028, align 4, !tbaa !5
  %4030 = call ptr @s2n_strerror(i32 noundef %4029, ptr noundef nonnull @.str.60) #15
  %4031 = load i32, ptr %4028, align 4, !tbaa !5
  %4032 = call ptr @s2n_strerror_debug(i32 noundef %4031, ptr noundef nonnull @.str.60) #15
  %4033 = load i32, ptr %4014, align 4, !tbaa !5
  %4034 = call ptr @strerror(i32 noundef %4033) #15
  %4035 = load i32, ptr %4014, align 4, !tbaa !5
  %4036 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4026, ptr noundef nonnull %.str.61.sink2117, i32 noundef %4027, ptr noundef nonnull @.str.155, ptr noundef nonnull @.str.57, i32 noundef 313, ptr noundef %4030, ptr noundef %4032, ptr noundef %4034, i32 noundef %4035) #17
  call void @exit(i32 noundef 1) #18
  unreachable

4037:                                             ; preds = %4006, %4007
  %4038 = phi i32 [ %3978, %4006 ], [ %4008, %4007 ]
  %4039 = add nsw i32 %4038, 1
  store i32 %4039, ptr @test_count, align 4, !tbaa !5
  %4040 = call i32 @s2n_stuffer_free(ptr noundef nonnull %19) #15
  %4041 = icmp eq i32 %4040, -1
  br i1 %4041, label %4042, label %4066

4042:                                             ; preds = %4037
  %4043 = tail call ptr @__errno_location() #16
  %4044 = load i32, ptr %4043, align 4, !tbaa !5
  %4045 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4046 = call i32 @s2n_print_stacktrace(ptr noundef %4045) #15
  %4047 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4048 = trunc nuw i8 %4047 to i1
  br i1 %4048, label %4049, label %4053

4049:                                             ; preds = %4042
  %4050 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4051 = call i32 @fileno(ptr noundef %4050) #15
  %4052 = call i32 @isatty(i32 noundef %4051) #15
  %.not529 = icmp eq i32 %4052, 0
  br i1 %.not529, label %4053, label %4054

4053:                                             ; preds = %4049, %4042
  br label %4054

4054:                                             ; preds = %4049, %4053
  %.str.61.sink2128 = phi ptr [ @.str.61, %4053 ], [ @.str.58, %4049 ]
  store i32 %4044, ptr %4043, 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 nonnull @.str.60) #15
  %4060 = load i32, ptr %4057, align 4, !tbaa !5
  %4061 = call ptr @s2n_strerror_debug(i32 noundef %4060, ptr noundef nonnull @.str.60) #15
  %4062 = load i32, ptr %4043, align 4, !tbaa !5
  %4063 = call ptr @strerror(i32 noundef %4062) #15
  %4064 = load i32, ptr %4043, align 4, !tbaa !5
  %4065 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4055, ptr noundef nonnull %.str.61.sink2128, i32 noundef %4056, ptr noundef nonnull @.str.165, ptr noundef nonnull @.str.57, i32 noundef 316, ptr noundef %4059, ptr noundef %4061, ptr noundef %4063, i32 noundef %4064) #17
  call void @exit(i32 noundef 1) #18
  unreachable

4066:                                             ; preds = %4037
  %4067 = load i32, ptr @test_count, align 4, !tbaa !5
  %4068 = add nsw i32 %4067, 1
  store i32 %4068, ptr @test_count, align 4, !tbaa !5
  %4069 = call i32 @s2n_stuffer_free(ptr noundef nonnull %20) #15
  %4070 = icmp eq i32 %4069, -1
  br i1 %4070, label %4071, label %4095

4071:                                             ; preds = %4066
  %4072 = tail call ptr @__errno_location() #16
  %4073 = load i32, ptr %4072, align 4, !tbaa !5
  %4074 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4075 = call i32 @s2n_print_stacktrace(ptr noundef %4074) #15
  %4076 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4077 = trunc nuw i8 %4076 to i1
  br i1 %4077, label %4078, label %4082

4078:                                             ; preds = %4071
  %4079 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4080 = call i32 @fileno(ptr noundef %4079) #15
  %4081 = call i32 @isatty(i32 noundef %4080) #15
  %.not528 = icmp eq i32 %4081, 0
  br i1 %.not528, label %4082, label %4083

4082:                                             ; preds = %4078, %4071
  br label %4083

4083:                                             ; preds = %4078, %4082
  %.str.61.sink2139 = phi ptr [ @.str.61, %4082 ], [ @.str.58, %4078 ]
  store i32 %4073, ptr %4072, align 4, !tbaa !5
  %4084 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4085 = load i32, ptr @test_count, align 4, !tbaa !5
  %4086 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4087 = load i32, ptr %4086, align 4, !tbaa !5
  %4088 = call ptr @s2n_strerror(i32 noundef %4087, ptr noundef nonnull @.str.60) #15
  %4089 = load i32, ptr %4086, align 4, !tbaa !5
  %4090 = call ptr @s2n_strerror_debug(i32 noundef %4089, ptr noundef nonnull @.str.60) #15
  %4091 = load i32, ptr %4072, align 4, !tbaa !5
  %4092 = call ptr @strerror(i32 noundef %4091) #15
  %4093 = load i32, ptr %4072, align 4, !tbaa !5
  %4094 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4084, ptr noundef nonnull %.str.61.sink2139, i32 noundef %4085, ptr noundef nonnull @.str.166, ptr noundef nonnull @.str.57, i32 noundef 317, ptr noundef %4088, ptr noundef %4090, ptr noundef %4092, i32 noundef %4093) #17
  call void @exit(i32 noundef 1) #18
  unreachable

4095:                                             ; preds = %4066
  %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 = call i32 @s2n_connection_free(ptr noundef nonnull %2002) #15
  %4099 = icmp eq i32 %4098, -1
  br i1 %4099, label %4100, label %4124

4100:                                             ; preds = %4095
  %4101 = tail call ptr @__errno_location() #16
  %4102 = load i32, ptr %4101, align 4, !tbaa !5
  %4103 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4104 = call i32 @s2n_print_stacktrace(ptr noundef %4103) #15
  %4105 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4106 = trunc nuw i8 %4105 to i1
  br i1 %4106, label %4107, label %4111

4107:                                             ; preds = %4100
  %4108 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4109 = call i32 @fileno(ptr noundef %4108) #15
  %4110 = call i32 @isatty(i32 noundef %4109) #15
  %.not527 = icmp eq i32 %4110, 0
  br i1 %.not527, label %4111, label %4112

4111:                                             ; preds = %4107, %4100
  br label %4112

4112:                                             ; preds = %4107, %4111
  %.str.61.sink2150 = phi ptr [ @.str.61, %4111 ], [ @.str.58, %4107 ]
  store i32 %4102, ptr %4101, align 4, !tbaa !5
  %4113 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4114 = load i32, ptr @test_count, align 4, !tbaa !5
  %4115 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4116 = load i32, ptr %4115, align 4, !tbaa !5
  %4117 = call ptr @s2n_strerror(i32 noundef %4116, ptr noundef nonnull @.str.60) #15
  %4118 = load i32, ptr %4115, align 4, !tbaa !5
  %4119 = call ptr @s2n_strerror_debug(i32 noundef %4118, ptr noundef nonnull @.str.60) #15
  %4120 = load i32, ptr %4101, align 4, !tbaa !5
  %4121 = call ptr @strerror(i32 noundef %4120) #15
  %4122 = load i32, ptr %4101, align 4, !tbaa !5
  %4123 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4113, ptr noundef nonnull %.str.61.sink2150, i32 noundef %4114, ptr noundef nonnull @.str.167, ptr noundef nonnull @.str.57, i32 noundef 319, ptr noundef %4117, ptr noundef %4119, ptr noundef %4121, i32 noundef %4122) #17
  call void @exit(i32 noundef 1) #18
  unreachable

4124:                                             ; preds = %4095
  %4125 = load i32, ptr @test_count, align 4, !tbaa !5
  %4126 = add nsw i32 %4125, 1
  store i32 %4126, ptr @test_count, align 4, !tbaa !5
  %4127 = call i32 @s2n_connection_free(ptr noundef nonnull %2031) #15
  %4128 = icmp eq i32 %4127, -1
  br i1 %4128, label %4129, label %4153

4129:                                             ; preds = %4124
  %4130 = tail call ptr @__errno_location() #16
  %4131 = load i32, ptr %4130, align 4, !tbaa !5
  %4132 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4133 = call i32 @s2n_print_stacktrace(ptr noundef %4132) #15
  %4134 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4135 = trunc nuw i8 %4134 to i1
  br i1 %4135, label %4136, label %4140

4136:                                             ; preds = %4129
  %4137 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4138 = call i32 @fileno(ptr noundef %4137) #15
  %4139 = call i32 @isatty(i32 noundef %4138) #15
  %.not526 = icmp eq i32 %4139, 0
  br i1 %.not526, label %4140, label %4141

4140:                                             ; preds = %4136, %4129
  br label %4141

4141:                                             ; preds = %4136, %4140
  %.str.61.sink2161 = phi ptr [ @.str.61, %4140 ], [ @.str.58, %4136 ]
  store i32 %4131, ptr %4130, align 4, !tbaa !5
  %4142 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4143 = load i32, ptr @test_count, align 4, !tbaa !5
  %4144 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4145 = load i32, ptr %4144, align 4, !tbaa !5
  %4146 = call ptr @s2n_strerror(i32 noundef %4145, ptr noundef nonnull @.str.60) #15
  %4147 = load i32, ptr %4144, align 4, !tbaa !5
  %4148 = call ptr @s2n_strerror_debug(i32 noundef %4147, ptr noundef nonnull @.str.60) #15
  %4149 = load i32, ptr %4130, align 4, !tbaa !5
  %4150 = call ptr @strerror(i32 noundef %4149) #15
  %4151 = load i32, ptr %4130, align 4, !tbaa !5
  %4152 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4142, ptr noundef nonnull %.str.61.sink2161, i32 noundef %4143, ptr noundef nonnull @.str.168, ptr noundef nonnull @.str.57, i32 noundef 320, ptr noundef %4146, ptr noundef %4148, ptr noundef %4150, i32 noundef %4151) #17
  call void @exit(i32 noundef 1) #18
  unreachable

4153:                                             ; preds = %4124
  %4154 = load i32, ptr @test_count, align 4, !tbaa !5
  %4155 = add nsw i32 %4154, 1
  store i32 %4155, ptr @test_count, align 4, !tbaa !5
  %4156 = call i32 @s2n_cert_chain_and_key_free(ptr noundef nonnull %1913) #15
  %4157 = icmp eq i32 %4156, -1
  br i1 %4157, label %4158, label %4182

4158:                                             ; preds = %4153
  %4159 = tail call ptr @__errno_location() #16
  %4160 = load i32, ptr %4159, align 4, !tbaa !5
  %4161 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4162 = call i32 @s2n_print_stacktrace(ptr noundef %4161) #15
  %4163 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4164 = trunc nuw i8 %4163 to i1
  br i1 %4164, label %4165, label %4169

4165:                                             ; preds = %4158
  %4166 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4167 = call i32 @fileno(ptr noundef %4166) #15
  %4168 = call i32 @isatty(i32 noundef %4167) #15
  %.not525 = icmp eq i32 %4168, 0
  br i1 %.not525, label %4169, label %4170

4169:                                             ; preds = %4165, %4158
  br label %4170

4170:                                             ; preds = %4165, %4169
  %.str.61.sink2172 = phi ptr [ @.str.61, %4169 ], [ @.str.58, %4165 ]
  store i32 %4160, ptr %4159, align 4, !tbaa !5
  %4171 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4172 = load i32, ptr @test_count, align 4, !tbaa !5
  %4173 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4174 = load i32, ptr %4173, align 4, !tbaa !5
  %4175 = call ptr @s2n_strerror(i32 noundef %4174, ptr noundef nonnull @.str.60) #15
  %4176 = load i32, ptr %4173, align 4, !tbaa !5
  %4177 = call ptr @s2n_strerror_debug(i32 noundef %4176, ptr noundef nonnull @.str.60) #15
  %4178 = load i32, ptr %4159, align 4, !tbaa !5
  %4179 = call ptr @strerror(i32 noundef %4178) #15
  %4180 = load i32, ptr %4159, align 4, !tbaa !5
  %4181 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4171, ptr noundef nonnull %.str.61.sink2172, i32 noundef %4172, ptr noundef nonnull @.str.169, ptr noundef nonnull @.str.57, i32 noundef 322, ptr noundef %4175, ptr noundef %4177, ptr noundef %4179, i32 noundef %4180) #17
  call void @exit(i32 noundef 1) #18
  unreachable

4182:                                             ; preds = %4153
  %4183 = load i32, ptr @test_count, align 4, !tbaa !5
  %4184 = add nsw i32 %4183, 1
  store i32 %4184, ptr @test_count, align 4, !tbaa !5
  %4185 = call i32 @s2n_config_free(ptr noundef nonnull %1712) #15
  %4186 = icmp eq i32 %4185, -1
  br i1 %4186, label %4187, label %4211

4187:                                             ; preds = %4182
  %4188 = tail call ptr @__errno_location() #16
  %4189 = load i32, ptr %4188, align 4, !tbaa !5
  %4190 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4191 = call i32 @s2n_print_stacktrace(ptr noundef %4190) #15
  %4192 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4193 = trunc nuw i8 %4192 to i1
  br i1 %4193, label %4194, label %4198

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

4198:                                             ; preds = %4194, %4187
  br label %4199

4199:                                             ; preds = %4194, %4198
  %.str.61.sink2183 = phi ptr [ @.str.61, %4198 ], [ @.str.58, %4194 ]
  store i32 %4189, ptr %4188, align 4, !tbaa !5
  %4200 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4201 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %4203, ptr noundef nonnull @.str.60) #15
  %4205 = load i32, ptr %4202, align 4, !tbaa !5
  %4206 = call ptr @s2n_strerror_debug(i32 noundef %4205, ptr noundef nonnull @.str.60) #15
  %4207 = load i32, ptr %4188, align 4, !tbaa !5
  %4208 = call ptr @strerror(i32 noundef %4207) #15
  %4209 = load i32, ptr %4188, align 4, !tbaa !5
  %4210 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4200, ptr noundef nonnull %.str.61.sink2183, i32 noundef %4201, ptr noundef nonnull @.str.170, ptr noundef nonnull @.str.57, i32 noundef 323, ptr noundef %4204, ptr noundef %4206, ptr noundef %4208, i32 noundef %4209) #17
  call void @exit(i32 noundef 1) #18
  unreachable

4211:                                             ; preds = %4182
  %4212 = load i32, ptr @test_count, align 4, !tbaa !5
  %4213 = add nsw i32 %4212, 1
  store i32 %4213, ptr @test_count, align 4, !tbaa !5
  %4214 = call i32 @s2n_config_free(ptr noundef nonnull %1741) #15
  %4215 = icmp eq i32 %4214, -1
  br i1 %4215, label %4216, label %4240

4216:                                             ; preds = %4211
  %4217 = tail call ptr @__errno_location() #16
  %4218 = load i32, ptr %4217, align 4, !tbaa !5
  %4219 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4220 = call i32 @s2n_print_stacktrace(ptr noundef %4219) #15
  %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 = %4216
  %4224 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4225 = call i32 @fileno(ptr noundef %4224) #15
  %4226 = call i32 @isatty(i32 noundef %4225) #15
  %.not523 = icmp eq i32 %4226, 0
  br i1 %.not523, label %4227, label %4228

4227:                                             ; preds = %4223, %4216
  br label %4228

4228:                                             ; preds = %4223, %4227
  %.str.61.sink2194 = phi ptr [ @.str.61, %4227 ], [ @.str.58, %4223 ]
  store i32 %4218, ptr %4217, align 4, !tbaa !5
  %4229 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4230 = load i32, ptr @test_count, align 4, !tbaa !5
  %4231 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4232 = load i32, ptr %4231, align 4, !tbaa !5
  %4233 = call ptr @s2n_strerror(i32 noundef %4232, ptr noundef nonnull @.str.60) #15
  %4234 = load i32, ptr %4231, align 4, !tbaa !5
  %4235 = call ptr @s2n_strerror_debug(i32 noundef %4234, ptr noundef nonnull @.str.60) #15
  %4236 = load i32, ptr %4217, align 4, !tbaa !5
  %4237 = call ptr @strerror(i32 noundef %4236) #15
  %4238 = load i32, ptr %4217, align 4, !tbaa !5
  %4239 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4229, ptr noundef nonnull %.str.61.sink2194, i32 noundef %4230, ptr noundef nonnull @.str.171, ptr noundef nonnull @.str.57, i32 noundef 324, ptr noundef %4233, ptr noundef %4235, ptr noundef %4237, i32 noundef %4238) #17
  call void @exit(i32 noundef 1) #18
  unreachable

4240:                                             ; preds = %4211
  call void @free(ptr noundef nonnull %1827) #15
  call void @free(ptr noundef nonnull %1799) #15
  br label %4241

4241:                                             ; preds = %3173, %4240
  %.5 = phi i32 [ 0, %4240 ], [ -1, %3173 ]
  %4242 = call i32 @s2n_tls13_keys_free(ptr noundef nonnull %25) #15
  call void @llvm.lifetime.end.p0(i64 592, ptr nonnull %25) #15
  br label %4243

4243:                                             ; preds = %2592, %4241
  %.6433 = phi i1 [ %3175, %4241 ], [ false, %2592 ]
  %.6 = phi i32 [ %.5, %4241 ], [ -1, %2592 ]
  %4244 = call i32 @s2n_tls13_keys_free(ptr noundef nonnull %24) #15
  call void @llvm.lifetime.end.p0(i64 592, ptr nonnull %24) #15
  br label %4245

4245:                                             ; preds = %2416, %4243
  %.7434 = phi i1 [ %.6433, %4243 ], [ false, %2416 ]
  %.7 = phi i32 [ %.6, %4243 ], [ -1, %2416 ]
  %4246 = call i32 @s2n_tls13_keys_free(ptr noundef nonnull %23) #15
  call void @llvm.lifetime.end.p0(i64 592, ptr nonnull %23) #15
  br label %4247

4247:                                             ; preds = %4245, %2238
  %.8435 = phi i1 [ %.7434, %4245 ], [ false, %2238 ]
  %.8 = phi i32 [ %.7, %4245 ], [ -1, %2238 ]
  %4248 = call i32 @s2n_free(ptr noundef nonnull %22) #15
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %22) #15
  %4249 = call i32 @s2n_free(ptr noundef nonnull %21) #15
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %21) #15
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %20) #15
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %19) #15
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %18) #15
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %17) #15
  br i1 %.8435, label %4250, label %4325

4250:                                             ; preds = %4247
  %4251 = call i32 @s2n_cleanup() #15
  %4252 = icmp eq i32 %4251, -1
  br i1 %4252, label %4253, label %4277

4253:                                             ; preds = %4250
  %4254 = tail call ptr @__errno_location() #16
  %4255 = load i32, ptr %4254, align 4, !tbaa !5
  %4256 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4257 = call i32 @s2n_print_stacktrace(ptr noundef %4256) #15
  %4258 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4259 = trunc nuw i8 %4258 to i1
  br i1 %4259, label %4260, label %4264

4260:                                             ; preds = %4253
  %4261 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4262 = call i32 @fileno(ptr noundef %4261) #15
  %4263 = call i32 @isatty(i32 noundef %4262) #15
  %.not522 = icmp eq i32 %4263, 0
  br i1 %.not522, label %4264, label %4265

4264:                                             ; preds = %4260, %4253
  br label %4265

4265:                                             ; preds = %4260, %4264
  %.str.61.sink2205 = phi ptr [ @.str.61, %4264 ], [ @.str.58, %4260 ]
  store i32 %4255, ptr %4254, align 4, !tbaa !5
  %4266 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4267 = load i32, ptr @test_count, align 4, !tbaa !5
  %4268 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4269 = load i32, ptr %4268, align 4, !tbaa !5
  %4270 = call ptr @s2n_strerror(i32 noundef %4269, ptr noundef nonnull @.str.60) #15
  %4271 = load i32, ptr %4268, align 4, !tbaa !5
  %4272 = call ptr @s2n_strerror_debug(i32 noundef %4271, ptr noundef nonnull @.str.60) #15
  %4273 = load i32, ptr %4254, align 4, !tbaa !5
  %4274 = call ptr @strerror(i32 noundef %4273) #15
  %4275 = load i32, ptr %4254, align 4, !tbaa !5
  %4276 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4266, ptr noundef nonnull %.str.61.sink2205, i32 noundef %4267, ptr noundef nonnull @.str.64, ptr noundef nonnull @.str.57, i32 noundef 330, ptr noundef %4270, ptr noundef %4272, ptr noundef %4274, i32 noundef %4275) #17
  call void @exit(i32 noundef 1) #18
  unreachable

4277:                                             ; preds = %4250
  %4278 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #15
  %4279 = icmp eq i32 %4278, -1
  br i1 %4279, label %4280, label %4304

4280:                                             ; preds = %4277
  %4281 = tail call ptr @__errno_location() #16
  %4282 = load i32, ptr %4281, align 4, !tbaa !5
  %4283 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4284 = call i32 @s2n_print_stacktrace(ptr noundef %4283) #15
  %4285 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4286 = trunc nuw i8 %4285 to i1
  br i1 %4286, label %4287, label %4291

4287:                                             ; preds = %4280
  %4288 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4289 = call i32 @fileno(ptr noundef %4288) #15
  %4290 = call i32 @isatty(i32 noundef %4289) #15
  %.not521 = icmp eq i32 %4290, 0
  br i1 %.not521, label %4291, label %4292

4291:                                             ; preds = %4287, %4280
  br label %4292

4292:                                             ; preds = %4287, %4291
  %.str.61.sink2216 = phi ptr [ @.str.61, %4291 ], [ @.str.58, %4287 ]
  store i32 %4282, ptr %4281, align 4, !tbaa !5
  %4293 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4294 = load i32, ptr @test_count, align 4, !tbaa !5
  %4295 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4296 = load i32, ptr %4295, align 4, !tbaa !5
  %4297 = call ptr @s2n_strerror(i32 noundef %4296, ptr noundef nonnull @.str.60) #15
  %4298 = load i32, ptr %4295, align 4, !tbaa !5
  %4299 = call ptr @s2n_strerror_debug(i32 noundef %4298, ptr noundef nonnull @.str.60) #15
  %4300 = load i32, ptr %4281, align 4, !tbaa !5
  %4301 = call ptr @strerror(i32 noundef %4300) #15
  %4302 = load i32, ptr %4281, align 4, !tbaa !5
  %4303 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4293, ptr noundef nonnull %.str.61.sink2216, i32 noundef %4294, ptr noundef nonnull @.str.65, ptr noundef nonnull @.str.57, i32 noundef 330, ptr noundef %4297, ptr noundef %4299, ptr noundef %4301, i32 noundef %4302) #17
  call void @exit(i32 noundef 1) #18
  unreachable

4304:                                             ; preds = %4277
  %4305 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4306 = trunc nuw i8 %4305 to i1
  br i1 %4306, label %4307, label %4318

4307:                                             ; preds = %4304
  %4308 = load ptr, ptr @stdout, align 8, !tbaa !9
  %4309 = call i32 @fileno(ptr noundef %4308) #15
  %4310 = call i32 @isatty(i32 noundef %4309) #15
  %.not518 = icmp eq i32 %4310, 0
  br i1 %.not518, label %4318, label %4311

4311:                                             ; preds = %4307
  %4312 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not520 = icmp eq i32 %4312, 0
  %4313 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not520, label %4316, label %4314

4314:                                             ; preds = %4311
  %4315 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4313, ptr noundef nonnull @.str.66, i32 noundef %4312) #15
  br label %4325

4316:                                             ; preds = %4311
  %4317 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4313, ptr noundef nonnull @.str.67) #15
  br label %4325

4318:                                             ; preds = %4307, %4304
  %4319 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not519 = icmp eq i32 %4319, 0
  %4320 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not519, label %4323, label %4321

4321:                                             ; preds = %4318
  %4322 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4320, ptr noundef nonnull @.str.68, i32 noundef %4319) #15
  br label %4325

4323:                                             ; preds = %4318
  %4324 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4320, ptr noundef nonnull @.str.69) #15
  br label %4325

4325:                                             ; preds = %.thread630, %1700, %4316, %4314, %4323, %4321, %4247, %180, %178, %187, %185
  %.10 = phi i32 [ -1, %1700 ], [ %.8, %4247 ], [ 0, %185 ], [ 0, %187 ], [ 0, %178 ], [ 0, %180 ], [ 0, %4321 ], [ 0, %4323 ], [ 0, %4314 ], [ 0, %4316 ], [ -1, %.thread630 ]
  ret i32 %.10
}

; Function Attrs: nofree nounwind
declare noundef i32 @fprintf(ptr nocapture noundef, ptr nocapture noundef readonly, ...) local_unnamed_addr #9

; Function Attrs: nofree nounwind
declare noundef i32 @fflush(ptr nocapture noundef) local_unnamed_addr #9

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) local_unnamed_addr #6

declare i32 @s2n_print_stacktrace(ptr noundef) local_unnamed_addr #6

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

; Function Attrs: nofree nounwind
declare noundef i32 @fileno(ptr nocapture noundef) local_unnamed_addr #9

declare ptr @s2n_strerror(i32 noundef, ptr noundef) local_unnamed_addr #6

declare ptr @s2n_strerror_debug(i32 noundef, ptr noundef) local_unnamed_addr #6

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

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

declare i32 @s2n_enable_atexit() local_unnamed_addr #6

declare i32 @s2n_init() local_unnamed_addr #6

declare zeroext i1 @s2n_is_tls13_fully_supported(...) local_unnamed_addr #6

declare i32 @s2n_cleanup() local_unnamed_addr #6

declare ptr @s2n_connection_new(i32 noundef) local_unnamed_addr #6

declare i32 @s2n_ecc_evp_generate_ephemeral_key(ptr noundef) local_unnamed_addr #6

declare i32 @s2n_array_pushback(ptr noundef, ptr noundef) local_unnamed_addr #6

declare i32 @s2n_psk_init(ptr noundef, i32 noundef) local_unnamed_addr #6

declare i32 @s2n_psk_set_identity(ptr noundef, ptr noundef, i16 noundef zeroext) local_unnamed_addr #6

declare i32 @s2n_psk_set_secret(ptr noundef, ptr noundef, i16 noundef zeroext) local_unnamed_addr #6

declare i32 @s2n_free(ptr noundef) local_unnamed_addr #6

declare i32 @s2n_array_get(ptr noundef, i32 noundef, ptr noundef) local_unnamed_addr #6

declare i32 @s2n_connection_free(ptr noundef) local_unnamed_addr #6

declare i32 @s2n_realloc(ptr noundef, i32 noundef) local_unnamed_addr #6

declare ptr @s2n_config_new() local_unnamed_addr #6

declare i32 @s2n_config_set_unsafe_for_testing(ptr noundef) local_unnamed_addr #6

; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite)
declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #12

declare i32 @s2n_read_test_pem_and_len(ptr noundef, ptr noundef, ptr noundef, i64 noundef) local_unnamed_addr #6

declare ptr @s2n_cert_chain_and_key_new() local_unnamed_addr #6

declare i32 @s2n_cert_chain_and_key_load_pem_bytes(ptr noundef, ptr noundef, i32 noundef, ptr noundef, i32 noundef) local_unnamed_addr #6

declare i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef, ptr noundef) local_unnamed_addr #6

declare i32 @s2n_connection_set_config(ptr noundef, ptr noundef) local_unnamed_addr #6

declare i32 @s2n_stuffer_growable_alloc(ptr noundef, i32 noundef) local_unnamed_addr #6

declare i32 @s2n_connection_set_io_stuffers(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #6

declare i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef, ptr noundef) local_unnamed_addr #6

declare i32 @s2n_connection_set_cipher_preferences(ptr noundef, ptr noundef) local_unnamed_addr #6

declare i32 @s2n_stuffer_free(ptr noundef) local_unnamed_addr #6

declare i32 @s2n_cert_chain_and_key_free(ptr noundef) local_unnamed_addr #6

declare i32 @s2n_config_free(ptr noundef) local_unnamed_addr #6

; Function Attrs: mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite)
declare void @free(ptr allocptr nocapture noundef) local_unnamed_addr #13

; Function Attrs: nofree nounwind willreturn memory(argmem: read)
declare i32 @bcmp(ptr nocapture, ptr nocapture, i64) local_unnamed_addr #14

attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #3 = { 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 #4 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #5 = { 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 #6 = { "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 = { 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 #8 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #9 = { 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 #10 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #11 = { 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 #12 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "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 #13 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "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 #14 = { nofree nounwind willreturn memory(argmem: read) }
attributes #15 = { nounwind }
attributes #16 = { nounwind willreturn memory(none) }
attributes #17 = { cold nounwind }
attributes #18 = { noreturn nounwind }
attributes #19 = { nounwind willreturn memory(read) }
attributes #20 = { nounwind allocsize(0) }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"_Bool", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = !{!16, !10, i64 232}
!16 = !{!"s2n_connection", !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40, !10, i64 48, !10, i64 56, !10, i64 64, !10, i64 72, !7, i64 80, !7, i64 102, !7, i64 124, !6, i64 148, !6, i64 152, !17, i64 160, !18, i64 168, !18, i64 176, !7, i64 184, !7, i64 216, !7, i64 217, !7, i64 218, !7, i64 219, !7, i64 220, !7, i64 221, !7, i64 222, !10, i64 224, !10, i64 232, !19, i64 240, !10, i64 632, !10, i64 640, !20, i64 648, !26, i64 1144, !29, i64 1688, !10, i64 1752, !7, i64 1760, !6, i64 1764, !7, i64 1768, !32, i64 1776, !32, i64 1816, !32, i64 1856, !32, i64 1896, !6, i64 1936, !18, i64 1944, !7, i64 1952, !32, i64 1960, !7, i64 2000, !7, i64 2001, !7, i64 2002, !12, i64 2003, !33, i64 2004, !33, i64 2008, !34, i64 2016, !31, i64 2208, !6, i64 2212, !31, i64 2216, !18, i64 2224, !7, i64 2232, !18, i64 2240, !18, i64 2248, !18, i64 2256, !33, i64 2264, !33, i64 2268, !7, i64 2272, !7, i64 2528, !6, i64 2784, !25, i64 2792, !6, i64 2816, !25, i64 2824, !25, i64 2848, !25, i64 2872, !36, i64 2896, !38, i64 3704, !10, i64 3760, !10, i64 3768, !7, i64 3776, !6, i64 3780, !25, i64 3784, !6, i64 3808, !40, i64 3816, !7, i64 3848, !32, i64 3992, !25, i64 4032, !25, i64 4056, !12, i64 4080, !12, i64 4081, !12, i64 4082, !31, i64 4084, !31, i64 4086, !6, i64 4088, !6, i64 4092, !25, i64 4096, !6, i64 4120, !41, i64 4128, !33, i64 4176, !7, i64 4180, !7, i64 4181}
!17 = !{!"s2n_timer", !18, i64 0}
!18 = !{!"long", !7, i64 0}
!19 = !{!"s2n_secrets", !7, i64 0, !6, i64 388}
!20 = !{!"s2n_kex_parameters", !21, i64 0, !22, i64 8, !7, i64 24, !22, i64 56, !23, i64 72, !23, i64 184, !7, i64 296, !24, i64 360, !25, i64 448, !25, i64 472}
!21 = !{!"s2n_dh_params", !10, i64 0}
!22 = !{!"s2n_ecc_evp_params", !10, i64 0, !10, i64 8}
!23 = !{!"s2n_kem_group_params", !10, i64 0, !24, i64 8, !22, i64 96}
!24 = !{!"s2n_kem_params", !10, i64 0, !25, i64 8, !25, i64 32, !25, i64 56, !12, i64 80}
!25 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!26 = !{!"s2n_handshake_parameters", !27, i64 0, !27, i64 48, !25, i64 96, !6, i64 120, !28, i64 124, !10, i64 384, !10, i64 392, !10, i64 400, !7, i64 408, !7, i64 440, !7, i64 472, !7, i64 473, !7, i64 474, !7, i64 506}
!27 = !{!"s2n_pkey", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40}
!28 = !{!"s2n_sig_scheme_list", !7, i64 0, !7, i64 256}
!29 = !{!"s2n_psk_parameters", !6, i64 0, !30, i64 8, !31, i64 40, !31, i64 42, !10, i64 48, !6, i64 56}
!30 = !{!"s2n_array", !25, i64 0, !6, i64 24, !6, i64 28}
!31 = !{!"short", !7, i64 0}
!32 = !{!"s2n_stuffer", !25, i64 0, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 36, !6, i64 36}
!33 = !{!"", !6, i64 0}
!34 = !{!"s2n_handshake", !32, i64 0, !10, i64 40, !7, i64 48, !7, i64 56, !7, i64 104, !7, i64 152, !6, i64 156, !6, i64 160, !6, i64 164, !6, i64 168, !35, i64 176, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 188}
!35 = !{!"s2n_offered_early_data", !10, i64 0}
!36 = !{!"s2n_client_hello", !25, i64 0, !37, i64 24, !25, i64 728, !25, i64 752, !25, i64 776, !7, i64 800, !7, i64 801, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802}
!37 = !{!"", !7, i64 0, !25, i64 672, !31, i64 696}
!38 = !{!"s2n_x509_validator", !10, i64 0, !10, i64 8, !7, i64 16, !7, i64 17, !31, i64 18, !10, i64 24, !6, i64 32, !10, i64 40, !39, i64 48, !12, i64 52}
!39 = !{!"s2n_cert_validation_info", !6, i64 0, !6, i64 0}
!40 = !{!"s2n_ticket_fields", !25, i64 0, !6, i64 24}
!41 = !{!"s2n_post_handshake", !32, i64 0, !7, i64 40}
!42 = !{!43, !10, i64 0}
!43 = !{!"s2n_crypto_parameters", !10, i64 0, !44, i64 8, !44, i64 16, !45, i64 24, !45, i64 456, !7, i64 888, !7, i64 904, !7, i64 920, !7, i64 928}
!44 = !{!"s2n_session_key", !10, i64 0}
!45 = !{!"s2n_hmac_state", !6, i64 0, !31, i64 4, !6, i64 8, !31, i64 12, !7, i64 14, !46, i64 16, !46, i64 72, !46, i64 128, !46, i64 184, !7, i64 240, !7, i64 368}
!46 = !{!"s2n_hash_state", !10, i64 0, !6, i64 8, !7, i64 12, !18, i64 16, !7, i64 24}
!47 = !{!48, !10, i64 8}
!48 = !{!"s2n_ecc_preferences", !7, i64 0, !10, i64 8}
!49 = !{!16, !10, i64 656}
!50 = !{!16, !10, i64 704}
!51 = !{!16, !6, i64 1708}
!52 = !{!53, !6, i64 16}
!53 = !{!"s2n_psk", !6, i64 0, !25, i64 8, !25, i64 32, !6, i64 56, !6, i64 60, !18, i64 64, !25, i64 72, !54, i64 96, !18, i64 160}
!54 = !{!"s2n_early_data_config", !6, i64 0, !7, i64 4, !10, i64 8, !25, i64 16, !25, i64 40}
!55 = !{!53, !10, i64 8}
!56 = !{!53, !6, i64 40}
!57 = !{!53, !10, i64 32}
!58 = distinct !{!58, !59}
!59 = !{!"llvm.loop.mustprogress"}
!60 = !{!16, !6, i64 1720}
!61 = !{!16, !10, i64 1736}
!62 = distinct !{!62, !59}
!63 = !{!53, !10, i64 72}
!64 = !{!53, !6, i64 80}
!65 = distinct !{!65, !59}
!66 = !{!16, !31, i64 1730}
!67 = distinct !{!67, !59}
!68 = !{!69, !10, i64 0}
!69 = !{!"s2n_debug_info", !10, i64 0, !10, i64 8}
!70 = !{!69, !10, i64 8}
!71 = !{!16, !7, i64 220}
!72 = !{!73, !7, i64 8}
!73 = !{!"s2n_tls13_keys", !6, i64 0, !6, i64 4, !7, i64 8, !25, i64 16, !25, i64 40, !7, i64 64, !7, i64 112, !45, i64 160}
!74 = !{!16, !6, i64 2172}
!75 = !{!25, !6, i64 8}
!76 = !{!25, !10, i64 0}
!77 = !{!73, !6, i64 48}
!78 = !{!73, !10, i64 40}
!79 = !{!73, !6, i64 24}
!80 = !{!73, !10, i64 16}


; Effective O3 passes: CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,LowerExpectIntrinsicPass,PostOrderFunctionAttrsPass,SROAPass,SimplifyCFGPass,TailCallElimPass