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

@s2n_use_color_in_output = external dso_local global i8, align 1
@pkey_op = external dso_local global ptr, align 8
@test_digest_data = external dso_local global [14 x i8], align 1
@test_encrypted_data = external dso_local global [17 x i8], align 16
@offload_callback_count = external dso_local global i8, align 1
@test_count = external dso_local global i32, align 4
@stderr = external global ptr, align 8
@.str = external hidden unnamed_addr constant [101 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [78 x i8], align 1
@s2n_errno = external thread_local global i32, align 4
@.str.3 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [70 x i8], align 1
@stdout = external global ptr, align 8
@.str.62 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [200 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [155 x i8], align 1
@__const.main.test_cipher_suites = external hidden unnamed_addr constant [2 x ptr], align 16
@kem_preferences_null = external constant %struct.s2n_kem_preferences, align 8
@s2n_signature_preferences_20200207 = external constant %struct.s2n_signature_preferences, align 8
@s2n_ecc_preferences_20200310 = external constant %struct.s2n_ecc_preferences, align 8
@.str.75 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [108 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.81 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [158 x i8], align 1
@.str.85 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.86 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.88 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.89 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.91 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.92 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.93 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.94 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.95 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.96 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.97 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.98 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.99 = external hidden unnamed_addr constant [104 x i8], align 1
@.str.100 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.101 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.102 = external hidden unnamed_addr constant [119 x i8], align 1
@.str.103 = external hidden unnamed_addr constant [118 x i8], align 1
@.str.104 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.105 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.106 = external hidden unnamed_addr constant [107 x i8], align 1
@async_handler_sign_operation_called = external hidden global i8, align 1
@.str.107 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.108 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.109 = external hidden unnamed_addr constant [115 x i8], align 1
@.str.110 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.111 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.112 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.113 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.114 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.115 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.116 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.117 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.118 = external hidden unnamed_addr constant [125 x i8], align 1
@.str.119 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.120 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.121 = external hidden unnamed_addr constant [119 x i8], align 1
@.str.122 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.123 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.124 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.125 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.126 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.127 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.128 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.129 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.130 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.131 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.132 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.133 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.134 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.135 = external hidden unnamed_addr constant [121 x i8], align 1
@.str.136 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.137 = external hidden unnamed_addr constant [95 x i8], align 1
@.str.138 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.139 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.140 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.141 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.142 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.143 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.144 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.145 = external hidden unnamed_addr constant [25 x i8], align 1

; Function Attrs: nounwind uwtable
declare dso_local i32 @async_pkey_apply_in_callback(ptr noundef, 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: nounwind willreturn memory(none)
declare ptr @__errno_location() #2

declare i32 @s2n_print_stacktrace(ptr noundef) #3

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

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

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

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

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

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

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

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

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

declare i32 @s2n_async_pkey_op_apply(ptr noundef, ptr noundef) #3

declare i32 @s2n_async_pkey_op_free(ptr noundef) #3

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

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

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

declare i32 @s2n_hash_new(ptr noundef) #3

declare i32 @s2n_hash_init(ptr noundef, i32 noundef) #3

declare i32 @s2n_hash_update(ptr noundef, ptr noundef, i32 noundef) #3

declare i32 @s2n_hash_free(ptr noundef) #3

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

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

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

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

declare void @s2n_debug_info_reset() #3

; Function Attrs: nounwind uwtable
declare dso_local i32 @async_pkey_invalid_complete(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 [12000 x i8], align 16
  %11 = alloca i32, align 4
  %12 = alloca ptr, align 8
  %13 = alloca i32, align 4
  %14 = alloca ptr, align 8
  %15 = alloca i32, align 4
  %16 = alloca [2 x ptr], align 16
  %17 = alloca i64, align 8
  %18 = alloca %struct.s2n_cipher_preferences, align 8
  %19 = alloca %struct.s2n_security_policy, align 8
  %20 = alloca i32, align 4
  %21 = alloca ptr, align 8
  %22 = alloca ptr, align 8
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca i32, align 4
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca i32, align 4
  %30 = alloca i32, align 4
  %31 = alloca ptr, align 8
  %32 = alloca i32, align 4
  %33 = alloca i32, align 4
  %34 = alloca ptr, align 8
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca %struct.s2n_test_io_pair, align 4
  %38 = alloca i32, align 4
  %39 = alloca i32, align 4
  %40 = alloca i32, align 4
  %41 = alloca i32, align 4
  %42 = alloca i32, align 4
  %43 = alloca i32, align 4
  %44 = alloca i32, align 4
  %45 = alloca i32, align 4
  %46 = alloca i32, align 4
  %47 = alloca ptr, align 8
  %48 = alloca ptr, align 8
  %49 = alloca i32, align 4
  %50 = alloca i32, align 4
  %51 = alloca i32, align 4
  %52 = alloca i32, align 4
  %53 = alloca i32, align 4
  %54 = alloca i32, align 4
  %55 = alloca i32, align 4
  %56 = alloca i32, align 4
  %57 = alloca ptr, align 8
  %58 = alloca i32, align 4
  %59 = alloca i32, align 4
  %60 = alloca ptr, align 8
  %61 = alloca i32, align 4
  %62 = alloca i32, align 4
  %63 = alloca %struct.s2n_test_io_pair, align 4
  %64 = alloca i32, align 4
  %65 = alloca i32, align 4
  %66 = alloca i32, align 4
  %67 = alloca i32, align 4
  %68 = alloca i32, align 4
  %69 = alloca i32, align 4
  %70 = alloca i32, align 4
  %71 = alloca i32, align 4
  %72 = alloca i32, align 4
  %73 = alloca ptr, align 8
  %74 = alloca ptr, align 8
  %75 = alloca i32, align 4
  %76 = alloca i32, align 4
  %77 = alloca i32, align 4
  %78 = alloca i32, align 4
  %79 = alloca i32, align 4
  %80 = alloca i32, align 4
  %81 = alloca i32, align 4
  %82 = alloca i32, align 4
  %83 = alloca ptr, align 8
  %84 = alloca i32, align 4
  %85 = alloca i32, align 4
  %86 = alloca ptr, align 8
  %87 = alloca i32, align 4
  %88 = alloca i32, align 4
  %89 = alloca %struct.s2n_test_io_pair, align 4
  %90 = alloca i32, align 4
  %91 = alloca i32, align 4
  %92 = alloca i32, align 4
  %93 = alloca i32, align 4
  %94 = alloca i32, align 4
  %95 = alloca i32, align 4
  %96 = alloca i32, align 4
  %97 = alloca i32, align 4
  %98 = alloca i32, align 4
  %99 = alloca i32, align 4
  %100 = alloca i32, align 4
  %101 = alloca ptr, align 8
  %102 = alloca ptr, align 8
  %103 = alloca i32, align 4
  %104 = alloca i32, align 4
  %105 = alloca i32, align 4
  %106 = alloca i32, align 4
  %107 = alloca i32, align 4
  %108 = alloca i32, align 4
  %109 = alloca i32, align 4
  %110 = alloca i32, align 4
  %111 = alloca i32, align 4
  %112 = alloca ptr, align 8
  %113 = alloca i32, align 4
  %114 = alloca i32, align 4
  %115 = alloca ptr, align 8
  %116 = alloca i32, align 4
  %117 = alloca i32, align 4
  %118 = alloca %struct.s2n_test_io_pair, align 4
  %119 = alloca i32, align 4
  %120 = alloca i32, align 4
  %121 = alloca i32, align 4
  %122 = alloca i32, align 4
  %123 = alloca i32, align 4
  %124 = alloca i32, align 4
  %125 = alloca i32, align 4
  %126 = alloca i32, align 4
  %127 = alloca i32, align 4
  %128 = alloca ptr, align 8
  %129 = alloca i32, align 4
  %130 = alloca i32, align 4
  %131 = alloca i32, align 4
  %132 = alloca i32, align 4
  %133 = alloca ptr, align 8
  %134 = alloca i32, align 4
  %135 = alloca i32, align 4
  %136 = alloca i32, align 4
  %137 = alloca i32, align 4
  %138 = alloca ptr, align 8
  %139 = alloca i32, align 4
  %140 = alloca i32, align 4
  %141 = alloca ptr, align 8
  %142 = alloca i32, align 4
  %143 = alloca i32, align 4
  %144 = alloca %struct.s2n_test_io_pair, 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 %struct.s2n_result, align 4
  %151 = alloca %struct.s2n_result, align 4
  %152 = alloca %struct.s2n_result, align 4
  %153 = alloca %struct.s2n_result, align 4
  %154 = alloca i32, align 4
  %155 = alloca %struct.s2n_hash_state, align 8
  %156 = alloca i32, align 4
  %157 = alloca i32, align 4
  %158 = alloca i32, align 4
  %159 = alloca i32, align 4
  %160 = alloca ptr, align 8
  %161 = alloca i32, align 4
  %162 = alloca %struct.s2n_result, 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 ptr, align 8
  %171 = alloca i32, align 4
  %172 = alloca %struct.s2n_blob, align 8
  %173 = alloca i32, align 4
  %174 = alloca %struct.s2n_blob, align 8
  %175 = alloca i32, align 4
  %176 = alloca %struct.s2n_result, 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 ptr, align 8
  %185 = alloca i32, align 4
  %186 = alloca %struct.s2n_result, 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 ptr, align 8
  %198 = alloca i32, align 4
  %199 = alloca i32, align 4
  %200 = alloca i32, align 4
  %201 = alloca i32, align 4
  %202 = alloca ptr, align 8
  %203 = alloca i32, align 4
  %204 = alloca i32, align 4
  %205 = alloca ptr, align 8
  %206 = alloca i32, align 4
  %207 = alloca i32, align 4
  %208 = alloca i32, align 4
  %209 = alloca %struct.s2n_test_io_pair, align 4
  %210 = alloca i32, align 4
  %211 = alloca i32, align 4
  %212 = alloca i32, align 4
  %213 = alloca i32, align 4
  %214 = alloca %struct.s2n_result, align 4
  %215 = alloca i32, align 4
  %216 = alloca i32, align 4
  %217 = alloca i32, align 4
  %218 = alloca ptr, align 8
  %219 = alloca %struct.s2n_pkey, align 8
  %220 = alloca i32, align 4
  %221 = alloca i32, align 4
  %222 = alloca i32, align 4
  %223 = alloca i32, align 4
  %224 = alloca i32, align 4
  %225 = alloca %struct.s2n_result, align 4
  %226 = alloca %struct.s2n_result, align 4
  %227 = alloca %struct.s2n_result, align 4
  %228 = alloca i32, align 4
  %229 = alloca i32, align 4
  %230 = alloca i32, align 4
  %231 = alloca %struct.s2n_result, align 4
  %232 = alloca %struct.s2n_result, align 4
  store i32 0, ptr %3, align 4
  store i32 %0, ptr %4, align 4, !tbaa !5
  store ptr %1, ptr %5, align 8, !tbaa !9
  br label %233

233:                                              ; preds = %2
  br label %234

234:                                              ; preds = %233
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %235 = load ptr, ptr @stdout, align 8, !tbaa !9
  %236 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %235, ptr noundef @.str.62, ptr noundef @.str.2) #10
  %237 = load ptr, ptr @stdout, align 8, !tbaa !9
  %238 = call i32 @fflush(ptr noundef %237)
  br label %239

239:                                              ; preds = %234
  %240 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true)
  %241 = icmp eq i32 %240, -1
  br i1 %241, label %242, label %293

242:                                              ; preds = %239
  br label %243

243:                                              ; preds = %242
  br label %244

244:                                              ; preds = %243
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #10
  %245 = call ptr @__errno_location() #11
  %246 = load i32, ptr %245, align 4, !tbaa !5
  store i32 %246, ptr %6, align 4, !tbaa !5
  %247 = load ptr, ptr @stderr, align 8, !tbaa !9
  %248 = call i32 @s2n_print_stacktrace(ptr noundef %247)
  %249 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %250 = trunc i8 %249 to i1
  br i1 %250, label %251, label %273

251:                                              ; preds = %244
  %252 = load ptr, ptr @stderr, align 8, !tbaa !9
  %253 = call i32 @fileno(ptr noundef %252) #10
  %254 = call i32 @isatty(i32 noundef %253) #10
  %255 = icmp ne i32 %254, 0
  br i1 %255, label %256, label %273

256:                                              ; preds = %251
  %257 = load i32, ptr %6, align 4, !tbaa !5
  %258 = call ptr @__errno_location() #11
  store i32 %257, ptr %258, align 4, !tbaa !5
  %259 = load ptr, ptr @stderr, align 8, !tbaa !9
  %260 = load i32, ptr @test_count, align 4, !tbaa !5
  %261 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %262 = load i32, ptr %261, align 4, !tbaa !5
  %263 = call ptr @s2n_strerror(i32 noundef %262, ptr noundef @.str.3)
  %264 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %265 = load i32, ptr %264, align 4, !tbaa !5
  %266 = call ptr @s2n_strerror_debug(i32 noundef %265, ptr noundef @.str.3)
  %267 = call ptr @__errno_location() #11
  %268 = load i32, ptr %267, align 4, !tbaa !5
  %269 = call ptr @strerror(i32 noundef %268) #10
  %270 = call ptr @__errno_location() #11
  %271 = load i32, ptr %270, align 4, !tbaa !5
  %272 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %259, ptr noundef @.str, i32 noundef %260, ptr noundef @.str.63, ptr noundef @.str.2, i32 noundef 366, ptr noundef %263, ptr noundef %266, ptr noundef %269, i32 noundef %271) #10
  br label %290

273:                                              ; preds = %251, %244
  %274 = load i32, ptr %6, align 4, !tbaa !5
  %275 = call ptr @__errno_location() #11
  store i32 %274, ptr %275, align 4, !tbaa !5
  %276 = load ptr, ptr @stderr, align 8, !tbaa !9
  %277 = load i32, ptr @test_count, align 4, !tbaa !5
  %278 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %279 = load i32, ptr %278, align 4, !tbaa !5
  %280 = call ptr @s2n_strerror(i32 noundef %279, ptr noundef @.str.3)
  %281 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %282 = load i32, ptr %281, align 4, !tbaa !5
  %283 = call ptr @s2n_strerror_debug(i32 noundef %282, ptr noundef @.str.3)
  %284 = call ptr @__errno_location() #11
  %285 = load i32, ptr %284, align 4, !tbaa !5
  %286 = call ptr @strerror(i32 noundef %285) #10
  %287 = call ptr @__errno_location() #11
  %288 = load i32, ptr %287, align 4, !tbaa !5
  %289 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %276, ptr noundef @.str.4, i32 noundef %277, ptr noundef @.str.63, ptr noundef @.str.2, i32 noundef 366, ptr noundef %280, ptr noundef %283, ptr noundef %286, i32 noundef %288) #10
  br label %290

290:                                              ; preds = %273, %256
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #10
  br label %291

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

292:                                              ; No predecessors!
  br label %293

293:                                              ; preds = %292, %239
  br label %294

294:                                              ; preds = %293
  br label %295

295:                                              ; preds = %294
  %296 = load i32, ptr @test_count, align 4, !tbaa !5
  %297 = add nsw i32 %296, 1
  store i32 %297, ptr @test_count, align 4, !tbaa !5
  %298 = call i32 @s2n_enable_atexit()
  %299 = icmp eq i32 %298, -1
  br i1 %299, label %300, label %351

300:                                              ; preds = %295
  br label %301

301:                                              ; preds = %300
  br label %302

302:                                              ; preds = %301
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #10
  %303 = call ptr @__errno_location() #11
  %304 = load i32, ptr %303, align 4, !tbaa !5
  store i32 %304, ptr %7, align 4, !tbaa !5
  %305 = load ptr, ptr @stderr, align 8, !tbaa !9
  %306 = call i32 @s2n_print_stacktrace(ptr noundef %305)
  %307 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %308 = trunc i8 %307 to i1
  br i1 %308, label %309, label %331

309:                                              ; preds = %302
  %310 = load ptr, ptr @stderr, align 8, !tbaa !9
  %311 = call i32 @fileno(ptr noundef %310) #10
  %312 = call i32 @isatty(i32 noundef %311) #10
  %313 = icmp ne i32 %312, 0
  br i1 %313, label %314, label %331

314:                                              ; preds = %309
  %315 = load i32, ptr %7, align 4, !tbaa !5
  %316 = call ptr @__errno_location() #11
  store i32 %315, ptr %316, align 4, !tbaa !5
  %317 = load ptr, ptr @stderr, align 8, !tbaa !9
  %318 = load i32, ptr @test_count, align 4, !tbaa !5
  %319 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %320 = load i32, ptr %319, align 4, !tbaa !5
  %321 = call ptr @s2n_strerror(i32 noundef %320, ptr noundef @.str.3)
  %322 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %323 = load i32, ptr %322, align 4, !tbaa !5
  %324 = call ptr @s2n_strerror_debug(i32 noundef %323, ptr noundef @.str.3)
  %325 = call ptr @__errno_location() #11
  %326 = load i32, ptr %325, align 4, !tbaa !5
  %327 = call ptr @strerror(i32 noundef %326) #10
  %328 = call ptr @__errno_location() #11
  %329 = load i32, ptr %328, align 4, !tbaa !5
  %330 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %317, ptr noundef @.str, i32 noundef %318, ptr noundef @.str.64, ptr noundef @.str.2, i32 noundef 366, ptr noundef %321, ptr noundef %324, ptr noundef %327, i32 noundef %329) #10
  br label %348

331:                                              ; preds = %309, %302
  %332 = load i32, ptr %7, align 4, !tbaa !5
  %333 = call ptr @__errno_location() #11
  store i32 %332, ptr %333, 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 @.str.3)
  %339 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %340 = load i32, ptr %339, align 4, !tbaa !5
  %341 = call ptr @s2n_strerror_debug(i32 noundef %340, ptr noundef @.str.3)
  %342 = call ptr @__errno_location() #11
  %343 = load i32, ptr %342, align 4, !tbaa !5
  %344 = call ptr @strerror(i32 noundef %343) #10
  %345 = call ptr @__errno_location() #11
  %346 = load i32, ptr %345, align 4, !tbaa !5
  %347 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %334, ptr noundef @.str.4, i32 noundef %335, ptr noundef @.str.64, ptr noundef @.str.2, i32 noundef 366, ptr noundef %338, ptr noundef %341, ptr noundef %344, i32 noundef %346) #10
  br label %348

348:                                              ; preds = %331, %314
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #10
  br label %349

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

350:                                              ; No predecessors!
  br label %351

351:                                              ; preds = %350, %295
  br label %352

352:                                              ; preds = %351
  br label %353

353:                                              ; preds = %352
  br label %354

354:                                              ; preds = %353
  %355 = call i32 @s2n_init()
  %356 = icmp eq i32 %355, -1
  br i1 %356, label %357, label %408

357:                                              ; preds = %354
  br label %358

358:                                              ; preds = %357
  br label %359

359:                                              ; preds = %358
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #10
  %360 = call ptr @__errno_location() #11
  %361 = load i32, ptr %360, align 4, !tbaa !5
  store i32 %361, ptr %8, align 4, !tbaa !5
  %362 = load ptr, ptr @stderr, align 8, !tbaa !9
  %363 = call i32 @s2n_print_stacktrace(ptr noundef %362)
  %364 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %365 = trunc i8 %364 to i1
  br i1 %365, label %366, label %388

366:                                              ; preds = %359
  %367 = load ptr, ptr @stderr, align 8, !tbaa !9
  %368 = call i32 @fileno(ptr noundef %367) #10
  %369 = call i32 @isatty(i32 noundef %368) #10
  %370 = icmp ne i32 %369, 0
  br i1 %370, label %371, label %388

371:                                              ; preds = %366
  %372 = load i32, ptr %8, align 4, !tbaa !5
  %373 = call ptr @__errno_location() #11
  store i32 %372, ptr %373, align 4, !tbaa !5
  %374 = load ptr, ptr @stderr, align 8, !tbaa !9
  %375 = load i32, ptr @test_count, align 4, !tbaa !5
  %376 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %377 = load i32, ptr %376, align 4, !tbaa !5
  %378 = call ptr @s2n_strerror(i32 noundef %377, ptr noundef @.str.3)
  %379 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %380 = load i32, ptr %379, align 4, !tbaa !5
  %381 = call ptr @s2n_strerror_debug(i32 noundef %380, ptr noundef @.str.3)
  %382 = call ptr @__errno_location() #11
  %383 = load i32, ptr %382, align 4, !tbaa !5
  %384 = call ptr @strerror(i32 noundef %383) #10
  %385 = call ptr @__errno_location() #11
  %386 = load i32, ptr %385, align 4, !tbaa !5
  %387 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %374, ptr noundef @.str, i32 noundef %375, ptr noundef @.str.65, ptr noundef @.str.2, i32 noundef 366, ptr noundef %378, ptr noundef %381, ptr noundef %384, i32 noundef %386) #10
  br label %405

388:                                              ; preds = %366, %359
  %389 = load i32, ptr %8, align 4, !tbaa !5
  %390 = call ptr @__errno_location() #11
  store i32 %389, ptr %390, align 4, !tbaa !5
  %391 = load ptr, ptr @stderr, align 8, !tbaa !9
  %392 = load i32, ptr @test_count, align 4, !tbaa !5
  %393 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %394 = load i32, ptr %393, align 4, !tbaa !5
  %395 = call ptr @s2n_strerror(i32 noundef %394, ptr noundef @.str.3)
  %396 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %397 = load i32, ptr %396, align 4, !tbaa !5
  %398 = call ptr @s2n_strerror_debug(i32 noundef %397, ptr noundef @.str.3)
  %399 = call ptr @__errno_location() #11
  %400 = load i32, ptr %399, align 4, !tbaa !5
  %401 = call ptr @strerror(i32 noundef %400) #10
  %402 = call ptr @__errno_location() #11
  %403 = load i32, ptr %402, align 4, !tbaa !5
  %404 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %391, ptr noundef @.str.4, i32 noundef %392, ptr noundef @.str.65, ptr noundef @.str.2, i32 noundef 366, ptr noundef %395, ptr noundef %398, ptr noundef %401, i32 noundef %403) #10
  br label %405

405:                                              ; preds = %388, %371
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #10
  br label %406

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

407:                                              ; No predecessors!
  br label %408

408:                                              ; preds = %407, %354
  br label %409

409:                                              ; preds = %408
  br label %410

410:                                              ; preds = %409
  br label %411

411:                                              ; preds = %410
  %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 = call i32 (...) @s2n_disable_tls13_in_test()
  %415 = icmp eq i32 %414, -1
  br i1 %415, label %416, label %467

416:                                              ; preds = %411
  br label %417

417:                                              ; preds = %416
  br label %418

418:                                              ; preds = %417
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #10
  %419 = call ptr @__errno_location() #11
  %420 = load i32, ptr %419, align 4, !tbaa !5
  store i32 %420, ptr %9, align 4, !tbaa !5
  %421 = load ptr, ptr @stderr, align 8, !tbaa !9
  %422 = call i32 @s2n_print_stacktrace(ptr noundef %421)
  %423 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %424 = trunc i8 %423 to i1
  br i1 %424, label %425, label %447

425:                                              ; preds = %418
  %426 = load ptr, ptr @stderr, align 8, !tbaa !9
  %427 = call i32 @fileno(ptr noundef %426) #10
  %428 = call i32 @isatty(i32 noundef %427) #10
  %429 = icmp ne i32 %428, 0
  br i1 %429, label %430, label %447

430:                                              ; preds = %425
  %431 = load i32, ptr %9, align 4, !tbaa !5
  %432 = call ptr @__errno_location() #11
  store i32 %431, ptr %432, align 4, !tbaa !5
  %433 = load ptr, ptr @stderr, align 8, !tbaa !9
  %434 = load i32, ptr @test_count, align 4, !tbaa !5
  %435 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %436 = load i32, ptr %435, align 4, !tbaa !5
  %437 = call ptr @s2n_strerror(i32 noundef %436, ptr noundef @.str.3)
  %438 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %439 = load i32, ptr %438, align 4, !tbaa !5
  %440 = call ptr @s2n_strerror_debug(i32 noundef %439, ptr noundef @.str.3)
  %441 = call ptr @__errno_location() #11
  %442 = load i32, ptr %441, align 4, !tbaa !5
  %443 = call ptr @strerror(i32 noundef %442) #10
  %444 = call ptr @__errno_location() #11
  %445 = load i32, ptr %444, align 4, !tbaa !5
  %446 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %433, ptr noundef @.str, i32 noundef %434, ptr noundef @.str.66, ptr noundef @.str.2, i32 noundef 367, ptr noundef %437, ptr noundef %440, ptr noundef %443, i32 noundef %445) #10
  br label %464

447:                                              ; preds = %425, %418
  %448 = load i32, ptr %9, align 4, !tbaa !5
  %449 = call ptr @__errno_location() #11
  store i32 %448, ptr %449, align 4, !tbaa !5
  %450 = load ptr, ptr @stderr, align 8, !tbaa !9
  %451 = load i32, ptr @test_count, align 4, !tbaa !5
  %452 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %453 = load i32, ptr %452, align 4, !tbaa !5
  %454 = call ptr @s2n_strerror(i32 noundef %453, ptr noundef @.str.3)
  %455 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %456 = load i32, ptr %455, align 4, !tbaa !5
  %457 = call ptr @s2n_strerror_debug(i32 noundef %456, ptr noundef @.str.3)
  %458 = call ptr @__errno_location() #11
  %459 = load i32, ptr %458, align 4, !tbaa !5
  %460 = call ptr @strerror(i32 noundef %459) #10
  %461 = call ptr @__errno_location() #11
  %462 = load i32, ptr %461, align 4, !tbaa !5
  %463 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %450, ptr noundef @.str.4, i32 noundef %451, ptr noundef @.str.66, ptr noundef @.str.2, i32 noundef 367, ptr noundef %454, ptr noundef %457, ptr noundef %460, i32 noundef %462) #10
  br label %464

464:                                              ; preds = %447, %430
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #10
  br label %465

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

466:                                              ; No predecessors!
  br label %467

467:                                              ; preds = %466, %411
  br label %468

468:                                              ; preds = %467
  call void @llvm.lifetime.start.p0(i64 12000, ptr %10) #10
  br label %469

469:                                              ; preds = %468
  %470 = load i32, ptr @test_count, align 4, !tbaa !5
  %471 = add nsw i32 %470, 1
  store i32 %471, ptr @test_count, align 4, !tbaa !5
  %472 = getelementptr inbounds [12000 x i8], ptr %10, i64 0, i64 0
  %473 = call i32 @s2n_read_test_pem(ptr noundef @.str.67, ptr noundef %472, i64 noundef 12000)
  %474 = icmp eq i32 %473, -1
  br i1 %474, label %475, label %528

475:                                              ; preds = %469
  br label %476

476:                                              ; preds = %475
  br label %477

477:                                              ; preds = %476
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #10
  %478 = call ptr @__errno_location() #11
  %479 = load i32, ptr %478, align 4, !tbaa !5
  store i32 %479, ptr %11, align 4, !tbaa !5
  %480 = load ptr, ptr @stderr, align 8, !tbaa !9
  %481 = call i32 @s2n_print_stacktrace(ptr noundef %480)
  %482 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %483 = trunc i8 %482 to i1
  br i1 %483, label %484, label %506

484:                                              ; preds = %477
  %485 = load ptr, ptr @stderr, align 8, !tbaa !9
  %486 = call i32 @fileno(ptr noundef %485) #10
  %487 = call i32 @isatty(i32 noundef %486) #10
  %488 = icmp ne i32 %487, 0
  br i1 %488, label %489, label %506

489:                                              ; preds = %484
  %490 = load i32, ptr %11, align 4, !tbaa !5
  %491 = call ptr @__errno_location() #11
  store i32 %490, ptr %491, align 4, !tbaa !5
  %492 = load ptr, ptr @stderr, align 8, !tbaa !9
  %493 = load i32, ptr @test_count, align 4, !tbaa !5
  %494 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %495 = load i32, ptr %494, align 4, !tbaa !5
  %496 = call ptr @s2n_strerror(i32 noundef %495, ptr noundef @.str.3)
  %497 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %498 = load i32, ptr %497, align 4, !tbaa !5
  %499 = call ptr @s2n_strerror_debug(i32 noundef %498, ptr noundef @.str.3)
  %500 = call ptr @__errno_location() #11
  %501 = load i32, ptr %500, align 4, !tbaa !5
  %502 = call ptr @strerror(i32 noundef %501) #10
  %503 = call ptr @__errno_location() #11
  %504 = load i32, ptr %503, align 4, !tbaa !5
  %505 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %492, ptr noundef @.str, i32 noundef %493, ptr noundef @.str.68, ptr noundef @.str.2, i32 noundef 370, ptr noundef %496, ptr noundef %499, ptr noundef %502, i32 noundef %504) #10
  br label %523

506:                                              ; preds = %484, %477
  %507 = load i32, ptr %11, align 4, !tbaa !5
  %508 = call ptr @__errno_location() #11
  store i32 %507, ptr %508, align 4, !tbaa !5
  %509 = load ptr, ptr @stderr, align 8, !tbaa !9
  %510 = load i32, ptr @test_count, align 4, !tbaa !5
  %511 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %512 = load i32, ptr %511, align 4, !tbaa !5
  %513 = call ptr @s2n_strerror(i32 noundef %512, ptr noundef @.str.3)
  %514 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %515 = load i32, ptr %514, align 4, !tbaa !5
  %516 = call ptr @s2n_strerror_debug(i32 noundef %515, ptr noundef @.str.3)
  %517 = call ptr @__errno_location() #11
  %518 = load i32, ptr %517, align 4, !tbaa !5
  %519 = call ptr @strerror(i32 noundef %518) #10
  %520 = call ptr @__errno_location() #11
  %521 = load i32, ptr %520, align 4, !tbaa !5
  %522 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %509, ptr noundef @.str.4, i32 noundef %510, ptr noundef @.str.68, ptr noundef @.str.2, i32 noundef 370, ptr noundef %513, ptr noundef %516, ptr noundef %519, i32 noundef %521) #10
  br label %523

523:                                              ; preds = %506, %489
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #10
  br label %524

524:                                              ; preds = %523
  br label %525

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

526:                                              ; No predecessors!
  br label %527

527:                                              ; preds = %526
  br label %528

528:                                              ; preds = %527, %469
  br label %529

529:                                              ; preds = %528
  br label %530

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

531:                                              ; preds = %530
  %532 = load i32, ptr @test_count, align 4, !tbaa !5
  %533 = add nsw i32 %532, 1
  store i32 %533, ptr @test_count, align 4, !tbaa !5
  %534 = call i32 @s2n_test_cert_chain_and_key_new(ptr noundef %12, ptr noundef @.str.69, ptr noundef @.str.70)
  %535 = icmp eq i32 %534, -1
  br i1 %535, label %536, label %589

536:                                              ; preds = %531
  br label %537

537:                                              ; preds = %536
  br label %538

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

545:                                              ; preds = %538
  %546 = load ptr, ptr @stderr, align 8, !tbaa !9
  %547 = call i32 @fileno(ptr noundef %546) #10
  %548 = call i32 @isatty(i32 noundef %547) #10
  %549 = icmp ne i32 %548, 0
  br i1 %549, label %550, label %567

550:                                              ; preds = %545
  %551 = load i32, ptr %13, align 4, !tbaa !5
  %552 = call ptr @__errno_location() #11
  store i32 %551, ptr %552, align 4, !tbaa !5
  %553 = load ptr, ptr @stderr, align 8, !tbaa !9
  %554 = load i32, ptr @test_count, align 4, !tbaa !5
  %555 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %556 = load i32, ptr %555, align 4, !tbaa !5
  %557 = call ptr @s2n_strerror(i32 noundef %556, ptr noundef @.str.3)
  %558 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %559 = load i32, ptr %558, align 4, !tbaa !5
  %560 = call ptr @s2n_strerror_debug(i32 noundef %559, ptr noundef @.str.3)
  %561 = call ptr @__errno_location() #11
  %562 = load i32, ptr %561, align 4, !tbaa !5
  %563 = call ptr @strerror(i32 noundef %562) #10
  %564 = call ptr @__errno_location() #11
  %565 = load i32, ptr %564, align 4, !tbaa !5
  %566 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %553, ptr noundef @.str, i32 noundef %554, ptr noundef @.str.71, ptr noundef @.str.2, i32 noundef 374, ptr noundef %557, ptr noundef %560, ptr noundef %563, i32 noundef %565) #10
  br label %584

567:                                              ; preds = %545, %538
  %568 = load i32, ptr %13, align 4, !tbaa !5
  %569 = call ptr @__errno_location() #11
  store i32 %568, ptr %569, align 4, !tbaa !5
  %570 = load ptr, ptr @stderr, align 8, !tbaa !9
  %571 = load i32, ptr @test_count, align 4, !tbaa !5
  %572 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %573 = load i32, ptr %572, align 4, !tbaa !5
  %574 = call ptr @s2n_strerror(i32 noundef %573, ptr noundef @.str.3)
  %575 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %576 = load i32, ptr %575, align 4, !tbaa !5
  %577 = call ptr @s2n_strerror_debug(i32 noundef %576, ptr noundef @.str.3)
  %578 = call ptr @__errno_location() #11
  %579 = load i32, ptr %578, align 4, !tbaa !5
  %580 = call ptr @strerror(i32 noundef %579) #10
  %581 = call ptr @__errno_location() #11
  %582 = load i32, ptr %581, align 4, !tbaa !5
  %583 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %570, ptr noundef @.str.4, i32 noundef %571, ptr noundef @.str.71, ptr noundef @.str.2, i32 noundef 374, ptr noundef %574, ptr noundef %577, ptr noundef %580, i32 noundef %582) #10
  br label %584

584:                                              ; preds = %567, %550
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #10
  br label %585

585:                                              ; preds = %584
  br label %586

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

587:                                              ; No predecessors!
  br label %588

588:                                              ; preds = %587
  br label %589

589:                                              ; preds = %588, %531
  br label %590

590:                                              ; preds = %589
  br label %591

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

592:                                              ; preds = %591
  %593 = load i32, ptr @test_count, align 4, !tbaa !5
  %594 = add nsw i32 %593, 1
  store i32 %594, ptr @test_count, align 4, !tbaa !5
  %595 = call i32 @s2n_test_cert_chain_and_key_new(ptr noundef %14, ptr noundef @.str.72, ptr noundef @.str.73)
  %596 = icmp eq i32 %595, -1
  br i1 %596, label %597, label %650

597:                                              ; preds = %592
  br label %598

598:                                              ; preds = %597
  br label %599

599:                                              ; preds = %598
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #10
  %600 = call ptr @__errno_location() #11
  %601 = load i32, ptr %600, align 4, !tbaa !5
  store i32 %601, ptr %15, align 4, !tbaa !5
  %602 = load ptr, ptr @stderr, align 8, !tbaa !9
  %603 = call i32 @s2n_print_stacktrace(ptr noundef %602)
  %604 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %605 = trunc i8 %604 to i1
  br i1 %605, label %606, label %628

606:                                              ; preds = %599
  %607 = load ptr, ptr @stderr, align 8, !tbaa !9
  %608 = call i32 @fileno(ptr noundef %607) #10
  %609 = call i32 @isatty(i32 noundef %608) #10
  %610 = icmp ne i32 %609, 0
  br i1 %610, label %611, label %628

611:                                              ; preds = %606
  %612 = load i32, ptr %15, align 4, !tbaa !5
  %613 = call ptr @__errno_location() #11
  store i32 %612, ptr %613, align 4, !tbaa !5
  %614 = load ptr, ptr @stderr, align 8, !tbaa !9
  %615 = load i32, ptr @test_count, align 4, !tbaa !5
  %616 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %617 = load i32, ptr %616, align 4, !tbaa !5
  %618 = call ptr @s2n_strerror(i32 noundef %617, ptr noundef @.str.3)
  %619 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %620 = load i32, ptr %619, align 4, !tbaa !5
  %621 = call ptr @s2n_strerror_debug(i32 noundef %620, ptr noundef @.str.3)
  %622 = call ptr @__errno_location() #11
  %623 = load i32, ptr %622, align 4, !tbaa !5
  %624 = call ptr @strerror(i32 noundef %623) #10
  %625 = call ptr @__errno_location() #11
  %626 = load i32, ptr %625, align 4, !tbaa !5
  %627 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %614, ptr noundef @.str, i32 noundef %615, ptr noundef @.str.74, ptr noundef @.str.2, i32 noundef 378, ptr noundef %618, ptr noundef %621, ptr noundef %624, i32 noundef %626) #10
  br label %645

628:                                              ; preds = %606, %599
  %629 = load i32, ptr %15, align 4, !tbaa !5
  %630 = call ptr @__errno_location() #11
  store i32 %629, ptr %630, align 4, !tbaa !5
  %631 = load ptr, ptr @stderr, align 8, !tbaa !9
  %632 = load i32, ptr @test_count, align 4, !tbaa !5
  %633 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %634 = load i32, ptr %633, align 4, !tbaa !5
  %635 = call ptr @s2n_strerror(i32 noundef %634, ptr noundef @.str.3)
  %636 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %637 = load i32, ptr %636, align 4, !tbaa !5
  %638 = call ptr @s2n_strerror_debug(i32 noundef %637, ptr noundef @.str.3)
  %639 = call ptr @__errno_location() #11
  %640 = load i32, ptr %639, align 4, !tbaa !5
  %641 = call ptr @strerror(i32 noundef %640) #10
  %642 = call ptr @__errno_location() #11
  %643 = load i32, ptr %642, align 4, !tbaa !5
  %644 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %631, ptr noundef @.str.4, i32 noundef %632, ptr noundef @.str.74, ptr noundef @.str.2, i32 noundef 378, ptr noundef %635, ptr noundef %638, ptr noundef %641, i32 noundef %643) #10
  br label %645

645:                                              ; preds = %628, %611
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #10
  br label %646

646:                                              ; preds = %645
  br label %647

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

648:                                              ; No predecessors!
  br label %649

649:                                              ; preds = %648
  br label %650

650:                                              ; preds = %649, %592
  br label %651

651:                                              ; preds = %650
  br label %652

652:                                              ; preds = %651
  call void @llvm.lifetime.start.p0(i64 16, ptr %16) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %16, ptr align 16 @__const.main.test_cipher_suites, i64 16, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #10
  store i64 0, ptr %17, align 8, !tbaa !15
  br label %653

653:                                              ; preds = %7225, %652
  %654 = load i64, ptr %17, align 8, !tbaa !15
  %655 = icmp ult i64 %654, 2
  br i1 %655, label %657, label %656

656:                                              ; preds = %653
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #10
  br label %7228

657:                                              ; preds = %653
  call void @llvm.lifetime.start.p0(i64 24, ptr %18) #10
  %658 = getelementptr inbounds %struct.s2n_cipher_preferences, ptr %18, i32 0, i32 0
  store i16 1, ptr %658, align 8, !tbaa !17
  %659 = getelementptr inbounds %struct.s2n_cipher_preferences, ptr %18, i32 0, i32 1
  %660 = load i64, ptr %17, align 8, !tbaa !15
  %661 = getelementptr inbounds [2 x ptr], ptr %16, i64 0, i64 %660
  store ptr %661, ptr %659, align 8, !tbaa !20
  %662 = getelementptr inbounds %struct.s2n_cipher_preferences, ptr %18, i32 0, i32 2
  store i8 0, ptr %662, align 8, !tbaa !21
  call void @llvm.lifetime.start.p0(i64 64, ptr %19) #10
  %663 = getelementptr inbounds %struct.s2n_security_policy, ptr %19, i32 0, i32 0
  store i8 33, ptr %663, align 8, !tbaa !22
  %664 = getelementptr inbounds %struct.s2n_security_policy, ptr %19, i32 0, i32 1
  store ptr %18, ptr %664, align 8, !tbaa !24
  %665 = getelementptr inbounds %struct.s2n_security_policy, ptr %19, i32 0, i32 2
  store ptr @kem_preferences_null, ptr %665, align 8, !tbaa !25
  %666 = getelementptr inbounds %struct.s2n_security_policy, ptr %19, i32 0, i32 3
  store ptr @s2n_signature_preferences_20200207, ptr %666, align 8, !tbaa !26
  %667 = getelementptr inbounds %struct.s2n_security_policy, ptr %19, i32 0, i32 4
  store ptr null, ptr %667, align 8, !tbaa !27
  %668 = getelementptr inbounds %struct.s2n_security_policy, ptr %19, i32 0, i32 5
  store ptr @s2n_ecc_preferences_20200310, ptr %668, align 8, !tbaa !28
  %669 = getelementptr inbounds %struct.s2n_security_policy, ptr %19, i32 0, i32 6
  store ptr null, ptr %669, align 8, !tbaa !29
  %670 = getelementptr inbounds %struct.s2n_security_policy, ptr %19, i32 0, i32 7
  store i8 0, ptr %670, align 8, !tbaa !30
  %671 = getelementptr inbounds %struct.s2n_security_policy, ptr %19, i32 0, i32 8
  call void @llvm.memset.p0.i64(ptr align 1 %671, i8 0, i64 2, i1 false)
  br label %672

672:                                              ; preds = %657
  %673 = load i32, ptr @test_count, align 4, !tbaa !5
  %674 = add nsw i32 %673, 1
  store i32 %674, ptr @test_count, align 4, !tbaa !5
  %675 = load i64, ptr %17, align 8, !tbaa !15
  %676 = getelementptr inbounds [2 x ptr], ptr %16, i64 0, i64 %675
  %677 = load ptr, ptr %676, align 8, !tbaa !9
  %678 = load i8, ptr %677, align 8
  %679 = and i8 %678, 1
  %680 = zext i8 %679 to i32
  %681 = icmp ne i32 %680, 0
  br i1 %681, label %735, label %682

682:                                              ; preds = %672
  br label %683

683:                                              ; preds = %682
  br label %684

684:                                              ; preds = %683
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #10
  %685 = call ptr @__errno_location() #11
  %686 = load i32, ptr %685, align 4, !tbaa !5
  store i32 %686, ptr %20, align 4, !tbaa !5
  %687 = load ptr, ptr @stderr, align 8, !tbaa !9
  %688 = call i32 @s2n_print_stacktrace(ptr noundef %687)
  %689 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %690 = trunc i8 %689 to i1
  br i1 %690, label %691, label %713

691:                                              ; preds = %684
  %692 = load ptr, ptr @stderr, align 8, !tbaa !9
  %693 = call i32 @fileno(ptr noundef %692) #10
  %694 = call i32 @isatty(i32 noundef %693) #10
  %695 = icmp ne i32 %694, 0
  br i1 %695, label %696, label %713

696:                                              ; preds = %691
  %697 = load i32, ptr %20, align 4, !tbaa !5
  %698 = call ptr @__errno_location() #11
  store i32 %697, ptr %698, align 4, !tbaa !5
  %699 = load ptr, ptr @stderr, align 8, !tbaa !9
  %700 = load i32, ptr @test_count, align 4, !tbaa !5
  %701 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %702 = load i32, ptr %701, align 4, !tbaa !5
  %703 = call ptr @s2n_strerror(i32 noundef %702, ptr noundef @.str.3)
  %704 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %705 = load i32, ptr %704, align 4, !tbaa !5
  %706 = call ptr @s2n_strerror_debug(i32 noundef %705, ptr noundef @.str.3)
  %707 = call ptr @__errno_location() #11
  %708 = load i32, ptr %707, align 4, !tbaa !5
  %709 = call ptr @strerror(i32 noundef %708) #10
  %710 = call ptr @__errno_location() #11
  %711 = load i32, ptr %710, align 4, !tbaa !5
  %712 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %699, ptr noundef @.str, i32 noundef %700, ptr noundef @.str.75, ptr noundef @.str.2, i32 noundef 400, ptr noundef %703, ptr noundef %706, ptr noundef %709, i32 noundef %711) #10
  br label %730

713:                                              ; preds = %691, %684
  %714 = load i32, ptr %20, align 4, !tbaa !5
  %715 = call ptr @__errno_location() #11
  store i32 %714, ptr %715, align 4, !tbaa !5
  %716 = load ptr, ptr @stderr, align 8, !tbaa !9
  %717 = load i32, ptr @test_count, align 4, !tbaa !5
  %718 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %719 = load i32, ptr %718, align 4, !tbaa !5
  %720 = call ptr @s2n_strerror(i32 noundef %719, ptr noundef @.str.3)
  %721 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %722 = load i32, ptr %721, align 4, !tbaa !5
  %723 = call ptr @s2n_strerror_debug(i32 noundef %722, ptr noundef @.str.3)
  %724 = call ptr @__errno_location() #11
  %725 = load i32, ptr %724, align 4, !tbaa !5
  %726 = call ptr @strerror(i32 noundef %725) #10
  %727 = call ptr @__errno_location() #11
  %728 = load i32, ptr %727, align 4, !tbaa !5
  %729 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %716, ptr noundef @.str.4, i32 noundef %717, ptr noundef @.str.75, ptr noundef @.str.2, i32 noundef 400, ptr noundef %720, ptr noundef %723, ptr noundef %726, i32 noundef %728) #10
  br label %730

730:                                              ; preds = %713, %696
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #10
  br label %731

731:                                              ; preds = %730
  br label %732

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

733:                                              ; No predecessors!
  br label %734

734:                                              ; preds = %733
  br label %735

735:                                              ; preds = %734, %672
  br label %736

736:                                              ; preds = %735
  br label %737

737:                                              ; preds = %736
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #10
  store ptr null, ptr %21, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #10
  store ptr null, ptr %22, align 8, !tbaa !9
  br label %738

738:                                              ; preds = %737
  %739 = load i32, ptr @test_count, align 4, !tbaa !5
  %740 = add nsw i32 %739, 1
  store i32 %740, ptr @test_count, align 4, !tbaa !5
  %741 = call ptr @s2n_config_new()
  store ptr %741, ptr %21, align 8, !tbaa !9
  %742 = icmp eq ptr %741, null
  br i1 %742, label %743, label %796

743:                                              ; preds = %738
  br label %744

744:                                              ; preds = %743
  br label %745

745:                                              ; preds = %744
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #10
  %746 = call ptr @__errno_location() #11
  %747 = load i32, ptr %746, align 4, !tbaa !5
  store i32 %747, ptr %23, align 4, !tbaa !5
  %748 = load ptr, ptr @stderr, align 8, !tbaa !9
  %749 = call i32 @s2n_print_stacktrace(ptr noundef %748)
  %750 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %751 = trunc i8 %750 to i1
  br i1 %751, label %752, label %774

752:                                              ; preds = %745
  %753 = load ptr, ptr @stderr, align 8, !tbaa !9
  %754 = call i32 @fileno(ptr noundef %753) #10
  %755 = call i32 @isatty(i32 noundef %754) #10
  %756 = icmp ne i32 %755, 0
  br i1 %756, label %757, label %774

757:                                              ; preds = %752
  %758 = load i32, ptr %23, align 4, !tbaa !5
  %759 = call ptr @__errno_location() #11
  store i32 %758, ptr %759, align 4, !tbaa !5
  %760 = load ptr, ptr @stderr, align 8, !tbaa !9
  %761 = load i32, ptr @test_count, align 4, !tbaa !5
  %762 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %763 = load i32, ptr %762, align 4, !tbaa !5
  %764 = call ptr @s2n_strerror(i32 noundef %763, ptr noundef @.str.3)
  %765 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %766 = load i32, ptr %765, align 4, !tbaa !5
  %767 = call ptr @s2n_strerror_debug(i32 noundef %766, ptr noundef @.str.3)
  %768 = call ptr @__errno_location() #11
  %769 = load i32, ptr %768, align 4, !tbaa !5
  %770 = call ptr @strerror(i32 noundef %769) #10
  %771 = call ptr @__errno_location() #11
  %772 = load i32, ptr %771, align 4, !tbaa !5
  %773 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %760, ptr noundef @.str, i32 noundef %761, ptr noundef @.str.76, ptr noundef @.str.2, i32 noundef 407, ptr noundef %764, ptr noundef %767, ptr noundef %770, i32 noundef %772) #10
  br label %791

774:                                              ; preds = %752, %745
  %775 = load i32, ptr %23, align 4, !tbaa !5
  %776 = call ptr @__errno_location() #11
  store i32 %775, ptr %776, align 4, !tbaa !5
  %777 = load ptr, ptr @stderr, align 8, !tbaa !9
  %778 = load i32, ptr @test_count, align 4, !tbaa !5
  %779 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %780 = load i32, ptr %779, align 4, !tbaa !5
  %781 = call ptr @s2n_strerror(i32 noundef %780, ptr noundef @.str.3)
  %782 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %783 = load i32, ptr %782, align 4, !tbaa !5
  %784 = call ptr @s2n_strerror_debug(i32 noundef %783, ptr noundef @.str.3)
  %785 = call ptr @__errno_location() #11
  %786 = load i32, ptr %785, align 4, !tbaa !5
  %787 = call ptr @strerror(i32 noundef %786) #10
  %788 = call ptr @__errno_location() #11
  %789 = load i32, ptr %788, align 4, !tbaa !5
  %790 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %777, ptr noundef @.str.4, i32 noundef %778, ptr noundef @.str.76, ptr noundef @.str.2, i32 noundef 407, ptr noundef %781, ptr noundef %784, ptr noundef %787, i32 noundef %789) #10
  br label %791

791:                                              ; preds = %774, %757
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #10
  br label %792

792:                                              ; preds = %791
  br label %793

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

794:                                              ; No predecessors!
  br label %795

795:                                              ; preds = %794
  br label %796

796:                                              ; preds = %795, %738
  br label %797

797:                                              ; preds = %796
  br label %798

798:                                              ; preds = %797
  br label %799

799:                                              ; preds = %798
  %800 = load i32, ptr @test_count, align 4, !tbaa !5
  %801 = add nsw i32 %800, 1
  store i32 %801, ptr @test_count, align 4, !tbaa !5
  %802 = load ptr, ptr %21, align 8, !tbaa !9
  %803 = load ptr, ptr %12, align 8, !tbaa !9
  %804 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %802, ptr noundef %803)
  %805 = icmp eq i32 %804, -1
  br i1 %805, label %806, label %859

806:                                              ; preds = %799
  br label %807

807:                                              ; preds = %806
  br label %808

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

815:                                              ; preds = %808
  %816 = load ptr, ptr @stderr, align 8, !tbaa !9
  %817 = call i32 @fileno(ptr noundef %816) #10
  %818 = call i32 @isatty(i32 noundef %817) #10
  %819 = icmp ne i32 %818, 0
  br i1 %819, label %820, label %837

820:                                              ; preds = %815
  %821 = load i32, ptr %24, align 4, !tbaa !5
  %822 = call ptr @__errno_location() #11
  store i32 %821, ptr %822, align 4, !tbaa !5
  %823 = load ptr, ptr @stderr, align 8, !tbaa !9
  %824 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %826, ptr noundef @.str.3)
  %828 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %829 = load i32, ptr %828, align 4, !tbaa !5
  %830 = call ptr @s2n_strerror_debug(i32 noundef %829, ptr noundef @.str.3)
  %831 = call ptr @__errno_location() #11
  %832 = load i32, ptr %831, align 4, !tbaa !5
  %833 = call ptr @strerror(i32 noundef %832) #10
  %834 = call ptr @__errno_location() #11
  %835 = load i32, ptr %834, align 4, !tbaa !5
  %836 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %823, ptr noundef @.str, i32 noundef %824, ptr noundef @.str.77, ptr noundef @.str.2, i32 noundef 408, ptr noundef %827, ptr noundef %830, ptr noundef %833, i32 noundef %835) #10
  br label %854

837:                                              ; preds = %815, %808
  %838 = load i32, ptr %24, align 4, !tbaa !5
  %839 = call ptr @__errno_location() #11
  store i32 %838, ptr %839, align 4, !tbaa !5
  %840 = load ptr, ptr @stderr, align 8, !tbaa !9
  %841 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %843, ptr noundef @.str.3)
  %845 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %846 = load i32, ptr %845, align 4, !tbaa !5
  %847 = call ptr @s2n_strerror_debug(i32 noundef %846, ptr noundef @.str.3)
  %848 = call ptr @__errno_location() #11
  %849 = load i32, ptr %848, align 4, !tbaa !5
  %850 = call ptr @strerror(i32 noundef %849) #10
  %851 = call ptr @__errno_location() #11
  %852 = load i32, ptr %851, align 4, !tbaa !5
  %853 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %840, ptr noundef @.str.4, i32 noundef %841, ptr noundef @.str.77, ptr noundef @.str.2, i32 noundef 408, ptr noundef %844, ptr noundef %847, ptr noundef %850, i32 noundef %852) #10
  br label %854

854:                                              ; preds = %837, %820
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #10
  br label %855

855:                                              ; preds = %854
  br label %856

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

857:                                              ; No predecessors!
  br label %858

858:                                              ; preds = %857
  br label %859

859:                                              ; preds = %858, %799
  br label %860

860:                                              ; preds = %859
  br label %861

861:                                              ; preds = %860
  br label %862

862:                                              ; preds = %861
  %863 = load i32, ptr @test_count, align 4, !tbaa !5
  %864 = add nsw i32 %863, 1
  store i32 %864, ptr @test_count, align 4, !tbaa !5
  %865 = load ptr, ptr %21, align 8, !tbaa !9
  %866 = getelementptr inbounds [12000 x i8], ptr %10, i64 0, i64 0
  %867 = call i32 @s2n_config_add_dhparams(ptr noundef %865, ptr noundef %866)
  %868 = icmp eq i32 %867, -1
  br i1 %868, label %869, label %922

869:                                              ; preds = %862
  br label %870

870:                                              ; preds = %869
  br label %871

871:                                              ; preds = %870
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #10
  %872 = call ptr @__errno_location() #11
  %873 = load i32, ptr %872, align 4, !tbaa !5
  store i32 %873, ptr %25, align 4, !tbaa !5
  %874 = load ptr, ptr @stderr, align 8, !tbaa !9
  %875 = call i32 @s2n_print_stacktrace(ptr noundef %874)
  %876 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %877 = trunc i8 %876 to i1
  br i1 %877, label %878, label %900

878:                                              ; preds = %871
  %879 = load ptr, ptr @stderr, align 8, !tbaa !9
  %880 = call i32 @fileno(ptr noundef %879) #10
  %881 = call i32 @isatty(i32 noundef %880) #10
  %882 = icmp ne i32 %881, 0
  br i1 %882, label %883, label %900

883:                                              ; preds = %878
  %884 = load i32, ptr %25, align 4, !tbaa !5
  %885 = call ptr @__errno_location() #11
  store i32 %884, ptr %885, align 4, !tbaa !5
  %886 = load ptr, ptr @stderr, align 8, !tbaa !9
  %887 = load i32, ptr @test_count, align 4, !tbaa !5
  %888 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %889 = load i32, ptr %888, align 4, !tbaa !5
  %890 = call ptr @s2n_strerror(i32 noundef %889, ptr noundef @.str.3)
  %891 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %892 = load i32, ptr %891, align 4, !tbaa !5
  %893 = call ptr @s2n_strerror_debug(i32 noundef %892, ptr noundef @.str.3)
  %894 = call ptr @__errno_location() #11
  %895 = load i32, ptr %894, align 4, !tbaa !5
  %896 = call ptr @strerror(i32 noundef %895) #10
  %897 = call ptr @__errno_location() #11
  %898 = load i32, ptr %897, align 4, !tbaa !5
  %899 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %886, ptr noundef @.str, i32 noundef %887, ptr noundef @.str.78, ptr noundef @.str.2, i32 noundef 409, ptr noundef %890, ptr noundef %893, ptr noundef %896, i32 noundef %898) #10
  br label %917

900:                                              ; preds = %878, %871
  %901 = load i32, ptr %25, align 4, !tbaa !5
  %902 = call ptr @__errno_location() #11
  store i32 %901, ptr %902, align 4, !tbaa !5
  %903 = load ptr, ptr @stderr, align 8, !tbaa !9
  %904 = load i32, ptr @test_count, align 4, !tbaa !5
  %905 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %906 = load i32, ptr %905, align 4, !tbaa !5
  %907 = call ptr @s2n_strerror(i32 noundef %906, ptr noundef @.str.3)
  %908 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %909 = load i32, ptr %908, align 4, !tbaa !5
  %910 = call ptr @s2n_strerror_debug(i32 noundef %909, ptr noundef @.str.3)
  %911 = call ptr @__errno_location() #11
  %912 = load i32, ptr %911, align 4, !tbaa !5
  %913 = call ptr @strerror(i32 noundef %912) #10
  %914 = call ptr @__errno_location() #11
  %915 = load i32, ptr %914, align 4, !tbaa !5
  %916 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %903, ptr noundef @.str.4, i32 noundef %904, ptr noundef @.str.78, ptr noundef @.str.2, i32 noundef 409, ptr noundef %907, ptr noundef %910, ptr noundef %913, i32 noundef %915) #10
  br label %917

917:                                              ; preds = %900, %883
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #10
  br label %918

918:                                              ; preds = %917
  br label %919

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

920:                                              ; No predecessors!
  br label %921

921:                                              ; preds = %920
  br label %922

922:                                              ; preds = %921, %862
  br label %923

923:                                              ; preds = %922
  br label %924

924:                                              ; preds = %923
  br label %925

925:                                              ; preds = %924
  %926 = load i32, ptr @test_count, align 4, !tbaa !5
  %927 = add nsw i32 %926, 1
  store i32 %927, ptr @test_count, align 4, !tbaa !5
  %928 = load ptr, ptr %21, align 8, !tbaa !9
  %929 = call i32 @s2n_config_set_async_pkey_callback(ptr noundef %928, ptr noundef @async_pkey_apply_in_callback)
  %930 = icmp eq i32 %929, -1
  br i1 %930, label %931, label %984

931:                                              ; preds = %925
  br label %932

932:                                              ; preds = %931
  br label %933

933:                                              ; preds = %932
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #10
  %934 = call ptr @__errno_location() #11
  %935 = load i32, ptr %934, align 4, !tbaa !5
  store i32 %935, ptr %26, align 4, !tbaa !5
  %936 = load ptr, ptr @stderr, align 8, !tbaa !9
  %937 = call i32 @s2n_print_stacktrace(ptr noundef %936)
  %938 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %939 = trunc i8 %938 to i1
  br i1 %939, label %940, label %962

940:                                              ; preds = %933
  %941 = load ptr, ptr @stderr, align 8, !tbaa !9
  %942 = call i32 @fileno(ptr noundef %941) #10
  %943 = call i32 @isatty(i32 noundef %942) #10
  %944 = icmp ne i32 %943, 0
  br i1 %944, label %945, label %962

945:                                              ; preds = %940
  %946 = load i32, ptr %26, align 4, !tbaa !5
  %947 = call ptr @__errno_location() #11
  store i32 %946, ptr %947, align 4, !tbaa !5
  %948 = load ptr, ptr @stderr, align 8, !tbaa !9
  %949 = load i32, ptr @test_count, align 4, !tbaa !5
  %950 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %951 = load i32, ptr %950, align 4, !tbaa !5
  %952 = call ptr @s2n_strerror(i32 noundef %951, ptr noundef @.str.3)
  %953 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %954 = load i32, ptr %953, align 4, !tbaa !5
  %955 = call ptr @s2n_strerror_debug(i32 noundef %954, ptr noundef @.str.3)
  %956 = call ptr @__errno_location() #11
  %957 = load i32, ptr %956, align 4, !tbaa !5
  %958 = call ptr @strerror(i32 noundef %957) #10
  %959 = call ptr @__errno_location() #11
  %960 = load i32, ptr %959, align 4, !tbaa !5
  %961 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %948, ptr noundef @.str, i32 noundef %949, ptr noundef @.str.79, ptr noundef @.str.2, i32 noundef 410, ptr noundef %952, ptr noundef %955, ptr noundef %958, i32 noundef %960) #10
  br label %979

962:                                              ; preds = %940, %933
  %963 = load i32, ptr %26, align 4, !tbaa !5
  %964 = call ptr @__errno_location() #11
  store i32 %963, ptr %964, 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 @.str.3)
  %970 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %971 = load i32, ptr %970, align 4, !tbaa !5
  %972 = call ptr @s2n_strerror_debug(i32 noundef %971, ptr noundef @.str.3)
  %973 = call ptr @__errno_location() #11
  %974 = load i32, ptr %973, align 4, !tbaa !5
  %975 = call ptr @strerror(i32 noundef %974) #10
  %976 = call ptr @__errno_location() #11
  %977 = load i32, ptr %976, align 4, !tbaa !5
  %978 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %965, ptr noundef @.str.4, i32 noundef %966, ptr noundef @.str.79, ptr noundef @.str.2, i32 noundef 410, ptr noundef %969, ptr noundef %972, ptr noundef %975, i32 noundef %977) #10
  br label %979

979:                                              ; preds = %962, %945
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #10
  br label %980

980:                                              ; preds = %979
  br label %981

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

982:                                              ; No predecessors!
  br label %983

983:                                              ; preds = %982
  br label %984

984:                                              ; preds = %983, %925
  br label %985

985:                                              ; preds = %984
  br label %986

986:                                              ; preds = %985
  %987 = load ptr, ptr %21, align 8, !tbaa !9
  %988 = getelementptr inbounds %struct.s2n_config, ptr %987, i32 0, i32 7
  store ptr %19, ptr %988, align 8, !tbaa !31
  br label %989

989:                                              ; preds = %986
  %990 = load i32, ptr @test_count, align 4, !tbaa !5
  %991 = add nsw i32 %990, 1
  store i32 %991, ptr @test_count, align 4, !tbaa !5
  %992 = call ptr @s2n_config_new()
  store ptr %992, ptr %22, align 8, !tbaa !9
  %993 = icmp eq ptr %992, null
  br i1 %993, label %994, label %1047

994:                                              ; preds = %989
  br label %995

995:                                              ; preds = %994
  br label %996

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

1003:                                             ; preds = %996
  %1004 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1005 = call i32 @fileno(ptr noundef %1004) #10
  %1006 = call i32 @isatty(i32 noundef %1005) #10
  %1007 = icmp ne i32 %1006, 0
  br i1 %1007, label %1008, label %1025

1008:                                             ; preds = %1003
  %1009 = load i32, ptr %27, align 4, !tbaa !5
  %1010 = call ptr @__errno_location() #11
  store i32 %1009, ptr %1010, align 4, !tbaa !5
  %1011 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1012 = load i32, ptr @test_count, align 4, !tbaa !5
  %1013 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1014 = load i32, ptr %1013, align 4, !tbaa !5
  %1015 = call ptr @s2n_strerror(i32 noundef %1014, ptr noundef @.str.3)
  %1016 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1017 = load i32, ptr %1016, align 4, !tbaa !5
  %1018 = call ptr @s2n_strerror_debug(i32 noundef %1017, ptr noundef @.str.3)
  %1019 = call ptr @__errno_location() #11
  %1020 = load i32, ptr %1019, align 4, !tbaa !5
  %1021 = call ptr @strerror(i32 noundef %1020) #10
  %1022 = call ptr @__errno_location() #11
  %1023 = load i32, ptr %1022, align 4, !tbaa !5
  %1024 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1011, ptr noundef @.str, i32 noundef %1012, ptr noundef @.str.80, ptr noundef @.str.2, i32 noundef 413, ptr noundef %1015, ptr noundef %1018, ptr noundef %1021, i32 noundef %1023) #10
  br label %1042

1025:                                             ; preds = %1003, %996
  %1026 = load i32, ptr %27, align 4, !tbaa !5
  %1027 = call ptr @__errno_location() #11
  store i32 %1026, ptr %1027, align 4, !tbaa !5
  %1028 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1029 = load i32, ptr @test_count, align 4, !tbaa !5
  %1030 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1031 = load i32, ptr %1030, align 4, !tbaa !5
  %1032 = call ptr @s2n_strerror(i32 noundef %1031, ptr noundef @.str.3)
  %1033 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1034 = load i32, ptr %1033, align 4, !tbaa !5
  %1035 = call ptr @s2n_strerror_debug(i32 noundef %1034, ptr noundef @.str.3)
  %1036 = call ptr @__errno_location() #11
  %1037 = load i32, ptr %1036, align 4, !tbaa !5
  %1038 = call ptr @strerror(i32 noundef %1037) #10
  %1039 = call ptr @__errno_location() #11
  %1040 = load i32, ptr %1039, align 4, !tbaa !5
  %1041 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1028, ptr noundef @.str.4, i32 noundef %1029, ptr noundef @.str.80, ptr noundef @.str.2, i32 noundef 413, ptr noundef %1032, ptr noundef %1035, ptr noundef %1038, i32 noundef %1040) #10
  br label %1042

1042:                                             ; preds = %1025, %1008
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #10
  br label %1043

1043:                                             ; preds = %1042
  br label %1044

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

1045:                                             ; No predecessors!
  br label %1046

1046:                                             ; preds = %1045
  br label %1047

1047:                                             ; preds = %1046, %989
  br label %1048

1048:                                             ; preds = %1047
  br label %1049

1049:                                             ; preds = %1048
  br label %1050

1050:                                             ; preds = %1049
  %1051 = load i32, ptr @test_count, align 4, !tbaa !5
  %1052 = add nsw i32 %1051, 1
  store i32 %1052, ptr @test_count, align 4, !tbaa !5
  %1053 = load ptr, ptr %22, align 8, !tbaa !9
  %1054 = call i32 @s2n_config_set_unsafe_for_testing(ptr noundef %1053)
  %1055 = icmp eq i32 %1054, -1
  br i1 %1055, label %1056, label %1109

1056:                                             ; preds = %1050
  br label %1057

1057:                                             ; preds = %1056
  br label %1058

1058:                                             ; preds = %1057
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #10
  %1059 = call ptr @__errno_location() #11
  %1060 = load i32, ptr %1059, align 4, !tbaa !5
  store i32 %1060, ptr %28, align 4, !tbaa !5
  %1061 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1062 = call i32 @s2n_print_stacktrace(ptr noundef %1061)
  %1063 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1064 = trunc i8 %1063 to i1
  br i1 %1064, label %1065, label %1087

1065:                                             ; preds = %1058
  %1066 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1067 = call i32 @fileno(ptr noundef %1066) #10
  %1068 = call i32 @isatty(i32 noundef %1067) #10
  %1069 = icmp ne i32 %1068, 0
  br i1 %1069, label %1070, label %1087

1070:                                             ; preds = %1065
  %1071 = load i32, ptr %28, align 4, !tbaa !5
  %1072 = call ptr @__errno_location() #11
  store i32 %1071, ptr %1072, align 4, !tbaa !5
  %1073 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1074 = load i32, ptr @test_count, align 4, !tbaa !5
  %1075 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1076 = load i32, ptr %1075, align 4, !tbaa !5
  %1077 = call ptr @s2n_strerror(i32 noundef %1076, ptr noundef @.str.3)
  %1078 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1079 = load i32, ptr %1078, align 4, !tbaa !5
  %1080 = call ptr @s2n_strerror_debug(i32 noundef %1079, ptr noundef @.str.3)
  %1081 = call ptr @__errno_location() #11
  %1082 = load i32, ptr %1081, align 4, !tbaa !5
  %1083 = call ptr @strerror(i32 noundef %1082) #10
  %1084 = call ptr @__errno_location() #11
  %1085 = load i32, ptr %1084, align 4, !tbaa !5
  %1086 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1073, ptr noundef @.str, i32 noundef %1074, ptr noundef @.str.81, ptr noundef @.str.2, i32 noundef 414, ptr noundef %1077, ptr noundef %1080, ptr noundef %1083, i32 noundef %1085) #10
  br label %1104

1087:                                             ; preds = %1065, %1058
  %1088 = load i32, ptr %28, align 4, !tbaa !5
  %1089 = call ptr @__errno_location() #11
  store i32 %1088, ptr %1089, 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 @.str.3)
  %1095 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1096 = load i32, ptr %1095, align 4, !tbaa !5
  %1097 = call ptr @s2n_strerror_debug(i32 noundef %1096, ptr noundef @.str.3)
  %1098 = call ptr @__errno_location() #11
  %1099 = load i32, ptr %1098, align 4, !tbaa !5
  %1100 = call ptr @strerror(i32 noundef %1099) #10
  %1101 = call ptr @__errno_location() #11
  %1102 = load i32, ptr %1101, align 4, !tbaa !5
  %1103 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1090, ptr noundef @.str.4, i32 noundef %1091, ptr noundef @.str.81, ptr noundef @.str.2, i32 noundef 414, ptr noundef %1094, ptr noundef %1097, ptr noundef %1100, i32 noundef %1102) #10
  br label %1104

1104:                                             ; preds = %1087, %1070
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #10
  br label %1105

1105:                                             ; preds = %1104
  br label %1106

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

1107:                                             ; No predecessors!
  br label %1108

1108:                                             ; preds = %1107
  br label %1109

1109:                                             ; preds = %1108, %1050
  br label %1110

1110:                                             ; preds = %1109
  br label %1111

1111:                                             ; preds = %1110
  br label %1112

1112:                                             ; preds = %1111
  %1113 = load i32, ptr @test_count, align 4, !tbaa !5
  %1114 = add nsw i32 %1113, 1
  store i32 %1114, ptr @test_count, align 4, !tbaa !5
  %1115 = load ptr, ptr %22, align 8, !tbaa !9
  %1116 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %1115, ptr noundef @.str.82)
  %1117 = icmp eq i32 %1116, -1
  br i1 %1117, label %1118, label %1171

1118:                                             ; preds = %1112
  br label %1119

1119:                                             ; preds = %1118
  br label %1120

1120:                                             ; preds = %1119
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #10
  %1121 = call ptr @__errno_location() #11
  %1122 = load i32, ptr %1121, align 4, !tbaa !5
  store i32 %1122, ptr %29, align 4, !tbaa !5
  %1123 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1124 = call i32 @s2n_print_stacktrace(ptr noundef %1123)
  %1125 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1126 = trunc i8 %1125 to i1
  br i1 %1126, label %1127, label %1149

1127:                                             ; preds = %1120
  %1128 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1129 = call i32 @fileno(ptr noundef %1128) #10
  %1130 = call i32 @isatty(i32 noundef %1129) #10
  %1131 = icmp ne i32 %1130, 0
  br i1 %1131, label %1132, label %1149

1132:                                             ; preds = %1127
  %1133 = load i32, ptr %29, align 4, !tbaa !5
  %1134 = call ptr @__errno_location() #11
  store i32 %1133, ptr %1134, align 4, !tbaa !5
  %1135 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1136 = load i32, ptr @test_count, align 4, !tbaa !5
  %1137 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1138 = load i32, ptr %1137, align 4, !tbaa !5
  %1139 = call ptr @s2n_strerror(i32 noundef %1138, ptr noundef @.str.3)
  %1140 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1141 = load i32, ptr %1140, align 4, !tbaa !5
  %1142 = call ptr @s2n_strerror_debug(i32 noundef %1141, ptr noundef @.str.3)
  %1143 = call ptr @__errno_location() #11
  %1144 = load i32, ptr %1143, align 4, !tbaa !5
  %1145 = call ptr @strerror(i32 noundef %1144) #10
  %1146 = call ptr @__errno_location() #11
  %1147 = load i32, ptr %1146, align 4, !tbaa !5
  %1148 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1135, ptr noundef @.str, i32 noundef %1136, ptr noundef @.str.83, ptr noundef @.str.2, i32 noundef 416, ptr noundef %1139, ptr noundef %1142, ptr noundef %1145, i32 noundef %1147) #10
  br label %1166

1149:                                             ; preds = %1127, %1120
  %1150 = load i32, ptr %29, align 4, !tbaa !5
  %1151 = call ptr @__errno_location() #11
  store i32 %1150, ptr %1151, align 4, !tbaa !5
  %1152 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1153 = load i32, ptr @test_count, align 4, !tbaa !5
  %1154 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1155 = load i32, ptr %1154, align 4, !tbaa !5
  %1156 = call ptr @s2n_strerror(i32 noundef %1155, ptr noundef @.str.3)
  %1157 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1158 = load i32, ptr %1157, align 4, !tbaa !5
  %1159 = call ptr @s2n_strerror_debug(i32 noundef %1158, ptr noundef @.str.3)
  %1160 = call ptr @__errno_location() #11
  %1161 = load i32, ptr %1160, align 4, !tbaa !5
  %1162 = call ptr @strerror(i32 noundef %1161) #10
  %1163 = call ptr @__errno_location() #11
  %1164 = load i32, ptr %1163, align 4, !tbaa !5
  %1165 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1152, ptr noundef @.str.4, i32 noundef %1153, ptr noundef @.str.83, ptr noundef @.str.2, i32 noundef 416, ptr noundef %1156, ptr noundef %1159, ptr noundef %1162, i32 noundef %1164) #10
  br label %1166

1166:                                             ; preds = %1149, %1132
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #10
  br label %1167

1167:                                             ; preds = %1166
  br label %1168

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

1169:                                             ; No predecessors!
  br label %1170

1170:                                             ; preds = %1169
  br label %1171

1171:                                             ; preds = %1170, %1112
  br label %1172

1172:                                             ; preds = %1171
  br label %1173

1173:                                             ; preds = %1172
  br label %1174

1174:                                             ; preds = %1173
  %1175 = load i32, ptr @test_count, align 4, !tbaa !5
  %1176 = add nsw i32 %1175, 1
  store i32 %1176, ptr @test_count, align 4, !tbaa !5
  %1177 = load ptr, ptr %22, align 8, !tbaa !9
  %1178 = call i32 @s2n_config_set_verification_ca_location(ptr noundef %1177, ptr noundef @.str.69, ptr noundef null)
  %1179 = icmp eq i32 %1178, -1
  br i1 %1179, label %1180, label %1233

1180:                                             ; preds = %1174
  br label %1181

1181:                                             ; preds = %1180
  br label %1182

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

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

1194:                                             ; preds = %1189
  %1195 = load i32, ptr %30, align 4, !tbaa !5
  %1196 = call ptr @__errno_location() #11
  store i32 %1195, ptr %1196, align 4, !tbaa !5
  %1197 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1198 = load i32, ptr @test_count, align 4, !tbaa !5
  %1199 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1200 = load i32, ptr %1199, align 4, !tbaa !5
  %1201 = call ptr @s2n_strerror(i32 noundef %1200, ptr noundef @.str.3)
  %1202 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1203 = load i32, ptr %1202, align 4, !tbaa !5
  %1204 = call ptr @s2n_strerror_debug(i32 noundef %1203, ptr noundef @.str.3)
  %1205 = call ptr @__errno_location() #11
  %1206 = load i32, ptr %1205, align 4, !tbaa !5
  %1207 = call ptr @strerror(i32 noundef %1206) #10
  %1208 = call ptr @__errno_location() #11
  %1209 = load i32, ptr %1208, align 4, !tbaa !5
  %1210 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1197, ptr noundef @.str, i32 noundef %1198, ptr noundef @.str.84, ptr noundef @.str.2, i32 noundef 418, ptr noundef %1201, ptr noundef %1204, ptr noundef %1207, i32 noundef %1209) #10
  br label %1228

1211:                                             ; preds = %1189, %1182
  %1212 = load i32, ptr %30, align 4, !tbaa !5
  %1213 = call ptr @__errno_location() #11
  store i32 %1212, ptr %1213, align 4, !tbaa !5
  %1214 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1215 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %1217, ptr noundef @.str.3)
  %1219 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1220 = load i32, ptr %1219, align 4, !tbaa !5
  %1221 = call ptr @s2n_strerror_debug(i32 noundef %1220, ptr noundef @.str.3)
  %1222 = call ptr @__errno_location() #11
  %1223 = load i32, ptr %1222, align 4, !tbaa !5
  %1224 = call ptr @strerror(i32 noundef %1223) #10
  %1225 = call ptr @__errno_location() #11
  %1226 = load i32, ptr %1225, align 4, !tbaa !5
  %1227 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1214, ptr noundef @.str.4, i32 noundef %1215, ptr noundef @.str.84, ptr noundef @.str.2, i32 noundef 418, ptr noundef %1218, ptr noundef %1221, ptr noundef %1224, i32 noundef %1226) #10
  br label %1228

1228:                                             ; preds = %1211, %1194
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #10
  br label %1229

1229:                                             ; preds = %1228
  br label %1230

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

1231:                                             ; No predecessors!
  br label %1232

1232:                                             ; preds = %1231
  br label %1233

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

1234:                                             ; preds = %1233
  br label %1235

1235:                                             ; preds = %1234
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #10
  %1236 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %1236, ptr %31, align 8, !tbaa !9
  br label %1237

1237:                                             ; preds = %1235
  %1238 = load i32, ptr @test_count, align 4, !tbaa !5
  %1239 = add nsw i32 %1238, 1
  store i32 %1239, ptr @test_count, align 4, !tbaa !5
  %1240 = load ptr, ptr %31, align 8, !tbaa !9
  %1241 = icmp eq ptr %1240, null
  br i1 %1241, label %1242, label %1295

1242:                                             ; preds = %1237
  br label %1243

1243:                                             ; preds = %1242
  br label %1244

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

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

1256:                                             ; preds = %1251
  %1257 = load i32, ptr %32, align 4, !tbaa !5
  %1258 = call ptr @__errno_location() #11
  store i32 %1257, ptr %1258, align 4, !tbaa !5
  %1259 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1260 = load i32, ptr @test_count, align 4, !tbaa !5
  %1261 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1262 = load i32, ptr %1261, align 4, !tbaa !5
  %1263 = call ptr @s2n_strerror(i32 noundef %1262, ptr noundef @.str.3)
  %1264 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1265 = load i32, ptr %1264, align 4, !tbaa !5
  %1266 = call ptr @s2n_strerror_debug(i32 noundef %1265, ptr noundef @.str.3)
  %1267 = call ptr @__errno_location() #11
  %1268 = load i32, ptr %1267, align 4, !tbaa !5
  %1269 = call ptr @strerror(i32 noundef %1268) #10
  %1270 = call ptr @__errno_location() #11
  %1271 = load i32, ptr %1270, align 4, !tbaa !5
  %1272 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1259, ptr noundef @.str, i32 noundef %1260, ptr noundef @.str.85, ptr noundef @.str.2, i32 noundef 422, ptr noundef %1263, ptr noundef %1266, ptr noundef %1269, i32 noundef %1271) #10
  br label %1290

1273:                                             ; preds = %1251, %1244
  %1274 = load i32, ptr %32, align 4, !tbaa !5
  %1275 = call ptr @__errno_location() #11
  store i32 %1274, ptr %1275, align 4, !tbaa !5
  %1276 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1277 = load i32, ptr @test_count, align 4, !tbaa !5
  %1278 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1279 = load i32, ptr %1278, align 4, !tbaa !5
  %1280 = call ptr @s2n_strerror(i32 noundef %1279, ptr noundef @.str.3)
  %1281 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1282 = load i32, ptr %1281, align 4, !tbaa !5
  %1283 = call ptr @s2n_strerror_debug(i32 noundef %1282, ptr noundef @.str.3)
  %1284 = call ptr @__errno_location() #11
  %1285 = load i32, ptr %1284, align 4, !tbaa !5
  %1286 = call ptr @strerror(i32 noundef %1285) #10
  %1287 = call ptr @__errno_location() #11
  %1288 = load i32, ptr %1287, align 4, !tbaa !5
  %1289 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1276, ptr noundef @.str.4, i32 noundef %1277, ptr noundef @.str.85, ptr noundef @.str.2, i32 noundef 422, ptr noundef %1280, ptr noundef %1283, ptr noundef %1286, i32 noundef %1288) #10
  br label %1290

1290:                                             ; preds = %1273, %1256
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #10
  br label %1291

1291:                                             ; preds = %1290
  br label %1292

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

1293:                                             ; No predecessors!
  br label %1294

1294:                                             ; preds = %1293
  br label %1295

1295:                                             ; preds = %1294, %1237
  br label %1296

1296:                                             ; preds = %1295
  br label %1297

1297:                                             ; preds = %1296
  br label %1298

1298:                                             ; preds = %1297
  %1299 = load i32, ptr @test_count, align 4, !tbaa !5
  %1300 = add nsw i32 %1299, 1
  store i32 %1300, ptr @test_count, align 4, !tbaa !5
  %1301 = load ptr, ptr %31, align 8, !tbaa !9
  %1302 = load ptr, ptr %22, align 8, !tbaa !9
  %1303 = call i32 @s2n_connection_set_config(ptr noundef %1301, ptr noundef %1302)
  %1304 = icmp eq i32 %1303, -1
  br i1 %1304, label %1305, label %1358

1305:                                             ; preds = %1298
  br label %1306

1306:                                             ; preds = %1305
  br label %1307

1307:                                             ; preds = %1306
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #10
  %1308 = call ptr @__errno_location() #11
  %1309 = load i32, ptr %1308, align 4, !tbaa !5
  store i32 %1309, ptr %33, align 4, !tbaa !5
  %1310 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1311 = call i32 @s2n_print_stacktrace(ptr noundef %1310)
  %1312 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1313 = trunc i8 %1312 to i1
  br i1 %1313, label %1314, label %1336

1314:                                             ; preds = %1307
  %1315 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1316 = call i32 @fileno(ptr noundef %1315) #10
  %1317 = call i32 @isatty(i32 noundef %1316) #10
  %1318 = icmp ne i32 %1317, 0
  br i1 %1318, label %1319, label %1336

1319:                                             ; preds = %1314
  %1320 = load i32, ptr %33, align 4, !tbaa !5
  %1321 = call ptr @__errno_location() #11
  store i32 %1320, ptr %1321, align 4, !tbaa !5
  %1322 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1323 = load i32, ptr @test_count, align 4, !tbaa !5
  %1324 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1325 = load i32, ptr %1324, align 4, !tbaa !5
  %1326 = call ptr @s2n_strerror(i32 noundef %1325, ptr noundef @.str.3)
  %1327 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1328 = load i32, ptr %1327, align 4, !tbaa !5
  %1329 = call ptr @s2n_strerror_debug(i32 noundef %1328, ptr noundef @.str.3)
  %1330 = call ptr @__errno_location() #11
  %1331 = load i32, ptr %1330, align 4, !tbaa !5
  %1332 = call ptr @strerror(i32 noundef %1331) #10
  %1333 = call ptr @__errno_location() #11
  %1334 = load i32, ptr %1333, align 4, !tbaa !5
  %1335 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1322, ptr noundef @.str, i32 noundef %1323, ptr noundef @.str.86, ptr noundef @.str.2, i32 noundef 423, ptr noundef %1326, ptr noundef %1329, ptr noundef %1332, i32 noundef %1334) #10
  br label %1353

1336:                                             ; preds = %1314, %1307
  %1337 = load i32, ptr %33, align 4, !tbaa !5
  %1338 = call ptr @__errno_location() #11
  store i32 %1337, ptr %1338, align 4, !tbaa !5
  %1339 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1340 = load i32, ptr @test_count, align 4, !tbaa !5
  %1341 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1342 = load i32, ptr %1341, align 4, !tbaa !5
  %1343 = call ptr @s2n_strerror(i32 noundef %1342, ptr noundef @.str.3)
  %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.3)
  %1347 = call ptr @__errno_location() #11
  %1348 = load i32, ptr %1347, align 4, !tbaa !5
  %1349 = call ptr @strerror(i32 noundef %1348) #10
  %1350 = call ptr @__errno_location() #11
  %1351 = load i32, ptr %1350, align 4, !tbaa !5
  %1352 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1339, ptr noundef @.str.4, i32 noundef %1340, ptr noundef @.str.86, ptr noundef @.str.2, i32 noundef 423, ptr noundef %1343, ptr noundef %1346, ptr noundef %1349, i32 noundef %1351) #10
  br label %1353

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

1354:                                             ; preds = %1353
  br label %1355

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

1356:                                             ; No predecessors!
  br label %1357

1357:                                             ; preds = %1356
  br label %1358

1358:                                             ; preds = %1357, %1298
  br label %1359

1359:                                             ; preds = %1358
  br label %1360

1360:                                             ; preds = %1359
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #10
  %1361 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %1361, ptr %34, align 8, !tbaa !9
  br label %1362

1362:                                             ; preds = %1360
  %1363 = load i32, ptr @test_count, align 4, !tbaa !5
  %1364 = add nsw i32 %1363, 1
  store i32 %1364, ptr @test_count, align 4, !tbaa !5
  %1365 = load ptr, ptr %34, align 8, !tbaa !9
  %1366 = icmp eq ptr %1365, null
  br i1 %1366, label %1367, label %1420

1367:                                             ; preds = %1362
  br label %1368

1368:                                             ; preds = %1367
  br label %1369

1369:                                             ; preds = %1368
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #10
  %1370 = call ptr @__errno_location() #11
  %1371 = load i32, ptr %1370, align 4, !tbaa !5
  store i32 %1371, ptr %35, align 4, !tbaa !5
  %1372 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1373 = call i32 @s2n_print_stacktrace(ptr noundef %1372)
  %1374 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1375 = trunc i8 %1374 to i1
  br i1 %1375, label %1376, label %1398

1376:                                             ; preds = %1369
  %1377 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1378 = call i32 @fileno(ptr noundef %1377) #10
  %1379 = call i32 @isatty(i32 noundef %1378) #10
  %1380 = icmp ne i32 %1379, 0
  br i1 %1380, label %1381, label %1398

1381:                                             ; preds = %1376
  %1382 = load i32, ptr %35, align 4, !tbaa !5
  %1383 = call ptr @__errno_location() #11
  store i32 %1382, ptr %1383, align 4, !tbaa !5
  %1384 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1385 = load i32, ptr @test_count, align 4, !tbaa !5
  %1386 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1387 = load i32, ptr %1386, align 4, !tbaa !5
  %1388 = call ptr @s2n_strerror(i32 noundef %1387, ptr noundef @.str.3)
  %1389 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1390 = load i32, ptr %1389, align 4, !tbaa !5
  %1391 = call ptr @s2n_strerror_debug(i32 noundef %1390, ptr noundef @.str.3)
  %1392 = call ptr @__errno_location() #11
  %1393 = load i32, ptr %1392, align 4, !tbaa !5
  %1394 = call ptr @strerror(i32 noundef %1393) #10
  %1395 = call ptr @__errno_location() #11
  %1396 = load i32, ptr %1395, align 4, !tbaa !5
  %1397 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1384, ptr noundef @.str, i32 noundef %1385, ptr noundef @.str.87, ptr noundef @.str.2, i32 noundef 426, ptr noundef %1388, ptr noundef %1391, ptr noundef %1394, i32 noundef %1396) #10
  br label %1415

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

1415:                                             ; preds = %1398, %1381
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #10
  br label %1416

1416:                                             ; preds = %1415
  br label %1417

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

1418:                                             ; No predecessors!
  br label %1419

1419:                                             ; preds = %1418
  br label %1420

1420:                                             ; preds = %1419, %1362
  br label %1421

1421:                                             ; preds = %1420
  br label %1422

1422:                                             ; preds = %1421
  br label %1423

1423:                                             ; preds = %1422
  %1424 = load i32, ptr @test_count, align 4, !tbaa !5
  %1425 = add nsw i32 %1424, 1
  store i32 %1425, ptr @test_count, align 4, !tbaa !5
  %1426 = load ptr, ptr %34, align 8, !tbaa !9
  %1427 = load ptr, ptr %21, align 8, !tbaa !9
  %1428 = call i32 @s2n_connection_set_config(ptr noundef %1426, ptr noundef %1427)
  %1429 = icmp eq i32 %1428, -1
  br i1 %1429, label %1430, label %1483

1430:                                             ; preds = %1423
  br label %1431

1431:                                             ; preds = %1430
  br label %1432

1432:                                             ; preds = %1431
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #10
  %1433 = call ptr @__errno_location() #11
  %1434 = load i32, ptr %1433, align 4, !tbaa !5
  store i32 %1434, ptr %36, align 4, !tbaa !5
  %1435 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1436 = call i32 @s2n_print_stacktrace(ptr noundef %1435)
  %1437 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1438 = trunc i8 %1437 to i1
  br i1 %1438, label %1439, label %1461

1439:                                             ; preds = %1432
  %1440 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1441 = call i32 @fileno(ptr noundef %1440) #10
  %1442 = call i32 @isatty(i32 noundef %1441) #10
  %1443 = icmp ne i32 %1442, 0
  br i1 %1443, label %1444, label %1461

1444:                                             ; preds = %1439
  %1445 = load i32, ptr %36, align 4, !tbaa !5
  %1446 = call ptr @__errno_location() #11
  store i32 %1445, ptr %1446, align 4, !tbaa !5
  %1447 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1448 = load i32, ptr @test_count, align 4, !tbaa !5
  %1449 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1450 = load i32, ptr %1449, align 4, !tbaa !5
  %1451 = call ptr @s2n_strerror(i32 noundef %1450, ptr noundef @.str.3)
  %1452 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1453 = load i32, ptr %1452, align 4, !tbaa !5
  %1454 = call ptr @s2n_strerror_debug(i32 noundef %1453, ptr noundef @.str.3)
  %1455 = call ptr @__errno_location() #11
  %1456 = load i32, ptr %1455, align 4, !tbaa !5
  %1457 = call ptr @strerror(i32 noundef %1456) #10
  %1458 = call ptr @__errno_location() #11
  %1459 = load i32, ptr %1458, align 4, !tbaa !5
  %1460 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1447, ptr noundef @.str, i32 noundef %1448, ptr noundef @.str.88, ptr noundef @.str.2, i32 noundef 427, ptr noundef %1451, ptr noundef %1454, ptr noundef %1457, i32 noundef %1459) #10
  br label %1478

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

1478:                                             ; preds = %1461, %1444
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #10
  br label %1479

1479:                                             ; preds = %1478
  br label %1480

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

1481:                                             ; No predecessors!
  br label %1482

1482:                                             ; preds = %1481
  br label %1483

1483:                                             ; preds = %1482, %1423
  br label %1484

1484:                                             ; preds = %1483
  br label %1485

1485:                                             ; preds = %1484
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #10
  br label %1486

1486:                                             ; preds = %1485
  %1487 = load i32, ptr @test_count, align 4, !tbaa !5
  %1488 = add nsw i32 %1487, 1
  store i32 %1488, ptr @test_count, align 4, !tbaa !5
  %1489 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef %37)
  %1490 = icmp eq i32 %1489, -1
  br i1 %1490, label %1491, label %1544

1491:                                             ; preds = %1486
  br label %1492

1492:                                             ; preds = %1491
  br label %1493

1493:                                             ; preds = %1492
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #10
  %1494 = call ptr @__errno_location() #11
  %1495 = load i32, ptr %1494, align 4, !tbaa !5
  store i32 %1495, ptr %38, align 4, !tbaa !5
  %1496 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1497 = call i32 @s2n_print_stacktrace(ptr noundef %1496)
  %1498 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1499 = trunc i8 %1498 to i1
  br i1 %1499, label %1500, label %1522

1500:                                             ; preds = %1493
  %1501 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1502 = call i32 @fileno(ptr noundef %1501) #10
  %1503 = call i32 @isatty(i32 noundef %1502) #10
  %1504 = icmp ne i32 %1503, 0
  br i1 %1504, label %1505, label %1522

1505:                                             ; preds = %1500
  %1506 = load i32, ptr %38, align 4, !tbaa !5
  %1507 = call ptr @__errno_location() #11
  store i32 %1506, ptr %1507, align 4, !tbaa !5
  %1508 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1509 = load i32, ptr @test_count, align 4, !tbaa !5
  %1510 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1511 = load i32, ptr %1510, align 4, !tbaa !5
  %1512 = call ptr @s2n_strerror(i32 noundef %1511, ptr noundef @.str.3)
  %1513 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1514 = load i32, ptr %1513, align 4, !tbaa !5
  %1515 = call ptr @s2n_strerror_debug(i32 noundef %1514, ptr noundef @.str.3)
  %1516 = call ptr @__errno_location() #11
  %1517 = load i32, ptr %1516, align 4, !tbaa !5
  %1518 = call ptr @strerror(i32 noundef %1517) #10
  %1519 = call ptr @__errno_location() #11
  %1520 = load i32, ptr %1519, align 4, !tbaa !5
  %1521 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1508, ptr noundef @.str, i32 noundef %1509, ptr noundef @.str.89, ptr noundef @.str.2, i32 noundef 431, ptr noundef %1512, ptr noundef %1515, ptr noundef %1518, i32 noundef %1520) #10
  br label %1539

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

1539:                                             ; preds = %1522, %1505
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #10
  br label %1540

1540:                                             ; preds = %1539
  br label %1541

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

1542:                                             ; No predecessors!
  br label %1543

1543:                                             ; preds = %1542
  br label %1544

1544:                                             ; preds = %1543, %1486
  br label %1545

1545:                                             ; preds = %1544
  br label %1546

1546:                                             ; preds = %1545
  br label %1547

1547:                                             ; preds = %1546
  %1548 = load i32, ptr @test_count, align 4, !tbaa !5
  %1549 = add nsw i32 %1548, 1
  store i32 %1549, ptr @test_count, align 4, !tbaa !5
  %1550 = load ptr, ptr %31, align 8, !tbaa !9
  %1551 = call i32 @s2n_connection_set_io_pair(ptr noundef %1550, ptr noundef %37)
  %1552 = icmp eq i32 %1551, -1
  br i1 %1552, label %1553, label %1606

1553:                                             ; preds = %1547
  br label %1554

1554:                                             ; preds = %1553
  br label %1555

1555:                                             ; preds = %1554
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #10
  %1556 = call ptr @__errno_location() #11
  %1557 = load i32, ptr %1556, align 4, !tbaa !5
  store i32 %1557, ptr %39, align 4, !tbaa !5
  %1558 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1559 = call i32 @s2n_print_stacktrace(ptr noundef %1558)
  %1560 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1561 = trunc i8 %1560 to i1
  br i1 %1561, label %1562, label %1584

1562:                                             ; preds = %1555
  %1563 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1564 = call i32 @fileno(ptr noundef %1563) #10
  %1565 = call i32 @isatty(i32 noundef %1564) #10
  %1566 = icmp ne i32 %1565, 0
  br i1 %1566, label %1567, label %1584

1567:                                             ; preds = %1562
  %1568 = load i32, ptr %39, align 4, !tbaa !5
  %1569 = call ptr @__errno_location() #11
  store i32 %1568, ptr %1569, align 4, !tbaa !5
  %1570 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1571 = load i32, ptr @test_count, align 4, !tbaa !5
  %1572 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1573 = load i32, ptr %1572, align 4, !tbaa !5
  %1574 = call ptr @s2n_strerror(i32 noundef %1573, ptr noundef @.str.3)
  %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_debug(i32 noundef %1576, ptr noundef @.str.3)
  %1578 = call ptr @__errno_location() #11
  %1579 = load i32, ptr %1578, align 4, !tbaa !5
  %1580 = call ptr @strerror(i32 noundef %1579) #10
  %1581 = call ptr @__errno_location() #11
  %1582 = load i32, ptr %1581, align 4, !tbaa !5
  %1583 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1570, ptr noundef @.str, i32 noundef %1571, ptr noundef @.str.90, ptr noundef @.str.2, i32 noundef 432, ptr noundef %1574, ptr noundef %1577, ptr noundef %1580, i32 noundef %1582) #10
  br label %1601

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

1601:                                             ; preds = %1584, %1567
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #10
  br label %1602

1602:                                             ; preds = %1601
  br label %1603

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

1604:                                             ; No predecessors!
  br label %1605

1605:                                             ; preds = %1604
  br label %1606

1606:                                             ; preds = %1605, %1547
  br label %1607

1607:                                             ; preds = %1606
  br label %1608

1608:                                             ; preds = %1607
  br label %1609

1609:                                             ; preds = %1608
  %1610 = load i32, ptr @test_count, align 4, !tbaa !5
  %1611 = add nsw i32 %1610, 1
  store i32 %1611, ptr @test_count, align 4, !tbaa !5
  %1612 = load ptr, ptr %34, align 8, !tbaa !9
  %1613 = call i32 @s2n_connection_set_io_pair(ptr noundef %1612, ptr noundef %37)
  %1614 = icmp eq i32 %1613, -1
  br i1 %1614, label %1615, label %1668

1615:                                             ; preds = %1609
  br label %1616

1616:                                             ; preds = %1615
  br label %1617

1617:                                             ; preds = %1616
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #10
  %1618 = call ptr @__errno_location() #11
  %1619 = load i32, ptr %1618, align 4, !tbaa !5
  store i32 %1619, ptr %40, align 4, !tbaa !5
  %1620 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1621 = call i32 @s2n_print_stacktrace(ptr noundef %1620)
  %1622 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1623 = trunc i8 %1622 to i1
  br i1 %1623, label %1624, label %1646

1624:                                             ; preds = %1617
  %1625 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1626 = call i32 @fileno(ptr noundef %1625) #10
  %1627 = call i32 @isatty(i32 noundef %1626) #10
  %1628 = icmp ne i32 %1627, 0
  br i1 %1628, label %1629, label %1646

1629:                                             ; preds = %1624
  %1630 = load i32, ptr %40, align 4, !tbaa !5
  %1631 = call ptr @__errno_location() #11
  store i32 %1630, ptr %1631, align 4, !tbaa !5
  %1632 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1633 = load i32, ptr @test_count, align 4, !tbaa !5
  %1634 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1635 = load i32, ptr %1634, align 4, !tbaa !5
  %1636 = call ptr @s2n_strerror(i32 noundef %1635, ptr noundef @.str.3)
  %1637 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1638 = load i32, ptr %1637, align 4, !tbaa !5
  %1639 = call ptr @s2n_strerror_debug(i32 noundef %1638, ptr noundef @.str.3)
  %1640 = call ptr @__errno_location() #11
  %1641 = load i32, ptr %1640, align 4, !tbaa !5
  %1642 = call ptr @strerror(i32 noundef %1641) #10
  %1643 = call ptr @__errno_location() #11
  %1644 = load i32, ptr %1643, align 4, !tbaa !5
  %1645 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1632, ptr noundef @.str, i32 noundef %1633, ptr noundef @.str.91, ptr noundef @.str.2, i32 noundef 433, ptr noundef %1636, ptr noundef %1639, ptr noundef %1642, i32 noundef %1644) #10
  br label %1663

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

1663:                                             ; preds = %1646, %1629
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #10
  br label %1664

1664:                                             ; preds = %1663
  br label %1665

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

1666:                                             ; No predecessors!
  br label %1667

1667:                                             ; preds = %1666
  br label %1668

1668:                                             ; preds = %1667, %1609
  br label %1669

1669:                                             ; preds = %1668
  br label %1670

1670:                                             ; preds = %1669
  br label %1671

1671:                                             ; preds = %1670
  %1672 = load i32, ptr @test_count, align 4, !tbaa !5
  %1673 = add nsw i32 %1672, 1
  store i32 %1673, ptr @test_count, align 4, !tbaa !5
  %1674 = load ptr, ptr %34, align 8, !tbaa !9
  %1675 = load ptr, ptr %31, align 8, !tbaa !9
  %1676 = call i32 @try_handshake(ptr noundef %1674, ptr noundef %1675, ptr noundef @async_handler_fail)
  %1677 = icmp eq i32 %1676, -1
  br i1 %1677, label %1678, label %1731

1678:                                             ; preds = %1671
  br label %1679

1679:                                             ; preds = %1678
  br label %1680

1680:                                             ; preds = %1679
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #10
  %1681 = call ptr @__errno_location() #11
  %1682 = load i32, ptr %1681, align 4, !tbaa !5
  store i32 %1682, ptr %41, align 4, !tbaa !5
  %1683 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1684 = call i32 @s2n_print_stacktrace(ptr noundef %1683)
  %1685 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1686 = trunc i8 %1685 to i1
  br i1 %1686, label %1687, label %1709

1687:                                             ; preds = %1680
  %1688 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1689 = call i32 @fileno(ptr noundef %1688) #10
  %1690 = call i32 @isatty(i32 noundef %1689) #10
  %1691 = icmp ne i32 %1690, 0
  br i1 %1691, label %1692, label %1709

1692:                                             ; preds = %1687
  %1693 = load i32, ptr %41, align 4, !tbaa !5
  %1694 = call ptr @__errno_location() #11
  store i32 %1693, ptr %1694, align 4, !tbaa !5
  %1695 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1696 = load i32, ptr @test_count, align 4, !tbaa !5
  %1697 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1698 = load i32, ptr %1697, align 4, !tbaa !5
  %1699 = call ptr @s2n_strerror(i32 noundef %1698, ptr noundef @.str.3)
  %1700 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1701 = load i32, ptr %1700, align 4, !tbaa !5
  %1702 = call ptr @s2n_strerror_debug(i32 noundef %1701, ptr noundef @.str.3)
  %1703 = call ptr @__errno_location() #11
  %1704 = load i32, ptr %1703, align 4, !tbaa !5
  %1705 = call ptr @strerror(i32 noundef %1704) #10
  %1706 = call ptr @__errno_location() #11
  %1707 = load i32, ptr %1706, align 4, !tbaa !5
  %1708 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1695, ptr noundef @.str, i32 noundef %1696, ptr noundef @.str.92, ptr noundef @.str.2, i32 noundef 435, ptr noundef %1699, ptr noundef %1702, ptr noundef %1705, i32 noundef %1707) #10
  br label %1726

1709:                                             ; preds = %1687, %1680
  %1710 = load i32, ptr %41, align 4, !tbaa !5
  %1711 = call ptr @__errno_location() #11
  store i32 %1710, ptr %1711, align 4, !tbaa !5
  %1712 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1713 = load i32, ptr @test_count, align 4, !tbaa !5
  %1714 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1715 = load i32, ptr %1714, align 4, !tbaa !5
  %1716 = call ptr @s2n_strerror(i32 noundef %1715, ptr noundef @.str.3)
  %1717 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1718 = load i32, ptr %1717, align 4, !tbaa !5
  %1719 = call ptr @s2n_strerror_debug(i32 noundef %1718, ptr noundef @.str.3)
  %1720 = call ptr @__errno_location() #11
  %1721 = load i32, ptr %1720, align 4, !tbaa !5
  %1722 = call ptr @strerror(i32 noundef %1721) #10
  %1723 = call ptr @__errno_location() #11
  %1724 = load i32, ptr %1723, align 4, !tbaa !5
  %1725 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1712, ptr noundef @.str.4, i32 noundef %1713, ptr noundef @.str.92, ptr noundef @.str.2, i32 noundef 435, ptr noundef %1716, ptr noundef %1719, ptr noundef %1722, i32 noundef %1724) #10
  br label %1726

1726:                                             ; preds = %1709, %1692
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #10
  br label %1727

1727:                                             ; preds = %1726
  br label %1728

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

1729:                                             ; No predecessors!
  br label %1730

1730:                                             ; preds = %1729
  br label %1731

1731:                                             ; preds = %1730, %1671
  br label %1732

1732:                                             ; preds = %1731
  br label %1733

1733:                                             ; preds = %1732
  br label %1734

1734:                                             ; preds = %1733
  %1735 = load i32, ptr @test_count, align 4, !tbaa !5
  %1736 = add nsw i32 %1735, 1
  store i32 %1736, ptr @test_count, align 4, !tbaa !5
  %1737 = load ptr, ptr %34, align 8, !tbaa !9
  %1738 = call i32 @s2n_connection_free(ptr noundef %1737)
  %1739 = icmp eq i32 %1738, -1
  br i1 %1739, label %1740, label %1793

1740:                                             ; preds = %1734
  br label %1741

1741:                                             ; preds = %1740
  br label %1742

1742:                                             ; preds = %1741
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #10
  %1743 = call ptr @__errno_location() #11
  %1744 = load i32, ptr %1743, align 4, !tbaa !5
  store i32 %1744, ptr %42, align 4, !tbaa !5
  %1745 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1746 = call i32 @s2n_print_stacktrace(ptr noundef %1745)
  %1747 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1748 = trunc i8 %1747 to i1
  br i1 %1748, label %1749, label %1771

1749:                                             ; preds = %1742
  %1750 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1751 = call i32 @fileno(ptr noundef %1750) #10
  %1752 = call i32 @isatty(i32 noundef %1751) #10
  %1753 = icmp ne i32 %1752, 0
  br i1 %1753, label %1754, label %1771

1754:                                             ; preds = %1749
  %1755 = load i32, ptr %42, align 4, !tbaa !5
  %1756 = call ptr @__errno_location() #11
  store i32 %1755, ptr %1756, align 4, !tbaa !5
  %1757 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1758 = load i32, ptr @test_count, align 4, !tbaa !5
  %1759 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1760 = load i32, ptr %1759, align 4, !tbaa !5
  %1761 = call ptr @s2n_strerror(i32 noundef %1760, ptr noundef @.str.3)
  %1762 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1763 = load i32, ptr %1762, align 4, !tbaa !5
  %1764 = call ptr @s2n_strerror_debug(i32 noundef %1763, ptr noundef @.str.3)
  %1765 = call ptr @__errno_location() #11
  %1766 = load i32, ptr %1765, align 4, !tbaa !5
  %1767 = call ptr @strerror(i32 noundef %1766) #10
  %1768 = call ptr @__errno_location() #11
  %1769 = load i32, ptr %1768, align 4, !tbaa !5
  %1770 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1757, ptr noundef @.str, i32 noundef %1758, ptr noundef @.str.93, ptr noundef @.str.2, i32 noundef 438, ptr noundef %1761, ptr noundef %1764, ptr noundef %1767, i32 noundef %1769) #10
  br label %1788

1771:                                             ; preds = %1749, %1742
  %1772 = load i32, ptr %42, align 4, !tbaa !5
  %1773 = call ptr @__errno_location() #11
  store i32 %1772, ptr %1773, align 4, !tbaa !5
  %1774 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1775 = load i32, ptr @test_count, align 4, !tbaa !5
  %1776 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1777 = load i32, ptr %1776, align 4, !tbaa !5
  %1778 = call ptr @s2n_strerror(i32 noundef %1777, ptr noundef @.str.3)
  %1779 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1780 = load i32, ptr %1779, align 4, !tbaa !5
  %1781 = call ptr @s2n_strerror_debug(i32 noundef %1780, ptr noundef @.str.3)
  %1782 = call ptr @__errno_location() #11
  %1783 = load i32, ptr %1782, align 4, !tbaa !5
  %1784 = call ptr @strerror(i32 noundef %1783) #10
  %1785 = call ptr @__errno_location() #11
  %1786 = load i32, ptr %1785, align 4, !tbaa !5
  %1787 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1774, ptr noundef @.str.4, i32 noundef %1775, ptr noundef @.str.93, ptr noundef @.str.2, i32 noundef 438, ptr noundef %1778, ptr noundef %1781, ptr noundef %1784, i32 noundef %1786) #10
  br label %1788

1788:                                             ; preds = %1771, %1754
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #10
  br label %1789

1789:                                             ; preds = %1788
  br label %1790

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

1791:                                             ; No predecessors!
  br label %1792

1792:                                             ; preds = %1791
  br label %1793

1793:                                             ; preds = %1792, %1734
  br label %1794

1794:                                             ; preds = %1793
  br label %1795

1795:                                             ; preds = %1794
  br label %1796

1796:                                             ; preds = %1795
  %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 = load ptr, ptr %31, align 8, !tbaa !9
  %1800 = call i32 @s2n_connection_free(ptr noundef %1799)
  %1801 = icmp eq i32 %1800, -1
  br i1 %1801, label %1802, label %1855

1802:                                             ; preds = %1796
  br label %1803

1803:                                             ; preds = %1802
  br label %1804

1804:                                             ; preds = %1803
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #10
  %1805 = call ptr @__errno_location() #11
  %1806 = load i32, ptr %1805, align 4, !tbaa !5
  store i32 %1806, ptr %43, align 4, !tbaa !5
  %1807 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1808 = call i32 @s2n_print_stacktrace(ptr noundef %1807)
  %1809 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1810 = trunc i8 %1809 to i1
  br i1 %1810, label %1811, label %1833

1811:                                             ; preds = %1804
  %1812 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1813 = call i32 @fileno(ptr noundef %1812) #10
  %1814 = call i32 @isatty(i32 noundef %1813) #10
  %1815 = icmp ne i32 %1814, 0
  br i1 %1815, label %1816, label %1833

1816:                                             ; preds = %1811
  %1817 = load i32, ptr %43, align 4, !tbaa !5
  %1818 = call ptr @__errno_location() #11
  store i32 %1817, ptr %1818, align 4, !tbaa !5
  %1819 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1820 = load i32, ptr @test_count, align 4, !tbaa !5
  %1821 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1822 = load i32, ptr %1821, align 4, !tbaa !5
  %1823 = call ptr @s2n_strerror(i32 noundef %1822, ptr noundef @.str.3)
  %1824 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1825 = load i32, ptr %1824, align 4, !tbaa !5
  %1826 = call ptr @s2n_strerror_debug(i32 noundef %1825, ptr noundef @.str.3)
  %1827 = call ptr @__errno_location() #11
  %1828 = load i32, ptr %1827, align 4, !tbaa !5
  %1829 = call ptr @strerror(i32 noundef %1828) #10
  %1830 = call ptr @__errno_location() #11
  %1831 = load i32, ptr %1830, align 4, !tbaa !5
  %1832 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1819, ptr noundef @.str, i32 noundef %1820, ptr noundef @.str.94, ptr noundef @.str.2, i32 noundef 439, ptr noundef %1823, ptr noundef %1826, ptr noundef %1829, i32 noundef %1831) #10
  br label %1850

1833:                                             ; preds = %1811, %1804
  %1834 = load i32, ptr %43, align 4, !tbaa !5
  %1835 = call ptr @__errno_location() #11
  store i32 %1834, ptr %1835, align 4, !tbaa !5
  %1836 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1837 = load i32, ptr @test_count, align 4, !tbaa !5
  %1838 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1839 = load i32, ptr %1838, align 4, !tbaa !5
  %1840 = call ptr @s2n_strerror(i32 noundef %1839, ptr noundef @.str.3)
  %1841 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1842 = load i32, ptr %1841, align 4, !tbaa !5
  %1843 = call ptr @s2n_strerror_debug(i32 noundef %1842, ptr noundef @.str.3)
  %1844 = call ptr @__errno_location() #11
  %1845 = load i32, ptr %1844, align 4, !tbaa !5
  %1846 = call ptr @strerror(i32 noundef %1845) #10
  %1847 = call ptr @__errno_location() #11
  %1848 = load i32, ptr %1847, align 4, !tbaa !5
  %1849 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1836, ptr noundef @.str.4, i32 noundef %1837, ptr noundef @.str.94, ptr noundef @.str.2, i32 noundef 439, ptr noundef %1840, ptr noundef %1843, ptr noundef %1846, i32 noundef %1848) #10
  br label %1850

1850:                                             ; preds = %1833, %1816
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #10
  br label %1851

1851:                                             ; preds = %1850
  br label %1852

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

1853:                                             ; No predecessors!
  br label %1854

1854:                                             ; preds = %1853
  br label %1855

1855:                                             ; preds = %1854, %1796
  br label %1856

1856:                                             ; preds = %1855
  br label %1857

1857:                                             ; preds = %1856
  br label %1858

1858:                                             ; preds = %1857
  %1859 = load i32, ptr @test_count, align 4, !tbaa !5
  %1860 = add nsw i32 %1859, 1
  store i32 %1860, ptr @test_count, align 4, !tbaa !5
  %1861 = call i32 @s2n_io_pair_close(ptr noundef %37)
  %1862 = icmp eq i32 %1861, -1
  br i1 %1862, label %1863, label %1916

1863:                                             ; preds = %1858
  br label %1864

1864:                                             ; preds = %1863
  br label %1865

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

1872:                                             ; preds = %1865
  %1873 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1874 = call i32 @fileno(ptr noundef %1873) #10
  %1875 = call i32 @isatty(i32 noundef %1874) #10
  %1876 = icmp ne i32 %1875, 0
  br i1 %1876, label %1877, label %1894

1877:                                             ; preds = %1872
  %1878 = load i32, ptr %44, align 4, !tbaa !5
  %1879 = call ptr @__errno_location() #11
  store i32 %1878, ptr %1879, align 4, !tbaa !5
  %1880 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1881 = load i32, ptr @test_count, align 4, !tbaa !5
  %1882 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1883 = load i32, ptr %1882, align 4, !tbaa !5
  %1884 = call ptr @s2n_strerror(i32 noundef %1883, ptr noundef @.str.3)
  %1885 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1886 = load i32, ptr %1885, align 4, !tbaa !5
  %1887 = call ptr @s2n_strerror_debug(i32 noundef %1886, ptr noundef @.str.3)
  %1888 = call ptr @__errno_location() #11
  %1889 = load i32, ptr %1888, align 4, !tbaa !5
  %1890 = call ptr @strerror(i32 noundef %1889) #10
  %1891 = call ptr @__errno_location() #11
  %1892 = load i32, ptr %1891, align 4, !tbaa !5
  %1893 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1880, ptr noundef @.str, i32 noundef %1881, ptr noundef @.str.95, ptr noundef @.str.2, i32 noundef 440, ptr noundef %1884, ptr noundef %1887, ptr noundef %1890, i32 noundef %1892) #10
  br label %1911

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

1911:                                             ; preds = %1894, %1877
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #10
  br label %1912

1912:                                             ; preds = %1911
  br label %1913

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

1914:                                             ; No predecessors!
  br label %1915

1915:                                             ; preds = %1914
  br label %1916

1916:                                             ; preds = %1915, %1858
  br label %1917

1917:                                             ; preds = %1916
  br label %1918

1918:                                             ; preds = %1917
  br label %1919

1919:                                             ; preds = %1918
  %1920 = load i32, ptr @test_count, align 4, !tbaa !5
  %1921 = add nsw i32 %1920, 1
  store i32 %1921, ptr @test_count, align 4, !tbaa !5
  %1922 = load ptr, ptr %21, align 8, !tbaa !9
  %1923 = call i32 @s2n_config_free(ptr noundef %1922)
  %1924 = icmp eq i32 %1923, -1
  br i1 %1924, label %1925, label %1978

1925:                                             ; preds = %1919
  br label %1926

1926:                                             ; preds = %1925
  br label %1927

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

1934:                                             ; preds = %1927
  %1935 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1936 = call i32 @fileno(ptr noundef %1935) #10
  %1937 = call i32 @isatty(i32 noundef %1936) #10
  %1938 = icmp ne i32 %1937, 0
  br i1 %1938, label %1939, label %1956

1939:                                             ; preds = %1934
  %1940 = load i32, ptr %45, align 4, !tbaa !5
  %1941 = call ptr @__errno_location() #11
  store i32 %1940, ptr %1941, align 4, !tbaa !5
  %1942 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1943 = load i32, ptr @test_count, align 4, !tbaa !5
  %1944 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1945 = load i32, ptr %1944, align 4, !tbaa !5
  %1946 = call ptr @s2n_strerror(i32 noundef %1945, ptr noundef @.str.3)
  %1947 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1948 = load i32, ptr %1947, align 4, !tbaa !5
  %1949 = call ptr @s2n_strerror_debug(i32 noundef %1948, ptr noundef @.str.3)
  %1950 = call ptr @__errno_location() #11
  %1951 = load i32, ptr %1950, align 4, !tbaa !5
  %1952 = call ptr @strerror(i32 noundef %1951) #10
  %1953 = call ptr @__errno_location() #11
  %1954 = load i32, ptr %1953, align 4, !tbaa !5
  %1955 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1942, ptr noundef @.str, i32 noundef %1943, ptr noundef @.str.96, ptr noundef @.str.2, i32 noundef 441, ptr noundef %1946, ptr noundef %1949, ptr noundef %1952, i32 noundef %1954) #10
  br label %1973

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

1973:                                             ; preds = %1956, %1939
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #10
  br label %1974

1974:                                             ; preds = %1973
  br label %1975

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

1976:                                             ; No predecessors!
  br label %1977

1977:                                             ; preds = %1976
  br label %1978

1978:                                             ; preds = %1977, %1919
  br label %1979

1979:                                             ; preds = %1978
  br label %1980

1980:                                             ; preds = %1979
  br label %1981

1981:                                             ; preds = %1980
  %1982 = load i32, ptr @test_count, align 4, !tbaa !5
  %1983 = add nsw i32 %1982, 1
  store i32 %1983, ptr @test_count, align 4, !tbaa !5
  %1984 = load ptr, ptr %22, align 8, !tbaa !9
  %1985 = call i32 @s2n_config_free(ptr noundef %1984)
  %1986 = icmp eq i32 %1985, -1
  br i1 %1986, label %1987, label %2040

1987:                                             ; preds = %1981
  br label %1988

1988:                                             ; preds = %1987
  br label %1989

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

1996:                                             ; preds = %1989
  %1997 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1998 = call i32 @fileno(ptr noundef %1997) #10
  %1999 = call i32 @isatty(i32 noundef %1998) #10
  %2000 = icmp ne i32 %1999, 0
  br i1 %2000, label %2001, label %2018

2001:                                             ; preds = %1996
  %2002 = load i32, ptr %46, align 4, !tbaa !5
  %2003 = call ptr @__errno_location() #11
  store i32 %2002, ptr %2003, align 4, !tbaa !5
  %2004 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2005 = load i32, ptr @test_count, align 4, !tbaa !5
  %2006 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2007 = load i32, ptr %2006, align 4, !tbaa !5
  %2008 = call ptr @s2n_strerror(i32 noundef %2007, ptr noundef @.str.3)
  %2009 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2010 = load i32, ptr %2009, align 4, !tbaa !5
  %2011 = call ptr @s2n_strerror_debug(i32 noundef %2010, ptr noundef @.str.3)
  %2012 = call ptr @__errno_location() #11
  %2013 = load i32, ptr %2012, align 4, !tbaa !5
  %2014 = call ptr @strerror(i32 noundef %2013) #10
  %2015 = call ptr @__errno_location() #11
  %2016 = load i32, ptr %2015, align 4, !tbaa !5
  %2017 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2004, ptr noundef @.str, i32 noundef %2005, ptr noundef @.str.97, ptr noundef @.str.2, i32 noundef 442, ptr noundef %2008, ptr noundef %2011, ptr noundef %2014, i32 noundef %2016) #10
  br label %2035

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

2035:                                             ; preds = %2018, %2001
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #10
  br label %2036

2036:                                             ; preds = %2035
  br label %2037

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

2038:                                             ; No predecessors!
  br label %2039

2039:                                             ; preds = %2038
  br label %2040

2040:                                             ; preds = %2039, %1981
  br label %2041

2041:                                             ; preds = %2040
  br label %2042

2042:                                             ; preds = %2041
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #10
  store ptr null, ptr %47, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #10
  store ptr null, ptr %48, align 8, !tbaa !9
  br label %2043

2043:                                             ; preds = %2042
  %2044 = load i32, ptr @test_count, align 4, !tbaa !5
  %2045 = add nsw i32 %2044, 1
  store i32 %2045, ptr @test_count, align 4, !tbaa !5
  %2046 = call ptr @s2n_config_new()
  store ptr %2046, ptr %47, align 8, !tbaa !9
  %2047 = icmp eq ptr %2046, null
  br i1 %2047, label %2048, label %2101

2048:                                             ; preds = %2043
  br label %2049

2049:                                             ; preds = %2048
  br label %2050

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

2057:                                             ; preds = %2050
  %2058 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2059 = call i32 @fileno(ptr noundef %2058) #10
  %2060 = call i32 @isatty(i32 noundef %2059) #10
  %2061 = icmp ne i32 %2060, 0
  br i1 %2061, label %2062, label %2079

2062:                                             ; preds = %2057
  %2063 = load i32, ptr %49, align 4, !tbaa !5
  %2064 = call ptr @__errno_location() #11
  store i32 %2063, ptr %2064, align 4, !tbaa !5
  %2065 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2066 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %2068, ptr noundef @.str.3)
  %2070 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2071 = load i32, ptr %2070, align 4, !tbaa !5
  %2072 = call ptr @s2n_strerror_debug(i32 noundef %2071, ptr noundef @.str.3)
  %2073 = call ptr @__errno_location() #11
  %2074 = load i32, ptr %2073, align 4, !tbaa !5
  %2075 = call ptr @strerror(i32 noundef %2074) #10
  %2076 = call ptr @__errno_location() #11
  %2077 = load i32, ptr %2076, align 4, !tbaa !5
  %2078 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2065, ptr noundef @.str, i32 noundef %2066, ptr noundef @.str.76, ptr noundef @.str.2, i32 noundef 448, ptr noundef %2069, ptr noundef %2072, ptr noundef %2075, i32 noundef %2077) #10
  br label %2096

2079:                                             ; preds = %2057, %2050
  %2080 = load i32, ptr %49, align 4, !tbaa !5
  %2081 = call ptr @__errno_location() #11
  store i32 %2080, ptr %2081, align 4, !tbaa !5
  %2082 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2083 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %2085, ptr noundef @.str.3)
  %2087 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2088 = load i32, ptr %2087, align 4, !tbaa !5
  %2089 = call ptr @s2n_strerror_debug(i32 noundef %2088, ptr noundef @.str.3)
  %2090 = call ptr @__errno_location() #11
  %2091 = load i32, ptr %2090, align 4, !tbaa !5
  %2092 = call ptr @strerror(i32 noundef %2091) #10
  %2093 = call ptr @__errno_location() #11
  %2094 = load i32, ptr %2093, align 4, !tbaa !5
  %2095 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2082, ptr noundef @.str.4, i32 noundef %2083, ptr noundef @.str.76, ptr noundef @.str.2, i32 noundef 448, ptr noundef %2086, ptr noundef %2089, ptr noundef %2092, i32 noundef %2094) #10
  br label %2096

2096:                                             ; preds = %2079, %2062
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #10
  br label %2097

2097:                                             ; preds = %2096
  br label %2098

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

2099:                                             ; No predecessors!
  br label %2100

2100:                                             ; preds = %2099
  br label %2101

2101:                                             ; preds = %2100, %2043
  br label %2102

2102:                                             ; preds = %2101
  br label %2103

2103:                                             ; preds = %2102
  br label %2104

2104:                                             ; preds = %2103
  %2105 = load i32, ptr @test_count, align 4, !tbaa !5
  %2106 = add nsw i32 %2105, 1
  store i32 %2106, ptr @test_count, align 4, !tbaa !5
  %2107 = load ptr, ptr %47, align 8, !tbaa !9
  %2108 = load ptr, ptr %12, align 8, !tbaa !9
  %2109 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %2107, ptr noundef %2108)
  %2110 = icmp eq i32 %2109, -1
  br i1 %2110, label %2111, label %2164

2111:                                             ; preds = %2104
  br label %2112

2112:                                             ; preds = %2111
  br label %2113

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

2120:                                             ; preds = %2113
  %2121 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2122 = call i32 @fileno(ptr noundef %2121) #10
  %2123 = call i32 @isatty(i32 noundef %2122) #10
  %2124 = icmp ne i32 %2123, 0
  br i1 %2124, label %2125, label %2142

2125:                                             ; preds = %2120
  %2126 = load i32, ptr %50, align 4, !tbaa !5
  %2127 = call ptr @__errno_location() #11
  store i32 %2126, ptr %2127, align 4, !tbaa !5
  %2128 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2129 = load i32, ptr @test_count, align 4, !tbaa !5
  %2130 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2131 = load i32, ptr %2130, align 4, !tbaa !5
  %2132 = call ptr @s2n_strerror(i32 noundef %2131, ptr noundef @.str.3)
  %2133 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2134 = load i32, ptr %2133, align 4, !tbaa !5
  %2135 = call ptr @s2n_strerror_debug(i32 noundef %2134, ptr noundef @.str.3)
  %2136 = call ptr @__errno_location() #11
  %2137 = load i32, ptr %2136, align 4, !tbaa !5
  %2138 = call ptr @strerror(i32 noundef %2137) #10
  %2139 = call ptr @__errno_location() #11
  %2140 = load i32, ptr %2139, align 4, !tbaa !5
  %2141 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2128, ptr noundef @.str, i32 noundef %2129, ptr noundef @.str.77, ptr noundef @.str.2, i32 noundef 449, ptr noundef %2132, ptr noundef %2135, ptr noundef %2138, i32 noundef %2140) #10
  br label %2159

2142:                                             ; preds = %2120, %2113
  %2143 = load i32, ptr %50, align 4, !tbaa !5
  %2144 = call ptr @__errno_location() #11
  store i32 %2143, ptr %2144, align 4, !tbaa !5
  %2145 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2146 = load i32, ptr @test_count, align 4, !tbaa !5
  %2147 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2148 = load i32, ptr %2147, align 4, !tbaa !5
  %2149 = call ptr @s2n_strerror(i32 noundef %2148, ptr noundef @.str.3)
  %2150 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2151 = load i32, ptr %2150, align 4, !tbaa !5
  %2152 = call ptr @s2n_strerror_debug(i32 noundef %2151, ptr noundef @.str.3)
  %2153 = call ptr @__errno_location() #11
  %2154 = load i32, ptr %2153, align 4, !tbaa !5
  %2155 = call ptr @strerror(i32 noundef %2154) #10
  %2156 = call ptr @__errno_location() #11
  %2157 = load i32, ptr %2156, align 4, !tbaa !5
  %2158 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2145, ptr noundef @.str.4, i32 noundef %2146, ptr noundef @.str.77, ptr noundef @.str.2, i32 noundef 449, ptr noundef %2149, ptr noundef %2152, ptr noundef %2155, i32 noundef %2157) #10
  br label %2159

2159:                                             ; preds = %2142, %2125
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #10
  br label %2160

2160:                                             ; preds = %2159
  br label %2161

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

2162:                                             ; No predecessors!
  br label %2163

2163:                                             ; preds = %2162
  br label %2164

2164:                                             ; preds = %2163, %2104
  br label %2165

2165:                                             ; preds = %2164
  br label %2166

2166:                                             ; preds = %2165
  br label %2167

2167:                                             ; preds = %2166
  %2168 = load i32, ptr @test_count, align 4, !tbaa !5
  %2169 = add nsw i32 %2168, 1
  store i32 %2169, ptr @test_count, align 4, !tbaa !5
  %2170 = load ptr, ptr %47, align 8, !tbaa !9
  %2171 = getelementptr inbounds [12000 x i8], ptr %10, i64 0, i64 0
  %2172 = call i32 @s2n_config_add_dhparams(ptr noundef %2170, ptr noundef %2171)
  %2173 = icmp eq i32 %2172, -1
  br i1 %2173, label %2174, label %2227

2174:                                             ; preds = %2167
  br label %2175

2175:                                             ; preds = %2174
  br label %2176

2176:                                             ; preds = %2175
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #10
  %2177 = call ptr @__errno_location() #11
  %2178 = load i32, ptr %2177, align 4, !tbaa !5
  store i32 %2178, ptr %51, align 4, !tbaa !5
  %2179 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2180 = call i32 @s2n_print_stacktrace(ptr noundef %2179)
  %2181 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2182 = trunc i8 %2181 to i1
  br i1 %2182, label %2183, label %2205

2183:                                             ; preds = %2176
  %2184 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2185 = call i32 @fileno(ptr noundef %2184) #10
  %2186 = call i32 @isatty(i32 noundef %2185) #10
  %2187 = icmp ne i32 %2186, 0
  br i1 %2187, label %2188, label %2205

2188:                                             ; preds = %2183
  %2189 = load i32, ptr %51, align 4, !tbaa !5
  %2190 = call ptr @__errno_location() #11
  store i32 %2189, ptr %2190, 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 @.str.3)
  %2196 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2197 = load i32, ptr %2196, align 4, !tbaa !5
  %2198 = call ptr @s2n_strerror_debug(i32 noundef %2197, ptr noundef @.str.3)
  %2199 = call ptr @__errno_location() #11
  %2200 = load i32, ptr %2199, align 4, !tbaa !5
  %2201 = call ptr @strerror(i32 noundef %2200) #10
  %2202 = call ptr @__errno_location() #11
  %2203 = load i32, ptr %2202, align 4, !tbaa !5
  %2204 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2191, ptr noundef @.str, i32 noundef %2192, ptr noundef @.str.78, ptr noundef @.str.2, i32 noundef 450, ptr noundef %2195, ptr noundef %2198, ptr noundef %2201, i32 noundef %2203) #10
  br label %2222

2205:                                             ; preds = %2183, %2176
  %2206 = load i32, ptr %51, align 4, !tbaa !5
  %2207 = call ptr @__errno_location() #11
  store i32 %2206, ptr %2207, align 4, !tbaa !5
  %2208 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2209 = load i32, ptr @test_count, align 4, !tbaa !5
  %2210 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2211 = load i32, ptr %2210, align 4, !tbaa !5
  %2212 = call ptr @s2n_strerror(i32 noundef %2211, ptr noundef @.str.3)
  %2213 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2214 = load i32, ptr %2213, align 4, !tbaa !5
  %2215 = call ptr @s2n_strerror_debug(i32 noundef %2214, ptr noundef @.str.3)
  %2216 = call ptr @__errno_location() #11
  %2217 = load i32, ptr %2216, align 4, !tbaa !5
  %2218 = call ptr @strerror(i32 noundef %2217) #10
  %2219 = call ptr @__errno_location() #11
  %2220 = load i32, ptr %2219, align 4, !tbaa !5
  %2221 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2208, ptr noundef @.str.4, i32 noundef %2209, ptr noundef @.str.78, ptr noundef @.str.2, i32 noundef 450, ptr noundef %2212, ptr noundef %2215, ptr noundef %2218, i32 noundef %2220) #10
  br label %2222

2222:                                             ; preds = %2205, %2188
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #10
  br label %2223

2223:                                             ; preds = %2222
  br label %2224

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

2225:                                             ; No predecessors!
  br label %2226

2226:                                             ; preds = %2225
  br label %2227

2227:                                             ; preds = %2226, %2167
  br label %2228

2228:                                             ; preds = %2227
  br label %2229

2229:                                             ; preds = %2228
  br label %2230

2230:                                             ; preds = %2229
  %2231 = load i32, ptr @test_count, align 4, !tbaa !5
  %2232 = add nsw i32 %2231, 1
  store i32 %2232, ptr @test_count, align 4, !tbaa !5
  %2233 = load ptr, ptr %47, align 8, !tbaa !9
  %2234 = call i32 @s2n_config_set_async_pkey_callback(ptr noundef %2233, ptr noundef @async_pkey_store_callback)
  %2235 = icmp eq i32 %2234, -1
  br i1 %2235, label %2236, label %2289

2236:                                             ; preds = %2230
  br label %2237

2237:                                             ; preds = %2236
  br label %2238

2238:                                             ; preds = %2237
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #10
  %2239 = call ptr @__errno_location() #11
  %2240 = load i32, ptr %2239, align 4, !tbaa !5
  store i32 %2240, ptr %52, align 4, !tbaa !5
  %2241 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2242 = call i32 @s2n_print_stacktrace(ptr noundef %2241)
  %2243 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2244 = trunc i8 %2243 to i1
  br i1 %2244, label %2245, label %2267

2245:                                             ; preds = %2238
  %2246 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2247 = call i32 @fileno(ptr noundef %2246) #10
  %2248 = call i32 @isatty(i32 noundef %2247) #10
  %2249 = icmp ne i32 %2248, 0
  br i1 %2249, label %2250, label %2267

2250:                                             ; preds = %2245
  %2251 = load i32, ptr %52, align 4, !tbaa !5
  %2252 = call ptr @__errno_location() #11
  store i32 %2251, ptr %2252, align 4, !tbaa !5
  %2253 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2254 = load i32, ptr @test_count, align 4, !tbaa !5
  %2255 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2256 = load i32, ptr %2255, align 4, !tbaa !5
  %2257 = call ptr @s2n_strerror(i32 noundef %2256, ptr noundef @.str.3)
  %2258 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2259 = load i32, ptr %2258, align 4, !tbaa !5
  %2260 = call ptr @s2n_strerror_debug(i32 noundef %2259, ptr noundef @.str.3)
  %2261 = call ptr @__errno_location() #11
  %2262 = load i32, ptr %2261, align 4, !tbaa !5
  %2263 = call ptr @strerror(i32 noundef %2262) #10
  %2264 = call ptr @__errno_location() #11
  %2265 = load i32, ptr %2264, align 4, !tbaa !5
  %2266 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2253, ptr noundef @.str, i32 noundef %2254, ptr noundef @.str.98, ptr noundef @.str.2, i32 noundef 451, ptr noundef %2257, ptr noundef %2260, ptr noundef %2263, i32 noundef %2265) #10
  br label %2284

2267:                                             ; preds = %2245, %2238
  %2268 = load i32, ptr %52, align 4, !tbaa !5
  %2269 = call ptr @__errno_location() #11
  store i32 %2268, ptr %2269, align 4, !tbaa !5
  %2270 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2271 = load i32, ptr @test_count, align 4, !tbaa !5
  %2272 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2273 = load i32, ptr %2272, align 4, !tbaa !5
  %2274 = call ptr @s2n_strerror(i32 noundef %2273, ptr noundef @.str.3)
  %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_debug(i32 noundef %2276, ptr noundef @.str.3)
  %2278 = call ptr @__errno_location() #11
  %2279 = load i32, ptr %2278, align 4, !tbaa !5
  %2280 = call ptr @strerror(i32 noundef %2279) #10
  %2281 = call ptr @__errno_location() #11
  %2282 = load i32, ptr %2281, align 4, !tbaa !5
  %2283 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2270, ptr noundef @.str.4, i32 noundef %2271, ptr noundef @.str.98, ptr noundef @.str.2, i32 noundef 451, ptr noundef %2274, ptr noundef %2277, ptr noundef %2280, i32 noundef %2282) #10
  br label %2284

2284:                                             ; preds = %2267, %2250
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #10
  br label %2285

2285:                                             ; preds = %2284
  br label %2286

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

2287:                                             ; No predecessors!
  br label %2288

2288:                                             ; preds = %2287
  br label %2289

2289:                                             ; preds = %2288, %2230
  br label %2290

2290:                                             ; preds = %2289
  br label %2291

2291:                                             ; preds = %2290
  %2292 = load ptr, ptr %47, align 8, !tbaa !9
  %2293 = getelementptr inbounds %struct.s2n_config, ptr %2292, i32 0, i32 7
  store ptr %19, ptr %2293, align 8, !tbaa !31
  br label %2294

2294:                                             ; preds = %2291
  %2295 = load i32, ptr @test_count, align 4, !tbaa !5
  %2296 = add nsw i32 %2295, 1
  store i32 %2296, ptr @test_count, align 4, !tbaa !5
  %2297 = call ptr @s2n_config_new()
  store ptr %2297, ptr %48, align 8, !tbaa !9
  %2298 = icmp eq ptr %2297, null
  br i1 %2298, label %2299, label %2352

2299:                                             ; preds = %2294
  br label %2300

2300:                                             ; preds = %2299
  br label %2301

2301:                                             ; preds = %2300
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #10
  %2302 = call ptr @__errno_location() #11
  %2303 = load i32, ptr %2302, align 4, !tbaa !5
  store i32 %2303, ptr %53, align 4, !tbaa !5
  %2304 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2305 = call i32 @s2n_print_stacktrace(ptr noundef %2304)
  %2306 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2307 = trunc i8 %2306 to i1
  br i1 %2307, label %2308, label %2330

2308:                                             ; preds = %2301
  %2309 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2310 = call i32 @fileno(ptr noundef %2309) #10
  %2311 = call i32 @isatty(i32 noundef %2310) #10
  %2312 = icmp ne i32 %2311, 0
  br i1 %2312, label %2313, label %2330

2313:                                             ; preds = %2308
  %2314 = load i32, ptr %53, align 4, !tbaa !5
  %2315 = call ptr @__errno_location() #11
  store i32 %2314, ptr %2315, align 4, !tbaa !5
  %2316 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2317 = load i32, ptr @test_count, align 4, !tbaa !5
  %2318 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2319 = load i32, ptr %2318, align 4, !tbaa !5
  %2320 = call ptr @s2n_strerror(i32 noundef %2319, ptr noundef @.str.3)
  %2321 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2322 = load i32, ptr %2321, align 4, !tbaa !5
  %2323 = call ptr @s2n_strerror_debug(i32 noundef %2322, ptr noundef @.str.3)
  %2324 = call ptr @__errno_location() #11
  %2325 = load i32, ptr %2324, align 4, !tbaa !5
  %2326 = call ptr @strerror(i32 noundef %2325) #10
  %2327 = call ptr @__errno_location() #11
  %2328 = load i32, ptr %2327, align 4, !tbaa !5
  %2329 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2316, ptr noundef @.str, i32 noundef %2317, ptr noundef @.str.80, ptr noundef @.str.2, i32 noundef 454, ptr noundef %2320, ptr noundef %2323, ptr noundef %2326, i32 noundef %2328) #10
  br label %2347

2330:                                             ; preds = %2308, %2301
  %2331 = load i32, ptr %53, align 4, !tbaa !5
  %2332 = call ptr @__errno_location() #11
  store i32 %2331, ptr %2332, align 4, !tbaa !5
  %2333 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2334 = load i32, ptr @test_count, align 4, !tbaa !5
  %2335 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2336 = load i32, ptr %2335, align 4, !tbaa !5
  %2337 = call ptr @s2n_strerror(i32 noundef %2336, ptr noundef @.str.3)
  %2338 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2339 = load i32, ptr %2338, align 4, !tbaa !5
  %2340 = call ptr @s2n_strerror_debug(i32 noundef %2339, ptr noundef @.str.3)
  %2341 = call ptr @__errno_location() #11
  %2342 = load i32, ptr %2341, align 4, !tbaa !5
  %2343 = call ptr @strerror(i32 noundef %2342) #10
  %2344 = call ptr @__errno_location() #11
  %2345 = load i32, ptr %2344, align 4, !tbaa !5
  %2346 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2333, ptr noundef @.str.4, i32 noundef %2334, ptr noundef @.str.80, ptr noundef @.str.2, i32 noundef 454, ptr noundef %2337, ptr noundef %2340, ptr noundef %2343, i32 noundef %2345) #10
  br label %2347

2347:                                             ; preds = %2330, %2313
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #10
  br label %2348

2348:                                             ; preds = %2347
  br label %2349

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

2350:                                             ; No predecessors!
  br label %2351

2351:                                             ; preds = %2350
  br label %2352

2352:                                             ; preds = %2351, %2294
  br label %2353

2353:                                             ; preds = %2352
  br label %2354

2354:                                             ; preds = %2353
  br label %2355

2355:                                             ; preds = %2354
  %2356 = load i32, ptr @test_count, align 4, !tbaa !5
  %2357 = add nsw i32 %2356, 1
  store i32 %2357, ptr @test_count, align 4, !tbaa !5
  %2358 = load ptr, ptr %48, align 8, !tbaa !9
  %2359 = call i32 @s2n_config_set_unsafe_for_testing(ptr noundef %2358)
  %2360 = icmp eq i32 %2359, -1
  br i1 %2360, label %2361, label %2414

2361:                                             ; preds = %2355
  br label %2362

2362:                                             ; preds = %2361
  br label %2363

2363:                                             ; preds = %2362
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #10
  %2364 = call ptr @__errno_location() #11
  %2365 = load i32, ptr %2364, align 4, !tbaa !5
  store i32 %2365, ptr %54, align 4, !tbaa !5
  %2366 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2367 = call i32 @s2n_print_stacktrace(ptr noundef %2366)
  %2368 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2369 = trunc i8 %2368 to i1
  br i1 %2369, label %2370, label %2392

2370:                                             ; preds = %2363
  %2371 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2372 = call i32 @fileno(ptr noundef %2371) #10
  %2373 = call i32 @isatty(i32 noundef %2372) #10
  %2374 = icmp ne i32 %2373, 0
  br i1 %2374, label %2375, label %2392

2375:                                             ; preds = %2370
  %2376 = load i32, ptr %54, align 4, !tbaa !5
  %2377 = call ptr @__errno_location() #11
  store i32 %2376, ptr %2377, align 4, !tbaa !5
  %2378 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2379 = load i32, ptr @test_count, align 4, !tbaa !5
  %2380 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2381 = load i32, ptr %2380, align 4, !tbaa !5
  %2382 = call ptr @s2n_strerror(i32 noundef %2381, ptr noundef @.str.3)
  %2383 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2384 = load i32, ptr %2383, align 4, !tbaa !5
  %2385 = call ptr @s2n_strerror_debug(i32 noundef %2384, ptr noundef @.str.3)
  %2386 = call ptr @__errno_location() #11
  %2387 = load i32, ptr %2386, align 4, !tbaa !5
  %2388 = call ptr @strerror(i32 noundef %2387) #10
  %2389 = call ptr @__errno_location() #11
  %2390 = load i32, ptr %2389, align 4, !tbaa !5
  %2391 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2378, ptr noundef @.str, i32 noundef %2379, ptr noundef @.str.81, ptr noundef @.str.2, i32 noundef 455, ptr noundef %2382, ptr noundef %2385, ptr noundef %2388, i32 noundef %2390) #10
  br label %2409

2392:                                             ; preds = %2370, %2363
  %2393 = load i32, ptr %54, align 4, !tbaa !5
  %2394 = call ptr @__errno_location() #11
  store i32 %2393, ptr %2394, align 4, !tbaa !5
  %2395 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2396 = load i32, ptr @test_count, align 4, !tbaa !5
  %2397 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2398 = load i32, ptr %2397, align 4, !tbaa !5
  %2399 = call ptr @s2n_strerror(i32 noundef %2398, ptr noundef @.str.3)
  %2400 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2401 = load i32, ptr %2400, align 4, !tbaa !5
  %2402 = call ptr @s2n_strerror_debug(i32 noundef %2401, ptr noundef @.str.3)
  %2403 = call ptr @__errno_location() #11
  %2404 = load i32, ptr %2403, align 4, !tbaa !5
  %2405 = call ptr @strerror(i32 noundef %2404) #10
  %2406 = call ptr @__errno_location() #11
  %2407 = load i32, ptr %2406, align 4, !tbaa !5
  %2408 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2395, ptr noundef @.str.4, i32 noundef %2396, ptr noundef @.str.81, ptr noundef @.str.2, i32 noundef 455, ptr noundef %2399, ptr noundef %2402, ptr noundef %2405, i32 noundef %2407) #10
  br label %2409

2409:                                             ; preds = %2392, %2375
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #10
  br label %2410

2410:                                             ; preds = %2409
  br label %2411

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

2412:                                             ; No predecessors!
  br label %2413

2413:                                             ; preds = %2412
  br label %2414

2414:                                             ; preds = %2413, %2355
  br label %2415

2415:                                             ; preds = %2414
  br label %2416

2416:                                             ; preds = %2415
  br label %2417

2417:                                             ; preds = %2416
  %2418 = load i32, ptr @test_count, align 4, !tbaa !5
  %2419 = add nsw i32 %2418, 1
  store i32 %2419, ptr @test_count, align 4, !tbaa !5
  %2420 = load ptr, ptr %48, align 8, !tbaa !9
  %2421 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %2420, ptr noundef @.str.82)
  %2422 = icmp eq i32 %2421, -1
  br i1 %2422, label %2423, label %2476

2423:                                             ; preds = %2417
  br label %2424

2424:                                             ; preds = %2423
  br label %2425

2425:                                             ; preds = %2424
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #10
  %2426 = call ptr @__errno_location() #11
  %2427 = load i32, ptr %2426, align 4, !tbaa !5
  store i32 %2427, ptr %55, align 4, !tbaa !5
  %2428 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2429 = call i32 @s2n_print_stacktrace(ptr noundef %2428)
  %2430 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2431 = trunc i8 %2430 to i1
  br i1 %2431, label %2432, label %2454

2432:                                             ; preds = %2425
  %2433 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2434 = call i32 @fileno(ptr noundef %2433) #10
  %2435 = call i32 @isatty(i32 noundef %2434) #10
  %2436 = icmp ne i32 %2435, 0
  br i1 %2436, label %2437, label %2454

2437:                                             ; preds = %2432
  %2438 = load i32, ptr %55, align 4, !tbaa !5
  %2439 = call ptr @__errno_location() #11
  store i32 %2438, ptr %2439, align 4, !tbaa !5
  %2440 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2441 = load i32, ptr @test_count, align 4, !tbaa !5
  %2442 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2443 = load i32, ptr %2442, align 4, !tbaa !5
  %2444 = call ptr @s2n_strerror(i32 noundef %2443, ptr noundef @.str.3)
  %2445 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2446 = load i32, ptr %2445, align 4, !tbaa !5
  %2447 = call ptr @s2n_strerror_debug(i32 noundef %2446, ptr noundef @.str.3)
  %2448 = call ptr @__errno_location() #11
  %2449 = load i32, ptr %2448, align 4, !tbaa !5
  %2450 = call ptr @strerror(i32 noundef %2449) #10
  %2451 = call ptr @__errno_location() #11
  %2452 = load i32, ptr %2451, align 4, !tbaa !5
  %2453 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2440, ptr noundef @.str, i32 noundef %2441, ptr noundef @.str.83, ptr noundef @.str.2, i32 noundef 457, ptr noundef %2444, ptr noundef %2447, ptr noundef %2450, i32 noundef %2452) #10
  br label %2471

2454:                                             ; preds = %2432, %2425
  %2455 = load i32, ptr %55, align 4, !tbaa !5
  %2456 = call ptr @__errno_location() #11
  store i32 %2455, ptr %2456, align 4, !tbaa !5
  %2457 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2458 = load i32, ptr @test_count, align 4, !tbaa !5
  %2459 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2460 = load i32, ptr %2459, align 4, !tbaa !5
  %2461 = call ptr @s2n_strerror(i32 noundef %2460, ptr noundef @.str.3)
  %2462 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2463 = load i32, ptr %2462, align 4, !tbaa !5
  %2464 = call ptr @s2n_strerror_debug(i32 noundef %2463, ptr noundef @.str.3)
  %2465 = call ptr @__errno_location() #11
  %2466 = load i32, ptr %2465, align 4, !tbaa !5
  %2467 = call ptr @strerror(i32 noundef %2466) #10
  %2468 = call ptr @__errno_location() #11
  %2469 = load i32, ptr %2468, align 4, !tbaa !5
  %2470 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2457, ptr noundef @.str.4, i32 noundef %2458, ptr noundef @.str.83, ptr noundef @.str.2, i32 noundef 457, ptr noundef %2461, ptr noundef %2464, ptr noundef %2467, i32 noundef %2469) #10
  br label %2471

2471:                                             ; preds = %2454, %2437
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #10
  br label %2472

2472:                                             ; preds = %2471
  br label %2473

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

2474:                                             ; No predecessors!
  br label %2475

2475:                                             ; preds = %2474
  br label %2476

2476:                                             ; preds = %2475, %2417
  br label %2477

2477:                                             ; preds = %2476
  br label %2478

2478:                                             ; preds = %2477
  br label %2479

2479:                                             ; preds = %2478
  %2480 = load i32, ptr @test_count, align 4, !tbaa !5
  %2481 = add nsw i32 %2480, 1
  store i32 %2481, ptr @test_count, align 4, !tbaa !5
  %2482 = load ptr, ptr %48, align 8, !tbaa !9
  %2483 = call i32 @s2n_config_set_verification_ca_location(ptr noundef %2482, ptr noundef @.str.69, ptr noundef null)
  %2484 = icmp eq i32 %2483, -1
  br i1 %2484, label %2485, label %2538

2485:                                             ; preds = %2479
  br label %2486

2486:                                             ; preds = %2485
  br label %2487

2487:                                             ; preds = %2486
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #10
  %2488 = call ptr @__errno_location() #11
  %2489 = load i32, ptr %2488, align 4, !tbaa !5
  store i32 %2489, ptr %56, align 4, !tbaa !5
  %2490 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2491 = call i32 @s2n_print_stacktrace(ptr noundef %2490)
  %2492 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2493 = trunc i8 %2492 to i1
  br i1 %2493, label %2494, label %2516

2494:                                             ; preds = %2487
  %2495 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2496 = call i32 @fileno(ptr noundef %2495) #10
  %2497 = call i32 @isatty(i32 noundef %2496) #10
  %2498 = icmp ne i32 %2497, 0
  br i1 %2498, label %2499, label %2516

2499:                                             ; preds = %2494
  %2500 = load i32, ptr %56, align 4, !tbaa !5
  %2501 = call ptr @__errno_location() #11
  store i32 %2500, ptr %2501, align 4, !tbaa !5
  %2502 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2503 = load i32, ptr @test_count, align 4, !tbaa !5
  %2504 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2505 = load i32, ptr %2504, align 4, !tbaa !5
  %2506 = call ptr @s2n_strerror(i32 noundef %2505, ptr noundef @.str.3)
  %2507 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2508 = load i32, ptr %2507, align 4, !tbaa !5
  %2509 = call ptr @s2n_strerror_debug(i32 noundef %2508, ptr noundef @.str.3)
  %2510 = call ptr @__errno_location() #11
  %2511 = load i32, ptr %2510, align 4, !tbaa !5
  %2512 = call ptr @strerror(i32 noundef %2511) #10
  %2513 = call ptr @__errno_location() #11
  %2514 = load i32, ptr %2513, align 4, !tbaa !5
  %2515 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2502, ptr noundef @.str, i32 noundef %2503, ptr noundef @.str.84, ptr noundef @.str.2, i32 noundef 459, ptr noundef %2506, ptr noundef %2509, ptr noundef %2512, i32 noundef %2514) #10
  br label %2533

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

2533:                                             ; preds = %2516, %2499
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #10
  br label %2534

2534:                                             ; preds = %2533
  br label %2535

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

2536:                                             ; No predecessors!
  br label %2537

2537:                                             ; preds = %2536
  br label %2538

2538:                                             ; preds = %2537, %2479
  br label %2539

2539:                                             ; preds = %2538
  br label %2540

2540:                                             ; preds = %2539
  call void @llvm.lifetime.start.p0(i64 8, ptr %57) #10
  %2541 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %2541, ptr %57, align 8, !tbaa !9
  br label %2542

2542:                                             ; preds = %2540
  %2543 = load i32, ptr @test_count, align 4, !tbaa !5
  %2544 = add nsw i32 %2543, 1
  store i32 %2544, ptr @test_count, align 4, !tbaa !5
  %2545 = load ptr, ptr %57, align 8, !tbaa !9
  %2546 = icmp eq ptr %2545, null
  br i1 %2546, label %2547, label %2600

2547:                                             ; preds = %2542
  br label %2548

2548:                                             ; preds = %2547
  br label %2549

2549:                                             ; preds = %2548
  call void @llvm.lifetime.start.p0(i64 4, ptr %58) #10
  %2550 = call ptr @__errno_location() #11
  %2551 = load i32, ptr %2550, align 4, !tbaa !5
  store i32 %2551, ptr %58, align 4, !tbaa !5
  %2552 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2553 = call i32 @s2n_print_stacktrace(ptr noundef %2552)
  %2554 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2555 = trunc i8 %2554 to i1
  br i1 %2555, label %2556, label %2578

2556:                                             ; preds = %2549
  %2557 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2558 = call i32 @fileno(ptr noundef %2557) #10
  %2559 = call i32 @isatty(i32 noundef %2558) #10
  %2560 = icmp ne i32 %2559, 0
  br i1 %2560, label %2561, label %2578

2561:                                             ; preds = %2556
  %2562 = load i32, ptr %58, align 4, !tbaa !5
  %2563 = call ptr @__errno_location() #11
  store i32 %2562, ptr %2563, align 4, !tbaa !5
  %2564 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2565 = load i32, ptr @test_count, align 4, !tbaa !5
  %2566 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2567 = load i32, ptr %2566, align 4, !tbaa !5
  %2568 = call ptr @s2n_strerror(i32 noundef %2567, ptr noundef @.str.3)
  %2569 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2570 = load i32, ptr %2569, align 4, !tbaa !5
  %2571 = call ptr @s2n_strerror_debug(i32 noundef %2570, ptr noundef @.str.3)
  %2572 = call ptr @__errno_location() #11
  %2573 = load i32, ptr %2572, align 4, !tbaa !5
  %2574 = call ptr @strerror(i32 noundef %2573) #10
  %2575 = call ptr @__errno_location() #11
  %2576 = load i32, ptr %2575, align 4, !tbaa !5
  %2577 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2564, ptr noundef @.str, i32 noundef %2565, ptr noundef @.str.85, ptr noundef @.str.2, i32 noundef 463, ptr noundef %2568, ptr noundef %2571, ptr noundef %2574, i32 noundef %2576) #10
  br label %2595

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

2595:                                             ; preds = %2578, %2561
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #10
  br label %2596

2596:                                             ; preds = %2595
  br label %2597

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

2598:                                             ; No predecessors!
  br label %2599

2599:                                             ; preds = %2598
  br label %2600

2600:                                             ; preds = %2599, %2542
  br label %2601

2601:                                             ; preds = %2600
  br label %2602

2602:                                             ; preds = %2601
  br label %2603

2603:                                             ; preds = %2602
  %2604 = load i32, ptr @test_count, align 4, !tbaa !5
  %2605 = add nsw i32 %2604, 1
  store i32 %2605, ptr @test_count, align 4, !tbaa !5
  %2606 = load ptr, ptr %57, align 8, !tbaa !9
  %2607 = load ptr, ptr %48, align 8, !tbaa !9
  %2608 = call i32 @s2n_connection_set_config(ptr noundef %2606, ptr noundef %2607)
  %2609 = icmp eq i32 %2608, -1
  br i1 %2609, label %2610, label %2663

2610:                                             ; preds = %2603
  br label %2611

2611:                                             ; preds = %2610
  br label %2612

2612:                                             ; preds = %2611
  call void @llvm.lifetime.start.p0(i64 4, ptr %59) #10
  %2613 = call ptr @__errno_location() #11
  %2614 = load i32, ptr %2613, align 4, !tbaa !5
  store i32 %2614, ptr %59, align 4, !tbaa !5
  %2615 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2616 = call i32 @s2n_print_stacktrace(ptr noundef %2615)
  %2617 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2618 = trunc i8 %2617 to i1
  br i1 %2618, label %2619, label %2641

2619:                                             ; preds = %2612
  %2620 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2621 = call i32 @fileno(ptr noundef %2620) #10
  %2622 = call i32 @isatty(i32 noundef %2621) #10
  %2623 = icmp ne i32 %2622, 0
  br i1 %2623, label %2624, label %2641

2624:                                             ; preds = %2619
  %2625 = load i32, ptr %59, align 4, !tbaa !5
  %2626 = call ptr @__errno_location() #11
  store i32 %2625, ptr %2626, align 4, !tbaa !5
  %2627 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2628 = load i32, ptr @test_count, align 4, !tbaa !5
  %2629 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2630 = load i32, ptr %2629, align 4, !tbaa !5
  %2631 = call ptr @s2n_strerror(i32 noundef %2630, ptr noundef @.str.3)
  %2632 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2633 = load i32, ptr %2632, align 4, !tbaa !5
  %2634 = call ptr @s2n_strerror_debug(i32 noundef %2633, ptr noundef @.str.3)
  %2635 = call ptr @__errno_location() #11
  %2636 = load i32, ptr %2635, align 4, !tbaa !5
  %2637 = call ptr @strerror(i32 noundef %2636) #10
  %2638 = call ptr @__errno_location() #11
  %2639 = load i32, ptr %2638, align 4, !tbaa !5
  %2640 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2627, ptr noundef @.str, i32 noundef %2628, ptr noundef @.str.86, ptr noundef @.str.2, i32 noundef 464, ptr noundef %2631, ptr noundef %2634, ptr noundef %2637, i32 noundef %2639) #10
  br label %2658

2641:                                             ; preds = %2619, %2612
  %2642 = load i32, ptr %59, align 4, !tbaa !5
  %2643 = call ptr @__errno_location() #11
  store i32 %2642, ptr %2643, align 4, !tbaa !5
  %2644 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2645 = load i32, ptr @test_count, align 4, !tbaa !5
  %2646 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2647 = load i32, ptr %2646, align 4, !tbaa !5
  %2648 = call ptr @s2n_strerror(i32 noundef %2647, ptr noundef @.str.3)
  %2649 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2650 = load i32, ptr %2649, align 4, !tbaa !5
  %2651 = call ptr @s2n_strerror_debug(i32 noundef %2650, ptr noundef @.str.3)
  %2652 = call ptr @__errno_location() #11
  %2653 = load i32, ptr %2652, align 4, !tbaa !5
  %2654 = call ptr @strerror(i32 noundef %2653) #10
  %2655 = call ptr @__errno_location() #11
  %2656 = load i32, ptr %2655, align 4, !tbaa !5
  %2657 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2644, ptr noundef @.str.4, i32 noundef %2645, ptr noundef @.str.86, ptr noundef @.str.2, i32 noundef 464, ptr noundef %2648, ptr noundef %2651, ptr noundef %2654, i32 noundef %2656) #10
  br label %2658

2658:                                             ; preds = %2641, %2624
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #10
  br label %2659

2659:                                             ; preds = %2658
  br label %2660

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

2661:                                             ; No predecessors!
  br label %2662

2662:                                             ; preds = %2661
  br label %2663

2663:                                             ; preds = %2662, %2603
  br label %2664

2664:                                             ; preds = %2663
  br label %2665

2665:                                             ; preds = %2664
  call void @llvm.lifetime.start.p0(i64 8, ptr %60) #10
  %2666 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %2666, ptr %60, align 8, !tbaa !9
  br label %2667

2667:                                             ; preds = %2665
  %2668 = load i32, ptr @test_count, align 4, !tbaa !5
  %2669 = add nsw i32 %2668, 1
  store i32 %2669, ptr @test_count, align 4, !tbaa !5
  %2670 = load ptr, ptr %60, align 8, !tbaa !9
  %2671 = icmp eq ptr %2670, null
  br i1 %2671, label %2672, label %2725

2672:                                             ; preds = %2667
  br label %2673

2673:                                             ; preds = %2672
  br label %2674

2674:                                             ; preds = %2673
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #10
  %2675 = call ptr @__errno_location() #11
  %2676 = load i32, ptr %2675, align 4, !tbaa !5
  store i32 %2676, ptr %61, align 4, !tbaa !5
  %2677 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2678 = call i32 @s2n_print_stacktrace(ptr noundef %2677)
  %2679 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2680 = trunc i8 %2679 to i1
  br i1 %2680, label %2681, label %2703

2681:                                             ; preds = %2674
  %2682 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2683 = call i32 @fileno(ptr noundef %2682) #10
  %2684 = call i32 @isatty(i32 noundef %2683) #10
  %2685 = icmp ne i32 %2684, 0
  br i1 %2685, label %2686, label %2703

2686:                                             ; preds = %2681
  %2687 = load i32, ptr %61, align 4, !tbaa !5
  %2688 = call ptr @__errno_location() #11
  store i32 %2687, ptr %2688, align 4, !tbaa !5
  %2689 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2690 = load i32, ptr @test_count, align 4, !tbaa !5
  %2691 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2692 = load i32, ptr %2691, align 4, !tbaa !5
  %2693 = call ptr @s2n_strerror(i32 noundef %2692, ptr noundef @.str.3)
  %2694 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2695 = load i32, ptr %2694, align 4, !tbaa !5
  %2696 = call ptr @s2n_strerror_debug(i32 noundef %2695, ptr noundef @.str.3)
  %2697 = call ptr @__errno_location() #11
  %2698 = load i32, ptr %2697, align 4, !tbaa !5
  %2699 = call ptr @strerror(i32 noundef %2698) #10
  %2700 = call ptr @__errno_location() #11
  %2701 = load i32, ptr %2700, align 4, !tbaa !5
  %2702 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2689, ptr noundef @.str, i32 noundef %2690, ptr noundef @.str.87, ptr noundef @.str.2, i32 noundef 467, ptr noundef %2693, ptr noundef %2696, ptr noundef %2699, i32 noundef %2701) #10
  br label %2720

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

2720:                                             ; preds = %2703, %2686
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #10
  br label %2721

2721:                                             ; preds = %2720
  br label %2722

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

2723:                                             ; No predecessors!
  br label %2724

2724:                                             ; preds = %2723
  br label %2725

2725:                                             ; preds = %2724, %2667
  br label %2726

2726:                                             ; preds = %2725
  br label %2727

2727:                                             ; preds = %2726
  br label %2728

2728:                                             ; preds = %2727
  %2729 = load i32, ptr @test_count, align 4, !tbaa !5
  %2730 = add nsw i32 %2729, 1
  store i32 %2730, ptr @test_count, align 4, !tbaa !5
  %2731 = load ptr, ptr %60, align 8, !tbaa !9
  %2732 = load ptr, ptr %47, align 8, !tbaa !9
  %2733 = call i32 @s2n_connection_set_config(ptr noundef %2731, ptr noundef %2732)
  %2734 = icmp eq i32 %2733, -1
  br i1 %2734, label %2735, label %2788

2735:                                             ; preds = %2728
  br label %2736

2736:                                             ; preds = %2735
  br label %2737

2737:                                             ; preds = %2736
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #10
  %2738 = call ptr @__errno_location() #11
  %2739 = load i32, ptr %2738, align 4, !tbaa !5
  store i32 %2739, ptr %62, align 4, !tbaa !5
  %2740 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2741 = call i32 @s2n_print_stacktrace(ptr noundef %2740)
  %2742 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2743 = trunc i8 %2742 to i1
  br i1 %2743, label %2744, label %2766

2744:                                             ; preds = %2737
  %2745 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2746 = call i32 @fileno(ptr noundef %2745) #10
  %2747 = call i32 @isatty(i32 noundef %2746) #10
  %2748 = icmp ne i32 %2747, 0
  br i1 %2748, label %2749, label %2766

2749:                                             ; preds = %2744
  %2750 = load i32, ptr %62, align 4, !tbaa !5
  %2751 = call ptr @__errno_location() #11
  store i32 %2750, ptr %2751, align 4, !tbaa !5
  %2752 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2753 = load i32, ptr @test_count, align 4, !tbaa !5
  %2754 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2755 = load i32, ptr %2754, align 4, !tbaa !5
  %2756 = call ptr @s2n_strerror(i32 noundef %2755, ptr noundef @.str.3)
  %2757 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2758 = load i32, ptr %2757, align 4, !tbaa !5
  %2759 = call ptr @s2n_strerror_debug(i32 noundef %2758, ptr noundef @.str.3)
  %2760 = call ptr @__errno_location() #11
  %2761 = load i32, ptr %2760, align 4, !tbaa !5
  %2762 = call ptr @strerror(i32 noundef %2761) #10
  %2763 = call ptr @__errno_location() #11
  %2764 = load i32, ptr %2763, align 4, !tbaa !5
  %2765 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2752, ptr noundef @.str, i32 noundef %2753, ptr noundef @.str.88, ptr noundef @.str.2, i32 noundef 468, ptr noundef %2756, ptr noundef %2759, ptr noundef %2762, i32 noundef %2764) #10
  br label %2783

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

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

2784:                                             ; preds = %2783
  br label %2785

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

2786:                                             ; No predecessors!
  br label %2787

2787:                                             ; preds = %2786
  br label %2788

2788:                                             ; preds = %2787, %2728
  br label %2789

2789:                                             ; preds = %2788
  br label %2790

2790:                                             ; preds = %2789
  call void @llvm.lifetime.start.p0(i64 8, ptr %63) #10
  br label %2791

2791:                                             ; preds = %2790
  %2792 = load i32, ptr @test_count, align 4, !tbaa !5
  %2793 = add nsw i32 %2792, 1
  store i32 %2793, ptr @test_count, align 4, !tbaa !5
  %2794 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef %63)
  %2795 = icmp eq i32 %2794, -1
  br i1 %2795, label %2796, label %2849

2796:                                             ; preds = %2791
  br label %2797

2797:                                             ; preds = %2796
  br label %2798

2798:                                             ; preds = %2797
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #10
  %2799 = call ptr @__errno_location() #11
  %2800 = load i32, ptr %2799, align 4, !tbaa !5
  store i32 %2800, ptr %64, align 4, !tbaa !5
  %2801 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2802 = call i32 @s2n_print_stacktrace(ptr noundef %2801)
  %2803 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2804 = trunc i8 %2803 to i1
  br i1 %2804, label %2805, label %2827

2805:                                             ; preds = %2798
  %2806 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2807 = call i32 @fileno(ptr noundef %2806) #10
  %2808 = call i32 @isatty(i32 noundef %2807) #10
  %2809 = icmp ne i32 %2808, 0
  br i1 %2809, label %2810, label %2827

2810:                                             ; preds = %2805
  %2811 = load i32, ptr %64, align 4, !tbaa !5
  %2812 = call ptr @__errno_location() #11
  store i32 %2811, ptr %2812, align 4, !tbaa !5
  %2813 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2814 = load i32, ptr @test_count, align 4, !tbaa !5
  %2815 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2816 = load i32, ptr %2815, align 4, !tbaa !5
  %2817 = call ptr @s2n_strerror(i32 noundef %2816, ptr noundef @.str.3)
  %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_debug(i32 noundef %2819, ptr noundef @.str.3)
  %2821 = call ptr @__errno_location() #11
  %2822 = load i32, ptr %2821, align 4, !tbaa !5
  %2823 = call ptr @strerror(i32 noundef %2822) #10
  %2824 = call ptr @__errno_location() #11
  %2825 = load i32, ptr %2824, align 4, !tbaa !5
  %2826 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2813, ptr noundef @.str, i32 noundef %2814, ptr noundef @.str.89, ptr noundef @.str.2, i32 noundef 472, ptr noundef %2817, ptr noundef %2820, ptr noundef %2823, i32 noundef %2825) #10
  br label %2844

2827:                                             ; preds = %2805, %2798
  %2828 = load i32, ptr %64, align 4, !tbaa !5
  %2829 = call ptr @__errno_location() #11
  store i32 %2828, ptr %2829, align 4, !tbaa !5
  %2830 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2831 = load i32, ptr @test_count, align 4, !tbaa !5
  %2832 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2833 = load i32, ptr %2832, align 4, !tbaa !5
  %2834 = call ptr @s2n_strerror(i32 noundef %2833, ptr noundef @.str.3)
  %2835 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2836 = load i32, ptr %2835, align 4, !tbaa !5
  %2837 = call ptr @s2n_strerror_debug(i32 noundef %2836, ptr noundef @.str.3)
  %2838 = call ptr @__errno_location() #11
  %2839 = load i32, ptr %2838, align 4, !tbaa !5
  %2840 = call ptr @strerror(i32 noundef %2839) #10
  %2841 = call ptr @__errno_location() #11
  %2842 = load i32, ptr %2841, align 4, !tbaa !5
  %2843 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2830, ptr noundef @.str.4, i32 noundef %2831, ptr noundef @.str.89, ptr noundef @.str.2, i32 noundef 472, ptr noundef %2834, ptr noundef %2837, ptr noundef %2840, i32 noundef %2842) #10
  br label %2844

2844:                                             ; preds = %2827, %2810
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #10
  br label %2845

2845:                                             ; preds = %2844
  br label %2846

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

2847:                                             ; No predecessors!
  br label %2848

2848:                                             ; preds = %2847
  br label %2849

2849:                                             ; preds = %2848, %2791
  br label %2850

2850:                                             ; preds = %2849
  br label %2851

2851:                                             ; preds = %2850
  br label %2852

2852:                                             ; preds = %2851
  %2853 = load i32, ptr @test_count, align 4, !tbaa !5
  %2854 = add nsw i32 %2853, 1
  store i32 %2854, ptr @test_count, align 4, !tbaa !5
  %2855 = load ptr, ptr %57, align 8, !tbaa !9
  %2856 = call i32 @s2n_connection_set_io_pair(ptr noundef %2855, ptr noundef %63)
  %2857 = icmp eq i32 %2856, -1
  br i1 %2857, label %2858, label %2911

2858:                                             ; preds = %2852
  br label %2859

2859:                                             ; preds = %2858
  br label %2860

2860:                                             ; preds = %2859
  call void @llvm.lifetime.start.p0(i64 4, ptr %65) #10
  %2861 = call ptr @__errno_location() #11
  %2862 = load i32, ptr %2861, align 4, !tbaa !5
  store i32 %2862, ptr %65, align 4, !tbaa !5
  %2863 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2864 = call i32 @s2n_print_stacktrace(ptr noundef %2863)
  %2865 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2866 = trunc i8 %2865 to i1
  br i1 %2866, label %2867, label %2889

2867:                                             ; preds = %2860
  %2868 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2869 = call i32 @fileno(ptr noundef %2868) #10
  %2870 = call i32 @isatty(i32 noundef %2869) #10
  %2871 = icmp ne i32 %2870, 0
  br i1 %2871, label %2872, label %2889

2872:                                             ; preds = %2867
  %2873 = load i32, ptr %65, align 4, !tbaa !5
  %2874 = call ptr @__errno_location() #11
  store i32 %2873, ptr %2874, align 4, !tbaa !5
  %2875 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2876 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %2878, ptr noundef @.str.3)
  %2880 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2881 = load i32, ptr %2880, align 4, !tbaa !5
  %2882 = call ptr @s2n_strerror_debug(i32 noundef %2881, ptr noundef @.str.3)
  %2883 = call ptr @__errno_location() #11
  %2884 = load i32, ptr %2883, align 4, !tbaa !5
  %2885 = call ptr @strerror(i32 noundef %2884) #10
  %2886 = call ptr @__errno_location() #11
  %2887 = load i32, ptr %2886, align 4, !tbaa !5
  %2888 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2875, ptr noundef @.str, i32 noundef %2876, ptr noundef @.str.90, ptr noundef @.str.2, i32 noundef 473, ptr noundef %2879, ptr noundef %2882, ptr noundef %2885, i32 noundef %2887) #10
  br label %2906

2889:                                             ; preds = %2867, %2860
  %2890 = load i32, ptr %65, align 4, !tbaa !5
  %2891 = call ptr @__errno_location() #11
  store i32 %2890, ptr %2891, align 4, !tbaa !5
  %2892 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2893 = load i32, ptr @test_count, align 4, !tbaa !5
  %2894 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2895 = load i32, ptr %2894, align 4, !tbaa !5
  %2896 = call ptr @s2n_strerror(i32 noundef %2895, ptr noundef @.str.3)
  %2897 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2898 = load i32, ptr %2897, align 4, !tbaa !5
  %2899 = call ptr @s2n_strerror_debug(i32 noundef %2898, ptr noundef @.str.3)
  %2900 = call ptr @__errno_location() #11
  %2901 = load i32, ptr %2900, align 4, !tbaa !5
  %2902 = call ptr @strerror(i32 noundef %2901) #10
  %2903 = call ptr @__errno_location() #11
  %2904 = load i32, ptr %2903, align 4, !tbaa !5
  %2905 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2892, ptr noundef @.str.4, i32 noundef %2893, ptr noundef @.str.90, ptr noundef @.str.2, i32 noundef 473, ptr noundef %2896, ptr noundef %2899, ptr noundef %2902, i32 noundef %2904) #10
  br label %2906

2906:                                             ; preds = %2889, %2872
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #10
  br label %2907

2907:                                             ; preds = %2906
  br label %2908

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

2909:                                             ; No predecessors!
  br label %2910

2910:                                             ; preds = %2909
  br label %2911

2911:                                             ; preds = %2910, %2852
  br label %2912

2912:                                             ; preds = %2911
  br label %2913

2913:                                             ; preds = %2912
  br label %2914

2914:                                             ; preds = %2913
  %2915 = load i32, ptr @test_count, align 4, !tbaa !5
  %2916 = add nsw i32 %2915, 1
  store i32 %2916, ptr @test_count, align 4, !tbaa !5
  %2917 = load ptr, ptr %60, align 8, !tbaa !9
  %2918 = call i32 @s2n_connection_set_io_pair(ptr noundef %2917, ptr noundef %63)
  %2919 = icmp eq i32 %2918, -1
  br i1 %2919, label %2920, label %2973

2920:                                             ; preds = %2914
  br label %2921

2921:                                             ; preds = %2920
  br label %2922

2922:                                             ; preds = %2921
  call void @llvm.lifetime.start.p0(i64 4, ptr %66) #10
  %2923 = call ptr @__errno_location() #11
  %2924 = load i32, ptr %2923, align 4, !tbaa !5
  store i32 %2924, ptr %66, align 4, !tbaa !5
  %2925 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2926 = call i32 @s2n_print_stacktrace(ptr noundef %2925)
  %2927 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2928 = trunc i8 %2927 to i1
  br i1 %2928, label %2929, label %2951

2929:                                             ; preds = %2922
  %2930 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2931 = call i32 @fileno(ptr noundef %2930) #10
  %2932 = call i32 @isatty(i32 noundef %2931) #10
  %2933 = icmp ne i32 %2932, 0
  br i1 %2933, label %2934, label %2951

2934:                                             ; preds = %2929
  %2935 = load i32, ptr %66, align 4, !tbaa !5
  %2936 = call ptr @__errno_location() #11
  store i32 %2935, ptr %2936, align 4, !tbaa !5
  %2937 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2938 = load i32, ptr @test_count, align 4, !tbaa !5
  %2939 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2940 = load i32, ptr %2939, align 4, !tbaa !5
  %2941 = call ptr @s2n_strerror(i32 noundef %2940, ptr noundef @.str.3)
  %2942 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2943 = load i32, ptr %2942, align 4, !tbaa !5
  %2944 = call ptr @s2n_strerror_debug(i32 noundef %2943, ptr noundef @.str.3)
  %2945 = call ptr @__errno_location() #11
  %2946 = load i32, ptr %2945, align 4, !tbaa !5
  %2947 = call ptr @strerror(i32 noundef %2946) #10
  %2948 = call ptr @__errno_location() #11
  %2949 = load i32, ptr %2948, align 4, !tbaa !5
  %2950 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2937, ptr noundef @.str, i32 noundef %2938, ptr noundef @.str.91, ptr noundef @.str.2, i32 noundef 474, ptr noundef %2941, ptr noundef %2944, ptr noundef %2947, i32 noundef %2949) #10
  br label %2968

2951:                                             ; preds = %2929, %2922
  %2952 = load i32, ptr %66, align 4, !tbaa !5
  %2953 = call ptr @__errno_location() #11
  store i32 %2952, ptr %2953, align 4, !tbaa !5
  %2954 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2955 = load i32, ptr @test_count, align 4, !tbaa !5
  %2956 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2957 = load i32, ptr %2956, align 4, !tbaa !5
  %2958 = call ptr @s2n_strerror(i32 noundef %2957, ptr noundef @.str.3)
  %2959 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2960 = load i32, ptr %2959, align 4, !tbaa !5
  %2961 = call ptr @s2n_strerror_debug(i32 noundef %2960, ptr noundef @.str.3)
  %2962 = call ptr @__errno_location() #11
  %2963 = load i32, ptr %2962, align 4, !tbaa !5
  %2964 = call ptr @strerror(i32 noundef %2963) #10
  %2965 = call ptr @__errno_location() #11
  %2966 = load i32, ptr %2965, align 4, !tbaa !5
  %2967 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2954, ptr noundef @.str.4, i32 noundef %2955, ptr noundef @.str.91, ptr noundef @.str.2, i32 noundef 474, ptr noundef %2958, ptr noundef %2961, ptr noundef %2964, i32 noundef %2966) #10
  br label %2968

2968:                                             ; preds = %2951, %2934
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #10
  br label %2969

2969:                                             ; preds = %2968
  br label %2970

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

2971:                                             ; No predecessors!
  br label %2972

2972:                                             ; preds = %2971
  br label %2973

2973:                                             ; preds = %2972, %2914
  br label %2974

2974:                                             ; preds = %2973
  br label %2975

2975:                                             ; preds = %2974
  br label %2976

2976:                                             ; preds = %2975
  %2977 = load i32, ptr @test_count, align 4, !tbaa !5
  %2978 = add nsw i32 %2977, 1
  store i32 %2978, ptr @test_count, align 4, !tbaa !5
  %2979 = load ptr, ptr %60, align 8, !tbaa !9
  %2980 = load ptr, ptr %57, align 8, !tbaa !9
  %2981 = call i32 @try_handshake(ptr noundef %2979, ptr noundef %2980, ptr noundef @async_handler_wipe_connection_and_apply)
  %2982 = icmp eq i32 %2981, -1
  br i1 %2982, label %3036, label %2983

2983:                                             ; preds = %2976
  br label %2984

2984:                                             ; preds = %2983
  br label %2985

2985:                                             ; preds = %2984
  call void @llvm.lifetime.start.p0(i64 4, ptr %67) #10
  %2986 = call ptr @__errno_location() #11
  %2987 = load i32, ptr %2986, align 4, !tbaa !5
  store i32 %2987, ptr %67, align 4, !tbaa !5
  %2988 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2989 = call i32 @s2n_print_stacktrace(ptr noundef %2988)
  %2990 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2991 = trunc i8 %2990 to i1
  br i1 %2991, label %2992, label %3014

2992:                                             ; preds = %2985
  %2993 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2994 = call i32 @fileno(ptr noundef %2993) #10
  %2995 = call i32 @isatty(i32 noundef %2994) #10
  %2996 = icmp ne i32 %2995, 0
  br i1 %2996, label %2997, label %3014

2997:                                             ; preds = %2992
  %2998 = load i32, ptr %67, align 4, !tbaa !5
  %2999 = call ptr @__errno_location() #11
  store i32 %2998, ptr %2999, align 4, !tbaa !5
  %3000 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3001 = load i32, ptr @test_count, align 4, !tbaa !5
  %3002 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3003 = load i32, ptr %3002, align 4, !tbaa !5
  %3004 = call ptr @s2n_strerror(i32 noundef %3003, ptr noundef @.str.3)
  %3005 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3006 = load i32, ptr %3005, align 4, !tbaa !5
  %3007 = call ptr @s2n_strerror_debug(i32 noundef %3006, ptr noundef @.str.3)
  %3008 = call ptr @__errno_location() #11
  %3009 = load i32, ptr %3008, align 4, !tbaa !5
  %3010 = call ptr @strerror(i32 noundef %3009) #10
  %3011 = call ptr @__errno_location() #11
  %3012 = load i32, ptr %3011, align 4, !tbaa !5
  %3013 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3000, ptr noundef @.str, i32 noundef %3001, ptr noundef @.str.99, ptr noundef @.str.2, i32 noundef 476, ptr noundef %3004, ptr noundef %3007, ptr noundef %3010, i32 noundef %3012) #10
  br label %3031

3014:                                             ; preds = %2992, %2985
  %3015 = load i32, ptr %67, align 4, !tbaa !5
  %3016 = call ptr @__errno_location() #11
  store i32 %3015, ptr %3016, 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 @.str.3)
  %3022 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3023 = load i32, ptr %3022, align 4, !tbaa !5
  %3024 = call ptr @s2n_strerror_debug(i32 noundef %3023, ptr noundef @.str.3)
  %3025 = call ptr @__errno_location() #11
  %3026 = load i32, ptr %3025, align 4, !tbaa !5
  %3027 = call ptr @strerror(i32 noundef %3026) #10
  %3028 = call ptr @__errno_location() #11
  %3029 = load i32, ptr %3028, align 4, !tbaa !5
  %3030 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3017, ptr noundef @.str.4, i32 noundef %3018, ptr noundef @.str.99, ptr noundef @.str.2, i32 noundef 476, ptr noundef %3021, ptr noundef %3024, ptr noundef %3027, i32 noundef %3029) #10
  br label %3031

3031:                                             ; preds = %3014, %2997
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #10
  br label %3032

3032:                                             ; preds = %3031
  br label %3033

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

3034:                                             ; No predecessors!
  br label %3035

3035:                                             ; preds = %3034
  br label %3036

3036:                                             ; preds = %3035, %2976
  br label %3037

3037:                                             ; preds = %3036
  br label %3038

3038:                                             ; preds = %3037
  br label %3039

3039:                                             ; preds = %3038
  %3040 = load i32, ptr @test_count, align 4, !tbaa !5
  %3041 = add nsw i32 %3040, 1
  store i32 %3041, ptr @test_count, align 4, !tbaa !5
  %3042 = load ptr, ptr %60, align 8, !tbaa !9
  %3043 = call i32 @s2n_connection_free(ptr noundef %3042)
  %3044 = icmp eq i32 %3043, -1
  br i1 %3044, label %3045, label %3098

3045:                                             ; preds = %3039
  br label %3046

3046:                                             ; preds = %3045
  br label %3047

3047:                                             ; preds = %3046
  call void @llvm.lifetime.start.p0(i64 4, ptr %68) #10
  %3048 = call ptr @__errno_location() #11
  %3049 = load i32, ptr %3048, align 4, !tbaa !5
  store i32 %3049, ptr %68, align 4, !tbaa !5
  %3050 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3051 = call i32 @s2n_print_stacktrace(ptr noundef %3050)
  %3052 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3053 = trunc i8 %3052 to i1
  br i1 %3053, label %3054, label %3076

3054:                                             ; preds = %3047
  %3055 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3056 = call i32 @fileno(ptr noundef %3055) #10
  %3057 = call i32 @isatty(i32 noundef %3056) #10
  %3058 = icmp ne i32 %3057, 0
  br i1 %3058, label %3059, label %3076

3059:                                             ; preds = %3054
  %3060 = load i32, ptr %68, align 4, !tbaa !5
  %3061 = call ptr @__errno_location() #11
  store i32 %3060, ptr %3061, align 4, !tbaa !5
  %3062 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3063 = load i32, ptr @test_count, align 4, !tbaa !5
  %3064 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3065 = load i32, ptr %3064, align 4, !tbaa !5
  %3066 = call ptr @s2n_strerror(i32 noundef %3065, ptr noundef @.str.3)
  %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_debug(i32 noundef %3068, ptr noundef @.str.3)
  %3070 = call ptr @__errno_location() #11
  %3071 = load i32, ptr %3070, align 4, !tbaa !5
  %3072 = call ptr @strerror(i32 noundef %3071) #10
  %3073 = call ptr @__errno_location() #11
  %3074 = load i32, ptr %3073, align 4, !tbaa !5
  %3075 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3062, ptr noundef @.str, i32 noundef %3063, ptr noundef @.str.93, ptr noundef @.str.2, i32 noundef 479, ptr noundef %3066, ptr noundef %3069, ptr noundef %3072, i32 noundef %3074) #10
  br label %3093

3076:                                             ; preds = %3054, %3047
  %3077 = load i32, ptr %68, align 4, !tbaa !5
  %3078 = call ptr @__errno_location() #11
  store i32 %3077, ptr %3078, align 4, !tbaa !5
  %3079 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3080 = load i32, ptr @test_count, align 4, !tbaa !5
  %3081 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3082 = load i32, ptr %3081, align 4, !tbaa !5
  %3083 = call ptr @s2n_strerror(i32 noundef %3082, ptr noundef @.str.3)
  %3084 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3085 = load i32, ptr %3084, align 4, !tbaa !5
  %3086 = call ptr @s2n_strerror_debug(i32 noundef %3085, ptr noundef @.str.3)
  %3087 = call ptr @__errno_location() #11
  %3088 = load i32, ptr %3087, align 4, !tbaa !5
  %3089 = call ptr @strerror(i32 noundef %3088) #10
  %3090 = call ptr @__errno_location() #11
  %3091 = load i32, ptr %3090, align 4, !tbaa !5
  %3092 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3079, ptr noundef @.str.4, i32 noundef %3080, ptr noundef @.str.93, ptr noundef @.str.2, i32 noundef 479, ptr noundef %3083, ptr noundef %3086, ptr noundef %3089, i32 noundef %3091) #10
  br label %3093

3093:                                             ; preds = %3076, %3059
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #10
  br label %3094

3094:                                             ; preds = %3093
  br label %3095

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

3096:                                             ; No predecessors!
  br label %3097

3097:                                             ; preds = %3096
  br label %3098

3098:                                             ; preds = %3097, %3039
  br label %3099

3099:                                             ; preds = %3098
  br label %3100

3100:                                             ; preds = %3099
  br label %3101

3101:                                             ; preds = %3100
  %3102 = load i32, ptr @test_count, align 4, !tbaa !5
  %3103 = add nsw i32 %3102, 1
  store i32 %3103, ptr @test_count, align 4, !tbaa !5
  %3104 = load ptr, ptr %57, align 8, !tbaa !9
  %3105 = call i32 @s2n_connection_free(ptr noundef %3104)
  %3106 = icmp eq i32 %3105, -1
  br i1 %3106, label %3107, label %3160

3107:                                             ; preds = %3101
  br label %3108

3108:                                             ; preds = %3107
  br label %3109

3109:                                             ; preds = %3108
  call void @llvm.lifetime.start.p0(i64 4, ptr %69) #10
  %3110 = call ptr @__errno_location() #11
  %3111 = load i32, ptr %3110, align 4, !tbaa !5
  store i32 %3111, ptr %69, 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) #10
  %3119 = call i32 @isatty(i32 noundef %3118) #10
  %3120 = icmp ne i32 %3119, 0
  br i1 %3120, label %3121, label %3138

3121:                                             ; preds = %3116
  %3122 = load i32, ptr %69, align 4, !tbaa !5
  %3123 = call ptr @__errno_location() #11
  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.3)
  %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.3)
  %3132 = call ptr @__errno_location() #11
  %3133 = load i32, ptr %3132, align 4, !tbaa !5
  %3134 = call ptr @strerror(i32 noundef %3133) #10
  %3135 = call ptr @__errno_location() #11
  %3136 = load i32, ptr %3135, align 4, !tbaa !5
  %3137 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3124, ptr noundef @.str, i32 noundef %3125, ptr noundef @.str.94, ptr noundef @.str.2, i32 noundef 480, ptr noundef %3128, ptr noundef %3131, ptr noundef %3134, i32 noundef %3136) #10
  br label %3155

3138:                                             ; preds = %3116, %3109
  %3139 = load i32, ptr %69, align 4, !tbaa !5
  %3140 = call ptr @__errno_location() #11
  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.3)
  %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.3)
  %3149 = call ptr @__errno_location() #11
  %3150 = load i32, ptr %3149, align 4, !tbaa !5
  %3151 = call ptr @strerror(i32 noundef %3150) #10
  %3152 = call ptr @__errno_location() #11
  %3153 = load i32, ptr %3152, align 4, !tbaa !5
  %3154 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3141, ptr noundef @.str.4, i32 noundef %3142, ptr noundef @.str.94, ptr noundef @.str.2, i32 noundef 480, ptr noundef %3145, ptr noundef %3148, ptr noundef %3151, i32 noundef %3153) #10
  br label %3155

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

3156:                                             ; preds = %3155
  br label %3157

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

3158:                                             ; No predecessors!
  br label %3159

3159:                                             ; preds = %3158
  br label %3160

3160:                                             ; preds = %3159, %3101
  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 = call i32 @s2n_io_pair_close(ptr noundef %63)
  %3167 = icmp eq i32 %3166, -1
  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 %70) #10
  %3171 = call ptr @__errno_location() #11
  %3172 = load i32, ptr %3171, align 4, !tbaa !5
  store i32 %3172, ptr %70, 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) #10
  %3180 = call i32 @isatty(i32 noundef %3179) #10
  %3181 = icmp ne i32 %3180, 0
  br i1 %3181, label %3182, label %3199

3182:                                             ; preds = %3177
  %3183 = load i32, ptr %70, align 4, !tbaa !5
  %3184 = call ptr @__errno_location() #11
  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.3)
  %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.3)
  %3193 = call ptr @__errno_location() #11
  %3194 = load i32, ptr %3193, align 4, !tbaa !5
  %3195 = call ptr @strerror(i32 noundef %3194) #10
  %3196 = call ptr @__errno_location() #11
  %3197 = load i32, ptr %3196, align 4, !tbaa !5
  %3198 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3185, ptr noundef @.str, i32 noundef %3186, ptr noundef @.str.95, ptr noundef @.str.2, i32 noundef 481, ptr noundef %3189, ptr noundef %3192, ptr noundef %3195, i32 noundef %3197) #10
  br label %3216

3199:                                             ; preds = %3177, %3170
  %3200 = load i32, ptr %70, align 4, !tbaa !5
  %3201 = call ptr @__errno_location() #11
  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.3)
  %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.3)
  %3210 = call ptr @__errno_location() #11
  %3211 = load i32, ptr %3210, align 4, !tbaa !5
  %3212 = call ptr @strerror(i32 noundef %3211) #10
  %3213 = call ptr @__errno_location() #11
  %3214 = load i32, ptr %3213, align 4, !tbaa !5
  %3215 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3202, ptr noundef @.str.4, i32 noundef %3203, ptr noundef @.str.95, ptr noundef @.str.2, i32 noundef 481, ptr noundef %3206, ptr noundef %3209, ptr noundef %3212, i32 noundef %3214) #10
  br label %3216

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

3217:                                             ; preds = %3216
  br label %3218

3218:                                             ; preds = %3217
  call void @exit(i32 noundef 1) #12
  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
  br label %3224

3224:                                             ; preds = %3223
  %3225 = load i32, ptr @test_count, align 4, !tbaa !5
  %3226 = add nsw i32 %3225, 1
  store i32 %3226, ptr @test_count, align 4, !tbaa !5
  %3227 = load ptr, ptr %47, align 8, !tbaa !9
  %3228 = call i32 @s2n_config_free(ptr noundef %3227)
  %3229 = icmp eq i32 %3228, -1
  br i1 %3229, label %3230, label %3283

3230:                                             ; preds = %3224
  br label %3231

3231:                                             ; preds = %3230
  br label %3232

3232:                                             ; preds = %3231
  call void @llvm.lifetime.start.p0(i64 4, ptr %71) #10
  %3233 = call ptr @__errno_location() #11
  %3234 = load i32, ptr %3233, align 4, !tbaa !5
  store i32 %3234, ptr %71, align 4, !tbaa !5
  %3235 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3236 = call i32 @s2n_print_stacktrace(ptr noundef %3235)
  %3237 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3238 = trunc i8 %3237 to i1
  br i1 %3238, label %3239, label %3261

3239:                                             ; preds = %3232
  %3240 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3241 = call i32 @fileno(ptr noundef %3240) #10
  %3242 = call i32 @isatty(i32 noundef %3241) #10
  %3243 = icmp ne i32 %3242, 0
  br i1 %3243, label %3244, label %3261

3244:                                             ; preds = %3239
  %3245 = load i32, ptr %71, align 4, !tbaa !5
  %3246 = call ptr @__errno_location() #11
  store i32 %3245, ptr %3246, align 4, !tbaa !5
  %3247 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3248 = load i32, ptr @test_count, align 4, !tbaa !5
  %3249 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3250 = load i32, ptr %3249, align 4, !tbaa !5
  %3251 = call ptr @s2n_strerror(i32 noundef %3250, ptr noundef @.str.3)
  %3252 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3253 = load i32, ptr %3252, align 4, !tbaa !5
  %3254 = call ptr @s2n_strerror_debug(i32 noundef %3253, ptr noundef @.str.3)
  %3255 = call ptr @__errno_location() #11
  %3256 = load i32, ptr %3255, align 4, !tbaa !5
  %3257 = call ptr @strerror(i32 noundef %3256) #10
  %3258 = call ptr @__errno_location() #11
  %3259 = load i32, ptr %3258, align 4, !tbaa !5
  %3260 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3247, ptr noundef @.str, i32 noundef %3248, ptr noundef @.str.96, ptr noundef @.str.2, i32 noundef 482, ptr noundef %3251, ptr noundef %3254, ptr noundef %3257, i32 noundef %3259) #10
  br label %3278

3261:                                             ; preds = %3239, %3232
  %3262 = load i32, ptr %71, align 4, !tbaa !5
  %3263 = call ptr @__errno_location() #11
  store i32 %3262, ptr %3263, align 4, !tbaa !5
  %3264 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3265 = load i32, ptr @test_count, align 4, !tbaa !5
  %3266 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3267 = load i32, ptr %3266, align 4, !tbaa !5
  %3268 = call ptr @s2n_strerror(i32 noundef %3267, ptr noundef @.str.3)
  %3269 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3270 = load i32, ptr %3269, align 4, !tbaa !5
  %3271 = call ptr @s2n_strerror_debug(i32 noundef %3270, ptr noundef @.str.3)
  %3272 = call ptr @__errno_location() #11
  %3273 = load i32, ptr %3272, align 4, !tbaa !5
  %3274 = call ptr @strerror(i32 noundef %3273) #10
  %3275 = call ptr @__errno_location() #11
  %3276 = load i32, ptr %3275, align 4, !tbaa !5
  %3277 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3264, ptr noundef @.str.4, i32 noundef %3265, ptr noundef @.str.96, ptr noundef @.str.2, i32 noundef 482, ptr noundef %3268, ptr noundef %3271, ptr noundef %3274, i32 noundef %3276) #10
  br label %3278

3278:                                             ; preds = %3261, %3244
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #10
  br label %3279

3279:                                             ; preds = %3278
  br label %3280

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

3281:                                             ; No predecessors!
  br label %3282

3282:                                             ; preds = %3281
  br label %3283

3283:                                             ; preds = %3282, %3224
  br label %3284

3284:                                             ; preds = %3283
  br label %3285

3285:                                             ; preds = %3284
  br label %3286

3286:                                             ; preds = %3285
  %3287 = load i32, ptr @test_count, align 4, !tbaa !5
  %3288 = add nsw i32 %3287, 1
  store i32 %3288, ptr @test_count, align 4, !tbaa !5
  %3289 = load ptr, ptr %48, align 8, !tbaa !9
  %3290 = call i32 @s2n_config_free(ptr noundef %3289)
  %3291 = icmp eq i32 %3290, -1
  br i1 %3291, label %3292, label %3345

3292:                                             ; preds = %3286
  br label %3293

3293:                                             ; preds = %3292
  br label %3294

3294:                                             ; preds = %3293
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #10
  %3295 = call ptr @__errno_location() #11
  %3296 = load i32, ptr %3295, align 4, !tbaa !5
  store i32 %3296, ptr %72, align 4, !tbaa !5
  %3297 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3298 = call i32 @s2n_print_stacktrace(ptr noundef %3297)
  %3299 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3300 = trunc i8 %3299 to i1
  br i1 %3300, label %3301, label %3323

3301:                                             ; preds = %3294
  %3302 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3303 = call i32 @fileno(ptr noundef %3302) #10
  %3304 = call i32 @isatty(i32 noundef %3303) #10
  %3305 = icmp ne i32 %3304, 0
  br i1 %3305, label %3306, label %3323

3306:                                             ; preds = %3301
  %3307 = load i32, ptr %72, align 4, !tbaa !5
  %3308 = call ptr @__errno_location() #11
  store i32 %3307, ptr %3308, align 4, !tbaa !5
  %3309 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3310 = load i32, ptr @test_count, align 4, !tbaa !5
  %3311 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3312 = load i32, ptr %3311, align 4, !tbaa !5
  %3313 = call ptr @s2n_strerror(i32 noundef %3312, ptr noundef @.str.3)
  %3314 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3315 = load i32, ptr %3314, align 4, !tbaa !5
  %3316 = call ptr @s2n_strerror_debug(i32 noundef %3315, ptr noundef @.str.3)
  %3317 = call ptr @__errno_location() #11
  %3318 = load i32, ptr %3317, align 4, !tbaa !5
  %3319 = call ptr @strerror(i32 noundef %3318) #10
  %3320 = call ptr @__errno_location() #11
  %3321 = load i32, ptr %3320, align 4, !tbaa !5
  %3322 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3309, ptr noundef @.str, i32 noundef %3310, ptr noundef @.str.97, ptr noundef @.str.2, i32 noundef 483, ptr noundef %3313, ptr noundef %3316, ptr noundef %3319, i32 noundef %3321) #10
  br label %3340

3323:                                             ; preds = %3301, %3294
  %3324 = load i32, ptr %72, align 4, !tbaa !5
  %3325 = call ptr @__errno_location() #11
  store i32 %3324, ptr %3325, align 4, !tbaa !5
  %3326 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3327 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %3329, ptr noundef @.str.3)
  %3331 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3332 = load i32, ptr %3331, align 4, !tbaa !5
  %3333 = call ptr @s2n_strerror_debug(i32 noundef %3332, ptr noundef @.str.3)
  %3334 = call ptr @__errno_location() #11
  %3335 = load i32, ptr %3334, align 4, !tbaa !5
  %3336 = call ptr @strerror(i32 noundef %3335) #10
  %3337 = call ptr @__errno_location() #11
  %3338 = load i32, ptr %3337, align 4, !tbaa !5
  %3339 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3326, ptr noundef @.str.4, i32 noundef %3327, ptr noundef @.str.97, ptr noundef @.str.2, i32 noundef 483, ptr noundef %3330, ptr noundef %3333, ptr noundef %3336, i32 noundef %3338) #10
  br label %3340

3340:                                             ; preds = %3323, %3306
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #10
  br label %3341

3341:                                             ; preds = %3340
  br label %3342

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

3343:                                             ; No predecessors!
  br label %3344

3344:                                             ; preds = %3343
  br label %3345

3345:                                             ; preds = %3344, %3286
  br label %3346

3346:                                             ; preds = %3345
  br label %3347

3347:                                             ; preds = %3346
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %73) #10
  store ptr null, ptr %73, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %74) #10
  store ptr null, ptr %74, align 8, !tbaa !9
  br label %3348

3348:                                             ; preds = %3347
  %3349 = load i32, ptr @test_count, align 4, !tbaa !5
  %3350 = add nsw i32 %3349, 1
  store i32 %3350, ptr @test_count, align 4, !tbaa !5
  %3351 = call ptr @s2n_config_new()
  store ptr %3351, ptr %73, align 8, !tbaa !9
  %3352 = icmp eq ptr %3351, null
  br i1 %3352, label %3353, label %3406

3353:                                             ; preds = %3348
  br label %3354

3354:                                             ; preds = %3353
  br label %3355

3355:                                             ; preds = %3354
  call void @llvm.lifetime.start.p0(i64 4, ptr %75) #10
  %3356 = call ptr @__errno_location() #11
  %3357 = load i32, ptr %3356, align 4, !tbaa !5
  store i32 %3357, ptr %75, align 4, !tbaa !5
  %3358 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3359 = call i32 @s2n_print_stacktrace(ptr noundef %3358)
  %3360 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3361 = trunc i8 %3360 to i1
  br i1 %3361, label %3362, label %3384

3362:                                             ; preds = %3355
  %3363 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3364 = call i32 @fileno(ptr noundef %3363) #10
  %3365 = call i32 @isatty(i32 noundef %3364) #10
  %3366 = icmp ne i32 %3365, 0
  br i1 %3366, label %3367, label %3384

3367:                                             ; preds = %3362
  %3368 = load i32, ptr %75, align 4, !tbaa !5
  %3369 = call ptr @__errno_location() #11
  store i32 %3368, ptr %3369, align 4, !tbaa !5
  %3370 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3371 = load i32, ptr @test_count, align 4, !tbaa !5
  %3372 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3373 = load i32, ptr %3372, align 4, !tbaa !5
  %3374 = call ptr @s2n_strerror(i32 noundef %3373, ptr noundef @.str.3)
  %3375 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3376 = load i32, ptr %3375, align 4, !tbaa !5
  %3377 = call ptr @s2n_strerror_debug(i32 noundef %3376, ptr noundef @.str.3)
  %3378 = call ptr @__errno_location() #11
  %3379 = load i32, ptr %3378, align 4, !tbaa !5
  %3380 = call ptr @strerror(i32 noundef %3379) #10
  %3381 = call ptr @__errno_location() #11
  %3382 = load i32, ptr %3381, align 4, !tbaa !5
  %3383 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3370, ptr noundef @.str, i32 noundef %3371, ptr noundef @.str.76, ptr noundef @.str.2, i32 noundef 489, ptr noundef %3374, ptr noundef %3377, ptr noundef %3380, i32 noundef %3382) #10
  br label %3401

3384:                                             ; preds = %3362, %3355
  %3385 = load i32, ptr %75, align 4, !tbaa !5
  %3386 = call ptr @__errno_location() #11
  store i32 %3385, ptr %3386, align 4, !tbaa !5
  %3387 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3388 = load i32, ptr @test_count, align 4, !tbaa !5
  %3389 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3390 = load i32, ptr %3389, align 4, !tbaa !5
  %3391 = call ptr @s2n_strerror(i32 noundef %3390, ptr noundef @.str.3)
  %3392 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3393 = load i32, ptr %3392, align 4, !tbaa !5
  %3394 = call ptr @s2n_strerror_debug(i32 noundef %3393, ptr noundef @.str.3)
  %3395 = call ptr @__errno_location() #11
  %3396 = load i32, ptr %3395, align 4, !tbaa !5
  %3397 = call ptr @strerror(i32 noundef %3396) #10
  %3398 = call ptr @__errno_location() #11
  %3399 = load i32, ptr %3398, align 4, !tbaa !5
  %3400 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3387, ptr noundef @.str.4, i32 noundef %3388, ptr noundef @.str.76, ptr noundef @.str.2, i32 noundef 489, ptr noundef %3391, ptr noundef %3394, ptr noundef %3397, i32 noundef %3399) #10
  br label %3401

3401:                                             ; preds = %3384, %3367
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #10
  br label %3402

3402:                                             ; preds = %3401
  br label %3403

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

3404:                                             ; No predecessors!
  br label %3405

3405:                                             ; preds = %3404
  br label %3406

3406:                                             ; preds = %3405, %3348
  br label %3407

3407:                                             ; preds = %3406
  br label %3408

3408:                                             ; preds = %3407
  br label %3409

3409:                                             ; preds = %3408
  %3410 = load i32, ptr @test_count, align 4, !tbaa !5
  %3411 = add nsw i32 %3410, 1
  store i32 %3411, ptr @test_count, align 4, !tbaa !5
  %3412 = load ptr, ptr %73, align 8, !tbaa !9
  %3413 = load ptr, ptr %12, align 8, !tbaa !9
  %3414 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %3412, ptr noundef %3413)
  %3415 = icmp eq i32 %3414, -1
  br i1 %3415, label %3416, label %3469

3416:                                             ; preds = %3409
  br label %3417

3417:                                             ; preds = %3416
  br label %3418

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

3425:                                             ; preds = %3418
  %3426 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3427 = call i32 @fileno(ptr noundef %3426) #10
  %3428 = call i32 @isatty(i32 noundef %3427) #10
  %3429 = icmp ne i32 %3428, 0
  br i1 %3429, label %3430, label %3447

3430:                                             ; preds = %3425
  %3431 = load i32, ptr %76, align 4, !tbaa !5
  %3432 = call ptr @__errno_location() #11
  store i32 %3431, ptr %3432, align 4, !tbaa !5
  %3433 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3434 = load i32, ptr @test_count, align 4, !tbaa !5
  %3435 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3436 = load i32, ptr %3435, align 4, !tbaa !5
  %3437 = call ptr @s2n_strerror(i32 noundef %3436, ptr noundef @.str.3)
  %3438 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3439 = load i32, ptr %3438, align 4, !tbaa !5
  %3440 = call ptr @s2n_strerror_debug(i32 noundef %3439, ptr noundef @.str.3)
  %3441 = call ptr @__errno_location() #11
  %3442 = load i32, ptr %3441, align 4, !tbaa !5
  %3443 = call ptr @strerror(i32 noundef %3442) #10
  %3444 = call ptr @__errno_location() #11
  %3445 = load i32, ptr %3444, align 4, !tbaa !5
  %3446 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3433, ptr noundef @.str, i32 noundef %3434, ptr noundef @.str.77, ptr noundef @.str.2, i32 noundef 490, ptr noundef %3437, ptr noundef %3440, ptr noundef %3443, i32 noundef %3445) #10
  br label %3464

3447:                                             ; preds = %3425, %3418
  %3448 = load i32, ptr %76, align 4, !tbaa !5
  %3449 = call ptr @__errno_location() #11
  store i32 %3448, ptr %3449, align 4, !tbaa !5
  %3450 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3451 = load i32, ptr @test_count, align 4, !tbaa !5
  %3452 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3453 = load i32, ptr %3452, align 4, !tbaa !5
  %3454 = call ptr @s2n_strerror(i32 noundef %3453, ptr noundef @.str.3)
  %3455 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3456 = load i32, ptr %3455, align 4, !tbaa !5
  %3457 = call ptr @s2n_strerror_debug(i32 noundef %3456, ptr noundef @.str.3)
  %3458 = call ptr @__errno_location() #11
  %3459 = load i32, ptr %3458, align 4, !tbaa !5
  %3460 = call ptr @strerror(i32 noundef %3459) #10
  %3461 = call ptr @__errno_location() #11
  %3462 = load i32, ptr %3461, align 4, !tbaa !5
  %3463 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3450, ptr noundef @.str.4, i32 noundef %3451, ptr noundef @.str.77, ptr noundef @.str.2, i32 noundef 490, ptr noundef %3454, ptr noundef %3457, ptr noundef %3460, i32 noundef %3462) #10
  br label %3464

3464:                                             ; preds = %3447, %3430
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #10
  br label %3465

3465:                                             ; preds = %3464
  br label %3466

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

3467:                                             ; No predecessors!
  br label %3468

3468:                                             ; preds = %3467
  br label %3469

3469:                                             ; preds = %3468, %3409
  br label %3470

3470:                                             ; preds = %3469
  br label %3471

3471:                                             ; preds = %3470
  br label %3472

3472:                                             ; preds = %3471
  %3473 = load i32, ptr @test_count, align 4, !tbaa !5
  %3474 = add nsw i32 %3473, 1
  store i32 %3474, ptr @test_count, align 4, !tbaa !5
  %3475 = load ptr, ptr %73, align 8, !tbaa !9
  %3476 = getelementptr inbounds [12000 x i8], ptr %10, i64 0, i64 0
  %3477 = call i32 @s2n_config_add_dhparams(ptr noundef %3475, ptr noundef %3476)
  %3478 = icmp eq i32 %3477, -1
  br i1 %3478, label %3479, label %3532

3479:                                             ; preds = %3472
  br label %3480

3480:                                             ; preds = %3479
  br label %3481

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

3488:                                             ; preds = %3481
  %3489 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3490 = call i32 @fileno(ptr noundef %3489) #10
  %3491 = call i32 @isatty(i32 noundef %3490) #10
  %3492 = icmp ne i32 %3491, 0
  br i1 %3492, label %3493, label %3510

3493:                                             ; preds = %3488
  %3494 = load i32, ptr %77, align 4, !tbaa !5
  %3495 = call ptr @__errno_location() #11
  store i32 %3494, ptr %3495, align 4, !tbaa !5
  %3496 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3497 = load i32, ptr @test_count, align 4, !tbaa !5
  %3498 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3499 = load i32, ptr %3498, align 4, !tbaa !5
  %3500 = call ptr @s2n_strerror(i32 noundef %3499, ptr noundef @.str.3)
  %3501 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3502 = load i32, ptr %3501, align 4, !tbaa !5
  %3503 = call ptr @s2n_strerror_debug(i32 noundef %3502, ptr noundef @.str.3)
  %3504 = call ptr @__errno_location() #11
  %3505 = load i32, ptr %3504, align 4, !tbaa !5
  %3506 = call ptr @strerror(i32 noundef %3505) #10
  %3507 = call ptr @__errno_location() #11
  %3508 = load i32, ptr %3507, align 4, !tbaa !5
  %3509 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3496, ptr noundef @.str, i32 noundef %3497, ptr noundef @.str.78, ptr noundef @.str.2, i32 noundef 491, ptr noundef %3500, ptr noundef %3503, ptr noundef %3506, i32 noundef %3508) #10
  br label %3527

3510:                                             ; preds = %3488, %3481
  %3511 = load i32, ptr %77, align 4, !tbaa !5
  %3512 = call ptr @__errno_location() #11
  store i32 %3511, ptr %3512, align 4, !tbaa !5
  %3513 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3514 = load i32, ptr @test_count, align 4, !tbaa !5
  %3515 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3516 = load i32, ptr %3515, align 4, !tbaa !5
  %3517 = call ptr @s2n_strerror(i32 noundef %3516, ptr noundef @.str.3)
  %3518 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3519 = load i32, ptr %3518, align 4, !tbaa !5
  %3520 = call ptr @s2n_strerror_debug(i32 noundef %3519, ptr noundef @.str.3)
  %3521 = call ptr @__errno_location() #11
  %3522 = load i32, ptr %3521, align 4, !tbaa !5
  %3523 = call ptr @strerror(i32 noundef %3522) #10
  %3524 = call ptr @__errno_location() #11
  %3525 = load i32, ptr %3524, align 4, !tbaa !5
  %3526 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3513, ptr noundef @.str.4, i32 noundef %3514, ptr noundef @.str.78, ptr noundef @.str.2, i32 noundef 491, ptr noundef %3517, ptr noundef %3520, ptr noundef %3523, i32 noundef %3525) #10
  br label %3527

3527:                                             ; preds = %3510, %3493
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #10
  br label %3528

3528:                                             ; preds = %3527
  br label %3529

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

3530:                                             ; No predecessors!
  br label %3531

3531:                                             ; preds = %3530
  br label %3532

3532:                                             ; preds = %3531, %3472
  br label %3533

3533:                                             ; preds = %3532
  br label %3534

3534:                                             ; preds = %3533
  br label %3535

3535:                                             ; preds = %3534
  %3536 = load i32, ptr @test_count, align 4, !tbaa !5
  %3537 = add nsw i32 %3536, 1
  store i32 %3537, ptr @test_count, align 4, !tbaa !5
  %3538 = load ptr, ptr %73, align 8, !tbaa !9
  %3539 = call i32 @s2n_config_set_async_pkey_callback(ptr noundef %3538, ptr noundef @async_pkey_store_callback)
  %3540 = icmp eq i32 %3539, -1
  br i1 %3540, label %3541, label %3594

3541:                                             ; preds = %3535
  br label %3542

3542:                                             ; preds = %3541
  br label %3543

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

3550:                                             ; preds = %3543
  %3551 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3552 = call i32 @fileno(ptr noundef %3551) #10
  %3553 = call i32 @isatty(i32 noundef %3552) #10
  %3554 = icmp ne i32 %3553, 0
  br i1 %3554, label %3555, label %3572

3555:                                             ; preds = %3550
  %3556 = load i32, ptr %78, align 4, !tbaa !5
  %3557 = call ptr @__errno_location() #11
  store i32 %3556, ptr %3557, align 4, !tbaa !5
  %3558 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3559 = load i32, ptr @test_count, align 4, !tbaa !5
  %3560 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3561 = load i32, ptr %3560, align 4, !tbaa !5
  %3562 = call ptr @s2n_strerror(i32 noundef %3561, ptr noundef @.str.3)
  %3563 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3564 = load i32, ptr %3563, align 4, !tbaa !5
  %3565 = call ptr @s2n_strerror_debug(i32 noundef %3564, ptr noundef @.str.3)
  %3566 = call ptr @__errno_location() #11
  %3567 = load i32, ptr %3566, align 4, !tbaa !5
  %3568 = call ptr @strerror(i32 noundef %3567) #10
  %3569 = call ptr @__errno_location() #11
  %3570 = load i32, ptr %3569, align 4, !tbaa !5
  %3571 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3558, ptr noundef @.str, i32 noundef %3559, ptr noundef @.str.98, ptr noundef @.str.2, i32 noundef 492, ptr noundef %3562, ptr noundef %3565, ptr noundef %3568, i32 noundef %3570) #10
  br label %3589

3572:                                             ; preds = %3550, %3543
  %3573 = load i32, ptr %78, align 4, !tbaa !5
  %3574 = call ptr @__errno_location() #11
  store i32 %3573, ptr %3574, align 4, !tbaa !5
  %3575 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3576 = load i32, ptr @test_count, align 4, !tbaa !5
  %3577 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3578 = load i32, ptr %3577, align 4, !tbaa !5
  %3579 = call ptr @s2n_strerror(i32 noundef %3578, ptr noundef @.str.3)
  %3580 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3581 = load i32, ptr %3580, align 4, !tbaa !5
  %3582 = call ptr @s2n_strerror_debug(i32 noundef %3581, ptr noundef @.str.3)
  %3583 = call ptr @__errno_location() #11
  %3584 = load i32, ptr %3583, align 4, !tbaa !5
  %3585 = call ptr @strerror(i32 noundef %3584) #10
  %3586 = call ptr @__errno_location() #11
  %3587 = load i32, ptr %3586, align 4, !tbaa !5
  %3588 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3575, ptr noundef @.str.4, i32 noundef %3576, ptr noundef @.str.98, ptr noundef @.str.2, i32 noundef 492, ptr noundef %3579, ptr noundef %3582, ptr noundef %3585, i32 noundef %3587) #10
  br label %3589

3589:                                             ; preds = %3572, %3555
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #10
  br label %3590

3590:                                             ; preds = %3589
  br label %3591

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

3592:                                             ; No predecessors!
  br label %3593

3593:                                             ; preds = %3592
  br label %3594

3594:                                             ; preds = %3593, %3535
  br label %3595

3595:                                             ; preds = %3594
  br label %3596

3596:                                             ; preds = %3595
  %3597 = load ptr, ptr %73, align 8, !tbaa !9
  %3598 = getelementptr inbounds %struct.s2n_config, ptr %3597, i32 0, i32 7
  store ptr %19, ptr %3598, align 8, !tbaa !31
  br label %3599

3599:                                             ; preds = %3596
  %3600 = load i32, ptr @test_count, align 4, !tbaa !5
  %3601 = add nsw i32 %3600, 1
  store i32 %3601, ptr @test_count, align 4, !tbaa !5
  %3602 = call ptr @s2n_config_new()
  store ptr %3602, ptr %74, align 8, !tbaa !9
  %3603 = icmp eq ptr %3602, null
  br i1 %3603, label %3604, label %3657

3604:                                             ; preds = %3599
  br label %3605

3605:                                             ; preds = %3604
  br label %3606

3606:                                             ; preds = %3605
  call void @llvm.lifetime.start.p0(i64 4, ptr %79) #10
  %3607 = call ptr @__errno_location() #11
  %3608 = load i32, ptr %3607, align 4, !tbaa !5
  store i32 %3608, ptr %79, align 4, !tbaa !5
  %3609 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3610 = call i32 @s2n_print_stacktrace(ptr noundef %3609)
  %3611 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3612 = trunc i8 %3611 to i1
  br i1 %3612, label %3613, label %3635

3613:                                             ; preds = %3606
  %3614 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3615 = call i32 @fileno(ptr noundef %3614) #10
  %3616 = call i32 @isatty(i32 noundef %3615) #10
  %3617 = icmp ne i32 %3616, 0
  br i1 %3617, label %3618, label %3635

3618:                                             ; preds = %3613
  %3619 = load i32, ptr %79, align 4, !tbaa !5
  %3620 = call ptr @__errno_location() #11
  store i32 %3619, ptr %3620, align 4, !tbaa !5
  %3621 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3622 = load i32, ptr @test_count, align 4, !tbaa !5
  %3623 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3624 = load i32, ptr %3623, align 4, !tbaa !5
  %3625 = call ptr @s2n_strerror(i32 noundef %3624, ptr noundef @.str.3)
  %3626 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3627 = load i32, ptr %3626, align 4, !tbaa !5
  %3628 = call ptr @s2n_strerror_debug(i32 noundef %3627, ptr noundef @.str.3)
  %3629 = call ptr @__errno_location() #11
  %3630 = load i32, ptr %3629, align 4, !tbaa !5
  %3631 = call ptr @strerror(i32 noundef %3630) #10
  %3632 = call ptr @__errno_location() #11
  %3633 = load i32, ptr %3632, align 4, !tbaa !5
  %3634 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3621, ptr noundef @.str, i32 noundef %3622, ptr noundef @.str.80, ptr noundef @.str.2, i32 noundef 495, ptr noundef %3625, ptr noundef %3628, ptr noundef %3631, i32 noundef %3633) #10
  br label %3652

3635:                                             ; preds = %3613, %3606
  %3636 = load i32, ptr %79, align 4, !tbaa !5
  %3637 = call ptr @__errno_location() #11
  store i32 %3636, ptr %3637, align 4, !tbaa !5
  %3638 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3639 = load i32, ptr @test_count, align 4, !tbaa !5
  %3640 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3641 = load i32, ptr %3640, align 4, !tbaa !5
  %3642 = call ptr @s2n_strerror(i32 noundef %3641, ptr noundef @.str.3)
  %3643 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3644 = load i32, ptr %3643, align 4, !tbaa !5
  %3645 = call ptr @s2n_strerror_debug(i32 noundef %3644, ptr noundef @.str.3)
  %3646 = call ptr @__errno_location() #11
  %3647 = load i32, ptr %3646, align 4, !tbaa !5
  %3648 = call ptr @strerror(i32 noundef %3647) #10
  %3649 = call ptr @__errno_location() #11
  %3650 = load i32, ptr %3649, align 4, !tbaa !5
  %3651 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3638, ptr noundef @.str.4, i32 noundef %3639, ptr noundef @.str.80, ptr noundef @.str.2, i32 noundef 495, ptr noundef %3642, ptr noundef %3645, ptr noundef %3648, i32 noundef %3650) #10
  br label %3652

3652:                                             ; preds = %3635, %3618
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #10
  br label %3653

3653:                                             ; preds = %3652
  br label %3654

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

3655:                                             ; No predecessors!
  br label %3656

3656:                                             ; preds = %3655
  br label %3657

3657:                                             ; preds = %3656, %3599
  br label %3658

3658:                                             ; preds = %3657
  br label %3659

3659:                                             ; preds = %3658
  br label %3660

3660:                                             ; preds = %3659
  %3661 = load i32, ptr @test_count, align 4, !tbaa !5
  %3662 = add nsw i32 %3661, 1
  store i32 %3662, ptr @test_count, align 4, !tbaa !5
  %3663 = load ptr, ptr %74, align 8, !tbaa !9
  %3664 = call i32 @s2n_config_set_unsafe_for_testing(ptr noundef %3663)
  %3665 = icmp eq i32 %3664, -1
  br i1 %3665, label %3666, label %3719

3666:                                             ; preds = %3660
  br label %3667

3667:                                             ; preds = %3666
  br label %3668

3668:                                             ; preds = %3667
  call void @llvm.lifetime.start.p0(i64 4, ptr %80) #10
  %3669 = call ptr @__errno_location() #11
  %3670 = load i32, ptr %3669, align 4, !tbaa !5
  store i32 %3670, ptr %80, align 4, !tbaa !5
  %3671 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3672 = call i32 @s2n_print_stacktrace(ptr noundef %3671)
  %3673 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3674 = trunc i8 %3673 to i1
  br i1 %3674, label %3675, label %3697

3675:                                             ; preds = %3668
  %3676 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3677 = call i32 @fileno(ptr noundef %3676) #10
  %3678 = call i32 @isatty(i32 noundef %3677) #10
  %3679 = icmp ne i32 %3678, 0
  br i1 %3679, label %3680, label %3697

3680:                                             ; preds = %3675
  %3681 = load i32, ptr %80, align 4, !tbaa !5
  %3682 = call ptr @__errno_location() #11
  store i32 %3681, ptr %3682, align 4, !tbaa !5
  %3683 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3684 = load i32, ptr @test_count, align 4, !tbaa !5
  %3685 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3686 = load i32, ptr %3685, align 4, !tbaa !5
  %3687 = call ptr @s2n_strerror(i32 noundef %3686, ptr noundef @.str.3)
  %3688 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3689 = load i32, ptr %3688, align 4, !tbaa !5
  %3690 = call ptr @s2n_strerror_debug(i32 noundef %3689, ptr noundef @.str.3)
  %3691 = call ptr @__errno_location() #11
  %3692 = load i32, ptr %3691, align 4, !tbaa !5
  %3693 = call ptr @strerror(i32 noundef %3692) #10
  %3694 = call ptr @__errno_location() #11
  %3695 = load i32, ptr %3694, align 4, !tbaa !5
  %3696 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3683, ptr noundef @.str, i32 noundef %3684, ptr noundef @.str.81, ptr noundef @.str.2, i32 noundef 496, ptr noundef %3687, ptr noundef %3690, ptr noundef %3693, i32 noundef %3695) #10
  br label %3714

3697:                                             ; preds = %3675, %3668
  %3698 = load i32, ptr %80, align 4, !tbaa !5
  %3699 = call ptr @__errno_location() #11
  store i32 %3698, ptr %3699, align 4, !tbaa !5
  %3700 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3701 = load i32, ptr @test_count, align 4, !tbaa !5
  %3702 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3703 = load i32, ptr %3702, align 4, !tbaa !5
  %3704 = call ptr @s2n_strerror(i32 noundef %3703, ptr noundef @.str.3)
  %3705 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3706 = load i32, ptr %3705, align 4, !tbaa !5
  %3707 = call ptr @s2n_strerror_debug(i32 noundef %3706, ptr noundef @.str.3)
  %3708 = call ptr @__errno_location() #11
  %3709 = load i32, ptr %3708, align 4, !tbaa !5
  %3710 = call ptr @strerror(i32 noundef %3709) #10
  %3711 = call ptr @__errno_location() #11
  %3712 = load i32, ptr %3711, align 4, !tbaa !5
  %3713 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3700, ptr noundef @.str.4, i32 noundef %3701, ptr noundef @.str.81, ptr noundef @.str.2, i32 noundef 496, ptr noundef %3704, ptr noundef %3707, ptr noundef %3710, i32 noundef %3712) #10
  br label %3714

3714:                                             ; preds = %3697, %3680
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #10
  br label %3715

3715:                                             ; preds = %3714
  br label %3716

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

3717:                                             ; No predecessors!
  br label %3718

3718:                                             ; preds = %3717
  br label %3719

3719:                                             ; preds = %3718, %3660
  br label %3720

3720:                                             ; preds = %3719
  br label %3721

3721:                                             ; preds = %3720
  br label %3722

3722:                                             ; preds = %3721
  %3723 = load i32, ptr @test_count, align 4, !tbaa !5
  %3724 = add nsw i32 %3723, 1
  store i32 %3724, ptr @test_count, align 4, !tbaa !5
  %3725 = load ptr, ptr %74, align 8, !tbaa !9
  %3726 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %3725, ptr noundef @.str.82)
  %3727 = icmp eq i32 %3726, -1
  br i1 %3727, label %3728, label %3781

3728:                                             ; preds = %3722
  br label %3729

3729:                                             ; preds = %3728
  br label %3730

3730:                                             ; preds = %3729
  call void @llvm.lifetime.start.p0(i64 4, ptr %81) #10
  %3731 = call ptr @__errno_location() #11
  %3732 = load i32, ptr %3731, align 4, !tbaa !5
  store i32 %3732, ptr %81, align 4, !tbaa !5
  %3733 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3734 = call i32 @s2n_print_stacktrace(ptr noundef %3733)
  %3735 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3736 = trunc i8 %3735 to i1
  br i1 %3736, label %3737, label %3759

3737:                                             ; preds = %3730
  %3738 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3739 = call i32 @fileno(ptr noundef %3738) #10
  %3740 = call i32 @isatty(i32 noundef %3739) #10
  %3741 = icmp ne i32 %3740, 0
  br i1 %3741, label %3742, label %3759

3742:                                             ; preds = %3737
  %3743 = load i32, ptr %81, align 4, !tbaa !5
  %3744 = call ptr @__errno_location() #11
  store i32 %3743, ptr %3744, align 4, !tbaa !5
  %3745 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3746 = load i32, ptr @test_count, align 4, !tbaa !5
  %3747 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3748 = load i32, ptr %3747, align 4, !tbaa !5
  %3749 = call ptr @s2n_strerror(i32 noundef %3748, ptr noundef @.str.3)
  %3750 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3751 = load i32, ptr %3750, align 4, !tbaa !5
  %3752 = call ptr @s2n_strerror_debug(i32 noundef %3751, ptr noundef @.str.3)
  %3753 = call ptr @__errno_location() #11
  %3754 = load i32, ptr %3753, align 4, !tbaa !5
  %3755 = call ptr @strerror(i32 noundef %3754) #10
  %3756 = call ptr @__errno_location() #11
  %3757 = load i32, ptr %3756, align 4, !tbaa !5
  %3758 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3745, ptr noundef @.str, i32 noundef %3746, ptr noundef @.str.83, ptr noundef @.str.2, i32 noundef 498, ptr noundef %3749, ptr noundef %3752, ptr noundef %3755, i32 noundef %3757) #10
  br label %3776

3759:                                             ; preds = %3737, %3730
  %3760 = load i32, ptr %81, align 4, !tbaa !5
  %3761 = call ptr @__errno_location() #11
  store i32 %3760, ptr %3761, align 4, !tbaa !5
  %3762 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3763 = load i32, ptr @test_count, align 4, !tbaa !5
  %3764 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3765 = load i32, ptr %3764, align 4, !tbaa !5
  %3766 = call ptr @s2n_strerror(i32 noundef %3765, ptr noundef @.str.3)
  %3767 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3768 = load i32, ptr %3767, align 4, !tbaa !5
  %3769 = call ptr @s2n_strerror_debug(i32 noundef %3768, ptr noundef @.str.3)
  %3770 = call ptr @__errno_location() #11
  %3771 = load i32, ptr %3770, align 4, !tbaa !5
  %3772 = call ptr @strerror(i32 noundef %3771) #10
  %3773 = call ptr @__errno_location() #11
  %3774 = load i32, ptr %3773, align 4, !tbaa !5
  %3775 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3762, ptr noundef @.str.4, i32 noundef %3763, ptr noundef @.str.83, ptr noundef @.str.2, i32 noundef 498, ptr noundef %3766, ptr noundef %3769, ptr noundef %3772, i32 noundef %3774) #10
  br label %3776

3776:                                             ; preds = %3759, %3742
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #10
  br label %3777

3777:                                             ; preds = %3776
  br label %3778

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

3779:                                             ; No predecessors!
  br label %3780

3780:                                             ; preds = %3779
  br label %3781

3781:                                             ; preds = %3780, %3722
  br label %3782

3782:                                             ; preds = %3781
  br label %3783

3783:                                             ; preds = %3782
  br label %3784

3784:                                             ; preds = %3783
  %3785 = load i32, ptr @test_count, align 4, !tbaa !5
  %3786 = add nsw i32 %3785, 1
  store i32 %3786, ptr @test_count, align 4, !tbaa !5
  %3787 = load ptr, ptr %74, align 8, !tbaa !9
  %3788 = call i32 @s2n_config_set_verification_ca_location(ptr noundef %3787, ptr noundef @.str.69, ptr noundef null)
  %3789 = icmp eq i32 %3788, -1
  br i1 %3789, label %3790, label %3843

3790:                                             ; preds = %3784
  br label %3791

3791:                                             ; preds = %3790
  br label %3792

3792:                                             ; preds = %3791
  call void @llvm.lifetime.start.p0(i64 4, ptr %82) #10
  %3793 = call ptr @__errno_location() #11
  %3794 = load i32, ptr %3793, align 4, !tbaa !5
  store i32 %3794, ptr %82, align 4, !tbaa !5
  %3795 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3796 = call i32 @s2n_print_stacktrace(ptr noundef %3795)
  %3797 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3798 = trunc i8 %3797 to i1
  br i1 %3798, label %3799, label %3821

3799:                                             ; preds = %3792
  %3800 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3801 = call i32 @fileno(ptr noundef %3800) #10
  %3802 = call i32 @isatty(i32 noundef %3801) #10
  %3803 = icmp ne i32 %3802, 0
  br i1 %3803, label %3804, label %3821

3804:                                             ; preds = %3799
  %3805 = load i32, ptr %82, align 4, !tbaa !5
  %3806 = call ptr @__errno_location() #11
  store i32 %3805, ptr %3806, align 4, !tbaa !5
  %3807 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3808 = load i32, ptr @test_count, align 4, !tbaa !5
  %3809 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3810 = load i32, ptr %3809, align 4, !tbaa !5
  %3811 = call ptr @s2n_strerror(i32 noundef %3810, ptr noundef @.str.3)
  %3812 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3813 = load i32, ptr %3812, align 4, !tbaa !5
  %3814 = call ptr @s2n_strerror_debug(i32 noundef %3813, ptr noundef @.str.3)
  %3815 = call ptr @__errno_location() #11
  %3816 = load i32, ptr %3815, align 4, !tbaa !5
  %3817 = call ptr @strerror(i32 noundef %3816) #10
  %3818 = call ptr @__errno_location() #11
  %3819 = load i32, ptr %3818, align 4, !tbaa !5
  %3820 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3807, ptr noundef @.str, i32 noundef %3808, ptr noundef @.str.84, ptr noundef @.str.2, i32 noundef 500, ptr noundef %3811, ptr noundef %3814, ptr noundef %3817, i32 noundef %3819) #10
  br label %3838

3821:                                             ; preds = %3799, %3792
  %3822 = load i32, ptr %82, align 4, !tbaa !5
  %3823 = call ptr @__errno_location() #11
  store i32 %3822, ptr %3823, align 4, !tbaa !5
  %3824 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3825 = load i32, ptr @test_count, align 4, !tbaa !5
  %3826 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3827 = load i32, ptr %3826, align 4, !tbaa !5
  %3828 = call ptr @s2n_strerror(i32 noundef %3827, ptr noundef @.str.3)
  %3829 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3830 = load i32, ptr %3829, align 4, !tbaa !5
  %3831 = call ptr @s2n_strerror_debug(i32 noundef %3830, ptr noundef @.str.3)
  %3832 = call ptr @__errno_location() #11
  %3833 = load i32, ptr %3832, align 4, !tbaa !5
  %3834 = call ptr @strerror(i32 noundef %3833) #10
  %3835 = call ptr @__errno_location() #11
  %3836 = load i32, ptr %3835, align 4, !tbaa !5
  %3837 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3824, ptr noundef @.str.4, i32 noundef %3825, ptr noundef @.str.84, ptr noundef @.str.2, i32 noundef 500, ptr noundef %3828, ptr noundef %3831, ptr noundef %3834, i32 noundef %3836) #10
  br label %3838

3838:                                             ; preds = %3821, %3804
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #10
  br label %3839

3839:                                             ; preds = %3838
  br label %3840

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

3841:                                             ; No predecessors!
  br label %3842

3842:                                             ; preds = %3841
  br label %3843

3843:                                             ; preds = %3842, %3784
  br label %3844

3844:                                             ; preds = %3843
  br label %3845

3845:                                             ; preds = %3844
  call void @llvm.lifetime.start.p0(i64 8, ptr %83) #10
  %3846 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %3846, ptr %83, align 8, !tbaa !9
  br label %3847

3847:                                             ; preds = %3845
  %3848 = load i32, ptr @test_count, align 4, !tbaa !5
  %3849 = add nsw i32 %3848, 1
  store i32 %3849, ptr @test_count, align 4, !tbaa !5
  %3850 = load ptr, ptr %83, align 8, !tbaa !9
  %3851 = icmp eq ptr %3850, null
  br i1 %3851, label %3852, label %3905

3852:                                             ; preds = %3847
  br label %3853

3853:                                             ; preds = %3852
  br label %3854

3854:                                             ; preds = %3853
  call void @llvm.lifetime.start.p0(i64 4, ptr %84) #10
  %3855 = call ptr @__errno_location() #11
  %3856 = load i32, ptr %3855, align 4, !tbaa !5
  store i32 %3856, ptr %84, align 4, !tbaa !5
  %3857 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3858 = call i32 @s2n_print_stacktrace(ptr noundef %3857)
  %3859 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3860 = trunc i8 %3859 to i1
  br i1 %3860, label %3861, label %3883

3861:                                             ; preds = %3854
  %3862 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3863 = call i32 @fileno(ptr noundef %3862) #10
  %3864 = call i32 @isatty(i32 noundef %3863) #10
  %3865 = icmp ne i32 %3864, 0
  br i1 %3865, label %3866, label %3883

3866:                                             ; preds = %3861
  %3867 = load i32, ptr %84, align 4, !tbaa !5
  %3868 = call ptr @__errno_location() #11
  store i32 %3867, ptr %3868, align 4, !tbaa !5
  %3869 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3870 = load i32, ptr @test_count, align 4, !tbaa !5
  %3871 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3872 = load i32, ptr %3871, align 4, !tbaa !5
  %3873 = call ptr @s2n_strerror(i32 noundef %3872, ptr noundef @.str.3)
  %3874 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3875 = load i32, ptr %3874, align 4, !tbaa !5
  %3876 = call ptr @s2n_strerror_debug(i32 noundef %3875, ptr noundef @.str.3)
  %3877 = call ptr @__errno_location() #11
  %3878 = load i32, ptr %3877, align 4, !tbaa !5
  %3879 = call ptr @strerror(i32 noundef %3878) #10
  %3880 = call ptr @__errno_location() #11
  %3881 = load i32, ptr %3880, align 4, !tbaa !5
  %3882 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3869, ptr noundef @.str, i32 noundef %3870, ptr noundef @.str.85, ptr noundef @.str.2, i32 noundef 504, ptr noundef %3873, ptr noundef %3876, ptr noundef %3879, i32 noundef %3881) #10
  br label %3900

3883:                                             ; preds = %3861, %3854
  %3884 = load i32, ptr %84, align 4, !tbaa !5
  %3885 = call ptr @__errno_location() #11
  store i32 %3884, ptr %3885, align 4, !tbaa !5
  %3886 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3887 = load i32, ptr @test_count, align 4, !tbaa !5
  %3888 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3889 = load i32, ptr %3888, align 4, !tbaa !5
  %3890 = call ptr @s2n_strerror(i32 noundef %3889, ptr noundef @.str.3)
  %3891 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3892 = load i32, ptr %3891, align 4, !tbaa !5
  %3893 = call ptr @s2n_strerror_debug(i32 noundef %3892, ptr noundef @.str.3)
  %3894 = call ptr @__errno_location() #11
  %3895 = load i32, ptr %3894, align 4, !tbaa !5
  %3896 = call ptr @strerror(i32 noundef %3895) #10
  %3897 = call ptr @__errno_location() #11
  %3898 = load i32, ptr %3897, align 4, !tbaa !5
  %3899 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3886, ptr noundef @.str.4, i32 noundef %3887, ptr noundef @.str.85, ptr noundef @.str.2, i32 noundef 504, ptr noundef %3890, ptr noundef %3893, ptr noundef %3896, i32 noundef %3898) #10
  br label %3900

3900:                                             ; preds = %3883, %3866
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #10
  br label %3901

3901:                                             ; preds = %3900
  br label %3902

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

3903:                                             ; No predecessors!
  br label %3904

3904:                                             ; preds = %3903
  br label %3905

3905:                                             ; preds = %3904, %3847
  br label %3906

3906:                                             ; preds = %3905
  br label %3907

3907:                                             ; preds = %3906
  br label %3908

3908:                                             ; preds = %3907
  %3909 = load i32, ptr @test_count, align 4, !tbaa !5
  %3910 = add nsw i32 %3909, 1
  store i32 %3910, ptr @test_count, align 4, !tbaa !5
  %3911 = load ptr, ptr %83, align 8, !tbaa !9
  %3912 = load ptr, ptr %74, align 8, !tbaa !9
  %3913 = call i32 @s2n_connection_set_config(ptr noundef %3911, ptr noundef %3912)
  %3914 = icmp eq i32 %3913, -1
  br i1 %3914, label %3915, label %3968

3915:                                             ; preds = %3908
  br label %3916

3916:                                             ; preds = %3915
  br label %3917

3917:                                             ; preds = %3916
  call void @llvm.lifetime.start.p0(i64 4, ptr %85) #10
  %3918 = call ptr @__errno_location() #11
  %3919 = load i32, ptr %3918, align 4, !tbaa !5
  store i32 %3919, ptr %85, align 4, !tbaa !5
  %3920 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3921 = call i32 @s2n_print_stacktrace(ptr noundef %3920)
  %3922 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3923 = trunc i8 %3922 to i1
  br i1 %3923, label %3924, label %3946

3924:                                             ; preds = %3917
  %3925 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3926 = call i32 @fileno(ptr noundef %3925) #10
  %3927 = call i32 @isatty(i32 noundef %3926) #10
  %3928 = icmp ne i32 %3927, 0
  br i1 %3928, label %3929, label %3946

3929:                                             ; preds = %3924
  %3930 = load i32, ptr %85, align 4, !tbaa !5
  %3931 = call ptr @__errno_location() #11
  store i32 %3930, ptr %3931, align 4, !tbaa !5
  %3932 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3933 = load i32, ptr @test_count, align 4, !tbaa !5
  %3934 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3935 = load i32, ptr %3934, align 4, !tbaa !5
  %3936 = call ptr @s2n_strerror(i32 noundef %3935, ptr noundef @.str.3)
  %3937 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3938 = load i32, ptr %3937, align 4, !tbaa !5
  %3939 = call ptr @s2n_strerror_debug(i32 noundef %3938, ptr noundef @.str.3)
  %3940 = call ptr @__errno_location() #11
  %3941 = load i32, ptr %3940, align 4, !tbaa !5
  %3942 = call ptr @strerror(i32 noundef %3941) #10
  %3943 = call ptr @__errno_location() #11
  %3944 = load i32, ptr %3943, align 4, !tbaa !5
  %3945 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3932, ptr noundef @.str, i32 noundef %3933, ptr noundef @.str.86, ptr noundef @.str.2, i32 noundef 505, ptr noundef %3936, ptr noundef %3939, ptr noundef %3942, i32 noundef %3944) #10
  br label %3963

3946:                                             ; preds = %3924, %3917
  %3947 = load i32, ptr %85, align 4, !tbaa !5
  %3948 = call ptr @__errno_location() #11
  store i32 %3947, ptr %3948, align 4, !tbaa !5
  %3949 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3950 = load i32, ptr @test_count, align 4, !tbaa !5
  %3951 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3952 = load i32, ptr %3951, align 4, !tbaa !5
  %3953 = call ptr @s2n_strerror(i32 noundef %3952, ptr noundef @.str.3)
  %3954 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3955 = load i32, ptr %3954, align 4, !tbaa !5
  %3956 = call ptr @s2n_strerror_debug(i32 noundef %3955, ptr noundef @.str.3)
  %3957 = call ptr @__errno_location() #11
  %3958 = load i32, ptr %3957, align 4, !tbaa !5
  %3959 = call ptr @strerror(i32 noundef %3958) #10
  %3960 = call ptr @__errno_location() #11
  %3961 = load i32, ptr %3960, align 4, !tbaa !5
  %3962 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3949, ptr noundef @.str.4, i32 noundef %3950, ptr noundef @.str.86, ptr noundef @.str.2, i32 noundef 505, ptr noundef %3953, ptr noundef %3956, ptr noundef %3959, i32 noundef %3961) #10
  br label %3963

3963:                                             ; preds = %3946, %3929
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #10
  br label %3964

3964:                                             ; preds = %3963
  br label %3965

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

3966:                                             ; No predecessors!
  br label %3967

3967:                                             ; preds = %3966
  br label %3968

3968:                                             ; preds = %3967, %3908
  br label %3969

3969:                                             ; preds = %3968
  br label %3970

3970:                                             ; preds = %3969
  call void @llvm.lifetime.start.p0(i64 8, ptr %86) #10
  %3971 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %3971, ptr %86, align 8, !tbaa !9
  br label %3972

3972:                                             ; preds = %3970
  %3973 = load i32, ptr @test_count, align 4, !tbaa !5
  %3974 = add nsw i32 %3973, 1
  store i32 %3974, ptr @test_count, align 4, !tbaa !5
  %3975 = load ptr, ptr %86, align 8, !tbaa !9
  %3976 = icmp eq ptr %3975, null
  br i1 %3976, label %3977, label %4030

3977:                                             ; preds = %3972
  br label %3978

3978:                                             ; preds = %3977
  br label %3979

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

3986:                                             ; preds = %3979
  %3987 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3988 = call i32 @fileno(ptr noundef %3987) #10
  %3989 = call i32 @isatty(i32 noundef %3988) #10
  %3990 = icmp ne i32 %3989, 0
  br i1 %3990, label %3991, label %4008

3991:                                             ; preds = %3986
  %3992 = load i32, ptr %87, align 4, !tbaa !5
  %3993 = call ptr @__errno_location() #11
  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.3)
  %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.3)
  %4002 = call ptr @__errno_location() #11
  %4003 = load i32, ptr %4002, align 4, !tbaa !5
  %4004 = call ptr @strerror(i32 noundef %4003) #10
  %4005 = call ptr @__errno_location() #11
  %4006 = load i32, ptr %4005, align 4, !tbaa !5
  %4007 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3994, ptr noundef @.str, i32 noundef %3995, ptr noundef @.str.87, ptr noundef @.str.2, i32 noundef 508, ptr noundef %3998, ptr noundef %4001, ptr noundef %4004, i32 noundef %4006) #10
  br label %4025

4008:                                             ; preds = %3986, %3979
  %4009 = load i32, ptr %87, align 4, !tbaa !5
  %4010 = call ptr @__errno_location() #11
  store i32 %4009, ptr %4010, align 4, !tbaa !5
  %4011 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4012 = load i32, ptr @test_count, align 4, !tbaa !5
  %4013 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4014 = load i32, ptr %4013, align 4, !tbaa !5
  %4015 = call ptr @s2n_strerror(i32 noundef %4014, ptr noundef @.str.3)
  %4016 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4017 = load i32, ptr %4016, align 4, !tbaa !5
  %4018 = call ptr @s2n_strerror_debug(i32 noundef %4017, ptr noundef @.str.3)
  %4019 = call ptr @__errno_location() #11
  %4020 = load i32, ptr %4019, align 4, !tbaa !5
  %4021 = call ptr @strerror(i32 noundef %4020) #10
  %4022 = call ptr @__errno_location() #11
  %4023 = load i32, ptr %4022, align 4, !tbaa !5
  %4024 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4011, ptr noundef @.str.4, i32 noundef %4012, ptr noundef @.str.87, ptr noundef @.str.2, i32 noundef 508, ptr noundef %4015, ptr noundef %4018, ptr noundef %4021, i32 noundef %4023) #10
  br label %4025

4025:                                             ; preds = %4008, %3991
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #10
  br label %4026

4026:                                             ; preds = %4025
  br label %4027

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

4028:                                             ; No predecessors!
  br label %4029

4029:                                             ; preds = %4028
  br label %4030

4030:                                             ; preds = %4029, %3972
  br label %4031

4031:                                             ; preds = %4030
  br label %4032

4032:                                             ; preds = %4031
  br label %4033

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

4040:                                             ; preds = %4033
  br label %4041

4041:                                             ; preds = %4040
  br label %4042

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

4049:                                             ; preds = %4042
  %4050 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4051 = call i32 @fileno(ptr noundef %4050) #10
  %4052 = call i32 @isatty(i32 noundef %4051) #10
  %4053 = icmp ne i32 %4052, 0
  br i1 %4053, label %4054, label %4071

4054:                                             ; preds = %4049
  %4055 = load i32, ptr %88, align 4, !tbaa !5
  %4056 = call ptr @__errno_location() #11
  store i32 %4055, ptr %4056, align 4, !tbaa !5
  %4057 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4058 = load i32, ptr @test_count, align 4, !tbaa !5
  %4059 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4060 = load i32, ptr %4059, align 4, !tbaa !5
  %4061 = call ptr @s2n_strerror(i32 noundef %4060, ptr noundef @.str.3)
  %4062 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4063 = load i32, ptr %4062, align 4, !tbaa !5
  %4064 = call ptr @s2n_strerror_debug(i32 noundef %4063, ptr noundef @.str.3)
  %4065 = call ptr @__errno_location() #11
  %4066 = load i32, ptr %4065, align 4, !tbaa !5
  %4067 = call ptr @strerror(i32 noundef %4066) #10
  %4068 = call ptr @__errno_location() #11
  %4069 = load i32, ptr %4068, align 4, !tbaa !5
  %4070 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4057, ptr noundef @.str, i32 noundef %4058, ptr noundef @.str.88, ptr noundef @.str.2, i32 noundef 509, ptr noundef %4061, ptr noundef %4064, ptr noundef %4067, i32 noundef %4069) #10
  br label %4088

4071:                                             ; preds = %4049, %4042
  %4072 = load i32, ptr %88, align 4, !tbaa !5
  %4073 = call ptr @__errno_location() #11
  store i32 %4072, ptr %4073, align 4, !tbaa !5
  %4074 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4075 = load i32, ptr @test_count, align 4, !tbaa !5
  %4076 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4077 = load i32, ptr %4076, align 4, !tbaa !5
  %4078 = call ptr @s2n_strerror(i32 noundef %4077, ptr noundef @.str.3)
  %4079 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4080 = load i32, ptr %4079, align 4, !tbaa !5
  %4081 = call ptr @s2n_strerror_debug(i32 noundef %4080, ptr noundef @.str.3)
  %4082 = call ptr @__errno_location() #11
  %4083 = load i32, ptr %4082, align 4, !tbaa !5
  %4084 = call ptr @strerror(i32 noundef %4083) #10
  %4085 = call ptr @__errno_location() #11
  %4086 = load i32, ptr %4085, align 4, !tbaa !5
  %4087 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4074, ptr noundef @.str.4, i32 noundef %4075, ptr noundef @.str.88, ptr noundef @.str.2, i32 noundef 509, ptr noundef %4078, ptr noundef %4081, ptr noundef %4084, i32 noundef %4086) #10
  br label %4088

4088:                                             ; preds = %4071, %4054
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #10
  br label %4089

4089:                                             ; preds = %4088
  br label %4090

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

4091:                                             ; No predecessors!
  br label %4092

4092:                                             ; preds = %4091
  br label %4093

4093:                                             ; preds = %4092, %4033
  br label %4094

4094:                                             ; preds = %4093
  br label %4095

4095:                                             ; preds = %4094
  call void @llvm.lifetime.start.p0(i64 8, ptr %89) #10
  br label %4096

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

4101:                                             ; preds = %4096
  br label %4102

4102:                                             ; preds = %4101
  br label %4103

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

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

4115:                                             ; preds = %4110
  %4116 = load i32, ptr %90, align 4, !tbaa !5
  %4117 = call ptr @__errno_location() #11
  store i32 %4116, ptr %4117, align 4, !tbaa !5
  %4118 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4119 = load i32, ptr @test_count, align 4, !tbaa !5
  %4120 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4121 = load i32, ptr %4120, align 4, !tbaa !5
  %4122 = call ptr @s2n_strerror(i32 noundef %4121, ptr noundef @.str.3)
  %4123 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4124 = load i32, ptr %4123, align 4, !tbaa !5
  %4125 = call ptr @s2n_strerror_debug(i32 noundef %4124, ptr noundef @.str.3)
  %4126 = call ptr @__errno_location() #11
  %4127 = load i32, ptr %4126, align 4, !tbaa !5
  %4128 = call ptr @strerror(i32 noundef %4127) #10
  %4129 = call ptr @__errno_location() #11
  %4130 = load i32, ptr %4129, align 4, !tbaa !5
  %4131 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4118, ptr noundef @.str, i32 noundef %4119, ptr noundef @.str.89, ptr noundef @.str.2, i32 noundef 513, ptr noundef %4122, ptr noundef %4125, ptr noundef %4128, i32 noundef %4130) #10
  br label %4149

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

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

4150:                                             ; preds = %4149
  br label %4151

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

4152:                                             ; No predecessors!
  br label %4153

4153:                                             ; preds = %4152
  br label %4154

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

4155:                                             ; preds = %4154
  br label %4156

4156:                                             ; preds = %4155
  br label %4157

4157:                                             ; preds = %4156
  %4158 = load i32, ptr @test_count, align 4, !tbaa !5
  %4159 = add nsw i32 %4158, 1
  store i32 %4159, ptr @test_count, align 4, !tbaa !5
  %4160 = load ptr, ptr %83, align 8, !tbaa !9
  %4161 = call i32 @s2n_connection_set_io_pair(ptr noundef %4160, ptr noundef %89)
  %4162 = icmp eq i32 %4161, -1
  br i1 %4162, label %4163, label %4216

4163:                                             ; preds = %4157
  br label %4164

4164:                                             ; preds = %4163
  br label %4165

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

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

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

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

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

4212:                                             ; preds = %4211
  br label %4213

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

4214:                                             ; No predecessors!
  br label %4215

4215:                                             ; preds = %4214
  br label %4216

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

4217:                                             ; preds = %4216
  br label %4218

4218:                                             ; preds = %4217
  br label %4219

4219:                                             ; preds = %4218
  %4220 = load i32, ptr @test_count, align 4, !tbaa !5
  %4221 = add nsw i32 %4220, 1
  store i32 %4221, ptr @test_count, align 4, !tbaa !5
  %4222 = load ptr, ptr %86, align 8, !tbaa !9
  %4223 = call i32 @s2n_connection_set_io_pair(ptr noundef %4222, ptr noundef %89)
  %4224 = icmp eq i32 %4223, -1
  br i1 %4224, label %4225, label %4278

4225:                                             ; preds = %4219
  br label %4226

4226:                                             ; preds = %4225
  br label %4227

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

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

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

4256:                                             ; preds = %4234, %4227
  %4257 = load i32, ptr %92, align 4, !tbaa !5
  %4258 = call ptr @__errno_location() #11
  store i32 %4257, ptr %4258, align 4, !tbaa !5
  %4259 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4260 = load i32, ptr @test_count, align 4, !tbaa !5
  %4261 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4262 = load i32, ptr %4261, align 4, !tbaa !5
  %4263 = call ptr @s2n_strerror(i32 noundef %4262, ptr noundef @.str.3)
  %4264 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4265 = load i32, ptr %4264, align 4, !tbaa !5
  %4266 = call ptr @s2n_strerror_debug(i32 noundef %4265, ptr noundef @.str.3)
  %4267 = call ptr @__errno_location() #11
  %4268 = load i32, ptr %4267, align 4, !tbaa !5
  %4269 = call ptr @strerror(i32 noundef %4268) #10
  %4270 = call ptr @__errno_location() #11
  %4271 = load i32, ptr %4270, align 4, !tbaa !5
  %4272 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4259, ptr noundef @.str.4, i32 noundef %4260, ptr noundef @.str.91, ptr noundef @.str.2, i32 noundef 515, ptr noundef %4263, ptr noundef %4266, ptr noundef %4269, i32 noundef %4271) #10
  br label %4273

4273:                                             ; preds = %4256, %4239
  call void @llvm.lifetime.end.p0(i64 4, ptr %92) #10
  br label %4274

4274:                                             ; preds = %4273
  br label %4275

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

4276:                                             ; No predecessors!
  br label %4277

4277:                                             ; preds = %4276
  br label %4278

4278:                                             ; preds = %4277, %4219
  br label %4279

4279:                                             ; preds = %4278
  br label %4280

4280:                                             ; preds = %4279
  br label %4281

4281:                                             ; preds = %4280
  br label %4282

4282:                                             ; preds = %4281
  br label %4283

4283:                                             ; preds = %4282
  %4284 = load i32, ptr @test_count, align 4, !tbaa !5
  %4285 = add nsw i32 %4284, 1
  store i32 %4285, ptr @test_count, align 4, !tbaa !5
  %4286 = load ptr, ptr %86, align 8, !tbaa !9
  %4287 = load ptr, ptr %83, align 8, !tbaa !9
  %4288 = call i32 @try_handshake(ptr noundef %4286, ptr noundef %4287, ptr noundef @async_handler_free_pkey_op)
  %4289 = icmp eq i32 %4288, -1
  br i1 %4289, label %4343, label %4290

4290:                                             ; preds = %4283
  br label %4291

4291:                                             ; preds = %4290
  br label %4292

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

4299:                                             ; preds = %4292
  %4300 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4301 = call i32 @fileno(ptr noundef %4300) #10
  %4302 = call i32 @isatty(i32 noundef %4301) #10
  %4303 = icmp ne i32 %4302, 0
  br i1 %4303, label %4304, label %4321

4304:                                             ; preds = %4299
  %4305 = load i32, ptr %93, align 4, !tbaa !5
  %4306 = call ptr @__errno_location() #11
  store i32 %4305, ptr %4306, align 4, !tbaa !5
  %4307 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4308 = load i32, ptr @test_count, align 4, !tbaa !5
  %4309 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4310 = load i32, ptr %4309, align 4, !tbaa !5
  %4311 = call ptr @s2n_strerror(i32 noundef %4310, ptr noundef @.str.3)
  %4312 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4313 = load i32, ptr %4312, align 4, !tbaa !5
  %4314 = call ptr @s2n_strerror_debug(i32 noundef %4313, ptr noundef @.str.3)
  %4315 = call ptr @__errno_location() #11
  %4316 = load i32, ptr %4315, align 4, !tbaa !5
  %4317 = call ptr @strerror(i32 noundef %4316) #10
  %4318 = call ptr @__errno_location() #11
  %4319 = load i32, ptr %4318, align 4, !tbaa !5
  %4320 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4307, ptr noundef @.str, i32 noundef %4308, ptr noundef @.str.100, ptr noundef @.str.2, i32 noundef 518, ptr noundef %4311, ptr noundef %4314, ptr noundef %4317, i32 noundef %4319) #10
  br label %4338

4321:                                             ; preds = %4299, %4292
  %4322 = load i32, ptr %93, align 4, !tbaa !5
  %4323 = call ptr @__errno_location() #11
  store i32 %4322, ptr %4323, align 4, !tbaa !5
  %4324 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4325 = load i32, ptr @test_count, align 4, !tbaa !5
  %4326 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4327 = load i32, ptr %4326, align 4, !tbaa !5
  %4328 = call ptr @s2n_strerror(i32 noundef %4327, ptr noundef @.str.3)
  %4329 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4330 = load i32, ptr %4329, align 4, !tbaa !5
  %4331 = call ptr @s2n_strerror_debug(i32 noundef %4330, ptr noundef @.str.3)
  %4332 = call ptr @__errno_location() #11
  %4333 = load i32, ptr %4332, align 4, !tbaa !5
  %4334 = call ptr @strerror(i32 noundef %4333) #10
  %4335 = call ptr @__errno_location() #11
  %4336 = load i32, ptr %4335, align 4, !tbaa !5
  %4337 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4324, ptr noundef @.str.4, i32 noundef %4325, ptr noundef @.str.100, ptr noundef @.str.2, i32 noundef 518, ptr noundef %4328, ptr noundef %4331, ptr noundef %4334, i32 noundef %4336) #10
  br label %4338

4338:                                             ; preds = %4321, %4304
  call void @llvm.lifetime.end.p0(i64 4, ptr %93) #10
  br label %4339

4339:                                             ; preds = %4338
  br label %4340

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

4341:                                             ; No predecessors!
  br label %4342

4342:                                             ; preds = %4341
  br label %4343

4343:                                             ; preds = %4342, %4283
  br label %4344

4344:                                             ; preds = %4343
  br label %4345

4345:                                             ; preds = %4344
  br label %4346

4346:                                             ; preds = %4345
  %4347 = load i32, ptr @test_count, align 4, !tbaa !5
  %4348 = add nsw i32 %4347, 1
  store i32 %4348, ptr @test_count, align 4, !tbaa !5
  %4349 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4350 = load i32, ptr %4349, align 4, !tbaa !5
  %4351 = icmp eq i32 %4350, 201326593
  br i1 %4351, label %4405, label %4352

4352:                                             ; preds = %4346
  br label %4353

4353:                                             ; preds = %4352
  br label %4354

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

4361:                                             ; preds = %4354
  %4362 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4363 = call i32 @fileno(ptr noundef %4362) #10
  %4364 = call i32 @isatty(i32 noundef %4363) #10
  %4365 = icmp ne i32 %4364, 0
  br i1 %4365, label %4366, label %4383

4366:                                             ; preds = %4361
  %4367 = load i32, ptr %94, align 4, !tbaa !5
  %4368 = call ptr @__errno_location() #11
  store i32 %4367, ptr %4368, align 4, !tbaa !5
  %4369 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4370 = load i32, ptr @test_count, align 4, !tbaa !5
  %4371 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4372 = load i32, ptr %4371, align 4, !tbaa !5
  %4373 = call ptr @s2n_strerror(i32 noundef %4372, ptr noundef @.str.3)
  %4374 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4375 = load i32, ptr %4374, align 4, !tbaa !5
  %4376 = call ptr @s2n_strerror_debug(i32 noundef %4375, ptr noundef @.str.3)
  %4377 = call ptr @__errno_location() #11
  %4378 = load i32, ptr %4377, align 4, !tbaa !5
  %4379 = call ptr @strerror(i32 noundef %4378) #10
  %4380 = call ptr @__errno_location() #11
  %4381 = load i32, ptr %4380, align 4, !tbaa !5
  %4382 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4369, ptr noundef @.str, i32 noundef %4370, ptr noundef @.str.101, ptr noundef @.str.2, i32 noundef 518, ptr noundef %4373, ptr noundef %4376, ptr noundef %4379, i32 noundef %4381) #10
  br label %4400

4383:                                             ; preds = %4361, %4354
  %4384 = load i32, ptr %94, align 4, !tbaa !5
  %4385 = call ptr @__errno_location() #11
  store i32 %4384, ptr %4385, align 4, !tbaa !5
  %4386 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4387 = load i32, ptr @test_count, align 4, !tbaa !5
  %4388 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4389 = load i32, ptr %4388, align 4, !tbaa !5
  %4390 = call ptr @s2n_strerror(i32 noundef %4389, ptr noundef @.str.3)
  %4391 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4392 = load i32, ptr %4391, align 4, !tbaa !5
  %4393 = call ptr @s2n_strerror_debug(i32 noundef %4392, ptr noundef @.str.3)
  %4394 = call ptr @__errno_location() #11
  %4395 = load i32, ptr %4394, align 4, !tbaa !5
  %4396 = call ptr @strerror(i32 noundef %4395) #10
  %4397 = call ptr @__errno_location() #11
  %4398 = load i32, ptr %4397, align 4, !tbaa !5
  %4399 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4386, ptr noundef @.str.4, i32 noundef %4387, ptr noundef @.str.101, ptr noundef @.str.2, i32 noundef 518, ptr noundef %4390, ptr noundef %4393, ptr noundef %4396, i32 noundef %4398) #10
  br label %4400

4400:                                             ; preds = %4383, %4366
  call void @llvm.lifetime.end.p0(i64 4, ptr %94) #10
  br label %4401

4401:                                             ; preds = %4400
  br label %4402

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

4403:                                             ; No predecessors!
  br label %4404

4404:                                             ; preds = %4403
  br label %4405

4405:                                             ; preds = %4404, %4346
  br label %4406

4406:                                             ; preds = %4405
  br label %4407

4407:                                             ; preds = %4406
  br label %4408

4408:                                             ; preds = %4407
  %4409 = load i32, ptr @test_count, align 4, !tbaa !5
  %4410 = add nsw i32 %4409, 1
  store i32 %4410, ptr @test_count, align 4, !tbaa !5
  %4411 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4412 = load i32, ptr %4411, align 4, !tbaa !5
  %4413 = call ptr @s2n_strerror_debug(i32 noundef %4412, ptr noundef @.str.3)
  %4414 = icmp eq ptr %4413, null
  br i1 %4414, label %4415, label %4468

4415:                                             ; preds = %4408
  br label %4416

4416:                                             ; preds = %4415
  br label %4417

4417:                                             ; preds = %4416
  call void @llvm.lifetime.start.p0(i64 4, ptr %95) #10
  %4418 = call ptr @__errno_location() #11
  %4419 = load i32, ptr %4418, align 4, !tbaa !5
  store i32 %4419, ptr %95, align 4, !tbaa !5
  %4420 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4421 = call i32 @s2n_print_stacktrace(ptr noundef %4420)
  %4422 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4423 = trunc i8 %4422 to i1
  br i1 %4423, label %4424, label %4446

4424:                                             ; preds = %4417
  %4425 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4426 = call i32 @fileno(ptr noundef %4425) #10
  %4427 = call i32 @isatty(i32 noundef %4426) #10
  %4428 = icmp ne i32 %4427, 0
  br i1 %4428, label %4429, label %4446

4429:                                             ; preds = %4424
  %4430 = load i32, ptr %95, align 4, !tbaa !5
  %4431 = call ptr @__errno_location() #11
  store i32 %4430, ptr %4431, align 4, !tbaa !5
  %4432 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4433 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %4435, ptr noundef @.str.3)
  %4437 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4438 = load i32, ptr %4437, align 4, !tbaa !5
  %4439 = call ptr @s2n_strerror_debug(i32 noundef %4438, ptr noundef @.str.3)
  %4440 = call ptr @__errno_location() #11
  %4441 = load i32, ptr %4440, align 4, !tbaa !5
  %4442 = call ptr @strerror(i32 noundef %4441) #10
  %4443 = call ptr @__errno_location() #11
  %4444 = load i32, ptr %4443, align 4, !tbaa !5
  %4445 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4432, ptr noundef @.str, i32 noundef %4433, ptr noundef @.str.56, ptr noundef @.str.2, i32 noundef 518, ptr noundef %4436, ptr noundef %4439, ptr noundef %4442, i32 noundef %4444) #10
  br label %4463

4446:                                             ; preds = %4424, %4417
  %4447 = load i32, ptr %95, align 4, !tbaa !5
  %4448 = call ptr @__errno_location() #11
  store i32 %4447, ptr %4448, align 4, !tbaa !5
  %4449 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4450 = load i32, ptr @test_count, align 4, !tbaa !5
  %4451 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4452 = load i32, ptr %4451, align 4, !tbaa !5
  %4453 = call ptr @s2n_strerror(i32 noundef %4452, ptr noundef @.str.3)
  %4454 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4455 = load i32, ptr %4454, align 4, !tbaa !5
  %4456 = call ptr @s2n_strerror_debug(i32 noundef %4455, ptr noundef @.str.3)
  %4457 = call ptr @__errno_location() #11
  %4458 = load i32, ptr %4457, align 4, !tbaa !5
  %4459 = call ptr @strerror(i32 noundef %4458) #10
  %4460 = call ptr @__errno_location() #11
  %4461 = load i32, ptr %4460, align 4, !tbaa !5
  %4462 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4449, ptr noundef @.str.4, i32 noundef %4450, ptr noundef @.str.56, ptr noundef @.str.2, i32 noundef 518, ptr noundef %4453, ptr noundef %4456, ptr noundef %4459, i32 noundef %4461) #10
  br label %4463

4463:                                             ; preds = %4446, %4429
  call void @llvm.lifetime.end.p0(i64 4, ptr %95) #10
  br label %4464

4464:                                             ; preds = %4463
  br label %4465

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

4466:                                             ; No predecessors!
  br label %4467

4467:                                             ; preds = %4466
  br label %4468

4468:                                             ; preds = %4467, %4408
  br label %4469

4469:                                             ; preds = %4468
  br label %4470

4470:                                             ; preds = %4469
  br label %4471

4471:                                             ; preds = %4470
  br label %4472

4472:                                             ; preds = %4471
  br label %4473

4473:                                             ; preds = %4472
  %4474 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %4474, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %4475 = call ptr @__errno_location() #11
  store i32 0, ptr %4475, align 4, !tbaa !5
  br label %4476

4476:                                             ; preds = %4473
  br label %4477

4477:                                             ; preds = %4476
  br label %4478

4478:                                             ; preds = %4477
  br label %4479

4479:                                             ; preds = %4478
  br label %4480

4480:                                             ; preds = %4479
  %4481 = load i32, ptr @test_count, align 4, !tbaa !5
  %4482 = add nsw i32 %4481, 1
  store i32 %4482, ptr @test_count, align 4, !tbaa !5
  %4483 = load ptr, ptr %86, align 8, !tbaa !9
  %4484 = call i32 @s2n_connection_free(ptr noundef %4483)
  %4485 = icmp eq i32 %4484, -1
  br i1 %4485, label %4486, label %4539

4486:                                             ; preds = %4480
  br label %4487

4487:                                             ; preds = %4486
  br label %4488

4488:                                             ; preds = %4487
  call void @llvm.lifetime.start.p0(i64 4, ptr %96) #10
  %4489 = call ptr @__errno_location() #11
  %4490 = load i32, ptr %4489, align 4, !tbaa !5
  store i32 %4490, ptr %96, align 4, !tbaa !5
  %4491 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4492 = call i32 @s2n_print_stacktrace(ptr noundef %4491)
  %4493 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4494 = trunc i8 %4493 to i1
  br i1 %4494, label %4495, label %4517

4495:                                             ; preds = %4488
  %4496 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4497 = call i32 @fileno(ptr noundef %4496) #10
  %4498 = call i32 @isatty(i32 noundef %4497) #10
  %4499 = icmp ne i32 %4498, 0
  br i1 %4499, label %4500, label %4517

4500:                                             ; preds = %4495
  %4501 = load i32, ptr %96, align 4, !tbaa !5
  %4502 = call ptr @__errno_location() #11
  store i32 %4501, ptr %4502, align 4, !tbaa !5
  %4503 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4504 = load i32, ptr @test_count, align 4, !tbaa !5
  %4505 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4506 = load i32, ptr %4505, align 4, !tbaa !5
  %4507 = call ptr @s2n_strerror(i32 noundef %4506, ptr noundef @.str.3)
  %4508 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4509 = load i32, ptr %4508, align 4, !tbaa !5
  %4510 = call ptr @s2n_strerror_debug(i32 noundef %4509, ptr noundef @.str.3)
  %4511 = call ptr @__errno_location() #11
  %4512 = load i32, ptr %4511, align 4, !tbaa !5
  %4513 = call ptr @strerror(i32 noundef %4512) #10
  %4514 = call ptr @__errno_location() #11
  %4515 = load i32, ptr %4514, align 4, !tbaa !5
  %4516 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4503, ptr noundef @.str, i32 noundef %4504, ptr noundef @.str.93, ptr noundef @.str.2, i32 noundef 521, ptr noundef %4507, ptr noundef %4510, ptr noundef %4513, i32 noundef %4515) #10
  br label %4534

4517:                                             ; preds = %4495, %4488
  %4518 = load i32, ptr %96, align 4, !tbaa !5
  %4519 = call ptr @__errno_location() #11
  store i32 %4518, ptr %4519, align 4, !tbaa !5
  %4520 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4521 = load i32, ptr @test_count, align 4, !tbaa !5
  %4522 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4523 = load i32, ptr %4522, align 4, !tbaa !5
  %4524 = call ptr @s2n_strerror(i32 noundef %4523, ptr noundef @.str.3)
  %4525 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4526 = load i32, ptr %4525, align 4, !tbaa !5
  %4527 = call ptr @s2n_strerror_debug(i32 noundef %4526, ptr noundef @.str.3)
  %4528 = call ptr @__errno_location() #11
  %4529 = load i32, ptr %4528, align 4, !tbaa !5
  %4530 = call ptr @strerror(i32 noundef %4529) #10
  %4531 = call ptr @__errno_location() #11
  %4532 = load i32, ptr %4531, align 4, !tbaa !5
  %4533 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4520, ptr noundef @.str.4, i32 noundef %4521, ptr noundef @.str.93, ptr noundef @.str.2, i32 noundef 521, ptr noundef %4524, ptr noundef %4527, ptr noundef %4530, i32 noundef %4532) #10
  br label %4534

4534:                                             ; preds = %4517, %4500
  call void @llvm.lifetime.end.p0(i64 4, ptr %96) #10
  br label %4535

4535:                                             ; preds = %4534
  br label %4536

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

4537:                                             ; No predecessors!
  br label %4538

4538:                                             ; preds = %4537
  br label %4539

4539:                                             ; preds = %4538, %4480
  br label %4540

4540:                                             ; preds = %4539
  br label %4541

4541:                                             ; preds = %4540
  br label %4542

4542:                                             ; preds = %4541
  %4543 = load i32, ptr @test_count, align 4, !tbaa !5
  %4544 = add nsw i32 %4543, 1
  store i32 %4544, ptr @test_count, align 4, !tbaa !5
  %4545 = load ptr, ptr %83, align 8, !tbaa !9
  %4546 = call i32 @s2n_connection_free(ptr noundef %4545)
  %4547 = icmp eq i32 %4546, -1
  br i1 %4547, label %4548, label %4601

4548:                                             ; preds = %4542
  br label %4549

4549:                                             ; preds = %4548
  br label %4550

4550:                                             ; preds = %4549
  call void @llvm.lifetime.start.p0(i64 4, ptr %97) #10
  %4551 = call ptr @__errno_location() #11
  %4552 = load i32, ptr %4551, align 4, !tbaa !5
  store i32 %4552, ptr %97, align 4, !tbaa !5
  %4553 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4554 = call i32 @s2n_print_stacktrace(ptr noundef %4553)
  %4555 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4556 = trunc i8 %4555 to i1
  br i1 %4556, label %4557, label %4579

4557:                                             ; preds = %4550
  %4558 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4559 = call i32 @fileno(ptr noundef %4558) #10
  %4560 = call i32 @isatty(i32 noundef %4559) #10
  %4561 = icmp ne i32 %4560, 0
  br i1 %4561, label %4562, label %4579

4562:                                             ; preds = %4557
  %4563 = load i32, ptr %97, align 4, !tbaa !5
  %4564 = call ptr @__errno_location() #11
  store i32 %4563, ptr %4564, align 4, !tbaa !5
  %4565 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4566 = load i32, ptr @test_count, align 4, !tbaa !5
  %4567 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4568 = load i32, ptr %4567, align 4, !tbaa !5
  %4569 = call ptr @s2n_strerror(i32 noundef %4568, ptr noundef @.str.3)
  %4570 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4571 = load i32, ptr %4570, align 4, !tbaa !5
  %4572 = call ptr @s2n_strerror_debug(i32 noundef %4571, ptr noundef @.str.3)
  %4573 = call ptr @__errno_location() #11
  %4574 = load i32, ptr %4573, align 4, !tbaa !5
  %4575 = call ptr @strerror(i32 noundef %4574) #10
  %4576 = call ptr @__errno_location() #11
  %4577 = load i32, ptr %4576, align 4, !tbaa !5
  %4578 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4565, ptr noundef @.str, i32 noundef %4566, ptr noundef @.str.94, ptr noundef @.str.2, i32 noundef 522, ptr noundef %4569, ptr noundef %4572, ptr noundef %4575, i32 noundef %4577) #10
  br label %4596

4579:                                             ; preds = %4557, %4550
  %4580 = load i32, ptr %97, align 4, !tbaa !5
  %4581 = call ptr @__errno_location() #11
  store i32 %4580, ptr %4581, align 4, !tbaa !5
  %4582 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4583 = load i32, ptr @test_count, align 4, !tbaa !5
  %4584 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4585 = load i32, ptr %4584, align 4, !tbaa !5
  %4586 = call ptr @s2n_strerror(i32 noundef %4585, ptr noundef @.str.3)
  %4587 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4588 = load i32, ptr %4587, align 4, !tbaa !5
  %4589 = call ptr @s2n_strerror_debug(i32 noundef %4588, ptr noundef @.str.3)
  %4590 = call ptr @__errno_location() #11
  %4591 = load i32, ptr %4590, align 4, !tbaa !5
  %4592 = call ptr @strerror(i32 noundef %4591) #10
  %4593 = call ptr @__errno_location() #11
  %4594 = load i32, ptr %4593, align 4, !tbaa !5
  %4595 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4582, ptr noundef @.str.4, i32 noundef %4583, ptr noundef @.str.94, ptr noundef @.str.2, i32 noundef 522, ptr noundef %4586, ptr noundef %4589, ptr noundef %4592, i32 noundef %4594) #10
  br label %4596

4596:                                             ; preds = %4579, %4562
  call void @llvm.lifetime.end.p0(i64 4, ptr %97) #10
  br label %4597

4597:                                             ; preds = %4596
  br label %4598

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

4599:                                             ; No predecessors!
  br label %4600

4600:                                             ; preds = %4599
  br label %4601

4601:                                             ; preds = %4600, %4542
  br label %4602

4602:                                             ; preds = %4601
  br label %4603

4603:                                             ; preds = %4602
  br label %4604

4604:                                             ; preds = %4603
  %4605 = load i32, ptr @test_count, align 4, !tbaa !5
  %4606 = add nsw i32 %4605, 1
  store i32 %4606, ptr @test_count, align 4, !tbaa !5
  %4607 = call i32 @s2n_io_pair_close(ptr noundef %89)
  %4608 = icmp eq i32 %4607, -1
  br i1 %4608, label %4609, label %4662

4609:                                             ; preds = %4604
  br label %4610

4610:                                             ; preds = %4609
  br label %4611

4611:                                             ; preds = %4610
  call void @llvm.lifetime.start.p0(i64 4, ptr %98) #10
  %4612 = call ptr @__errno_location() #11
  %4613 = load i32, ptr %4612, align 4, !tbaa !5
  store i32 %4613, ptr %98, align 4, !tbaa !5
  %4614 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4615 = call i32 @s2n_print_stacktrace(ptr noundef %4614)
  %4616 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4617 = trunc i8 %4616 to i1
  br i1 %4617, label %4618, label %4640

4618:                                             ; preds = %4611
  %4619 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4620 = call i32 @fileno(ptr noundef %4619) #10
  %4621 = call i32 @isatty(i32 noundef %4620) #10
  %4622 = icmp ne i32 %4621, 0
  br i1 %4622, label %4623, label %4640

4623:                                             ; preds = %4618
  %4624 = load i32, ptr %98, align 4, !tbaa !5
  %4625 = call ptr @__errno_location() #11
  store i32 %4624, ptr %4625, align 4, !tbaa !5
  %4626 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4627 = load i32, ptr @test_count, align 4, !tbaa !5
  %4628 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4629 = load i32, ptr %4628, align 4, !tbaa !5
  %4630 = call ptr @s2n_strerror(i32 noundef %4629, ptr noundef @.str.3)
  %4631 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4632 = load i32, ptr %4631, align 4, !tbaa !5
  %4633 = call ptr @s2n_strerror_debug(i32 noundef %4632, ptr noundef @.str.3)
  %4634 = call ptr @__errno_location() #11
  %4635 = load i32, ptr %4634, align 4, !tbaa !5
  %4636 = call ptr @strerror(i32 noundef %4635) #10
  %4637 = call ptr @__errno_location() #11
  %4638 = load i32, ptr %4637, align 4, !tbaa !5
  %4639 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4626, ptr noundef @.str, i32 noundef %4627, ptr noundef @.str.95, ptr noundef @.str.2, i32 noundef 523, ptr noundef %4630, ptr noundef %4633, ptr noundef %4636, i32 noundef %4638) #10
  br label %4657

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

4657:                                             ; preds = %4640, %4623
  call void @llvm.lifetime.end.p0(i64 4, ptr %98) #10
  br label %4658

4658:                                             ; preds = %4657
  br label %4659

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

4660:                                             ; No predecessors!
  br label %4661

4661:                                             ; preds = %4660
  br label %4662

4662:                                             ; preds = %4661, %4604
  br label %4663

4663:                                             ; preds = %4662
  br label %4664

4664:                                             ; preds = %4663
  br label %4665

4665:                                             ; preds = %4664
  %4666 = load i32, ptr @test_count, align 4, !tbaa !5
  %4667 = add nsw i32 %4666, 1
  store i32 %4667, ptr @test_count, align 4, !tbaa !5
  %4668 = load ptr, ptr %73, align 8, !tbaa !9
  %4669 = call i32 @s2n_config_free(ptr noundef %4668)
  %4670 = icmp eq i32 %4669, -1
  br i1 %4670, label %4671, label %4724

4671:                                             ; preds = %4665
  br label %4672

4672:                                             ; preds = %4671
  br label %4673

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

4680:                                             ; preds = %4673
  %4681 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4682 = call i32 @fileno(ptr noundef %4681) #10
  %4683 = call i32 @isatty(i32 noundef %4682) #10
  %4684 = icmp ne i32 %4683, 0
  br i1 %4684, label %4685, label %4702

4685:                                             ; preds = %4680
  %4686 = load i32, ptr %99, align 4, !tbaa !5
  %4687 = call ptr @__errno_location() #11
  store i32 %4686, ptr %4687, align 4, !tbaa !5
  %4688 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4689 = load i32, ptr @test_count, align 4, !tbaa !5
  %4690 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4691 = load i32, ptr %4690, align 4, !tbaa !5
  %4692 = call ptr @s2n_strerror(i32 noundef %4691, ptr noundef @.str.3)
  %4693 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4694 = load i32, ptr %4693, align 4, !tbaa !5
  %4695 = call ptr @s2n_strerror_debug(i32 noundef %4694, ptr noundef @.str.3)
  %4696 = call ptr @__errno_location() #11
  %4697 = load i32, ptr %4696, align 4, !tbaa !5
  %4698 = call ptr @strerror(i32 noundef %4697) #10
  %4699 = call ptr @__errno_location() #11
  %4700 = load i32, ptr %4699, align 4, !tbaa !5
  %4701 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4688, ptr noundef @.str, i32 noundef %4689, ptr noundef @.str.96, ptr noundef @.str.2, i32 noundef 524, ptr noundef %4692, ptr noundef %4695, ptr noundef %4698, i32 noundef %4700) #10
  br label %4719

4702:                                             ; preds = %4680, %4673
  %4703 = load i32, ptr %99, align 4, !tbaa !5
  %4704 = call ptr @__errno_location() #11
  store i32 %4703, ptr %4704, align 4, !tbaa !5
  %4705 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4706 = load i32, ptr @test_count, align 4, !tbaa !5
  %4707 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4708 = load i32, ptr %4707, align 4, !tbaa !5
  %4709 = call ptr @s2n_strerror(i32 noundef %4708, ptr noundef @.str.3)
  %4710 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4711 = load i32, ptr %4710, align 4, !tbaa !5
  %4712 = call ptr @s2n_strerror_debug(i32 noundef %4711, ptr noundef @.str.3)
  %4713 = call ptr @__errno_location() #11
  %4714 = load i32, ptr %4713, align 4, !tbaa !5
  %4715 = call ptr @strerror(i32 noundef %4714) #10
  %4716 = call ptr @__errno_location() #11
  %4717 = load i32, ptr %4716, align 4, !tbaa !5
  %4718 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4705, ptr noundef @.str.4, i32 noundef %4706, ptr noundef @.str.96, ptr noundef @.str.2, i32 noundef 524, ptr noundef %4709, ptr noundef %4712, ptr noundef %4715, i32 noundef %4717) #10
  br label %4719

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

4720:                                             ; preds = %4719
  br label %4721

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

4722:                                             ; No predecessors!
  br label %4723

4723:                                             ; preds = %4722
  br label %4724

4724:                                             ; preds = %4723, %4665
  br label %4725

4725:                                             ; preds = %4724
  br label %4726

4726:                                             ; preds = %4725
  br label %4727

4727:                                             ; preds = %4726
  %4728 = load i32, ptr @test_count, align 4, !tbaa !5
  %4729 = add nsw i32 %4728, 1
  store i32 %4729, ptr @test_count, align 4, !tbaa !5
  %4730 = load ptr, ptr %74, align 8, !tbaa !9
  %4731 = call i32 @s2n_config_free(ptr noundef %4730)
  %4732 = icmp eq i32 %4731, -1
  br i1 %4732, label %4733, label %4786

4733:                                             ; preds = %4727
  br label %4734

4734:                                             ; preds = %4733
  br label %4735

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

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

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

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

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

4782:                                             ; preds = %4781
  br label %4783

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

4784:                                             ; No predecessors!
  br label %4785

4785:                                             ; preds = %4784
  br label %4786

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

4787:                                             ; preds = %4786
  br label %4788

4788:                                             ; preds = %4787
  call void @llvm.lifetime.end.p0(i64 8, ptr %89) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %86) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %101) #10
  store ptr null, ptr %101, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %102) #10
  store ptr null, ptr %102, align 8, !tbaa !9
  br label %4789

4789:                                             ; preds = %4788
  %4790 = load i32, ptr @test_count, align 4, !tbaa !5
  %4791 = add nsw i32 %4790, 1
  store i32 %4791, ptr @test_count, align 4, !tbaa !5
  %4792 = call ptr @s2n_config_new()
  store ptr %4792, ptr %101, align 8, !tbaa !9
  %4793 = icmp eq ptr %4792, null
  br i1 %4793, label %4794, label %4847

4794:                                             ; preds = %4789
  br label %4795

4795:                                             ; preds = %4794
  br label %4796

4796:                                             ; preds = %4795
  call void @llvm.lifetime.start.p0(i64 4, ptr %103) #10
  %4797 = call ptr @__errno_location() #11
  %4798 = load i32, ptr %4797, align 4, !tbaa !5
  store i32 %4798, ptr %103, align 4, !tbaa !5
  %4799 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4800 = call i32 @s2n_print_stacktrace(ptr noundef %4799)
  %4801 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4802 = trunc i8 %4801 to i1
  br i1 %4802, label %4803, label %4825

4803:                                             ; preds = %4796
  %4804 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4805 = call i32 @fileno(ptr noundef %4804) #10
  %4806 = call i32 @isatty(i32 noundef %4805) #10
  %4807 = icmp ne i32 %4806, 0
  br i1 %4807, label %4808, label %4825

4808:                                             ; preds = %4803
  %4809 = load i32, ptr %103, align 4, !tbaa !5
  %4810 = call ptr @__errno_location() #11
  store i32 %4809, ptr %4810, align 4, !tbaa !5
  %4811 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4812 = load i32, ptr @test_count, align 4, !tbaa !5
  %4813 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4814 = load i32, ptr %4813, align 4, !tbaa !5
  %4815 = call ptr @s2n_strerror(i32 noundef %4814, ptr noundef @.str.3)
  %4816 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4817 = load i32, ptr %4816, align 4, !tbaa !5
  %4818 = call ptr @s2n_strerror_debug(i32 noundef %4817, ptr noundef @.str.3)
  %4819 = call ptr @__errno_location() #11
  %4820 = load i32, ptr %4819, align 4, !tbaa !5
  %4821 = call ptr @strerror(i32 noundef %4820) #10
  %4822 = call ptr @__errno_location() #11
  %4823 = load i32, ptr %4822, align 4, !tbaa !5
  %4824 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4811, ptr noundef @.str, i32 noundef %4812, ptr noundef @.str.76, ptr noundef @.str.2, i32 noundef 531, ptr noundef %4815, ptr noundef %4818, ptr noundef %4821, i32 noundef %4823) #10
  br label %4842

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

4842:                                             ; preds = %4825, %4808
  call void @llvm.lifetime.end.p0(i64 4, ptr %103) #10
  br label %4843

4843:                                             ; preds = %4842
  br label %4844

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

4845:                                             ; No predecessors!
  br label %4846

4846:                                             ; preds = %4845
  br label %4847

4847:                                             ; preds = %4846, %4789
  br label %4848

4848:                                             ; preds = %4847
  br label %4849

4849:                                             ; preds = %4848
  br label %4850

4850:                                             ; preds = %4849
  %4851 = load i32, ptr @test_count, align 4, !tbaa !5
  %4852 = add nsw i32 %4851, 1
  store i32 %4852, ptr @test_count, align 4, !tbaa !5
  %4853 = load ptr, ptr %101, align 8, !tbaa !9
  %4854 = load ptr, ptr %12, align 8, !tbaa !9
  %4855 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %4853, ptr noundef %4854)
  %4856 = icmp eq i32 %4855, -1
  br i1 %4856, label %4857, label %4910

4857:                                             ; preds = %4850
  br label %4858

4858:                                             ; preds = %4857
  br label %4859

4859:                                             ; preds = %4858
  call void @llvm.lifetime.start.p0(i64 4, ptr %104) #10
  %4860 = call ptr @__errno_location() #11
  %4861 = load i32, ptr %4860, align 4, !tbaa !5
  store i32 %4861, ptr %104, align 4, !tbaa !5
  %4862 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4863 = call i32 @s2n_print_stacktrace(ptr noundef %4862)
  %4864 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4865 = trunc i8 %4864 to i1
  br i1 %4865, label %4866, label %4888

4866:                                             ; preds = %4859
  %4867 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4868 = call i32 @fileno(ptr noundef %4867) #10
  %4869 = call i32 @isatty(i32 noundef %4868) #10
  %4870 = icmp ne i32 %4869, 0
  br i1 %4870, label %4871, label %4888

4871:                                             ; preds = %4866
  %4872 = load i32, ptr %104, align 4, !tbaa !5
  %4873 = call ptr @__errno_location() #11
  store i32 %4872, ptr %4873, align 4, !tbaa !5
  %4874 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4875 = load i32, ptr @test_count, align 4, !tbaa !5
  %4876 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4877 = load i32, ptr %4876, align 4, !tbaa !5
  %4878 = call ptr @s2n_strerror(i32 noundef %4877, ptr noundef @.str.3)
  %4879 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4880 = load i32, ptr %4879, align 4, !tbaa !5
  %4881 = call ptr @s2n_strerror_debug(i32 noundef %4880, ptr noundef @.str.3)
  %4882 = call ptr @__errno_location() #11
  %4883 = load i32, ptr %4882, align 4, !tbaa !5
  %4884 = call ptr @strerror(i32 noundef %4883) #10
  %4885 = call ptr @__errno_location() #11
  %4886 = load i32, ptr %4885, align 4, !tbaa !5
  %4887 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4874, ptr noundef @.str, i32 noundef %4875, ptr noundef @.str.77, ptr noundef @.str.2, i32 noundef 532, ptr noundef %4878, ptr noundef %4881, ptr noundef %4884, i32 noundef %4886) #10
  br label %4905

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

4905:                                             ; preds = %4888, %4871
  call void @llvm.lifetime.end.p0(i64 4, ptr %104) #10
  br label %4906

4906:                                             ; preds = %4905
  br label %4907

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

4908:                                             ; No predecessors!
  br label %4909

4909:                                             ; preds = %4908
  br label %4910

4910:                                             ; preds = %4909, %4850
  br label %4911

4911:                                             ; preds = %4910
  br label %4912

4912:                                             ; preds = %4911
  br label %4913

4913:                                             ; preds = %4912
  %4914 = load i32, ptr @test_count, align 4, !tbaa !5
  %4915 = add nsw i32 %4914, 1
  store i32 %4915, ptr @test_count, align 4, !tbaa !5
  %4916 = load ptr, ptr %101, align 8, !tbaa !9
  %4917 = getelementptr inbounds [12000 x i8], ptr %10, i64 0, i64 0
  %4918 = call i32 @s2n_config_add_dhparams(ptr noundef %4916, ptr noundef %4917)
  %4919 = icmp eq i32 %4918, -1
  br i1 %4919, label %4920, label %4973

4920:                                             ; preds = %4913
  br label %4921

4921:                                             ; preds = %4920
  br label %4922

4922:                                             ; preds = %4921
  call void @llvm.lifetime.start.p0(i64 4, ptr %105) #10
  %4923 = call ptr @__errno_location() #11
  %4924 = load i32, ptr %4923, align 4, !tbaa !5
  store i32 %4924, ptr %105, align 4, !tbaa !5
  %4925 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4926 = call i32 @s2n_print_stacktrace(ptr noundef %4925)
  %4927 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4928 = trunc i8 %4927 to i1
  br i1 %4928, label %4929, label %4951

4929:                                             ; preds = %4922
  %4930 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4931 = call i32 @fileno(ptr noundef %4930) #10
  %4932 = call i32 @isatty(i32 noundef %4931) #10
  %4933 = icmp ne i32 %4932, 0
  br i1 %4933, label %4934, label %4951

4934:                                             ; preds = %4929
  %4935 = load i32, ptr %105, align 4, !tbaa !5
  %4936 = call ptr @__errno_location() #11
  store i32 %4935, ptr %4936, align 4, !tbaa !5
  %4937 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4938 = load i32, ptr @test_count, align 4, !tbaa !5
  %4939 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4940 = load i32, ptr %4939, align 4, !tbaa !5
  %4941 = call ptr @s2n_strerror(i32 noundef %4940, ptr noundef @.str.3)
  %4942 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4943 = load i32, ptr %4942, align 4, !tbaa !5
  %4944 = call ptr @s2n_strerror_debug(i32 noundef %4943, ptr noundef @.str.3)
  %4945 = call ptr @__errno_location() #11
  %4946 = load i32, ptr %4945, align 4, !tbaa !5
  %4947 = call ptr @strerror(i32 noundef %4946) #10
  %4948 = call ptr @__errno_location() #11
  %4949 = load i32, ptr %4948, align 4, !tbaa !5
  %4950 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4937, ptr noundef @.str, i32 noundef %4938, ptr noundef @.str.78, ptr noundef @.str.2, i32 noundef 533, ptr noundef %4941, ptr noundef %4944, ptr noundef %4947, i32 noundef %4949) #10
  br label %4968

4951:                                             ; preds = %4929, %4922
  %4952 = load i32, ptr %105, align 4, !tbaa !5
  %4953 = call ptr @__errno_location() #11
  store i32 %4952, ptr %4953, align 4, !tbaa !5
  %4954 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4955 = load i32, ptr @test_count, align 4, !tbaa !5
  %4956 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4957 = load i32, ptr %4956, align 4, !tbaa !5
  %4958 = call ptr @s2n_strerror(i32 noundef %4957, ptr noundef @.str.3)
  %4959 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4960 = load i32, ptr %4959, align 4, !tbaa !5
  %4961 = call ptr @s2n_strerror_debug(i32 noundef %4960, ptr noundef @.str.3)
  %4962 = call ptr @__errno_location() #11
  %4963 = load i32, ptr %4962, align 4, !tbaa !5
  %4964 = call ptr @strerror(i32 noundef %4963) #10
  %4965 = call ptr @__errno_location() #11
  %4966 = load i32, ptr %4965, align 4, !tbaa !5
  %4967 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4954, ptr noundef @.str.4, i32 noundef %4955, ptr noundef @.str.78, ptr noundef @.str.2, i32 noundef 533, ptr noundef %4958, ptr noundef %4961, ptr noundef %4964, i32 noundef %4966) #10
  br label %4968

4968:                                             ; preds = %4951, %4934
  call void @llvm.lifetime.end.p0(i64 4, ptr %105) #10
  br label %4969

4969:                                             ; preds = %4968
  br label %4970

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

4971:                                             ; No predecessors!
  br label %4972

4972:                                             ; preds = %4971
  br label %4973

4973:                                             ; preds = %4972, %4913
  br label %4974

4974:                                             ; preds = %4973
  br label %4975

4975:                                             ; preds = %4974
  br label %4976

4976:                                             ; preds = %4975
  %4977 = load i32, ptr @test_count, align 4, !tbaa !5
  %4978 = add nsw i32 %4977, 1
  store i32 %4978, ptr @test_count, align 4, !tbaa !5
  %4979 = load ptr, ptr %101, align 8, !tbaa !9
  %4980 = call i32 @s2n_config_set_async_pkey_callback(ptr noundef %4979, ptr noundef @async_pkey_store_callback)
  %4981 = icmp eq i32 %4980, -1
  br i1 %4981, label %4982, label %5035

4982:                                             ; preds = %4976
  br label %4983

4983:                                             ; preds = %4982
  br label %4984

4984:                                             ; preds = %4983
  call void @llvm.lifetime.start.p0(i64 4, ptr %106) #10
  %4985 = call ptr @__errno_location() #11
  %4986 = load i32, ptr %4985, align 4, !tbaa !5
  store i32 %4986, ptr %106, align 4, !tbaa !5
  %4987 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4988 = call i32 @s2n_print_stacktrace(ptr noundef %4987)
  %4989 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4990 = trunc i8 %4989 to i1
  br i1 %4990, label %4991, label %5013

4991:                                             ; preds = %4984
  %4992 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4993 = call i32 @fileno(ptr noundef %4992) #10
  %4994 = call i32 @isatty(i32 noundef %4993) #10
  %4995 = icmp ne i32 %4994, 0
  br i1 %4995, label %4996, label %5013

4996:                                             ; preds = %4991
  %4997 = load i32, ptr %106, align 4, !tbaa !5
  %4998 = call ptr @__errno_location() #11
  store i32 %4997, ptr %4998, align 4, !tbaa !5
  %4999 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5000 = load i32, ptr @test_count, align 4, !tbaa !5
  %5001 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5002 = load i32, ptr %5001, align 4, !tbaa !5
  %5003 = call ptr @s2n_strerror(i32 noundef %5002, ptr noundef @.str.3)
  %5004 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5005 = load i32, ptr %5004, align 4, !tbaa !5
  %5006 = call ptr @s2n_strerror_debug(i32 noundef %5005, ptr noundef @.str.3)
  %5007 = call ptr @__errno_location() #11
  %5008 = load i32, ptr %5007, align 4, !tbaa !5
  %5009 = call ptr @strerror(i32 noundef %5008) #10
  %5010 = call ptr @__errno_location() #11
  %5011 = load i32, ptr %5010, align 4, !tbaa !5
  %5012 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4999, ptr noundef @.str, i32 noundef %5000, ptr noundef @.str.98, ptr noundef @.str.2, i32 noundef 534, ptr noundef %5003, ptr noundef %5006, ptr noundef %5009, i32 noundef %5011) #10
  br label %5030

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

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

5031:                                             ; preds = %5030
  br label %5032

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

5033:                                             ; No predecessors!
  br label %5034

5034:                                             ; preds = %5033
  br label %5035

5035:                                             ; preds = %5034, %4976
  br label %5036

5036:                                             ; preds = %5035
  br label %5037

5037:                                             ; preds = %5036
  %5038 = load ptr, ptr %101, align 8, !tbaa !9
  %5039 = getelementptr inbounds %struct.s2n_config, ptr %5038, i32 0, i32 7
  store ptr %19, ptr %5039, align 8, !tbaa !31
  br label %5040

5040:                                             ; preds = %5037
  %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 %101, align 8, !tbaa !9
  %5044 = call i32 @s2n_config_set_async_pkey_validation_mode(ptr noundef %5043, i32 noundef 1)
  %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 %107) #10
  %5049 = call ptr @__errno_location() #11
  %5050 = load i32, ptr %5049, align 4, !tbaa !5
  store i32 %5050, ptr %107, 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) #10
  %5058 = call i32 @isatty(i32 noundef %5057) #10
  %5059 = icmp ne i32 %5058, 0
  br i1 %5059, label %5060, label %5077

5060:                                             ; preds = %5055
  %5061 = load i32, ptr %107, align 4, !tbaa !5
  %5062 = call ptr @__errno_location() #11
  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.3)
  %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.3)
  %5071 = call ptr @__errno_location() #11
  %5072 = load i32, ptr %5071, align 4, !tbaa !5
  %5073 = call ptr @strerror(i32 noundef %5072) #10
  %5074 = call ptr @__errno_location() #11
  %5075 = load i32, ptr %5074, align 4, !tbaa !5
  %5076 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5063, ptr noundef @.str, i32 noundef %5064, ptr noundef @.str.102, ptr noundef @.str.2, i32 noundef 537, ptr noundef %5067, ptr noundef %5070, ptr noundef %5073, i32 noundef %5075) #10
  br label %5094

5077:                                             ; preds = %5055, %5048
  %5078 = load i32, ptr %107, align 4, !tbaa !5
  %5079 = call ptr @__errno_location() #11
  store i32 %5078, ptr %5079, align 4, !tbaa !5
  %5080 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5081 = load i32, ptr @test_count, align 4, !tbaa !5
  %5082 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5083 = load i32, ptr %5082, align 4, !tbaa !5
  %5084 = call ptr @s2n_strerror(i32 noundef %5083, ptr noundef @.str.3)
  %5085 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5086 = load i32, ptr %5085, align 4, !tbaa !5
  %5087 = call ptr @s2n_strerror_debug(i32 noundef %5086, ptr noundef @.str.3)
  %5088 = call ptr @__errno_location() #11
  %5089 = load i32, ptr %5088, align 4, !tbaa !5
  %5090 = call ptr @strerror(i32 noundef %5089) #10
  %5091 = call ptr @__errno_location() #11
  %5092 = load i32, ptr %5091, align 4, !tbaa !5
  %5093 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5080, ptr noundef @.str.4, i32 noundef %5081, ptr noundef @.str.102, ptr noundef @.str.2, i32 noundef 537, ptr noundef %5084, ptr noundef %5087, ptr noundef %5090, i32 noundef %5092) #10
  br label %5094

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

5095:                                             ; preds = %5094
  br label %5096

5096:                                             ; preds = %5095
  call void @exit(i32 noundef 1) #12
  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 = call ptr @s2n_config_new()
  store ptr %5105, ptr %102, align 8, !tbaa !9
  %5106 = icmp eq ptr %5105, null
  br i1 %5106, label %5107, label %5160

5107:                                             ; preds = %5102
  br label %5108

5108:                                             ; preds = %5107
  br label %5109

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

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

5121:                                             ; preds = %5116
  %5122 = load i32, ptr %108, align 4, !tbaa !5
  %5123 = call ptr @__errno_location() #11
  store i32 %5122, ptr %5123, align 4, !tbaa !5
  %5124 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5125 = load i32, ptr @test_count, align 4, !tbaa !5
  %5126 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5127 = load i32, ptr %5126, align 4, !tbaa !5
  %5128 = call ptr @s2n_strerror(i32 noundef %5127, ptr noundef @.str.3)
  %5129 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5130 = load i32, ptr %5129, align 4, !tbaa !5
  %5131 = call ptr @s2n_strerror_debug(i32 noundef %5130, ptr noundef @.str.3)
  %5132 = call ptr @__errno_location() #11
  %5133 = load i32, ptr %5132, align 4, !tbaa !5
  %5134 = call ptr @strerror(i32 noundef %5133) #10
  %5135 = call ptr @__errno_location() #11
  %5136 = load i32, ptr %5135, align 4, !tbaa !5
  %5137 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5124, ptr noundef @.str, i32 noundef %5125, ptr noundef @.str.80, ptr noundef @.str.2, i32 noundef 539, ptr noundef %5128, ptr noundef %5131, ptr noundef %5134, i32 noundef %5136) #10
  br label %5155

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

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

5156:                                             ; preds = %5155
  br label %5157

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

5158:                                             ; No predecessors!
  br label %5159

5159:                                             ; preds = %5158
  br label %5160

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

5161:                                             ; preds = %5160
  br label %5162

5162:                                             ; preds = %5161
  br label %5163

5163:                                             ; preds = %5162
  %5164 = load i32, ptr @test_count, align 4, !tbaa !5
  %5165 = add nsw i32 %5164, 1
  store i32 %5165, ptr @test_count, align 4, !tbaa !5
  %5166 = load ptr, ptr %102, align 8, !tbaa !9
  %5167 = call i32 @s2n_config_set_unsafe_for_testing(ptr noundef %5166)
  %5168 = icmp eq i32 %5167, -1
  br i1 %5168, label %5169, label %5222

5169:                                             ; preds = %5163
  br label %5170

5170:                                             ; preds = %5169
  br label %5171

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

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

5183:                                             ; preds = %5178
  %5184 = load i32, ptr %109, align 4, !tbaa !5
  %5185 = call ptr @__errno_location() #11
  store i32 %5184, ptr %5185, align 4, !tbaa !5
  %5186 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5187 = load i32, ptr @test_count, align 4, !tbaa !5
  %5188 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5189 = load i32, ptr %5188, align 4, !tbaa !5
  %5190 = call ptr @s2n_strerror(i32 noundef %5189, ptr noundef @.str.3)
  %5191 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5192 = load i32, ptr %5191, align 4, !tbaa !5
  %5193 = call ptr @s2n_strerror_debug(i32 noundef %5192, ptr noundef @.str.3)
  %5194 = call ptr @__errno_location() #11
  %5195 = load i32, ptr %5194, align 4, !tbaa !5
  %5196 = call ptr @strerror(i32 noundef %5195) #10
  %5197 = call ptr @__errno_location() #11
  %5198 = load i32, ptr %5197, align 4, !tbaa !5
  %5199 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5186, ptr noundef @.str, i32 noundef %5187, ptr noundef @.str.81, ptr noundef @.str.2, i32 noundef 540, ptr noundef %5190, ptr noundef %5193, ptr noundef %5196, i32 noundef %5198) #10
  br label %5217

5200:                                             ; preds = %5178, %5171
  %5201 = load i32, ptr %109, align 4, !tbaa !5
  %5202 = call ptr @__errno_location() #11
  store i32 %5201, ptr %5202, align 4, !tbaa !5
  %5203 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5204 = load i32, ptr @test_count, align 4, !tbaa !5
  %5205 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5206 = load i32, ptr %5205, align 4, !tbaa !5
  %5207 = call ptr @s2n_strerror(i32 noundef %5206, ptr noundef @.str.3)
  %5208 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5209 = load i32, ptr %5208, align 4, !tbaa !5
  %5210 = call ptr @s2n_strerror_debug(i32 noundef %5209, ptr noundef @.str.3)
  %5211 = call ptr @__errno_location() #11
  %5212 = load i32, ptr %5211, align 4, !tbaa !5
  %5213 = call ptr @strerror(i32 noundef %5212) #10
  %5214 = call ptr @__errno_location() #11
  %5215 = load i32, ptr %5214, align 4, !tbaa !5
  %5216 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5203, ptr noundef @.str.4, i32 noundef %5204, ptr noundef @.str.81, ptr noundef @.str.2, i32 noundef 540, ptr noundef %5207, ptr noundef %5210, ptr noundef %5213, i32 noundef %5215) #10
  br label %5217

5217:                                             ; preds = %5200, %5183
  call void @llvm.lifetime.end.p0(i64 4, ptr %109) #10
  br label %5218

5218:                                             ; preds = %5217
  br label %5219

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

5220:                                             ; No predecessors!
  br label %5221

5221:                                             ; preds = %5220
  br label %5222

5222:                                             ; preds = %5221, %5163
  br label %5223

5223:                                             ; preds = %5222
  br label %5224

5224:                                             ; preds = %5223
  br label %5225

5225:                                             ; preds = %5224
  %5226 = load i32, ptr @test_count, align 4, !tbaa !5
  %5227 = add nsw i32 %5226, 1
  store i32 %5227, ptr @test_count, align 4, !tbaa !5
  %5228 = load ptr, ptr %102, align 8, !tbaa !9
  %5229 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %5228, ptr noundef @.str.82)
  %5230 = icmp eq i32 %5229, -1
  br i1 %5230, label %5231, label %5284

5231:                                             ; preds = %5225
  br label %5232

5232:                                             ; preds = %5231
  br label %5233

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

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

5245:                                             ; preds = %5240
  %5246 = load i32, ptr %110, align 4, !tbaa !5
  %5247 = call ptr @__errno_location() #11
  store i32 %5246, ptr %5247, align 4, !tbaa !5
  %5248 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5249 = load i32, ptr @test_count, align 4, !tbaa !5
  %5250 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5251 = load i32, ptr %5250, align 4, !tbaa !5
  %5252 = call ptr @s2n_strerror(i32 noundef %5251, ptr noundef @.str.3)
  %5253 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5254 = load i32, ptr %5253, align 4, !tbaa !5
  %5255 = call ptr @s2n_strerror_debug(i32 noundef %5254, ptr noundef @.str.3)
  %5256 = call ptr @__errno_location() #11
  %5257 = load i32, ptr %5256, align 4, !tbaa !5
  %5258 = call ptr @strerror(i32 noundef %5257) #10
  %5259 = call ptr @__errno_location() #11
  %5260 = load i32, ptr %5259, align 4, !tbaa !5
  %5261 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5248, ptr noundef @.str, i32 noundef %5249, ptr noundef @.str.83, ptr noundef @.str.2, i32 noundef 542, ptr noundef %5252, ptr noundef %5255, ptr noundef %5258, i32 noundef %5260) #10
  br label %5279

5262:                                             ; preds = %5240, %5233
  %5263 = load i32, ptr %110, align 4, !tbaa !5
  %5264 = call ptr @__errno_location() #11
  store i32 %5263, ptr %5264, align 4, !tbaa !5
  %5265 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5266 = load i32, ptr @test_count, align 4, !tbaa !5
  %5267 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5268 = load i32, ptr %5267, align 4, !tbaa !5
  %5269 = call ptr @s2n_strerror(i32 noundef %5268, ptr noundef @.str.3)
  %5270 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5271 = load i32, ptr %5270, align 4, !tbaa !5
  %5272 = call ptr @s2n_strerror_debug(i32 noundef %5271, ptr noundef @.str.3)
  %5273 = call ptr @__errno_location() #11
  %5274 = load i32, ptr %5273, align 4, !tbaa !5
  %5275 = call ptr @strerror(i32 noundef %5274) #10
  %5276 = call ptr @__errno_location() #11
  %5277 = load i32, ptr %5276, align 4, !tbaa !5
  %5278 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5265, ptr noundef @.str.4, i32 noundef %5266, ptr noundef @.str.83, ptr noundef @.str.2, i32 noundef 542, ptr noundef %5269, ptr noundef %5272, ptr noundef %5275, i32 noundef %5277) #10
  br label %5279

5279:                                             ; preds = %5262, %5245
  call void @llvm.lifetime.end.p0(i64 4, ptr %110) #10
  br label %5280

5280:                                             ; preds = %5279
  br label %5281

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

5282:                                             ; No predecessors!
  br label %5283

5283:                                             ; preds = %5282
  br label %5284

5284:                                             ; preds = %5283, %5225
  br label %5285

5285:                                             ; preds = %5284
  br label %5286

5286:                                             ; preds = %5285
  br label %5287

5287:                                             ; preds = %5286
  %5288 = load i32, ptr @test_count, align 4, !tbaa !5
  %5289 = add nsw i32 %5288, 1
  store i32 %5289, ptr @test_count, align 4, !tbaa !5
  %5290 = load ptr, ptr %102, align 8, !tbaa !9
  %5291 = call i32 @s2n_config_set_verification_ca_location(ptr noundef %5290, ptr noundef @.str.69, ptr noundef null)
  %5292 = icmp eq i32 %5291, -1
  br i1 %5292, label %5293, label %5346

5293:                                             ; preds = %5287
  br label %5294

5294:                                             ; preds = %5293
  br label %5295

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

5302:                                             ; preds = %5295
  %5303 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5304 = call i32 @fileno(ptr noundef %5303) #10
  %5305 = call i32 @isatty(i32 noundef %5304) #10
  %5306 = icmp ne i32 %5305, 0
  br i1 %5306, label %5307, label %5324

5307:                                             ; preds = %5302
  %5308 = load i32, ptr %111, align 4, !tbaa !5
  %5309 = call ptr @__errno_location() #11
  store i32 %5308, ptr %5309, align 4, !tbaa !5
  %5310 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5311 = load i32, ptr @test_count, align 4, !tbaa !5
  %5312 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5313 = load i32, ptr %5312, align 4, !tbaa !5
  %5314 = call ptr @s2n_strerror(i32 noundef %5313, ptr noundef @.str.3)
  %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_debug(i32 noundef %5316, ptr noundef @.str.3)
  %5318 = call ptr @__errno_location() #11
  %5319 = load i32, ptr %5318, align 4, !tbaa !5
  %5320 = call ptr @strerror(i32 noundef %5319) #10
  %5321 = call ptr @__errno_location() #11
  %5322 = load i32, ptr %5321, align 4, !tbaa !5
  %5323 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5310, ptr noundef @.str, i32 noundef %5311, ptr noundef @.str.84, ptr noundef @.str.2, i32 noundef 544, ptr noundef %5314, ptr noundef %5317, ptr noundef %5320, i32 noundef %5322) #10
  br label %5341

5324:                                             ; preds = %5302, %5295
  %5325 = load i32, ptr %111, align 4, !tbaa !5
  %5326 = call ptr @__errno_location() #11
  store i32 %5325, ptr %5326, align 4, !tbaa !5
  %5327 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5328 = load i32, ptr @test_count, align 4, !tbaa !5
  %5329 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5330 = load i32, ptr %5329, align 4, !tbaa !5
  %5331 = call ptr @s2n_strerror(i32 noundef %5330, ptr noundef @.str.3)
  %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_debug(i32 noundef %5333, ptr noundef @.str.3)
  %5335 = call ptr @__errno_location() #11
  %5336 = load i32, ptr %5335, align 4, !tbaa !5
  %5337 = call ptr @strerror(i32 noundef %5336) #10
  %5338 = call ptr @__errno_location() #11
  %5339 = load i32, ptr %5338, align 4, !tbaa !5
  %5340 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5327, ptr noundef @.str.4, i32 noundef %5328, ptr noundef @.str.84, ptr noundef @.str.2, i32 noundef 544, ptr noundef %5331, ptr noundef %5334, ptr noundef %5337, i32 noundef %5339) #10
  br label %5341

5341:                                             ; preds = %5324, %5307
  call void @llvm.lifetime.end.p0(i64 4, ptr %111) #10
  br label %5342

5342:                                             ; preds = %5341
  br label %5343

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

5344:                                             ; No predecessors!
  br label %5345

5345:                                             ; preds = %5344
  br label %5346

5346:                                             ; preds = %5345, %5287
  br label %5347

5347:                                             ; preds = %5346
  br label %5348

5348:                                             ; preds = %5347
  call void @llvm.lifetime.start.p0(i64 8, ptr %112) #10
  %5349 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %5349, ptr %112, align 8, !tbaa !9
  br label %5350

5350:                                             ; preds = %5348
  %5351 = load i32, ptr @test_count, align 4, !tbaa !5
  %5352 = add nsw i32 %5351, 1
  store i32 %5352, ptr @test_count, align 4, !tbaa !5
  %5353 = load ptr, ptr %112, align 8, !tbaa !9
  %5354 = icmp eq ptr %5353, null
  br i1 %5354, label %5355, label %5408

5355:                                             ; preds = %5350
  br label %5356

5356:                                             ; preds = %5355
  br label %5357

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

5364:                                             ; preds = %5357
  %5365 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5366 = call i32 @fileno(ptr noundef %5365) #10
  %5367 = call i32 @isatty(i32 noundef %5366) #10
  %5368 = icmp ne i32 %5367, 0
  br i1 %5368, label %5369, label %5386

5369:                                             ; preds = %5364
  %5370 = load i32, ptr %113, align 4, !tbaa !5
  %5371 = call ptr @__errno_location() #11
  store i32 %5370, ptr %5371, align 4, !tbaa !5
  %5372 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5373 = load i32, ptr @test_count, align 4, !tbaa !5
  %5374 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5375 = load i32, ptr %5374, align 4, !tbaa !5
  %5376 = call ptr @s2n_strerror(i32 noundef %5375, ptr noundef @.str.3)
  %5377 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5378 = load i32, ptr %5377, align 4, !tbaa !5
  %5379 = call ptr @s2n_strerror_debug(i32 noundef %5378, ptr noundef @.str.3)
  %5380 = call ptr @__errno_location() #11
  %5381 = load i32, ptr %5380, align 4, !tbaa !5
  %5382 = call ptr @strerror(i32 noundef %5381) #10
  %5383 = call ptr @__errno_location() #11
  %5384 = load i32, ptr %5383, align 4, !tbaa !5
  %5385 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5372, ptr noundef @.str, i32 noundef %5373, ptr noundef @.str.85, ptr noundef @.str.2, i32 noundef 548, ptr noundef %5376, ptr noundef %5379, ptr noundef %5382, i32 noundef %5384) #10
  br label %5403

5386:                                             ; preds = %5364, %5357
  %5387 = load i32, ptr %113, align 4, !tbaa !5
  %5388 = call ptr @__errno_location() #11
  store i32 %5387, ptr %5388, align 4, !tbaa !5
  %5389 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5390 = load i32, ptr @test_count, align 4, !tbaa !5
  %5391 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5392 = load i32, ptr %5391, align 4, !tbaa !5
  %5393 = call ptr @s2n_strerror(i32 noundef %5392, ptr noundef @.str.3)
  %5394 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5395 = load i32, ptr %5394, align 4, !tbaa !5
  %5396 = call ptr @s2n_strerror_debug(i32 noundef %5395, ptr noundef @.str.3)
  %5397 = call ptr @__errno_location() #11
  %5398 = load i32, ptr %5397, align 4, !tbaa !5
  %5399 = call ptr @strerror(i32 noundef %5398) #10
  %5400 = call ptr @__errno_location() #11
  %5401 = load i32, ptr %5400, align 4, !tbaa !5
  %5402 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5389, ptr noundef @.str.4, i32 noundef %5390, ptr noundef @.str.85, ptr noundef @.str.2, i32 noundef 548, ptr noundef %5393, ptr noundef %5396, ptr noundef %5399, i32 noundef %5401) #10
  br label %5403

5403:                                             ; preds = %5386, %5369
  call void @llvm.lifetime.end.p0(i64 4, ptr %113) #10
  br label %5404

5404:                                             ; preds = %5403
  br label %5405

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

5406:                                             ; No predecessors!
  br label %5407

5407:                                             ; preds = %5406
  br label %5408

5408:                                             ; preds = %5407, %5350
  br label %5409

5409:                                             ; preds = %5408
  br label %5410

5410:                                             ; preds = %5409
  br label %5411

5411:                                             ; preds = %5410
  %5412 = load i32, ptr @test_count, align 4, !tbaa !5
  %5413 = add nsw i32 %5412, 1
  store i32 %5413, ptr @test_count, align 4, !tbaa !5
  %5414 = load ptr, ptr %112, align 8, !tbaa !9
  %5415 = load ptr, ptr %102, align 8, !tbaa !9
  %5416 = call i32 @s2n_connection_set_config(ptr noundef %5414, ptr noundef %5415)
  %5417 = icmp eq i32 %5416, -1
  br i1 %5417, label %5418, label %5471

5418:                                             ; preds = %5411
  br label %5419

5419:                                             ; preds = %5418
  br label %5420

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

5427:                                             ; preds = %5420
  %5428 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5429 = call i32 @fileno(ptr noundef %5428) #10
  %5430 = call i32 @isatty(i32 noundef %5429) #10
  %5431 = icmp ne i32 %5430, 0
  br i1 %5431, label %5432, label %5449

5432:                                             ; preds = %5427
  %5433 = load i32, ptr %114, align 4, !tbaa !5
  %5434 = call ptr @__errno_location() #11
  store i32 %5433, ptr %5434, align 4, !tbaa !5
  %5435 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5436 = load i32, ptr @test_count, align 4, !tbaa !5
  %5437 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5438 = load i32, ptr %5437, align 4, !tbaa !5
  %5439 = call ptr @s2n_strerror(i32 noundef %5438, ptr noundef @.str.3)
  %5440 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5441 = load i32, ptr %5440, align 4, !tbaa !5
  %5442 = call ptr @s2n_strerror_debug(i32 noundef %5441, ptr noundef @.str.3)
  %5443 = call ptr @__errno_location() #11
  %5444 = load i32, ptr %5443, align 4, !tbaa !5
  %5445 = call ptr @strerror(i32 noundef %5444) #10
  %5446 = call ptr @__errno_location() #11
  %5447 = load i32, ptr %5446, align 4, !tbaa !5
  %5448 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5435, ptr noundef @.str, i32 noundef %5436, ptr noundef @.str.86, ptr noundef @.str.2, i32 noundef 549, ptr noundef %5439, ptr noundef %5442, ptr noundef %5445, i32 noundef %5447) #10
  br label %5466

5449:                                             ; preds = %5427, %5420
  %5450 = load i32, ptr %114, align 4, !tbaa !5
  %5451 = call ptr @__errno_location() #11
  store i32 %5450, ptr %5451, align 4, !tbaa !5
  %5452 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5453 = load i32, ptr @test_count, align 4, !tbaa !5
  %5454 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5455 = load i32, ptr %5454, align 4, !tbaa !5
  %5456 = call ptr @s2n_strerror(i32 noundef %5455, ptr noundef @.str.3)
  %5457 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5458 = load i32, ptr %5457, align 4, !tbaa !5
  %5459 = call ptr @s2n_strerror_debug(i32 noundef %5458, ptr noundef @.str.3)
  %5460 = call ptr @__errno_location() #11
  %5461 = load i32, ptr %5460, align 4, !tbaa !5
  %5462 = call ptr @strerror(i32 noundef %5461) #10
  %5463 = call ptr @__errno_location() #11
  %5464 = load i32, ptr %5463, align 4, !tbaa !5
  %5465 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5452, ptr noundef @.str.4, i32 noundef %5453, ptr noundef @.str.86, ptr noundef @.str.2, i32 noundef 549, ptr noundef %5456, ptr noundef %5459, ptr noundef %5462, i32 noundef %5464) #10
  br label %5466

5466:                                             ; preds = %5449, %5432
  call void @llvm.lifetime.end.p0(i64 4, ptr %114) #10
  br label %5467

5467:                                             ; preds = %5466
  br label %5468

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

5469:                                             ; No predecessors!
  br label %5470

5470:                                             ; preds = %5469
  br label %5471

5471:                                             ; preds = %5470, %5411
  br label %5472

5472:                                             ; preds = %5471
  br label %5473

5473:                                             ; preds = %5472
  call void @llvm.lifetime.start.p0(i64 8, ptr %115) #10
  %5474 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %5474, ptr %115, align 8, !tbaa !9
  br label %5475

5475:                                             ; preds = %5473
  %5476 = load i32, ptr @test_count, align 4, !tbaa !5
  %5477 = add nsw i32 %5476, 1
  store i32 %5477, ptr @test_count, align 4, !tbaa !5
  %5478 = load ptr, ptr %115, align 8, !tbaa !9
  %5479 = icmp eq ptr %5478, null
  br i1 %5479, label %5480, label %5533

5480:                                             ; preds = %5475
  br label %5481

5481:                                             ; preds = %5480
  br label %5482

5482:                                             ; preds = %5481
  call void @llvm.lifetime.start.p0(i64 4, ptr %116) #10
  %5483 = call ptr @__errno_location() #11
  %5484 = load i32, ptr %5483, align 4, !tbaa !5
  store i32 %5484, ptr %116, align 4, !tbaa !5
  %5485 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5486 = call i32 @s2n_print_stacktrace(ptr noundef %5485)
  %5487 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5488 = trunc i8 %5487 to i1
  br i1 %5488, label %5489, label %5511

5489:                                             ; preds = %5482
  %5490 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5491 = call i32 @fileno(ptr noundef %5490) #10
  %5492 = call i32 @isatty(i32 noundef %5491) #10
  %5493 = icmp ne i32 %5492, 0
  br i1 %5493, label %5494, label %5511

5494:                                             ; preds = %5489
  %5495 = load i32, ptr %116, align 4, !tbaa !5
  %5496 = call ptr @__errno_location() #11
  store i32 %5495, ptr %5496, align 4, !tbaa !5
  %5497 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5498 = load i32, ptr @test_count, align 4, !tbaa !5
  %5499 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5500 = load i32, ptr %5499, align 4, !tbaa !5
  %5501 = call ptr @s2n_strerror(i32 noundef %5500, ptr noundef @.str.3)
  %5502 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5503 = load i32, ptr %5502, align 4, !tbaa !5
  %5504 = call ptr @s2n_strerror_debug(i32 noundef %5503, ptr noundef @.str.3)
  %5505 = call ptr @__errno_location() #11
  %5506 = load i32, ptr %5505, align 4, !tbaa !5
  %5507 = call ptr @strerror(i32 noundef %5506) #10
  %5508 = call ptr @__errno_location() #11
  %5509 = load i32, ptr %5508, align 4, !tbaa !5
  %5510 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5497, ptr noundef @.str, i32 noundef %5498, ptr noundef @.str.87, ptr noundef @.str.2, i32 noundef 552, ptr noundef %5501, ptr noundef %5504, ptr noundef %5507, i32 noundef %5509) #10
  br label %5528

5511:                                             ; preds = %5489, %5482
  %5512 = load i32, ptr %116, align 4, !tbaa !5
  %5513 = call ptr @__errno_location() #11
  store i32 %5512, ptr %5513, align 4, !tbaa !5
  %5514 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5515 = load i32, ptr @test_count, align 4, !tbaa !5
  %5516 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5517 = load i32, ptr %5516, align 4, !tbaa !5
  %5518 = call ptr @s2n_strerror(i32 noundef %5517, ptr noundef @.str.3)
  %5519 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5520 = load i32, ptr %5519, align 4, !tbaa !5
  %5521 = call ptr @s2n_strerror_debug(i32 noundef %5520, ptr noundef @.str.3)
  %5522 = call ptr @__errno_location() #11
  %5523 = load i32, ptr %5522, align 4, !tbaa !5
  %5524 = call ptr @strerror(i32 noundef %5523) #10
  %5525 = call ptr @__errno_location() #11
  %5526 = load i32, ptr %5525, align 4, !tbaa !5
  %5527 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5514, ptr noundef @.str.4, i32 noundef %5515, ptr noundef @.str.87, ptr noundef @.str.2, i32 noundef 552, ptr noundef %5518, ptr noundef %5521, ptr noundef %5524, i32 noundef %5526) #10
  br label %5528

5528:                                             ; preds = %5511, %5494
  call void @llvm.lifetime.end.p0(i64 4, ptr %116) #10
  br label %5529

5529:                                             ; preds = %5528
  br label %5530

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

5531:                                             ; No predecessors!
  br label %5532

5532:                                             ; preds = %5531
  br label %5533

5533:                                             ; preds = %5532, %5475
  br label %5534

5534:                                             ; preds = %5533
  br label %5535

5535:                                             ; preds = %5534
  br label %5536

5536:                                             ; preds = %5535
  %5537 = load i32, ptr @test_count, align 4, !tbaa !5
  %5538 = add nsw i32 %5537, 1
  store i32 %5538, ptr @test_count, align 4, !tbaa !5
  %5539 = load ptr, ptr %115, align 8, !tbaa !9
  %5540 = load ptr, ptr %101, align 8, !tbaa !9
  %5541 = call i32 @s2n_connection_set_config(ptr noundef %5539, ptr noundef %5540)
  %5542 = icmp eq i32 %5541, -1
  br i1 %5542, label %5543, label %5596

5543:                                             ; preds = %5536
  br label %5544

5544:                                             ; preds = %5543
  br label %5545

5545:                                             ; preds = %5544
  call void @llvm.lifetime.start.p0(i64 4, ptr %117) #10
  %5546 = call ptr @__errno_location() #11
  %5547 = load i32, ptr %5546, align 4, !tbaa !5
  store i32 %5547, ptr %117, align 4, !tbaa !5
  %5548 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5549 = call i32 @s2n_print_stacktrace(ptr noundef %5548)
  %5550 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5551 = trunc i8 %5550 to i1
  br i1 %5551, label %5552, label %5574

5552:                                             ; preds = %5545
  %5553 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5554 = call i32 @fileno(ptr noundef %5553) #10
  %5555 = call i32 @isatty(i32 noundef %5554) #10
  %5556 = icmp ne i32 %5555, 0
  br i1 %5556, label %5557, label %5574

5557:                                             ; preds = %5552
  %5558 = load i32, ptr %117, align 4, !tbaa !5
  %5559 = call ptr @__errno_location() #11
  store i32 %5558, ptr %5559, align 4, !tbaa !5
  %5560 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5561 = load i32, ptr @test_count, align 4, !tbaa !5
  %5562 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5563 = load i32, ptr %5562, align 4, !tbaa !5
  %5564 = call ptr @s2n_strerror(i32 noundef %5563, ptr noundef @.str.3)
  %5565 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5566 = load i32, ptr %5565, align 4, !tbaa !5
  %5567 = call ptr @s2n_strerror_debug(i32 noundef %5566, ptr noundef @.str.3)
  %5568 = call ptr @__errno_location() #11
  %5569 = load i32, ptr %5568, align 4, !tbaa !5
  %5570 = call ptr @strerror(i32 noundef %5569) #10
  %5571 = call ptr @__errno_location() #11
  %5572 = load i32, ptr %5571, align 4, !tbaa !5
  %5573 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5560, ptr noundef @.str, i32 noundef %5561, ptr noundef @.str.88, ptr noundef @.str.2, i32 noundef 553, ptr noundef %5564, ptr noundef %5567, ptr noundef %5570, i32 noundef %5572) #10
  br label %5591

5574:                                             ; preds = %5552, %5545
  %5575 = load i32, ptr %117, align 4, !tbaa !5
  %5576 = call ptr @__errno_location() #11
  store i32 %5575, ptr %5576, align 4, !tbaa !5
  %5577 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5578 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %5580, ptr noundef @.str.3)
  %5582 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5583 = load i32, ptr %5582, align 4, !tbaa !5
  %5584 = call ptr @s2n_strerror_debug(i32 noundef %5583, ptr noundef @.str.3)
  %5585 = call ptr @__errno_location() #11
  %5586 = load i32, ptr %5585, align 4, !tbaa !5
  %5587 = call ptr @strerror(i32 noundef %5586) #10
  %5588 = call ptr @__errno_location() #11
  %5589 = load i32, ptr %5588, align 4, !tbaa !5
  %5590 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5577, ptr noundef @.str.4, i32 noundef %5578, ptr noundef @.str.88, ptr noundef @.str.2, i32 noundef 553, ptr noundef %5581, ptr noundef %5584, ptr noundef %5587, i32 noundef %5589) #10
  br label %5591

5591:                                             ; preds = %5574, %5557
  call void @llvm.lifetime.end.p0(i64 4, ptr %117) #10
  br label %5592

5592:                                             ; preds = %5591
  br label %5593

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

5594:                                             ; No predecessors!
  br label %5595

5595:                                             ; preds = %5594
  br label %5596

5596:                                             ; preds = %5595, %5536
  br label %5597

5597:                                             ; preds = %5596
  br label %5598

5598:                                             ; preds = %5597
  call void @llvm.lifetime.start.p0(i64 8, ptr %118) #10
  br label %5599

5599:                                             ; preds = %5598
  %5600 = load i32, ptr @test_count, align 4, !tbaa !5
  %5601 = add nsw i32 %5600, 1
  store i32 %5601, ptr @test_count, align 4, !tbaa !5
  %5602 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef %118)
  %5603 = icmp eq i32 %5602, -1
  br i1 %5603, label %5604, label %5657

5604:                                             ; preds = %5599
  br label %5605

5605:                                             ; preds = %5604
  br label %5606

5606:                                             ; preds = %5605
  call void @llvm.lifetime.start.p0(i64 4, ptr %119) #10
  %5607 = call ptr @__errno_location() #11
  %5608 = load i32, ptr %5607, align 4, !tbaa !5
  store i32 %5608, ptr %119, align 4, !tbaa !5
  %5609 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5610 = call i32 @s2n_print_stacktrace(ptr noundef %5609)
  %5611 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5612 = trunc i8 %5611 to i1
  br i1 %5612, label %5613, label %5635

5613:                                             ; preds = %5606
  %5614 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5615 = call i32 @fileno(ptr noundef %5614) #10
  %5616 = call i32 @isatty(i32 noundef %5615) #10
  %5617 = icmp ne i32 %5616, 0
  br i1 %5617, label %5618, label %5635

5618:                                             ; preds = %5613
  %5619 = load i32, ptr %119, align 4, !tbaa !5
  %5620 = call ptr @__errno_location() #11
  store i32 %5619, ptr %5620, align 4, !tbaa !5
  %5621 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5622 = load i32, ptr @test_count, align 4, !tbaa !5
  %5623 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5624 = load i32, ptr %5623, align 4, !tbaa !5
  %5625 = call ptr @s2n_strerror(i32 noundef %5624, ptr noundef @.str.3)
  %5626 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5627 = load i32, ptr %5626, align 4, !tbaa !5
  %5628 = call ptr @s2n_strerror_debug(i32 noundef %5627, ptr noundef @.str.3)
  %5629 = call ptr @__errno_location() #11
  %5630 = load i32, ptr %5629, align 4, !tbaa !5
  %5631 = call ptr @strerror(i32 noundef %5630) #10
  %5632 = call ptr @__errno_location() #11
  %5633 = load i32, ptr %5632, align 4, !tbaa !5
  %5634 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5621, ptr noundef @.str, i32 noundef %5622, ptr noundef @.str.89, ptr noundef @.str.2, i32 noundef 557, ptr noundef %5625, ptr noundef %5628, ptr noundef %5631, i32 noundef %5633) #10
  br label %5652

5635:                                             ; preds = %5613, %5606
  %5636 = load i32, ptr %119, align 4, !tbaa !5
  %5637 = call ptr @__errno_location() #11
  store i32 %5636, ptr %5637, align 4, !tbaa !5
  %5638 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5639 = load i32, ptr @test_count, align 4, !tbaa !5
  %5640 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5641 = load i32, ptr %5640, align 4, !tbaa !5
  %5642 = call ptr @s2n_strerror(i32 noundef %5641, ptr noundef @.str.3)
  %5643 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5644 = load i32, ptr %5643, align 4, !tbaa !5
  %5645 = call ptr @s2n_strerror_debug(i32 noundef %5644, ptr noundef @.str.3)
  %5646 = call ptr @__errno_location() #11
  %5647 = load i32, ptr %5646, align 4, !tbaa !5
  %5648 = call ptr @strerror(i32 noundef %5647) #10
  %5649 = call ptr @__errno_location() #11
  %5650 = load i32, ptr %5649, align 4, !tbaa !5
  %5651 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5638, ptr noundef @.str.4, i32 noundef %5639, ptr noundef @.str.89, ptr noundef @.str.2, i32 noundef 557, ptr noundef %5642, ptr noundef %5645, ptr noundef %5648, i32 noundef %5650) #10
  br label %5652

5652:                                             ; preds = %5635, %5618
  call void @llvm.lifetime.end.p0(i64 4, ptr %119) #10
  br label %5653

5653:                                             ; preds = %5652
  br label %5654

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

5655:                                             ; No predecessors!
  br label %5656

5656:                                             ; preds = %5655
  br label %5657

5657:                                             ; preds = %5656, %5599
  br label %5658

5658:                                             ; preds = %5657
  br label %5659

5659:                                             ; preds = %5658
  br label %5660

5660:                                             ; preds = %5659
  %5661 = load i32, ptr @test_count, align 4, !tbaa !5
  %5662 = add nsw i32 %5661, 1
  store i32 %5662, ptr @test_count, align 4, !tbaa !5
  %5663 = load ptr, ptr %112, align 8, !tbaa !9
  %5664 = call i32 @s2n_connection_set_io_pair(ptr noundef %5663, ptr noundef %118)
  %5665 = icmp eq i32 %5664, -1
  br i1 %5665, label %5666, label %5719

5666:                                             ; preds = %5660
  br label %5667

5667:                                             ; preds = %5666
  br label %5668

5668:                                             ; preds = %5667
  call void @llvm.lifetime.start.p0(i64 4, ptr %120) #10
  %5669 = call ptr @__errno_location() #11
  %5670 = load i32, ptr %5669, align 4, !tbaa !5
  store i32 %5670, ptr %120, align 4, !tbaa !5
  %5671 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5672 = call i32 @s2n_print_stacktrace(ptr noundef %5671)
  %5673 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5674 = trunc i8 %5673 to i1
  br i1 %5674, label %5675, label %5697

5675:                                             ; preds = %5668
  %5676 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5677 = call i32 @fileno(ptr noundef %5676) #10
  %5678 = call i32 @isatty(i32 noundef %5677) #10
  %5679 = icmp ne i32 %5678, 0
  br i1 %5679, label %5680, label %5697

5680:                                             ; preds = %5675
  %5681 = load i32, ptr %120, align 4, !tbaa !5
  %5682 = call ptr @__errno_location() #11
  store i32 %5681, ptr %5682, align 4, !tbaa !5
  %5683 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5684 = load i32, ptr @test_count, align 4, !tbaa !5
  %5685 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5686 = load i32, ptr %5685, align 4, !tbaa !5
  %5687 = call ptr @s2n_strerror(i32 noundef %5686, ptr noundef @.str.3)
  %5688 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5689 = load i32, ptr %5688, align 4, !tbaa !5
  %5690 = call ptr @s2n_strerror_debug(i32 noundef %5689, ptr noundef @.str.3)
  %5691 = call ptr @__errno_location() #11
  %5692 = load i32, ptr %5691, align 4, !tbaa !5
  %5693 = call ptr @strerror(i32 noundef %5692) #10
  %5694 = call ptr @__errno_location() #11
  %5695 = load i32, ptr %5694, align 4, !tbaa !5
  %5696 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5683, ptr noundef @.str, i32 noundef %5684, ptr noundef @.str.90, ptr noundef @.str.2, i32 noundef 558, ptr noundef %5687, ptr noundef %5690, ptr noundef %5693, i32 noundef %5695) #10
  br label %5714

5697:                                             ; preds = %5675, %5668
  %5698 = load i32, ptr %120, align 4, !tbaa !5
  %5699 = call ptr @__errno_location() #11
  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.3)
  %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.3)
  %5708 = call ptr @__errno_location() #11
  %5709 = load i32, ptr %5708, align 4, !tbaa !5
  %5710 = call ptr @strerror(i32 noundef %5709) #10
  %5711 = call ptr @__errno_location() #11
  %5712 = load i32, ptr %5711, align 4, !tbaa !5
  %5713 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5700, ptr noundef @.str.4, i32 noundef %5701, ptr noundef @.str.90, ptr noundef @.str.2, i32 noundef 558, ptr noundef %5704, ptr noundef %5707, ptr noundef %5710, i32 noundef %5712) #10
  br label %5714

5714:                                             ; preds = %5697, %5680
  call void @llvm.lifetime.end.p0(i64 4, ptr %120) #10
  br label %5715

5715:                                             ; preds = %5714
  br label %5716

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

5717:                                             ; No predecessors!
  br label %5718

5718:                                             ; preds = %5717
  br label %5719

5719:                                             ; preds = %5718, %5660
  br label %5720

5720:                                             ; preds = %5719
  br label %5721

5721:                                             ; preds = %5720
  br label %5722

5722:                                             ; preds = %5721
  %5723 = load i32, ptr @test_count, align 4, !tbaa !5
  %5724 = add nsw i32 %5723, 1
  store i32 %5724, ptr @test_count, align 4, !tbaa !5
  %5725 = load ptr, ptr %115, align 8, !tbaa !9
  %5726 = call i32 @s2n_connection_set_io_pair(ptr noundef %5725, ptr noundef %118)
  %5727 = icmp eq i32 %5726, -1
  br i1 %5727, label %5728, label %5781

5728:                                             ; preds = %5722
  br label %5729

5729:                                             ; preds = %5728
  br label %5730

5730:                                             ; preds = %5729
  call void @llvm.lifetime.start.p0(i64 4, ptr %121) #10
  %5731 = call ptr @__errno_location() #11
  %5732 = load i32, ptr %5731, align 4, !tbaa !5
  store i32 %5732, ptr %121, align 4, !tbaa !5
  %5733 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5734 = call i32 @s2n_print_stacktrace(ptr noundef %5733)
  %5735 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5736 = trunc i8 %5735 to i1
  br i1 %5736, label %5737, label %5759

5737:                                             ; preds = %5730
  %5738 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5739 = call i32 @fileno(ptr noundef %5738) #10
  %5740 = call i32 @isatty(i32 noundef %5739) #10
  %5741 = icmp ne i32 %5740, 0
  br i1 %5741, label %5742, label %5759

5742:                                             ; preds = %5737
  %5743 = load i32, ptr %121, align 4, !tbaa !5
  %5744 = call ptr @__errno_location() #11
  store i32 %5743, ptr %5744, align 4, !tbaa !5
  %5745 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5746 = load i32, ptr @test_count, align 4, !tbaa !5
  %5747 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5748 = load i32, ptr %5747, align 4, !tbaa !5
  %5749 = call ptr @s2n_strerror(i32 noundef %5748, ptr noundef @.str.3)
  %5750 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5751 = load i32, ptr %5750, align 4, !tbaa !5
  %5752 = call ptr @s2n_strerror_debug(i32 noundef %5751, ptr noundef @.str.3)
  %5753 = call ptr @__errno_location() #11
  %5754 = load i32, ptr %5753, align 4, !tbaa !5
  %5755 = call ptr @strerror(i32 noundef %5754) #10
  %5756 = call ptr @__errno_location() #11
  %5757 = load i32, ptr %5756, align 4, !tbaa !5
  %5758 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5745, ptr noundef @.str, i32 noundef %5746, ptr noundef @.str.91, ptr noundef @.str.2, i32 noundef 559, ptr noundef %5749, ptr noundef %5752, ptr noundef %5755, i32 noundef %5757) #10
  br label %5776

5759:                                             ; preds = %5737, %5730
  %5760 = load i32, ptr %121, align 4, !tbaa !5
  %5761 = call ptr @__errno_location() #11
  store i32 %5760, ptr %5761, align 4, !tbaa !5
  %5762 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5763 = load i32, ptr @test_count, align 4, !tbaa !5
  %5764 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5765 = load i32, ptr %5764, align 4, !tbaa !5
  %5766 = call ptr @s2n_strerror(i32 noundef %5765, ptr noundef @.str.3)
  %5767 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5768 = load i32, ptr %5767, align 4, !tbaa !5
  %5769 = call ptr @s2n_strerror_debug(i32 noundef %5768, ptr noundef @.str.3)
  %5770 = call ptr @__errno_location() #11
  %5771 = load i32, ptr %5770, align 4, !tbaa !5
  %5772 = call ptr @strerror(i32 noundef %5771) #10
  %5773 = call ptr @__errno_location() #11
  %5774 = load i32, ptr %5773, align 4, !tbaa !5
  %5775 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5762, ptr noundef @.str.4, i32 noundef %5763, ptr noundef @.str.91, ptr noundef @.str.2, i32 noundef 559, ptr noundef %5766, ptr noundef %5769, ptr noundef %5772, i32 noundef %5774) #10
  br label %5776

5776:                                             ; preds = %5759, %5742
  call void @llvm.lifetime.end.p0(i64 4, ptr %121) #10
  br label %5777

5777:                                             ; preds = %5776
  br label %5778

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

5779:                                             ; No predecessors!
  br label %5780

5780:                                             ; preds = %5779
  br label %5781

5781:                                             ; preds = %5780, %5722
  br label %5782

5782:                                             ; preds = %5781
  br label %5783

5783:                                             ; preds = %5782
  br label %5784

5784:                                             ; preds = %5783
  %5785 = load i32, ptr @test_count, align 4, !tbaa !5
  %5786 = add nsw i32 %5785, 1
  store i32 %5786, ptr @test_count, align 4, !tbaa !5
  %5787 = load ptr, ptr %115, align 8, !tbaa !9
  %5788 = load ptr, ptr %112, align 8, !tbaa !9
  %5789 = call i32 @try_handshake(ptr noundef %5787, ptr noundef %5788, ptr noundef @async_handler_sign_with_different_pkey_and_apply)
  %5790 = icmp eq i32 %5789, -1
  br i1 %5790, label %5791, label %5844

5791:                                             ; preds = %5784
  br label %5792

5792:                                             ; preds = %5791
  br label %5793

5793:                                             ; preds = %5792
  call void @llvm.lifetime.start.p0(i64 4, ptr %122) #10
  %5794 = call ptr @__errno_location() #11
  %5795 = load i32, ptr %5794, align 4, !tbaa !5
  store i32 %5795, ptr %122, align 4, !tbaa !5
  %5796 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5797 = call i32 @s2n_print_stacktrace(ptr noundef %5796)
  %5798 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5799 = trunc i8 %5798 to i1
  br i1 %5799, label %5800, label %5822

5800:                                             ; preds = %5793
  %5801 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5802 = call i32 @fileno(ptr noundef %5801) #10
  %5803 = call i32 @isatty(i32 noundef %5802) #10
  %5804 = icmp ne i32 %5803, 0
  br i1 %5804, label %5805, label %5822

5805:                                             ; preds = %5800
  %5806 = load i32, ptr %122, align 4, !tbaa !5
  %5807 = call ptr @__errno_location() #11
  store i32 %5806, ptr %5807, align 4, !tbaa !5
  %5808 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5809 = load i32, ptr @test_count, align 4, !tbaa !5
  %5810 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5811 = load i32, ptr %5810, align 4, !tbaa !5
  %5812 = call ptr @s2n_strerror(i32 noundef %5811, ptr noundef @.str.3)
  %5813 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5814 = load i32, ptr %5813, align 4, !tbaa !5
  %5815 = call ptr @s2n_strerror_debug(i32 noundef %5814, ptr noundef @.str.3)
  %5816 = call ptr @__errno_location() #11
  %5817 = load i32, ptr %5816, align 4, !tbaa !5
  %5818 = call ptr @strerror(i32 noundef %5817) #10
  %5819 = call ptr @__errno_location() #11
  %5820 = load i32, ptr %5819, align 4, !tbaa !5
  %5821 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5808, ptr noundef @.str, i32 noundef %5809, ptr noundef @.str.103, ptr noundef @.str.2, i32 noundef 561, ptr noundef %5812, ptr noundef %5815, ptr noundef %5818, i32 noundef %5820) #10
  br label %5839

5822:                                             ; preds = %5800, %5793
  %5823 = load i32, ptr %122, align 4, !tbaa !5
  %5824 = call ptr @__errno_location() #11
  store i32 %5823, ptr %5824, align 4, !tbaa !5
  %5825 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5826 = load i32, ptr @test_count, align 4, !tbaa !5
  %5827 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5828 = load i32, ptr %5827, align 4, !tbaa !5
  %5829 = call ptr @s2n_strerror(i32 noundef %5828, ptr noundef @.str.3)
  %5830 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5831 = load i32, ptr %5830, align 4, !tbaa !5
  %5832 = call ptr @s2n_strerror_debug(i32 noundef %5831, ptr noundef @.str.3)
  %5833 = call ptr @__errno_location() #11
  %5834 = load i32, ptr %5833, align 4, !tbaa !5
  %5835 = call ptr @strerror(i32 noundef %5834) #10
  %5836 = call ptr @__errno_location() #11
  %5837 = load i32, ptr %5836, align 4, !tbaa !5
  %5838 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5825, ptr noundef @.str.4, i32 noundef %5826, ptr noundef @.str.103, ptr noundef @.str.2, i32 noundef 561, ptr noundef %5829, ptr noundef %5832, ptr noundef %5835, i32 noundef %5837) #10
  br label %5839

5839:                                             ; preds = %5822, %5805
  call void @llvm.lifetime.end.p0(i64 4, ptr %122) #10
  br label %5840

5840:                                             ; preds = %5839
  br label %5841

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

5842:                                             ; No predecessors!
  br label %5843

5843:                                             ; preds = %5842
  br label %5844

5844:                                             ; preds = %5843, %5784
  br label %5845

5845:                                             ; preds = %5844
  br label %5846

5846:                                             ; preds = %5845
  br label %5847

5847:                                             ; preds = %5846
  %5848 = load i32, ptr @test_count, align 4, !tbaa !5
  %5849 = add nsw i32 %5848, 1
  store i32 %5849, ptr @test_count, align 4, !tbaa !5
  %5850 = load ptr, ptr %115, align 8, !tbaa !9
  %5851 = call i32 @s2n_connection_free(ptr noundef %5850)
  %5852 = icmp eq i32 %5851, -1
  br i1 %5852, label %5853, label %5906

5853:                                             ; preds = %5847
  br label %5854

5854:                                             ; preds = %5853
  br label %5855

5855:                                             ; preds = %5854
  call void @llvm.lifetime.start.p0(i64 4, ptr %123) #10
  %5856 = call ptr @__errno_location() #11
  %5857 = load i32, ptr %5856, align 4, !tbaa !5
  store i32 %5857, ptr %123, align 4, !tbaa !5
  %5858 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5859 = call i32 @s2n_print_stacktrace(ptr noundef %5858)
  %5860 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5861 = trunc i8 %5860 to i1
  br i1 %5861, label %5862, label %5884

5862:                                             ; preds = %5855
  %5863 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5864 = call i32 @fileno(ptr noundef %5863) #10
  %5865 = call i32 @isatty(i32 noundef %5864) #10
  %5866 = icmp ne i32 %5865, 0
  br i1 %5866, label %5867, label %5884

5867:                                             ; preds = %5862
  %5868 = load i32, ptr %123, align 4, !tbaa !5
  %5869 = call ptr @__errno_location() #11
  store i32 %5868, ptr %5869, align 4, !tbaa !5
  %5870 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5871 = load i32, ptr @test_count, align 4, !tbaa !5
  %5872 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5873 = load i32, ptr %5872, align 4, !tbaa !5
  %5874 = call ptr @s2n_strerror(i32 noundef %5873, ptr noundef @.str.3)
  %5875 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5876 = load i32, ptr %5875, align 4, !tbaa !5
  %5877 = call ptr @s2n_strerror_debug(i32 noundef %5876, ptr noundef @.str.3)
  %5878 = call ptr @__errno_location() #11
  %5879 = load i32, ptr %5878, align 4, !tbaa !5
  %5880 = call ptr @strerror(i32 noundef %5879) #10
  %5881 = call ptr @__errno_location() #11
  %5882 = load i32, ptr %5881, align 4, !tbaa !5
  %5883 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5870, ptr noundef @.str, i32 noundef %5871, ptr noundef @.str.93, ptr noundef @.str.2, i32 noundef 564, ptr noundef %5874, ptr noundef %5877, ptr noundef %5880, i32 noundef %5882) #10
  br label %5901

5884:                                             ; preds = %5862, %5855
  %5885 = load i32, ptr %123, align 4, !tbaa !5
  %5886 = call ptr @__errno_location() #11
  store i32 %5885, ptr %5886, align 4, !tbaa !5
  %5887 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5888 = load i32, ptr @test_count, align 4, !tbaa !5
  %5889 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5890 = load i32, ptr %5889, align 4, !tbaa !5
  %5891 = call ptr @s2n_strerror(i32 noundef %5890, ptr noundef @.str.3)
  %5892 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5893 = load i32, ptr %5892, align 4, !tbaa !5
  %5894 = call ptr @s2n_strerror_debug(i32 noundef %5893, ptr noundef @.str.3)
  %5895 = call ptr @__errno_location() #11
  %5896 = load i32, ptr %5895, align 4, !tbaa !5
  %5897 = call ptr @strerror(i32 noundef %5896) #10
  %5898 = call ptr @__errno_location() #11
  %5899 = load i32, ptr %5898, align 4, !tbaa !5
  %5900 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5887, ptr noundef @.str.4, i32 noundef %5888, ptr noundef @.str.93, ptr noundef @.str.2, i32 noundef 564, ptr noundef %5891, ptr noundef %5894, ptr noundef %5897, i32 noundef %5899) #10
  br label %5901

5901:                                             ; preds = %5884, %5867
  call void @llvm.lifetime.end.p0(i64 4, ptr %123) #10
  br label %5902

5902:                                             ; preds = %5901
  br label %5903

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

5904:                                             ; No predecessors!
  br label %5905

5905:                                             ; preds = %5904
  br label %5906

5906:                                             ; preds = %5905, %5847
  br label %5907

5907:                                             ; preds = %5906
  br label %5908

5908:                                             ; preds = %5907
  br label %5909

5909:                                             ; preds = %5908
  %5910 = load i32, ptr @test_count, align 4, !tbaa !5
  %5911 = add nsw i32 %5910, 1
  store i32 %5911, ptr @test_count, align 4, !tbaa !5
  %5912 = load ptr, ptr %112, align 8, !tbaa !9
  %5913 = call i32 @s2n_connection_free(ptr noundef %5912)
  %5914 = icmp eq i32 %5913, -1
  br i1 %5914, label %5915, label %5968

5915:                                             ; preds = %5909
  br label %5916

5916:                                             ; preds = %5915
  br label %5917

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

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

5929:                                             ; preds = %5924
  %5930 = load i32, ptr %124, align 4, !tbaa !5
  %5931 = call ptr @__errno_location() #11
  store i32 %5930, ptr %5931, align 4, !tbaa !5
  %5932 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5933 = load i32, ptr @test_count, align 4, !tbaa !5
  %5934 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5935 = load i32, ptr %5934, align 4, !tbaa !5
  %5936 = call ptr @s2n_strerror(i32 noundef %5935, ptr noundef @.str.3)
  %5937 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5938 = load i32, ptr %5937, align 4, !tbaa !5
  %5939 = call ptr @s2n_strerror_debug(i32 noundef %5938, ptr noundef @.str.3)
  %5940 = call ptr @__errno_location() #11
  %5941 = load i32, ptr %5940, align 4, !tbaa !5
  %5942 = call ptr @strerror(i32 noundef %5941) #10
  %5943 = call ptr @__errno_location() #11
  %5944 = load i32, ptr %5943, align 4, !tbaa !5
  %5945 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5932, ptr noundef @.str, i32 noundef %5933, ptr noundef @.str.94, ptr noundef @.str.2, i32 noundef 565, ptr noundef %5936, ptr noundef %5939, ptr noundef %5942, i32 noundef %5944) #10
  br label %5963

5946:                                             ; preds = %5924, %5917
  %5947 = load i32, ptr %124, align 4, !tbaa !5
  %5948 = call ptr @__errno_location() #11
  store i32 %5947, ptr %5948, align 4, !tbaa !5
  %5949 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5950 = load i32, ptr @test_count, align 4, !tbaa !5
  %5951 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5952 = load i32, ptr %5951, align 4, !tbaa !5
  %5953 = call ptr @s2n_strerror(i32 noundef %5952, ptr noundef @.str.3)
  %5954 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5955 = load i32, ptr %5954, align 4, !tbaa !5
  %5956 = call ptr @s2n_strerror_debug(i32 noundef %5955, ptr noundef @.str.3)
  %5957 = call ptr @__errno_location() #11
  %5958 = load i32, ptr %5957, align 4, !tbaa !5
  %5959 = call ptr @strerror(i32 noundef %5958) #10
  %5960 = call ptr @__errno_location() #11
  %5961 = load i32, ptr %5960, align 4, !tbaa !5
  %5962 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5949, ptr noundef @.str.4, i32 noundef %5950, ptr noundef @.str.94, ptr noundef @.str.2, i32 noundef 565, ptr noundef %5953, ptr noundef %5956, ptr noundef %5959, i32 noundef %5961) #10
  br label %5963

5963:                                             ; preds = %5946, %5929
  call void @llvm.lifetime.end.p0(i64 4, ptr %124) #10
  br label %5964

5964:                                             ; preds = %5963
  br label %5965

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

5966:                                             ; No predecessors!
  br label %5967

5967:                                             ; preds = %5966
  br label %5968

5968:                                             ; preds = %5967, %5909
  br label %5969

5969:                                             ; preds = %5968
  br label %5970

5970:                                             ; preds = %5969
  br label %5971

5971:                                             ; preds = %5970
  %5972 = load i32, ptr @test_count, align 4, !tbaa !5
  %5973 = add nsw i32 %5972, 1
  store i32 %5973, ptr @test_count, align 4, !tbaa !5
  %5974 = call i32 @s2n_io_pair_close(ptr noundef %118)
  %5975 = icmp eq i32 %5974, -1
  br i1 %5975, label %5976, label %6029

5976:                                             ; preds = %5971
  br label %5977

5977:                                             ; preds = %5976
  br label %5978

5978:                                             ; preds = %5977
  call void @llvm.lifetime.start.p0(i64 4, ptr %125) #10
  %5979 = call ptr @__errno_location() #11
  %5980 = load i32, ptr %5979, align 4, !tbaa !5
  store i32 %5980, ptr %125, align 4, !tbaa !5
  %5981 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5982 = call i32 @s2n_print_stacktrace(ptr noundef %5981)
  %5983 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5984 = trunc i8 %5983 to i1
  br i1 %5984, label %5985, label %6007

5985:                                             ; preds = %5978
  %5986 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5987 = call i32 @fileno(ptr noundef %5986) #10
  %5988 = call i32 @isatty(i32 noundef %5987) #10
  %5989 = icmp ne i32 %5988, 0
  br i1 %5989, label %5990, label %6007

5990:                                             ; preds = %5985
  %5991 = load i32, ptr %125, align 4, !tbaa !5
  %5992 = call ptr @__errno_location() #11
  store i32 %5991, ptr %5992, align 4, !tbaa !5
  %5993 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5994 = load i32, ptr @test_count, align 4, !tbaa !5
  %5995 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5996 = load i32, ptr %5995, align 4, !tbaa !5
  %5997 = call ptr @s2n_strerror(i32 noundef %5996, ptr noundef @.str.3)
  %5998 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5999 = load i32, ptr %5998, align 4, !tbaa !5
  %6000 = call ptr @s2n_strerror_debug(i32 noundef %5999, ptr noundef @.str.3)
  %6001 = call ptr @__errno_location() #11
  %6002 = load i32, ptr %6001, align 4, !tbaa !5
  %6003 = call ptr @strerror(i32 noundef %6002) #10
  %6004 = call ptr @__errno_location() #11
  %6005 = load i32, ptr %6004, align 4, !tbaa !5
  %6006 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5993, ptr noundef @.str, i32 noundef %5994, ptr noundef @.str.95, ptr noundef @.str.2, i32 noundef 566, ptr noundef %5997, ptr noundef %6000, ptr noundef %6003, i32 noundef %6005) #10
  br label %6024

6007:                                             ; preds = %5985, %5978
  %6008 = load i32, ptr %125, align 4, !tbaa !5
  %6009 = call ptr @__errno_location() #11
  store i32 %6008, ptr %6009, align 4, !tbaa !5
  %6010 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6011 = load i32, ptr @test_count, align 4, !tbaa !5
  %6012 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6013 = load i32, ptr %6012, align 4, !tbaa !5
  %6014 = call ptr @s2n_strerror(i32 noundef %6013, ptr noundef @.str.3)
  %6015 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6016 = load i32, ptr %6015, align 4, !tbaa !5
  %6017 = call ptr @s2n_strerror_debug(i32 noundef %6016, ptr noundef @.str.3)
  %6018 = call ptr @__errno_location() #11
  %6019 = load i32, ptr %6018, align 4, !tbaa !5
  %6020 = call ptr @strerror(i32 noundef %6019) #10
  %6021 = call ptr @__errno_location() #11
  %6022 = load i32, ptr %6021, align 4, !tbaa !5
  %6023 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6010, ptr noundef @.str.4, i32 noundef %6011, ptr noundef @.str.95, ptr noundef @.str.2, i32 noundef 566, ptr noundef %6014, ptr noundef %6017, ptr noundef %6020, i32 noundef %6022) #10
  br label %6024

6024:                                             ; preds = %6007, %5990
  call void @llvm.lifetime.end.p0(i64 4, ptr %125) #10
  br label %6025

6025:                                             ; preds = %6024
  br label %6026

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

6027:                                             ; No predecessors!
  br label %6028

6028:                                             ; preds = %6027
  br label %6029

6029:                                             ; preds = %6028, %5971
  br label %6030

6030:                                             ; preds = %6029
  br label %6031

6031:                                             ; preds = %6030
  br label %6032

6032:                                             ; preds = %6031
  %6033 = load i32, ptr @test_count, align 4, !tbaa !5
  %6034 = add nsw i32 %6033, 1
  store i32 %6034, ptr @test_count, align 4, !tbaa !5
  %6035 = load ptr, ptr %101, align 8, !tbaa !9
  %6036 = call i32 @s2n_config_free(ptr noundef %6035)
  %6037 = icmp eq i32 %6036, -1
  br i1 %6037, label %6038, label %6091

6038:                                             ; preds = %6032
  br label %6039

6039:                                             ; preds = %6038
  br label %6040

6040:                                             ; preds = %6039
  call void @llvm.lifetime.start.p0(i64 4, ptr %126) #10
  %6041 = call ptr @__errno_location() #11
  %6042 = load i32, ptr %6041, align 4, !tbaa !5
  store i32 %6042, ptr %126, align 4, !tbaa !5
  %6043 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6044 = call i32 @s2n_print_stacktrace(ptr noundef %6043)
  %6045 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6046 = trunc i8 %6045 to i1
  br i1 %6046, label %6047, label %6069

6047:                                             ; preds = %6040
  %6048 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6049 = call i32 @fileno(ptr noundef %6048) #10
  %6050 = call i32 @isatty(i32 noundef %6049) #10
  %6051 = icmp ne i32 %6050, 0
  br i1 %6051, label %6052, label %6069

6052:                                             ; preds = %6047
  %6053 = load i32, ptr %126, align 4, !tbaa !5
  %6054 = call ptr @__errno_location() #11
  store i32 %6053, ptr %6054, align 4, !tbaa !5
  %6055 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6056 = load i32, ptr @test_count, align 4, !tbaa !5
  %6057 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6058 = load i32, ptr %6057, align 4, !tbaa !5
  %6059 = call ptr @s2n_strerror(i32 noundef %6058, ptr noundef @.str.3)
  %6060 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6061 = load i32, ptr %6060, align 4, !tbaa !5
  %6062 = call ptr @s2n_strerror_debug(i32 noundef %6061, ptr noundef @.str.3)
  %6063 = call ptr @__errno_location() #11
  %6064 = load i32, ptr %6063, align 4, !tbaa !5
  %6065 = call ptr @strerror(i32 noundef %6064) #10
  %6066 = call ptr @__errno_location() #11
  %6067 = load i32, ptr %6066, align 4, !tbaa !5
  %6068 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6055, ptr noundef @.str, i32 noundef %6056, ptr noundef @.str.96, ptr noundef @.str.2, i32 noundef 567, ptr noundef %6059, ptr noundef %6062, ptr noundef %6065, i32 noundef %6067) #10
  br label %6086

6069:                                             ; preds = %6047, %6040
  %6070 = load i32, ptr %126, align 4, !tbaa !5
  %6071 = call ptr @__errno_location() #11
  store i32 %6070, ptr %6071, align 4, !tbaa !5
  %6072 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6073 = load i32, ptr @test_count, align 4, !tbaa !5
  %6074 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6075 = load i32, ptr %6074, align 4, !tbaa !5
  %6076 = call ptr @s2n_strerror(i32 noundef %6075, ptr noundef @.str.3)
  %6077 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6078 = load i32, ptr %6077, align 4, !tbaa !5
  %6079 = call ptr @s2n_strerror_debug(i32 noundef %6078, ptr noundef @.str.3)
  %6080 = call ptr @__errno_location() #11
  %6081 = load i32, ptr %6080, align 4, !tbaa !5
  %6082 = call ptr @strerror(i32 noundef %6081) #10
  %6083 = call ptr @__errno_location() #11
  %6084 = load i32, ptr %6083, align 4, !tbaa !5
  %6085 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6072, ptr noundef @.str.4, i32 noundef %6073, ptr noundef @.str.96, ptr noundef @.str.2, i32 noundef 567, ptr noundef %6076, ptr noundef %6079, ptr noundef %6082, i32 noundef %6084) #10
  br label %6086

6086:                                             ; preds = %6069, %6052
  call void @llvm.lifetime.end.p0(i64 4, ptr %126) #10
  br label %6087

6087:                                             ; preds = %6086
  br label %6088

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

6089:                                             ; No predecessors!
  br label %6090

6090:                                             ; preds = %6089
  br label %6091

6091:                                             ; preds = %6090, %6032
  br label %6092

6092:                                             ; preds = %6091
  br label %6093

6093:                                             ; preds = %6092
  br label %6094

6094:                                             ; preds = %6093
  %6095 = load i32, ptr @test_count, align 4, !tbaa !5
  %6096 = add nsw i32 %6095, 1
  store i32 %6096, ptr @test_count, align 4, !tbaa !5
  %6097 = load ptr, ptr %102, align 8, !tbaa !9
  %6098 = call i32 @s2n_config_free(ptr noundef %6097)
  %6099 = icmp eq i32 %6098, -1
  br i1 %6099, label %6100, label %6153

6100:                                             ; preds = %6094
  br label %6101

6101:                                             ; preds = %6100
  br label %6102

6102:                                             ; preds = %6101
  call void @llvm.lifetime.start.p0(i64 4, ptr %127) #10
  %6103 = call ptr @__errno_location() #11
  %6104 = load i32, ptr %6103, align 4, !tbaa !5
  store i32 %6104, ptr %127, align 4, !tbaa !5
  %6105 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6106 = call i32 @s2n_print_stacktrace(ptr noundef %6105)
  %6107 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6108 = trunc i8 %6107 to i1
  br i1 %6108, label %6109, label %6131

6109:                                             ; preds = %6102
  %6110 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6111 = call i32 @fileno(ptr noundef %6110) #10
  %6112 = call i32 @isatty(i32 noundef %6111) #10
  %6113 = icmp ne i32 %6112, 0
  br i1 %6113, label %6114, label %6131

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

6131:                                             ; preds = %6109, %6102
  %6132 = load i32, ptr %127, align 4, !tbaa !5
  %6133 = call ptr @__errno_location() #11
  store i32 %6132, ptr %6133, align 4, !tbaa !5
  %6134 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6135 = load i32, ptr @test_count, align 4, !tbaa !5
  %6136 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6137 = load i32, ptr %6136, align 4, !tbaa !5
  %6138 = call ptr @s2n_strerror(i32 noundef %6137, ptr noundef @.str.3)
  %6139 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6140 = load i32, ptr %6139, align 4, !tbaa !5
  %6141 = call ptr @s2n_strerror_debug(i32 noundef %6140, ptr noundef @.str.3)
  %6142 = call ptr @__errno_location() #11
  %6143 = load i32, ptr %6142, align 4, !tbaa !5
  %6144 = call ptr @strerror(i32 noundef %6143) #10
  %6145 = call ptr @__errno_location() #11
  %6146 = load i32, ptr %6145, align 4, !tbaa !5
  %6147 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6134, ptr noundef @.str.4, i32 noundef %6135, ptr noundef @.str.97, ptr noundef @.str.2, i32 noundef 568, ptr noundef %6138, ptr noundef %6141, ptr noundef %6144, i32 noundef %6146) #10
  br label %6148

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

6149:                                             ; preds = %6148
  br label %6150

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

6151:                                             ; No predecessors!
  br label %6152

6152:                                             ; preds = %6151
  br label %6153

6153:                                             ; preds = %6152, %6094
  br label %6154

6154:                                             ; preds = %6153
  br label %6155

6155:                                             ; preds = %6154
  call void @llvm.lifetime.end.p0(i64 8, ptr %118) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %115) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %112) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %102) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %101) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %128) #10
  %6156 = call ptr @s2n_config_new()
  store ptr %6156, ptr %128, align 8, !tbaa !9
  br label %6157

6157:                                             ; preds = %6155
  %6158 = load i32, ptr @test_count, align 4, !tbaa !5
  %6159 = add nsw i32 %6158, 1
  store i32 %6159, ptr @test_count, align 4, !tbaa !5
  %6160 = load ptr, ptr %128, align 8, !tbaa !9
  %6161 = icmp eq ptr %6160, null
  br i1 %6161, label %6162, label %6215

6162:                                             ; preds = %6157
  br label %6163

6163:                                             ; preds = %6162
  br label %6164

6164:                                             ; preds = %6163
  call void @llvm.lifetime.start.p0(i64 4, ptr %129) #10
  %6165 = call ptr @__errno_location() #11
  %6166 = load i32, ptr %6165, align 4, !tbaa !5
  store i32 %6166, ptr %129, align 4, !tbaa !5
  %6167 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6168 = call i32 @s2n_print_stacktrace(ptr noundef %6167)
  %6169 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6170 = trunc i8 %6169 to i1
  br i1 %6170, label %6171, label %6193

6171:                                             ; preds = %6164
  %6172 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6173 = call i32 @fileno(ptr noundef %6172) #10
  %6174 = call i32 @isatty(i32 noundef %6173) #10
  %6175 = icmp ne i32 %6174, 0
  br i1 %6175, label %6176, label %6193

6176:                                             ; preds = %6171
  %6177 = load i32, ptr %129, align 4, !tbaa !5
  %6178 = call ptr @__errno_location() #11
  store i32 %6177, ptr %6178, align 4, !tbaa !5
  %6179 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6180 = load i32, ptr @test_count, align 4, !tbaa !5
  %6181 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6182 = load i32, ptr %6181, align 4, !tbaa !5
  %6183 = call ptr @s2n_strerror(i32 noundef %6182, ptr noundef @.str.3)
  %6184 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6185 = load i32, ptr %6184, align 4, !tbaa !5
  %6186 = call ptr @s2n_strerror_debug(i32 noundef %6185, ptr noundef @.str.3)
  %6187 = call ptr @__errno_location() #11
  %6188 = load i32, ptr %6187, align 4, !tbaa !5
  %6189 = call ptr @strerror(i32 noundef %6188) #10
  %6190 = call ptr @__errno_location() #11
  %6191 = load i32, ptr %6190, align 4, !tbaa !5
  %6192 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6179, ptr noundef @.str, i32 noundef %6180, ptr noundef @.str.104, ptr noundef @.str.2, i32 noundef 574, ptr noundef %6183, ptr noundef %6186, ptr noundef %6189, i32 noundef %6191) #10
  br label %6210

6193:                                             ; preds = %6171, %6164
  %6194 = load i32, ptr %129, align 4, !tbaa !5
  %6195 = call ptr @__errno_location() #11
  store i32 %6194, ptr %6195, align 4, !tbaa !5
  %6196 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6197 = load i32, ptr @test_count, align 4, !tbaa !5
  %6198 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6199 = load i32, ptr %6198, align 4, !tbaa !5
  %6200 = call ptr @s2n_strerror(i32 noundef %6199, ptr noundef @.str.3)
  %6201 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6202 = load i32, ptr %6201, align 4, !tbaa !5
  %6203 = call ptr @s2n_strerror_debug(i32 noundef %6202, ptr noundef @.str.3)
  %6204 = call ptr @__errno_location() #11
  %6205 = load i32, ptr %6204, align 4, !tbaa !5
  %6206 = call ptr @strerror(i32 noundef %6205) #10
  %6207 = call ptr @__errno_location() #11
  %6208 = load i32, ptr %6207, align 4, !tbaa !5
  %6209 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6196, ptr noundef @.str.4, i32 noundef %6197, ptr noundef @.str.104, ptr noundef @.str.2, i32 noundef 574, ptr noundef %6200, ptr noundef %6203, ptr noundef %6206, i32 noundef %6208) #10
  br label %6210

6210:                                             ; preds = %6193, %6176
  call void @llvm.lifetime.end.p0(i64 4, ptr %129) #10
  br label %6211

6211:                                             ; preds = %6210
  br label %6212

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

6213:                                             ; No predecessors!
  br label %6214

6214:                                             ; preds = %6213
  br label %6215

6215:                                             ; preds = %6214, %6157
  br label %6216

6216:                                             ; preds = %6215
  br label %6217

6217:                                             ; preds = %6216
  br label %6218

6218:                                             ; preds = %6217
  %6219 = load i32, ptr @test_count, align 4, !tbaa !5
  %6220 = add nsw i32 %6219, 1
  store i32 %6220, ptr @test_count, align 4, !tbaa !5
  %6221 = load ptr, ptr %128, align 8, !tbaa !9
  %6222 = load ptr, ptr %12, align 8, !tbaa !9
  %6223 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %6221, ptr noundef %6222)
  %6224 = icmp eq i32 %6223, -1
  br i1 %6224, label %6225, label %6278

6225:                                             ; preds = %6218
  br label %6226

6226:                                             ; preds = %6225
  br label %6227

6227:                                             ; preds = %6226
  call void @llvm.lifetime.start.p0(i64 4, ptr %130) #10
  %6228 = call ptr @__errno_location() #11
  %6229 = load i32, ptr %6228, align 4, !tbaa !5
  store i32 %6229, ptr %130, align 4, !tbaa !5
  %6230 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6231 = call i32 @s2n_print_stacktrace(ptr noundef %6230)
  %6232 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6233 = trunc i8 %6232 to i1
  br i1 %6233, label %6234, label %6256

6234:                                             ; preds = %6227
  %6235 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6236 = call i32 @fileno(ptr noundef %6235) #10
  %6237 = call i32 @isatty(i32 noundef %6236) #10
  %6238 = icmp ne i32 %6237, 0
  br i1 %6238, label %6239, label %6256

6239:                                             ; preds = %6234
  %6240 = load i32, ptr %130, align 4, !tbaa !5
  %6241 = call ptr @__errno_location() #11
  store i32 %6240, ptr %6241, align 4, !tbaa !5
  %6242 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6243 = load i32, ptr @test_count, align 4, !tbaa !5
  %6244 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6245 = load i32, ptr %6244, align 4, !tbaa !5
  %6246 = call ptr @s2n_strerror(i32 noundef %6245, ptr noundef @.str.3)
  %6247 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6248 = load i32, ptr %6247, align 4, !tbaa !5
  %6249 = call ptr @s2n_strerror_debug(i32 noundef %6248, ptr noundef @.str.3)
  %6250 = call ptr @__errno_location() #11
  %6251 = load i32, ptr %6250, align 4, !tbaa !5
  %6252 = call ptr @strerror(i32 noundef %6251) #10
  %6253 = call ptr @__errno_location() #11
  %6254 = load i32, ptr %6253, align 4, !tbaa !5
  %6255 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6242, ptr noundef @.str, i32 noundef %6243, ptr noundef @.str.77, ptr noundef @.str.2, i32 noundef 575, ptr noundef %6246, ptr noundef %6249, ptr noundef %6252, i32 noundef %6254) #10
  br label %6273

6256:                                             ; preds = %6234, %6227
  %6257 = load i32, ptr %130, align 4, !tbaa !5
  %6258 = call ptr @__errno_location() #11
  store i32 %6257, ptr %6258, align 4, !tbaa !5
  %6259 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6260 = load i32, ptr @test_count, align 4, !tbaa !5
  %6261 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6262 = load i32, ptr %6261, align 4, !tbaa !5
  %6263 = call ptr @s2n_strerror(i32 noundef %6262, ptr noundef @.str.3)
  %6264 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6265 = load i32, ptr %6264, align 4, !tbaa !5
  %6266 = call ptr @s2n_strerror_debug(i32 noundef %6265, ptr noundef @.str.3)
  %6267 = call ptr @__errno_location() #11
  %6268 = load i32, ptr %6267, align 4, !tbaa !5
  %6269 = call ptr @strerror(i32 noundef %6268) #10
  %6270 = call ptr @__errno_location() #11
  %6271 = load i32, ptr %6270, align 4, !tbaa !5
  %6272 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6259, ptr noundef @.str.4, i32 noundef %6260, ptr noundef @.str.77, ptr noundef @.str.2, i32 noundef 575, ptr noundef %6263, ptr noundef %6266, ptr noundef %6269, i32 noundef %6271) #10
  br label %6273

6273:                                             ; preds = %6256, %6239
  call void @llvm.lifetime.end.p0(i64 4, ptr %130) #10
  br label %6274

6274:                                             ; preds = %6273
  br label %6275

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

6276:                                             ; No predecessors!
  br label %6277

6277:                                             ; preds = %6276
  br label %6278

6278:                                             ; preds = %6277, %6218
  br label %6279

6279:                                             ; preds = %6278
  br label %6280

6280:                                             ; preds = %6279
  br label %6281

6281:                                             ; preds = %6280
  %6282 = load i32, ptr @test_count, align 4, !tbaa !5
  %6283 = add nsw i32 %6282, 1
  store i32 %6283, ptr @test_count, align 4, !tbaa !5
  %6284 = load ptr, ptr %128, align 8, !tbaa !9
  %6285 = getelementptr inbounds [12000 x i8], ptr %10, i64 0, i64 0
  %6286 = call i32 @s2n_config_add_dhparams(ptr noundef %6284, ptr noundef %6285)
  %6287 = icmp eq i32 %6286, -1
  br i1 %6287, label %6288, label %6341

6288:                                             ; preds = %6281
  br label %6289

6289:                                             ; preds = %6288
  br label %6290

6290:                                             ; preds = %6289
  call void @llvm.lifetime.start.p0(i64 4, ptr %131) #10
  %6291 = call ptr @__errno_location() #11
  %6292 = load i32, ptr %6291, align 4, !tbaa !5
  store i32 %6292, ptr %131, align 4, !tbaa !5
  %6293 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6294 = call i32 @s2n_print_stacktrace(ptr noundef %6293)
  %6295 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6296 = trunc i8 %6295 to i1
  br i1 %6296, label %6297, label %6319

6297:                                             ; preds = %6290
  %6298 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6299 = call i32 @fileno(ptr noundef %6298) #10
  %6300 = call i32 @isatty(i32 noundef %6299) #10
  %6301 = icmp ne i32 %6300, 0
  br i1 %6301, label %6302, label %6319

6302:                                             ; preds = %6297
  %6303 = load i32, ptr %131, align 4, !tbaa !5
  %6304 = call ptr @__errno_location() #11
  store i32 %6303, ptr %6304, align 4, !tbaa !5
  %6305 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6306 = load i32, ptr @test_count, align 4, !tbaa !5
  %6307 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6308 = load i32, ptr %6307, align 4, !tbaa !5
  %6309 = call ptr @s2n_strerror(i32 noundef %6308, ptr noundef @.str.3)
  %6310 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6311 = load i32, ptr %6310, align 4, !tbaa !5
  %6312 = call ptr @s2n_strerror_debug(i32 noundef %6311, ptr noundef @.str.3)
  %6313 = call ptr @__errno_location() #11
  %6314 = load i32, ptr %6313, align 4, !tbaa !5
  %6315 = call ptr @strerror(i32 noundef %6314) #10
  %6316 = call ptr @__errno_location() #11
  %6317 = load i32, ptr %6316, align 4, !tbaa !5
  %6318 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6305, ptr noundef @.str, i32 noundef %6306, ptr noundef @.str.78, ptr noundef @.str.2, i32 noundef 576, ptr noundef %6309, ptr noundef %6312, ptr noundef %6315, i32 noundef %6317) #10
  br label %6336

6319:                                             ; preds = %6297, %6290
  %6320 = load i32, ptr %131, align 4, !tbaa !5
  %6321 = call ptr @__errno_location() #11
  store i32 %6320, ptr %6321, align 4, !tbaa !5
  %6322 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6323 = load i32, ptr @test_count, align 4, !tbaa !5
  %6324 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6325 = load i32, ptr %6324, align 4, !tbaa !5
  %6326 = call ptr @s2n_strerror(i32 noundef %6325, ptr noundef @.str.3)
  %6327 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6328 = load i32, ptr %6327, align 4, !tbaa !5
  %6329 = call ptr @s2n_strerror_debug(i32 noundef %6328, ptr noundef @.str.3)
  %6330 = call ptr @__errno_location() #11
  %6331 = load i32, ptr %6330, align 4, !tbaa !5
  %6332 = call ptr @strerror(i32 noundef %6331) #10
  %6333 = call ptr @__errno_location() #11
  %6334 = load i32, ptr %6333, align 4, !tbaa !5
  %6335 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6322, ptr noundef @.str.4, i32 noundef %6323, ptr noundef @.str.78, ptr noundef @.str.2, i32 noundef 576, ptr noundef %6326, ptr noundef %6329, ptr noundef %6332, i32 noundef %6334) #10
  br label %6336

6336:                                             ; preds = %6319, %6302
  call void @llvm.lifetime.end.p0(i64 4, ptr %131) #10
  br label %6337

6337:                                             ; preds = %6336
  br label %6338

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

6339:                                             ; No predecessors!
  br label %6340

6340:                                             ; preds = %6339
  br label %6341

6341:                                             ; preds = %6340, %6281
  br label %6342

6342:                                             ; preds = %6341
  br label %6343

6343:                                             ; preds = %6342
  br label %6344

6344:                                             ; preds = %6343
  %6345 = load i32, ptr @test_count, align 4, !tbaa !5
  %6346 = add nsw i32 %6345, 1
  store i32 %6346, ptr @test_count, align 4, !tbaa !5
  %6347 = load ptr, ptr %128, align 8, !tbaa !9
  %6348 = call i32 @s2n_config_set_async_pkey_callback(ptr noundef %6347, ptr noundef @async_pkey_store_callback)
  %6349 = icmp eq i32 %6348, -1
  br i1 %6349, label %6350, label %6403

6350:                                             ; preds = %6344
  br label %6351

6351:                                             ; preds = %6350
  br label %6352

6352:                                             ; preds = %6351
  call void @llvm.lifetime.start.p0(i64 4, ptr %132) #10
  %6353 = call ptr @__errno_location() #11
  %6354 = load i32, ptr %6353, align 4, !tbaa !5
  store i32 %6354, ptr %132, align 4, !tbaa !5
  %6355 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6356 = call i32 @s2n_print_stacktrace(ptr noundef %6355)
  %6357 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6358 = trunc i8 %6357 to i1
  br i1 %6358, label %6359, label %6381

6359:                                             ; preds = %6352
  %6360 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6361 = call i32 @fileno(ptr noundef %6360) #10
  %6362 = call i32 @isatty(i32 noundef %6361) #10
  %6363 = icmp ne i32 %6362, 0
  br i1 %6363, label %6364, label %6381

6364:                                             ; preds = %6359
  %6365 = load i32, ptr %132, align 4, !tbaa !5
  %6366 = call ptr @__errno_location() #11
  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.3)
  %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.3)
  %6375 = call ptr @__errno_location() #11
  %6376 = load i32, ptr %6375, align 4, !tbaa !5
  %6377 = call ptr @strerror(i32 noundef %6376) #10
  %6378 = call ptr @__errno_location() #11
  %6379 = load i32, ptr %6378, align 4, !tbaa !5
  %6380 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6367, ptr noundef @.str, i32 noundef %6368, ptr noundef @.str.98, ptr noundef @.str.2, i32 noundef 577, ptr noundef %6371, ptr noundef %6374, ptr noundef %6377, i32 noundef %6379) #10
  br label %6398

6381:                                             ; preds = %6359, %6352
  %6382 = load i32, ptr %132, align 4, !tbaa !5
  %6383 = call ptr @__errno_location() #11
  store i32 %6382, ptr %6383, align 4, !tbaa !5
  %6384 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6385 = load i32, ptr @test_count, align 4, !tbaa !5
  %6386 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6387 = load i32, ptr %6386, align 4, !tbaa !5
  %6388 = call ptr @s2n_strerror(i32 noundef %6387, ptr noundef @.str.3)
  %6389 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6390 = load i32, ptr %6389, align 4, !tbaa !5
  %6391 = call ptr @s2n_strerror_debug(i32 noundef %6390, ptr noundef @.str.3)
  %6392 = call ptr @__errno_location() #11
  %6393 = load i32, ptr %6392, align 4, !tbaa !5
  %6394 = call ptr @strerror(i32 noundef %6393) #10
  %6395 = call ptr @__errno_location() #11
  %6396 = load i32, ptr %6395, align 4, !tbaa !5
  %6397 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6384, ptr noundef @.str.4, i32 noundef %6385, ptr noundef @.str.98, ptr noundef @.str.2, i32 noundef 577, ptr noundef %6388, ptr noundef %6391, ptr noundef %6394, i32 noundef %6396) #10
  br label %6398

6398:                                             ; preds = %6381, %6364
  call void @llvm.lifetime.end.p0(i64 4, ptr %132) #10
  br label %6399

6399:                                             ; preds = %6398
  br label %6400

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

6401:                                             ; No predecessors!
  br label %6402

6402:                                             ; preds = %6401
  br label %6403

6403:                                             ; preds = %6402, %6344
  br label %6404

6404:                                             ; preds = %6403
  br label %6405

6405:                                             ; preds = %6404
  %6406 = load ptr, ptr %128, align 8, !tbaa !9
  %6407 = getelementptr inbounds %struct.s2n_config, ptr %6406, i32 0, i32 7
  store ptr %19, ptr %6407, align 8, !tbaa !31
  call void @llvm.lifetime.start.p0(i64 8, ptr %133) #10
  %6408 = call ptr @s2n_config_new()
  store ptr %6408, ptr %133, align 8, !tbaa !9
  br label %6409

6409:                                             ; preds = %6405
  %6410 = load i32, ptr @test_count, align 4, !tbaa !5
  %6411 = add nsw i32 %6410, 1
  store i32 %6411, ptr @test_count, align 4, !tbaa !5
  %6412 = load ptr, ptr %133, align 8, !tbaa !9
  %6413 = icmp eq ptr %6412, null
  br i1 %6413, label %6414, label %6467

6414:                                             ; preds = %6409
  br label %6415

6415:                                             ; preds = %6414
  br label %6416

6416:                                             ; preds = %6415
  call void @llvm.lifetime.start.p0(i64 4, ptr %134) #10
  %6417 = call ptr @__errno_location() #11
  %6418 = load i32, ptr %6417, align 4, !tbaa !5
  store i32 %6418, ptr %134, align 4, !tbaa !5
  %6419 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6420 = call i32 @s2n_print_stacktrace(ptr noundef %6419)
  %6421 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6422 = trunc i8 %6421 to i1
  br i1 %6422, label %6423, label %6445

6423:                                             ; preds = %6416
  %6424 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6425 = call i32 @fileno(ptr noundef %6424) #10
  %6426 = call i32 @isatty(i32 noundef %6425) #10
  %6427 = icmp ne i32 %6426, 0
  br i1 %6427, label %6428, label %6445

6428:                                             ; preds = %6423
  %6429 = load i32, ptr %134, align 4, !tbaa !5
  %6430 = call ptr @__errno_location() #11
  store i32 %6429, ptr %6430, align 4, !tbaa !5
  %6431 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6432 = load i32, ptr @test_count, align 4, !tbaa !5
  %6433 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6434 = load i32, ptr %6433, align 4, !tbaa !5
  %6435 = call ptr @s2n_strerror(i32 noundef %6434, ptr noundef @.str.3)
  %6436 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6437 = load i32, ptr %6436, align 4, !tbaa !5
  %6438 = call ptr @s2n_strerror_debug(i32 noundef %6437, ptr noundef @.str.3)
  %6439 = call ptr @__errno_location() #11
  %6440 = load i32, ptr %6439, align 4, !tbaa !5
  %6441 = call ptr @strerror(i32 noundef %6440) #10
  %6442 = call ptr @__errno_location() #11
  %6443 = load i32, ptr %6442, align 4, !tbaa !5
  %6444 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6431, ptr noundef @.str, i32 noundef %6432, ptr noundef @.str.105, ptr noundef @.str.2, i32 noundef 581, ptr noundef %6435, ptr noundef %6438, ptr noundef %6441, i32 noundef %6443) #10
  br label %6462

6445:                                             ; preds = %6423, %6416
  %6446 = load i32, ptr %134, align 4, !tbaa !5
  %6447 = call ptr @__errno_location() #11
  store i32 %6446, ptr %6447, align 4, !tbaa !5
  %6448 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6449 = load i32, ptr @test_count, align 4, !tbaa !5
  %6450 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6451 = load i32, ptr %6450, align 4, !tbaa !5
  %6452 = call ptr @s2n_strerror(i32 noundef %6451, ptr noundef @.str.3)
  %6453 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6454 = load i32, ptr %6453, align 4, !tbaa !5
  %6455 = call ptr @s2n_strerror_debug(i32 noundef %6454, ptr noundef @.str.3)
  %6456 = call ptr @__errno_location() #11
  %6457 = load i32, ptr %6456, align 4, !tbaa !5
  %6458 = call ptr @strerror(i32 noundef %6457) #10
  %6459 = call ptr @__errno_location() #11
  %6460 = load i32, ptr %6459, align 4, !tbaa !5
  %6461 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6448, ptr noundef @.str.4, i32 noundef %6449, ptr noundef @.str.105, ptr noundef @.str.2, i32 noundef 581, ptr noundef %6452, ptr noundef %6455, ptr noundef %6458, i32 noundef %6460) #10
  br label %6462

6462:                                             ; preds = %6445, %6428
  call void @llvm.lifetime.end.p0(i64 4, ptr %134) #10
  br label %6463

6463:                                             ; preds = %6462
  br label %6464

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

6465:                                             ; No predecessors!
  br label %6466

6466:                                             ; preds = %6465
  br label %6467

6467:                                             ; preds = %6466, %6409
  br label %6468

6468:                                             ; preds = %6467
  br label %6469

6469:                                             ; preds = %6468
  br label %6470

6470:                                             ; preds = %6469
  %6471 = load i32, ptr @test_count, align 4, !tbaa !5
  %6472 = add nsw i32 %6471, 1
  store i32 %6472, ptr @test_count, align 4, !tbaa !5
  %6473 = load ptr, ptr %133, align 8, !tbaa !9
  %6474 = call i32 @s2n_config_set_unsafe_for_testing(ptr noundef %6473)
  %6475 = icmp eq i32 %6474, -1
  br i1 %6475, label %6476, label %6529

6476:                                             ; preds = %6470
  br label %6477

6477:                                             ; preds = %6476
  br label %6478

6478:                                             ; preds = %6477
  call void @llvm.lifetime.start.p0(i64 4, ptr %135) #10
  %6479 = call ptr @__errno_location() #11
  %6480 = load i32, ptr %6479, align 4, !tbaa !5
  store i32 %6480, ptr %135, align 4, !tbaa !5
  %6481 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6482 = call i32 @s2n_print_stacktrace(ptr noundef %6481)
  %6483 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6484 = trunc i8 %6483 to i1
  br i1 %6484, label %6485, label %6507

6485:                                             ; preds = %6478
  %6486 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6487 = call i32 @fileno(ptr noundef %6486) #10
  %6488 = call i32 @isatty(i32 noundef %6487) #10
  %6489 = icmp ne i32 %6488, 0
  br i1 %6489, label %6490, label %6507

6490:                                             ; preds = %6485
  %6491 = load i32, ptr %135, align 4, !tbaa !5
  %6492 = call ptr @__errno_location() #11
  store i32 %6491, ptr %6492, align 4, !tbaa !5
  %6493 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6494 = load i32, ptr @test_count, align 4, !tbaa !5
  %6495 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6496 = load i32, ptr %6495, align 4, !tbaa !5
  %6497 = call ptr @s2n_strerror(i32 noundef %6496, ptr noundef @.str.3)
  %6498 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6499 = load i32, ptr %6498, align 4, !tbaa !5
  %6500 = call ptr @s2n_strerror_debug(i32 noundef %6499, ptr noundef @.str.3)
  %6501 = call ptr @__errno_location() #11
  %6502 = load i32, ptr %6501, align 4, !tbaa !5
  %6503 = call ptr @strerror(i32 noundef %6502) #10
  %6504 = call ptr @__errno_location() #11
  %6505 = load i32, ptr %6504, align 4, !tbaa !5
  %6506 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6493, ptr noundef @.str, i32 noundef %6494, ptr noundef @.str.81, ptr noundef @.str.2, i32 noundef 582, ptr noundef %6497, ptr noundef %6500, ptr noundef %6503, i32 noundef %6505) #10
  br label %6524

6507:                                             ; preds = %6485, %6478
  %6508 = load i32, ptr %135, align 4, !tbaa !5
  %6509 = call ptr @__errno_location() #11
  store i32 %6508, ptr %6509, align 4, !tbaa !5
  %6510 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6511 = load i32, ptr @test_count, align 4, !tbaa !5
  %6512 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6513 = load i32, ptr %6512, align 4, !tbaa !5
  %6514 = call ptr @s2n_strerror(i32 noundef %6513, ptr noundef @.str.3)
  %6515 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6516 = load i32, ptr %6515, align 4, !tbaa !5
  %6517 = call ptr @s2n_strerror_debug(i32 noundef %6516, ptr noundef @.str.3)
  %6518 = call ptr @__errno_location() #11
  %6519 = load i32, ptr %6518, align 4, !tbaa !5
  %6520 = call ptr @strerror(i32 noundef %6519) #10
  %6521 = call ptr @__errno_location() #11
  %6522 = load i32, ptr %6521, align 4, !tbaa !5
  %6523 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6510, ptr noundef @.str.4, i32 noundef %6511, ptr noundef @.str.81, ptr noundef @.str.2, i32 noundef 582, ptr noundef %6514, ptr noundef %6517, ptr noundef %6520, i32 noundef %6522) #10
  br label %6524

6524:                                             ; preds = %6507, %6490
  call void @llvm.lifetime.end.p0(i64 4, ptr %135) #10
  br label %6525

6525:                                             ; preds = %6524
  br label %6526

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

6527:                                             ; No predecessors!
  br label %6528

6528:                                             ; preds = %6527
  br label %6529

6529:                                             ; preds = %6528, %6470
  br label %6530

6530:                                             ; preds = %6529
  br label %6531

6531:                                             ; preds = %6530
  br label %6532

6532:                                             ; preds = %6531
  %6533 = load i32, ptr @test_count, align 4, !tbaa !5
  %6534 = add nsw i32 %6533, 1
  store i32 %6534, ptr @test_count, align 4, !tbaa !5
  %6535 = load ptr, ptr %133, align 8, !tbaa !9
  %6536 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %6535, ptr noundef @.str.82)
  %6537 = icmp eq i32 %6536, -1
  br i1 %6537, label %6538, label %6591

6538:                                             ; preds = %6532
  br label %6539

6539:                                             ; preds = %6538
  br label %6540

6540:                                             ; preds = %6539
  call void @llvm.lifetime.start.p0(i64 4, ptr %136) #10
  %6541 = call ptr @__errno_location() #11
  %6542 = load i32, ptr %6541, align 4, !tbaa !5
  store i32 %6542, ptr %136, align 4, !tbaa !5
  %6543 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6544 = call i32 @s2n_print_stacktrace(ptr noundef %6543)
  %6545 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6546 = trunc i8 %6545 to i1
  br i1 %6546, label %6547, label %6569

6547:                                             ; preds = %6540
  %6548 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6549 = call i32 @fileno(ptr noundef %6548) #10
  %6550 = call i32 @isatty(i32 noundef %6549) #10
  %6551 = icmp ne i32 %6550, 0
  br i1 %6551, label %6552, label %6569

6552:                                             ; preds = %6547
  %6553 = load i32, ptr %136, align 4, !tbaa !5
  %6554 = call ptr @__errno_location() #11
  store i32 %6553, ptr %6554, align 4, !tbaa !5
  %6555 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6556 = load i32, ptr @test_count, align 4, !tbaa !5
  %6557 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6558 = load i32, ptr %6557, align 4, !tbaa !5
  %6559 = call ptr @s2n_strerror(i32 noundef %6558, ptr noundef @.str.3)
  %6560 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6561 = load i32, ptr %6560, align 4, !tbaa !5
  %6562 = call ptr @s2n_strerror_debug(i32 noundef %6561, ptr noundef @.str.3)
  %6563 = call ptr @__errno_location() #11
  %6564 = load i32, ptr %6563, align 4, !tbaa !5
  %6565 = call ptr @strerror(i32 noundef %6564) #10
  %6566 = call ptr @__errno_location() #11
  %6567 = load i32, ptr %6566, align 4, !tbaa !5
  %6568 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6555, ptr noundef @.str, i32 noundef %6556, ptr noundef @.str.83, ptr noundef @.str.2, i32 noundef 584, ptr noundef %6559, ptr noundef %6562, ptr noundef %6565, i32 noundef %6567) #10
  br label %6586

6569:                                             ; preds = %6547, %6540
  %6570 = load i32, ptr %136, align 4, !tbaa !5
  %6571 = call ptr @__errno_location() #11
  store i32 %6570, ptr %6571, align 4, !tbaa !5
  %6572 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6573 = load i32, ptr @test_count, align 4, !tbaa !5
  %6574 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6575 = load i32, ptr %6574, align 4, !tbaa !5
  %6576 = call ptr @s2n_strerror(i32 noundef %6575, ptr noundef @.str.3)
  %6577 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6578 = load i32, ptr %6577, align 4, !tbaa !5
  %6579 = call ptr @s2n_strerror_debug(i32 noundef %6578, ptr noundef @.str.3)
  %6580 = call ptr @__errno_location() #11
  %6581 = load i32, ptr %6580, align 4, !tbaa !5
  %6582 = call ptr @strerror(i32 noundef %6581) #10
  %6583 = call ptr @__errno_location() #11
  %6584 = load i32, ptr %6583, align 4, !tbaa !5
  %6585 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6572, ptr noundef @.str.4, i32 noundef %6573, ptr noundef @.str.83, ptr noundef @.str.2, i32 noundef 584, ptr noundef %6576, ptr noundef %6579, ptr noundef %6582, i32 noundef %6584) #10
  br label %6586

6586:                                             ; preds = %6569, %6552
  call void @llvm.lifetime.end.p0(i64 4, ptr %136) #10
  br label %6587

6587:                                             ; preds = %6586
  br label %6588

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

6589:                                             ; No predecessors!
  br label %6590

6590:                                             ; preds = %6589
  br label %6591

6591:                                             ; preds = %6590, %6532
  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 %133, align 8, !tbaa !9
  %6598 = call i32 @s2n_config_set_verification_ca_location(ptr noundef %6597, ptr noundef @.str.69, ptr noundef null)
  %6599 = icmp eq i32 %6598, -1
  br i1 %6599, label %6600, label %6653

6600:                                             ; preds = %6594
  br label %6601

6601:                                             ; preds = %6600
  br label %6602

6602:                                             ; preds = %6601
  call void @llvm.lifetime.start.p0(i64 4, ptr %137) #10
  %6603 = call ptr @__errno_location() #11
  %6604 = load i32, ptr %6603, align 4, !tbaa !5
  store i32 %6604, ptr %137, 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) #10
  %6612 = call i32 @isatty(i32 noundef %6611) #10
  %6613 = icmp ne i32 %6612, 0
  br i1 %6613, label %6614, label %6631

6614:                                             ; preds = %6609
  %6615 = load i32, ptr %137, align 4, !tbaa !5
  %6616 = call ptr @__errno_location() #11
  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.3)
  %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.3)
  %6625 = call ptr @__errno_location() #11
  %6626 = load i32, ptr %6625, align 4, !tbaa !5
  %6627 = call ptr @strerror(i32 noundef %6626) #10
  %6628 = call ptr @__errno_location() #11
  %6629 = load i32, ptr %6628, align 4, !tbaa !5
  %6630 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6617, ptr noundef @.str, i32 noundef %6618, ptr noundef @.str.84, ptr noundef @.str.2, i32 noundef 585, ptr noundef %6621, ptr noundef %6624, ptr noundef %6627, i32 noundef %6629) #10
  br label %6648

6631:                                             ; preds = %6609, %6602
  %6632 = load i32, ptr %137, align 4, !tbaa !5
  %6633 = call ptr @__errno_location() #11
  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.3)
  %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.3)
  %6642 = call ptr @__errno_location() #11
  %6643 = load i32, ptr %6642, align 4, !tbaa !5
  %6644 = call ptr @strerror(i32 noundef %6643) #10
  %6645 = call ptr @__errno_location() #11
  %6646 = load i32, ptr %6645, align 4, !tbaa !5
  %6647 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6634, ptr noundef @.str.4, i32 noundef %6635, ptr noundef @.str.84, ptr noundef @.str.2, i32 noundef 585, ptr noundef %6638, ptr noundef %6641, ptr noundef %6644, i32 noundef %6646) #10
  br label %6648

6648:                                             ; preds = %6631, %6614
  call void @llvm.lifetime.end.p0(i64 4, ptr %137) #10
  br label %6649

6649:                                             ; preds = %6648
  br label %6650

6650:                                             ; preds = %6649
  call void @exit(i32 noundef 1) #12
  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
  call void @llvm.lifetime.start.p0(i64 8, ptr %138) #10
  %6656 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %6656, ptr %138, align 8, !tbaa !9
  br label %6657

6657:                                             ; preds = %6655
  %6658 = load i32, ptr @test_count, align 4, !tbaa !5
  %6659 = add nsw i32 %6658, 1
  store i32 %6659, ptr @test_count, align 4, !tbaa !5
  %6660 = load ptr, ptr %138, align 8, !tbaa !9
  %6661 = icmp eq ptr %6660, null
  br i1 %6661, label %6662, label %6715

6662:                                             ; preds = %6657
  br label %6663

6663:                                             ; preds = %6662
  br label %6664

6664:                                             ; preds = %6663
  call void @llvm.lifetime.start.p0(i64 4, ptr %139) #10
  %6665 = call ptr @__errno_location() #11
  %6666 = load i32, ptr %6665, align 4, !tbaa !5
  store i32 %6666, ptr %139, 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) #10
  %6674 = call i32 @isatty(i32 noundef %6673) #10
  %6675 = icmp ne i32 %6674, 0
  br i1 %6675, label %6676, label %6693

6676:                                             ; preds = %6671
  %6677 = load i32, ptr %139, align 4, !tbaa !5
  %6678 = call ptr @__errno_location() #11
  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.3)
  %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.3)
  %6687 = call ptr @__errno_location() #11
  %6688 = load i32, ptr %6687, align 4, !tbaa !5
  %6689 = call ptr @strerror(i32 noundef %6688) #10
  %6690 = call ptr @__errno_location() #11
  %6691 = load i32, ptr %6690, align 4, !tbaa !5
  %6692 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6679, ptr noundef @.str, i32 noundef %6680, ptr noundef @.str.85, ptr noundef @.str.2, i32 noundef 589, ptr noundef %6683, ptr noundef %6686, ptr noundef %6689, i32 noundef %6691) #10
  br label %6710

6693:                                             ; preds = %6671, %6664
  %6694 = load i32, ptr %139, align 4, !tbaa !5
  %6695 = call ptr @__errno_location() #11
  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.3)
  %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.3)
  %6704 = call ptr @__errno_location() #11
  %6705 = load i32, ptr %6704, align 4, !tbaa !5
  %6706 = call ptr @strerror(i32 noundef %6705) #10
  %6707 = call ptr @__errno_location() #11
  %6708 = load i32, ptr %6707, align 4, !tbaa !5
  %6709 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6696, ptr noundef @.str.4, i32 noundef %6697, ptr noundef @.str.85, ptr noundef @.str.2, i32 noundef 589, ptr noundef %6700, ptr noundef %6703, ptr noundef %6706, i32 noundef %6708) #10
  br label %6710

6710:                                             ; preds = %6693, %6676
  call void @llvm.lifetime.end.p0(i64 4, ptr %139) #10
  br label %6711

6711:                                             ; preds = %6710
  br label %6712

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

6713:                                             ; No predecessors!
  br label %6714

6714:                                             ; preds = %6713
  br label %6715

6715:                                             ; preds = %6714, %6657
  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 %138, align 8, !tbaa !9
  %6722 = load ptr, ptr %133, align 8, !tbaa !9
  %6723 = call i32 @s2n_connection_set_config(ptr noundef %6721, ptr noundef %6722)
  %6724 = icmp eq i32 %6723, -1
  br i1 %6724, label %6725, label %6778

6725:                                             ; preds = %6718
  br label %6726

6726:                                             ; preds = %6725
  br label %6727

6727:                                             ; preds = %6726
  call void @llvm.lifetime.start.p0(i64 4, ptr %140) #10
  %6728 = call ptr @__errno_location() #11
  %6729 = load i32, ptr %6728, align 4, !tbaa !5
  store i32 %6729, ptr %140, align 4, !tbaa !5
  %6730 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6731 = call i32 @s2n_print_stacktrace(ptr noundef %6730)
  %6732 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6733 = trunc i8 %6732 to i1
  br i1 %6733, label %6734, label %6756

6734:                                             ; preds = %6727
  %6735 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6736 = call i32 @fileno(ptr noundef %6735) #10
  %6737 = call i32 @isatty(i32 noundef %6736) #10
  %6738 = icmp ne i32 %6737, 0
  br i1 %6738, label %6739, label %6756

6739:                                             ; preds = %6734
  %6740 = load i32, ptr %140, align 4, !tbaa !5
  %6741 = call ptr @__errno_location() #11
  store i32 %6740, ptr %6741, align 4, !tbaa !5
  %6742 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6743 = load i32, ptr @test_count, align 4, !tbaa !5
  %6744 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6745 = load i32, ptr %6744, align 4, !tbaa !5
  %6746 = call ptr @s2n_strerror(i32 noundef %6745, ptr noundef @.str.3)
  %6747 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6748 = load i32, ptr %6747, align 4, !tbaa !5
  %6749 = call ptr @s2n_strerror_debug(i32 noundef %6748, ptr noundef @.str.3)
  %6750 = call ptr @__errno_location() #11
  %6751 = load i32, ptr %6750, align 4, !tbaa !5
  %6752 = call ptr @strerror(i32 noundef %6751) #10
  %6753 = call ptr @__errno_location() #11
  %6754 = load i32, ptr %6753, align 4, !tbaa !5
  %6755 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6742, ptr noundef @.str, i32 noundef %6743, ptr noundef @.str.86, ptr noundef @.str.2, i32 noundef 590, ptr noundef %6746, ptr noundef %6749, ptr noundef %6752, i32 noundef %6754) #10
  br label %6773

6756:                                             ; preds = %6734, %6727
  %6757 = load i32, ptr %140, align 4, !tbaa !5
  %6758 = call ptr @__errno_location() #11
  store i32 %6757, ptr %6758, align 4, !tbaa !5
  %6759 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6760 = load i32, ptr @test_count, align 4, !tbaa !5
  %6761 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6762 = load i32, ptr %6761, align 4, !tbaa !5
  %6763 = call ptr @s2n_strerror(i32 noundef %6762, ptr noundef @.str.3)
  %6764 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6765 = load i32, ptr %6764, align 4, !tbaa !5
  %6766 = call ptr @s2n_strerror_debug(i32 noundef %6765, ptr noundef @.str.3)
  %6767 = call ptr @__errno_location() #11
  %6768 = load i32, ptr %6767, align 4, !tbaa !5
  %6769 = call ptr @strerror(i32 noundef %6768) #10
  %6770 = call ptr @__errno_location() #11
  %6771 = load i32, ptr %6770, align 4, !tbaa !5
  %6772 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6759, ptr noundef @.str.4, i32 noundef %6760, ptr noundef @.str.86, ptr noundef @.str.2, i32 noundef 590, ptr noundef %6763, ptr noundef %6766, ptr noundef %6769, i32 noundef %6771) #10
  br label %6773

6773:                                             ; preds = %6756, %6739
  call void @llvm.lifetime.end.p0(i64 4, ptr %140) #10
  br label %6774

6774:                                             ; preds = %6773
  br label %6775

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

6776:                                             ; No predecessors!
  br label %6777

6777:                                             ; preds = %6776
  br label %6778

6778:                                             ; preds = %6777, %6718
  br label %6779

6779:                                             ; preds = %6778
  br label %6780

6780:                                             ; preds = %6779
  call void @llvm.lifetime.start.p0(i64 8, ptr %141) #10
  %6781 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %6781, ptr %141, align 8, !tbaa !9
  br label %6782

6782:                                             ; preds = %6780
  %6783 = load i32, ptr @test_count, align 4, !tbaa !5
  %6784 = add nsw i32 %6783, 1
  store i32 %6784, ptr @test_count, align 4, !tbaa !5
  %6785 = load ptr, ptr %141, align 8, !tbaa !9
  %6786 = icmp eq ptr %6785, null
  br i1 %6786, label %6787, label %6840

6787:                                             ; preds = %6782
  br label %6788

6788:                                             ; preds = %6787
  br label %6789

6789:                                             ; preds = %6788
  call void @llvm.lifetime.start.p0(i64 4, ptr %142) #10
  %6790 = call ptr @__errno_location() #11
  %6791 = load i32, ptr %6790, align 4, !tbaa !5
  store i32 %6791, ptr %142, align 4, !tbaa !5
  %6792 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6793 = call i32 @s2n_print_stacktrace(ptr noundef %6792)
  %6794 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6795 = trunc i8 %6794 to i1
  br i1 %6795, label %6796, label %6818

6796:                                             ; preds = %6789
  %6797 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6798 = call i32 @fileno(ptr noundef %6797) #10
  %6799 = call i32 @isatty(i32 noundef %6798) #10
  %6800 = icmp ne i32 %6799, 0
  br i1 %6800, label %6801, label %6818

6801:                                             ; preds = %6796
  %6802 = load i32, ptr %142, align 4, !tbaa !5
  %6803 = call ptr @__errno_location() #11
  store i32 %6802, ptr %6803, align 4, !tbaa !5
  %6804 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6805 = load i32, ptr @test_count, align 4, !tbaa !5
  %6806 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6807 = load i32, ptr %6806, align 4, !tbaa !5
  %6808 = call ptr @s2n_strerror(i32 noundef %6807, ptr noundef @.str.3)
  %6809 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6810 = load i32, ptr %6809, align 4, !tbaa !5
  %6811 = call ptr @s2n_strerror_debug(i32 noundef %6810, ptr noundef @.str.3)
  %6812 = call ptr @__errno_location() #11
  %6813 = load i32, ptr %6812, align 4, !tbaa !5
  %6814 = call ptr @strerror(i32 noundef %6813) #10
  %6815 = call ptr @__errno_location() #11
  %6816 = load i32, ptr %6815, align 4, !tbaa !5
  %6817 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6804, ptr noundef @.str, i32 noundef %6805, ptr noundef @.str.87, ptr noundef @.str.2, i32 noundef 593, ptr noundef %6808, ptr noundef %6811, ptr noundef %6814, i32 noundef %6816) #10
  br label %6835

6818:                                             ; preds = %6796, %6789
  %6819 = load i32, ptr %142, align 4, !tbaa !5
  %6820 = call ptr @__errno_location() #11
  store i32 %6819, ptr %6820, align 4, !tbaa !5
  %6821 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6822 = load i32, ptr @test_count, align 4, !tbaa !5
  %6823 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6824 = load i32, ptr %6823, align 4, !tbaa !5
  %6825 = call ptr @s2n_strerror(i32 noundef %6824, ptr noundef @.str.3)
  %6826 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6827 = load i32, ptr %6826, align 4, !tbaa !5
  %6828 = call ptr @s2n_strerror_debug(i32 noundef %6827, ptr noundef @.str.3)
  %6829 = call ptr @__errno_location() #11
  %6830 = load i32, ptr %6829, align 4, !tbaa !5
  %6831 = call ptr @strerror(i32 noundef %6830) #10
  %6832 = call ptr @__errno_location() #11
  %6833 = load i32, ptr %6832, align 4, !tbaa !5
  %6834 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6821, ptr noundef @.str.4, i32 noundef %6822, ptr noundef @.str.87, ptr noundef @.str.2, i32 noundef 593, ptr noundef %6825, ptr noundef %6828, ptr noundef %6831, i32 noundef %6833) #10
  br label %6835

6835:                                             ; preds = %6818, %6801
  call void @llvm.lifetime.end.p0(i64 4, ptr %142) #10
  br label %6836

6836:                                             ; preds = %6835
  br label %6837

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

6838:                                             ; No predecessors!
  br label %6839

6839:                                             ; preds = %6838
  br label %6840

6840:                                             ; preds = %6839, %6782
  br label %6841

6841:                                             ; preds = %6840
  br label %6842

6842:                                             ; preds = %6841
  br label %6843

6843:                                             ; preds = %6842
  %6844 = load i32, ptr @test_count, align 4, !tbaa !5
  %6845 = add nsw i32 %6844, 1
  store i32 %6845, ptr @test_count, align 4, !tbaa !5
  %6846 = load ptr, ptr %141, align 8, !tbaa !9
  %6847 = load ptr, ptr %128, align 8, !tbaa !9
  %6848 = call i32 @s2n_connection_set_config(ptr noundef %6846, ptr noundef %6847)
  %6849 = icmp eq i32 %6848, -1
  br i1 %6849, label %6850, label %6903

6850:                                             ; preds = %6843
  br label %6851

6851:                                             ; preds = %6850
  br label %6852

6852:                                             ; preds = %6851
  call void @llvm.lifetime.start.p0(i64 4, ptr %143) #10
  %6853 = call ptr @__errno_location() #11
  %6854 = load i32, ptr %6853, align 4, !tbaa !5
  store i32 %6854, ptr %143, align 4, !tbaa !5
  %6855 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6856 = call i32 @s2n_print_stacktrace(ptr noundef %6855)
  %6857 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6858 = trunc i8 %6857 to i1
  br i1 %6858, label %6859, label %6881

6859:                                             ; preds = %6852
  %6860 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6861 = call i32 @fileno(ptr noundef %6860) #10
  %6862 = call i32 @isatty(i32 noundef %6861) #10
  %6863 = icmp ne i32 %6862, 0
  br i1 %6863, label %6864, label %6881

6864:                                             ; preds = %6859
  %6865 = load i32, ptr %143, align 4, !tbaa !5
  %6866 = call ptr @__errno_location() #11
  store i32 %6865, ptr %6866, align 4, !tbaa !5
  %6867 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6868 = load i32, ptr @test_count, align 4, !tbaa !5
  %6869 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6870 = load i32, ptr %6869, align 4, !tbaa !5
  %6871 = call ptr @s2n_strerror(i32 noundef %6870, ptr noundef @.str.3)
  %6872 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6873 = load i32, ptr %6872, align 4, !tbaa !5
  %6874 = call ptr @s2n_strerror_debug(i32 noundef %6873, ptr noundef @.str.3)
  %6875 = call ptr @__errno_location() #11
  %6876 = load i32, ptr %6875, align 4, !tbaa !5
  %6877 = call ptr @strerror(i32 noundef %6876) #10
  %6878 = call ptr @__errno_location() #11
  %6879 = load i32, ptr %6878, align 4, !tbaa !5
  %6880 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6867, ptr noundef @.str, i32 noundef %6868, ptr noundef @.str.88, ptr noundef @.str.2, i32 noundef 594, ptr noundef %6871, ptr noundef %6874, ptr noundef %6877, i32 noundef %6879) #10
  br label %6898

6881:                                             ; preds = %6859, %6852
  %6882 = load i32, ptr %143, align 4, !tbaa !5
  %6883 = call ptr @__errno_location() #11
  store i32 %6882, ptr %6883, align 4, !tbaa !5
  %6884 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6885 = load i32, ptr @test_count, align 4, !tbaa !5
  %6886 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6887 = load i32, ptr %6886, align 4, !tbaa !5
  %6888 = call ptr @s2n_strerror(i32 noundef %6887, ptr noundef @.str.3)
  %6889 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6890 = load i32, ptr %6889, align 4, !tbaa !5
  %6891 = call ptr @s2n_strerror_debug(i32 noundef %6890, ptr noundef @.str.3)
  %6892 = call ptr @__errno_location() #11
  %6893 = load i32, ptr %6892, align 4, !tbaa !5
  %6894 = call ptr @strerror(i32 noundef %6893) #10
  %6895 = call ptr @__errno_location() #11
  %6896 = load i32, ptr %6895, align 4, !tbaa !5
  %6897 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6884, ptr noundef @.str.4, i32 noundef %6885, ptr noundef @.str.88, ptr noundef @.str.2, i32 noundef 594, ptr noundef %6888, ptr noundef %6891, ptr noundef %6894, i32 noundef %6896) #10
  br label %6898

6898:                                             ; preds = %6881, %6864
  call void @llvm.lifetime.end.p0(i64 4, ptr %143) #10
  br label %6899

6899:                                             ; preds = %6898
  br label %6900

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

6901:                                             ; No predecessors!
  br label %6902

6902:                                             ; preds = %6901
  br label %6903

6903:                                             ; preds = %6902, %6843
  br label %6904

6904:                                             ; preds = %6903
  br label %6905

6905:                                             ; preds = %6904
  call void @llvm.lifetime.start.p0(i64 8, ptr %144) #10
  call void @llvm.memset.p0.i64(ptr align 4 %144, i8 0, i64 8, i1 false)
  br label %6906

6906:                                             ; preds = %6905
  %6907 = load i32, ptr @test_count, align 4, !tbaa !5
  %6908 = add nsw i32 %6907, 1
  store i32 %6908, ptr @test_count, align 4, !tbaa !5
  %6909 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef %144)
  %6910 = icmp eq i32 %6909, -1
  br i1 %6910, label %6911, label %6964

6911:                                             ; preds = %6906
  br label %6912

6912:                                             ; preds = %6911
  br label %6913

6913:                                             ; preds = %6912
  call void @llvm.lifetime.start.p0(i64 4, ptr %145) #10
  %6914 = call ptr @__errno_location() #11
  %6915 = load i32, ptr %6914, align 4, !tbaa !5
  store i32 %6915, ptr %145, align 4, !tbaa !5
  %6916 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6917 = call i32 @s2n_print_stacktrace(ptr noundef %6916)
  %6918 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6919 = trunc i8 %6918 to i1
  br i1 %6919, label %6920, label %6942

6920:                                             ; preds = %6913
  %6921 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6922 = call i32 @fileno(ptr noundef %6921) #10
  %6923 = call i32 @isatty(i32 noundef %6922) #10
  %6924 = icmp ne i32 %6923, 0
  br i1 %6924, label %6925, label %6942

6925:                                             ; preds = %6920
  %6926 = load i32, ptr %145, align 4, !tbaa !5
  %6927 = call ptr @__errno_location() #11
  store i32 %6926, ptr %6927, align 4, !tbaa !5
  %6928 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6929 = load i32, ptr @test_count, align 4, !tbaa !5
  %6930 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6931 = load i32, ptr %6930, align 4, !tbaa !5
  %6932 = call ptr @s2n_strerror(i32 noundef %6931, ptr noundef @.str.3)
  %6933 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6934 = load i32, ptr %6933, align 4, !tbaa !5
  %6935 = call ptr @s2n_strerror_debug(i32 noundef %6934, ptr noundef @.str.3)
  %6936 = call ptr @__errno_location() #11
  %6937 = load i32, ptr %6936, align 4, !tbaa !5
  %6938 = call ptr @strerror(i32 noundef %6937) #10
  %6939 = call ptr @__errno_location() #11
  %6940 = load i32, ptr %6939, align 4, !tbaa !5
  %6941 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6928, ptr noundef @.str, i32 noundef %6929, ptr noundef @.str.89, ptr noundef @.str.2, i32 noundef 598, ptr noundef %6932, ptr noundef %6935, ptr noundef %6938, i32 noundef %6940) #10
  br label %6959

6942:                                             ; preds = %6920, %6913
  %6943 = load i32, ptr %145, align 4, !tbaa !5
  %6944 = call ptr @__errno_location() #11
  store i32 %6943, ptr %6944, align 4, !tbaa !5
  %6945 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6946 = load i32, ptr @test_count, align 4, !tbaa !5
  %6947 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6948 = load i32, ptr %6947, align 4, !tbaa !5
  %6949 = call ptr @s2n_strerror(i32 noundef %6948, ptr noundef @.str.3)
  %6950 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6951 = load i32, ptr %6950, align 4, !tbaa !5
  %6952 = call ptr @s2n_strerror_debug(i32 noundef %6951, ptr noundef @.str.3)
  %6953 = call ptr @__errno_location() #11
  %6954 = load i32, ptr %6953, align 4, !tbaa !5
  %6955 = call ptr @strerror(i32 noundef %6954) #10
  %6956 = call ptr @__errno_location() #11
  %6957 = load i32, ptr %6956, align 4, !tbaa !5
  %6958 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6945, ptr noundef @.str.4, i32 noundef %6946, ptr noundef @.str.89, ptr noundef @.str.2, i32 noundef 598, ptr noundef %6949, ptr noundef %6952, ptr noundef %6955, i32 noundef %6957) #10
  br label %6959

6959:                                             ; preds = %6942, %6925
  call void @llvm.lifetime.end.p0(i64 4, ptr %145) #10
  br label %6960

6960:                                             ; preds = %6959
  br label %6961

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

6962:                                             ; No predecessors!
  br label %6963

6963:                                             ; preds = %6962
  br label %6964

6964:                                             ; preds = %6963, %6906
  br label %6965

6965:                                             ; preds = %6964
  br label %6966

6966:                                             ; preds = %6965
  br label %6967

6967:                                             ; preds = %6966
  %6968 = load i32, ptr @test_count, align 4, !tbaa !5
  %6969 = add nsw i32 %6968, 1
  store i32 %6969, ptr @test_count, align 4, !tbaa !5
  %6970 = load ptr, ptr %138, align 8, !tbaa !9
  %6971 = call i32 @s2n_connection_set_io_pair(ptr noundef %6970, ptr noundef %144)
  %6972 = icmp eq i32 %6971, -1
  br i1 %6972, label %6973, label %7026

6973:                                             ; preds = %6967
  br label %6974

6974:                                             ; preds = %6973
  br label %6975

6975:                                             ; preds = %6974
  call void @llvm.lifetime.start.p0(i64 4, ptr %146) #10
  %6976 = call ptr @__errno_location() #11
  %6977 = load i32, ptr %6976, align 4, !tbaa !5
  store i32 %6977, ptr %146, align 4, !tbaa !5
  %6978 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6979 = call i32 @s2n_print_stacktrace(ptr noundef %6978)
  %6980 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6981 = trunc i8 %6980 to i1
  br i1 %6981, label %6982, label %7004

6982:                                             ; preds = %6975
  %6983 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6984 = call i32 @fileno(ptr noundef %6983) #10
  %6985 = call i32 @isatty(i32 noundef %6984) #10
  %6986 = icmp ne i32 %6985, 0
  br i1 %6986, label %6987, label %7004

6987:                                             ; preds = %6982
  %6988 = load i32, ptr %146, align 4, !tbaa !5
  %6989 = call ptr @__errno_location() #11
  store i32 %6988, ptr %6989, align 4, !tbaa !5
  %6990 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6991 = load i32, ptr @test_count, align 4, !tbaa !5
  %6992 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6993 = load i32, ptr %6992, align 4, !tbaa !5
  %6994 = call ptr @s2n_strerror(i32 noundef %6993, ptr noundef @.str.3)
  %6995 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6996 = load i32, ptr %6995, align 4, !tbaa !5
  %6997 = call ptr @s2n_strerror_debug(i32 noundef %6996, ptr noundef @.str.3)
  %6998 = call ptr @__errno_location() #11
  %6999 = load i32, ptr %6998, align 4, !tbaa !5
  %7000 = call ptr @strerror(i32 noundef %6999) #10
  %7001 = call ptr @__errno_location() #11
  %7002 = load i32, ptr %7001, align 4, !tbaa !5
  %7003 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6990, ptr noundef @.str, i32 noundef %6991, ptr noundef @.str.90, ptr noundef @.str.2, i32 noundef 599, ptr noundef %6994, ptr noundef %6997, ptr noundef %7000, i32 noundef %7002) #10
  br label %7021

7004:                                             ; preds = %6982, %6975
  %7005 = load i32, ptr %146, align 4, !tbaa !5
  %7006 = call ptr @__errno_location() #11
  store i32 %7005, ptr %7006, align 4, !tbaa !5
  %7007 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7008 = load i32, ptr @test_count, align 4, !tbaa !5
  %7009 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7010 = load i32, ptr %7009, align 4, !tbaa !5
  %7011 = call ptr @s2n_strerror(i32 noundef %7010, ptr noundef @.str.3)
  %7012 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7013 = load i32, ptr %7012, align 4, !tbaa !5
  %7014 = call ptr @s2n_strerror_debug(i32 noundef %7013, ptr noundef @.str.3)
  %7015 = call ptr @__errno_location() #11
  %7016 = load i32, ptr %7015, align 4, !tbaa !5
  %7017 = call ptr @strerror(i32 noundef %7016) #10
  %7018 = call ptr @__errno_location() #11
  %7019 = load i32, ptr %7018, align 4, !tbaa !5
  %7020 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7007, ptr noundef @.str.4, i32 noundef %7008, ptr noundef @.str.90, ptr noundef @.str.2, i32 noundef 599, ptr noundef %7011, ptr noundef %7014, ptr noundef %7017, i32 noundef %7019) #10
  br label %7021

7021:                                             ; preds = %7004, %6987
  call void @llvm.lifetime.end.p0(i64 4, ptr %146) #10
  br label %7022

7022:                                             ; preds = %7021
  br label %7023

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

7024:                                             ; No predecessors!
  br label %7025

7025:                                             ; preds = %7024
  br label %7026

7026:                                             ; preds = %7025, %6967
  br label %7027

7027:                                             ; preds = %7026
  br label %7028

7028:                                             ; preds = %7027
  br label %7029

7029:                                             ; preds = %7028
  %7030 = load i32, ptr @test_count, align 4, !tbaa !5
  %7031 = add nsw i32 %7030, 1
  store i32 %7031, ptr @test_count, align 4, !tbaa !5
  %7032 = load ptr, ptr %141, align 8, !tbaa !9
  %7033 = call i32 @s2n_connection_set_io_pair(ptr noundef %7032, ptr noundef %144)
  %7034 = icmp eq i32 %7033, -1
  br i1 %7034, label %7035, label %7088

7035:                                             ; preds = %7029
  br label %7036

7036:                                             ; preds = %7035
  br label %7037

7037:                                             ; preds = %7036
  call void @llvm.lifetime.start.p0(i64 4, ptr %147) #10
  %7038 = call ptr @__errno_location() #11
  %7039 = load i32, ptr %7038, align 4, !tbaa !5
  store i32 %7039, ptr %147, align 4, !tbaa !5
  %7040 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7041 = call i32 @s2n_print_stacktrace(ptr noundef %7040)
  %7042 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7043 = trunc i8 %7042 to i1
  br i1 %7043, label %7044, label %7066

7044:                                             ; preds = %7037
  %7045 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7046 = call i32 @fileno(ptr noundef %7045) #10
  %7047 = call i32 @isatty(i32 noundef %7046) #10
  %7048 = icmp ne i32 %7047, 0
  br i1 %7048, label %7049, label %7066

7049:                                             ; preds = %7044
  %7050 = load i32, ptr %147, align 4, !tbaa !5
  %7051 = call ptr @__errno_location() #11
  store i32 %7050, ptr %7051, align 4, !tbaa !5
  %7052 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7053 = load i32, ptr @test_count, align 4, !tbaa !5
  %7054 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7055 = load i32, ptr %7054, align 4, !tbaa !5
  %7056 = call ptr @s2n_strerror(i32 noundef %7055, ptr noundef @.str.3)
  %7057 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7058 = load i32, ptr %7057, align 4, !tbaa !5
  %7059 = call ptr @s2n_strerror_debug(i32 noundef %7058, ptr noundef @.str.3)
  %7060 = call ptr @__errno_location() #11
  %7061 = load i32, ptr %7060, align 4, !tbaa !5
  %7062 = call ptr @strerror(i32 noundef %7061) #10
  %7063 = call ptr @__errno_location() #11
  %7064 = load i32, ptr %7063, align 4, !tbaa !5
  %7065 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7052, ptr noundef @.str, i32 noundef %7053, ptr noundef @.str.91, ptr noundef @.str.2, i32 noundef 600, ptr noundef %7056, ptr noundef %7059, ptr noundef %7062, i32 noundef %7064) #10
  br label %7083

7066:                                             ; preds = %7044, %7037
  %7067 = load i32, ptr %147, align 4, !tbaa !5
  %7068 = call ptr @__errno_location() #11
  store i32 %7067, ptr %7068, align 4, !tbaa !5
  %7069 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7070 = load i32, ptr @test_count, align 4, !tbaa !5
  %7071 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7072 = load i32, ptr %7071, align 4, !tbaa !5
  %7073 = call ptr @s2n_strerror(i32 noundef %7072, ptr noundef @.str.3)
  %7074 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7075 = load i32, ptr %7074, align 4, !tbaa !5
  %7076 = call ptr @s2n_strerror_debug(i32 noundef %7075, ptr noundef @.str.3)
  %7077 = call ptr @__errno_location() #11
  %7078 = load i32, ptr %7077, align 4, !tbaa !5
  %7079 = call ptr @strerror(i32 noundef %7078) #10
  %7080 = call ptr @__errno_location() #11
  %7081 = load i32, ptr %7080, align 4, !tbaa !5
  %7082 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7069, ptr noundef @.str.4, i32 noundef %7070, ptr noundef @.str.91, ptr noundef @.str.2, i32 noundef 600, ptr noundef %7073, ptr noundef %7076, ptr noundef %7079, i32 noundef %7081) #10
  br label %7083

7083:                                             ; preds = %7066, %7049
  call void @llvm.lifetime.end.p0(i64 4, ptr %147) #10
  br label %7084

7084:                                             ; preds = %7083
  br label %7085

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

7086:                                             ; No predecessors!
  br label %7087

7087:                                             ; preds = %7086
  br label %7088

7088:                                             ; preds = %7087, %7029
  br label %7089

7089:                                             ; preds = %7088
  br label %7090

7090:                                             ; preds = %7089
  br label %7091

7091:                                             ; preds = %7090
  %7092 = load i32, ptr @test_count, align 4, !tbaa !5
  %7093 = add nsw i32 %7092, 1
  store i32 %7093, ptr @test_count, align 4, !tbaa !5
  %7094 = load ptr, ptr %128, align 8, !tbaa !9
  %7095 = call i32 @s2n_config_set_verify_after_sign(ptr noundef %7094, i32 noundef 1)
  %7096 = icmp eq i32 %7095, -1
  br i1 %7096, label %7097, label %7150

7097:                                             ; preds = %7091
  br label %7098

7098:                                             ; preds = %7097
  br label %7099

7099:                                             ; preds = %7098
  call void @llvm.lifetime.start.p0(i64 4, ptr %148) #10
  %7100 = call ptr @__errno_location() #11
  %7101 = load i32, ptr %7100, align 4, !tbaa !5
  store i32 %7101, ptr %148, align 4, !tbaa !5
  %7102 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7103 = call i32 @s2n_print_stacktrace(ptr noundef %7102)
  %7104 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7105 = trunc i8 %7104 to i1
  br i1 %7105, label %7106, label %7128

7106:                                             ; preds = %7099
  %7107 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7108 = call i32 @fileno(ptr noundef %7107) #10
  %7109 = call i32 @isatty(i32 noundef %7108) #10
  %7110 = icmp ne i32 %7109, 0
  br i1 %7110, label %7111, label %7128

7111:                                             ; preds = %7106
  %7112 = load i32, ptr %148, align 4, !tbaa !5
  %7113 = call ptr @__errno_location() #11
  store i32 %7112, ptr %7113, align 4, !tbaa !5
  %7114 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7115 = load i32, ptr @test_count, align 4, !tbaa !5
  %7116 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7117 = load i32, ptr %7116, align 4, !tbaa !5
  %7118 = call ptr @s2n_strerror(i32 noundef %7117, ptr noundef @.str.3)
  %7119 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7120 = load i32, ptr %7119, align 4, !tbaa !5
  %7121 = call ptr @s2n_strerror_debug(i32 noundef %7120, ptr noundef @.str.3)
  %7122 = call ptr @__errno_location() #11
  %7123 = load i32, ptr %7122, align 4, !tbaa !5
  %7124 = call ptr @strerror(i32 noundef %7123) #10
  %7125 = call ptr @__errno_location() #11
  %7126 = load i32, ptr %7125, align 4, !tbaa !5
  %7127 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7114, ptr noundef @.str, i32 noundef %7115, ptr noundef @.str.106, ptr noundef @.str.2, i32 noundef 603, ptr noundef %7118, ptr noundef %7121, ptr noundef %7124, i32 noundef %7126) #10
  br label %7145

7128:                                             ; preds = %7106, %7099
  %7129 = load i32, ptr %148, align 4, !tbaa !5
  %7130 = call ptr @__errno_location() #11
  store i32 %7129, ptr %7130, align 4, !tbaa !5
  %7131 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7132 = load i32, ptr @test_count, align 4, !tbaa !5
  %7133 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7134 = load i32, ptr %7133, align 4, !tbaa !5
  %7135 = call ptr @s2n_strerror(i32 noundef %7134, ptr noundef @.str.3)
  %7136 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7137 = load i32, ptr %7136, align 4, !tbaa !5
  %7138 = call ptr @s2n_strerror_debug(i32 noundef %7137, ptr noundef @.str.3)
  %7139 = call ptr @__errno_location() #11
  %7140 = load i32, ptr %7139, align 4, !tbaa !5
  %7141 = call ptr @strerror(i32 noundef %7140) #10
  %7142 = call ptr @__errno_location() #11
  %7143 = load i32, ptr %7142, align 4, !tbaa !5
  %7144 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7131, ptr noundef @.str.4, i32 noundef %7132, ptr noundef @.str.106, ptr noundef @.str.2, i32 noundef 603, ptr noundef %7135, ptr noundef %7138, ptr noundef %7141, i32 noundef %7143) #10
  br label %7145

7145:                                             ; preds = %7128, %7111
  call void @llvm.lifetime.end.p0(i64 4, ptr %148) #10
  br label %7146

7146:                                             ; preds = %7145
  br label %7147

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

7148:                                             ; No predecessors!
  br label %7149

7149:                                             ; preds = %7148
  br label %7150

7150:                                             ; preds = %7149, %7091
  br label %7151

7151:                                             ; preds = %7150
  br label %7152

7152:                                             ; preds = %7151
  br label %7153

7153:                                             ; preds = %7152
  %7154 = load i32, ptr @test_count, align 4, !tbaa !5
  %7155 = add nsw i32 %7154, 1
  store i32 %7155, ptr @test_count, align 4, !tbaa !5
  %7156 = load ptr, ptr %141, align 8, !tbaa !9
  %7157 = load ptr, ptr %138, align 8, !tbaa !9
  %7158 = call i32 @try_handshake(ptr noundef %7156, ptr noundef %7157, ptr noundef @async_handler_sign_with_different_pkey_and_apply)
  %7159 = icmp eq i32 %7158, -1
  br i1 %7159, label %7160, label %7213

7160:                                             ; preds = %7153
  br label %7161

7161:                                             ; preds = %7160
  br label %7162

7162:                                             ; preds = %7161
  call void @llvm.lifetime.start.p0(i64 4, ptr %149) #10
  %7163 = call ptr @__errno_location() #11
  %7164 = load i32, ptr %7163, align 4, !tbaa !5
  store i32 %7164, ptr %149, align 4, !tbaa !5
  %7165 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7166 = call i32 @s2n_print_stacktrace(ptr noundef %7165)
  %7167 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7168 = trunc i8 %7167 to i1
  br i1 %7168, label %7169, label %7191

7169:                                             ; preds = %7162
  %7170 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7171 = call i32 @fileno(ptr noundef %7170) #10
  %7172 = call i32 @isatty(i32 noundef %7171) #10
  %7173 = icmp ne i32 %7172, 0
  br i1 %7173, label %7174, label %7191

7174:                                             ; preds = %7169
  %7175 = load i32, ptr %149, align 4, !tbaa !5
  %7176 = call ptr @__errno_location() #11
  store i32 %7175, ptr %7176, align 4, !tbaa !5
  %7177 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7178 = load i32, ptr @test_count, align 4, !tbaa !5
  %7179 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7180 = load i32, ptr %7179, align 4, !tbaa !5
  %7181 = call ptr @s2n_strerror(i32 noundef %7180, ptr noundef @.str.3)
  %7182 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7183 = load i32, ptr %7182, align 4, !tbaa !5
  %7184 = call ptr @s2n_strerror_debug(i32 noundef %7183, ptr noundef @.str.3)
  %7185 = call ptr @__errno_location() #11
  %7186 = load i32, ptr %7185, align 4, !tbaa !5
  %7187 = call ptr @strerror(i32 noundef %7186) #10
  %7188 = call ptr @__errno_location() #11
  %7189 = load i32, ptr %7188, align 4, !tbaa !5
  %7190 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7177, ptr noundef @.str, i32 noundef %7178, ptr noundef @.str.103, ptr noundef @.str.2, i32 noundef 604, ptr noundef %7181, ptr noundef %7184, ptr noundef %7187, i32 noundef %7189) #10
  br label %7208

7191:                                             ; preds = %7169, %7162
  %7192 = load i32, ptr %149, align 4, !tbaa !5
  %7193 = call ptr @__errno_location() #11
  store i32 %7192, ptr %7193, align 4, !tbaa !5
  %7194 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7195 = load i32, ptr @test_count, align 4, !tbaa !5
  %7196 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7197 = load i32, ptr %7196, align 4, !tbaa !5
  %7198 = call ptr @s2n_strerror(i32 noundef %7197, ptr noundef @.str.3)
  %7199 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7200 = load i32, ptr %7199, align 4, !tbaa !5
  %7201 = call ptr @s2n_strerror_debug(i32 noundef %7200, ptr noundef @.str.3)
  %7202 = call ptr @__errno_location() #11
  %7203 = load i32, ptr %7202, align 4, !tbaa !5
  %7204 = call ptr @strerror(i32 noundef %7203) #10
  %7205 = call ptr @__errno_location() #11
  %7206 = load i32, ptr %7205, align 4, !tbaa !5
  %7207 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7194, ptr noundef @.str.4, i32 noundef %7195, ptr noundef @.str.103, ptr noundef @.str.2, i32 noundef 604, ptr noundef %7198, ptr noundef %7201, ptr noundef %7204, i32 noundef %7206) #10
  br label %7208

7208:                                             ; preds = %7191, %7174
  call void @llvm.lifetime.end.p0(i64 4, ptr %149) #10
  br label %7209

7209:                                             ; preds = %7208
  br label %7210

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

7211:                                             ; No predecessors!
  br label %7212

7212:                                             ; preds = %7211
  br label %7213

7213:                                             ; preds = %7212, %7153
  br label %7214

7214:                                             ; preds = %7213
  br label %7215

7215:                                             ; preds = %7214
  %7216 = call i32 @s2n_io_pair_close(ptr noundef %144)
  call void @llvm.lifetime.end.p0(i64 8, ptr %144) #10
  %7217 = call i32 @s2n_connection_ptr_free(ptr noundef %141)
  %7218 = getelementptr inbounds %struct.s2n_result, ptr %150, i32 0, i32 0
  store i32 %7217, ptr %7218, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %141) #10
  %7219 = call i32 @s2n_connection_ptr_free(ptr noundef %138)
  %7220 = getelementptr inbounds %struct.s2n_result, ptr %151, i32 0, i32 0
  store i32 %7219, ptr %7220, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %138) #10
  %7221 = call i32 @s2n_config_ptr_free(ptr noundef %133)
  %7222 = getelementptr inbounds %struct.s2n_result, ptr %152, i32 0, i32 0
  store i32 %7221, ptr %7222, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %133) #10
  %7223 = call i32 @s2n_config_ptr_free(ptr noundef %128)
  %7224 = getelementptr inbounds %struct.s2n_result, ptr %153, i32 0, i32 0
  store i32 %7223, ptr %7224, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %128) #10
  call void @llvm.lifetime.end.p0(i64 64, ptr %19) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %18) #10
  br label %7225

7225:                                             ; preds = %7215
  %7226 = load i64, ptr %17, align 8, !tbaa !15
  %7227 = add i64 %7226, 1
  store i64 %7227, ptr %17, align 8, !tbaa !15
  br label %653, !llvm.loop !36

7228:                                             ; preds = %656
  br label %7229

7229:                                             ; preds = %7228
  %7230 = load i32, ptr @test_count, align 4, !tbaa !5
  %7231 = add nsw i32 %7230, 1
  store i32 %7231, ptr @test_count, align 4, !tbaa !5
  %7232 = load i8, ptr @async_handler_sign_operation_called, align 1, !tbaa !11, !range !13, !noundef !14
  %7233 = trunc i8 %7232 to i1
  %7234 = zext i1 %7233 to i32
  %7235 = icmp eq i32 %7234, 1
  br i1 %7235, label %7289, label %7236

7236:                                             ; preds = %7229
  br label %7237

7237:                                             ; preds = %7236
  br label %7238

7238:                                             ; preds = %7237
  call void @llvm.lifetime.start.p0(i64 4, ptr %154) #10
  %7239 = call ptr @__errno_location() #11
  %7240 = load i32, ptr %7239, align 4, !tbaa !5
  store i32 %7240, ptr %154, align 4, !tbaa !5
  %7241 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7242 = call i32 @s2n_print_stacktrace(ptr noundef %7241)
  %7243 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7244 = trunc i8 %7243 to i1
  br i1 %7244, label %7245, label %7267

7245:                                             ; preds = %7238
  %7246 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7247 = call i32 @fileno(ptr noundef %7246) #10
  %7248 = call i32 @isatty(i32 noundef %7247) #10
  %7249 = icmp ne i32 %7248, 0
  br i1 %7249, label %7250, label %7267

7250:                                             ; preds = %7245
  %7251 = load i32, ptr %154, align 4, !tbaa !5
  %7252 = call ptr @__errno_location() #11
  store i32 %7251, ptr %7252, align 4, !tbaa !5
  %7253 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7254 = load i32, ptr @test_count, align 4, !tbaa !5
  %7255 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7256 = load i32, ptr %7255, align 4, !tbaa !5
  %7257 = call ptr @s2n_strerror(i32 noundef %7256, ptr noundef @.str.3)
  %7258 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7259 = load i32, ptr %7258, align 4, !tbaa !5
  %7260 = call ptr @s2n_strerror_debug(i32 noundef %7259, ptr noundef @.str.3)
  %7261 = call ptr @__errno_location() #11
  %7262 = load i32, ptr %7261, align 4, !tbaa !5
  %7263 = call ptr @strerror(i32 noundef %7262) #10
  %7264 = call ptr @__errno_location() #11
  %7265 = load i32, ptr %7264, align 4, !tbaa !5
  %7266 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7253, ptr noundef @.str, i32 noundef %7254, ptr noundef @.str.107, ptr noundef @.str.2, i32 noundef 610, ptr noundef %7257, ptr noundef %7260, ptr noundef %7263, i32 noundef %7265) #10
  br label %7284

7267:                                             ; preds = %7245, %7238
  %7268 = load i32, ptr %154, align 4, !tbaa !5
  %7269 = call ptr @__errno_location() #11
  store i32 %7268, ptr %7269, align 4, !tbaa !5
  %7270 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7271 = load i32, ptr @test_count, align 4, !tbaa !5
  %7272 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7273 = load i32, ptr %7272, align 4, !tbaa !5
  %7274 = call ptr @s2n_strerror(i32 noundef %7273, ptr noundef @.str.3)
  %7275 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7276 = load i32, ptr %7275, align 4, !tbaa !5
  %7277 = call ptr @s2n_strerror_debug(i32 noundef %7276, ptr noundef @.str.3)
  %7278 = call ptr @__errno_location() #11
  %7279 = load i32, ptr %7278, align 4, !tbaa !5
  %7280 = call ptr @strerror(i32 noundef %7279) #10
  %7281 = call ptr @__errno_location() #11
  %7282 = load i32, ptr %7281, align 4, !tbaa !5
  %7283 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7270, ptr noundef @.str.4, i32 noundef %7271, ptr noundef @.str.107, ptr noundef @.str.2, i32 noundef 610, ptr noundef %7274, ptr noundef %7277, ptr noundef %7280, i32 noundef %7282) #10
  br label %7284

7284:                                             ; preds = %7267, %7250
  call void @llvm.lifetime.end.p0(i64 4, ptr %154) #10
  br label %7285

7285:                                             ; preds = %7284
  br label %7286

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

7287:                                             ; No predecessors!
  br label %7288

7288:                                             ; preds = %7287
  br label %7289

7289:                                             ; preds = %7288, %7229
  br label %7290

7290:                                             ; preds = %7289
  br label %7291

7291:                                             ; preds = %7290
  call void @llvm.lifetime.start.p0(i64 56, ptr %155) #10
  call void @llvm.memset.p0.i64(ptr align 8 %155, i8 0, i64 56, i1 false)
  br label %7292

7292:                                             ; preds = %7291
  %7293 = load i32, ptr @test_count, align 4, !tbaa !5
  %7294 = add nsw i32 %7293, 1
  store i32 %7294, ptr @test_count, align 4, !tbaa !5
  %7295 = call i32 @s2n_hash_new(ptr noundef %155)
  %7296 = icmp eq i32 %7295, -1
  br i1 %7296, label %7297, label %7350

7297:                                             ; preds = %7292
  br label %7298

7298:                                             ; preds = %7297
  br label %7299

7299:                                             ; preds = %7298
  call void @llvm.lifetime.start.p0(i64 4, ptr %156) #10
  %7300 = call ptr @__errno_location() #11
  %7301 = load i32, ptr %7300, align 4, !tbaa !5
  store i32 %7301, ptr %156, align 4, !tbaa !5
  %7302 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7303 = call i32 @s2n_print_stacktrace(ptr noundef %7302)
  %7304 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7305 = trunc i8 %7304 to i1
  br i1 %7305, label %7306, label %7328

7306:                                             ; preds = %7299
  %7307 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7308 = call i32 @fileno(ptr noundef %7307) #10
  %7309 = call i32 @isatty(i32 noundef %7308) #10
  %7310 = icmp ne i32 %7309, 0
  br i1 %7310, label %7311, label %7328

7311:                                             ; preds = %7306
  %7312 = load i32, ptr %156, align 4, !tbaa !5
  %7313 = call ptr @__errno_location() #11
  store i32 %7312, ptr %7313, align 4, !tbaa !5
  %7314 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7315 = load i32, ptr @test_count, align 4, !tbaa !5
  %7316 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7317 = load i32, ptr %7316, align 4, !tbaa !5
  %7318 = call ptr @s2n_strerror(i32 noundef %7317, ptr noundef @.str.3)
  %7319 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7320 = load i32, ptr %7319, align 4, !tbaa !5
  %7321 = call ptr @s2n_strerror_debug(i32 noundef %7320, ptr noundef @.str.3)
  %7322 = call ptr @__errno_location() #11
  %7323 = load i32, ptr %7322, align 4, !tbaa !5
  %7324 = call ptr @strerror(i32 noundef %7323) #10
  %7325 = call ptr @__errno_location() #11
  %7326 = load i32, ptr %7325, align 4, !tbaa !5
  %7327 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7314, ptr noundef @.str, i32 noundef %7315, ptr noundef @.str.18, ptr noundef @.str.2, i32 noundef 613, ptr noundef %7318, ptr noundef %7321, ptr noundef %7324, i32 noundef %7326) #10
  br label %7345

7328:                                             ; preds = %7306, %7299
  %7329 = load i32, ptr %156, align 4, !tbaa !5
  %7330 = call ptr @__errno_location() #11
  store i32 %7329, ptr %7330, align 4, !tbaa !5
  %7331 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7332 = load i32, ptr @test_count, align 4, !tbaa !5
  %7333 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7334 = load i32, ptr %7333, align 4, !tbaa !5
  %7335 = call ptr @s2n_strerror(i32 noundef %7334, ptr noundef @.str.3)
  %7336 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7337 = load i32, ptr %7336, align 4, !tbaa !5
  %7338 = call ptr @s2n_strerror_debug(i32 noundef %7337, ptr noundef @.str.3)
  %7339 = call ptr @__errno_location() #11
  %7340 = load i32, ptr %7339, align 4, !tbaa !5
  %7341 = call ptr @strerror(i32 noundef %7340) #10
  %7342 = call ptr @__errno_location() #11
  %7343 = load i32, ptr %7342, align 4, !tbaa !5
  %7344 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7331, ptr noundef @.str.4, i32 noundef %7332, ptr noundef @.str.18, ptr noundef @.str.2, i32 noundef 613, ptr noundef %7335, ptr noundef %7338, ptr noundef %7341, i32 noundef %7343) #10
  br label %7345

7345:                                             ; preds = %7328, %7311
  call void @llvm.lifetime.end.p0(i64 4, ptr %156) #10
  br label %7346

7346:                                             ; preds = %7345
  br label %7347

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

7348:                                             ; No predecessors!
  br label %7349

7349:                                             ; preds = %7348
  br label %7350

7350:                                             ; preds = %7349, %7292
  br label %7351

7351:                                             ; preds = %7350
  br label %7352

7352:                                             ; preds = %7351
  br label %7353

7353:                                             ; preds = %7352
  %7354 = load i32, ptr @test_count, align 4, !tbaa !5
  %7355 = add nsw i32 %7354, 1
  store i32 %7355, ptr @test_count, align 4, !tbaa !5
  %7356 = call i32 @s2n_hash_init(ptr noundef %155, i32 noundef 4)
  %7357 = icmp eq i32 %7356, -1
  br i1 %7357, label %7358, label %7411

7358:                                             ; preds = %7353
  br label %7359

7359:                                             ; preds = %7358
  br label %7360

7360:                                             ; preds = %7359
  call void @llvm.lifetime.start.p0(i64 4, ptr %157) #10
  %7361 = call ptr @__errno_location() #11
  %7362 = load i32, ptr %7361, align 4, !tbaa !5
  store i32 %7362, ptr %157, align 4, !tbaa !5
  %7363 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7364 = call i32 @s2n_print_stacktrace(ptr noundef %7363)
  %7365 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7366 = trunc i8 %7365 to i1
  br i1 %7366, label %7367, label %7389

7367:                                             ; preds = %7360
  %7368 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7369 = call i32 @fileno(ptr noundef %7368) #10
  %7370 = call i32 @isatty(i32 noundef %7369) #10
  %7371 = icmp ne i32 %7370, 0
  br i1 %7371, label %7372, label %7389

7372:                                             ; preds = %7367
  %7373 = load i32, ptr %157, align 4, !tbaa !5
  %7374 = call ptr @__errno_location() #11
  store i32 %7373, ptr %7374, align 4, !tbaa !5
  %7375 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7376 = load i32, ptr @test_count, align 4, !tbaa !5
  %7377 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7378 = load i32, ptr %7377, align 4, !tbaa !5
  %7379 = call ptr @s2n_strerror(i32 noundef %7378, ptr noundef @.str.3)
  %7380 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7381 = load i32, ptr %7380, align 4, !tbaa !5
  %7382 = call ptr @s2n_strerror_debug(i32 noundef %7381, ptr noundef @.str.3)
  %7383 = call ptr @__errno_location() #11
  %7384 = load i32, ptr %7383, align 4, !tbaa !5
  %7385 = call ptr @strerror(i32 noundef %7384) #10
  %7386 = call ptr @__errno_location() #11
  %7387 = load i32, ptr %7386, align 4, !tbaa !5
  %7388 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7375, ptr noundef @.str, i32 noundef %7376, ptr noundef @.str.19, ptr noundef @.str.2, i32 noundef 614, ptr noundef %7379, ptr noundef %7382, ptr noundef %7385, i32 noundef %7387) #10
  br label %7406

7389:                                             ; preds = %7367, %7360
  %7390 = load i32, ptr %157, align 4, !tbaa !5
  %7391 = call ptr @__errno_location() #11
  store i32 %7390, ptr %7391, align 4, !tbaa !5
  %7392 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7393 = load i32, ptr @test_count, align 4, !tbaa !5
  %7394 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7395 = load i32, ptr %7394, align 4, !tbaa !5
  %7396 = call ptr @s2n_strerror(i32 noundef %7395, ptr noundef @.str.3)
  %7397 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7398 = load i32, ptr %7397, align 4, !tbaa !5
  %7399 = call ptr @s2n_strerror_debug(i32 noundef %7398, ptr noundef @.str.3)
  %7400 = call ptr @__errno_location() #11
  %7401 = load i32, ptr %7400, align 4, !tbaa !5
  %7402 = call ptr @strerror(i32 noundef %7401) #10
  %7403 = call ptr @__errno_location() #11
  %7404 = load i32, ptr %7403, align 4, !tbaa !5
  %7405 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7392, ptr noundef @.str.4, i32 noundef %7393, ptr noundef @.str.19, ptr noundef @.str.2, i32 noundef 614, ptr noundef %7396, ptr noundef %7399, ptr noundef %7402, i32 noundef %7404) #10
  br label %7406

7406:                                             ; preds = %7389, %7372
  call void @llvm.lifetime.end.p0(i64 4, ptr %157) #10
  br label %7407

7407:                                             ; preds = %7406
  br label %7408

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

7409:                                             ; No predecessors!
  br label %7410

7410:                                             ; preds = %7409
  br label %7411

7411:                                             ; preds = %7410, %7353
  br label %7412

7412:                                             ; preds = %7411
  br label %7413

7413:                                             ; preds = %7412
  br label %7414

7414:                                             ; preds = %7413
  %7415 = load i32, ptr @test_count, align 4, !tbaa !5
  %7416 = add nsw i32 %7415, 1
  store i32 %7416, ptr @test_count, align 4, !tbaa !5
  %7417 = call i32 @s2n_hash_update(ptr noundef %155, ptr noundef @test_digest_data, i32 noundef 14)
  %7418 = icmp eq i32 %7417, -1
  br i1 %7418, label %7419, label %7472

7419:                                             ; preds = %7414
  br label %7420

7420:                                             ; preds = %7419
  br label %7421

7421:                                             ; preds = %7420
  call void @llvm.lifetime.start.p0(i64 4, ptr %158) #10
  %7422 = call ptr @__errno_location() #11
  %7423 = load i32, ptr %7422, align 4, !tbaa !5
  store i32 %7423, ptr %158, align 4, !tbaa !5
  %7424 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7425 = call i32 @s2n_print_stacktrace(ptr noundef %7424)
  %7426 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7427 = trunc i8 %7426 to i1
  br i1 %7427, label %7428, label %7450

7428:                                             ; preds = %7421
  %7429 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7430 = call i32 @fileno(ptr noundef %7429) #10
  %7431 = call i32 @isatty(i32 noundef %7430) #10
  %7432 = icmp ne i32 %7431, 0
  br i1 %7432, label %7433, label %7450

7433:                                             ; preds = %7428
  %7434 = load i32, ptr %158, align 4, !tbaa !5
  %7435 = call ptr @__errno_location() #11
  store i32 %7434, ptr %7435, align 4, !tbaa !5
  %7436 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7437 = load i32, ptr @test_count, align 4, !tbaa !5
  %7438 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7439 = load i32, ptr %7438, align 4, !tbaa !5
  %7440 = call ptr @s2n_strerror(i32 noundef %7439, ptr noundef @.str.3)
  %7441 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7442 = load i32, ptr %7441, align 4, !tbaa !5
  %7443 = call ptr @s2n_strerror_debug(i32 noundef %7442, ptr noundef @.str.3)
  %7444 = call ptr @__errno_location() #11
  %7445 = load i32, ptr %7444, align 4, !tbaa !5
  %7446 = call ptr @strerror(i32 noundef %7445) #10
  %7447 = call ptr @__errno_location() #11
  %7448 = load i32, ptr %7447, align 4, !tbaa !5
  %7449 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7436, ptr noundef @.str, i32 noundef %7437, ptr noundef @.str.20, ptr noundef @.str.2, i32 noundef 615, ptr noundef %7440, ptr noundef %7443, ptr noundef %7446, i32 noundef %7448) #10
  br label %7467

7450:                                             ; preds = %7428, %7421
  %7451 = load i32, ptr %158, align 4, !tbaa !5
  %7452 = call ptr @__errno_location() #11
  store i32 %7451, ptr %7452, align 4, !tbaa !5
  %7453 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7454 = load i32, ptr @test_count, align 4, !tbaa !5
  %7455 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7456 = load i32, ptr %7455, align 4, !tbaa !5
  %7457 = call ptr @s2n_strerror(i32 noundef %7456, ptr noundef @.str.3)
  %7458 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7459 = load i32, ptr %7458, align 4, !tbaa !5
  %7460 = call ptr @s2n_strerror_debug(i32 noundef %7459, ptr noundef @.str.3)
  %7461 = call ptr @__errno_location() #11
  %7462 = load i32, ptr %7461, align 4, !tbaa !5
  %7463 = call ptr @strerror(i32 noundef %7462) #10
  %7464 = call ptr @__errno_location() #11
  %7465 = load i32, ptr %7464, align 4, !tbaa !5
  %7466 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7453, ptr noundef @.str.4, i32 noundef %7454, ptr noundef @.str.20, ptr noundef @.str.2, i32 noundef 615, ptr noundef %7457, ptr noundef %7460, ptr noundef %7463, i32 noundef %7465) #10
  br label %7467

7467:                                             ; preds = %7450, %7433
  call void @llvm.lifetime.end.p0(i64 4, ptr %158) #10
  br label %7468

7468:                                             ; preds = %7467
  br label %7469

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

7470:                                             ; No predecessors!
  br label %7471

7471:                                             ; preds = %7470
  br label %7472

7472:                                             ; preds = %7471, %7414
  br label %7473

7473:                                             ; preds = %7472
  br label %7474

7474:                                             ; preds = %7473
  br label %7475

7475:                                             ; preds = %7474
  %7476 = load i32, ptr @test_count, align 4, !tbaa !5
  %7477 = add nsw i32 %7476, 1
  store i32 %7477, ptr @test_count, align 4, !tbaa !5
  %7478 = load i8, ptr @offload_callback_count, align 1, !tbaa !38
  %7479 = zext i8 %7478 to i32
  %7480 = icmp eq i32 0, %7479
  br i1 %7480, label %7534, label %7481

7481:                                             ; preds = %7475
  br label %7482

7482:                                             ; preds = %7481
  br label %7483

7483:                                             ; preds = %7482
  call void @llvm.lifetime.start.p0(i64 4, ptr %159) #10
  %7484 = call ptr @__errno_location() #11
  %7485 = load i32, ptr %7484, align 4, !tbaa !5
  store i32 %7485, ptr %159, align 4, !tbaa !5
  %7486 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7487 = call i32 @s2n_print_stacktrace(ptr noundef %7486)
  %7488 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7489 = trunc i8 %7488 to i1
  br i1 %7489, label %7490, label %7512

7490:                                             ; preds = %7483
  %7491 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7492 = call i32 @fileno(ptr noundef %7491) #10
  %7493 = call i32 @isatty(i32 noundef %7492) #10
  %7494 = icmp ne i32 %7493, 0
  br i1 %7494, label %7495, label %7512

7495:                                             ; preds = %7490
  %7496 = load i32, ptr %159, align 4, !tbaa !5
  %7497 = call ptr @__errno_location() #11
  store i32 %7496, ptr %7497, align 4, !tbaa !5
  %7498 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7499 = load i32, ptr @test_count, align 4, !tbaa !5
  %7500 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7501 = load i32, ptr %7500, align 4, !tbaa !5
  %7502 = call ptr @s2n_strerror(i32 noundef %7501, ptr noundef @.str.3)
  %7503 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7504 = load i32, ptr %7503, align 4, !tbaa !5
  %7505 = call ptr @s2n_strerror_debug(i32 noundef %7504, ptr noundef @.str.3)
  %7506 = call ptr @__errno_location() #11
  %7507 = load i32, ptr %7506, align 4, !tbaa !5
  %7508 = call ptr @strerror(i32 noundef %7507) #10
  %7509 = call ptr @__errno_location() #11
  %7510 = load i32, ptr %7509, align 4, !tbaa !5
  %7511 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7498, ptr noundef @.str, i32 noundef %7499, ptr noundef @.str.108, ptr noundef @.str.2, i32 noundef 619, ptr noundef %7502, ptr noundef %7505, ptr noundef %7508, i32 noundef %7510) #10
  br label %7529

7512:                                             ; preds = %7490, %7483
  %7513 = load i32, ptr %159, align 4, !tbaa !5
  %7514 = call ptr @__errno_location() #11
  store i32 %7513, ptr %7514, align 4, !tbaa !5
  %7515 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7516 = load i32, ptr @test_count, align 4, !tbaa !5
  %7517 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7518 = load i32, ptr %7517, align 4, !tbaa !5
  %7519 = call ptr @s2n_strerror(i32 noundef %7518, ptr noundef @.str.3)
  %7520 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7521 = load i32, ptr %7520, align 4, !tbaa !5
  %7522 = call ptr @s2n_strerror_debug(i32 noundef %7521, ptr noundef @.str.3)
  %7523 = call ptr @__errno_location() #11
  %7524 = load i32, ptr %7523, align 4, !tbaa !5
  %7525 = call ptr @strerror(i32 noundef %7524) #10
  %7526 = call ptr @__errno_location() #11
  %7527 = load i32, ptr %7526, align 4, !tbaa !5
  %7528 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7515, ptr noundef @.str.4, i32 noundef %7516, ptr noundef @.str.108, ptr noundef @.str.2, i32 noundef 619, ptr noundef %7519, ptr noundef %7522, ptr noundef %7525, i32 noundef %7527) #10
  br label %7529

7529:                                             ; preds = %7512, %7495
  call void @llvm.lifetime.end.p0(i64 4, ptr %159) #10
  br label %7530

7530:                                             ; preds = %7529
  br label %7531

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

7532:                                             ; No predecessors!
  br label %7533

7533:                                             ; preds = %7532
  br label %7534

7534:                                             ; preds = %7533, %7475
  br label %7535

7535:                                             ; preds = %7534
  br label %7536

7536:                                             ; preds = %7535
  call void @llvm.lifetime.start.p0(i64 8, ptr %160) #10
  %7537 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %7537, ptr %160, align 8, !tbaa !9
  br label %7538

7538:                                             ; preds = %7536
  %7539 = load i32, ptr @test_count, align 4, !tbaa !5
  %7540 = add nsw i32 %7539, 1
  store i32 %7540, ptr @test_count, align 4, !tbaa !5
  %7541 = load ptr, ptr %160, align 8, !tbaa !9
  %7542 = icmp eq ptr %7541, null
  br i1 %7542, label %7543, label %7596

7543:                                             ; preds = %7538
  br label %7544

7544:                                             ; preds = %7543
  br label %7545

7545:                                             ; preds = %7544
  call void @llvm.lifetime.start.p0(i64 4, ptr %161) #10
  %7546 = call ptr @__errno_location() #11
  %7547 = load i32, ptr %7546, align 4, !tbaa !5
  store i32 %7547, ptr %161, align 4, !tbaa !5
  %7548 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7549 = call i32 @s2n_print_stacktrace(ptr noundef %7548)
  %7550 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7551 = trunc i8 %7550 to i1
  br i1 %7551, label %7552, label %7574

7552:                                             ; preds = %7545
  %7553 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7554 = call i32 @fileno(ptr noundef %7553) #10
  %7555 = call i32 @isatty(i32 noundef %7554) #10
  %7556 = icmp ne i32 %7555, 0
  br i1 %7556, label %7557, label %7574

7557:                                             ; preds = %7552
  %7558 = load i32, ptr %161, align 4, !tbaa !5
  %7559 = call ptr @__errno_location() #11
  store i32 %7558, ptr %7559, align 4, !tbaa !5
  %7560 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7561 = load i32, ptr @test_count, align 4, !tbaa !5
  %7562 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7563 = load i32, ptr %7562, align 4, !tbaa !5
  %7564 = call ptr @s2n_strerror(i32 noundef %7563, ptr noundef @.str.3)
  %7565 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7566 = load i32, ptr %7565, align 4, !tbaa !5
  %7567 = call ptr @s2n_strerror_debug(i32 noundef %7566, ptr noundef @.str.3)
  %7568 = call ptr @__errno_location() #11
  %7569 = load i32, ptr %7568, align 4, !tbaa !5
  %7570 = call ptr @strerror(i32 noundef %7569) #10
  %7571 = call ptr @__errno_location() #11
  %7572 = load i32, ptr %7571, align 4, !tbaa !5
  %7573 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7560, ptr noundef @.str, i32 noundef %7561, ptr noundef @.str.46, ptr noundef @.str.2, i32 noundef 621, ptr noundef %7564, ptr noundef %7567, ptr noundef %7570, i32 noundef %7572) #10
  br label %7591

7574:                                             ; preds = %7552, %7545
  %7575 = load i32, ptr %161, align 4, !tbaa !5
  %7576 = call ptr @__errno_location() #11
  store i32 %7575, ptr %7576, align 4, !tbaa !5
  %7577 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7578 = load i32, ptr @test_count, align 4, !tbaa !5
  %7579 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7580 = load i32, ptr %7579, align 4, !tbaa !5
  %7581 = call ptr @s2n_strerror(i32 noundef %7580, ptr noundef @.str.3)
  %7582 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7583 = load i32, ptr %7582, align 4, !tbaa !5
  %7584 = call ptr @s2n_strerror_debug(i32 noundef %7583, ptr noundef @.str.3)
  %7585 = call ptr @__errno_location() #11
  %7586 = load i32, ptr %7585, align 4, !tbaa !5
  %7587 = call ptr @strerror(i32 noundef %7586) #10
  %7588 = call ptr @__errno_location() #11
  %7589 = load i32, ptr %7588, align 4, !tbaa !5
  %7590 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7577, ptr noundef @.str.4, i32 noundef %7578, ptr noundef @.str.46, ptr noundef @.str.2, i32 noundef 621, ptr noundef %7581, ptr noundef %7584, ptr noundef %7587, i32 noundef %7589) #10
  br label %7591

7591:                                             ; preds = %7574, %7557
  call void @llvm.lifetime.end.p0(i64 4, ptr %161) #10
  br label %7592

7592:                                             ; preds = %7591
  br label %7593

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

7594:                                             ; No predecessors!
  br label %7595

7595:                                             ; preds = %7594
  br label %7596

7596:                                             ; preds = %7595, %7538
  br label %7597

7597:                                             ; preds = %7596
  br label %7598

7598:                                             ; preds = %7597
  %7599 = load ptr, ptr %160, align 8, !tbaa !9
  %7600 = getelementptr inbounds %struct.s2n_connection, ptr %7599, i32 0, i32 1
  %7601 = load ptr, ptr %7600, align 8, !tbaa !39
  %7602 = getelementptr inbounds %struct.s2n_config, ptr %7601, i32 0, i32 39
  store ptr @async_pkey_signature_callback, ptr %7602, align 8, !tbaa !63
  br label %7603

7603:                                             ; preds = %7598
  %7604 = load i32, ptr @test_count, align 4, !tbaa !5
  %7605 = add nsw i32 %7604, 1
  store i32 %7605, ptr @test_count, align 4, !tbaa !5
  %7606 = load ptr, ptr %160, align 8, !tbaa !9
  %7607 = call i32 @s2n_async_pkey_sign(ptr noundef %7606, i32 noundef 3, ptr noundef %155, ptr noundef @s2n_async_sign_complete)
  %7608 = getelementptr inbounds %struct.s2n_result, ptr %162, i32 0, i32 0
  store i32 %7607, ptr %7608, align 4
  %7609 = getelementptr inbounds %struct.s2n_result, ptr %162, i32 0, i32 0
  %7610 = load i32, ptr %7609, align 4
  %7611 = call zeroext i1 @s2n_result_is_ok(i32 %7610)
  br i1 %7611, label %7612, label %7665

7612:                                             ; preds = %7603
  br label %7613

7613:                                             ; preds = %7612
  br label %7614

7614:                                             ; preds = %7613
  call void @llvm.lifetime.start.p0(i64 4, ptr %163) #10
  %7615 = call ptr @__errno_location() #11
  %7616 = load i32, ptr %7615, align 4, !tbaa !5
  store i32 %7616, ptr %163, align 4, !tbaa !5
  %7617 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7618 = call i32 @s2n_print_stacktrace(ptr noundef %7617)
  %7619 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7620 = trunc i8 %7619 to i1
  br i1 %7620, label %7621, label %7643

7621:                                             ; preds = %7614
  %7622 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7623 = call i32 @fileno(ptr noundef %7622) #10
  %7624 = call i32 @isatty(i32 noundef %7623) #10
  %7625 = icmp ne i32 %7624, 0
  br i1 %7625, label %7626, label %7643

7626:                                             ; preds = %7621
  %7627 = load i32, ptr %163, align 4, !tbaa !5
  %7628 = call ptr @__errno_location() #11
  store i32 %7627, ptr %7628, align 4, !tbaa !5
  %7629 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7630 = load i32, ptr @test_count, align 4, !tbaa !5
  %7631 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7632 = load i32, ptr %7631, align 4, !tbaa !5
  %7633 = call ptr @s2n_strerror(i32 noundef %7632, ptr noundef @.str.3)
  %7634 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7635 = load i32, ptr %7634, align 4, !tbaa !5
  %7636 = call ptr @s2n_strerror_debug(i32 noundef %7635, ptr noundef @.str.3)
  %7637 = call ptr @__errno_location() #11
  %7638 = load i32, ptr %7637, align 4, !tbaa !5
  %7639 = call ptr @strerror(i32 noundef %7638) #10
  %7640 = call ptr @__errno_location() #11
  %7641 = load i32, ptr %7640, align 4, !tbaa !5
  %7642 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7629, ptr noundef @.str, i32 noundef %7630, ptr noundef @.str.109, ptr noundef @.str.2, i32 noundef 624, ptr noundef %7633, ptr noundef %7636, ptr noundef %7639, i32 noundef %7641) #10
  br label %7660

7643:                                             ; preds = %7621, %7614
  %7644 = load i32, ptr %163, align 4, !tbaa !5
  %7645 = call ptr @__errno_location() #11
  store i32 %7644, ptr %7645, align 4, !tbaa !5
  %7646 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7647 = load i32, ptr @test_count, align 4, !tbaa !5
  %7648 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7649 = load i32, ptr %7648, align 4, !tbaa !5
  %7650 = call ptr @s2n_strerror(i32 noundef %7649, ptr noundef @.str.3)
  %7651 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7652 = load i32, ptr %7651, align 4, !tbaa !5
  %7653 = call ptr @s2n_strerror_debug(i32 noundef %7652, ptr noundef @.str.3)
  %7654 = call ptr @__errno_location() #11
  %7655 = load i32, ptr %7654, align 4, !tbaa !5
  %7656 = call ptr @strerror(i32 noundef %7655) #10
  %7657 = call ptr @__errno_location() #11
  %7658 = load i32, ptr %7657, align 4, !tbaa !5
  %7659 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7646, ptr noundef @.str.4, i32 noundef %7647, ptr noundef @.str.109, ptr noundef @.str.2, i32 noundef 624, ptr noundef %7650, ptr noundef %7653, ptr noundef %7656, i32 noundef %7658) #10
  br label %7660

7660:                                             ; preds = %7643, %7626
  call void @llvm.lifetime.end.p0(i64 4, ptr %163) #10
  br label %7661

7661:                                             ; preds = %7660
  br label %7662

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

7663:                                             ; No predecessors!
  br label %7664

7664:                                             ; preds = %7663
  br label %7665

7665:                                             ; preds = %7664, %7603
  br label %7666

7666:                                             ; preds = %7665
  br label %7667

7667:                                             ; preds = %7666
  br label %7668

7668:                                             ; preds = %7667
  %7669 = load i32, ptr @test_count, align 4, !tbaa !5
  %7670 = add nsw i32 %7669, 1
  store i32 %7670, ptr @test_count, align 4, !tbaa !5
  %7671 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7672 = load i32, ptr %7671, align 4, !tbaa !5
  %7673 = icmp eq i32 %7672, 201326593
  br i1 %7673, label %7727, label %7674

7674:                                             ; preds = %7668
  br label %7675

7675:                                             ; preds = %7674
  br label %7676

7676:                                             ; preds = %7675
  call void @llvm.lifetime.start.p0(i64 4, ptr %164) #10
  %7677 = call ptr @__errno_location() #11
  %7678 = load i32, ptr %7677, align 4, !tbaa !5
  store i32 %7678, ptr %164, align 4, !tbaa !5
  %7679 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7680 = call i32 @s2n_print_stacktrace(ptr noundef %7679)
  %7681 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7682 = trunc i8 %7681 to i1
  br i1 %7682, label %7683, label %7705

7683:                                             ; preds = %7676
  %7684 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7685 = call i32 @fileno(ptr noundef %7684) #10
  %7686 = call i32 @isatty(i32 noundef %7685) #10
  %7687 = icmp ne i32 %7686, 0
  br i1 %7687, label %7688, label %7705

7688:                                             ; preds = %7683
  %7689 = load i32, ptr %164, align 4, !tbaa !5
  %7690 = call ptr @__errno_location() #11
  store i32 %7689, ptr %7690, align 4, !tbaa !5
  %7691 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7692 = load i32, ptr @test_count, align 4, !tbaa !5
  %7693 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7694 = load i32, ptr %7693, align 4, !tbaa !5
  %7695 = call ptr @s2n_strerror(i32 noundef %7694, ptr noundef @.str.3)
  %7696 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7697 = load i32, ptr %7696, align 4, !tbaa !5
  %7698 = call ptr @s2n_strerror_debug(i32 noundef %7697, ptr noundef @.str.3)
  %7699 = call ptr @__errno_location() #11
  %7700 = load i32, ptr %7699, align 4, !tbaa !5
  %7701 = call ptr @strerror(i32 noundef %7700) #10
  %7702 = call ptr @__errno_location() #11
  %7703 = load i32, ptr %7702, align 4, !tbaa !5
  %7704 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7691, ptr noundef @.str, i32 noundef %7692, ptr noundef @.str.110, ptr noundef @.str.2, i32 noundef 625, ptr noundef %7695, ptr noundef %7698, ptr noundef %7701, i32 noundef %7703) #10
  br label %7722

7705:                                             ; preds = %7683, %7676
  %7706 = load i32, ptr %164, align 4, !tbaa !5
  %7707 = call ptr @__errno_location() #11
  store i32 %7706, ptr %7707, align 4, !tbaa !5
  %7708 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7709 = load i32, ptr @test_count, align 4, !tbaa !5
  %7710 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7711 = load i32, ptr %7710, align 4, !tbaa !5
  %7712 = call ptr @s2n_strerror(i32 noundef %7711, ptr noundef @.str.3)
  %7713 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7714 = load i32, ptr %7713, align 4, !tbaa !5
  %7715 = call ptr @s2n_strerror_debug(i32 noundef %7714, ptr noundef @.str.3)
  %7716 = call ptr @__errno_location() #11
  %7717 = load i32, ptr %7716, align 4, !tbaa !5
  %7718 = call ptr @strerror(i32 noundef %7717) #10
  %7719 = call ptr @__errno_location() #11
  %7720 = load i32, ptr %7719, align 4, !tbaa !5
  %7721 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7708, ptr noundef @.str.4, i32 noundef %7709, ptr noundef @.str.110, ptr noundef @.str.2, i32 noundef 625, ptr noundef %7712, ptr noundef %7715, ptr noundef %7718, i32 noundef %7720) #10
  br label %7722

7722:                                             ; preds = %7705, %7688
  call void @llvm.lifetime.end.p0(i64 4, ptr %164) #10
  br label %7723

7723:                                             ; preds = %7722
  br label %7724

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

7725:                                             ; No predecessors!
  br label %7726

7726:                                             ; preds = %7725
  br label %7727

7727:                                             ; preds = %7726, %7668
  br label %7728

7728:                                             ; preds = %7727
  br label %7729

7729:                                             ; preds = %7728
  br label %7730

7730:                                             ; preds = %7729
  %7731 = load i32, ptr @test_count, align 4, !tbaa !5
  %7732 = add nsw i32 %7731, 1
  store i32 %7732, ptr @test_count, align 4, !tbaa !5
  %7733 = load i8, ptr @offload_callback_count, align 1, !tbaa !38
  %7734 = zext i8 %7733 to i32
  %7735 = icmp eq i32 1, %7734
  br i1 %7735, label %7789, label %7736

7736:                                             ; preds = %7730
  br label %7737

7737:                                             ; preds = %7736
  br label %7738

7738:                                             ; preds = %7737
  call void @llvm.lifetime.start.p0(i64 4, ptr %165) #10
  %7739 = call ptr @__errno_location() #11
  %7740 = load i32, ptr %7739, align 4, !tbaa !5
  store i32 %7740, ptr %165, align 4, !tbaa !5
  %7741 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7742 = call i32 @s2n_print_stacktrace(ptr noundef %7741)
  %7743 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7744 = trunc i8 %7743 to i1
  br i1 %7744, label %7745, label %7767

7745:                                             ; preds = %7738
  %7746 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7747 = call i32 @fileno(ptr noundef %7746) #10
  %7748 = call i32 @isatty(i32 noundef %7747) #10
  %7749 = icmp ne i32 %7748, 0
  br i1 %7749, label %7750, label %7767

7750:                                             ; preds = %7745
  %7751 = load i32, ptr %165, align 4, !tbaa !5
  %7752 = call ptr @__errno_location() #11
  store i32 %7751, ptr %7752, align 4, !tbaa !5
  %7753 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7754 = load i32, ptr @test_count, align 4, !tbaa !5
  %7755 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7756 = load i32, ptr %7755, align 4, !tbaa !5
  %7757 = call ptr @s2n_strerror(i32 noundef %7756, ptr noundef @.str.3)
  %7758 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7759 = load i32, ptr %7758, align 4, !tbaa !5
  %7760 = call ptr @s2n_strerror_debug(i32 noundef %7759, ptr noundef @.str.3)
  %7761 = call ptr @__errno_location() #11
  %7762 = load i32, ptr %7761, align 4, !tbaa !5
  %7763 = call ptr @strerror(i32 noundef %7762) #10
  %7764 = call ptr @__errno_location() #11
  %7765 = load i32, ptr %7764, align 4, !tbaa !5
  %7766 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7753, ptr noundef @.str, i32 noundef %7754, ptr noundef @.str.111, ptr noundef @.str.2, i32 noundef 626, ptr noundef %7757, ptr noundef %7760, ptr noundef %7763, i32 noundef %7765) #10
  br label %7784

7767:                                             ; preds = %7745, %7738
  %7768 = load i32, ptr %165, align 4, !tbaa !5
  %7769 = call ptr @__errno_location() #11
  store i32 %7768, ptr %7769, align 4, !tbaa !5
  %7770 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7771 = load i32, ptr @test_count, align 4, !tbaa !5
  %7772 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7773 = load i32, ptr %7772, align 4, !tbaa !5
  %7774 = call ptr @s2n_strerror(i32 noundef %7773, ptr noundef @.str.3)
  %7775 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7776 = load i32, ptr %7775, align 4, !tbaa !5
  %7777 = call ptr @s2n_strerror_debug(i32 noundef %7776, ptr noundef @.str.3)
  %7778 = call ptr @__errno_location() #11
  %7779 = load i32, ptr %7778, align 4, !tbaa !5
  %7780 = call ptr @strerror(i32 noundef %7779) #10
  %7781 = call ptr @__errno_location() #11
  %7782 = load i32, ptr %7781, align 4, !tbaa !5
  %7783 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7770, ptr noundef @.str.4, i32 noundef %7771, ptr noundef @.str.111, ptr noundef @.str.2, i32 noundef 626, ptr noundef %7774, ptr noundef %7777, ptr noundef %7780, i32 noundef %7782) #10
  br label %7784

7784:                                             ; preds = %7767, %7750
  call void @llvm.lifetime.end.p0(i64 4, ptr %165) #10
  br label %7785

7785:                                             ; preds = %7784
  br label %7786

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

7787:                                             ; No predecessors!
  br label %7788

7788:                                             ; preds = %7787
  br label %7789

7789:                                             ; preds = %7788, %7730
  br label %7790

7790:                                             ; preds = %7789
  br label %7791

7791:                                             ; preds = %7790
  br label %7792

7792:                                             ; preds = %7791
  %7793 = load i32, ptr @test_count, align 4, !tbaa !5
  %7794 = add nsw i32 %7793, 1
  store i32 %7794, ptr @test_count, align 4, !tbaa !5
  %7795 = load ptr, ptr @pkey_op, align 8, !tbaa !9
  %7796 = load ptr, ptr %160, align 8, !tbaa !9
  %7797 = call i32 @s2n_async_pkey_op_apply(ptr noundef %7795, ptr noundef %7796)
  %7798 = icmp eq i32 %7797, -1
  br i1 %7798, label %7799, label %7852

7799:                                             ; preds = %7792
  br label %7800

7800:                                             ; preds = %7799
  br label %7801

7801:                                             ; preds = %7800
  call void @llvm.lifetime.start.p0(i64 4, ptr %166) #10
  %7802 = call ptr @__errno_location() #11
  %7803 = load i32, ptr %7802, align 4, !tbaa !5
  store i32 %7803, ptr %166, align 4, !tbaa !5
  %7804 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7805 = call i32 @s2n_print_stacktrace(ptr noundef %7804)
  %7806 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7807 = trunc i8 %7806 to i1
  br i1 %7807, label %7808, label %7830

7808:                                             ; preds = %7801
  %7809 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7810 = call i32 @fileno(ptr noundef %7809) #10
  %7811 = call i32 @isatty(i32 noundef %7810) #10
  %7812 = icmp ne i32 %7811, 0
  br i1 %7812, label %7813, label %7830

7813:                                             ; preds = %7808
  %7814 = load i32, ptr %166, align 4, !tbaa !5
  %7815 = call ptr @__errno_location() #11
  store i32 %7814, ptr %7815, align 4, !tbaa !5
  %7816 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7817 = load i32, ptr @test_count, align 4, !tbaa !5
  %7818 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7819 = load i32, ptr %7818, align 4, !tbaa !5
  %7820 = call ptr @s2n_strerror(i32 noundef %7819, ptr noundef @.str.3)
  %7821 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7822 = load i32, ptr %7821, align 4, !tbaa !5
  %7823 = call ptr @s2n_strerror_debug(i32 noundef %7822, ptr noundef @.str.3)
  %7824 = call ptr @__errno_location() #11
  %7825 = load i32, ptr %7824, align 4, !tbaa !5
  %7826 = call ptr @strerror(i32 noundef %7825) #10
  %7827 = call ptr @__errno_location() #11
  %7828 = load i32, ptr %7827, align 4, !tbaa !5
  %7829 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7816, ptr noundef @.str, i32 noundef %7817, ptr noundef @.str.112, ptr noundef @.str.2, i32 noundef 628, ptr noundef %7820, ptr noundef %7823, ptr noundef %7826, i32 noundef %7828) #10
  br label %7847

7830:                                             ; preds = %7808, %7801
  %7831 = load i32, ptr %166, align 4, !tbaa !5
  %7832 = call ptr @__errno_location() #11
  store i32 %7831, ptr %7832, align 4, !tbaa !5
  %7833 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7834 = load i32, ptr @test_count, align 4, !tbaa !5
  %7835 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7836 = load i32, ptr %7835, align 4, !tbaa !5
  %7837 = call ptr @s2n_strerror(i32 noundef %7836, ptr noundef @.str.3)
  %7838 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7839 = load i32, ptr %7838, align 4, !tbaa !5
  %7840 = call ptr @s2n_strerror_debug(i32 noundef %7839, ptr noundef @.str.3)
  %7841 = call ptr @__errno_location() #11
  %7842 = load i32, ptr %7841, align 4, !tbaa !5
  %7843 = call ptr @strerror(i32 noundef %7842) #10
  %7844 = call ptr @__errno_location() #11
  %7845 = load i32, ptr %7844, align 4, !tbaa !5
  %7846 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7833, ptr noundef @.str.4, i32 noundef %7834, ptr noundef @.str.112, ptr noundef @.str.2, i32 noundef 628, ptr noundef %7837, ptr noundef %7840, ptr noundef %7843, i32 noundef %7845) #10
  br label %7847

7847:                                             ; preds = %7830, %7813
  call void @llvm.lifetime.end.p0(i64 4, ptr %166) #10
  br label %7848

7848:                                             ; preds = %7847
  br label %7849

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

7850:                                             ; No predecessors!
  br label %7851

7851:                                             ; preds = %7850
  br label %7852

7852:                                             ; preds = %7851, %7792
  br label %7853

7853:                                             ; preds = %7852
  br label %7854

7854:                                             ; preds = %7853
  br label %7855

7855:                                             ; preds = %7854
  %7856 = load i32, ptr @test_count, align 4, !tbaa !5
  %7857 = add nsw i32 %7856, 1
  store i32 %7857, ptr @test_count, align 4, !tbaa !5
  %7858 = load ptr, ptr @pkey_op, align 8, !tbaa !9
  %7859 = call i32 @s2n_async_pkey_op_free(ptr noundef %7858)
  %7860 = icmp eq i32 %7859, -1
  br i1 %7860, label %7861, label %7914

7861:                                             ; preds = %7855
  br label %7862

7862:                                             ; preds = %7861
  br label %7863

7863:                                             ; preds = %7862
  call void @llvm.lifetime.start.p0(i64 4, ptr %167) #10
  %7864 = call ptr @__errno_location() #11
  %7865 = load i32, ptr %7864, align 4, !tbaa !5
  store i32 %7865, ptr %167, align 4, !tbaa !5
  %7866 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7867 = call i32 @s2n_print_stacktrace(ptr noundef %7866)
  %7868 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7869 = trunc i8 %7868 to i1
  br i1 %7869, label %7870, label %7892

7870:                                             ; preds = %7863
  %7871 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7872 = call i32 @fileno(ptr noundef %7871) #10
  %7873 = call i32 @isatty(i32 noundef %7872) #10
  %7874 = icmp ne i32 %7873, 0
  br i1 %7874, label %7875, label %7892

7875:                                             ; preds = %7870
  %7876 = load i32, ptr %167, align 4, !tbaa !5
  %7877 = call ptr @__errno_location() #11
  store i32 %7876, ptr %7877, align 4, !tbaa !5
  %7878 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7879 = load i32, ptr @test_count, align 4, !tbaa !5
  %7880 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7881 = load i32, ptr %7880, align 4, !tbaa !5
  %7882 = call ptr @s2n_strerror(i32 noundef %7881, ptr noundef @.str.3)
  %7883 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7884 = load i32, ptr %7883, align 4, !tbaa !5
  %7885 = call ptr @s2n_strerror_debug(i32 noundef %7884, ptr noundef @.str.3)
  %7886 = call ptr @__errno_location() #11
  %7887 = load i32, ptr %7886, align 4, !tbaa !5
  %7888 = call ptr @strerror(i32 noundef %7887) #10
  %7889 = call ptr @__errno_location() #11
  %7890 = load i32, ptr %7889, align 4, !tbaa !5
  %7891 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7878, ptr noundef @.str, i32 noundef %7879, ptr noundef @.str.113, ptr noundef @.str.2, i32 noundef 629, ptr noundef %7882, ptr noundef %7885, ptr noundef %7888, i32 noundef %7890) #10
  br label %7909

7892:                                             ; preds = %7870, %7863
  %7893 = load i32, ptr %167, align 4, !tbaa !5
  %7894 = call ptr @__errno_location() #11
  store i32 %7893, ptr %7894, align 4, !tbaa !5
  %7895 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7896 = load i32, ptr @test_count, align 4, !tbaa !5
  %7897 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7898 = load i32, ptr %7897, align 4, !tbaa !5
  %7899 = call ptr @s2n_strerror(i32 noundef %7898, ptr noundef @.str.3)
  %7900 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7901 = load i32, ptr %7900, align 4, !tbaa !5
  %7902 = call ptr @s2n_strerror_debug(i32 noundef %7901, ptr noundef @.str.3)
  %7903 = call ptr @__errno_location() #11
  %7904 = load i32, ptr %7903, align 4, !tbaa !5
  %7905 = call ptr @strerror(i32 noundef %7904) #10
  %7906 = call ptr @__errno_location() #11
  %7907 = load i32, ptr %7906, align 4, !tbaa !5
  %7908 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7895, ptr noundef @.str.4, i32 noundef %7896, ptr noundef @.str.113, ptr noundef @.str.2, i32 noundef 629, ptr noundef %7899, ptr noundef %7902, ptr noundef %7905, i32 noundef %7907) #10
  br label %7909

7909:                                             ; preds = %7892, %7875
  call void @llvm.lifetime.end.p0(i64 4, ptr %167) #10
  br label %7910

7910:                                             ; preds = %7909
  br label %7911

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

7912:                                             ; No predecessors!
  br label %7913

7913:                                             ; preds = %7912
  br label %7914

7914:                                             ; preds = %7913, %7855
  br label %7915

7915:                                             ; preds = %7914
  br label %7916

7916:                                             ; preds = %7915
  br label %7917

7917:                                             ; preds = %7916
  %7918 = load i32, ptr @test_count, align 4, !tbaa !5
  %7919 = add nsw i32 %7918, 1
  store i32 %7919, ptr @test_count, align 4, !tbaa !5
  %7920 = load i8, ptr @offload_callback_count, align 1, !tbaa !38
  %7921 = zext i8 %7920 to i32
  %7922 = icmp eq i32 2, %7921
  br i1 %7922, label %7976, label %7923

7923:                                             ; preds = %7917
  br label %7924

7924:                                             ; preds = %7923
  br label %7925

7925:                                             ; preds = %7924
  call void @llvm.lifetime.start.p0(i64 4, ptr %168) #10
  %7926 = call ptr @__errno_location() #11
  %7927 = load i32, ptr %7926, align 4, !tbaa !5
  store i32 %7927, ptr %168, align 4, !tbaa !5
  %7928 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7929 = call i32 @s2n_print_stacktrace(ptr noundef %7928)
  %7930 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7931 = trunc i8 %7930 to i1
  br i1 %7931, label %7932, label %7954

7932:                                             ; preds = %7925
  %7933 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7934 = call i32 @fileno(ptr noundef %7933) #10
  %7935 = call i32 @isatty(i32 noundef %7934) #10
  %7936 = icmp ne i32 %7935, 0
  br i1 %7936, label %7937, label %7954

7937:                                             ; preds = %7932
  %7938 = load i32, ptr %168, align 4, !tbaa !5
  %7939 = call ptr @__errno_location() #11
  store i32 %7938, ptr %7939, align 4, !tbaa !5
  %7940 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7941 = load i32, ptr @test_count, align 4, !tbaa !5
  %7942 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7943 = load i32, ptr %7942, align 4, !tbaa !5
  %7944 = call ptr @s2n_strerror(i32 noundef %7943, ptr noundef @.str.3)
  %7945 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7946 = load i32, ptr %7945, align 4, !tbaa !5
  %7947 = call ptr @s2n_strerror_debug(i32 noundef %7946, ptr noundef @.str.3)
  %7948 = call ptr @__errno_location() #11
  %7949 = load i32, ptr %7948, align 4, !tbaa !5
  %7950 = call ptr @strerror(i32 noundef %7949) #10
  %7951 = call ptr @__errno_location() #11
  %7952 = load i32, ptr %7951, align 4, !tbaa !5
  %7953 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7940, ptr noundef @.str, i32 noundef %7941, ptr noundef @.str.114, ptr noundef @.str.2, i32 noundef 630, ptr noundef %7944, ptr noundef %7947, ptr noundef %7950, i32 noundef %7952) #10
  br label %7971

7954:                                             ; preds = %7932, %7925
  %7955 = load i32, ptr %168, align 4, !tbaa !5
  %7956 = call ptr @__errno_location() #11
  store i32 %7955, ptr %7956, align 4, !tbaa !5
  %7957 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7958 = load i32, ptr @test_count, align 4, !tbaa !5
  %7959 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7960 = load i32, ptr %7959, align 4, !tbaa !5
  %7961 = call ptr @s2n_strerror(i32 noundef %7960, ptr noundef @.str.3)
  %7962 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7963 = load i32, ptr %7962, align 4, !tbaa !5
  %7964 = call ptr @s2n_strerror_debug(i32 noundef %7963, ptr noundef @.str.3)
  %7965 = call ptr @__errno_location() #11
  %7966 = load i32, ptr %7965, align 4, !tbaa !5
  %7967 = call ptr @strerror(i32 noundef %7966) #10
  %7968 = call ptr @__errno_location() #11
  %7969 = load i32, ptr %7968, align 4, !tbaa !5
  %7970 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7957, ptr noundef @.str.4, i32 noundef %7958, ptr noundef @.str.114, ptr noundef @.str.2, i32 noundef 630, ptr noundef %7961, ptr noundef %7964, ptr noundef %7967, i32 noundef %7969) #10
  br label %7971

7971:                                             ; preds = %7954, %7937
  call void @llvm.lifetime.end.p0(i64 4, ptr %168) #10
  br label %7972

7972:                                             ; preds = %7971
  br label %7973

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

7974:                                             ; No predecessors!
  br label %7975

7975:                                             ; preds = %7974
  br label %7976

7976:                                             ; preds = %7975, %7917
  br label %7977

7977:                                             ; preds = %7976
  br label %7978

7978:                                             ; preds = %7977
  br label %7979

7979:                                             ; preds = %7978
  %7980 = load i32, ptr @test_count, align 4, !tbaa !5
  %7981 = add nsw i32 %7980, 1
  store i32 %7981, ptr @test_count, align 4, !tbaa !5
  %7982 = load ptr, ptr %160, align 8, !tbaa !9
  %7983 = call i32 @s2n_connection_free(ptr noundef %7982)
  %7984 = icmp eq i32 %7983, -1
  br i1 %7984, label %7985, label %8038

7985:                                             ; preds = %7979
  br label %7986

7986:                                             ; preds = %7985
  br label %7987

7987:                                             ; preds = %7986
  call void @llvm.lifetime.start.p0(i64 4, ptr %169) #10
  %7988 = call ptr @__errno_location() #11
  %7989 = load i32, ptr %7988, align 4, !tbaa !5
  store i32 %7989, ptr %169, align 4, !tbaa !5
  %7990 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7991 = call i32 @s2n_print_stacktrace(ptr noundef %7990)
  %7992 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7993 = trunc i8 %7992 to i1
  br i1 %7993, label %7994, label %8016

7994:                                             ; preds = %7987
  %7995 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7996 = call i32 @fileno(ptr noundef %7995) #10
  %7997 = call i32 @isatty(i32 noundef %7996) #10
  %7998 = icmp ne i32 %7997, 0
  br i1 %7998, label %7999, label %8016

7999:                                             ; preds = %7994
  %8000 = load i32, ptr %169, align 4, !tbaa !5
  %8001 = call ptr @__errno_location() #11
  store i32 %8000, ptr %8001, align 4, !tbaa !5
  %8002 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8003 = load i32, ptr @test_count, align 4, !tbaa !5
  %8004 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8005 = load i32, ptr %8004, align 4, !tbaa !5
  %8006 = call ptr @s2n_strerror(i32 noundef %8005, ptr noundef @.str.3)
  %8007 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8008 = load i32, ptr %8007, align 4, !tbaa !5
  %8009 = call ptr @s2n_strerror_debug(i32 noundef %8008, ptr noundef @.str.3)
  %8010 = call ptr @__errno_location() #11
  %8011 = load i32, ptr %8010, align 4, !tbaa !5
  %8012 = call ptr @strerror(i32 noundef %8011) #10
  %8013 = call ptr @__errno_location() #11
  %8014 = load i32, ptr %8013, align 4, !tbaa !5
  %8015 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8002, ptr noundef @.str, i32 noundef %8003, ptr noundef @.str.115, ptr noundef @.str.2, i32 noundef 632, ptr noundef %8006, ptr noundef %8009, ptr noundef %8012, i32 noundef %8014) #10
  br label %8033

8016:                                             ; preds = %7994, %7987
  %8017 = load i32, ptr %169, align 4, !tbaa !5
  %8018 = call ptr @__errno_location() #11
  store i32 %8017, ptr %8018, align 4, !tbaa !5
  %8019 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8020 = load i32, ptr @test_count, align 4, !tbaa !5
  %8021 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8022 = load i32, ptr %8021, align 4, !tbaa !5
  %8023 = call ptr @s2n_strerror(i32 noundef %8022, ptr noundef @.str.3)
  %8024 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8025 = load i32, ptr %8024, align 4, !tbaa !5
  %8026 = call ptr @s2n_strerror_debug(i32 noundef %8025, ptr noundef @.str.3)
  %8027 = call ptr @__errno_location() #11
  %8028 = load i32, ptr %8027, align 4, !tbaa !5
  %8029 = call ptr @strerror(i32 noundef %8028) #10
  %8030 = call ptr @__errno_location() #11
  %8031 = load i32, ptr %8030, align 4, !tbaa !5
  %8032 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8019, ptr noundef @.str.4, i32 noundef %8020, ptr noundef @.str.115, ptr noundef @.str.2, i32 noundef 632, ptr noundef %8023, ptr noundef %8026, ptr noundef %8029, i32 noundef %8031) #10
  br label %8033

8033:                                             ; preds = %8016, %7999
  call void @llvm.lifetime.end.p0(i64 4, ptr %169) #10
  br label %8034

8034:                                             ; preds = %8033
  br label %8035

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

8036:                                             ; No predecessors!
  br label %8037

8037:                                             ; preds = %8036
  br label %8038

8038:                                             ; preds = %8037, %7979
  br label %8039

8039:                                             ; preds = %8038
  br label %8040

8040:                                             ; preds = %8039
  call void @llvm.lifetime.end.p0(i64 8, ptr %160) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %170) #10
  %8041 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %8041, ptr %170, align 8, !tbaa !9
  br label %8042

8042:                                             ; preds = %8040
  %8043 = load i32, ptr @test_count, align 4, !tbaa !5
  %8044 = add nsw i32 %8043, 1
  store i32 %8044, ptr @test_count, align 4, !tbaa !5
  %8045 = load ptr, ptr %170, align 8, !tbaa !9
  %8046 = icmp eq ptr %8045, null
  br i1 %8046, label %8047, label %8100

8047:                                             ; preds = %8042
  br label %8048

8048:                                             ; preds = %8047
  br label %8049

8049:                                             ; preds = %8048
  call void @llvm.lifetime.start.p0(i64 4, ptr %171) #10
  %8050 = call ptr @__errno_location() #11
  %8051 = load i32, ptr %8050, align 4, !tbaa !5
  store i32 %8051, ptr %171, align 4, !tbaa !5
  %8052 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8053 = call i32 @s2n_print_stacktrace(ptr noundef %8052)
  %8054 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8055 = trunc i8 %8054 to i1
  br i1 %8055, label %8056, label %8078

8056:                                             ; preds = %8049
  %8057 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8058 = call i32 @fileno(ptr noundef %8057) #10
  %8059 = call i32 @isatty(i32 noundef %8058) #10
  %8060 = icmp ne i32 %8059, 0
  br i1 %8060, label %8061, label %8078

8061:                                             ; preds = %8056
  %8062 = load i32, ptr %171, align 4, !tbaa !5
  %8063 = call ptr @__errno_location() #11
  store i32 %8062, ptr %8063, align 4, !tbaa !5
  %8064 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8065 = load i32, ptr @test_count, align 4, !tbaa !5
  %8066 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8067 = load i32, ptr %8066, align 4, !tbaa !5
  %8068 = call ptr @s2n_strerror(i32 noundef %8067, ptr noundef @.str.3)
  %8069 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8070 = load i32, ptr %8069, align 4, !tbaa !5
  %8071 = call ptr @s2n_strerror_debug(i32 noundef %8070, ptr noundef @.str.3)
  %8072 = call ptr @__errno_location() #11
  %8073 = load i32, ptr %8072, align 4, !tbaa !5
  %8074 = call ptr @strerror(i32 noundef %8073) #10
  %8075 = call ptr @__errno_location() #11
  %8076 = load i32, ptr %8075, align 4, !tbaa !5
  %8077 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8064, ptr noundef @.str, i32 noundef %8065, ptr noundef @.str.46, ptr noundef @.str.2, i32 noundef 638, ptr noundef %8068, ptr noundef %8071, ptr noundef %8074, i32 noundef %8076) #10
  br label %8095

8078:                                             ; preds = %8056, %8049
  %8079 = load i32, ptr %171, align 4, !tbaa !5
  %8080 = call ptr @__errno_location() #11
  store i32 %8079, ptr %8080, align 4, !tbaa !5
  %8081 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8082 = load i32, ptr @test_count, align 4, !tbaa !5
  %8083 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8084 = load i32, ptr %8083, align 4, !tbaa !5
  %8085 = call ptr @s2n_strerror(i32 noundef %8084, ptr noundef @.str.3)
  %8086 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8087 = load i32, ptr %8086, align 4, !tbaa !5
  %8088 = call ptr @s2n_strerror_debug(i32 noundef %8087, ptr noundef @.str.3)
  %8089 = call ptr @__errno_location() #11
  %8090 = load i32, ptr %8089, align 4, !tbaa !5
  %8091 = call ptr @strerror(i32 noundef %8090) #10
  %8092 = call ptr @__errno_location() #11
  %8093 = load i32, ptr %8092, align 4, !tbaa !5
  %8094 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8081, ptr noundef @.str.4, i32 noundef %8082, ptr noundef @.str.46, ptr noundef @.str.2, i32 noundef 638, ptr noundef %8085, ptr noundef %8088, ptr noundef %8091, i32 noundef %8093) #10
  br label %8095

8095:                                             ; preds = %8078, %8061
  call void @llvm.lifetime.end.p0(i64 4, ptr %171) #10
  br label %8096

8096:                                             ; preds = %8095
  br label %8097

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

8098:                                             ; No predecessors!
  br label %8099

8099:                                             ; preds = %8098
  br label %8100

8100:                                             ; preds = %8099, %8042
  br label %8101

8101:                                             ; preds = %8100
  br label %8102

8102:                                             ; preds = %8101
  %8103 = load ptr, ptr %170, align 8, !tbaa !9
  %8104 = getelementptr inbounds %struct.s2n_connection, ptr %8103, i32 0, i32 1
  %8105 = load ptr, ptr %8104, align 8, !tbaa !39
  %8106 = getelementptr inbounds %struct.s2n_config, ptr %8105, i32 0, i32 39
  store ptr @async_pkey_decrypt_callback, ptr %8106, align 8, !tbaa !63
  call void @llvm.lifetime.start.p0(i64 24, ptr %172) #10
  call void @llvm.memset.p0.i64(ptr align 8 %172, i8 0, i64 24, i1 false)
  br label %8107

8107:                                             ; preds = %8102
  %8108 = load i32, ptr @test_count, align 4, !tbaa !5
  %8109 = add nsw i32 %8108, 1
  store i32 %8109, ptr @test_count, align 4, !tbaa !5
  %8110 = call i32 @s2n_blob_init(ptr noundef %172, ptr noundef @test_encrypted_data, i32 noundef 17)
  %8111 = icmp eq i32 %8110, -1
  br i1 %8111, label %8112, label %8165

8112:                                             ; preds = %8107
  br label %8113

8113:                                             ; preds = %8112
  br label %8114

8114:                                             ; preds = %8113
  call void @llvm.lifetime.start.p0(i64 4, ptr %173) #10
  %8115 = call ptr @__errno_location() #11
  %8116 = load i32, ptr %8115, align 4, !tbaa !5
  store i32 %8116, ptr %173, align 4, !tbaa !5
  %8117 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8118 = call i32 @s2n_print_stacktrace(ptr noundef %8117)
  %8119 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8120 = trunc i8 %8119 to i1
  br i1 %8120, label %8121, label %8143

8121:                                             ; preds = %8114
  %8122 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8123 = call i32 @fileno(ptr noundef %8122) #10
  %8124 = call i32 @isatty(i32 noundef %8123) #10
  %8125 = icmp ne i32 %8124, 0
  br i1 %8125, label %8126, label %8143

8126:                                             ; preds = %8121
  %8127 = load i32, ptr %173, align 4, !tbaa !5
  %8128 = call ptr @__errno_location() #11
  store i32 %8127, ptr %8128, align 4, !tbaa !5
  %8129 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8130 = load i32, ptr @test_count, align 4, !tbaa !5
  %8131 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8132 = load i32, ptr %8131, align 4, !tbaa !5
  %8133 = call ptr @s2n_strerror(i32 noundef %8132, ptr noundef @.str.3)
  %8134 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8135 = load i32, ptr %8134, align 4, !tbaa !5
  %8136 = call ptr @s2n_strerror_debug(i32 noundef %8135, ptr noundef @.str.3)
  %8137 = call ptr @__errno_location() #11
  %8138 = load i32, ptr %8137, align 4, !tbaa !5
  %8139 = call ptr @strerror(i32 noundef %8138) #10
  %8140 = call ptr @__errno_location() #11
  %8141 = load i32, ptr %8140, align 4, !tbaa !5
  %8142 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8129, ptr noundef @.str, i32 noundef %8130, ptr noundef @.str.116, ptr noundef @.str.2, i32 noundef 642, ptr noundef %8133, ptr noundef %8136, ptr noundef %8139, i32 noundef %8141) #10
  br label %8160

8143:                                             ; preds = %8121, %8114
  %8144 = load i32, ptr %173, align 4, !tbaa !5
  %8145 = call ptr @__errno_location() #11
  store i32 %8144, ptr %8145, align 4, !tbaa !5
  %8146 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8147 = load i32, ptr @test_count, align 4, !tbaa !5
  %8148 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8149 = load i32, ptr %8148, align 4, !tbaa !5
  %8150 = call ptr @s2n_strerror(i32 noundef %8149, ptr noundef @.str.3)
  %8151 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8152 = load i32, ptr %8151, align 4, !tbaa !5
  %8153 = call ptr @s2n_strerror_debug(i32 noundef %8152, ptr noundef @.str.3)
  %8154 = call ptr @__errno_location() #11
  %8155 = load i32, ptr %8154, align 4, !tbaa !5
  %8156 = call ptr @strerror(i32 noundef %8155) #10
  %8157 = call ptr @__errno_location() #11
  %8158 = load i32, ptr %8157, align 4, !tbaa !5
  %8159 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8146, ptr noundef @.str.4, i32 noundef %8147, ptr noundef @.str.116, ptr noundef @.str.2, i32 noundef 642, ptr noundef %8150, ptr noundef %8153, ptr noundef %8156, i32 noundef %8158) #10
  br label %8160

8160:                                             ; preds = %8143, %8126
  call void @llvm.lifetime.end.p0(i64 4, ptr %173) #10
  br label %8161

8161:                                             ; preds = %8160
  br label %8162

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

8163:                                             ; No predecessors!
  br label %8164

8164:                                             ; preds = %8163
  br label %8165

8165:                                             ; preds = %8164, %8107
  br label %8166

8166:                                             ; preds = %8165
  br label %8167

8167:                                             ; preds = %8166
  call void @llvm.lifetime.start.p0(i64 24, ptr %174) #10
  call void @llvm.memset.p0.i64(ptr align 8 %174, i8 0, i64 24, i1 false)
  br label %8168

8168:                                             ; preds = %8167
  %8169 = load i32, ptr @test_count, align 4, !tbaa !5
  %8170 = add nsw i32 %8169, 1
  store i32 %8170, ptr @test_count, align 4, !tbaa !5
  %8171 = call i32 @s2n_blob_init(ptr noundef %174, ptr noundef @test_encrypted_data, i32 noundef 17)
  %8172 = icmp eq i32 %8171, -1
  br i1 %8172, label %8173, label %8226

8173:                                             ; preds = %8168
  br label %8174

8174:                                             ; preds = %8173
  br label %8175

8175:                                             ; preds = %8174
  call void @llvm.lifetime.start.p0(i64 4, ptr %175) #10
  %8176 = call ptr @__errno_location() #11
  %8177 = load i32, ptr %8176, align 4, !tbaa !5
  store i32 %8177, ptr %175, align 4, !tbaa !5
  %8178 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8179 = call i32 @s2n_print_stacktrace(ptr noundef %8178)
  %8180 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8181 = trunc i8 %8180 to i1
  br i1 %8181, label %8182, label %8204

8182:                                             ; preds = %8175
  %8183 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8184 = call i32 @fileno(ptr noundef %8183) #10
  %8185 = call i32 @isatty(i32 noundef %8184) #10
  %8186 = icmp ne i32 %8185, 0
  br i1 %8186, label %8187, label %8204

8187:                                             ; preds = %8182
  %8188 = load i32, ptr %175, align 4, !tbaa !5
  %8189 = call ptr @__errno_location() #11
  store i32 %8188, ptr %8189, align 4, !tbaa !5
  %8190 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8191 = load i32, ptr @test_count, align 4, !tbaa !5
  %8192 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8193 = load i32, ptr %8192, align 4, !tbaa !5
  %8194 = call ptr @s2n_strerror(i32 noundef %8193, ptr noundef @.str.3)
  %8195 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8196 = load i32, ptr %8195, align 4, !tbaa !5
  %8197 = call ptr @s2n_strerror_debug(i32 noundef %8196, ptr noundef @.str.3)
  %8198 = call ptr @__errno_location() #11
  %8199 = load i32, ptr %8198, align 4, !tbaa !5
  %8200 = call ptr @strerror(i32 noundef %8199) #10
  %8201 = call ptr @__errno_location() #11
  %8202 = load i32, ptr %8201, align 4, !tbaa !5
  %8203 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8190, ptr noundef @.str, i32 noundef %8191, ptr noundef @.str.117, ptr noundef @.str.2, i32 noundef 647, ptr noundef %8194, ptr noundef %8197, ptr noundef %8200, i32 noundef %8202) #10
  br label %8221

8204:                                             ; preds = %8182, %8175
  %8205 = load i32, ptr %175, align 4, !tbaa !5
  %8206 = call ptr @__errno_location() #11
  store i32 %8205, ptr %8206, align 4, !tbaa !5
  %8207 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8208 = load i32, ptr @test_count, align 4, !tbaa !5
  %8209 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8210 = load i32, ptr %8209, align 4, !tbaa !5
  %8211 = call ptr @s2n_strerror(i32 noundef %8210, ptr noundef @.str.3)
  %8212 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8213 = load i32, ptr %8212, align 4, !tbaa !5
  %8214 = call ptr @s2n_strerror_debug(i32 noundef %8213, ptr noundef @.str.3)
  %8215 = call ptr @__errno_location() #11
  %8216 = load i32, ptr %8215, align 4, !tbaa !5
  %8217 = call ptr @strerror(i32 noundef %8216) #10
  %8218 = call ptr @__errno_location() #11
  %8219 = load i32, ptr %8218, align 4, !tbaa !5
  %8220 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8207, ptr noundef @.str.4, i32 noundef %8208, ptr noundef @.str.117, ptr noundef @.str.2, i32 noundef 647, ptr noundef %8211, ptr noundef %8214, ptr noundef %8217, i32 noundef %8219) #10
  br label %8221

8221:                                             ; preds = %8204, %8187
  call void @llvm.lifetime.end.p0(i64 4, ptr %175) #10
  br label %8222

8222:                                             ; preds = %8221
  br label %8223

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

8224:                                             ; No predecessors!
  br label %8225

8225:                                             ; preds = %8224
  br label %8226

8226:                                             ; preds = %8225, %8168
  br label %8227

8227:                                             ; preds = %8226
  br label %8228

8228:                                             ; preds = %8227
  br label %8229

8229:                                             ; preds = %8228
  %8230 = load i32, ptr @test_count, align 4, !tbaa !5
  %8231 = add nsw i32 %8230, 1
  store i32 %8231, ptr @test_count, align 4, !tbaa !5
  %8232 = load ptr, ptr %170, align 8, !tbaa !9
  %8233 = call i32 @s2n_async_pkey_decrypt(ptr noundef %8232, ptr noundef %172, ptr noundef %174, ptr noundef @s2n_async_decrypt_complete)
  %8234 = getelementptr inbounds %struct.s2n_result, ptr %176, i32 0, i32 0
  store i32 %8233, ptr %8234, align 4
  %8235 = getelementptr inbounds %struct.s2n_result, ptr %176, i32 0, i32 0
  %8236 = load i32, ptr %8235, align 4
  %8237 = call zeroext i1 @s2n_result_is_ok(i32 %8236)
  br i1 %8237, label %8238, label %8291

8238:                                             ; preds = %8229
  br label %8239

8239:                                             ; preds = %8238
  br label %8240

8240:                                             ; preds = %8239
  call void @llvm.lifetime.start.p0(i64 4, ptr %177) #10
  %8241 = call ptr @__errno_location() #11
  %8242 = load i32, ptr %8241, align 4, !tbaa !5
  store i32 %8242, ptr %177, align 4, !tbaa !5
  %8243 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8244 = call i32 @s2n_print_stacktrace(ptr noundef %8243)
  %8245 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8246 = trunc i8 %8245 to i1
  br i1 %8246, label %8247, label %8269

8247:                                             ; preds = %8240
  %8248 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8249 = call i32 @fileno(ptr noundef %8248) #10
  %8250 = call i32 @isatty(i32 noundef %8249) #10
  %8251 = icmp ne i32 %8250, 0
  br i1 %8251, label %8252, label %8269

8252:                                             ; preds = %8247
  %8253 = load i32, ptr %177, align 4, !tbaa !5
  %8254 = call ptr @__errno_location() #11
  store i32 %8253, ptr %8254, align 4, !tbaa !5
  %8255 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8256 = load i32, ptr @test_count, align 4, !tbaa !5
  %8257 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8258 = load i32, ptr %8257, align 4, !tbaa !5
  %8259 = call ptr @s2n_strerror(i32 noundef %8258, ptr noundef @.str.3)
  %8260 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8261 = load i32, ptr %8260, align 4, !tbaa !5
  %8262 = call ptr @s2n_strerror_debug(i32 noundef %8261, ptr noundef @.str.3)
  %8263 = call ptr @__errno_location() #11
  %8264 = load i32, ptr %8263, align 4, !tbaa !5
  %8265 = call ptr @strerror(i32 noundef %8264) #10
  %8266 = call ptr @__errno_location() #11
  %8267 = load i32, ptr %8266, align 4, !tbaa !5
  %8268 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8255, ptr noundef @.str, i32 noundef %8256, ptr noundef @.str.118, ptr noundef @.str.2, i32 noundef 649, ptr noundef %8259, ptr noundef %8262, ptr noundef %8265, i32 noundef %8267) #10
  br label %8286

8269:                                             ; preds = %8247, %8240
  %8270 = load i32, ptr %177, align 4, !tbaa !5
  %8271 = call ptr @__errno_location() #11
  store i32 %8270, ptr %8271, align 4, !tbaa !5
  %8272 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8273 = load i32, ptr @test_count, align 4, !tbaa !5
  %8274 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8275 = load i32, ptr %8274, align 4, !tbaa !5
  %8276 = call ptr @s2n_strerror(i32 noundef %8275, ptr noundef @.str.3)
  %8277 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8278 = load i32, ptr %8277, align 4, !tbaa !5
  %8279 = call ptr @s2n_strerror_debug(i32 noundef %8278, ptr noundef @.str.3)
  %8280 = call ptr @__errno_location() #11
  %8281 = load i32, ptr %8280, align 4, !tbaa !5
  %8282 = call ptr @strerror(i32 noundef %8281) #10
  %8283 = call ptr @__errno_location() #11
  %8284 = load i32, ptr %8283, align 4, !tbaa !5
  %8285 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8272, ptr noundef @.str.4, i32 noundef %8273, ptr noundef @.str.118, ptr noundef @.str.2, i32 noundef 649, ptr noundef %8276, ptr noundef %8279, ptr noundef %8282, i32 noundef %8284) #10
  br label %8286

8286:                                             ; preds = %8269, %8252
  call void @llvm.lifetime.end.p0(i64 4, ptr %177) #10
  br label %8287

8287:                                             ; preds = %8286
  br label %8288

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

8289:                                             ; No predecessors!
  br label %8290

8290:                                             ; preds = %8289
  br label %8291

8291:                                             ; preds = %8290, %8229
  br label %8292

8292:                                             ; preds = %8291
  br label %8293

8293:                                             ; preds = %8292
  br label %8294

8294:                                             ; preds = %8293
  %8295 = load i32, ptr @test_count, align 4, !tbaa !5
  %8296 = add nsw i32 %8295, 1
  store i32 %8296, ptr @test_count, align 4, !tbaa !5
  %8297 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8298 = load i32, ptr %8297, align 4, !tbaa !5
  %8299 = icmp eq i32 %8298, 201326593
  br i1 %8299, label %8353, label %8300

8300:                                             ; preds = %8294
  br label %8301

8301:                                             ; preds = %8300
  br label %8302

8302:                                             ; preds = %8301
  call void @llvm.lifetime.start.p0(i64 4, ptr %178) #10
  %8303 = call ptr @__errno_location() #11
  %8304 = load i32, ptr %8303, align 4, !tbaa !5
  store i32 %8304, ptr %178, align 4, !tbaa !5
  %8305 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8306 = call i32 @s2n_print_stacktrace(ptr noundef %8305)
  %8307 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8308 = trunc i8 %8307 to i1
  br i1 %8308, label %8309, label %8331

8309:                                             ; preds = %8302
  %8310 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8311 = call i32 @fileno(ptr noundef %8310) #10
  %8312 = call i32 @isatty(i32 noundef %8311) #10
  %8313 = icmp ne i32 %8312, 0
  br i1 %8313, label %8314, label %8331

8314:                                             ; preds = %8309
  %8315 = load i32, ptr %178, align 4, !tbaa !5
  %8316 = call ptr @__errno_location() #11
  store i32 %8315, ptr %8316, align 4, !tbaa !5
  %8317 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8318 = load i32, ptr @test_count, align 4, !tbaa !5
  %8319 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8320 = load i32, ptr %8319, align 4, !tbaa !5
  %8321 = call ptr @s2n_strerror(i32 noundef %8320, ptr noundef @.str.3)
  %8322 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8323 = load i32, ptr %8322, align 4, !tbaa !5
  %8324 = call ptr @s2n_strerror_debug(i32 noundef %8323, ptr noundef @.str.3)
  %8325 = call ptr @__errno_location() #11
  %8326 = load i32, ptr %8325, align 4, !tbaa !5
  %8327 = call ptr @strerror(i32 noundef %8326) #10
  %8328 = call ptr @__errno_location() #11
  %8329 = load i32, ptr %8328, align 4, !tbaa !5
  %8330 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8317, ptr noundef @.str, i32 noundef %8318, ptr noundef @.str.110, ptr noundef @.str.2, i32 noundef 650, ptr noundef %8321, ptr noundef %8324, ptr noundef %8327, i32 noundef %8329) #10
  br label %8348

8331:                                             ; preds = %8309, %8302
  %8332 = load i32, ptr %178, align 4, !tbaa !5
  %8333 = call ptr @__errno_location() #11
  store i32 %8332, ptr %8333, align 4, !tbaa !5
  %8334 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8335 = load i32, ptr @test_count, align 4, !tbaa !5
  %8336 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8337 = load i32, ptr %8336, align 4, !tbaa !5
  %8338 = call ptr @s2n_strerror(i32 noundef %8337, ptr noundef @.str.3)
  %8339 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8340 = load i32, ptr %8339, align 4, !tbaa !5
  %8341 = call ptr @s2n_strerror_debug(i32 noundef %8340, ptr noundef @.str.3)
  %8342 = call ptr @__errno_location() #11
  %8343 = load i32, ptr %8342, align 4, !tbaa !5
  %8344 = call ptr @strerror(i32 noundef %8343) #10
  %8345 = call ptr @__errno_location() #11
  %8346 = load i32, ptr %8345, align 4, !tbaa !5
  %8347 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8334, ptr noundef @.str.4, i32 noundef %8335, ptr noundef @.str.110, ptr noundef @.str.2, i32 noundef 650, ptr noundef %8338, ptr noundef %8341, ptr noundef %8344, i32 noundef %8346) #10
  br label %8348

8348:                                             ; preds = %8331, %8314
  call void @llvm.lifetime.end.p0(i64 4, ptr %178) #10
  br label %8349

8349:                                             ; preds = %8348
  br label %8350

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

8351:                                             ; No predecessors!
  br label %8352

8352:                                             ; preds = %8351
  br label %8353

8353:                                             ; preds = %8352, %8294
  br label %8354

8354:                                             ; preds = %8353
  br label %8355

8355:                                             ; preds = %8354
  br label %8356

8356:                                             ; preds = %8355
  %8357 = load i32, ptr @test_count, align 4, !tbaa !5
  %8358 = add nsw i32 %8357, 1
  store i32 %8358, ptr @test_count, align 4, !tbaa !5
  %8359 = load i8, ptr @offload_callback_count, align 1, !tbaa !38
  %8360 = zext i8 %8359 to i32
  %8361 = icmp eq i32 3, %8360
  br i1 %8361, label %8415, label %8362

8362:                                             ; preds = %8356
  br label %8363

8363:                                             ; preds = %8362
  br label %8364

8364:                                             ; preds = %8363
  call void @llvm.lifetime.start.p0(i64 4, ptr %179) #10
  %8365 = call ptr @__errno_location() #11
  %8366 = load i32, ptr %8365, align 4, !tbaa !5
  store i32 %8366, ptr %179, align 4, !tbaa !5
  %8367 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8368 = call i32 @s2n_print_stacktrace(ptr noundef %8367)
  %8369 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8370 = trunc i8 %8369 to i1
  br i1 %8370, label %8371, label %8393

8371:                                             ; preds = %8364
  %8372 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8373 = call i32 @fileno(ptr noundef %8372) #10
  %8374 = call i32 @isatty(i32 noundef %8373) #10
  %8375 = icmp ne i32 %8374, 0
  br i1 %8375, label %8376, label %8393

8376:                                             ; preds = %8371
  %8377 = load i32, ptr %179, align 4, !tbaa !5
  %8378 = call ptr @__errno_location() #11
  store i32 %8377, ptr %8378, align 4, !tbaa !5
  %8379 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8380 = load i32, ptr @test_count, align 4, !tbaa !5
  %8381 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8382 = load i32, ptr %8381, align 4, !tbaa !5
  %8383 = call ptr @s2n_strerror(i32 noundef %8382, ptr noundef @.str.3)
  %8384 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8385 = load i32, ptr %8384, align 4, !tbaa !5
  %8386 = call ptr @s2n_strerror_debug(i32 noundef %8385, ptr noundef @.str.3)
  %8387 = call ptr @__errno_location() #11
  %8388 = load i32, ptr %8387, align 4, !tbaa !5
  %8389 = call ptr @strerror(i32 noundef %8388) #10
  %8390 = call ptr @__errno_location() #11
  %8391 = load i32, ptr %8390, align 4, !tbaa !5
  %8392 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8379, ptr noundef @.str, i32 noundef %8380, ptr noundef @.str.119, ptr noundef @.str.2, i32 noundef 651, ptr noundef %8383, ptr noundef %8386, ptr noundef %8389, i32 noundef %8391) #10
  br label %8410

8393:                                             ; preds = %8371, %8364
  %8394 = load i32, ptr %179, align 4, !tbaa !5
  %8395 = call ptr @__errno_location() #11
  store i32 %8394, ptr %8395, align 4, !tbaa !5
  %8396 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8397 = load i32, ptr @test_count, align 4, !tbaa !5
  %8398 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8399 = load i32, ptr %8398, align 4, !tbaa !5
  %8400 = call ptr @s2n_strerror(i32 noundef %8399, ptr noundef @.str.3)
  %8401 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8402 = load i32, ptr %8401, align 4, !tbaa !5
  %8403 = call ptr @s2n_strerror_debug(i32 noundef %8402, ptr noundef @.str.3)
  %8404 = call ptr @__errno_location() #11
  %8405 = load i32, ptr %8404, align 4, !tbaa !5
  %8406 = call ptr @strerror(i32 noundef %8405) #10
  %8407 = call ptr @__errno_location() #11
  %8408 = load i32, ptr %8407, align 4, !tbaa !5
  %8409 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8396, ptr noundef @.str.4, i32 noundef %8397, ptr noundef @.str.119, ptr noundef @.str.2, i32 noundef 651, ptr noundef %8400, ptr noundef %8403, ptr noundef %8406, i32 noundef %8408) #10
  br label %8410

8410:                                             ; preds = %8393, %8376
  call void @llvm.lifetime.end.p0(i64 4, ptr %179) #10
  br label %8411

8411:                                             ; preds = %8410
  br label %8412

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

8413:                                             ; No predecessors!
  br label %8414

8414:                                             ; preds = %8413
  br label %8415

8415:                                             ; preds = %8414, %8356
  br label %8416

8416:                                             ; preds = %8415
  br label %8417

8417:                                             ; preds = %8416
  br label %8418

8418:                                             ; preds = %8417
  %8419 = load i32, ptr @test_count, align 4, !tbaa !5
  %8420 = add nsw i32 %8419, 1
  store i32 %8420, ptr @test_count, align 4, !tbaa !5
  %8421 = load ptr, ptr @pkey_op, align 8, !tbaa !9
  %8422 = load ptr, ptr %170, align 8, !tbaa !9
  %8423 = call i32 @s2n_async_pkey_op_apply(ptr noundef %8421, ptr noundef %8422)
  %8424 = icmp eq i32 %8423, -1
  br i1 %8424, label %8425, label %8478

8425:                                             ; preds = %8418
  br label %8426

8426:                                             ; preds = %8425
  br label %8427

8427:                                             ; preds = %8426
  call void @llvm.lifetime.start.p0(i64 4, ptr %180) #10
  %8428 = call ptr @__errno_location() #11
  %8429 = load i32, ptr %8428, align 4, !tbaa !5
  store i32 %8429, ptr %180, align 4, !tbaa !5
  %8430 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8431 = call i32 @s2n_print_stacktrace(ptr noundef %8430)
  %8432 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8433 = trunc i8 %8432 to i1
  br i1 %8433, label %8434, label %8456

8434:                                             ; preds = %8427
  %8435 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8436 = call i32 @fileno(ptr noundef %8435) #10
  %8437 = call i32 @isatty(i32 noundef %8436) #10
  %8438 = icmp ne i32 %8437, 0
  br i1 %8438, label %8439, label %8456

8439:                                             ; preds = %8434
  %8440 = load i32, ptr %180, align 4, !tbaa !5
  %8441 = call ptr @__errno_location() #11
  store i32 %8440, ptr %8441, align 4, !tbaa !5
  %8442 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8443 = load i32, ptr @test_count, align 4, !tbaa !5
  %8444 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8445 = load i32, ptr %8444, align 4, !tbaa !5
  %8446 = call ptr @s2n_strerror(i32 noundef %8445, ptr noundef @.str.3)
  %8447 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8448 = load i32, ptr %8447, align 4, !tbaa !5
  %8449 = call ptr @s2n_strerror_debug(i32 noundef %8448, ptr noundef @.str.3)
  %8450 = call ptr @__errno_location() #11
  %8451 = load i32, ptr %8450, align 4, !tbaa !5
  %8452 = call ptr @strerror(i32 noundef %8451) #10
  %8453 = call ptr @__errno_location() #11
  %8454 = load i32, ptr %8453, align 4, !tbaa !5
  %8455 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8442, ptr noundef @.str, i32 noundef %8443, ptr noundef @.str.112, ptr noundef @.str.2, i32 noundef 653, ptr noundef %8446, ptr noundef %8449, ptr noundef %8452, i32 noundef %8454) #10
  br label %8473

8456:                                             ; preds = %8434, %8427
  %8457 = load i32, ptr %180, align 4, !tbaa !5
  %8458 = call ptr @__errno_location() #11
  store i32 %8457, ptr %8458, align 4, !tbaa !5
  %8459 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8460 = load i32, ptr @test_count, align 4, !tbaa !5
  %8461 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8462 = load i32, ptr %8461, align 4, !tbaa !5
  %8463 = call ptr @s2n_strerror(i32 noundef %8462, ptr noundef @.str.3)
  %8464 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8465 = load i32, ptr %8464, align 4, !tbaa !5
  %8466 = call ptr @s2n_strerror_debug(i32 noundef %8465, ptr noundef @.str.3)
  %8467 = call ptr @__errno_location() #11
  %8468 = load i32, ptr %8467, align 4, !tbaa !5
  %8469 = call ptr @strerror(i32 noundef %8468) #10
  %8470 = call ptr @__errno_location() #11
  %8471 = load i32, ptr %8470, align 4, !tbaa !5
  %8472 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8459, ptr noundef @.str.4, i32 noundef %8460, ptr noundef @.str.112, ptr noundef @.str.2, i32 noundef 653, ptr noundef %8463, ptr noundef %8466, ptr noundef %8469, i32 noundef %8471) #10
  br label %8473

8473:                                             ; preds = %8456, %8439
  call void @llvm.lifetime.end.p0(i64 4, ptr %180) #10
  br label %8474

8474:                                             ; preds = %8473
  br label %8475

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

8476:                                             ; No predecessors!
  br label %8477

8477:                                             ; preds = %8476
  br label %8478

8478:                                             ; preds = %8477, %8418
  br label %8479

8479:                                             ; preds = %8478
  br label %8480

8480:                                             ; preds = %8479
  br label %8481

8481:                                             ; preds = %8480
  %8482 = load i32, ptr @test_count, align 4, !tbaa !5
  %8483 = add nsw i32 %8482, 1
  store i32 %8483, ptr @test_count, align 4, !tbaa !5
  %8484 = load ptr, ptr @pkey_op, align 8, !tbaa !9
  %8485 = call i32 @s2n_async_pkey_op_free(ptr noundef %8484)
  %8486 = icmp eq i32 %8485, -1
  br i1 %8486, label %8487, label %8540

8487:                                             ; preds = %8481
  br label %8488

8488:                                             ; preds = %8487
  br label %8489

8489:                                             ; preds = %8488
  call void @llvm.lifetime.start.p0(i64 4, ptr %181) #10
  %8490 = call ptr @__errno_location() #11
  %8491 = load i32, ptr %8490, align 4, !tbaa !5
  store i32 %8491, ptr %181, align 4, !tbaa !5
  %8492 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8493 = call i32 @s2n_print_stacktrace(ptr noundef %8492)
  %8494 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8495 = trunc i8 %8494 to i1
  br i1 %8495, label %8496, label %8518

8496:                                             ; preds = %8489
  %8497 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8498 = call i32 @fileno(ptr noundef %8497) #10
  %8499 = call i32 @isatty(i32 noundef %8498) #10
  %8500 = icmp ne i32 %8499, 0
  br i1 %8500, label %8501, label %8518

8501:                                             ; preds = %8496
  %8502 = load i32, ptr %181, align 4, !tbaa !5
  %8503 = call ptr @__errno_location() #11
  store i32 %8502, ptr %8503, align 4, !tbaa !5
  %8504 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8505 = load i32, ptr @test_count, align 4, !tbaa !5
  %8506 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8507 = load i32, ptr %8506, align 4, !tbaa !5
  %8508 = call ptr @s2n_strerror(i32 noundef %8507, ptr noundef @.str.3)
  %8509 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8510 = load i32, ptr %8509, align 4, !tbaa !5
  %8511 = call ptr @s2n_strerror_debug(i32 noundef %8510, ptr noundef @.str.3)
  %8512 = call ptr @__errno_location() #11
  %8513 = load i32, ptr %8512, align 4, !tbaa !5
  %8514 = call ptr @strerror(i32 noundef %8513) #10
  %8515 = call ptr @__errno_location() #11
  %8516 = load i32, ptr %8515, align 4, !tbaa !5
  %8517 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8504, ptr noundef @.str, i32 noundef %8505, ptr noundef @.str.113, ptr noundef @.str.2, i32 noundef 654, ptr noundef %8508, ptr noundef %8511, ptr noundef %8514, i32 noundef %8516) #10
  br label %8535

8518:                                             ; preds = %8496, %8489
  %8519 = load i32, ptr %181, align 4, !tbaa !5
  %8520 = call ptr @__errno_location() #11
  store i32 %8519, ptr %8520, align 4, !tbaa !5
  %8521 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8522 = load i32, ptr @test_count, align 4, !tbaa !5
  %8523 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8524 = load i32, ptr %8523, align 4, !tbaa !5
  %8525 = call ptr @s2n_strerror(i32 noundef %8524, ptr noundef @.str.3)
  %8526 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8527 = load i32, ptr %8526, align 4, !tbaa !5
  %8528 = call ptr @s2n_strerror_debug(i32 noundef %8527, ptr noundef @.str.3)
  %8529 = call ptr @__errno_location() #11
  %8530 = load i32, ptr %8529, align 4, !tbaa !5
  %8531 = call ptr @strerror(i32 noundef %8530) #10
  %8532 = call ptr @__errno_location() #11
  %8533 = load i32, ptr %8532, align 4, !tbaa !5
  %8534 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8521, ptr noundef @.str.4, i32 noundef %8522, ptr noundef @.str.113, ptr noundef @.str.2, i32 noundef 654, ptr noundef %8525, ptr noundef %8528, ptr noundef %8531, i32 noundef %8533) #10
  br label %8535

8535:                                             ; preds = %8518, %8501
  call void @llvm.lifetime.end.p0(i64 4, ptr %181) #10
  br label %8536

8536:                                             ; preds = %8535
  br label %8537

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

8538:                                             ; No predecessors!
  br label %8539

8539:                                             ; preds = %8538
  br label %8540

8540:                                             ; preds = %8539, %8481
  br label %8541

8541:                                             ; preds = %8540
  br label %8542

8542:                                             ; preds = %8541
  br label %8543

8543:                                             ; preds = %8542
  %8544 = load i32, ptr @test_count, align 4, !tbaa !5
  %8545 = add nsw i32 %8544, 1
  store i32 %8545, ptr @test_count, align 4, !tbaa !5
  %8546 = load i8, ptr @offload_callback_count, align 1, !tbaa !38
  %8547 = zext i8 %8546 to i32
  %8548 = icmp eq i32 4, %8547
  br i1 %8548, label %8602, label %8549

8549:                                             ; preds = %8543
  br label %8550

8550:                                             ; preds = %8549
  br label %8551

8551:                                             ; preds = %8550
  call void @llvm.lifetime.start.p0(i64 4, ptr %182) #10
  %8552 = call ptr @__errno_location() #11
  %8553 = load i32, ptr %8552, align 4, !tbaa !5
  store i32 %8553, ptr %182, align 4, !tbaa !5
  %8554 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8555 = call i32 @s2n_print_stacktrace(ptr noundef %8554)
  %8556 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8557 = trunc i8 %8556 to i1
  br i1 %8557, label %8558, label %8580

8558:                                             ; preds = %8551
  %8559 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8560 = call i32 @fileno(ptr noundef %8559) #10
  %8561 = call i32 @isatty(i32 noundef %8560) #10
  %8562 = icmp ne i32 %8561, 0
  br i1 %8562, label %8563, label %8580

8563:                                             ; preds = %8558
  %8564 = load i32, ptr %182, align 4, !tbaa !5
  %8565 = call ptr @__errno_location() #11
  store i32 %8564, ptr %8565, align 4, !tbaa !5
  %8566 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8567 = load i32, ptr @test_count, align 4, !tbaa !5
  %8568 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8569 = load i32, ptr %8568, align 4, !tbaa !5
  %8570 = call ptr @s2n_strerror(i32 noundef %8569, ptr noundef @.str.3)
  %8571 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8572 = load i32, ptr %8571, align 4, !tbaa !5
  %8573 = call ptr @s2n_strerror_debug(i32 noundef %8572, ptr noundef @.str.3)
  %8574 = call ptr @__errno_location() #11
  %8575 = load i32, ptr %8574, align 4, !tbaa !5
  %8576 = call ptr @strerror(i32 noundef %8575) #10
  %8577 = call ptr @__errno_location() #11
  %8578 = load i32, ptr %8577, align 4, !tbaa !5
  %8579 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8566, ptr noundef @.str, i32 noundef %8567, ptr noundef @.str.120, ptr noundef @.str.2, i32 noundef 655, ptr noundef %8570, ptr noundef %8573, ptr noundef %8576, i32 noundef %8578) #10
  br label %8597

8580:                                             ; preds = %8558, %8551
  %8581 = load i32, ptr %182, align 4, !tbaa !5
  %8582 = call ptr @__errno_location() #11
  store i32 %8581, ptr %8582, align 4, !tbaa !5
  %8583 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8584 = load i32, ptr @test_count, align 4, !tbaa !5
  %8585 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8586 = load i32, ptr %8585, align 4, !tbaa !5
  %8587 = call ptr @s2n_strerror(i32 noundef %8586, ptr noundef @.str.3)
  %8588 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8589 = load i32, ptr %8588, align 4, !tbaa !5
  %8590 = call ptr @s2n_strerror_debug(i32 noundef %8589, ptr noundef @.str.3)
  %8591 = call ptr @__errno_location() #11
  %8592 = load i32, ptr %8591, align 4, !tbaa !5
  %8593 = call ptr @strerror(i32 noundef %8592) #10
  %8594 = call ptr @__errno_location() #11
  %8595 = load i32, ptr %8594, align 4, !tbaa !5
  %8596 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8583, ptr noundef @.str.4, i32 noundef %8584, ptr noundef @.str.120, ptr noundef @.str.2, i32 noundef 655, ptr noundef %8587, ptr noundef %8590, ptr noundef %8593, i32 noundef %8595) #10
  br label %8597

8597:                                             ; preds = %8580, %8563
  call void @llvm.lifetime.end.p0(i64 4, ptr %182) #10
  br label %8598

8598:                                             ; preds = %8597
  br label %8599

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

8600:                                             ; No predecessors!
  br label %8601

8601:                                             ; preds = %8600
  br label %8602

8602:                                             ; preds = %8601, %8543
  br label %8603

8603:                                             ; preds = %8602
  br label %8604

8604:                                             ; preds = %8603
  br label %8605

8605:                                             ; preds = %8604
  %8606 = load i32, ptr @test_count, align 4, !tbaa !5
  %8607 = add nsw i32 %8606, 1
  store i32 %8607, ptr @test_count, align 4, !tbaa !5
  %8608 = load ptr, ptr %170, align 8, !tbaa !9
  %8609 = call i32 @s2n_connection_free(ptr noundef %8608)
  %8610 = icmp eq i32 %8609, -1
  br i1 %8610, label %8611, label %8664

8611:                                             ; preds = %8605
  br label %8612

8612:                                             ; preds = %8611
  br label %8613

8613:                                             ; preds = %8612
  call void @llvm.lifetime.start.p0(i64 4, ptr %183) #10
  %8614 = call ptr @__errno_location() #11
  %8615 = load i32, ptr %8614, align 4, !tbaa !5
  store i32 %8615, ptr %183, align 4, !tbaa !5
  %8616 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8617 = call i32 @s2n_print_stacktrace(ptr noundef %8616)
  %8618 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8619 = trunc i8 %8618 to i1
  br i1 %8619, label %8620, label %8642

8620:                                             ; preds = %8613
  %8621 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8622 = call i32 @fileno(ptr noundef %8621) #10
  %8623 = call i32 @isatty(i32 noundef %8622) #10
  %8624 = icmp ne i32 %8623, 0
  br i1 %8624, label %8625, label %8642

8625:                                             ; preds = %8620
  %8626 = load i32, ptr %183, align 4, !tbaa !5
  %8627 = call ptr @__errno_location() #11
  store i32 %8626, ptr %8627, align 4, !tbaa !5
  %8628 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8629 = load i32, ptr @test_count, align 4, !tbaa !5
  %8630 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8631 = load i32, ptr %8630, align 4, !tbaa !5
  %8632 = call ptr @s2n_strerror(i32 noundef %8631, ptr noundef @.str.3)
  %8633 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8634 = load i32, ptr %8633, align 4, !tbaa !5
  %8635 = call ptr @s2n_strerror_debug(i32 noundef %8634, ptr noundef @.str.3)
  %8636 = call ptr @__errno_location() #11
  %8637 = load i32, ptr %8636, align 4, !tbaa !5
  %8638 = call ptr @strerror(i32 noundef %8637) #10
  %8639 = call ptr @__errno_location() #11
  %8640 = load i32, ptr %8639, align 4, !tbaa !5
  %8641 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8628, ptr noundef @.str, i32 noundef %8629, ptr noundef @.str.115, ptr noundef @.str.2, i32 noundef 657, ptr noundef %8632, ptr noundef %8635, ptr noundef %8638, i32 noundef %8640) #10
  br label %8659

8642:                                             ; preds = %8620, %8613
  %8643 = load i32, ptr %183, align 4, !tbaa !5
  %8644 = call ptr @__errno_location() #11
  store i32 %8643, ptr %8644, align 4, !tbaa !5
  %8645 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8646 = load i32, ptr @test_count, align 4, !tbaa !5
  %8647 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8648 = load i32, ptr %8647, align 4, !tbaa !5
  %8649 = call ptr @s2n_strerror(i32 noundef %8648, ptr noundef @.str.3)
  %8650 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8651 = load i32, ptr %8650, align 4, !tbaa !5
  %8652 = call ptr @s2n_strerror_debug(i32 noundef %8651, ptr noundef @.str.3)
  %8653 = call ptr @__errno_location() #11
  %8654 = load i32, ptr %8653, align 4, !tbaa !5
  %8655 = call ptr @strerror(i32 noundef %8654) #10
  %8656 = call ptr @__errno_location() #11
  %8657 = load i32, ptr %8656, align 4, !tbaa !5
  %8658 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8645, ptr noundef @.str.4, i32 noundef %8646, ptr noundef @.str.115, ptr noundef @.str.2, i32 noundef 657, ptr noundef %8649, ptr noundef %8652, ptr noundef %8655, i32 noundef %8657) #10
  br label %8659

8659:                                             ; preds = %8642, %8625
  call void @llvm.lifetime.end.p0(i64 4, ptr %183) #10
  br label %8660

8660:                                             ; preds = %8659
  br label %8661

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

8662:                                             ; No predecessors!
  br label %8663

8663:                                             ; preds = %8662
  br label %8664

8664:                                             ; preds = %8663, %8605
  br label %8665

8665:                                             ; preds = %8664
  br label %8666

8666:                                             ; preds = %8665
  call void @llvm.lifetime.end.p0(i64 24, ptr %174) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %172) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %170) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %184) #10
  %8667 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %8667, ptr %184, align 8, !tbaa !9
  br label %8668

8668:                                             ; preds = %8666
  %8669 = load i32, ptr @test_count, align 4, !tbaa !5
  %8670 = add nsw i32 %8669, 1
  store i32 %8670, ptr @test_count, align 4, !tbaa !5
  %8671 = load ptr, ptr %184, align 8, !tbaa !9
  %8672 = icmp eq ptr %8671, null
  br i1 %8672, label %8673, label %8726

8673:                                             ; preds = %8668
  br label %8674

8674:                                             ; preds = %8673
  br label %8675

8675:                                             ; preds = %8674
  call void @llvm.lifetime.start.p0(i64 4, ptr %185) #10
  %8676 = call ptr @__errno_location() #11
  %8677 = load i32, ptr %8676, align 4, !tbaa !5
  store i32 %8677, ptr %185, align 4, !tbaa !5
  %8678 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8679 = call i32 @s2n_print_stacktrace(ptr noundef %8678)
  %8680 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8681 = trunc i8 %8680 to i1
  br i1 %8681, label %8682, label %8704

8682:                                             ; preds = %8675
  %8683 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8684 = call i32 @fileno(ptr noundef %8683) #10
  %8685 = call i32 @isatty(i32 noundef %8684) #10
  %8686 = icmp ne i32 %8685, 0
  br i1 %8686, label %8687, label %8704

8687:                                             ; preds = %8682
  %8688 = load i32, ptr %185, align 4, !tbaa !5
  %8689 = call ptr @__errno_location() #11
  store i32 %8688, ptr %8689, align 4, !tbaa !5
  %8690 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8691 = load i32, ptr @test_count, align 4, !tbaa !5
  %8692 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8693 = load i32, ptr %8692, align 4, !tbaa !5
  %8694 = call ptr @s2n_strerror(i32 noundef %8693, ptr noundef @.str.3)
  %8695 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8696 = load i32, ptr %8695, align 4, !tbaa !5
  %8697 = call ptr @s2n_strerror_debug(i32 noundef %8696, ptr noundef @.str.3)
  %8698 = call ptr @__errno_location() #11
  %8699 = load i32, ptr %8698, align 4, !tbaa !5
  %8700 = call ptr @strerror(i32 noundef %8699) #10
  %8701 = call ptr @__errno_location() #11
  %8702 = load i32, ptr %8701, align 4, !tbaa !5
  %8703 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8690, ptr noundef @.str, i32 noundef %8691, ptr noundef @.str.46, ptr noundef @.str.2, i32 noundef 663, ptr noundef %8694, ptr noundef %8697, ptr noundef %8700, i32 noundef %8702) #10
  br label %8721

8704:                                             ; preds = %8682, %8675
  %8705 = load i32, ptr %185, align 4, !tbaa !5
  %8706 = call ptr @__errno_location() #11
  store i32 %8705, ptr %8706, align 4, !tbaa !5
  %8707 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8708 = load i32, ptr @test_count, align 4, !tbaa !5
  %8709 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8710 = load i32, ptr %8709, align 4, !tbaa !5
  %8711 = call ptr @s2n_strerror(i32 noundef %8710, ptr noundef @.str.3)
  %8712 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8713 = load i32, ptr %8712, align 4, !tbaa !5
  %8714 = call ptr @s2n_strerror_debug(i32 noundef %8713, ptr noundef @.str.3)
  %8715 = call ptr @__errno_location() #11
  %8716 = load i32, ptr %8715, align 4, !tbaa !5
  %8717 = call ptr @strerror(i32 noundef %8716) #10
  %8718 = call ptr @__errno_location() #11
  %8719 = load i32, ptr %8718, align 4, !tbaa !5
  %8720 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8707, ptr noundef @.str.4, i32 noundef %8708, ptr noundef @.str.46, ptr noundef @.str.2, i32 noundef 663, ptr noundef %8711, ptr noundef %8714, ptr noundef %8717, i32 noundef %8719) #10
  br label %8721

8721:                                             ; preds = %8704, %8687
  call void @llvm.lifetime.end.p0(i64 4, ptr %185) #10
  br label %8722

8722:                                             ; preds = %8721
  br label %8723

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

8724:                                             ; No predecessors!
  br label %8725

8725:                                             ; preds = %8724
  br label %8726

8726:                                             ; preds = %8725, %8668
  br label %8727

8727:                                             ; preds = %8726
  br label %8728

8728:                                             ; preds = %8727
  %8729 = load ptr, ptr %184, align 8, !tbaa !9
  %8730 = getelementptr inbounds %struct.s2n_connection, ptr %8729, i32 0, i32 1
  %8731 = load ptr, ptr %8730, align 8, !tbaa !39
  %8732 = getelementptr inbounds %struct.s2n_config, ptr %8731, i32 0, i32 39
  store ptr @async_pkey_invalid_input_callback, ptr %8732, align 8, !tbaa !63
  br label %8733

8733:                                             ; preds = %8728
  %8734 = load i32, ptr @test_count, align 4, !tbaa !5
  %8735 = add nsw i32 %8734, 1
  store i32 %8735, ptr @test_count, align 4, !tbaa !5
  %8736 = load ptr, ptr %184, align 8, !tbaa !9
  %8737 = call i32 @s2n_async_pkey_sign(ptr noundef %8736, i32 noundef 3, ptr noundef %155, ptr noundef @async_pkey_invalid_complete)
  %8738 = getelementptr inbounds %struct.s2n_result, ptr %186, i32 0, i32 0
  store i32 %8737, ptr %8738, align 4
  %8739 = getelementptr inbounds %struct.s2n_result, ptr %186, i32 0, i32 0
  %8740 = load i32, ptr %8739, align 4
  %8741 = call zeroext i1 @s2n_result_is_ok(i32 %8740)
  br i1 %8741, label %8742, label %8795

8742:                                             ; preds = %8733
  br label %8743

8743:                                             ; preds = %8742
  br label %8744

8744:                                             ; preds = %8743
  call void @llvm.lifetime.start.p0(i64 4, ptr %187) #10
  %8745 = call ptr @__errno_location() #11
  %8746 = load i32, ptr %8745, align 4, !tbaa !5
  store i32 %8746, ptr %187, align 4, !tbaa !5
  %8747 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8748 = call i32 @s2n_print_stacktrace(ptr noundef %8747)
  %8749 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8750 = trunc i8 %8749 to i1
  br i1 %8750, label %8751, label %8773

8751:                                             ; preds = %8744
  %8752 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8753 = call i32 @fileno(ptr noundef %8752) #10
  %8754 = call i32 @isatty(i32 noundef %8753) #10
  %8755 = icmp ne i32 %8754, 0
  br i1 %8755, label %8756, label %8773

8756:                                             ; preds = %8751
  %8757 = load i32, ptr %187, align 4, !tbaa !5
  %8758 = call ptr @__errno_location() #11
  store i32 %8757, ptr %8758, align 4, !tbaa !5
  %8759 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8760 = load i32, ptr @test_count, align 4, !tbaa !5
  %8761 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8762 = load i32, ptr %8761, align 4, !tbaa !5
  %8763 = call ptr @s2n_strerror(i32 noundef %8762, ptr noundef @.str.3)
  %8764 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8765 = load i32, ptr %8764, align 4, !tbaa !5
  %8766 = call ptr @s2n_strerror_debug(i32 noundef %8765, ptr noundef @.str.3)
  %8767 = call ptr @__errno_location() #11
  %8768 = load i32, ptr %8767, align 4, !tbaa !5
  %8769 = call ptr @strerror(i32 noundef %8768) #10
  %8770 = call ptr @__errno_location() #11
  %8771 = load i32, ptr %8770, align 4, !tbaa !5
  %8772 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8759, ptr noundef @.str, i32 noundef %8760, ptr noundef @.str.121, ptr noundef @.str.2, i32 noundef 666, ptr noundef %8763, ptr noundef %8766, ptr noundef %8769, i32 noundef %8771) #10
  br label %8790

8773:                                             ; preds = %8751, %8744
  %8774 = load i32, ptr %187, align 4, !tbaa !5
  %8775 = call ptr @__errno_location() #11
  store i32 %8774, ptr %8775, align 4, !tbaa !5
  %8776 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8777 = load i32, ptr @test_count, align 4, !tbaa !5
  %8778 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8779 = load i32, ptr %8778, align 4, !tbaa !5
  %8780 = call ptr @s2n_strerror(i32 noundef %8779, ptr noundef @.str.3)
  %8781 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8782 = load i32, ptr %8781, align 4, !tbaa !5
  %8783 = call ptr @s2n_strerror_debug(i32 noundef %8782, ptr noundef @.str.3)
  %8784 = call ptr @__errno_location() #11
  %8785 = load i32, ptr %8784, align 4, !tbaa !5
  %8786 = call ptr @strerror(i32 noundef %8785) #10
  %8787 = call ptr @__errno_location() #11
  %8788 = load i32, ptr %8787, align 4, !tbaa !5
  %8789 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8776, ptr noundef @.str.4, i32 noundef %8777, ptr noundef @.str.121, ptr noundef @.str.2, i32 noundef 666, ptr noundef %8780, ptr noundef %8783, ptr noundef %8786, i32 noundef %8788) #10
  br label %8790

8790:                                             ; preds = %8773, %8756
  call void @llvm.lifetime.end.p0(i64 4, ptr %187) #10
  br label %8791

8791:                                             ; preds = %8790
  br label %8792

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

8793:                                             ; No predecessors!
  br label %8794

8794:                                             ; preds = %8793
  br label %8795

8795:                                             ; preds = %8794, %8733
  br label %8796

8796:                                             ; preds = %8795
  br label %8797

8797:                                             ; preds = %8796
  br label %8798

8798:                                             ; preds = %8797
  %8799 = load i32, ptr @test_count, align 4, !tbaa !5
  %8800 = add nsw i32 %8799, 1
  store i32 %8800, ptr @test_count, align 4, !tbaa !5
  %8801 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8802 = load i32, ptr %8801, align 4, !tbaa !5
  %8803 = icmp eq i32 %8802, 402653258
  br i1 %8803, label %8857, label %8804

8804:                                             ; preds = %8798
  br label %8805

8805:                                             ; preds = %8804
  br label %8806

8806:                                             ; preds = %8805
  call void @llvm.lifetime.start.p0(i64 4, ptr %188) #10
  %8807 = call ptr @__errno_location() #11
  %8808 = load i32, ptr %8807, align 4, !tbaa !5
  store i32 %8808, ptr %188, align 4, !tbaa !5
  %8809 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8810 = call i32 @s2n_print_stacktrace(ptr noundef %8809)
  %8811 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8812 = trunc i8 %8811 to i1
  br i1 %8812, label %8813, label %8835

8813:                                             ; preds = %8806
  %8814 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8815 = call i32 @fileno(ptr noundef %8814) #10
  %8816 = call i32 @isatty(i32 noundef %8815) #10
  %8817 = icmp ne i32 %8816, 0
  br i1 %8817, label %8818, label %8835

8818:                                             ; preds = %8813
  %8819 = load i32, ptr %188, align 4, !tbaa !5
  %8820 = call ptr @__errno_location() #11
  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.3)
  %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.3)
  %8829 = call ptr @__errno_location() #11
  %8830 = load i32, ptr %8829, align 4, !tbaa !5
  %8831 = call ptr @strerror(i32 noundef %8830) #10
  %8832 = call ptr @__errno_location() #11
  %8833 = load i32, ptr %8832, align 4, !tbaa !5
  %8834 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8821, ptr noundef @.str, i32 noundef %8822, ptr noundef @.str.122, ptr noundef @.str.2, i32 noundef 667, ptr noundef %8825, ptr noundef %8828, ptr noundef %8831, i32 noundef %8833) #10
  br label %8852

8835:                                             ; preds = %8813, %8806
  %8836 = load i32, ptr %188, align 4, !tbaa !5
  %8837 = call ptr @__errno_location() #11
  store i32 %8836, ptr %8837, align 4, !tbaa !5
  %8838 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8839 = load i32, ptr @test_count, align 4, !tbaa !5
  %8840 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8841 = load i32, ptr %8840, align 4, !tbaa !5
  %8842 = call ptr @s2n_strerror(i32 noundef %8841, ptr noundef @.str.3)
  %8843 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8844 = load i32, ptr %8843, align 4, !tbaa !5
  %8845 = call ptr @s2n_strerror_debug(i32 noundef %8844, ptr noundef @.str.3)
  %8846 = call ptr @__errno_location() #11
  %8847 = load i32, ptr %8846, align 4, !tbaa !5
  %8848 = call ptr @strerror(i32 noundef %8847) #10
  %8849 = call ptr @__errno_location() #11
  %8850 = load i32, ptr %8849, align 4, !tbaa !5
  %8851 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8838, ptr noundef @.str.4, i32 noundef %8839, ptr noundef @.str.122, ptr noundef @.str.2, i32 noundef 667, ptr noundef %8842, ptr noundef %8845, ptr noundef %8848, i32 noundef %8850) #10
  br label %8852

8852:                                             ; preds = %8835, %8818
  call void @llvm.lifetime.end.p0(i64 4, ptr %188) #10
  br label %8853

8853:                                             ; preds = %8852
  br label %8854

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

8855:                                             ; No predecessors!
  br label %8856

8856:                                             ; preds = %8855
  br label %8857

8857:                                             ; preds = %8856, %8798
  br label %8858

8858:                                             ; preds = %8857
  br label %8859

8859:                                             ; preds = %8858
  br label %8860

8860:                                             ; preds = %8859
  %8861 = load i32, ptr @test_count, align 4, !tbaa !5
  %8862 = add nsw i32 %8861, 1
  store i32 %8862, ptr @test_count, align 4, !tbaa !5
  %8863 = load i8, ptr @offload_callback_count, align 1, !tbaa !38
  %8864 = zext i8 %8863 to i32
  %8865 = icmp eq i32 5, %8864
  br i1 %8865, label %8919, label %8866

8866:                                             ; preds = %8860
  br label %8867

8867:                                             ; preds = %8866
  br label %8868

8868:                                             ; preds = %8867
  call void @llvm.lifetime.start.p0(i64 4, ptr %189) #10
  %8869 = call ptr @__errno_location() #11
  %8870 = load i32, ptr %8869, align 4, !tbaa !5
  store i32 %8870, ptr %189, align 4, !tbaa !5
  %8871 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8872 = call i32 @s2n_print_stacktrace(ptr noundef %8871)
  %8873 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8874 = trunc i8 %8873 to i1
  br i1 %8874, label %8875, label %8897

8875:                                             ; preds = %8868
  %8876 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8877 = call i32 @fileno(ptr noundef %8876) #10
  %8878 = call i32 @isatty(i32 noundef %8877) #10
  %8879 = icmp ne i32 %8878, 0
  br i1 %8879, label %8880, label %8897

8880:                                             ; preds = %8875
  %8881 = load i32, ptr %189, align 4, !tbaa !5
  %8882 = call ptr @__errno_location() #11
  store i32 %8881, ptr %8882, align 4, !tbaa !5
  %8883 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8884 = load i32, ptr @test_count, align 4, !tbaa !5
  %8885 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8886 = load i32, ptr %8885, align 4, !tbaa !5
  %8887 = call ptr @s2n_strerror(i32 noundef %8886, ptr noundef @.str.3)
  %8888 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8889 = load i32, ptr %8888, align 4, !tbaa !5
  %8890 = call ptr @s2n_strerror_debug(i32 noundef %8889, ptr noundef @.str.3)
  %8891 = call ptr @__errno_location() #11
  %8892 = load i32, ptr %8891, align 4, !tbaa !5
  %8893 = call ptr @strerror(i32 noundef %8892) #10
  %8894 = call ptr @__errno_location() #11
  %8895 = load i32, ptr %8894, align 4, !tbaa !5
  %8896 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8883, ptr noundef @.str, i32 noundef %8884, ptr noundef @.str.123, ptr noundef @.str.2, i32 noundef 668, ptr noundef %8887, ptr noundef %8890, ptr noundef %8893, i32 noundef %8895) #10
  br label %8914

8897:                                             ; preds = %8875, %8868
  %8898 = load i32, ptr %189, align 4, !tbaa !5
  %8899 = call ptr @__errno_location() #11
  store i32 %8898, ptr %8899, align 4, !tbaa !5
  %8900 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8901 = load i32, ptr @test_count, align 4, !tbaa !5
  %8902 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8903 = load i32, ptr %8902, align 4, !tbaa !5
  %8904 = call ptr @s2n_strerror(i32 noundef %8903, ptr noundef @.str.3)
  %8905 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8906 = load i32, ptr %8905, align 4, !tbaa !5
  %8907 = call ptr @s2n_strerror_debug(i32 noundef %8906, ptr noundef @.str.3)
  %8908 = call ptr @__errno_location() #11
  %8909 = load i32, ptr %8908, align 4, !tbaa !5
  %8910 = call ptr @strerror(i32 noundef %8909) #10
  %8911 = call ptr @__errno_location() #11
  %8912 = load i32, ptr %8911, align 4, !tbaa !5
  %8913 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8900, ptr noundef @.str.4, i32 noundef %8901, ptr noundef @.str.123, ptr noundef @.str.2, i32 noundef 668, ptr noundef %8904, ptr noundef %8907, ptr noundef %8910, i32 noundef %8912) #10
  br label %8914

8914:                                             ; preds = %8897, %8880
  call void @llvm.lifetime.end.p0(i64 4, ptr %189) #10
  br label %8915

8915:                                             ; preds = %8914
  br label %8916

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

8917:                                             ; No predecessors!
  br label %8918

8918:                                             ; preds = %8917
  br label %8919

8919:                                             ; preds = %8918, %8860
  br label %8920

8920:                                             ; preds = %8919
  br label %8921

8921:                                             ; preds = %8920
  br label %8922

8922:                                             ; preds = %8921
  br label %8923

8923:                                             ; preds = %8922
  %8924 = load i32, ptr @test_count, align 4, !tbaa !5
  %8925 = add nsw i32 %8924, 1
  store i32 %8925, ptr @test_count, align 4, !tbaa !5
  %8926 = load ptr, ptr @pkey_op, align 8, !tbaa !9
  %8927 = load ptr, ptr %184, align 8, !tbaa !9
  %8928 = call i32 @s2n_async_pkey_op_apply(ptr noundef %8926, ptr noundef %8927)
  %8929 = icmp eq i32 %8928, -1
  br i1 %8929, label %8983, label %8930

8930:                                             ; preds = %8923
  br label %8931

8931:                                             ; preds = %8930
  br label %8932

8932:                                             ; preds = %8931
  call void @llvm.lifetime.start.p0(i64 4, ptr %190) #10
  %8933 = call ptr @__errno_location() #11
  %8934 = load i32, ptr %8933, align 4, !tbaa !5
  store i32 %8934, ptr %190, align 4, !tbaa !5
  %8935 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8936 = call i32 @s2n_print_stacktrace(ptr noundef %8935)
  %8937 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8938 = trunc i8 %8937 to i1
  br i1 %8938, label %8939, label %8961

8939:                                             ; preds = %8932
  %8940 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8941 = call i32 @fileno(ptr noundef %8940) #10
  %8942 = call i32 @isatty(i32 noundef %8941) #10
  %8943 = icmp ne i32 %8942, 0
  br i1 %8943, label %8944, label %8961

8944:                                             ; preds = %8939
  %8945 = load i32, ptr %190, align 4, !tbaa !5
  %8946 = call ptr @__errno_location() #11
  store i32 %8945, ptr %8946, align 4, !tbaa !5
  %8947 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8948 = load i32, ptr @test_count, align 4, !tbaa !5
  %8949 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8950 = load i32, ptr %8949, align 4, !tbaa !5
  %8951 = call ptr @s2n_strerror(i32 noundef %8950, ptr noundef @.str.3)
  %8952 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8953 = load i32, ptr %8952, align 4, !tbaa !5
  %8954 = call ptr @s2n_strerror_debug(i32 noundef %8953, ptr noundef @.str.3)
  %8955 = call ptr @__errno_location() #11
  %8956 = load i32, ptr %8955, align 4, !tbaa !5
  %8957 = call ptr @strerror(i32 noundef %8956) #10
  %8958 = call ptr @__errno_location() #11
  %8959 = load i32, ptr %8958, align 4, !tbaa !5
  %8960 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8947, ptr noundef @.str, i32 noundef %8948, ptr noundef @.str.124, ptr noundef @.str.2, i32 noundef 670, ptr noundef %8951, ptr noundef %8954, ptr noundef %8957, i32 noundef %8959) #10
  br label %8978

8961:                                             ; preds = %8939, %8932
  %8962 = load i32, ptr %190, align 4, !tbaa !5
  %8963 = call ptr @__errno_location() #11
  store i32 %8962, ptr %8963, align 4, !tbaa !5
  %8964 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8965 = load i32, ptr @test_count, align 4, !tbaa !5
  %8966 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8967 = load i32, ptr %8966, align 4, !tbaa !5
  %8968 = call ptr @s2n_strerror(i32 noundef %8967, ptr noundef @.str.3)
  %8969 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8970 = load i32, ptr %8969, align 4, !tbaa !5
  %8971 = call ptr @s2n_strerror_debug(i32 noundef %8970, ptr noundef @.str.3)
  %8972 = call ptr @__errno_location() #11
  %8973 = load i32, ptr %8972, align 4, !tbaa !5
  %8974 = call ptr @strerror(i32 noundef %8973) #10
  %8975 = call ptr @__errno_location() #11
  %8976 = load i32, ptr %8975, align 4, !tbaa !5
  %8977 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8964, ptr noundef @.str.4, i32 noundef %8965, ptr noundef @.str.124, ptr noundef @.str.2, i32 noundef 670, ptr noundef %8968, ptr noundef %8971, ptr noundef %8974, i32 noundef %8976) #10
  br label %8978

8978:                                             ; preds = %8961, %8944
  call void @llvm.lifetime.end.p0(i64 4, ptr %190) #10
  br label %8979

8979:                                             ; preds = %8978
  br label %8980

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

8981:                                             ; No predecessors!
  br label %8982

8982:                                             ; preds = %8981
  br label %8983

8983:                                             ; preds = %8982, %8923
  br label %8984

8984:                                             ; preds = %8983
  br label %8985

8985:                                             ; preds = %8984
  br label %8986

8986:                                             ; preds = %8985
  %8987 = load i32, ptr @test_count, align 4, !tbaa !5
  %8988 = add nsw i32 %8987, 1
  store i32 %8988, ptr @test_count, align 4, !tbaa !5
  %8989 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8990 = load i32, ptr %8989, align 4, !tbaa !5
  %8991 = icmp eq i32 %8990, 0
  br i1 %8991, label %8992, label %9045

8992:                                             ; preds = %8986
  br label %8993

8993:                                             ; preds = %8992
  br label %8994

8994:                                             ; preds = %8993
  call void @llvm.lifetime.start.p0(i64 4, ptr %191) #10
  %8995 = call ptr @__errno_location() #11
  %8996 = load i32, ptr %8995, align 4, !tbaa !5
  store i32 %8996, ptr %191, align 4, !tbaa !5
  %8997 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8998 = call i32 @s2n_print_stacktrace(ptr noundef %8997)
  %8999 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9000 = trunc i8 %8999 to i1
  br i1 %9000, label %9001, label %9023

9001:                                             ; preds = %8994
  %9002 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9003 = call i32 @fileno(ptr noundef %9002) #10
  %9004 = call i32 @isatty(i32 noundef %9003) #10
  %9005 = icmp ne i32 %9004, 0
  br i1 %9005, label %9006, label %9023

9006:                                             ; preds = %9001
  %9007 = load i32, ptr %191, align 4, !tbaa !5
  %9008 = call ptr @__errno_location() #11
  store i32 %9007, ptr %9008, align 4, !tbaa !5
  %9009 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9010 = load i32, ptr @test_count, align 4, !tbaa !5
  %9011 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9012 = load i32, ptr %9011, align 4, !tbaa !5
  %9013 = call ptr @s2n_strerror(i32 noundef %9012, ptr noundef @.str.3)
  %9014 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9015 = load i32, ptr %9014, align 4, !tbaa !5
  %9016 = call ptr @s2n_strerror_debug(i32 noundef %9015, ptr noundef @.str.3)
  %9017 = call ptr @__errno_location() #11
  %9018 = load i32, ptr %9017, align 4, !tbaa !5
  %9019 = call ptr @strerror(i32 noundef %9018) #10
  %9020 = call ptr @__errno_location() #11
  %9021 = load i32, ptr %9020, align 4, !tbaa !5
  %9022 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9009, ptr noundef @.str, i32 noundef %9010, ptr noundef @.str.55, ptr noundef @.str.2, i32 noundef 670, ptr noundef %9013, ptr noundef %9016, ptr noundef %9019, i32 noundef %9021) #10
  br label %9040

9023:                                             ; preds = %9001, %8994
  %9024 = load i32, ptr %191, align 4, !tbaa !5
  %9025 = call ptr @__errno_location() #11
  store i32 %9024, ptr %9025, align 4, !tbaa !5
  %9026 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9027 = load i32, ptr @test_count, align 4, !tbaa !5
  %9028 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9029 = load i32, ptr %9028, align 4, !tbaa !5
  %9030 = call ptr @s2n_strerror(i32 noundef %9029, ptr noundef @.str.3)
  %9031 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9032 = load i32, ptr %9031, align 4, !tbaa !5
  %9033 = call ptr @s2n_strerror_debug(i32 noundef %9032, ptr noundef @.str.3)
  %9034 = call ptr @__errno_location() #11
  %9035 = load i32, ptr %9034, align 4, !tbaa !5
  %9036 = call ptr @strerror(i32 noundef %9035) #10
  %9037 = call ptr @__errno_location() #11
  %9038 = load i32, ptr %9037, align 4, !tbaa !5
  %9039 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9026, ptr noundef @.str.4, i32 noundef %9027, ptr noundef @.str.55, ptr noundef @.str.2, i32 noundef 670, ptr noundef %9030, ptr noundef %9033, ptr noundef %9036, i32 noundef %9038) #10
  br label %9040

9040:                                             ; preds = %9023, %9006
  call void @llvm.lifetime.end.p0(i64 4, ptr %191) #10
  br label %9041

9041:                                             ; preds = %9040
  br label %9042

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

9043:                                             ; No predecessors!
  br label %9044

9044:                                             ; preds = %9043
  br label %9045

9045:                                             ; preds = %9044, %8986
  br label %9046

9046:                                             ; preds = %9045
  br label %9047

9047:                                             ; preds = %9046
  br label %9048

9048:                                             ; preds = %9047
  %9049 = load i32, ptr @test_count, align 4, !tbaa !5
  %9050 = add nsw i32 %9049, 1
  store i32 %9050, ptr @test_count, align 4, !tbaa !5
  %9051 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9052 = load i32, ptr %9051, align 4, !tbaa !5
  %9053 = call ptr @s2n_strerror_debug(i32 noundef %9052, ptr noundef @.str.3)
  %9054 = icmp eq ptr %9053, null
  br i1 %9054, label %9055, label %9108

9055:                                             ; preds = %9048
  br label %9056

9056:                                             ; preds = %9055
  br label %9057

9057:                                             ; preds = %9056
  call void @llvm.lifetime.start.p0(i64 4, ptr %192) #10
  %9058 = call ptr @__errno_location() #11
  %9059 = load i32, ptr %9058, align 4, !tbaa !5
  store i32 %9059, ptr %192, align 4, !tbaa !5
  %9060 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9061 = call i32 @s2n_print_stacktrace(ptr noundef %9060)
  %9062 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9063 = trunc i8 %9062 to i1
  br i1 %9063, label %9064, label %9086

9064:                                             ; preds = %9057
  %9065 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9066 = call i32 @fileno(ptr noundef %9065) #10
  %9067 = call i32 @isatty(i32 noundef %9066) #10
  %9068 = icmp ne i32 %9067, 0
  br i1 %9068, label %9069, label %9086

9069:                                             ; preds = %9064
  %9070 = load i32, ptr %192, align 4, !tbaa !5
  %9071 = call ptr @__errno_location() #11
  store i32 %9070, ptr %9071, align 4, !tbaa !5
  %9072 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9073 = load i32, ptr @test_count, align 4, !tbaa !5
  %9074 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9075 = load i32, ptr %9074, align 4, !tbaa !5
  %9076 = call ptr @s2n_strerror(i32 noundef %9075, ptr noundef @.str.3)
  %9077 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9078 = load i32, ptr %9077, align 4, !tbaa !5
  %9079 = call ptr @s2n_strerror_debug(i32 noundef %9078, ptr noundef @.str.3)
  %9080 = call ptr @__errno_location() #11
  %9081 = load i32, ptr %9080, align 4, !tbaa !5
  %9082 = call ptr @strerror(i32 noundef %9081) #10
  %9083 = call ptr @__errno_location() #11
  %9084 = load i32, ptr %9083, align 4, !tbaa !5
  %9085 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9072, ptr noundef @.str, i32 noundef %9073, ptr noundef @.str.56, ptr noundef @.str.2, i32 noundef 670, ptr noundef %9076, ptr noundef %9079, ptr noundef %9082, i32 noundef %9084) #10
  br label %9103

9086:                                             ; preds = %9064, %9057
  %9087 = load i32, ptr %192, align 4, !tbaa !5
  %9088 = call ptr @__errno_location() #11
  store i32 %9087, ptr %9088, align 4, !tbaa !5
  %9089 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9090 = load i32, ptr @test_count, align 4, !tbaa !5
  %9091 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9092 = load i32, ptr %9091, align 4, !tbaa !5
  %9093 = call ptr @s2n_strerror(i32 noundef %9092, ptr noundef @.str.3)
  %9094 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9095 = load i32, ptr %9094, align 4, !tbaa !5
  %9096 = call ptr @s2n_strerror_debug(i32 noundef %9095, ptr noundef @.str.3)
  %9097 = call ptr @__errno_location() #11
  %9098 = load i32, ptr %9097, align 4, !tbaa !5
  %9099 = call ptr @strerror(i32 noundef %9098) #10
  %9100 = call ptr @__errno_location() #11
  %9101 = load i32, ptr %9100, align 4, !tbaa !5
  %9102 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9089, ptr noundef @.str.4, i32 noundef %9090, ptr noundef @.str.56, ptr noundef @.str.2, i32 noundef 670, ptr noundef %9093, ptr noundef %9096, ptr noundef %9099, i32 noundef %9101) #10
  br label %9103

9103:                                             ; preds = %9086, %9069
  call void @llvm.lifetime.end.p0(i64 4, ptr %192) #10
  br label %9104

9104:                                             ; preds = %9103
  br label %9105

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

9106:                                             ; No predecessors!
  br label %9107

9107:                                             ; preds = %9106
  br label %9108

9108:                                             ; preds = %9107, %9048
  br label %9109

9109:                                             ; preds = %9108
  br label %9110

9110:                                             ; preds = %9109
  br label %9111

9111:                                             ; preds = %9110
  %9112 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %9112, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %9113 = call ptr @__errno_location() #11
  store i32 0, ptr %9113, align 4, !tbaa !5
  br label %9114

9114:                                             ; preds = %9111
  br label %9115

9115:                                             ; preds = %9114
  br label %9116

9116:                                             ; preds = %9115
  br label %9117

9117:                                             ; preds = %9116
  br label %9118

9118:                                             ; preds = %9117
  %9119 = load i32, ptr @test_count, align 4, !tbaa !5
  %9120 = add nsw i32 %9119, 1
  store i32 %9120, ptr @test_count, align 4, !tbaa !5
  %9121 = load ptr, ptr @pkey_op, align 8, !tbaa !9
  %9122 = call i32 @s2n_async_pkey_op_free(ptr noundef %9121)
  %9123 = icmp eq i32 %9122, -1
  br i1 %9123, label %9124, label %9177

9124:                                             ; preds = %9118
  br label %9125

9125:                                             ; preds = %9124
  br label %9126

9126:                                             ; preds = %9125
  call void @llvm.lifetime.start.p0(i64 4, ptr %193) #10
  %9127 = call ptr @__errno_location() #11
  %9128 = load i32, ptr %9127, align 4, !tbaa !5
  store i32 %9128, ptr %193, align 4, !tbaa !5
  %9129 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9130 = call i32 @s2n_print_stacktrace(ptr noundef %9129)
  %9131 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9132 = trunc i8 %9131 to i1
  br i1 %9132, label %9133, label %9155

9133:                                             ; preds = %9126
  %9134 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9135 = call i32 @fileno(ptr noundef %9134) #10
  %9136 = call i32 @isatty(i32 noundef %9135) #10
  %9137 = icmp ne i32 %9136, 0
  br i1 %9137, label %9138, label %9155

9138:                                             ; preds = %9133
  %9139 = load i32, ptr %193, align 4, !tbaa !5
  %9140 = call ptr @__errno_location() #11
  store i32 %9139, ptr %9140, align 4, !tbaa !5
  %9141 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9142 = load i32, ptr @test_count, align 4, !tbaa !5
  %9143 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9144 = load i32, ptr %9143, align 4, !tbaa !5
  %9145 = call ptr @s2n_strerror(i32 noundef %9144, ptr noundef @.str.3)
  %9146 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9147 = load i32, ptr %9146, align 4, !tbaa !5
  %9148 = call ptr @s2n_strerror_debug(i32 noundef %9147, ptr noundef @.str.3)
  %9149 = call ptr @__errno_location() #11
  %9150 = load i32, ptr %9149, align 4, !tbaa !5
  %9151 = call ptr @strerror(i32 noundef %9150) #10
  %9152 = call ptr @__errno_location() #11
  %9153 = load i32, ptr %9152, align 4, !tbaa !5
  %9154 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9141, ptr noundef @.str, i32 noundef %9142, ptr noundef @.str.113, ptr noundef @.str.2, i32 noundef 671, ptr noundef %9145, ptr noundef %9148, ptr noundef %9151, i32 noundef %9153) #10
  br label %9172

9155:                                             ; preds = %9133, %9126
  %9156 = load i32, ptr %193, align 4, !tbaa !5
  %9157 = call ptr @__errno_location() #11
  store i32 %9156, ptr %9157, align 4, !tbaa !5
  %9158 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9159 = load i32, ptr @test_count, align 4, !tbaa !5
  %9160 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9161 = load i32, ptr %9160, align 4, !tbaa !5
  %9162 = call ptr @s2n_strerror(i32 noundef %9161, ptr noundef @.str.3)
  %9163 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9164 = load i32, ptr %9163, align 4, !tbaa !5
  %9165 = call ptr @s2n_strerror_debug(i32 noundef %9164, ptr noundef @.str.3)
  %9166 = call ptr @__errno_location() #11
  %9167 = load i32, ptr %9166, align 4, !tbaa !5
  %9168 = call ptr @strerror(i32 noundef %9167) #10
  %9169 = call ptr @__errno_location() #11
  %9170 = load i32, ptr %9169, align 4, !tbaa !5
  %9171 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9158, ptr noundef @.str.4, i32 noundef %9159, ptr noundef @.str.113, ptr noundef @.str.2, i32 noundef 671, ptr noundef %9162, ptr noundef %9165, ptr noundef %9168, i32 noundef %9170) #10
  br label %9172

9172:                                             ; preds = %9155, %9138
  call void @llvm.lifetime.end.p0(i64 4, ptr %193) #10
  br label %9173

9173:                                             ; preds = %9172
  br label %9174

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

9175:                                             ; No predecessors!
  br label %9176

9176:                                             ; preds = %9175
  br label %9177

9177:                                             ; preds = %9176, %9118
  br label %9178

9178:                                             ; preds = %9177
  br label %9179

9179:                                             ; preds = %9178
  br label %9180

9180:                                             ; preds = %9179
  %9181 = load i32, ptr @test_count, align 4, !tbaa !5
  %9182 = add nsw i32 %9181, 1
  store i32 %9182, ptr @test_count, align 4, !tbaa !5
  %9183 = load i8, ptr @offload_callback_count, align 1, !tbaa !38
  %9184 = zext i8 %9183 to i32
  %9185 = icmp eq i32 5, %9184
  br i1 %9185, label %9239, label %9186

9186:                                             ; preds = %9180
  br label %9187

9187:                                             ; preds = %9186
  br label %9188

9188:                                             ; preds = %9187
  call void @llvm.lifetime.start.p0(i64 4, ptr %194) #10
  %9189 = call ptr @__errno_location() #11
  %9190 = load i32, ptr %9189, align 4, !tbaa !5
  store i32 %9190, ptr %194, align 4, !tbaa !5
  %9191 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9192 = call i32 @s2n_print_stacktrace(ptr noundef %9191)
  %9193 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9194 = trunc i8 %9193 to i1
  br i1 %9194, label %9195, label %9217

9195:                                             ; preds = %9188
  %9196 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9197 = call i32 @fileno(ptr noundef %9196) #10
  %9198 = call i32 @isatty(i32 noundef %9197) #10
  %9199 = icmp ne i32 %9198, 0
  br i1 %9199, label %9200, label %9217

9200:                                             ; preds = %9195
  %9201 = load i32, ptr %194, align 4, !tbaa !5
  %9202 = call ptr @__errno_location() #11
  store i32 %9201, ptr %9202, align 4, !tbaa !5
  %9203 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9204 = load i32, ptr @test_count, align 4, !tbaa !5
  %9205 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9206 = load i32, ptr %9205, align 4, !tbaa !5
  %9207 = call ptr @s2n_strerror(i32 noundef %9206, ptr noundef @.str.3)
  %9208 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9209 = load i32, ptr %9208, align 4, !tbaa !5
  %9210 = call ptr @s2n_strerror_debug(i32 noundef %9209, ptr noundef @.str.3)
  %9211 = call ptr @__errno_location() #11
  %9212 = load i32, ptr %9211, align 4, !tbaa !5
  %9213 = call ptr @strerror(i32 noundef %9212) #10
  %9214 = call ptr @__errno_location() #11
  %9215 = load i32, ptr %9214, align 4, !tbaa !5
  %9216 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9203, ptr noundef @.str, i32 noundef %9204, ptr noundef @.str.123, ptr noundef @.str.2, i32 noundef 672, ptr noundef %9207, ptr noundef %9210, ptr noundef %9213, i32 noundef %9215) #10
  br label %9234

9217:                                             ; preds = %9195, %9188
  %9218 = load i32, ptr %194, align 4, !tbaa !5
  %9219 = call ptr @__errno_location() #11
  store i32 %9218, ptr %9219, align 4, !tbaa !5
  %9220 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9221 = load i32, ptr @test_count, align 4, !tbaa !5
  %9222 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9223 = load i32, ptr %9222, align 4, !tbaa !5
  %9224 = call ptr @s2n_strerror(i32 noundef %9223, ptr noundef @.str.3)
  %9225 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9226 = load i32, ptr %9225, align 4, !tbaa !5
  %9227 = call ptr @s2n_strerror_debug(i32 noundef %9226, ptr noundef @.str.3)
  %9228 = call ptr @__errno_location() #11
  %9229 = load i32, ptr %9228, align 4, !tbaa !5
  %9230 = call ptr @strerror(i32 noundef %9229) #10
  %9231 = call ptr @__errno_location() #11
  %9232 = load i32, ptr %9231, align 4, !tbaa !5
  %9233 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9220, ptr noundef @.str.4, i32 noundef %9221, ptr noundef @.str.123, ptr noundef @.str.2, i32 noundef 672, ptr noundef %9224, ptr noundef %9227, ptr noundef %9230, i32 noundef %9232) #10
  br label %9234

9234:                                             ; preds = %9217, %9200
  call void @llvm.lifetime.end.p0(i64 4, ptr %194) #10
  br label %9235

9235:                                             ; preds = %9234
  br label %9236

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

9237:                                             ; No predecessors!
  br label %9238

9238:                                             ; preds = %9237
  br label %9239

9239:                                             ; preds = %9238, %9180
  br label %9240

9240:                                             ; preds = %9239
  br label %9241

9241:                                             ; preds = %9240
  br label %9242

9242:                                             ; preds = %9241
  %9243 = load i32, ptr @test_count, align 4, !tbaa !5
  %9244 = add nsw i32 %9243, 1
  store i32 %9244, ptr @test_count, align 4, !tbaa !5
  %9245 = load ptr, ptr %184, align 8, !tbaa !9
  %9246 = call i32 @s2n_connection_free(ptr noundef %9245)
  %9247 = icmp eq i32 %9246, -1
  br i1 %9247, label %9248, label %9301

9248:                                             ; preds = %9242
  br label %9249

9249:                                             ; preds = %9248
  br label %9250

9250:                                             ; preds = %9249
  call void @llvm.lifetime.start.p0(i64 4, ptr %195) #10
  %9251 = call ptr @__errno_location() #11
  %9252 = load i32, ptr %9251, align 4, !tbaa !5
  store i32 %9252, ptr %195, align 4, !tbaa !5
  %9253 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9254 = call i32 @s2n_print_stacktrace(ptr noundef %9253)
  %9255 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9256 = trunc i8 %9255 to i1
  br i1 %9256, label %9257, label %9279

9257:                                             ; preds = %9250
  %9258 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9259 = call i32 @fileno(ptr noundef %9258) #10
  %9260 = call i32 @isatty(i32 noundef %9259) #10
  %9261 = icmp ne i32 %9260, 0
  br i1 %9261, label %9262, label %9279

9262:                                             ; preds = %9257
  %9263 = load i32, ptr %195, align 4, !tbaa !5
  %9264 = call ptr @__errno_location() #11
  store i32 %9263, ptr %9264, align 4, !tbaa !5
  %9265 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9266 = load i32, ptr @test_count, align 4, !tbaa !5
  %9267 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9268 = load i32, ptr %9267, align 4, !tbaa !5
  %9269 = call ptr @s2n_strerror(i32 noundef %9268, ptr noundef @.str.3)
  %9270 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9271 = load i32, ptr %9270, align 4, !tbaa !5
  %9272 = call ptr @s2n_strerror_debug(i32 noundef %9271, ptr noundef @.str.3)
  %9273 = call ptr @__errno_location() #11
  %9274 = load i32, ptr %9273, align 4, !tbaa !5
  %9275 = call ptr @strerror(i32 noundef %9274) #10
  %9276 = call ptr @__errno_location() #11
  %9277 = load i32, ptr %9276, align 4, !tbaa !5
  %9278 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9265, ptr noundef @.str, i32 noundef %9266, ptr noundef @.str.115, ptr noundef @.str.2, i32 noundef 674, ptr noundef %9269, ptr noundef %9272, ptr noundef %9275, i32 noundef %9277) #10
  br label %9296

9279:                                             ; preds = %9257, %9250
  %9280 = load i32, ptr %195, align 4, !tbaa !5
  %9281 = call ptr @__errno_location() #11
  store i32 %9280, ptr %9281, align 4, !tbaa !5
  %9282 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9283 = load i32, ptr @test_count, align 4, !tbaa !5
  %9284 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9285 = load i32, ptr %9284, align 4, !tbaa !5
  %9286 = call ptr @s2n_strerror(i32 noundef %9285, ptr noundef @.str.3)
  %9287 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9288 = load i32, ptr %9287, align 4, !tbaa !5
  %9289 = call ptr @s2n_strerror_debug(i32 noundef %9288, ptr noundef @.str.3)
  %9290 = call ptr @__errno_location() #11
  %9291 = load i32, ptr %9290, align 4, !tbaa !5
  %9292 = call ptr @strerror(i32 noundef %9291) #10
  %9293 = call ptr @__errno_location() #11
  %9294 = load i32, ptr %9293, align 4, !tbaa !5
  %9295 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9282, ptr noundef @.str.4, i32 noundef %9283, ptr noundef @.str.115, ptr noundef @.str.2, i32 noundef 674, ptr noundef %9286, ptr noundef %9289, ptr noundef %9292, i32 noundef %9294) #10
  br label %9296

9296:                                             ; preds = %9279, %9262
  call void @llvm.lifetime.end.p0(i64 4, ptr %195) #10
  br label %9297

9297:                                             ; preds = %9296
  br label %9298

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

9299:                                             ; No predecessors!
  br label %9300

9300:                                             ; preds = %9299
  br label %9301

9301:                                             ; preds = %9300, %9242
  br label %9302

9302:                                             ; preds = %9301
  br label %9303

9303:                                             ; preds = %9302
  call void @llvm.lifetime.end.p0(i64 8, ptr %184) #10
  br label %9304

9304:                                             ; preds = %9303
  %9305 = load i32, ptr @test_count, align 4, !tbaa !5
  %9306 = add nsw i32 %9305, 1
  store i32 %9306, ptr @test_count, align 4, !tbaa !5
  %9307 = call i32 (...) @s2n_reset_tls13_in_test()
  %9308 = icmp eq i32 %9307, -1
  br i1 %9308, label %9309, label %9362

9309:                                             ; preds = %9304
  br label %9310

9310:                                             ; preds = %9309
  br label %9311

9311:                                             ; preds = %9310
  call void @llvm.lifetime.start.p0(i64 4, ptr %196) #10
  %9312 = call ptr @__errno_location() #11
  %9313 = load i32, ptr %9312, align 4, !tbaa !5
  store i32 %9313, ptr %196, align 4, !tbaa !5
  %9314 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9315 = call i32 @s2n_print_stacktrace(ptr noundef %9314)
  %9316 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9317 = trunc i8 %9316 to i1
  br i1 %9317, label %9318, label %9340

9318:                                             ; preds = %9311
  %9319 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9320 = call i32 @fileno(ptr noundef %9319) #10
  %9321 = call i32 @isatty(i32 noundef %9320) #10
  %9322 = icmp ne i32 %9321, 0
  br i1 %9322, label %9323, label %9340

9323:                                             ; preds = %9318
  %9324 = load i32, ptr %196, align 4, !tbaa !5
  %9325 = call ptr @__errno_location() #11
  store i32 %9324, ptr %9325, align 4, !tbaa !5
  %9326 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9327 = load i32, ptr @test_count, align 4, !tbaa !5
  %9328 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9329 = load i32, ptr %9328, align 4, !tbaa !5
  %9330 = call ptr @s2n_strerror(i32 noundef %9329, ptr noundef @.str.3)
  %9331 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9332 = load i32, ptr %9331, align 4, !tbaa !5
  %9333 = call ptr @s2n_strerror_debug(i32 noundef %9332, ptr noundef @.str.3)
  %9334 = call ptr @__errno_location() #11
  %9335 = load i32, ptr %9334, align 4, !tbaa !5
  %9336 = call ptr @strerror(i32 noundef %9335) #10
  %9337 = call ptr @__errno_location() #11
  %9338 = load i32, ptr %9337, align 4, !tbaa !5
  %9339 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9326, ptr noundef @.str, i32 noundef %9327, ptr noundef @.str.125, ptr noundef @.str.2, i32 noundef 677, ptr noundef %9330, ptr noundef %9333, ptr noundef %9336, i32 noundef %9338) #10
  br label %9357

9340:                                             ; preds = %9318, %9311
  %9341 = load i32, ptr %196, align 4, !tbaa !5
  %9342 = call ptr @__errno_location() #11
  store i32 %9341, ptr %9342, align 4, !tbaa !5
  %9343 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9344 = load i32, ptr @test_count, align 4, !tbaa !5
  %9345 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9346 = load i32, ptr %9345, align 4, !tbaa !5
  %9347 = call ptr @s2n_strerror(i32 noundef %9346, ptr noundef @.str.3)
  %9348 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9349 = load i32, ptr %9348, align 4, !tbaa !5
  %9350 = call ptr @s2n_strerror_debug(i32 noundef %9349, ptr noundef @.str.3)
  %9351 = call ptr @__errno_location() #11
  %9352 = load i32, ptr %9351, align 4, !tbaa !5
  %9353 = call ptr @strerror(i32 noundef %9352) #10
  %9354 = call ptr @__errno_location() #11
  %9355 = load i32, ptr %9354, align 4, !tbaa !5
  %9356 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9343, ptr noundef @.str.4, i32 noundef %9344, ptr noundef @.str.125, ptr noundef @.str.2, i32 noundef 677, ptr noundef %9347, ptr noundef %9350, ptr noundef %9353, i32 noundef %9355) #10
  br label %9357

9357:                                             ; preds = %9340, %9323
  call void @llvm.lifetime.end.p0(i64 4, ptr %196) #10
  br label %9358

9358:                                             ; preds = %9357
  br label %9359

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

9360:                                             ; No predecessors!
  br label %9361

9361:                                             ; preds = %9360
  br label %9362

9362:                                             ; preds = %9361, %9304
  br label %9363

9363:                                             ; preds = %9362
  br label %9364

9364:                                             ; preds = %9363
  call void @llvm.lifetime.start.p0(i64 8, ptr %197) #10
  %9365 = call ptr @s2n_config_new()
  store ptr %9365, ptr %197, align 8, !tbaa !9
  br label %9366

9366:                                             ; preds = %9364
  %9367 = load i32, ptr @test_count, align 4, !tbaa !5
  %9368 = add nsw i32 %9367, 1
  store i32 %9368, ptr @test_count, align 4, !tbaa !5
  %9369 = load ptr, ptr %197, align 8, !tbaa !9
  %9370 = icmp eq ptr %9369, null
  br i1 %9370, label %9371, label %9424

9371:                                             ; preds = %9366
  br label %9372

9372:                                             ; preds = %9371
  br label %9373

9373:                                             ; preds = %9372
  call void @llvm.lifetime.start.p0(i64 4, ptr %198) #10
  %9374 = call ptr @__errno_location() #11
  %9375 = load i32, ptr %9374, align 4, !tbaa !5
  store i32 %9375, ptr %198, align 4, !tbaa !5
  %9376 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9377 = call i32 @s2n_print_stacktrace(ptr noundef %9376)
  %9378 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9379 = trunc i8 %9378 to i1
  br i1 %9379, label %9380, label %9402

9380:                                             ; preds = %9373
  %9381 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9382 = call i32 @fileno(ptr noundef %9381) #10
  %9383 = call i32 @isatty(i32 noundef %9382) #10
  %9384 = icmp ne i32 %9383, 0
  br i1 %9384, label %9385, label %9402

9385:                                             ; preds = %9380
  %9386 = load i32, ptr %198, align 4, !tbaa !5
  %9387 = call ptr @__errno_location() #11
  store i32 %9386, ptr %9387, align 4, !tbaa !5
  %9388 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9389 = load i32, ptr @test_count, align 4, !tbaa !5
  %9390 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9391 = load i32, ptr %9390, align 4, !tbaa !5
  %9392 = call ptr @s2n_strerror(i32 noundef %9391, ptr noundef @.str.3)
  %9393 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9394 = load i32, ptr %9393, align 4, !tbaa !5
  %9395 = call ptr @s2n_strerror_debug(i32 noundef %9394, ptr noundef @.str.3)
  %9396 = call ptr @__errno_location() #11
  %9397 = load i32, ptr %9396, align 4, !tbaa !5
  %9398 = call ptr @strerror(i32 noundef %9397) #10
  %9399 = call ptr @__errno_location() #11
  %9400 = load i32, ptr %9399, align 4, !tbaa !5
  %9401 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9388, ptr noundef @.str, i32 noundef %9389, ptr noundef @.str.126, ptr noundef @.str.2, i32 noundef 682, ptr noundef %9392, ptr noundef %9395, ptr noundef %9398, i32 noundef %9400) #10
  br label %9419

9402:                                             ; preds = %9380, %9373
  %9403 = load i32, ptr %198, align 4, !tbaa !5
  %9404 = call ptr @__errno_location() #11
  store i32 %9403, ptr %9404, align 4, !tbaa !5
  %9405 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9406 = load i32, ptr @test_count, align 4, !tbaa !5
  %9407 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9408 = load i32, ptr %9407, align 4, !tbaa !5
  %9409 = call ptr @s2n_strerror(i32 noundef %9408, ptr noundef @.str.3)
  %9410 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9411 = load i32, ptr %9410, align 4, !tbaa !5
  %9412 = call ptr @s2n_strerror_debug(i32 noundef %9411, ptr noundef @.str.3)
  %9413 = call ptr @__errno_location() #11
  %9414 = load i32, ptr %9413, align 4, !tbaa !5
  %9415 = call ptr @strerror(i32 noundef %9414) #10
  %9416 = call ptr @__errno_location() #11
  %9417 = load i32, ptr %9416, align 4, !tbaa !5
  %9418 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9405, ptr noundef @.str.4, i32 noundef %9406, ptr noundef @.str.126, ptr noundef @.str.2, i32 noundef 682, ptr noundef %9409, ptr noundef %9412, ptr noundef %9415, i32 noundef %9417) #10
  br label %9419

9419:                                             ; preds = %9402, %9385
  call void @llvm.lifetime.end.p0(i64 4, ptr %198) #10
  br label %9420

9420:                                             ; preds = %9419
  br label %9421

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

9422:                                             ; No predecessors!
  br label %9423

9423:                                             ; preds = %9422
  br label %9424

9424:                                             ; preds = %9423, %9366
  br label %9425

9425:                                             ; preds = %9424
  br label %9426

9426:                                             ; preds = %9425
  br label %9427

9427:                                             ; preds = %9426
  %9428 = load i32, ptr @test_count, align 4, !tbaa !5
  %9429 = add nsw i32 %9428, 1
  store i32 %9429, ptr @test_count, align 4, !tbaa !5
  %9430 = load ptr, ptr %197, align 8, !tbaa !9
  %9431 = call i32 @s2n_config_set_unsafe_for_testing(ptr noundef %9430)
  %9432 = icmp eq i32 %9431, -1
  br i1 %9432, label %9433, label %9486

9433:                                             ; preds = %9427
  br label %9434

9434:                                             ; preds = %9433
  br label %9435

9435:                                             ; preds = %9434
  call void @llvm.lifetime.start.p0(i64 4, ptr %199) #10
  %9436 = call ptr @__errno_location() #11
  %9437 = load i32, ptr %9436, align 4, !tbaa !5
  store i32 %9437, ptr %199, align 4, !tbaa !5
  %9438 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9439 = call i32 @s2n_print_stacktrace(ptr noundef %9438)
  %9440 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9441 = trunc i8 %9440 to i1
  br i1 %9441, label %9442, label %9464

9442:                                             ; preds = %9435
  %9443 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9444 = call i32 @fileno(ptr noundef %9443) #10
  %9445 = call i32 @isatty(i32 noundef %9444) #10
  %9446 = icmp ne i32 %9445, 0
  br i1 %9446, label %9447, label %9464

9447:                                             ; preds = %9442
  %9448 = load i32, ptr %199, align 4, !tbaa !5
  %9449 = call ptr @__errno_location() #11
  store i32 %9448, ptr %9449, align 4, !tbaa !5
  %9450 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9451 = load i32, ptr @test_count, align 4, !tbaa !5
  %9452 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9453 = load i32, ptr %9452, align 4, !tbaa !5
  %9454 = call ptr @s2n_strerror(i32 noundef %9453, ptr noundef @.str.3)
  %9455 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9456 = load i32, ptr %9455, align 4, !tbaa !5
  %9457 = call ptr @s2n_strerror_debug(i32 noundef %9456, ptr noundef @.str.3)
  %9458 = call ptr @__errno_location() #11
  %9459 = load i32, ptr %9458, align 4, !tbaa !5
  %9460 = call ptr @strerror(i32 noundef %9459) #10
  %9461 = call ptr @__errno_location() #11
  %9462 = load i32, ptr %9461, align 4, !tbaa !5
  %9463 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9450, ptr noundef @.str, i32 noundef %9451, ptr noundef @.str.127, ptr noundef @.str.2, i32 noundef 683, ptr noundef %9454, ptr noundef %9457, ptr noundef %9460, i32 noundef %9462) #10
  br label %9481

9464:                                             ; preds = %9442, %9435
  %9465 = load i32, ptr %199, align 4, !tbaa !5
  %9466 = call ptr @__errno_location() #11
  store i32 %9465, ptr %9466, align 4, !tbaa !5
  %9467 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9468 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %9470, ptr noundef @.str.3)
  %9472 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9473 = load i32, ptr %9472, align 4, !tbaa !5
  %9474 = call ptr @s2n_strerror_debug(i32 noundef %9473, ptr noundef @.str.3)
  %9475 = call ptr @__errno_location() #11
  %9476 = load i32, ptr %9475, align 4, !tbaa !5
  %9477 = call ptr @strerror(i32 noundef %9476) #10
  %9478 = call ptr @__errno_location() #11
  %9479 = load i32, ptr %9478, align 4, !tbaa !5
  %9480 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9467, ptr noundef @.str.4, i32 noundef %9468, ptr noundef @.str.127, ptr noundef @.str.2, i32 noundef 683, ptr noundef %9471, ptr noundef %9474, ptr noundef %9477, i32 noundef %9479) #10
  br label %9481

9481:                                             ; preds = %9464, %9447
  call void @llvm.lifetime.end.p0(i64 4, ptr %199) #10
  br label %9482

9482:                                             ; preds = %9481
  br label %9483

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

9484:                                             ; No predecessors!
  br label %9485

9485:                                             ; preds = %9484
  br label %9486

9486:                                             ; preds = %9485, %9427
  br label %9487

9487:                                             ; preds = %9486
  br label %9488

9488:                                             ; preds = %9487
  br label %9489

9489:                                             ; preds = %9488
  %9490 = load i32, ptr @test_count, align 4, !tbaa !5
  %9491 = add nsw i32 %9490, 1
  store i32 %9491, ptr @test_count, align 4, !tbaa !5
  %9492 = load ptr, ptr %197, align 8, !tbaa !9
  %9493 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %9492, ptr noundef @.str.128)
  %9494 = icmp eq i32 %9493, -1
  br i1 %9494, label %9495, label %9548

9495:                                             ; preds = %9489
  br label %9496

9496:                                             ; preds = %9495
  br label %9497

9497:                                             ; preds = %9496
  call void @llvm.lifetime.start.p0(i64 4, ptr %200) #10
  %9498 = call ptr @__errno_location() #11
  %9499 = load i32, ptr %9498, align 4, !tbaa !5
  store i32 %9499, ptr %200, align 4, !tbaa !5
  %9500 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9501 = call i32 @s2n_print_stacktrace(ptr noundef %9500)
  %9502 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9503 = trunc i8 %9502 to i1
  br i1 %9503, label %9504, label %9526

9504:                                             ; preds = %9497
  %9505 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9506 = call i32 @fileno(ptr noundef %9505) #10
  %9507 = call i32 @isatty(i32 noundef %9506) #10
  %9508 = icmp ne i32 %9507, 0
  br i1 %9508, label %9509, label %9526

9509:                                             ; preds = %9504
  %9510 = load i32, ptr %200, align 4, !tbaa !5
  %9511 = call ptr @__errno_location() #11
  store i32 %9510, ptr %9511, align 4, !tbaa !5
  %9512 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9513 = load i32, ptr @test_count, align 4, !tbaa !5
  %9514 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9515 = load i32, ptr %9514, align 4, !tbaa !5
  %9516 = call ptr @s2n_strerror(i32 noundef %9515, ptr noundef @.str.3)
  %9517 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9518 = load i32, ptr %9517, align 4, !tbaa !5
  %9519 = call ptr @s2n_strerror_debug(i32 noundef %9518, ptr noundef @.str.3)
  %9520 = call ptr @__errno_location() #11
  %9521 = load i32, ptr %9520, align 4, !tbaa !5
  %9522 = call ptr @strerror(i32 noundef %9521) #10
  %9523 = call ptr @__errno_location() #11
  %9524 = load i32, ptr %9523, align 4, !tbaa !5
  %9525 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9512, ptr noundef @.str, i32 noundef %9513, ptr noundef @.str.129, ptr noundef @.str.2, i32 noundef 684, ptr noundef %9516, ptr noundef %9519, ptr noundef %9522, i32 noundef %9524) #10
  br label %9543

9526:                                             ; preds = %9504, %9497
  %9527 = load i32, ptr %200, align 4, !tbaa !5
  %9528 = call ptr @__errno_location() #11
  store i32 %9527, ptr %9528, align 4, !tbaa !5
  %9529 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9530 = load i32, ptr @test_count, align 4, !tbaa !5
  %9531 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9532 = load i32, ptr %9531, align 4, !tbaa !5
  %9533 = call ptr @s2n_strerror(i32 noundef %9532, ptr noundef @.str.3)
  %9534 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9535 = load i32, ptr %9534, align 4, !tbaa !5
  %9536 = call ptr @s2n_strerror_debug(i32 noundef %9535, ptr noundef @.str.3)
  %9537 = call ptr @__errno_location() #11
  %9538 = load i32, ptr %9537, align 4, !tbaa !5
  %9539 = call ptr @strerror(i32 noundef %9538) #10
  %9540 = call ptr @__errno_location() #11
  %9541 = load i32, ptr %9540, align 4, !tbaa !5
  %9542 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9529, ptr noundef @.str.4, i32 noundef %9530, ptr noundef @.str.129, ptr noundef @.str.2, i32 noundef 684, ptr noundef %9533, ptr noundef %9536, ptr noundef %9539, i32 noundef %9541) #10
  br label %9543

9543:                                             ; preds = %9526, %9509
  call void @llvm.lifetime.end.p0(i64 4, ptr %200) #10
  br label %9544

9544:                                             ; preds = %9543
  br label %9545

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

9546:                                             ; No predecessors!
  br label %9547

9547:                                             ; preds = %9546
  br label %9548

9548:                                             ; preds = %9547, %9489
  br label %9549

9549:                                             ; preds = %9548
  br label %9550

9550:                                             ; preds = %9549
  br label %9551

9551:                                             ; preds = %9550
  %9552 = load i32, ptr @test_count, align 4, !tbaa !5
  %9553 = add nsw i32 %9552, 1
  store i32 %9553, ptr @test_count, align 4, !tbaa !5
  %9554 = load ptr, ptr %197, align 8, !tbaa !9
  %9555 = load ptr, ptr %14, align 8, !tbaa !9
  %9556 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %9554, ptr noundef %9555)
  %9557 = icmp eq i32 %9556, -1
  br i1 %9557, label %9558, label %9611

9558:                                             ; preds = %9551
  br label %9559

9559:                                             ; preds = %9558
  br label %9560

9560:                                             ; preds = %9559
  call void @llvm.lifetime.start.p0(i64 4, ptr %201) #10
  %9561 = call ptr @__errno_location() #11
  %9562 = load i32, ptr %9561, align 4, !tbaa !5
  store i32 %9562, ptr %201, align 4, !tbaa !5
  %9563 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9564 = call i32 @s2n_print_stacktrace(ptr noundef %9563)
  %9565 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9566 = trunc i8 %9565 to i1
  br i1 %9566, label %9567, label %9589

9567:                                             ; preds = %9560
  %9568 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9569 = call i32 @fileno(ptr noundef %9568) #10
  %9570 = call i32 @isatty(i32 noundef %9569) #10
  %9571 = icmp ne i32 %9570, 0
  br i1 %9571, label %9572, label %9589

9572:                                             ; preds = %9567
  %9573 = load i32, ptr %201, align 4, !tbaa !5
  %9574 = call ptr @__errno_location() #11
  store i32 %9573, ptr %9574, align 4, !tbaa !5
  %9575 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9576 = load i32, ptr @test_count, align 4, !tbaa !5
  %9577 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9578 = load i32, ptr %9577, align 4, !tbaa !5
  %9579 = call ptr @s2n_strerror(i32 noundef %9578, ptr noundef @.str.3)
  %9580 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9581 = load i32, ptr %9580, align 4, !tbaa !5
  %9582 = call ptr @s2n_strerror_debug(i32 noundef %9581, ptr noundef @.str.3)
  %9583 = call ptr @__errno_location() #11
  %9584 = load i32, ptr %9583, align 4, !tbaa !5
  %9585 = call ptr @strerror(i32 noundef %9584) #10
  %9586 = call ptr @__errno_location() #11
  %9587 = load i32, ptr %9586, align 4, !tbaa !5
  %9588 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9575, ptr noundef @.str, i32 noundef %9576, ptr noundef @.str.130, ptr noundef @.str.2, i32 noundef 685, ptr noundef %9579, ptr noundef %9582, ptr noundef %9585, i32 noundef %9587) #10
  br label %9606

9589:                                             ; preds = %9567, %9560
  %9590 = load i32, ptr %201, align 4, !tbaa !5
  %9591 = call ptr @__errno_location() #11
  store i32 %9590, ptr %9591, align 4, !tbaa !5
  %9592 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9593 = load i32, ptr @test_count, align 4, !tbaa !5
  %9594 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9595 = load i32, ptr %9594, align 4, !tbaa !5
  %9596 = call ptr @s2n_strerror(i32 noundef %9595, ptr noundef @.str.3)
  %9597 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9598 = load i32, ptr %9597, align 4, !tbaa !5
  %9599 = call ptr @s2n_strerror_debug(i32 noundef %9598, ptr noundef @.str.3)
  %9600 = call ptr @__errno_location() #11
  %9601 = load i32, ptr %9600, align 4, !tbaa !5
  %9602 = call ptr @strerror(i32 noundef %9601) #10
  %9603 = call ptr @__errno_location() #11
  %9604 = load i32, ptr %9603, align 4, !tbaa !5
  %9605 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9592, ptr noundef @.str.4, i32 noundef %9593, ptr noundef @.str.130, ptr noundef @.str.2, i32 noundef 685, ptr noundef %9596, ptr noundef %9599, ptr noundef %9602, i32 noundef %9604) #10
  br label %9606

9606:                                             ; preds = %9589, %9572
  call void @llvm.lifetime.end.p0(i64 4, ptr %201) #10
  br label %9607

9607:                                             ; preds = %9606
  br label %9608

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

9609:                                             ; No predecessors!
  br label %9610

9610:                                             ; preds = %9609
  br label %9611

9611:                                             ; preds = %9610, %9551
  br label %9612

9612:                                             ; preds = %9611
  br label %9613

9613:                                             ; preds = %9612
  call void @llvm.lifetime.start.p0(i64 8, ptr %202) #10
  %9614 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %9614, ptr %202, align 8, !tbaa !9
  br label %9615

9615:                                             ; preds = %9613
  %9616 = load i32, ptr @test_count, align 4, !tbaa !5
  %9617 = add nsw i32 %9616, 1
  store i32 %9617, ptr @test_count, align 4, !tbaa !5
  %9618 = load ptr, ptr %202, align 8, !tbaa !9
  %9619 = icmp eq ptr %9618, null
  br i1 %9619, label %9620, label %9673

9620:                                             ; preds = %9615
  br label %9621

9621:                                             ; preds = %9620
  br label %9622

9622:                                             ; preds = %9621
  call void @llvm.lifetime.start.p0(i64 4, ptr %203) #10
  %9623 = call ptr @__errno_location() #11
  %9624 = load i32, ptr %9623, align 4, !tbaa !5
  store i32 %9624, ptr %203, align 4, !tbaa !5
  %9625 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9626 = call i32 @s2n_print_stacktrace(ptr noundef %9625)
  %9627 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9628 = trunc i8 %9627 to i1
  br i1 %9628, label %9629, label %9651

9629:                                             ; preds = %9622
  %9630 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9631 = call i32 @fileno(ptr noundef %9630) #10
  %9632 = call i32 @isatty(i32 noundef %9631) #10
  %9633 = icmp ne i32 %9632, 0
  br i1 %9633, label %9634, label %9651

9634:                                             ; preds = %9629
  %9635 = load i32, ptr %203, align 4, !tbaa !5
  %9636 = call ptr @__errno_location() #11
  store i32 %9635, ptr %9636, align 4, !tbaa !5
  %9637 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9638 = load i32, ptr @test_count, align 4, !tbaa !5
  %9639 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9640 = load i32, ptr %9639, align 4, !tbaa !5
  %9641 = call ptr @s2n_strerror(i32 noundef %9640, ptr noundef @.str.3)
  %9642 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9643 = load i32, ptr %9642, align 4, !tbaa !5
  %9644 = call ptr @s2n_strerror_debug(i32 noundef %9643, ptr noundef @.str.3)
  %9645 = call ptr @__errno_location() #11
  %9646 = load i32, ptr %9645, align 4, !tbaa !5
  %9647 = call ptr @strerror(i32 noundef %9646) #10
  %9648 = call ptr @__errno_location() #11
  %9649 = load i32, ptr %9648, align 4, !tbaa !5
  %9650 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9637, ptr noundef @.str, i32 noundef %9638, ptr noundef @.str.85, ptr noundef @.str.2, i32 noundef 688, ptr noundef %9641, ptr noundef %9644, ptr noundef %9647, i32 noundef %9649) #10
  br label %9668

9651:                                             ; preds = %9629, %9622
  %9652 = load i32, ptr %203, align 4, !tbaa !5
  %9653 = call ptr @__errno_location() #11
  store i32 %9652, ptr %9653, align 4, !tbaa !5
  %9654 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9655 = load i32, ptr @test_count, align 4, !tbaa !5
  %9656 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9657 = load i32, ptr %9656, align 4, !tbaa !5
  %9658 = call ptr @s2n_strerror(i32 noundef %9657, ptr noundef @.str.3)
  %9659 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9660 = load i32, ptr %9659, align 4, !tbaa !5
  %9661 = call ptr @s2n_strerror_debug(i32 noundef %9660, ptr noundef @.str.3)
  %9662 = call ptr @__errno_location() #11
  %9663 = load i32, ptr %9662, align 4, !tbaa !5
  %9664 = call ptr @strerror(i32 noundef %9663) #10
  %9665 = call ptr @__errno_location() #11
  %9666 = load i32, ptr %9665, align 4, !tbaa !5
  %9667 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9654, ptr noundef @.str.4, i32 noundef %9655, ptr noundef @.str.85, ptr noundef @.str.2, i32 noundef 688, ptr noundef %9658, ptr noundef %9661, ptr noundef %9664, i32 noundef %9666) #10
  br label %9668

9668:                                             ; preds = %9651, %9634
  call void @llvm.lifetime.end.p0(i64 4, ptr %203) #10
  br label %9669

9669:                                             ; preds = %9668
  br label %9670

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

9671:                                             ; No predecessors!
  br label %9672

9672:                                             ; preds = %9671
  br label %9673

9673:                                             ; preds = %9672, %9615
  br label %9674

9674:                                             ; preds = %9673
  br label %9675

9675:                                             ; preds = %9674
  br label %9676

9676:                                             ; preds = %9675
  %9677 = load i32, ptr @test_count, align 4, !tbaa !5
  %9678 = add nsw i32 %9677, 1
  store i32 %9678, ptr @test_count, align 4, !tbaa !5
  %9679 = load ptr, ptr %202, align 8, !tbaa !9
  %9680 = load ptr, ptr %197, align 8, !tbaa !9
  %9681 = call i32 @s2n_connection_set_config(ptr noundef %9679, ptr noundef %9680)
  %9682 = icmp eq i32 %9681, -1
  br i1 %9682, label %9683, label %9736

9683:                                             ; preds = %9676
  br label %9684

9684:                                             ; preds = %9683
  br label %9685

9685:                                             ; preds = %9684
  call void @llvm.lifetime.start.p0(i64 4, ptr %204) #10
  %9686 = call ptr @__errno_location() #11
  %9687 = load i32, ptr %9686, align 4, !tbaa !5
  store i32 %9687, ptr %204, align 4, !tbaa !5
  %9688 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9689 = call i32 @s2n_print_stacktrace(ptr noundef %9688)
  %9690 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9691 = trunc i8 %9690 to i1
  br i1 %9691, label %9692, label %9714

9692:                                             ; preds = %9685
  %9693 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9694 = call i32 @fileno(ptr noundef %9693) #10
  %9695 = call i32 @isatty(i32 noundef %9694) #10
  %9696 = icmp ne i32 %9695, 0
  br i1 %9696, label %9697, label %9714

9697:                                             ; preds = %9692
  %9698 = load i32, ptr %204, align 4, !tbaa !5
  %9699 = call ptr @__errno_location() #11
  store i32 %9698, ptr %9699, align 4, !tbaa !5
  %9700 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9701 = load i32, ptr @test_count, align 4, !tbaa !5
  %9702 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9703 = load i32, ptr %9702, align 4, !tbaa !5
  %9704 = call ptr @s2n_strerror(i32 noundef %9703, ptr noundef @.str.3)
  %9705 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9706 = load i32, ptr %9705, align 4, !tbaa !5
  %9707 = call ptr @s2n_strerror_debug(i32 noundef %9706, ptr noundef @.str.3)
  %9708 = call ptr @__errno_location() #11
  %9709 = load i32, ptr %9708, align 4, !tbaa !5
  %9710 = call ptr @strerror(i32 noundef %9709) #10
  %9711 = call ptr @__errno_location() #11
  %9712 = load i32, ptr %9711, align 4, !tbaa !5
  %9713 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9700, ptr noundef @.str, i32 noundef %9701, ptr noundef @.str.131, ptr noundef @.str.2, i32 noundef 689, ptr noundef %9704, ptr noundef %9707, ptr noundef %9710, i32 noundef %9712) #10
  br label %9731

9714:                                             ; preds = %9692, %9685
  %9715 = load i32, ptr %204, align 4, !tbaa !5
  %9716 = call ptr @__errno_location() #11
  store i32 %9715, ptr %9716, align 4, !tbaa !5
  %9717 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9718 = load i32, ptr @test_count, align 4, !tbaa !5
  %9719 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9720 = load i32, ptr %9719, align 4, !tbaa !5
  %9721 = call ptr @s2n_strerror(i32 noundef %9720, ptr noundef @.str.3)
  %9722 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9723 = load i32, ptr %9722, align 4, !tbaa !5
  %9724 = call ptr @s2n_strerror_debug(i32 noundef %9723, ptr noundef @.str.3)
  %9725 = call ptr @__errno_location() #11
  %9726 = load i32, ptr %9725, align 4, !tbaa !5
  %9727 = call ptr @strerror(i32 noundef %9726) #10
  %9728 = call ptr @__errno_location() #11
  %9729 = load i32, ptr %9728, align 4, !tbaa !5
  %9730 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9717, ptr noundef @.str.4, i32 noundef %9718, ptr noundef @.str.131, ptr noundef @.str.2, i32 noundef 689, ptr noundef %9721, ptr noundef %9724, ptr noundef %9727, i32 noundef %9729) #10
  br label %9731

9731:                                             ; preds = %9714, %9697
  call void @llvm.lifetime.end.p0(i64 4, ptr %204) #10
  br label %9732

9732:                                             ; preds = %9731
  br label %9733

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

9734:                                             ; No predecessors!
  br label %9735

9735:                                             ; preds = %9734
  br label %9736

9736:                                             ; preds = %9735, %9676
  br label %9737

9737:                                             ; preds = %9736
  br label %9738

9738:                                             ; preds = %9737
  call void @llvm.lifetime.start.p0(i64 8, ptr %205) #10
  %9739 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %9739, ptr %205, align 8, !tbaa !9
  br label %9740

9740:                                             ; preds = %9738
  %9741 = load i32, ptr @test_count, align 4, !tbaa !5
  %9742 = add nsw i32 %9741, 1
  store i32 %9742, ptr @test_count, align 4, !tbaa !5
  %9743 = load ptr, ptr %205, align 8, !tbaa !9
  %9744 = icmp eq ptr %9743, null
  br i1 %9744, label %9745, label %9798

9745:                                             ; preds = %9740
  br label %9746

9746:                                             ; preds = %9745
  br label %9747

9747:                                             ; preds = %9746
  call void @llvm.lifetime.start.p0(i64 4, ptr %206) #10
  %9748 = call ptr @__errno_location() #11
  %9749 = load i32, ptr %9748, align 4, !tbaa !5
  store i32 %9749, ptr %206, align 4, !tbaa !5
  %9750 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9751 = call i32 @s2n_print_stacktrace(ptr noundef %9750)
  %9752 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9753 = trunc i8 %9752 to i1
  br i1 %9753, label %9754, label %9776

9754:                                             ; preds = %9747
  %9755 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9756 = call i32 @fileno(ptr noundef %9755) #10
  %9757 = call i32 @isatty(i32 noundef %9756) #10
  %9758 = icmp ne i32 %9757, 0
  br i1 %9758, label %9759, label %9776

9759:                                             ; preds = %9754
  %9760 = load i32, ptr %206, align 4, !tbaa !5
  %9761 = call ptr @__errno_location() #11
  store i32 %9760, ptr %9761, align 4, !tbaa !5
  %9762 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9763 = load i32, ptr @test_count, align 4, !tbaa !5
  %9764 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9765 = load i32, ptr %9764, align 4, !tbaa !5
  %9766 = call ptr @s2n_strerror(i32 noundef %9765, ptr noundef @.str.3)
  %9767 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9768 = load i32, ptr %9767, align 4, !tbaa !5
  %9769 = call ptr @s2n_strerror_debug(i32 noundef %9768, ptr noundef @.str.3)
  %9770 = call ptr @__errno_location() #11
  %9771 = load i32, ptr %9770, align 4, !tbaa !5
  %9772 = call ptr @strerror(i32 noundef %9771) #10
  %9773 = call ptr @__errno_location() #11
  %9774 = load i32, ptr %9773, align 4, !tbaa !5
  %9775 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9762, ptr noundef @.str, i32 noundef %9763, ptr noundef @.str.87, ptr noundef @.str.2, i32 noundef 692, ptr noundef %9766, ptr noundef %9769, ptr noundef %9772, i32 noundef %9774) #10
  br label %9793

9776:                                             ; preds = %9754, %9747
  %9777 = load i32, ptr %206, align 4, !tbaa !5
  %9778 = call ptr @__errno_location() #11
  store i32 %9777, ptr %9778, align 4, !tbaa !5
  %9779 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9780 = load i32, ptr @test_count, align 4, !tbaa !5
  %9781 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9782 = load i32, ptr %9781, align 4, !tbaa !5
  %9783 = call ptr @s2n_strerror(i32 noundef %9782, ptr noundef @.str.3)
  %9784 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9785 = load i32, ptr %9784, align 4, !tbaa !5
  %9786 = call ptr @s2n_strerror_debug(i32 noundef %9785, ptr noundef @.str.3)
  %9787 = call ptr @__errno_location() #11
  %9788 = load i32, ptr %9787, align 4, !tbaa !5
  %9789 = call ptr @strerror(i32 noundef %9788) #10
  %9790 = call ptr @__errno_location() #11
  %9791 = load i32, ptr %9790, align 4, !tbaa !5
  %9792 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9779, ptr noundef @.str.4, i32 noundef %9780, ptr noundef @.str.87, ptr noundef @.str.2, i32 noundef 692, ptr noundef %9783, ptr noundef %9786, ptr noundef %9789, i32 noundef %9791) #10
  br label %9793

9793:                                             ; preds = %9776, %9759
  call void @llvm.lifetime.end.p0(i64 4, ptr %206) #10
  br label %9794

9794:                                             ; preds = %9793
  br label %9795

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

9796:                                             ; No predecessors!
  br label %9797

9797:                                             ; preds = %9796
  br label %9798

9798:                                             ; preds = %9797, %9740
  br label %9799

9799:                                             ; preds = %9798
  br label %9800

9800:                                             ; preds = %9799
  br label %9801

9801:                                             ; preds = %9800
  %9802 = load i32, ptr @test_count, align 4, !tbaa !5
  %9803 = add nsw i32 %9802, 1
  store i32 %9803, ptr @test_count, align 4, !tbaa !5
  %9804 = load ptr, ptr %205, align 8, !tbaa !9
  %9805 = call i32 @s2n_connection_set_blinding(ptr noundef %9804, i32 noundef 1)
  %9806 = icmp eq i32 %9805, -1
  br i1 %9806, label %9807, label %9860

9807:                                             ; preds = %9801
  br label %9808

9808:                                             ; preds = %9807
  br label %9809

9809:                                             ; preds = %9808
  call void @llvm.lifetime.start.p0(i64 4, ptr %207) #10
  %9810 = call ptr @__errno_location() #11
  %9811 = load i32, ptr %9810, align 4, !tbaa !5
  store i32 %9811, ptr %207, align 4, !tbaa !5
  %9812 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9813 = call i32 @s2n_print_stacktrace(ptr noundef %9812)
  %9814 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9815 = trunc i8 %9814 to i1
  br i1 %9815, label %9816, label %9838

9816:                                             ; preds = %9809
  %9817 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9818 = call i32 @fileno(ptr noundef %9817) #10
  %9819 = call i32 @isatty(i32 noundef %9818) #10
  %9820 = icmp ne i32 %9819, 0
  br i1 %9820, label %9821, label %9838

9821:                                             ; preds = %9816
  %9822 = load i32, ptr %207, align 4, !tbaa !5
  %9823 = call ptr @__errno_location() #11
  store i32 %9822, ptr %9823, align 4, !tbaa !5
  %9824 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9825 = load i32, ptr @test_count, align 4, !tbaa !5
  %9826 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9827 = load i32, ptr %9826, align 4, !tbaa !5
  %9828 = call ptr @s2n_strerror(i32 noundef %9827, ptr noundef @.str.3)
  %9829 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9830 = load i32, ptr %9829, align 4, !tbaa !5
  %9831 = call ptr @s2n_strerror_debug(i32 noundef %9830, ptr noundef @.str.3)
  %9832 = call ptr @__errno_location() #11
  %9833 = load i32, ptr %9832, align 4, !tbaa !5
  %9834 = call ptr @strerror(i32 noundef %9833) #10
  %9835 = call ptr @__errno_location() #11
  %9836 = load i32, ptr %9835, align 4, !tbaa !5
  %9837 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9824, ptr noundef @.str, i32 noundef %9825, ptr noundef @.str.132, ptr noundef @.str.2, i32 noundef 693, ptr noundef %9828, ptr noundef %9831, ptr noundef %9834, i32 noundef %9836) #10
  br label %9855

9838:                                             ; preds = %9816, %9809
  %9839 = load i32, ptr %207, align 4, !tbaa !5
  %9840 = call ptr @__errno_location() #11
  store i32 %9839, ptr %9840, align 4, !tbaa !5
  %9841 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9842 = load i32, ptr @test_count, align 4, !tbaa !5
  %9843 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9844 = load i32, ptr %9843, align 4, !tbaa !5
  %9845 = call ptr @s2n_strerror(i32 noundef %9844, ptr noundef @.str.3)
  %9846 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9847 = load i32, ptr %9846, align 4, !tbaa !5
  %9848 = call ptr @s2n_strerror_debug(i32 noundef %9847, ptr noundef @.str.3)
  %9849 = call ptr @__errno_location() #11
  %9850 = load i32, ptr %9849, align 4, !tbaa !5
  %9851 = call ptr @strerror(i32 noundef %9850) #10
  %9852 = call ptr @__errno_location() #11
  %9853 = load i32, ptr %9852, align 4, !tbaa !5
  %9854 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9841, ptr noundef @.str.4, i32 noundef %9842, ptr noundef @.str.132, ptr noundef @.str.2, i32 noundef 693, ptr noundef %9845, ptr noundef %9848, ptr noundef %9851, i32 noundef %9853) #10
  br label %9855

9855:                                             ; preds = %9838, %9821
  call void @llvm.lifetime.end.p0(i64 4, ptr %207) #10
  br label %9856

9856:                                             ; preds = %9855
  br label %9857

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

9858:                                             ; No predecessors!
  br label %9859

9859:                                             ; preds = %9858
  br label %9860

9860:                                             ; preds = %9859, %9801
  br label %9861

9861:                                             ; preds = %9860
  br label %9862

9862:                                             ; preds = %9861
  br label %9863

9863:                                             ; preds = %9862
  %9864 = load i32, ptr @test_count, align 4, !tbaa !5
  %9865 = add nsw i32 %9864, 1
  store i32 %9865, ptr @test_count, align 4, !tbaa !5
  %9866 = load ptr, ptr %205, align 8, !tbaa !9
  %9867 = load ptr, ptr %197, align 8, !tbaa !9
  %9868 = call i32 @s2n_connection_set_config(ptr noundef %9866, ptr noundef %9867)
  %9869 = icmp eq i32 %9868, -1
  br i1 %9869, label %9870, label %9923

9870:                                             ; preds = %9863
  br label %9871

9871:                                             ; preds = %9870
  br label %9872

9872:                                             ; preds = %9871
  call void @llvm.lifetime.start.p0(i64 4, ptr %208) #10
  %9873 = call ptr @__errno_location() #11
  %9874 = load i32, ptr %9873, align 4, !tbaa !5
  store i32 %9874, ptr %208, align 4, !tbaa !5
  %9875 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9876 = call i32 @s2n_print_stacktrace(ptr noundef %9875)
  %9877 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9878 = trunc i8 %9877 to i1
  br i1 %9878, label %9879, label %9901

9879:                                             ; preds = %9872
  %9880 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9881 = call i32 @fileno(ptr noundef %9880) #10
  %9882 = call i32 @isatty(i32 noundef %9881) #10
  %9883 = icmp ne i32 %9882, 0
  br i1 %9883, label %9884, label %9901

9884:                                             ; preds = %9879
  %9885 = load i32, ptr %208, align 4, !tbaa !5
  %9886 = call ptr @__errno_location() #11
  store i32 %9885, ptr %9886, align 4, !tbaa !5
  %9887 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9888 = load i32, ptr @test_count, align 4, !tbaa !5
  %9889 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9890 = load i32, ptr %9889, align 4, !tbaa !5
  %9891 = call ptr @s2n_strerror(i32 noundef %9890, ptr noundef @.str.3)
  %9892 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9893 = load i32, ptr %9892, align 4, !tbaa !5
  %9894 = call ptr @s2n_strerror_debug(i32 noundef %9893, ptr noundef @.str.3)
  %9895 = call ptr @__errno_location() #11
  %9896 = load i32, ptr %9895, align 4, !tbaa !5
  %9897 = call ptr @strerror(i32 noundef %9896) #10
  %9898 = call ptr @__errno_location() #11
  %9899 = load i32, ptr %9898, align 4, !tbaa !5
  %9900 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9887, ptr noundef @.str, i32 noundef %9888, ptr noundef @.str.133, ptr noundef @.str.2, i32 noundef 694, ptr noundef %9891, ptr noundef %9894, ptr noundef %9897, i32 noundef %9899) #10
  br label %9918

9901:                                             ; preds = %9879, %9872
  %9902 = load i32, ptr %208, align 4, !tbaa !5
  %9903 = call ptr @__errno_location() #11
  store i32 %9902, ptr %9903, align 4, !tbaa !5
  %9904 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9905 = load i32, ptr @test_count, align 4, !tbaa !5
  %9906 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9907 = load i32, ptr %9906, align 4, !tbaa !5
  %9908 = call ptr @s2n_strerror(i32 noundef %9907, ptr noundef @.str.3)
  %9909 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9910 = load i32, ptr %9909, align 4, !tbaa !5
  %9911 = call ptr @s2n_strerror_debug(i32 noundef %9910, ptr noundef @.str.3)
  %9912 = call ptr @__errno_location() #11
  %9913 = load i32, ptr %9912, align 4, !tbaa !5
  %9914 = call ptr @strerror(i32 noundef %9913) #10
  %9915 = call ptr @__errno_location() #11
  %9916 = load i32, ptr %9915, align 4, !tbaa !5
  %9917 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9904, ptr noundef @.str.4, i32 noundef %9905, ptr noundef @.str.133, ptr noundef @.str.2, i32 noundef 694, ptr noundef %9908, ptr noundef %9911, ptr noundef %9914, i32 noundef %9916) #10
  br label %9918

9918:                                             ; preds = %9901, %9884
  call void @llvm.lifetime.end.p0(i64 4, ptr %208) #10
  br label %9919

9919:                                             ; preds = %9918
  br label %9920

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

9921:                                             ; No predecessors!
  br label %9922

9922:                                             ; preds = %9921
  br label %9923

9923:                                             ; preds = %9922, %9863
  br label %9924

9924:                                             ; preds = %9923
  br label %9925

9925:                                             ; preds = %9924
  call void @llvm.lifetime.start.p0(i64 8, ptr %209) #10
  call void @llvm.memset.p0.i64(ptr align 4 %209, i8 0, i64 8, i1 false)
  br label %9926

9926:                                             ; preds = %9925
  %9927 = load i32, ptr @test_count, align 4, !tbaa !5
  %9928 = add nsw i32 %9927, 1
  store i32 %9928, ptr @test_count, align 4, !tbaa !5
  %9929 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef %209)
  %9930 = icmp eq i32 %9929, -1
  br i1 %9930, label %9931, label %9984

9931:                                             ; preds = %9926
  br label %9932

9932:                                             ; preds = %9931
  br label %9933

9933:                                             ; preds = %9932
  call void @llvm.lifetime.start.p0(i64 4, ptr %210) #10
  %9934 = call ptr @__errno_location() #11
  %9935 = load i32, ptr %9934, align 4, !tbaa !5
  store i32 %9935, ptr %210, align 4, !tbaa !5
  %9936 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9937 = call i32 @s2n_print_stacktrace(ptr noundef %9936)
  %9938 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9939 = trunc i8 %9938 to i1
  br i1 %9939, label %9940, label %9962

9940:                                             ; preds = %9933
  %9941 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9942 = call i32 @fileno(ptr noundef %9941) #10
  %9943 = call i32 @isatty(i32 noundef %9942) #10
  %9944 = icmp ne i32 %9943, 0
  br i1 %9944, label %9945, label %9962

9945:                                             ; preds = %9940
  %9946 = load i32, ptr %210, align 4, !tbaa !5
  %9947 = call ptr @__errno_location() #11
  store i32 %9946, ptr %9947, align 4, !tbaa !5
  %9948 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9949 = load i32, ptr @test_count, align 4, !tbaa !5
  %9950 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9951 = load i32, ptr %9950, align 4, !tbaa !5
  %9952 = call ptr @s2n_strerror(i32 noundef %9951, ptr noundef @.str.3)
  %9953 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9954 = load i32, ptr %9953, align 4, !tbaa !5
  %9955 = call ptr @s2n_strerror_debug(i32 noundef %9954, ptr noundef @.str.3)
  %9956 = call ptr @__errno_location() #11
  %9957 = load i32, ptr %9956, align 4, !tbaa !5
  %9958 = call ptr @strerror(i32 noundef %9957) #10
  %9959 = call ptr @__errno_location() #11
  %9960 = load i32, ptr %9959, align 4, !tbaa !5
  %9961 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9948, ptr noundef @.str, i32 noundef %9949, ptr noundef @.str.89, ptr noundef @.str.2, i32 noundef 697, ptr noundef %9952, ptr noundef %9955, ptr noundef %9958, i32 noundef %9960) #10
  br label %9979

9962:                                             ; preds = %9940, %9933
  %9963 = load i32, ptr %210, align 4, !tbaa !5
  %9964 = call ptr @__errno_location() #11
  store i32 %9963, ptr %9964, align 4, !tbaa !5
  %9965 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9966 = load i32, ptr @test_count, align 4, !tbaa !5
  %9967 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9968 = load i32, ptr %9967, align 4, !tbaa !5
  %9969 = call ptr @s2n_strerror(i32 noundef %9968, ptr noundef @.str.3)
  %9970 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9971 = load i32, ptr %9970, align 4, !tbaa !5
  %9972 = call ptr @s2n_strerror_debug(i32 noundef %9971, ptr noundef @.str.3)
  %9973 = call ptr @__errno_location() #11
  %9974 = load i32, ptr %9973, align 4, !tbaa !5
  %9975 = call ptr @strerror(i32 noundef %9974) #10
  %9976 = call ptr @__errno_location() #11
  %9977 = load i32, ptr %9976, align 4, !tbaa !5
  %9978 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9965, ptr noundef @.str.4, i32 noundef %9966, ptr noundef @.str.89, ptr noundef @.str.2, i32 noundef 697, ptr noundef %9969, ptr noundef %9972, ptr noundef %9975, i32 noundef %9977) #10
  br label %9979

9979:                                             ; preds = %9962, %9945
  call void @llvm.lifetime.end.p0(i64 4, ptr %210) #10
  br label %9980

9980:                                             ; preds = %9979
  br label %9981

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

9982:                                             ; No predecessors!
  br label %9983

9983:                                             ; preds = %9982
  br label %9984

9984:                                             ; preds = %9983, %9926
  br label %9985

9985:                                             ; preds = %9984
  br label %9986

9986:                                             ; preds = %9985
  br label %9987

9987:                                             ; preds = %9986
  %9988 = load i32, ptr @test_count, align 4, !tbaa !5
  %9989 = add nsw i32 %9988, 1
  store i32 %9989, ptr @test_count, align 4, !tbaa !5
  %9990 = load ptr, ptr %202, align 8, !tbaa !9
  %9991 = call i32 @s2n_connection_set_io_pair(ptr noundef %9990, ptr noundef %209)
  %9992 = icmp eq i32 %9991, -1
  br i1 %9992, label %9993, label %10046

9993:                                             ; preds = %9987
  br label %9994

9994:                                             ; preds = %9993
  br label %9995

9995:                                             ; preds = %9994
  call void @llvm.lifetime.start.p0(i64 4, ptr %211) #10
  %9996 = call ptr @__errno_location() #11
  %9997 = load i32, ptr %9996, align 4, !tbaa !5
  store i32 %9997, ptr %211, align 4, !tbaa !5
  %9998 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9999 = call i32 @s2n_print_stacktrace(ptr noundef %9998)
  %10000 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10001 = trunc i8 %10000 to i1
  br i1 %10001, label %10002, label %10024

10002:                                            ; preds = %9995
  %10003 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10004 = call i32 @fileno(ptr noundef %10003) #10
  %10005 = call i32 @isatty(i32 noundef %10004) #10
  %10006 = icmp ne i32 %10005, 0
  br i1 %10006, label %10007, label %10024

10007:                                            ; preds = %10002
  %10008 = load i32, ptr %211, align 4, !tbaa !5
  %10009 = call ptr @__errno_location() #11
  store i32 %10008, ptr %10009, align 4, !tbaa !5
  %10010 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10011 = load i32, ptr @test_count, align 4, !tbaa !5
  %10012 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10013 = load i32, ptr %10012, align 4, !tbaa !5
  %10014 = call ptr @s2n_strerror(i32 noundef %10013, ptr noundef @.str.3)
  %10015 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10016 = load i32, ptr %10015, align 4, !tbaa !5
  %10017 = call ptr @s2n_strerror_debug(i32 noundef %10016, ptr noundef @.str.3)
  %10018 = call ptr @__errno_location() #11
  %10019 = load i32, ptr %10018, align 4, !tbaa !5
  %10020 = call ptr @strerror(i32 noundef %10019) #10
  %10021 = call ptr @__errno_location() #11
  %10022 = load i32, ptr %10021, align 4, !tbaa !5
  %10023 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10010, ptr noundef @.str, i32 noundef %10011, ptr noundef @.str.90, ptr noundef @.str.2, i32 noundef 698, ptr noundef %10014, ptr noundef %10017, ptr noundef %10020, i32 noundef %10022) #10
  br label %10041

10024:                                            ; preds = %10002, %9995
  %10025 = load i32, ptr %211, align 4, !tbaa !5
  %10026 = call ptr @__errno_location() #11
  store i32 %10025, ptr %10026, align 4, !tbaa !5
  %10027 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10028 = load i32, ptr @test_count, align 4, !tbaa !5
  %10029 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10030 = load i32, ptr %10029, align 4, !tbaa !5
  %10031 = call ptr @s2n_strerror(i32 noundef %10030, ptr noundef @.str.3)
  %10032 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10033 = load i32, ptr %10032, align 4, !tbaa !5
  %10034 = call ptr @s2n_strerror_debug(i32 noundef %10033, ptr noundef @.str.3)
  %10035 = call ptr @__errno_location() #11
  %10036 = load i32, ptr %10035, align 4, !tbaa !5
  %10037 = call ptr @strerror(i32 noundef %10036) #10
  %10038 = call ptr @__errno_location() #11
  %10039 = load i32, ptr %10038, align 4, !tbaa !5
  %10040 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10027, ptr noundef @.str.4, i32 noundef %10028, ptr noundef @.str.90, ptr noundef @.str.2, i32 noundef 698, ptr noundef %10031, ptr noundef %10034, ptr noundef %10037, i32 noundef %10039) #10
  br label %10041

10041:                                            ; preds = %10024, %10007
  call void @llvm.lifetime.end.p0(i64 4, ptr %211) #10
  br label %10042

10042:                                            ; preds = %10041
  br label %10043

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

10044:                                            ; No predecessors!
  br label %10045

10045:                                            ; preds = %10044
  br label %10046

10046:                                            ; preds = %10045, %9987
  br label %10047

10047:                                            ; preds = %10046
  br label %10048

10048:                                            ; preds = %10047
  br label %10049

10049:                                            ; preds = %10048
  %10050 = load i32, ptr @test_count, align 4, !tbaa !5
  %10051 = add nsw i32 %10050, 1
  store i32 %10051, ptr @test_count, align 4, !tbaa !5
  %10052 = load ptr, ptr %205, align 8, !tbaa !9
  %10053 = call i32 @s2n_connection_set_io_pair(ptr noundef %10052, ptr noundef %209)
  %10054 = icmp eq i32 %10053, -1
  br i1 %10054, label %10055, label %10108

10055:                                            ; preds = %10049
  br label %10056

10056:                                            ; preds = %10055
  br label %10057

10057:                                            ; preds = %10056
  call void @llvm.lifetime.start.p0(i64 4, ptr %212) #10
  %10058 = call ptr @__errno_location() #11
  %10059 = load i32, ptr %10058, align 4, !tbaa !5
  store i32 %10059, ptr %212, align 4, !tbaa !5
  %10060 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10061 = call i32 @s2n_print_stacktrace(ptr noundef %10060)
  %10062 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10063 = trunc i8 %10062 to i1
  br i1 %10063, label %10064, label %10086

10064:                                            ; preds = %10057
  %10065 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10066 = call i32 @fileno(ptr noundef %10065) #10
  %10067 = call i32 @isatty(i32 noundef %10066) #10
  %10068 = icmp ne i32 %10067, 0
  br i1 %10068, label %10069, label %10086

10069:                                            ; preds = %10064
  %10070 = load i32, ptr %212, align 4, !tbaa !5
  %10071 = call ptr @__errno_location() #11
  store i32 %10070, ptr %10071, align 4, !tbaa !5
  %10072 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10073 = load i32, ptr @test_count, align 4, !tbaa !5
  %10074 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10075 = load i32, ptr %10074, align 4, !tbaa !5
  %10076 = call ptr @s2n_strerror(i32 noundef %10075, ptr noundef @.str.3)
  %10077 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10078 = load i32, ptr %10077, align 4, !tbaa !5
  %10079 = call ptr @s2n_strerror_debug(i32 noundef %10078, ptr noundef @.str.3)
  %10080 = call ptr @__errno_location() #11
  %10081 = load i32, ptr %10080, align 4, !tbaa !5
  %10082 = call ptr @strerror(i32 noundef %10081) #10
  %10083 = call ptr @__errno_location() #11
  %10084 = load i32, ptr %10083, align 4, !tbaa !5
  %10085 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10072, ptr noundef @.str, i32 noundef %10073, ptr noundef @.str.91, ptr noundef @.str.2, i32 noundef 699, ptr noundef %10076, ptr noundef %10079, ptr noundef %10082, i32 noundef %10084) #10
  br label %10103

10086:                                            ; preds = %10064, %10057
  %10087 = load i32, ptr %212, align 4, !tbaa !5
  %10088 = call ptr @__errno_location() #11
  store i32 %10087, ptr %10088, align 4, !tbaa !5
  %10089 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10090 = load i32, ptr @test_count, align 4, !tbaa !5
  %10091 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10092 = load i32, ptr %10091, align 4, !tbaa !5
  %10093 = call ptr @s2n_strerror(i32 noundef %10092, ptr noundef @.str.3)
  %10094 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10095 = load i32, ptr %10094, align 4, !tbaa !5
  %10096 = call ptr @s2n_strerror_debug(i32 noundef %10095, ptr noundef @.str.3)
  %10097 = call ptr @__errno_location() #11
  %10098 = load i32, ptr %10097, align 4, !tbaa !5
  %10099 = call ptr @strerror(i32 noundef %10098) #10
  %10100 = call ptr @__errno_location() #11
  %10101 = load i32, ptr %10100, align 4, !tbaa !5
  %10102 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10089, ptr noundef @.str.4, i32 noundef %10090, ptr noundef @.str.91, ptr noundef @.str.2, i32 noundef 699, ptr noundef %10093, ptr noundef %10096, ptr noundef %10099, i32 noundef %10101) #10
  br label %10103

10103:                                            ; preds = %10086, %10069
  call void @llvm.lifetime.end.p0(i64 4, ptr %212) #10
  br label %10104

10104:                                            ; preds = %10103
  br label %10105

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

10106:                                            ; No predecessors!
  br label %10107

10107:                                            ; preds = %10106
  br label %10108

10108:                                            ; preds = %10107, %10049
  br label %10109

10109:                                            ; preds = %10108
  br label %10110

10110:                                            ; preds = %10109
  br label %10111

10111:                                            ; preds = %10110
  %10112 = load i32, ptr @test_count, align 4, !tbaa !5
  %10113 = add nsw i32 %10112, 1
  store i32 %10113, ptr @test_count, align 4, !tbaa !5
  %10114 = load ptr, ptr %197, align 8, !tbaa !9
  %10115 = call i32 @s2n_config_set_verify_after_sign(ptr noundef %10114, i32 noundef 1)
  %10116 = icmp eq i32 %10115, -1
  br i1 %10116, label %10117, label %10170

10117:                                            ; preds = %10111
  br label %10118

10118:                                            ; preds = %10117
  br label %10119

10119:                                            ; preds = %10118
  call void @llvm.lifetime.start.p0(i64 4, ptr %213) #10
  %10120 = call ptr @__errno_location() #11
  %10121 = load i32, ptr %10120, align 4, !tbaa !5
  store i32 %10121, ptr %213, align 4, !tbaa !5
  %10122 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10123 = call i32 @s2n_print_stacktrace(ptr noundef %10122)
  %10124 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10125 = trunc i8 %10124 to i1
  br i1 %10125, label %10126, label %10148

10126:                                            ; preds = %10119
  %10127 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10128 = call i32 @fileno(ptr noundef %10127) #10
  %10129 = call i32 @isatty(i32 noundef %10128) #10
  %10130 = icmp ne i32 %10129, 0
  br i1 %10130, label %10131, label %10148

10131:                                            ; preds = %10126
  %10132 = load i32, ptr %213, align 4, !tbaa !5
  %10133 = call ptr @__errno_location() #11
  store i32 %10132, ptr %10133, align 4, !tbaa !5
  %10134 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10135 = load i32, ptr @test_count, align 4, !tbaa !5
  %10136 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10137 = load i32, ptr %10136, align 4, !tbaa !5
  %10138 = call ptr @s2n_strerror(i32 noundef %10137, ptr noundef @.str.3)
  %10139 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10140 = load i32, ptr %10139, align 4, !tbaa !5
  %10141 = call ptr @s2n_strerror_debug(i32 noundef %10140, ptr noundef @.str.3)
  %10142 = call ptr @__errno_location() #11
  %10143 = load i32, ptr %10142, align 4, !tbaa !5
  %10144 = call ptr @strerror(i32 noundef %10143) #10
  %10145 = call ptr @__errno_location() #11
  %10146 = load i32, ptr %10145, align 4, !tbaa !5
  %10147 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10134, ptr noundef @.str, i32 noundef %10135, ptr noundef @.str.134, ptr noundef @.str.2, i32 noundef 704, ptr noundef %10138, ptr noundef %10141, ptr noundef %10144, i32 noundef %10146) #10
  br label %10165

10148:                                            ; preds = %10126, %10119
  %10149 = load i32, ptr %213, align 4, !tbaa !5
  %10150 = call ptr @__errno_location() #11
  store i32 %10149, ptr %10150, align 4, !tbaa !5
  %10151 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10152 = load i32, ptr @test_count, align 4, !tbaa !5
  %10153 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10154 = load i32, ptr %10153, align 4, !tbaa !5
  %10155 = call ptr @s2n_strerror(i32 noundef %10154, ptr noundef @.str.3)
  %10156 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10157 = load i32, ptr %10156, align 4, !tbaa !5
  %10158 = call ptr @s2n_strerror_debug(i32 noundef %10157, ptr noundef @.str.3)
  %10159 = call ptr @__errno_location() #11
  %10160 = load i32, ptr %10159, align 4, !tbaa !5
  %10161 = call ptr @strerror(i32 noundef %10160) #10
  %10162 = call ptr @__errno_location() #11
  %10163 = load i32, ptr %10162, align 4, !tbaa !5
  %10164 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10151, ptr noundef @.str.4, i32 noundef %10152, ptr noundef @.str.134, ptr noundef @.str.2, i32 noundef 704, ptr noundef %10155, ptr noundef %10158, ptr noundef %10161, i32 noundef %10163) #10
  br label %10165

10165:                                            ; preds = %10148, %10131
  call void @llvm.lifetime.end.p0(i64 4, ptr %213) #10
  br label %10166

10166:                                            ; preds = %10165
  br label %10167

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

10168:                                            ; No predecessors!
  br label %10169

10169:                                            ; preds = %10168
  br label %10170

10170:                                            ; preds = %10169, %10111
  br label %10171

10171:                                            ; preds = %10170
  br label %10172

10172:                                            ; preds = %10171
  br label %10173

10173:                                            ; preds = %10172
  %10174 = load i32, ptr @test_count, align 4, !tbaa !5
  %10175 = add nsw i32 %10174, 1
  store i32 %10175, ptr @test_count, align 4, !tbaa !5
  %10176 = load ptr, ptr %205, align 8, !tbaa !9
  %10177 = load ptr, ptr %202, align 8, !tbaa !9
  %10178 = call i32 @s2n_negotiate_test_server_and_client_until_message(ptr noundef %10176, ptr noundef %10177, i32 noundef 2)
  %10179 = getelementptr inbounds %struct.s2n_result, ptr %214, i32 0, i32 0
  store i32 %10178, ptr %10179, align 4
  %10180 = getelementptr inbounds %struct.s2n_result, ptr %214, i32 0, i32 0
  %10181 = load i32, ptr %10180, align 4
  %10182 = call zeroext i1 @s2n_result_is_ok(i32 %10181)
  br i1 %10182, label %10236, label %10183

10183:                                            ; preds = %10173
  br label %10184

10184:                                            ; preds = %10183
  br label %10185

10185:                                            ; preds = %10184
  call void @llvm.lifetime.start.p0(i64 4, ptr %215) #10
  %10186 = call ptr @__errno_location() #11
  %10187 = load i32, ptr %10186, align 4, !tbaa !5
  store i32 %10187, ptr %215, align 4, !tbaa !5
  %10188 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10189 = call i32 @s2n_print_stacktrace(ptr noundef %10188)
  %10190 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10191 = trunc i8 %10190 to i1
  br i1 %10191, label %10192, label %10214

10192:                                            ; preds = %10185
  %10193 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10194 = call i32 @fileno(ptr noundef %10193) #10
  %10195 = call i32 @isatty(i32 noundef %10194) #10
  %10196 = icmp ne i32 %10195, 0
  br i1 %10196, label %10197, label %10214

10197:                                            ; preds = %10192
  %10198 = load i32, ptr %215, align 4, !tbaa !5
  %10199 = call ptr @__errno_location() #11
  store i32 %10198, ptr %10199, align 4, !tbaa !5
  %10200 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10201 = load i32, ptr @test_count, align 4, !tbaa !5
  %10202 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10203 = load i32, ptr %10202, align 4, !tbaa !5
  %10204 = call ptr @s2n_strerror(i32 noundef %10203, ptr noundef @.str.3)
  %10205 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10206 = load i32, ptr %10205, align 4, !tbaa !5
  %10207 = call ptr @s2n_strerror_debug(i32 noundef %10206, ptr noundef @.str.3)
  %10208 = call ptr @__errno_location() #11
  %10209 = load i32, ptr %10208, align 4, !tbaa !5
  %10210 = call ptr @strerror(i32 noundef %10209) #10
  %10211 = call ptr @__errno_location() #11
  %10212 = load i32, ptr %10211, align 4, !tbaa !5
  %10213 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10200, ptr noundef @.str, i32 noundef %10201, ptr noundef @.str.135, ptr noundef @.str.2, i32 noundef 705, ptr noundef %10204, ptr noundef %10207, ptr noundef %10210, i32 noundef %10212) #10
  br label %10231

10214:                                            ; preds = %10192, %10185
  %10215 = load i32, ptr %215, align 4, !tbaa !5
  %10216 = call ptr @__errno_location() #11
  store i32 %10215, ptr %10216, align 4, !tbaa !5
  %10217 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10218 = load i32, ptr @test_count, align 4, !tbaa !5
  %10219 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10220 = load i32, ptr %10219, align 4, !tbaa !5
  %10221 = call ptr @s2n_strerror(i32 noundef %10220, ptr noundef @.str.3)
  %10222 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10223 = load i32, ptr %10222, align 4, !tbaa !5
  %10224 = call ptr @s2n_strerror_debug(i32 noundef %10223, ptr noundef @.str.3)
  %10225 = call ptr @__errno_location() #11
  %10226 = load i32, ptr %10225, align 4, !tbaa !5
  %10227 = call ptr @strerror(i32 noundef %10226) #10
  %10228 = call ptr @__errno_location() #11
  %10229 = load i32, ptr %10228, align 4, !tbaa !5
  %10230 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10217, ptr noundef @.str.4, i32 noundef %10218, ptr noundef @.str.135, ptr noundef @.str.2, i32 noundef 705, ptr noundef %10221, ptr noundef %10224, ptr noundef %10227, i32 noundef %10229) #10
  br label %10231

10231:                                            ; preds = %10214, %10197
  call void @llvm.lifetime.end.p0(i64 4, ptr %215) #10
  br label %10232

10232:                                            ; preds = %10231
  br label %10233

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

10234:                                            ; No predecessors!
  br label %10235

10235:                                            ; preds = %10234
  br label %10236

10236:                                            ; preds = %10235, %10173
  br label %10237

10237:                                            ; preds = %10236
  br label %10238

10238:                                            ; preds = %10237
  br label %10239

10239:                                            ; preds = %10238
  %10240 = load i32, ptr @test_count, align 4, !tbaa !5
  %10241 = add nsw i32 %10240, 1
  store i32 %10241, ptr @test_count, align 4, !tbaa !5
  %10242 = load ptr, ptr %205, align 8, !tbaa !9
  %10243 = getelementptr inbounds %struct.s2n_connection, ptr %10242, i32 0, i32 32
  %10244 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %10243, i32 0, i32 7
  %10245 = load ptr, ptr %10244, align 8, !tbaa !64
  %10246 = icmp eq ptr %10245, null
  br i1 %10246, label %10247, label %10300

10247:                                            ; preds = %10239
  br label %10248

10248:                                            ; preds = %10247
  br label %10249

10249:                                            ; preds = %10248
  call void @llvm.lifetime.start.p0(i64 4, ptr %216) #10
  %10250 = call ptr @__errno_location() #11
  %10251 = load i32, ptr %10250, align 4, !tbaa !5
  store i32 %10251, ptr %216, align 4, !tbaa !5
  %10252 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10253 = call i32 @s2n_print_stacktrace(ptr noundef %10252)
  %10254 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10255 = trunc i8 %10254 to i1
  br i1 %10255, label %10256, label %10278

10256:                                            ; preds = %10249
  %10257 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10258 = call i32 @fileno(ptr noundef %10257) #10
  %10259 = call i32 @isatty(i32 noundef %10258) #10
  %10260 = icmp ne i32 %10259, 0
  br i1 %10260, label %10261, label %10278

10261:                                            ; preds = %10256
  %10262 = load i32, ptr %216, align 4, !tbaa !5
  %10263 = call ptr @__errno_location() #11
  store i32 %10262, ptr %10263, align 4, !tbaa !5
  %10264 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10265 = load i32, ptr @test_count, align 4, !tbaa !5
  %10266 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10267 = load i32, ptr %10266, align 4, !tbaa !5
  %10268 = call ptr @s2n_strerror(i32 noundef %10267, ptr noundef @.str.3)
  %10269 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10270 = load i32, ptr %10269, align 4, !tbaa !5
  %10271 = call ptr @s2n_strerror_debug(i32 noundef %10270, ptr noundef @.str.3)
  %10272 = call ptr @__errno_location() #11
  %10273 = load i32, ptr %10272, align 4, !tbaa !5
  %10274 = call ptr @strerror(i32 noundef %10273) #10
  %10275 = call ptr @__errno_location() #11
  %10276 = load i32, ptr %10275, align 4, !tbaa !5
  %10277 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10264, ptr noundef @.str, i32 noundef %10265, ptr noundef @.str.136, ptr noundef @.str.2, i32 noundef 708, ptr noundef %10268, ptr noundef %10271, ptr noundef %10274, i32 noundef %10276) #10
  br label %10295

10278:                                            ; preds = %10256, %10249
  %10279 = load i32, ptr %216, align 4, !tbaa !5
  %10280 = call ptr @__errno_location() #11
  store i32 %10279, ptr %10280, align 4, !tbaa !5
  %10281 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10282 = load i32, ptr @test_count, align 4, !tbaa !5
  %10283 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10284 = load i32, ptr %10283, align 4, !tbaa !5
  %10285 = call ptr @s2n_strerror(i32 noundef %10284, ptr noundef @.str.3)
  %10286 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10287 = load i32, ptr %10286, align 4, !tbaa !5
  %10288 = call ptr @s2n_strerror_debug(i32 noundef %10287, ptr noundef @.str.3)
  %10289 = call ptr @__errno_location() #11
  %10290 = load i32, ptr %10289, align 4, !tbaa !5
  %10291 = call ptr @strerror(i32 noundef %10290) #10
  %10292 = call ptr @__errno_location() #11
  %10293 = load i32, ptr %10292, align 4, !tbaa !5
  %10294 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10281, ptr noundef @.str.4, i32 noundef %10282, ptr noundef @.str.136, ptr noundef @.str.2, i32 noundef 708, ptr noundef %10285, ptr noundef %10288, ptr noundef %10291, i32 noundef %10293) #10
  br label %10295

10295:                                            ; preds = %10278, %10261
  call void @llvm.lifetime.end.p0(i64 4, ptr %216) #10
  br label %10296

10296:                                            ; preds = %10295
  br label %10297

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

10298:                                            ; No predecessors!
  br label %10299

10299:                                            ; preds = %10298
  br label %10300

10300:                                            ; preds = %10299, %10239
  br label %10301

10301:                                            ; preds = %10300
  br label %10302

10302:                                            ; preds = %10301
  br label %10303

10303:                                            ; preds = %10302
  %10304 = load i32, ptr @test_count, align 4, !tbaa !5
  %10305 = add nsw i32 %10304, 1
  store i32 %10305, ptr @test_count, align 4, !tbaa !5
  %10306 = load ptr, ptr %205, align 8, !tbaa !9
  %10307 = getelementptr inbounds %struct.s2n_connection, ptr %10306, i32 0, i32 32
  %10308 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %10307, i32 0, i32 7
  %10309 = load ptr, ptr %10308, align 8, !tbaa !64
  %10310 = getelementptr inbounds %struct.s2n_cert_chain_and_key, ptr %10309, i32 0, i32 1
  %10311 = load ptr, ptr %10310, align 8, !tbaa !65
  %10312 = icmp eq ptr %10311, null
  br i1 %10312, label %10313, label %10366

10313:                                            ; preds = %10303
  br label %10314

10314:                                            ; preds = %10313
  br label %10315

10315:                                            ; preds = %10314
  call void @llvm.lifetime.start.p0(i64 4, ptr %217) #10
  %10316 = call ptr @__errno_location() #11
  %10317 = load i32, ptr %10316, align 4, !tbaa !5
  store i32 %10317, ptr %217, align 4, !tbaa !5
  %10318 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10319 = call i32 @s2n_print_stacktrace(ptr noundef %10318)
  %10320 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10321 = trunc i8 %10320 to i1
  br i1 %10321, label %10322, label %10344

10322:                                            ; preds = %10315
  %10323 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10324 = call i32 @fileno(ptr noundef %10323) #10
  %10325 = call i32 @isatty(i32 noundef %10324) #10
  %10326 = icmp ne i32 %10325, 0
  br i1 %10326, label %10327, label %10344

10327:                                            ; preds = %10322
  %10328 = load i32, ptr %217, align 4, !tbaa !5
  %10329 = call ptr @__errno_location() #11
  store i32 %10328, ptr %10329, align 4, !tbaa !5
  %10330 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10331 = load i32, ptr @test_count, align 4, !tbaa !5
  %10332 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10333 = load i32, ptr %10332, align 4, !tbaa !5
  %10334 = call ptr @s2n_strerror(i32 noundef %10333, ptr noundef @.str.3)
  %10335 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10336 = load i32, ptr %10335, align 4, !tbaa !5
  %10337 = call ptr @s2n_strerror_debug(i32 noundef %10336, ptr noundef @.str.3)
  %10338 = call ptr @__errno_location() #11
  %10339 = load i32, ptr %10338, align 4, !tbaa !5
  %10340 = call ptr @strerror(i32 noundef %10339) #10
  %10341 = call ptr @__errno_location() #11
  %10342 = load i32, ptr %10341, align 4, !tbaa !5
  %10343 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10330, ptr noundef @.str, i32 noundef %10331, ptr noundef @.str.137, ptr noundef @.str.2, i32 noundef 709, ptr noundef %10334, ptr noundef %10337, ptr noundef %10340, i32 noundef %10342) #10
  br label %10361

10344:                                            ; preds = %10322, %10315
  %10345 = load i32, ptr %217, align 4, !tbaa !5
  %10346 = call ptr @__errno_location() #11
  store i32 %10345, ptr %10346, align 4, !tbaa !5
  %10347 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10348 = load i32, ptr @test_count, align 4, !tbaa !5
  %10349 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10350 = load i32, ptr %10349, align 4, !tbaa !5
  %10351 = call ptr @s2n_strerror(i32 noundef %10350, ptr noundef @.str.3)
  %10352 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10353 = load i32, ptr %10352, align 4, !tbaa !5
  %10354 = call ptr @s2n_strerror_debug(i32 noundef %10353, ptr noundef @.str.3)
  %10355 = call ptr @__errno_location() #11
  %10356 = load i32, ptr %10355, align 4, !tbaa !5
  %10357 = call ptr @strerror(i32 noundef %10356) #10
  %10358 = call ptr @__errno_location() #11
  %10359 = load i32, ptr %10358, align 4, !tbaa !5
  %10360 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10347, ptr noundef @.str.4, i32 noundef %10348, ptr noundef @.str.137, ptr noundef @.str.2, i32 noundef 709, ptr noundef %10351, ptr noundef %10354, ptr noundef %10357, i32 noundef %10359) #10
  br label %10361

10361:                                            ; preds = %10344, %10327
  call void @llvm.lifetime.end.p0(i64 4, ptr %217) #10
  br label %10362

10362:                                            ; preds = %10361
  br label %10363

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

10364:                                            ; No predecessors!
  br label %10365

10365:                                            ; preds = %10364
  br label %10366

10366:                                            ; preds = %10365, %10303
  br label %10367

10367:                                            ; preds = %10366
  br label %10368

10368:                                            ; preds = %10367
  call void @llvm.lifetime.start.p0(i64 8, ptr %218) #10
  %10369 = load ptr, ptr %205, align 8, !tbaa !9
  %10370 = getelementptr inbounds %struct.s2n_connection, ptr %10369, i32 0, i32 32
  %10371 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %10370, i32 0, i32 7
  %10372 = load ptr, ptr %10371, align 8, !tbaa !64
  %10373 = getelementptr inbounds %struct.s2n_cert_chain_and_key, ptr %10372, i32 0, i32 1
  %10374 = load ptr, ptr %10373, align 8, !tbaa !65
  store ptr %10374, ptr %218, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 48, ptr %219) #10
  %10375 = load ptr, ptr %218, align 8, !tbaa !9
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %219, ptr align 8 %10375, i64 48, i1 false), !tbaa.struct !67
  %10376 = getelementptr inbounds %struct.s2n_pkey, ptr %219, i32 0, i32 2
  store ptr @s2n_test_bad_sign, ptr %10376, align 8, !tbaa !68
  %10377 = load ptr, ptr %205, align 8, !tbaa !9
  %10378 = getelementptr inbounds %struct.s2n_connection, ptr %10377, i32 0, i32 32
  %10379 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %10378, i32 0, i32 7
  %10380 = load ptr, ptr %10379, align 8, !tbaa !64
  %10381 = getelementptr inbounds %struct.s2n_cert_chain_and_key, ptr %10380, i32 0, i32 1
  store ptr %219, ptr %10381, align 8, !tbaa !65
  call void @llvm.lifetime.start.p0(i64 4, ptr %220) #10
  store i32 0, ptr %220, align 4, !tbaa !5
  br label %10382

10382:                                            ; preds = %10368
  %10383 = load i32, ptr @test_count, align 4, !tbaa !5
  %10384 = add nsw i32 %10383, 1
  store i32 %10384, ptr @test_count, align 4, !tbaa !5
  %10385 = load ptr, ptr %197, align 8, !tbaa !9
  %10386 = call i32 @s2n_config_set_verify_after_sign(ptr noundef %10385, i32 noundef 1)
  %10387 = icmp eq i32 %10386, -1
  br i1 %10387, label %10388, label %10441

10388:                                            ; preds = %10382
  br label %10389

10389:                                            ; preds = %10388
  br label %10390

10390:                                            ; preds = %10389
  call void @llvm.lifetime.start.p0(i64 4, ptr %221) #10
  %10391 = call ptr @__errno_location() #11
  %10392 = load i32, ptr %10391, align 4, !tbaa !5
  store i32 %10392, ptr %221, align 4, !tbaa !5
  %10393 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10394 = call i32 @s2n_print_stacktrace(ptr noundef %10393)
  %10395 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10396 = trunc i8 %10395 to i1
  br i1 %10396, label %10397, label %10419

10397:                                            ; preds = %10390
  %10398 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10399 = call i32 @fileno(ptr noundef %10398) #10
  %10400 = call i32 @isatty(i32 noundef %10399) #10
  %10401 = icmp ne i32 %10400, 0
  br i1 %10401, label %10402, label %10419

10402:                                            ; preds = %10397
  %10403 = load i32, ptr %221, align 4, !tbaa !5
  %10404 = call ptr @__errno_location() #11
  store i32 %10403, ptr %10404, align 4, !tbaa !5
  %10405 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10406 = load i32, ptr @test_count, align 4, !tbaa !5
  %10407 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10408 = load i32, ptr %10407, align 4, !tbaa !5
  %10409 = call ptr @s2n_strerror(i32 noundef %10408, ptr noundef @.str.3)
  %10410 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10411 = load i32, ptr %10410, align 4, !tbaa !5
  %10412 = call ptr @s2n_strerror_debug(i32 noundef %10411, ptr noundef @.str.3)
  %10413 = call ptr @__errno_location() #11
  %10414 = load i32, ptr %10413, align 4, !tbaa !5
  %10415 = call ptr @strerror(i32 noundef %10414) #10
  %10416 = call ptr @__errno_location() #11
  %10417 = load i32, ptr %10416, align 4, !tbaa !5
  %10418 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10405, ptr noundef @.str, i32 noundef %10406, ptr noundef @.str.134, ptr noundef @.str.2, i32 noundef 717, ptr noundef %10409, ptr noundef %10412, ptr noundef %10415, i32 noundef %10417) #10
  br label %10436

10419:                                            ; preds = %10397, %10390
  %10420 = load i32, ptr %221, align 4, !tbaa !5
  %10421 = call ptr @__errno_location() #11
  store i32 %10420, ptr %10421, align 4, !tbaa !5
  %10422 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10423 = load i32, ptr @test_count, align 4, !tbaa !5
  %10424 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10425 = load i32, ptr %10424, align 4, !tbaa !5
  %10426 = call ptr @s2n_strerror(i32 noundef %10425, ptr noundef @.str.3)
  %10427 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10428 = load i32, ptr %10427, align 4, !tbaa !5
  %10429 = call ptr @s2n_strerror_debug(i32 noundef %10428, ptr noundef @.str.3)
  %10430 = call ptr @__errno_location() #11
  %10431 = load i32, ptr %10430, align 4, !tbaa !5
  %10432 = call ptr @strerror(i32 noundef %10431) #10
  %10433 = call ptr @__errno_location() #11
  %10434 = load i32, ptr %10433, align 4, !tbaa !5
  %10435 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10422, ptr noundef @.str.4, i32 noundef %10423, ptr noundef @.str.134, ptr noundef @.str.2, i32 noundef 717, ptr noundef %10426, ptr noundef %10429, ptr noundef %10432, i32 noundef %10434) #10
  br label %10436

10436:                                            ; preds = %10419, %10402
  call void @llvm.lifetime.end.p0(i64 4, ptr %221) #10
  br label %10437

10437:                                            ; preds = %10436
  br label %10438

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

10439:                                            ; No predecessors!
  br label %10440

10440:                                            ; preds = %10439
  br label %10441

10441:                                            ; preds = %10440, %10382
  br label %10442

10442:                                            ; preds = %10441
  br label %10443

10443:                                            ; preds = %10442
  br label %10444

10444:                                            ; preds = %10443
  br label %10445

10445:                                            ; preds = %10444
  br label %10446

10446:                                            ; preds = %10445
  %10447 = load i32, ptr @test_count, align 4, !tbaa !5
  %10448 = add nsw i32 %10447, 1
  store i32 %10448, ptr @test_count, align 4, !tbaa !5
  %10449 = load ptr, ptr %205, align 8, !tbaa !9
  %10450 = call i32 @s2n_negotiate(ptr noundef %10449, ptr noundef %220)
  %10451 = icmp eq i32 %10450, -1
  br i1 %10451, label %10505, label %10452

10452:                                            ; preds = %10446
  br label %10453

10453:                                            ; preds = %10452
  br label %10454

10454:                                            ; preds = %10453
  call void @llvm.lifetime.start.p0(i64 4, ptr %222) #10
  %10455 = call ptr @__errno_location() #11
  %10456 = load i32, ptr %10455, align 4, !tbaa !5
  store i32 %10456, ptr %222, align 4, !tbaa !5
  %10457 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10458 = call i32 @s2n_print_stacktrace(ptr noundef %10457)
  %10459 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10460 = trunc i8 %10459 to i1
  br i1 %10460, label %10461, label %10483

10461:                                            ; preds = %10454
  %10462 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10463 = call i32 @fileno(ptr noundef %10462) #10
  %10464 = call i32 @isatty(i32 noundef %10463) #10
  %10465 = icmp ne i32 %10464, 0
  br i1 %10465, label %10466, label %10483

10466:                                            ; preds = %10461
  %10467 = load i32, ptr %222, align 4, !tbaa !5
  %10468 = call ptr @__errno_location() #11
  store i32 %10467, ptr %10468, align 4, !tbaa !5
  %10469 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10470 = load i32, ptr @test_count, align 4, !tbaa !5
  %10471 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10472 = load i32, ptr %10471, align 4, !tbaa !5
  %10473 = call ptr @s2n_strerror(i32 noundef %10472, ptr noundef @.str.3)
  %10474 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10475 = load i32, ptr %10474, align 4, !tbaa !5
  %10476 = call ptr @s2n_strerror_debug(i32 noundef %10475, ptr noundef @.str.3)
  %10477 = call ptr @__errno_location() #11
  %10478 = load i32, ptr %10477, align 4, !tbaa !5
  %10479 = call ptr @strerror(i32 noundef %10478) #10
  %10480 = call ptr @__errno_location() #11
  %10481 = load i32, ptr %10480, align 4, !tbaa !5
  %10482 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10469, ptr noundef @.str, i32 noundef %10470, ptr noundef @.str.138, ptr noundef @.str.2, i32 noundef 718, ptr noundef %10473, ptr noundef %10476, ptr noundef %10479, i32 noundef %10481) #10
  br label %10500

10483:                                            ; preds = %10461, %10454
  %10484 = load i32, ptr %222, align 4, !tbaa !5
  %10485 = call ptr @__errno_location() #11
  store i32 %10484, ptr %10485, align 4, !tbaa !5
  %10486 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10487 = load i32, ptr @test_count, align 4, !tbaa !5
  %10488 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10489 = load i32, ptr %10488, align 4, !tbaa !5
  %10490 = call ptr @s2n_strerror(i32 noundef %10489, ptr noundef @.str.3)
  %10491 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10492 = load i32, ptr %10491, align 4, !tbaa !5
  %10493 = call ptr @s2n_strerror_debug(i32 noundef %10492, ptr noundef @.str.3)
  %10494 = call ptr @__errno_location() #11
  %10495 = load i32, ptr %10494, align 4, !tbaa !5
  %10496 = call ptr @strerror(i32 noundef %10495) #10
  %10497 = call ptr @__errno_location() #11
  %10498 = load i32, ptr %10497, align 4, !tbaa !5
  %10499 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10486, ptr noundef @.str.4, i32 noundef %10487, ptr noundef @.str.138, ptr noundef @.str.2, i32 noundef 718, ptr noundef %10490, ptr noundef %10493, ptr noundef %10496, i32 noundef %10498) #10
  br label %10500

10500:                                            ; preds = %10483, %10466
  call void @llvm.lifetime.end.p0(i64 4, ptr %222) #10
  br label %10501

10501:                                            ; preds = %10500
  br label %10502

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

10503:                                            ; No predecessors!
  br label %10504

10504:                                            ; preds = %10503
  br label %10505

10505:                                            ; preds = %10504, %10446
  br label %10506

10506:                                            ; preds = %10505
  br label %10507

10507:                                            ; preds = %10506
  br label %10508

10508:                                            ; preds = %10507
  %10509 = load i32, ptr @test_count, align 4, !tbaa !5
  %10510 = add nsw i32 %10509, 1
  store i32 %10510, ptr @test_count, align 4, !tbaa !5
  %10511 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10512 = load i32, ptr %10511, align 4, !tbaa !5
  %10513 = icmp eq i32 %10512, 335544353
  br i1 %10513, label %10567, label %10514

10514:                                            ; preds = %10508
  br label %10515

10515:                                            ; preds = %10514
  br label %10516

10516:                                            ; preds = %10515
  call void @llvm.lifetime.start.p0(i64 4, ptr %223) #10
  %10517 = call ptr @__errno_location() #11
  %10518 = load i32, ptr %10517, align 4, !tbaa !5
  store i32 %10518, ptr %223, align 4, !tbaa !5
  %10519 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10520 = call i32 @s2n_print_stacktrace(ptr noundef %10519)
  %10521 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10522 = trunc i8 %10521 to i1
  br i1 %10522, label %10523, label %10545

10523:                                            ; preds = %10516
  %10524 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10525 = call i32 @fileno(ptr noundef %10524) #10
  %10526 = call i32 @isatty(i32 noundef %10525) #10
  %10527 = icmp ne i32 %10526, 0
  br i1 %10527, label %10528, label %10545

10528:                                            ; preds = %10523
  %10529 = load i32, ptr %223, align 4, !tbaa !5
  %10530 = call ptr @__errno_location() #11
  store i32 %10529, ptr %10530, align 4, !tbaa !5
  %10531 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10532 = load i32, ptr @test_count, align 4, !tbaa !5
  %10533 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10534 = load i32, ptr %10533, align 4, !tbaa !5
  %10535 = call ptr @s2n_strerror(i32 noundef %10534, ptr noundef @.str.3)
  %10536 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10537 = load i32, ptr %10536, align 4, !tbaa !5
  %10538 = call ptr @s2n_strerror_debug(i32 noundef %10537, ptr noundef @.str.3)
  %10539 = call ptr @__errno_location() #11
  %10540 = load i32, ptr %10539, align 4, !tbaa !5
  %10541 = call ptr @strerror(i32 noundef %10540) #10
  %10542 = call ptr @__errno_location() #11
  %10543 = load i32, ptr %10542, align 4, !tbaa !5
  %10544 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10531, ptr noundef @.str, i32 noundef %10532, ptr noundef @.str.139, ptr noundef @.str.2, i32 noundef 718, ptr noundef %10535, ptr noundef %10538, ptr noundef %10541, i32 noundef %10543) #10
  br label %10562

10545:                                            ; preds = %10523, %10516
  %10546 = load i32, ptr %223, align 4, !tbaa !5
  %10547 = call ptr @__errno_location() #11
  store i32 %10546, ptr %10547, align 4, !tbaa !5
  %10548 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10549 = load i32, ptr @test_count, align 4, !tbaa !5
  %10550 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10551 = load i32, ptr %10550, align 4, !tbaa !5
  %10552 = call ptr @s2n_strerror(i32 noundef %10551, ptr noundef @.str.3)
  %10553 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10554 = load i32, ptr %10553, align 4, !tbaa !5
  %10555 = call ptr @s2n_strerror_debug(i32 noundef %10554, ptr noundef @.str.3)
  %10556 = call ptr @__errno_location() #11
  %10557 = load i32, ptr %10556, align 4, !tbaa !5
  %10558 = call ptr @strerror(i32 noundef %10557) #10
  %10559 = call ptr @__errno_location() #11
  %10560 = load i32, ptr %10559, align 4, !tbaa !5
  %10561 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10548, ptr noundef @.str.4, i32 noundef %10549, ptr noundef @.str.139, ptr noundef @.str.2, i32 noundef 718, ptr noundef %10552, ptr noundef %10555, ptr noundef %10558, i32 noundef %10560) #10
  br label %10562

10562:                                            ; preds = %10545, %10528
  call void @llvm.lifetime.end.p0(i64 4, ptr %223) #10
  br label %10563

10563:                                            ; preds = %10562
  br label %10564

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

10565:                                            ; No predecessors!
  br label %10566

10566:                                            ; preds = %10565
  br label %10567

10567:                                            ; preds = %10566, %10508
  br label %10568

10568:                                            ; preds = %10567
  br label %10569

10569:                                            ; preds = %10568
  br label %10570

10570:                                            ; preds = %10569
  %10571 = load i32, ptr @test_count, align 4, !tbaa !5
  %10572 = add nsw i32 %10571, 1
  store i32 %10572, ptr @test_count, align 4, !tbaa !5
  %10573 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10574 = load i32, ptr %10573, align 4, !tbaa !5
  %10575 = call ptr @s2n_strerror_debug(i32 noundef %10574, ptr noundef @.str.3)
  %10576 = icmp eq ptr %10575, null
  br i1 %10576, label %10577, label %10630

10577:                                            ; preds = %10570
  br label %10578

10578:                                            ; preds = %10577
  br label %10579

10579:                                            ; preds = %10578
  call void @llvm.lifetime.start.p0(i64 4, ptr %224) #10
  %10580 = call ptr @__errno_location() #11
  %10581 = load i32, ptr %10580, align 4, !tbaa !5
  store i32 %10581, ptr %224, align 4, !tbaa !5
  %10582 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10583 = call i32 @s2n_print_stacktrace(ptr noundef %10582)
  %10584 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10585 = trunc i8 %10584 to i1
  br i1 %10585, label %10586, label %10608

10586:                                            ; preds = %10579
  %10587 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10588 = call i32 @fileno(ptr noundef %10587) #10
  %10589 = call i32 @isatty(i32 noundef %10588) #10
  %10590 = icmp ne i32 %10589, 0
  br i1 %10590, label %10591, label %10608

10591:                                            ; preds = %10586
  %10592 = load i32, ptr %224, align 4, !tbaa !5
  %10593 = call ptr @__errno_location() #11
  store i32 %10592, ptr %10593, align 4, !tbaa !5
  %10594 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10595 = load i32, ptr @test_count, align 4, !tbaa !5
  %10596 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10597 = load i32, ptr %10596, align 4, !tbaa !5
  %10598 = call ptr @s2n_strerror(i32 noundef %10597, ptr noundef @.str.3)
  %10599 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10600 = load i32, ptr %10599, align 4, !tbaa !5
  %10601 = call ptr @s2n_strerror_debug(i32 noundef %10600, ptr noundef @.str.3)
  %10602 = call ptr @__errno_location() #11
  %10603 = load i32, ptr %10602, align 4, !tbaa !5
  %10604 = call ptr @strerror(i32 noundef %10603) #10
  %10605 = call ptr @__errno_location() #11
  %10606 = load i32, ptr %10605, align 4, !tbaa !5
  %10607 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10594, ptr noundef @.str, i32 noundef %10595, ptr noundef @.str.56, ptr noundef @.str.2, i32 noundef 718, ptr noundef %10598, ptr noundef %10601, ptr noundef %10604, i32 noundef %10606) #10
  br label %10625

10608:                                            ; preds = %10586, %10579
  %10609 = load i32, ptr %224, align 4, !tbaa !5
  %10610 = call ptr @__errno_location() #11
  store i32 %10609, ptr %10610, align 4, !tbaa !5
  %10611 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10612 = load i32, ptr @test_count, align 4, !tbaa !5
  %10613 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10614 = load i32, ptr %10613, align 4, !tbaa !5
  %10615 = call ptr @s2n_strerror(i32 noundef %10614, ptr noundef @.str.3)
  %10616 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10617 = load i32, ptr %10616, align 4, !tbaa !5
  %10618 = call ptr @s2n_strerror_debug(i32 noundef %10617, ptr noundef @.str.3)
  %10619 = call ptr @__errno_location() #11
  %10620 = load i32, ptr %10619, align 4, !tbaa !5
  %10621 = call ptr @strerror(i32 noundef %10620) #10
  %10622 = call ptr @__errno_location() #11
  %10623 = load i32, ptr %10622, align 4, !tbaa !5
  %10624 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10611, ptr noundef @.str.4, i32 noundef %10612, ptr noundef @.str.56, ptr noundef @.str.2, i32 noundef 718, ptr noundef %10615, ptr noundef %10618, ptr noundef %10621, i32 noundef %10623) #10
  br label %10625

10625:                                            ; preds = %10608, %10591
  call void @llvm.lifetime.end.p0(i64 4, ptr %224) #10
  br label %10626

10626:                                            ; preds = %10625
  br label %10627

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

10628:                                            ; No predecessors!
  br label %10629

10629:                                            ; preds = %10628
  br label %10630

10630:                                            ; preds = %10629, %10570
  br label %10631

10631:                                            ; preds = %10630
  br label %10632

10632:                                            ; preds = %10631
  br label %10633

10633:                                            ; preds = %10632
  br label %10634

10634:                                            ; preds = %10633
  br label %10635

10635:                                            ; preds = %10634
  %10636 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %10636, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %10637 = call ptr @__errno_location() #11
  store i32 0, ptr %10637, align 4, !tbaa !5
  br label %10638

10638:                                            ; preds = %10635
  br label %10639

10639:                                            ; preds = %10638
  br label %10640

10640:                                            ; preds = %10639
  br label %10641

10641:                                            ; preds = %10640
  %10642 = load ptr, ptr %218, align 8, !tbaa !9
  %10643 = load ptr, ptr %205, align 8, !tbaa !9
  %10644 = getelementptr inbounds %struct.s2n_connection, ptr %10643, i32 0, i32 32
  %10645 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %10644, i32 0, i32 7
  %10646 = load ptr, ptr %10645, align 8, !tbaa !64
  %10647 = getelementptr inbounds %struct.s2n_cert_chain_and_key, ptr %10646, i32 0, i32 1
  store ptr %10642, ptr %10647, align 8, !tbaa !65
  call void @llvm.lifetime.end.p0(i64 4, ptr %220) #10
  call void @llvm.lifetime.end.p0(i64 48, ptr %219) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %218) #10
  %10648 = call i32 @s2n_io_pair_close(ptr noundef %209)
  call void @llvm.lifetime.end.p0(i64 8, ptr %209) #10
  %10649 = call i32 @s2n_connection_ptr_free(ptr noundef %205)
  %10650 = getelementptr inbounds %struct.s2n_result, ptr %225, i32 0, i32 0
  store i32 %10649, ptr %10650, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %205) #10
  %10651 = call i32 @s2n_connection_ptr_free(ptr noundef %202)
  %10652 = getelementptr inbounds %struct.s2n_result, ptr %226, i32 0, i32 0
  store i32 %10651, ptr %10652, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %202) #10
  %10653 = call i32 @s2n_config_ptr_free(ptr noundef %197)
  %10654 = getelementptr inbounds %struct.s2n_result, ptr %227, i32 0, i32 0
  store i32 %10653, ptr %10654, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %197) #10
  br label %10655

10655:                                            ; preds = %10641
  br label %10656

10656:                                            ; preds = %10655
  %10657 = call i32 @s2n_cleanup()
  %10658 = icmp eq i32 %10657, -1
  br i1 %10658, label %10659, label %10712

10659:                                            ; preds = %10656
  br label %10660

10660:                                            ; preds = %10659
  br label %10661

10661:                                            ; preds = %10660
  call void @llvm.lifetime.start.p0(i64 4, ptr %228) #10
  %10662 = call ptr @__errno_location() #11
  %10663 = load i32, ptr %10662, align 4, !tbaa !5
  store i32 %10663, ptr %228, align 4, !tbaa !5
  %10664 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10665 = call i32 @s2n_print_stacktrace(ptr noundef %10664)
  %10666 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10667 = trunc i8 %10666 to i1
  br i1 %10667, label %10668, label %10690

10668:                                            ; preds = %10661
  %10669 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10670 = call i32 @fileno(ptr noundef %10669) #10
  %10671 = call i32 @isatty(i32 noundef %10670) #10
  %10672 = icmp ne i32 %10671, 0
  br i1 %10672, label %10673, label %10690

10673:                                            ; preds = %10668
  %10674 = load i32, ptr %228, align 4, !tbaa !5
  %10675 = call ptr @__errno_location() #11
  store i32 %10674, ptr %10675, align 4, !tbaa !5
  %10676 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10677 = load i32, ptr @test_count, align 4, !tbaa !5
  %10678 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10679 = load i32, ptr %10678, align 4, !tbaa !5
  %10680 = call ptr @s2n_strerror(i32 noundef %10679, ptr noundef @.str.3)
  %10681 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10682 = load i32, ptr %10681, align 4, !tbaa !5
  %10683 = call ptr @s2n_strerror_debug(i32 noundef %10682, ptr noundef @.str.3)
  %10684 = call ptr @__errno_location() #11
  %10685 = load i32, ptr %10684, align 4, !tbaa !5
  %10686 = call ptr @strerror(i32 noundef %10685) #10
  %10687 = call ptr @__errno_location() #11
  %10688 = load i32, ptr %10687, align 4, !tbaa !5
  %10689 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10676, ptr noundef @.str, i32 noundef %10677, ptr noundef @.str.140, ptr noundef @.str.2, i32 noundef 724, ptr noundef %10680, ptr noundef %10683, ptr noundef %10686, i32 noundef %10688) #10
  br label %10707

10690:                                            ; preds = %10668, %10661
  %10691 = load i32, ptr %228, align 4, !tbaa !5
  %10692 = call ptr @__errno_location() #11
  store i32 %10691, ptr %10692, align 4, !tbaa !5
  %10693 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10694 = load i32, ptr @test_count, align 4, !tbaa !5
  %10695 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10696 = load i32, ptr %10695, align 4, !tbaa !5
  %10697 = call ptr @s2n_strerror(i32 noundef %10696, ptr noundef @.str.3)
  %10698 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10699 = load i32, ptr %10698, align 4, !tbaa !5
  %10700 = call ptr @s2n_strerror_debug(i32 noundef %10699, ptr noundef @.str.3)
  %10701 = call ptr @__errno_location() #11
  %10702 = load i32, ptr %10701, align 4, !tbaa !5
  %10703 = call ptr @strerror(i32 noundef %10702) #10
  %10704 = call ptr @__errno_location() #11
  %10705 = load i32, ptr %10704, align 4, !tbaa !5
  %10706 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10693, ptr noundef @.str.4, i32 noundef %10694, ptr noundef @.str.140, ptr noundef @.str.2, i32 noundef 724, ptr noundef %10697, ptr noundef %10700, ptr noundef %10703, i32 noundef %10705) #10
  br label %10707

10707:                                            ; preds = %10690, %10673
  call void @llvm.lifetime.end.p0(i64 4, ptr %228) #10
  br label %10708

10708:                                            ; preds = %10707
  br label %10709

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

10710:                                            ; No predecessors!
  br label %10711

10711:                                            ; preds = %10710
  br label %10712

10712:                                            ; preds = %10711, %10656
  br label %10713

10713:                                            ; preds = %10712
  br label %10714

10714:                                            ; preds = %10713
  br label %10715

10715:                                            ; preds = %10714
  br label %10716

10716:                                            ; preds = %10715
  %10717 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %10718 = icmp eq i32 %10717, -1
  br i1 %10718, label %10719, label %10772

10719:                                            ; preds = %10716
  br label %10720

10720:                                            ; preds = %10719
  br label %10721

10721:                                            ; preds = %10720
  call void @llvm.lifetime.start.p0(i64 4, ptr %229) #10
  %10722 = call ptr @__errno_location() #11
  %10723 = load i32, ptr %10722, align 4, !tbaa !5
  store i32 %10723, ptr %229, align 4, !tbaa !5
  %10724 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10725 = call i32 @s2n_print_stacktrace(ptr noundef %10724)
  %10726 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10727 = trunc i8 %10726 to i1
  br i1 %10727, label %10728, label %10750

10728:                                            ; preds = %10721
  %10729 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10730 = call i32 @fileno(ptr noundef %10729) #10
  %10731 = call i32 @isatty(i32 noundef %10730) #10
  %10732 = icmp ne i32 %10731, 0
  br i1 %10732, label %10733, label %10750

10733:                                            ; preds = %10728
  %10734 = load i32, ptr %229, align 4, !tbaa !5
  %10735 = call ptr @__errno_location() #11
  store i32 %10734, ptr %10735, align 4, !tbaa !5
  %10736 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10737 = load i32, ptr @test_count, align 4, !tbaa !5
  %10738 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10739 = load i32, ptr %10738, align 4, !tbaa !5
  %10740 = call ptr @s2n_strerror(i32 noundef %10739, ptr noundef @.str.3)
  %10741 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10742 = load i32, ptr %10741, align 4, !tbaa !5
  %10743 = call ptr @s2n_strerror_debug(i32 noundef %10742, ptr noundef @.str.3)
  %10744 = call ptr @__errno_location() #11
  %10745 = load i32, ptr %10744, align 4, !tbaa !5
  %10746 = call ptr @strerror(i32 noundef %10745) #10
  %10747 = call ptr @__errno_location() #11
  %10748 = load i32, ptr %10747, align 4, !tbaa !5
  %10749 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10736, ptr noundef @.str, i32 noundef %10737, ptr noundef @.str.141, ptr noundef @.str.2, i32 noundef 724, ptr noundef %10740, ptr noundef %10743, ptr noundef %10746, i32 noundef %10748) #10
  br label %10767

10750:                                            ; preds = %10728, %10721
  %10751 = load i32, ptr %229, align 4, !tbaa !5
  %10752 = call ptr @__errno_location() #11
  store i32 %10751, ptr %10752, align 4, !tbaa !5
  %10753 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10754 = load i32, ptr @test_count, align 4, !tbaa !5
  %10755 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10756 = load i32, ptr %10755, align 4, !tbaa !5
  %10757 = call ptr @s2n_strerror(i32 noundef %10756, ptr noundef @.str.3)
  %10758 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10759 = load i32, ptr %10758, align 4, !tbaa !5
  %10760 = call ptr @s2n_strerror_debug(i32 noundef %10759, ptr noundef @.str.3)
  %10761 = call ptr @__errno_location() #11
  %10762 = load i32, ptr %10761, align 4, !tbaa !5
  %10763 = call ptr @strerror(i32 noundef %10762) #10
  %10764 = call ptr @__errno_location() #11
  %10765 = load i32, ptr %10764, align 4, !tbaa !5
  %10766 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10753, ptr noundef @.str.4, i32 noundef %10754, ptr noundef @.str.141, ptr noundef @.str.2, i32 noundef 724, ptr noundef %10757, ptr noundef %10760, ptr noundef %10763, i32 noundef %10765) #10
  br label %10767

10767:                                            ; preds = %10750, %10733
  call void @llvm.lifetime.end.p0(i64 4, ptr %229) #10
  br label %10768

10768:                                            ; preds = %10767
  br label %10769

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

10770:                                            ; No predecessors!
  br label %10771

10771:                                            ; preds = %10770
  br label %10772

10772:                                            ; preds = %10771, %10716
  br label %10773

10773:                                            ; preds = %10772
  br label %10774

10774:                                            ; preds = %10773
  %10775 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10776 = trunc i8 %10775 to i1
  br i1 %10776, label %10777, label %10793

10777:                                            ; preds = %10774
  %10778 = load ptr, ptr @stdout, align 8, !tbaa !9
  %10779 = call i32 @fileno(ptr noundef %10778) #10
  %10780 = call i32 @isatty(i32 noundef %10779) #10
  %10781 = icmp ne i32 %10780, 0
  br i1 %10781, label %10782, label %10793

10782:                                            ; preds = %10777
  %10783 = load i32, ptr @test_count, align 4, !tbaa !5
  %10784 = icmp ne i32 %10783, 0
  br i1 %10784, label %10785, label %10789

10785:                                            ; preds = %10782
  %10786 = load ptr, ptr @stdout, align 8, !tbaa !9
  %10787 = load i32, ptr @test_count, align 4, !tbaa !5
  %10788 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10786, ptr noundef @.str.142, i32 noundef %10787) #10
  br label %10792

10789:                                            ; preds = %10782
  %10790 = load ptr, ptr @stdout, align 8, !tbaa !9
  %10791 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10790, ptr noundef @.str.143) #10
  br label %10792

10792:                                            ; preds = %10789, %10785
  br label %10804

10793:                                            ; preds = %10777, %10774
  %10794 = load i32, ptr @test_count, align 4, !tbaa !5
  %10795 = icmp ne i32 %10794, 0
  br i1 %10795, label %10796, label %10800

10796:                                            ; preds = %10793
  %10797 = load ptr, ptr @stdout, align 8, !tbaa !9
  %10798 = load i32, ptr @test_count, align 4, !tbaa !5
  %10799 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10797, ptr noundef @.str.144, i32 noundef %10798) #10
  br label %10803

10800:                                            ; preds = %10793
  %10801 = load ptr, ptr @stdout, align 8, !tbaa !9
  %10802 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10801, ptr noundef @.str.145) #10
  br label %10803

10803:                                            ; preds = %10800, %10796
  br label %10804

10804:                                            ; preds = %10803, %10792
  store i32 0, ptr %3, align 4
  store i32 1, ptr %230, align 4
  br label %10809

10805:                                            ; No predecessors!
  br label %10806

10806:                                            ; preds = %10805
  br label %10807

10807:                                            ; preds = %10806
  br label %10808

10808:                                            ; preds = %10807
  store i32 0, ptr %230, align 4
  br label %10809

10809:                                            ; preds = %10808, %10804
  %10810 = call i32 @s2n_hash_free(ptr noundef %155)
  call void @llvm.lifetime.end.p0(i64 56, ptr %155) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %16) #10
  %10811 = call i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef %14)
  %10812 = getelementptr inbounds %struct.s2n_result, ptr %231, i32 0, i32 0
  store i32 %10811, ptr %10812, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #10
  %10813 = call i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef %12)
  %10814 = getelementptr inbounds %struct.s2n_result, ptr %232, i32 0, i32 0
  store i32 %10813, ptr %10814, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #10
  call void @llvm.lifetime.end.p0(i64 12000, ptr %10) #10
  %10815 = load i32, ptr %230, align 4
  switch i32 %10815, label %10818 [
    i32 0, label %10816
    i32 1, label %10816
  ]

10816:                                            ; preds = %10809, %10809
  %10817 = load i32, ptr %3, align 4
  ret i32 %10817

10818:                                            ; preds = %10809
  unreachable
}

declare i32 @fflush(ptr noundef) #3

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) #3

declare i32 @s2n_enable_atexit() #3

declare i32 @s2n_init() #3

declare i32 @s2n_disable_tls13_in_test(...) #3

declare i32 @s2n_read_test_pem(ptr noundef, ptr noundef, i64 noundef) #3

declare i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef) #3

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

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

declare ptr @s2n_config_new() #3

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

declare i32 @s2n_config_add_dhparams(ptr noundef, ptr noundef) #3

declare i32 @s2n_config_set_async_pkey_callback(ptr noundef, ptr noundef) #3

declare i32 @s2n_config_set_unsafe_for_testing(ptr noundef) #3

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

declare i32 @s2n_config_set_verification_ca_location(ptr noundef, ptr noundef, ptr noundef) #3

declare ptr @s2n_connection_new(i32 noundef) #3

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

declare i32 @s2n_io_pair_init_non_blocking(ptr noundef) #3

declare i32 @s2n_connection_set_io_pair(ptr noundef, ptr noundef) #3

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

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

declare i32 @s2n_connection_free(ptr noundef) #3

declare i32 @s2n_io_pair_close(ptr noundef) #3

declare i32 @s2n_config_free(ptr noundef) #3

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

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

declare i32 @s2n_config_set_async_pkey_validation_mode(ptr noundef, i32 noundef) #3

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

declare i32 @s2n_config_ptr_free(ptr noundef) #3

declare i32 @s2n_connection_ptr_free(ptr noundef) #3

declare i32 @s2n_config_set_verify_after_sign(ptr noundef, i32 noundef) #3

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

declare i32 @s2n_async_pkey_sign(ptr noundef, i32 noundef, ptr noundef, ptr noundef) #3

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

declare i32 @s2n_async_pkey_decrypt(ptr noundef, ptr noundef, ptr noundef, ptr noundef) #3

declare i32 @s2n_reset_tls13_in_test(...) #3

declare i32 @s2n_connection_set_blinding(ptr noundef, i32 noundef) #3

declare i32 @s2n_negotiate_test_server_and_client_until_message(ptr noundef, ptr noundef, i32 noundef) #3

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

declare i32 @s2n_negotiate(ptr noundef, ptr noundef) #3

declare i32 @s2n_cleanup() #3

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 = { 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 #3 = { "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 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #6 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #8 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #9 = { inlinehint nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #10 = { nounwind }
attributes #11 = { nounwind willreturn memory(none) }
attributes #12 = { noreturn nounwind }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"_Bool", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = !{!16, !16, i64 0}
!16 = !{!"long", !7, i64 0}
!17 = !{!18, !19, i64 0}
!18 = !{!"s2n_cipher_preferences", !19, i64 0, !10, i64 8, !12, i64 16}
!19 = !{!"short", !7, i64 0}
!20 = !{!18, !10, i64 8}
!21 = !{!18, !12, i64 16}
!22 = !{!23, !7, i64 0}
!23 = !{!"s2n_security_policy", !7, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40, !10, i64 48, !12, i64 56, !7, i64 57}
!24 = !{!23, !10, i64 8}
!25 = !{!23, !10, i64 16}
!26 = !{!23, !10, i64 24}
!27 = !{!23, !10, i64 32}
!28 = !{!23, !10, i64 40}
!29 = !{!23, !10, i64 48}
!30 = !{!23, !12, i64 56}
!31 = !{!32, !10, i64 96}
!32 = !{!"s2n_config", !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !10, i64 8, !10, i64 16, !33, i64 24, !34, i64 56, !10, i64 80, !10, i64 88, !10, i64 96, !10, i64 104, !10, i64 112, !10, i64 120, !6, i64 128, !6, i64 132, !10, i64 136, !16, i64 144, !10, i64 152, !16, i64 160, !16, i64 168, !10, i64 176, !10, i64 184, !10, i64 192, !10, i64 200, !10, i64 208, !10, i64 216, !6, i64 224, !7, i64 228, !6, i64 232, !6, i64 236, !10, i64 240, !10, i64 248, !10, i64 256, !10, i64 264, !10, i64 272, !10, i64 280, !10, i64 288, !7, i64 296, !7, i64 297, !35, i64 304, !19, i64 320, !10, i64 328, !10, i64 336, !10, i64 344, !10, i64 352, !10, i64 360, !10, i64 368, !10, i64 376, !10, i64 384, !6, i64 392, !6, i64 396, !6, i64 400, !10, i64 408, !6, i64 416, !6, i64 420, !10, i64 424, !10, i64 432, !6, i64 440, !34, i64 448}
!33 = !{!"certs_by_type", !7, i64 0}
!34 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!35 = !{!"s2n_x509_trust_store", !10, i64 0, !6, i64 8}
!36 = distinct !{!36, !37}
!37 = !{!"llvm.loop.mustprogress"}
!38 = !{!7, !7, i64 0}
!39 = !{!40, !10, i64 8}
!40 = !{!"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, !41, i64 160, !16, i64 168, !16, 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, !42, i64 240, !10, i64 632, !10, i64 640, !43, i64 648, !48, i64 1144, !51, i64 1688, !10, i64 1752, !7, i64 1760, !6, i64 1764, !7, i64 1768, !53, i64 1776, !53, i64 1816, !53, i64 1856, !53, i64 1896, !6, i64 1936, !16, i64 1944, !7, i64 1952, !53, i64 1960, !7, i64 2000, !7, i64 2001, !7, i64 2002, !12, i64 2003, !54, i64 2004, !54, i64 2008, !55, i64 2016, !19, i64 2208, !6, i64 2212, !19, i64 2216, !16, i64 2224, !7, i64 2232, !16, i64 2240, !16, i64 2248, !16, i64 2256, !54, i64 2264, !54, i64 2268, !7, i64 2272, !7, i64 2528, !6, i64 2784, !34, i64 2792, !6, i64 2816, !34, i64 2824, !34, i64 2848, !34, i64 2872, !57, i64 2896, !59, i64 3704, !10, i64 3760, !10, i64 3768, !7, i64 3776, !6, i64 3780, !34, i64 3784, !6, i64 3808, !61, i64 3816, !7, i64 3848, !53, i64 3992, !34, i64 4032, !34, i64 4056, !12, i64 4080, !12, i64 4081, !12, i64 4082, !19, i64 4084, !19, i64 4086, !6, i64 4088, !6, i64 4092, !34, i64 4096, !6, i64 4120, !62, i64 4128, !54, i64 4176, !7, i64 4180, !7, i64 4181}
!41 = !{!"s2n_timer", !16, i64 0}
!42 = !{!"s2n_secrets", !7, i64 0, !6, i64 388}
!43 = !{!"s2n_kex_parameters", !44, i64 0, !45, i64 8, !7, i64 24, !45, i64 56, !46, i64 72, !46, i64 184, !7, i64 296, !47, i64 360, !34, i64 448, !34, i64 472}
!44 = !{!"s2n_dh_params", !10, i64 0}
!45 = !{!"s2n_ecc_evp_params", !10, i64 0, !10, i64 8}
!46 = !{!"s2n_kem_group_params", !10, i64 0, !47, i64 8, !45, i64 96}
!47 = !{!"s2n_kem_params", !10, i64 0, !34, i64 8, !34, i64 32, !34, i64 56, !12, i64 80}
!48 = !{!"s2n_handshake_parameters", !49, i64 0, !49, i64 48, !34, i64 96, !6, i64 120, !50, 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}
!49 = !{!"s2n_pkey", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40}
!50 = !{!"s2n_sig_scheme_list", !7, i64 0, !7, i64 256}
!51 = !{!"s2n_psk_parameters", !6, i64 0, !52, i64 8, !19, i64 40, !19, i64 42, !10, i64 48, !6, i64 56}
!52 = !{!"s2n_array", !34, i64 0, !6, i64 24, !6, i64 28}
!53 = !{!"s2n_stuffer", !34, i64 0, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 36, !6, i64 36}
!54 = !{!"", !6, i64 0}
!55 = !{!"s2n_handshake", !53, 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, !56, i64 176, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 188}
!56 = !{!"s2n_offered_early_data", !10, i64 0}
!57 = !{!"s2n_client_hello", !34, i64 0, !58, i64 24, !34, i64 728, !34, i64 752, !34, 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}
!58 = !{!"", !7, i64 0, !34, i64 672, !19, i64 696}
!59 = !{!"s2n_x509_validator", !10, i64 0, !10, i64 8, !7, i64 16, !7, i64 17, !19, i64 18, !10, i64 24, !6, i64 32, !10, i64 40, !60, i64 48, !12, i64 52}
!60 = !{!"s2n_cert_validation_info", !6, i64 0, !6, i64 0}
!61 = !{!"s2n_ticket_fields", !34, i64 0, !6, i64 24}
!62 = !{!"s2n_post_handshake", !53, i64 0, !7, i64 40}
!63 = !{!32, !10, i64 328}
!64 = !{!40, !10, i64 1544}
!65 = !{!66, !10, i64 8}
!66 = !{!"s2n_cert_chain_and_key", !10, i64 0, !10, i64 8, !34, i64 16, !34, i64 40, !10, i64 64, !10, i64 72, !10, i64 80}
!67 = !{i64 0, i64 8, !9, i64 8, i64 8, !9, i64 16, i64 8, !9, i64 24, i64 8, !9, i64 32, i64 8, !9, i64 40, i64 8, !9}
!68 = !{!49, !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_kem_preferences = type { i8, ptr, i8, ptr, i8 }
%struct.s2n_signature_preferences = type { i8, ptr }
%struct.s2n_ecc_preferences = type { i8, ptr }
%struct.s2n_cipher_preferences = type { i16, ptr, i8 }
%struct.s2n_security_policy = type { i8, ptr, ptr, ptr, ptr, ptr, ptr, i8, [2 x i8] }
%struct.s2n_test_io_pair = type { i32, i32 }
%struct.s2n_hash_state = type { ptr, i32, i8, i64, %union.anon }
%union.anon = type { %struct.s2n_hash_evp_digest }
%struct.s2n_hash_evp_digest = type { %struct.s2n_evp_digest, %struct.s2n_evp_digest }
%struct.s2n_evp_digest = type { ptr, ptr }
%struct.s2n_blob = type { ptr, i32, i32, i8 }
%struct.s2n_pkey = type { ptr, ptr, ptr, ptr, ptr, ptr }

@s2n_use_color_in_output = external dso_local local_unnamed_addr global i8, align 1
@pkey_op = external dso_local local_unnamed_addr global ptr, align 8
@test_digest_data = external dso_local global [14 x i8], align 1
@test_encrypted_data = external dso_local global [17 x i8], align 16
@offload_callback_count = external dso_local local_unnamed_addr global i8, align 1
@test_count = external dso_local local_unnamed_addr global i32, align 4
@stderr = external local_unnamed_addr global ptr, align 8
@.str = external hidden unnamed_addr constant [101 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [78 x i8], align 1
@s2n_errno = external thread_local local_unnamed_addr global i32, align 4
@.str.3 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [70 x i8], align 1
@stdout = external local_unnamed_addr global ptr, align 8
@.str.62 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [200 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [155 x i8], align 1
@__const.main.test_cipher_suites = external hidden unnamed_addr constant [2 x ptr], align 16
@kem_preferences_null = external constant %struct.s2n_kem_preferences, align 8
@s2n_signature_preferences_20200207 = external constant %struct.s2n_signature_preferences, align 8
@s2n_ecc_preferences_20200310 = external constant %struct.s2n_ecc_preferences, align 8
@.str.75 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [108 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.81 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [158 x i8], align 1
@.str.85 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.86 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.88 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.89 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.91 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.92 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.93 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.94 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.95 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.96 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.97 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.98 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.99 = external hidden unnamed_addr constant [104 x i8], align 1
@.str.100 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.101 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.102 = external hidden unnamed_addr constant [119 x i8], align 1
@.str.103 = external hidden unnamed_addr constant [118 x i8], align 1
@.str.104 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.105 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.106 = external hidden unnamed_addr constant [107 x i8], align 1
@async_handler_sign_operation_called = external hidden local_unnamed_addr global i8, align 1
@.str.107 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.108 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.109 = external hidden unnamed_addr constant [115 x i8], align 1
@.str.110 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.111 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.112 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.113 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.114 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.115 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.116 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.117 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.118 = external hidden unnamed_addr constant [125 x i8], align 1
@.str.119 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.120 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.121 = external hidden unnamed_addr constant [119 x i8], align 1
@.str.122 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.123 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.124 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.125 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.126 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.127 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.128 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.129 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.130 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.131 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.132 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.133 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.134 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.135 = external hidden unnamed_addr constant [121 x i8], align 1
@.str.136 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.137 = external hidden unnamed_addr constant [95 x i8], align 1
@.str.138 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.139 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.140 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.141 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.142 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.143 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.144 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.145 = external hidden unnamed_addr constant [25 x i8], align 1

; Function Attrs: nounwind uwtable
declare dso_local i32 @async_pkey_apply_in_callback(ptr noundef, ptr noundef) #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 nofree nosync nounwind willreturn memory(none)
declare ptr @__errno_location() local_unnamed_addr #2

declare i32 @s2n_print_stacktrace(ptr noundef) local_unnamed_addr #3

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

; Function Attrs: nofree nounwind
declare noundef i32 @fileno(ptr nocapture noundef) local_unnamed_addr #5

; Function Attrs: nofree nounwind
declare noundef i32 @fprintf(ptr nocapture noundef, ptr nocapture noundef readonly, ...) local_unnamed_addr #5

declare ptr @s2n_strerror(i32 noundef, ptr noundef) local_unnamed_addr #3

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

declare ptr @s2n_strerror_debug(i32 noundef, ptr noundef) local_unnamed_addr #3

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

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

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

declare i32 @s2n_async_pkey_op_apply(ptr noundef, ptr noundef) local_unnamed_addr #3

declare i32 @s2n_async_pkey_op_free(ptr noundef) local_unnamed_addr #3

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

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

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

declare i32 @s2n_hash_new(ptr noundef) local_unnamed_addr #3

declare i32 @s2n_hash_init(ptr noundef, i32 noundef) local_unnamed_addr #3

declare i32 @s2n_hash_update(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #3

declare i32 @s2n_hash_free(ptr noundef) local_unnamed_addr #3

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

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

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

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

declare void @s2n_debug_info_reset() local_unnamed_addr #3

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

; Function Attrs: nounwind uwtable
define dso_local noundef i32 @main(i32 noundef %0, ptr nocapture noundef readnone %1) local_unnamed_addr #0 {
  %3 = alloca [12000 x i8], align 16
  %4 = alloca ptr, align 8
  %5 = alloca ptr, align 8
  %6 = alloca [2 x ptr], align 16
  %7 = alloca %struct.s2n_cipher_preferences, align 8
  %8 = alloca %struct.s2n_security_policy, align 8
  %9 = alloca %struct.s2n_test_io_pair, align 4
  %10 = alloca %struct.s2n_test_io_pair, align 4
  %11 = alloca %struct.s2n_test_io_pair, align 4
  %12 = alloca %struct.s2n_test_io_pair, align 4
  %13 = alloca ptr, align 8
  %14 = alloca ptr, align 8
  %15 = alloca ptr, align 8
  %16 = alloca ptr, align 8
  %17 = alloca %struct.s2n_test_io_pair, align 8
  %18 = alloca %struct.s2n_hash_state, align 8
  %19 = alloca %struct.s2n_blob, align 8
  %20 = alloca %struct.s2n_blob, align 8
  %21 = alloca ptr, align 8
  %22 = alloca ptr, align 8
  %23 = alloca ptr, align 8
  %24 = alloca %struct.s2n_test_io_pair, align 8
  %25 = alloca %struct.s2n_pkey, align 8
  %26 = alloca i32, align 4
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %27 = load ptr, ptr @stdout, align 8, !tbaa !9
  %28 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %27, ptr noundef nonnull @.str.62, ptr noundef nonnull @.str.2) #11
  %29 = load ptr, ptr @stdout, align 8, !tbaa !9
  %30 = tail call i32 @fflush(ptr noundef %29)
  %31 = tail call i32 @s2n_in_unit_test_set(i1 noundef zeroext true) #11
  %32 = icmp eq i32 %31, -1
  %.0736.sroa.gep2438 = getelementptr inbounds i8, ptr %6, i64 8
  br i1 %32, label %33, label %57

33:                                               ; preds = %2
  %34 = tail call ptr @__errno_location() #12
  %35 = load i32, ptr %34, align 4, !tbaa !5
  %36 = load ptr, ptr @stderr, align 8, !tbaa !9
  %37 = tail call i32 @s2n_print_stacktrace(ptr noundef %36) #11
  %38 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %39 = trunc nuw i8 %38 to i1
  br i1 %39, label %40, label %44

40:                                               ; preds = %33
  %41 = load ptr, ptr @stderr, align 8, !tbaa !9
  %42 = tail call i32 @fileno(ptr noundef %41) #11
  %43 = tail call i32 @isatty(i32 noundef %42) #11
  %.not646 = icmp eq i32 %43, 0
  br i1 %.not646, label %44, label %45

44:                                               ; preds = %40, %33
  br label %45

45:                                               ; preds = %40, %44
  %.str.4.sink = phi ptr [ @.str.4, %44 ], [ @.str, %40 ]
  store i32 %35, ptr %34, align 4, !tbaa !5
  %46 = load ptr, ptr @stderr, align 8, !tbaa !9
  %47 = load i32, ptr @test_count, align 4, !tbaa !5
  %48 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %49 = load i32, ptr %48, align 4, !tbaa !5
  %50 = tail call ptr @s2n_strerror(i32 noundef %49, ptr noundef nonnull @.str.3) #11
  %51 = load i32, ptr %48, align 4, !tbaa !5
  %52 = tail call ptr @s2n_strerror_debug(i32 noundef %51, ptr noundef nonnull @.str.3) #11
  %53 = load i32, ptr %34, align 4, !tbaa !5
  %54 = tail call ptr @strerror(i32 noundef %53) #11
  %55 = load i32, ptr %34, align 4, !tbaa !5
  %56 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %46, ptr noundef nonnull %.str.4.sink, i32 noundef %47, ptr noundef nonnull @.str.63, ptr noundef nonnull @.str.2, i32 noundef 366, ptr noundef %50, ptr noundef %52, ptr noundef %54, i32 noundef %55) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

57:                                               ; preds = %2
  %58 = load i32, ptr @test_count, align 4, !tbaa !5
  %59 = add nsw i32 %58, 1
  store i32 %59, ptr @test_count, align 4, !tbaa !5
  %60 = tail call i32 @s2n_enable_atexit() #11
  %61 = icmp eq i32 %60, -1
  br i1 %61, label %62, label %86

62:                                               ; preds = %57
  %63 = tail call ptr @__errno_location() #12
  %64 = load i32, ptr %63, align 4, !tbaa !5
  %65 = load ptr, ptr @stderr, align 8, !tbaa !9
  %66 = tail call i32 @s2n_print_stacktrace(ptr noundef %65) #11
  %67 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %68 = trunc nuw i8 %67 to i1
  br i1 %68, label %69, label %73

69:                                               ; preds = %62
  %70 = load ptr, ptr @stderr, align 8, !tbaa !9
  %71 = tail call i32 @fileno(ptr noundef %70) #11
  %72 = tail call i32 @isatty(i32 noundef %71) #11
  %.not645 = icmp eq i32 %72, 0
  br i1 %.not645, label %73, label %74

73:                                               ; preds = %69, %62
  br label %74

74:                                               ; preds = %69, %73
  %.str.4.sink835 = phi ptr [ @.str.4, %73 ], [ @.str, %69 ]
  store i32 %64, ptr %63, align 4, !tbaa !5
  %75 = load ptr, ptr @stderr, align 8, !tbaa !9
  %76 = load i32, ptr @test_count, align 4, !tbaa !5
  %77 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %78 = load i32, ptr %77, align 4, !tbaa !5
  %79 = tail call ptr @s2n_strerror(i32 noundef %78, ptr noundef nonnull @.str.3) #11
  %80 = load i32, ptr %77, align 4, !tbaa !5
  %81 = tail call ptr @s2n_strerror_debug(i32 noundef %80, ptr noundef nonnull @.str.3) #11
  %82 = load i32, ptr %63, align 4, !tbaa !5
  %83 = tail call ptr @strerror(i32 noundef %82) #11
  %84 = load i32, ptr %63, align 4, !tbaa !5
  %85 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %75, ptr noundef nonnull %.str.4.sink835, i32 noundef %76, ptr noundef nonnull @.str.64, ptr noundef nonnull @.str.2, i32 noundef 366, ptr noundef %79, ptr noundef %81, ptr noundef %83, i32 noundef %84) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

86:                                               ; preds = %57
  %87 = tail call i32 @s2n_init() #11
  %88 = icmp eq i32 %87, -1
  br i1 %88, label %89, label %113

89:                                               ; preds = %86
  %90 = tail call ptr @__errno_location() #12
  %91 = load i32, ptr %90, align 4, !tbaa !5
  %92 = load ptr, ptr @stderr, align 8, !tbaa !9
  %93 = tail call i32 @s2n_print_stacktrace(ptr noundef %92) #11
  %94 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %95 = trunc nuw i8 %94 to i1
  br i1 %95, label %96, label %100

96:                                               ; preds = %89
  %97 = load ptr, ptr @stderr, align 8, !tbaa !9
  %98 = tail call i32 @fileno(ptr noundef %97) #11
  %99 = tail call i32 @isatty(i32 noundef %98) #11
  %.not644 = icmp eq i32 %99, 0
  br i1 %.not644, label %100, label %101

100:                                              ; preds = %96, %89
  br label %101

101:                                              ; preds = %96, %100
  %.str.4.sink846 = phi ptr [ @.str.4, %100 ], [ @.str, %96 ]
  store i32 %91, ptr %90, align 4, !tbaa !5
  %102 = load ptr, ptr @stderr, align 8, !tbaa !9
  %103 = load i32, ptr @test_count, align 4, !tbaa !5
  %104 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %105 = load i32, ptr %104, align 4, !tbaa !5
  %106 = tail call ptr @s2n_strerror(i32 noundef %105, ptr noundef nonnull @.str.3) #11
  %107 = load i32, ptr %104, align 4, !tbaa !5
  %108 = tail call ptr @s2n_strerror_debug(i32 noundef %107, ptr noundef nonnull @.str.3) #11
  %109 = load i32, ptr %90, align 4, !tbaa !5
  %110 = tail call ptr @strerror(i32 noundef %109) #11
  %111 = load i32, ptr %90, align 4, !tbaa !5
  %112 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %102, ptr noundef nonnull %.str.4.sink846, i32 noundef %103, ptr noundef nonnull @.str.65, ptr noundef nonnull @.str.2, i32 noundef 366, ptr noundef %106, ptr noundef %108, ptr noundef %110, i32 noundef %111) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

113:                                              ; preds = %86
  %114 = load i32, ptr @test_count, align 4, !tbaa !5
  %115 = add nsw i32 %114, 1
  store i32 %115, ptr @test_count, align 4, !tbaa !5
  %116 = tail call i32 (...) @s2n_disable_tls13_in_test() #11
  %117 = icmp eq i32 %116, -1
  br i1 %117, label %118, label %142

118:                                              ; preds = %113
  %119 = tail call ptr @__errno_location() #12
  %120 = load i32, ptr %119, align 4, !tbaa !5
  %121 = load ptr, ptr @stderr, align 8, !tbaa !9
  %122 = tail call i32 @s2n_print_stacktrace(ptr noundef %121) #11
  %123 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %124 = trunc nuw i8 %123 to i1
  br i1 %124, label %125, label %129

125:                                              ; preds = %118
  %126 = load ptr, ptr @stderr, align 8, !tbaa !9
  %127 = tail call i32 @fileno(ptr noundef %126) #11
  %128 = tail call i32 @isatty(i32 noundef %127) #11
  %.not643 = icmp eq i32 %128, 0
  br i1 %.not643, label %129, label %130

129:                                              ; preds = %125, %118
  br label %130

130:                                              ; preds = %125, %129
  %.str.4.sink857 = phi ptr [ @.str.4, %129 ], [ @.str, %125 ]
  store i32 %120, ptr %119, align 4, !tbaa !5
  %131 = load ptr, ptr @stderr, align 8, !tbaa !9
  %132 = load i32, ptr @test_count, align 4, !tbaa !5
  %133 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %134 = load i32, ptr %133, align 4, !tbaa !5
  %135 = tail call ptr @s2n_strerror(i32 noundef %134, ptr noundef nonnull @.str.3) #11
  %136 = load i32, ptr %133, align 4, !tbaa !5
  %137 = tail call ptr @s2n_strerror_debug(i32 noundef %136, ptr noundef nonnull @.str.3) #11
  %138 = load i32, ptr %119, align 4, !tbaa !5
  %139 = tail call ptr @strerror(i32 noundef %138) #11
  %140 = load i32, ptr %119, align 4, !tbaa !5
  %141 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %131, ptr noundef nonnull %.str.4.sink857, i32 noundef %132, ptr noundef nonnull @.str.66, ptr noundef nonnull @.str.2, i32 noundef 367, ptr noundef %135, ptr noundef %137, ptr noundef %139, i32 noundef %140) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

142:                                              ; preds = %113
  call void @llvm.lifetime.start.p0(i64 12000, ptr nonnull %3) #11
  %143 = load i32, ptr @test_count, align 4, !tbaa !5
  %144 = add nsw i32 %143, 1
  store i32 %144, ptr @test_count, align 4, !tbaa !5
  %145 = call i32 @s2n_read_test_pem(ptr noundef nonnull @.str.67, ptr noundef nonnull %3, i64 noundef 12000) #11
  %146 = icmp eq i32 %145, -1
  br i1 %146, label %147, label %171

147:                                              ; preds = %142
  %148 = tail call ptr @__errno_location() #12
  %149 = load i32, ptr %148, align 4, !tbaa !5
  %150 = load ptr, ptr @stderr, align 8, !tbaa !9
  %151 = call i32 @s2n_print_stacktrace(ptr noundef %150) #11
  %152 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %153 = trunc nuw i8 %152 to i1
  br i1 %153, label %154, label %158

154:                                              ; preds = %147
  %155 = load ptr, ptr @stderr, align 8, !tbaa !9
  %156 = call i32 @fileno(ptr noundef %155) #11
  %157 = call i32 @isatty(i32 noundef %156) #11
  %.not642 = icmp eq i32 %157, 0
  br i1 %.not642, label %158, label %159

158:                                              ; preds = %154, %147
  br label %159

159:                                              ; preds = %154, %158
  %.str.4.sink868 = phi ptr [ @.str.4, %158 ], [ @.str, %154 ]
  store i32 %149, ptr %148, align 4, !tbaa !5
  %160 = load ptr, ptr @stderr, align 8, !tbaa !9
  %161 = load i32, ptr @test_count, align 4, !tbaa !5
  %162 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %163 = load i32, ptr %162, align 4, !tbaa !5
  %164 = call ptr @s2n_strerror(i32 noundef %163, ptr noundef nonnull @.str.3) #11
  %165 = load i32, ptr %162, align 4, !tbaa !5
  %166 = call ptr @s2n_strerror_debug(i32 noundef %165, ptr noundef nonnull @.str.3) #11
  %167 = load i32, ptr %148, align 4, !tbaa !5
  %168 = call ptr @strerror(i32 noundef %167) #11
  %169 = load i32, ptr %148, align 4, !tbaa !5
  %170 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %160, ptr noundef nonnull %.str.4.sink868, i32 noundef %161, ptr noundef nonnull @.str.68, ptr noundef nonnull @.str.2, i32 noundef 370, ptr noundef %164, ptr noundef %166, ptr noundef %168, i32 noundef %169) #13
  call void @exit(i32 noundef 1) #14
  unreachable

171:                                              ; preds = %142
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %4) #11
  store ptr null, ptr %4, align 8, !tbaa !9
  %172 = load i32, ptr @test_count, align 4, !tbaa !5
  %173 = add nsw i32 %172, 1
  store i32 %173, ptr @test_count, align 4, !tbaa !5
  %174 = call i32 @s2n_test_cert_chain_and_key_new(ptr noundef nonnull %4, ptr noundef nonnull @.str.69, ptr noundef nonnull @.str.70) #11
  %175 = icmp eq i32 %174, -1
  br i1 %175, label %176, label %200

176:                                              ; preds = %171
  %177 = tail call ptr @__errno_location() #12
  %178 = load i32, ptr %177, align 4, !tbaa !5
  %179 = load ptr, ptr @stderr, align 8, !tbaa !9
  %180 = call i32 @s2n_print_stacktrace(ptr noundef %179) #11
  %181 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %182 = trunc nuw i8 %181 to i1
  br i1 %182, label %183, label %187

183:                                              ; preds = %176
  %184 = load ptr, ptr @stderr, align 8, !tbaa !9
  %185 = call i32 @fileno(ptr noundef %184) #11
  %186 = call i32 @isatty(i32 noundef %185) #11
  %.not641 = icmp eq i32 %186, 0
  br i1 %.not641, label %187, label %188

187:                                              ; preds = %183, %176
  br label %188

188:                                              ; preds = %183, %187
  %.str.4.sink879 = phi ptr [ @.str.4, %187 ], [ @.str, %183 ]
  store i32 %178, ptr %177, align 4, !tbaa !5
  %189 = load ptr, ptr @stderr, align 8, !tbaa !9
  %190 = load i32, ptr @test_count, align 4, !tbaa !5
  %191 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %192 = load i32, ptr %191, align 4, !tbaa !5
  %193 = call ptr @s2n_strerror(i32 noundef %192, ptr noundef nonnull @.str.3) #11
  %194 = load i32, ptr %191, align 4, !tbaa !5
  %195 = call ptr @s2n_strerror_debug(i32 noundef %194, ptr noundef nonnull @.str.3) #11
  %196 = load i32, ptr %177, align 4, !tbaa !5
  %197 = call ptr @strerror(i32 noundef %196) #11
  %198 = load i32, ptr %177, align 4, !tbaa !5
  %199 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %189, ptr noundef nonnull %.str.4.sink879, i32 noundef %190, ptr noundef nonnull @.str.71, ptr noundef nonnull @.str.2, i32 noundef 374, ptr noundef %193, ptr noundef %195, ptr noundef %197, i32 noundef %198) #13
  call void @exit(i32 noundef 1) #14
  unreachable

200:                                              ; preds = %171
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5) #11
  store ptr null, ptr %5, align 8, !tbaa !9
  %201 = load i32, ptr @test_count, align 4, !tbaa !5
  %202 = add nsw i32 %201, 1
  store i32 %202, ptr @test_count, align 4, !tbaa !5
  %203 = call i32 @s2n_test_cert_chain_and_key_new(ptr noundef nonnull %5, ptr noundef nonnull @.str.72, ptr noundef nonnull @.str.73) #11
  %204 = icmp eq i32 %203, -1
  br i1 %204, label %205, label %229

205:                                              ; preds = %200
  %206 = tail call ptr @__errno_location() #12
  %207 = load i32, ptr %206, align 4, !tbaa !5
  %208 = load ptr, ptr @stderr, align 8, !tbaa !9
  %209 = call i32 @s2n_print_stacktrace(ptr noundef %208) #11
  %210 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %211 = trunc nuw i8 %210 to i1
  br i1 %211, label %212, label %216

212:                                              ; preds = %205
  %213 = load ptr, ptr @stderr, align 8, !tbaa !9
  %214 = call i32 @fileno(ptr noundef %213) #11
  %215 = call i32 @isatty(i32 noundef %214) #11
  %.not640 = icmp eq i32 %215, 0
  br i1 %.not640, label %216, label %217

216:                                              ; preds = %212, %205
  br label %217

217:                                              ; preds = %212, %216
  %.str.4.sink890 = phi ptr [ @.str.4, %216 ], [ @.str, %212 ]
  store i32 %207, ptr %206, align 4, !tbaa !5
  %218 = load ptr, ptr @stderr, align 8, !tbaa !9
  %219 = load i32, ptr @test_count, align 4, !tbaa !5
  %220 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %221 = load i32, ptr %220, align 4, !tbaa !5
  %222 = call ptr @s2n_strerror(i32 noundef %221, ptr noundef nonnull @.str.3) #11
  %223 = load i32, ptr %220, align 4, !tbaa !5
  %224 = call ptr @s2n_strerror_debug(i32 noundef %223, ptr noundef nonnull @.str.3) #11
  %225 = load i32, ptr %206, align 4, !tbaa !5
  %226 = call ptr @strerror(i32 noundef %225) #11
  %227 = load i32, ptr %206, align 4, !tbaa !5
  %228 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %218, ptr noundef nonnull %.str.4.sink890, i32 noundef %219, ptr noundef nonnull @.str.74, ptr noundef nonnull @.str.2, i32 noundef 378, ptr noundef %222, ptr noundef %224, ptr noundef %226, i32 noundef %227) #13
  call void @exit(i32 noundef 1) #14
  unreachable

229:                                              ; preds = %200
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %6) #11
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(16) %6, ptr noundef nonnull align 16 dereferenceable(16) @__const.main.test_cipher_suites, i64 16, i1 false)
  %230 = getelementptr inbounds i8, ptr %7, i64 8
  %231 = getelementptr inbounds i8, ptr %7, i64 16
  %232 = getelementptr inbounds i8, ptr %8, i64 8
  %233 = getelementptr inbounds i8, ptr %8, i64 16
  %234 = getelementptr inbounds i8, ptr %8, i64 24
  %235 = getelementptr inbounds i8, ptr %8, i64 32
  %236 = getelementptr inbounds i8, ptr %8, i64 40
  %237 = getelementptr inbounds i8, ptr %8, i64 48
  %238 = getelementptr inbounds i8, ptr %8, i64 56
  %239 = getelementptr inbounds i8, ptr %8, i64 57
  %240 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  br label %246

241:                                              ; preds = %3153
  %242 = load i32, ptr @test_count, align 4, !tbaa !5
  %243 = add nsw i32 %242, 1
  store i32 %243, ptr @test_count, align 4, !tbaa !5
  %244 = load i8, ptr @async_handler_sign_operation_called, align 1, !tbaa !11, !range !13, !noundef !14
  %245 = trunc nuw i8 %244 to i1
  br i1 %245, label %3181, label %3159

246:                                              ; preds = %229, %3153
  %247 = phi i1 [ true, %229 ], [ false, %3153 ]
  %.0736.sroa.phi = phi ptr [ %6, %229 ], [ %.0736.sroa.gep2438, %3153 ]
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %7) #11
  store i16 1, ptr %7, align 8, !tbaa !15
  store ptr %.0736.sroa.phi, ptr %230, align 8, !tbaa !18
  store i8 0, ptr %231, align 8, !tbaa !19
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %8) #11
  store i8 33, ptr %8, align 8, !tbaa !20
  store ptr %7, ptr %232, align 8, !tbaa !22
  store ptr @kem_preferences_null, ptr %233, align 8, !tbaa !23
  store ptr @s2n_signature_preferences_20200207, ptr %234, align 8, !tbaa !24
  store ptr null, ptr %235, align 8, !tbaa !25
  store ptr @s2n_ecc_preferences_20200310, ptr %236, align 8, !tbaa !26
  store ptr null, ptr %237, align 8, !tbaa !27
  store i8 0, ptr %238, align 8, !tbaa !28
  store i16 0, ptr %239, align 1
  %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 %.0736.sroa.phi, align 8, !tbaa !9
  %251 = load i8, ptr %250, align 8
  %252 = and i8 %251, 1
  %.not534 = icmp eq i8 %252, 0
  br i1 %.not534, label %253, label %276

253:                                              ; preds = %246
  %254 = tail call ptr @__errno_location() #12
  %255 = load i32, ptr %254, align 4, !tbaa !5
  %256 = load ptr, ptr @stderr, align 8, !tbaa !9
  %257 = call i32 @s2n_print_stacktrace(ptr noundef %256) #11
  %258 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %259 = trunc nuw i8 %258 to i1
  br i1 %259, label %260, label %264

260:                                              ; preds = %253
  %261 = load ptr, ptr @stderr, align 8, !tbaa !9
  %262 = call i32 @fileno(ptr noundef %261) #11
  %263 = call i32 @isatty(i32 noundef %262) #11
  %.not535 = icmp eq i32 %263, 0
  br i1 %.not535, label %264, label %265

264:                                              ; preds = %260, %253
  br label %265

265:                                              ; preds = %260, %264
  %.str.4.sink901 = phi ptr [ @.str.4, %264 ], [ @.str, %260 ]
  store i32 %255, ptr %254, align 4, !tbaa !5
  %266 = load ptr, ptr @stderr, align 8, !tbaa !9
  %267 = load i32, ptr @test_count, align 4, !tbaa !5
  %268 = load i32, ptr %240, align 4, !tbaa !5
  %269 = call ptr @s2n_strerror(i32 noundef %268, ptr noundef nonnull @.str.3) #11
  %270 = load i32, ptr %240, align 4, !tbaa !5
  %271 = call ptr @s2n_strerror_debug(i32 noundef %270, ptr noundef nonnull @.str.3) #11
  %272 = load i32, ptr %254, align 4, !tbaa !5
  %273 = call ptr @strerror(i32 noundef %272) #11
  %274 = load i32, ptr %254, align 4, !tbaa !5
  %275 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %266, ptr noundef nonnull %.str.4.sink901, i32 noundef %267, ptr noundef nonnull @.str.75, ptr noundef nonnull @.str.2, i32 noundef 400, ptr noundef %269, ptr noundef %271, ptr noundef %273, i32 noundef %274) #13
  call void @exit(i32 noundef 1) #14
  unreachable

276:                                              ; preds = %246
  %277 = add nsw i32 %248, 2
  store i32 %277, ptr @test_count, align 4, !tbaa !5
  %278 = call ptr @s2n_config_new() #11
  %279 = icmp eq ptr %278, null
  br i1 %279, label %280, label %303

280:                                              ; preds = %276
  %281 = tail call ptr @__errno_location() #12
  %282 = load i32, ptr %281, align 4, !tbaa !5
  %283 = load ptr, ptr @stderr, align 8, !tbaa !9
  %284 = call i32 @s2n_print_stacktrace(ptr noundef %283) #11
  %285 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %286 = trunc nuw i8 %285 to i1
  br i1 %286, label %287, label %291

287:                                              ; preds = %280
  %288 = load ptr, ptr @stderr, align 8, !tbaa !9
  %289 = call i32 @fileno(ptr noundef %288) #11
  %290 = call i32 @isatty(i32 noundef %289) #11
  %.not639 = icmp eq i32 %290, 0
  br i1 %.not639, label %291, label %292

291:                                              ; preds = %287, %280
  br label %292

292:                                              ; preds = %287, %291
  %.str.4.sink910 = phi ptr [ @.str.4, %291 ], [ @.str, %287 ]
  store i32 %282, ptr %281, align 4, !tbaa !5
  %293 = load ptr, ptr @stderr, align 8, !tbaa !9
  %294 = load i32, ptr @test_count, align 4, !tbaa !5
  %295 = load i32, ptr %240, align 4, !tbaa !5
  %296 = call ptr @s2n_strerror(i32 noundef %295, ptr noundef nonnull @.str.3) #11
  %297 = load i32, ptr %240, align 4, !tbaa !5
  %298 = call ptr @s2n_strerror_debug(i32 noundef %297, ptr noundef nonnull @.str.3) #11
  %299 = load i32, ptr %281, align 4, !tbaa !5
  %300 = call ptr @strerror(i32 noundef %299) #11
  %301 = load i32, ptr %281, align 4, !tbaa !5
  %302 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %293, ptr noundef nonnull %.str.4.sink910, i32 noundef %294, ptr noundef nonnull @.str.76, ptr noundef nonnull @.str.2, i32 noundef 407, ptr noundef %296, ptr noundef %298, ptr noundef %300, i32 noundef %301) #13
  call void @exit(i32 noundef 1) #14
  unreachable

303:                                              ; preds = %276
  %304 = load i32, ptr @test_count, align 4, !tbaa !5
  %305 = add nsw i32 %304, 1
  store i32 %305, ptr @test_count, align 4, !tbaa !5
  %306 = load ptr, ptr %4, align 8, !tbaa !9
  %307 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef nonnull %278, ptr noundef %306) #11
  %308 = icmp eq i32 %307, -1
  br i1 %308, label %309, label %332

309:                                              ; preds = %303
  %310 = tail call ptr @__errno_location() #12
  %311 = load i32, ptr %310, align 4, !tbaa !5
  %312 = load ptr, ptr @stderr, align 8, !tbaa !9
  %313 = call i32 @s2n_print_stacktrace(ptr noundef %312) #11
  %314 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %315 = trunc nuw i8 %314 to i1
  br i1 %315, label %316, label %320

316:                                              ; preds = %309
  %317 = load ptr, ptr @stderr, align 8, !tbaa !9
  %318 = call i32 @fileno(ptr noundef %317) #11
  %319 = call i32 @isatty(i32 noundef %318) #11
  %.not638 = icmp eq i32 %319, 0
  br i1 %.not638, label %320, label %321

320:                                              ; preds = %316, %309
  br label %321

321:                                              ; preds = %316, %320
  %.str.4.sink919 = phi ptr [ @.str.4, %320 ], [ @.str, %316 ]
  store i32 %311, ptr %310, align 4, !tbaa !5
  %322 = load ptr, ptr @stderr, align 8, !tbaa !9
  %323 = load i32, ptr @test_count, align 4, !tbaa !5
  %324 = load i32, ptr %240, align 4, !tbaa !5
  %325 = call ptr @s2n_strerror(i32 noundef %324, ptr noundef nonnull @.str.3) #11
  %326 = load i32, ptr %240, align 4, !tbaa !5
  %327 = call ptr @s2n_strerror_debug(i32 noundef %326, ptr noundef nonnull @.str.3) #11
  %328 = load i32, ptr %310, align 4, !tbaa !5
  %329 = call ptr @strerror(i32 noundef %328) #11
  %330 = load i32, ptr %310, align 4, !tbaa !5
  %331 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %322, ptr noundef nonnull %.str.4.sink919, i32 noundef %323, ptr noundef nonnull @.str.77, ptr noundef nonnull @.str.2, i32 noundef 408, ptr noundef %325, ptr noundef %327, ptr noundef %329, i32 noundef %330) #13
  call void @exit(i32 noundef 1) #14
  unreachable

332:                                              ; preds = %303
  %333 = load i32, ptr @test_count, align 4, !tbaa !5
  %334 = add nsw i32 %333, 1
  store i32 %334, ptr @test_count, align 4, !tbaa !5
  %335 = call i32 @s2n_config_add_dhparams(ptr noundef nonnull %278, ptr noundef nonnull %3) #11
  %336 = icmp eq i32 %335, -1
  br i1 %336, label %337, label %360

337:                                              ; preds = %332
  %338 = tail call ptr @__errno_location() #12
  %339 = load i32, ptr %338, align 4, !tbaa !5
  %340 = load ptr, ptr @stderr, align 8, !tbaa !9
  %341 = call i32 @s2n_print_stacktrace(ptr noundef %340) #11
  %342 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %343 = trunc nuw i8 %342 to i1
  br i1 %343, label %344, label %348

344:                                              ; preds = %337
  %345 = load ptr, ptr @stderr, align 8, !tbaa !9
  %346 = call i32 @fileno(ptr noundef %345) #11
  %347 = call i32 @isatty(i32 noundef %346) #11
  %.not637 = icmp eq i32 %347, 0
  br i1 %.not637, label %348, label %349

348:                                              ; preds = %344, %337
  br label %349

349:                                              ; preds = %344, %348
  %.str.4.sink928 = phi ptr [ @.str.4, %348 ], [ @.str, %344 ]
  store i32 %339, ptr %338, align 4, !tbaa !5
  %350 = load ptr, ptr @stderr, align 8, !tbaa !9
  %351 = load i32, ptr @test_count, align 4, !tbaa !5
  %352 = load i32, ptr %240, align 4, !tbaa !5
  %353 = call ptr @s2n_strerror(i32 noundef %352, ptr noundef nonnull @.str.3) #11
  %354 = load i32, ptr %240, align 4, !tbaa !5
  %355 = call ptr @s2n_strerror_debug(i32 noundef %354, ptr noundef nonnull @.str.3) #11
  %356 = load i32, ptr %338, align 4, !tbaa !5
  %357 = call ptr @strerror(i32 noundef %356) #11
  %358 = load i32, ptr %338, align 4, !tbaa !5
  %359 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %350, ptr noundef nonnull %.str.4.sink928, i32 noundef %351, ptr noundef nonnull @.str.78, ptr noundef nonnull @.str.2, i32 noundef 409, ptr noundef %353, ptr noundef %355, ptr noundef %357, i32 noundef %358) #13
  call void @exit(i32 noundef 1) #14
  unreachable

360:                                              ; preds = %332
  %361 = load i32, ptr @test_count, align 4, !tbaa !5
  %362 = add nsw i32 %361, 1
  store i32 %362, ptr @test_count, align 4, !tbaa !5
  %363 = call i32 @s2n_config_set_async_pkey_callback(ptr noundef nonnull %278, ptr noundef nonnull @async_pkey_apply_in_callback) #11
  %364 = icmp eq i32 %363, -1
  br i1 %364, label %365, label %388

365:                                              ; preds = %360
  %366 = tail call ptr @__errno_location() #12
  %367 = load i32, ptr %366, align 4, !tbaa !5
  %368 = load ptr, ptr @stderr, align 8, !tbaa !9
  %369 = call i32 @s2n_print_stacktrace(ptr noundef %368) #11
  %370 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %371 = trunc nuw i8 %370 to i1
  br i1 %371, label %372, label %376

372:                                              ; preds = %365
  %373 = load ptr, ptr @stderr, align 8, !tbaa !9
  %374 = call i32 @fileno(ptr noundef %373) #11
  %375 = call i32 @isatty(i32 noundef %374) #11
  %.not636 = icmp eq i32 %375, 0
  br i1 %.not636, label %376, label %377

376:                                              ; preds = %372, %365
  br label %377

377:                                              ; preds = %372, %376
  %.str.4.sink937 = phi ptr [ @.str.4, %376 ], [ @.str, %372 ]
  store i32 %367, ptr %366, align 4, !tbaa !5
  %378 = load ptr, ptr @stderr, align 8, !tbaa !9
  %379 = load i32, ptr @test_count, align 4, !tbaa !5
  %380 = load i32, ptr %240, align 4, !tbaa !5
  %381 = call ptr @s2n_strerror(i32 noundef %380, ptr noundef nonnull @.str.3) #11
  %382 = load i32, ptr %240, align 4, !tbaa !5
  %383 = call ptr @s2n_strerror_debug(i32 noundef %382, ptr noundef nonnull @.str.3) #11
  %384 = load i32, ptr %366, align 4, !tbaa !5
  %385 = call ptr @strerror(i32 noundef %384) #11
  %386 = load i32, ptr %366, align 4, !tbaa !5
  %387 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %378, ptr noundef nonnull %.str.4.sink937, i32 noundef %379, ptr noundef nonnull @.str.79, ptr noundef nonnull @.str.2, i32 noundef 410, ptr noundef %381, ptr noundef %383, ptr noundef %385, i32 noundef %386) #13
  call void @exit(i32 noundef 1) #14
  unreachable

388:                                              ; preds = %360
  %389 = getelementptr inbounds i8, ptr %278, i64 96
  store ptr %8, ptr %389, align 8, !tbaa !29
  %390 = load i32, ptr @test_count, align 4, !tbaa !5
  %391 = add nsw i32 %390, 1
  store i32 %391, ptr @test_count, align 4, !tbaa !5
  %392 = call ptr @s2n_config_new() #11
  %393 = icmp eq ptr %392, null
  br i1 %393, label %394, label %417

394:                                              ; preds = %388
  %395 = tail call ptr @__errno_location() #12
  %396 = load i32, ptr %395, align 4, !tbaa !5
  %397 = load ptr, ptr @stderr, align 8, !tbaa !9
  %398 = call i32 @s2n_print_stacktrace(ptr noundef %397) #11
  %399 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %400 = trunc nuw i8 %399 to i1
  br i1 %400, label %401, label %405

401:                                              ; preds = %394
  %402 = load ptr, ptr @stderr, align 8, !tbaa !9
  %403 = call i32 @fileno(ptr noundef %402) #11
  %404 = call i32 @isatty(i32 noundef %403) #11
  %.not635 = icmp eq i32 %404, 0
  br i1 %.not635, label %405, label %406

405:                                              ; preds = %401, %394
  br label %406

406:                                              ; preds = %401, %405
  %.str.4.sink946 = phi ptr [ @.str.4, %405 ], [ @.str, %401 ]
  store i32 %396, ptr %395, align 4, !tbaa !5
  %407 = load ptr, ptr @stderr, align 8, !tbaa !9
  %408 = load i32, ptr @test_count, align 4, !tbaa !5
  %409 = load i32, ptr %240, align 4, !tbaa !5
  %410 = call ptr @s2n_strerror(i32 noundef %409, ptr noundef nonnull @.str.3) #11
  %411 = load i32, ptr %240, align 4, !tbaa !5
  %412 = call ptr @s2n_strerror_debug(i32 noundef %411, ptr noundef nonnull @.str.3) #11
  %413 = load i32, ptr %395, align 4, !tbaa !5
  %414 = call ptr @strerror(i32 noundef %413) #11
  %415 = load i32, ptr %395, align 4, !tbaa !5
  %416 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %407, ptr noundef nonnull %.str.4.sink946, i32 noundef %408, ptr noundef nonnull @.str.80, ptr noundef nonnull @.str.2, i32 noundef 413, ptr noundef %410, ptr noundef %412, ptr noundef %414, i32 noundef %415) #13
  call void @exit(i32 noundef 1) #14
  unreachable

417:                                              ; preds = %388
  %418 = load i32, ptr @test_count, align 4, !tbaa !5
  %419 = add nsw i32 %418, 1
  store i32 %419, ptr @test_count, align 4, !tbaa !5
  %420 = call i32 @s2n_config_set_unsafe_for_testing(ptr noundef nonnull %392) #11
  %421 = icmp eq i32 %420, -1
  br i1 %421, label %422, label %445

422:                                              ; preds = %417
  %423 = tail call ptr @__errno_location() #12
  %424 = load i32, ptr %423, align 4, !tbaa !5
  %425 = load ptr, ptr @stderr, align 8, !tbaa !9
  %426 = call i32 @s2n_print_stacktrace(ptr noundef %425) #11
  %427 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %428 = trunc nuw i8 %427 to i1
  br i1 %428, label %429, label %433

429:                                              ; preds = %422
  %430 = load ptr, ptr @stderr, align 8, !tbaa !9
  %431 = call i32 @fileno(ptr noundef %430) #11
  %432 = call i32 @isatty(i32 noundef %431) #11
  %.not634 = icmp eq i32 %432, 0
  br i1 %.not634, label %433, label %434

433:                                              ; preds = %429, %422
  br label %434

434:                                              ; preds = %429, %433
  %.str.4.sink955 = phi ptr [ @.str.4, %433 ], [ @.str, %429 ]
  store i32 %424, ptr %423, align 4, !tbaa !5
  %435 = load ptr, ptr @stderr, align 8, !tbaa !9
  %436 = load i32, ptr @test_count, align 4, !tbaa !5
  %437 = load i32, ptr %240, align 4, !tbaa !5
  %438 = call ptr @s2n_strerror(i32 noundef %437, ptr noundef nonnull @.str.3) #11
  %439 = load i32, ptr %240, align 4, !tbaa !5
  %440 = call ptr @s2n_strerror_debug(i32 noundef %439, ptr noundef nonnull @.str.3) #11
  %441 = load i32, ptr %423, align 4, !tbaa !5
  %442 = call ptr @strerror(i32 noundef %441) #11
  %443 = load i32, ptr %423, align 4, !tbaa !5
  %444 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %435, ptr noundef nonnull %.str.4.sink955, i32 noundef %436, ptr noundef nonnull @.str.81, ptr noundef nonnull @.str.2, i32 noundef 414, ptr noundef %438, ptr noundef %440, ptr noundef %442, i32 noundef %443) #13
  call void @exit(i32 noundef 1) #14
  unreachable

445:                                              ; preds = %417
  %446 = load i32, ptr @test_count, align 4, !tbaa !5
  %447 = add nsw i32 %446, 1
  store i32 %447, ptr @test_count, align 4, !tbaa !5
  %448 = call i32 @s2n_config_set_cipher_preferences(ptr noundef nonnull %392, ptr noundef nonnull @.str.82) #11
  %449 = icmp eq i32 %448, -1
  br i1 %449, label %450, label %473

450:                                              ; preds = %445
  %451 = tail call ptr @__errno_location() #12
  %452 = load i32, ptr %451, align 4, !tbaa !5
  %453 = load ptr, ptr @stderr, align 8, !tbaa !9
  %454 = call i32 @s2n_print_stacktrace(ptr noundef %453) #11
  %455 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %456 = trunc nuw i8 %455 to i1
  br i1 %456, label %457, label %461

457:                                              ; preds = %450
  %458 = load ptr, ptr @stderr, align 8, !tbaa !9
  %459 = call i32 @fileno(ptr noundef %458) #11
  %460 = call i32 @isatty(i32 noundef %459) #11
  %.not633 = icmp eq i32 %460, 0
  br i1 %.not633, label %461, label %462

461:                                              ; preds = %457, %450
  br label %462

462:                                              ; preds = %457, %461
  %.str.4.sink964 = phi ptr [ @.str.4, %461 ], [ @.str, %457 ]
  store i32 %452, ptr %451, align 4, !tbaa !5
  %463 = load ptr, ptr @stderr, align 8, !tbaa !9
  %464 = load i32, ptr @test_count, align 4, !tbaa !5
  %465 = load i32, ptr %240, align 4, !tbaa !5
  %466 = call ptr @s2n_strerror(i32 noundef %465, ptr noundef nonnull @.str.3) #11
  %467 = load i32, ptr %240, align 4, !tbaa !5
  %468 = call ptr @s2n_strerror_debug(i32 noundef %467, ptr noundef nonnull @.str.3) #11
  %469 = load i32, ptr %451, align 4, !tbaa !5
  %470 = call ptr @strerror(i32 noundef %469) #11
  %471 = load i32, ptr %451, align 4, !tbaa !5
  %472 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %463, ptr noundef nonnull %.str.4.sink964, i32 noundef %464, ptr noundef nonnull @.str.83, ptr noundef nonnull @.str.2, i32 noundef 416, ptr noundef %466, ptr noundef %468, ptr noundef %470, i32 noundef %471) #13
  call void @exit(i32 noundef 1) #14
  unreachable

473:                                              ; preds = %445
  %474 = load i32, ptr @test_count, align 4, !tbaa !5
  %475 = add nsw i32 %474, 1
  store i32 %475, ptr @test_count, align 4, !tbaa !5
  %476 = call i32 @s2n_config_set_verification_ca_location(ptr noundef nonnull %392, ptr noundef nonnull @.str.69, ptr noundef null) #11
  %477 = icmp eq i32 %476, -1
  br i1 %477, label %478, label %501

478:                                              ; preds = %473
  %479 = tail call ptr @__errno_location() #12
  %480 = load i32, ptr %479, align 4, !tbaa !5
  %481 = load ptr, ptr @stderr, align 8, !tbaa !9
  %482 = call i32 @s2n_print_stacktrace(ptr noundef %481) #11
  %483 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %484 = trunc nuw i8 %483 to i1
  br i1 %484, label %485, label %489

485:                                              ; preds = %478
  %486 = load ptr, ptr @stderr, align 8, !tbaa !9
  %487 = call i32 @fileno(ptr noundef %486) #11
  %488 = call i32 @isatty(i32 noundef %487) #11
  %.not632 = icmp eq i32 %488, 0
  br i1 %.not632, label %489, label %490

489:                                              ; preds = %485, %478
  br label %490

490:                                              ; preds = %485, %489
  %.str.4.sink973 = phi ptr [ @.str.4, %489 ], [ @.str, %485 ]
  store i32 %480, ptr %479, align 4, !tbaa !5
  %491 = load ptr, ptr @stderr, align 8, !tbaa !9
  %492 = load i32, ptr @test_count, align 4, !tbaa !5
  %493 = load i32, ptr %240, align 4, !tbaa !5
  %494 = call ptr @s2n_strerror(i32 noundef %493, ptr noundef nonnull @.str.3) #11
  %495 = load i32, ptr %240, align 4, !tbaa !5
  %496 = call ptr @s2n_strerror_debug(i32 noundef %495, ptr noundef nonnull @.str.3) #11
  %497 = load i32, ptr %479, align 4, !tbaa !5
  %498 = call ptr @strerror(i32 noundef %497) #11
  %499 = load i32, ptr %479, align 4, !tbaa !5
  %500 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %491, ptr noundef nonnull %.str.4.sink973, i32 noundef %492, ptr noundef nonnull @.str.84, ptr noundef nonnull @.str.2, i32 noundef 418, ptr noundef %494, ptr noundef %496, ptr noundef %498, i32 noundef %499) #13
  call void @exit(i32 noundef 1) #14
  unreachable

501:                                              ; preds = %473
  %502 = call ptr @s2n_connection_new(i32 noundef 1) #11
  %503 = load i32, ptr @test_count, align 4, !tbaa !5
  %504 = add nsw i32 %503, 1
  store i32 %504, ptr @test_count, align 4, !tbaa !5
  %505 = icmp eq ptr %502, null
  br i1 %505, label %506, label %529

506:                                              ; preds = %501
  %507 = tail call ptr @__errno_location() #12
  %508 = load i32, ptr %507, align 4, !tbaa !5
  %509 = load ptr, ptr @stderr, align 8, !tbaa !9
  %510 = call i32 @s2n_print_stacktrace(ptr noundef %509) #11
  %511 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %512 = trunc nuw i8 %511 to i1
  br i1 %512, label %513, label %517

513:                                              ; preds = %506
  %514 = load ptr, ptr @stderr, align 8, !tbaa !9
  %515 = call i32 @fileno(ptr noundef %514) #11
  %516 = call i32 @isatty(i32 noundef %515) #11
  %.not631 = icmp eq i32 %516, 0
  br i1 %.not631, label %517, label %518

517:                                              ; preds = %513, %506
  br label %518

518:                                              ; preds = %513, %517
  %.str.4.sink982 = phi ptr [ @.str.4, %517 ], [ @.str, %513 ]
  store i32 %508, ptr %507, align 4, !tbaa !5
  %519 = load ptr, ptr @stderr, align 8, !tbaa !9
  %520 = load i32, ptr @test_count, align 4, !tbaa !5
  %521 = load i32, ptr %240, align 4, !tbaa !5
  %522 = call ptr @s2n_strerror(i32 noundef %521, ptr noundef nonnull @.str.3) #11
  %523 = load i32, ptr %240, align 4, !tbaa !5
  %524 = call ptr @s2n_strerror_debug(i32 noundef %523, ptr noundef nonnull @.str.3) #11
  %525 = load i32, ptr %507, align 4, !tbaa !5
  %526 = call ptr @strerror(i32 noundef %525) #11
  %527 = load i32, ptr %507, align 4, !tbaa !5
  %528 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %519, ptr noundef nonnull %.str.4.sink982, i32 noundef %520, ptr noundef nonnull @.str.85, ptr noundef nonnull @.str.2, i32 noundef 422, ptr noundef %522, ptr noundef %524, ptr noundef %526, i32 noundef %527) #13
  call void @exit(i32 noundef 1) #14
  unreachable

529:                                              ; preds = %501
  %530 = add nsw i32 %503, 2
  store i32 %530, ptr @test_count, align 4, !tbaa !5
  %531 = call i32 @s2n_connection_set_config(ptr noundef nonnull %502, ptr noundef nonnull %392) #11
  %532 = icmp eq i32 %531, -1
  br i1 %532, label %533, label %556

533:                                              ; preds = %529
  %534 = tail call ptr @__errno_location() #12
  %535 = load i32, ptr %534, align 4, !tbaa !5
  %536 = load ptr, ptr @stderr, align 8, !tbaa !9
  %537 = call i32 @s2n_print_stacktrace(ptr noundef %536) #11
  %538 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %539 = trunc nuw i8 %538 to i1
  br i1 %539, label %540, label %544

540:                                              ; preds = %533
  %541 = load ptr, ptr @stderr, align 8, !tbaa !9
  %542 = call i32 @fileno(ptr noundef %541) #11
  %543 = call i32 @isatty(i32 noundef %542) #11
  %.not630 = icmp eq i32 %543, 0
  br i1 %.not630, label %544, label %545

544:                                              ; preds = %540, %533
  br label %545

545:                                              ; preds = %540, %544
  %.str.4.sink991 = phi ptr [ @.str.4, %544 ], [ @.str, %540 ]
  store i32 %535, ptr %534, align 4, !tbaa !5
  %546 = load ptr, ptr @stderr, align 8, !tbaa !9
  %547 = load i32, ptr @test_count, align 4, !tbaa !5
  %548 = load i32, ptr %240, align 4, !tbaa !5
  %549 = call ptr @s2n_strerror(i32 noundef %548, ptr noundef nonnull @.str.3) #11
  %550 = load i32, ptr %240, align 4, !tbaa !5
  %551 = call ptr @s2n_strerror_debug(i32 noundef %550, ptr noundef nonnull @.str.3) #11
  %552 = load i32, ptr %534, align 4, !tbaa !5
  %553 = call ptr @strerror(i32 noundef %552) #11
  %554 = load i32, ptr %534, align 4, !tbaa !5
  %555 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %546, ptr noundef nonnull %.str.4.sink991, i32 noundef %547, ptr noundef nonnull @.str.86, ptr noundef nonnull @.str.2, i32 noundef 423, ptr noundef %549, ptr noundef %551, ptr noundef %553, i32 noundef %554) #13
  call void @exit(i32 noundef 1) #14
  unreachable

556:                                              ; preds = %529
  %557 = call ptr @s2n_connection_new(i32 noundef 0) #11
  %558 = load i32, ptr @test_count, align 4, !tbaa !5
  %559 = add nsw i32 %558, 1
  store i32 %559, ptr @test_count, align 4, !tbaa !5
  %560 = icmp eq ptr %557, null
  br i1 %560, label %561, label %584

561:                                              ; preds = %556
  %562 = tail call ptr @__errno_location() #12
  %563 = load i32, ptr %562, align 4, !tbaa !5
  %564 = load ptr, ptr @stderr, align 8, !tbaa !9
  %565 = call i32 @s2n_print_stacktrace(ptr noundef %564) #11
  %566 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %567 = trunc nuw i8 %566 to i1
  br i1 %567, label %568, label %572

568:                                              ; preds = %561
  %569 = load ptr, ptr @stderr, align 8, !tbaa !9
  %570 = call i32 @fileno(ptr noundef %569) #11
  %571 = call i32 @isatty(i32 noundef %570) #11
  %.not629 = icmp eq i32 %571, 0
  br i1 %.not629, label %572, label %573

572:                                              ; preds = %568, %561
  br label %573

573:                                              ; preds = %568, %572
  %.str.4.sink1000 = phi ptr [ @.str.4, %572 ], [ @.str, %568 ]
  store i32 %563, ptr %562, align 4, !tbaa !5
  %574 = load ptr, ptr @stderr, align 8, !tbaa !9
  %575 = load i32, ptr @test_count, align 4, !tbaa !5
  %576 = load i32, ptr %240, align 4, !tbaa !5
  %577 = call ptr @s2n_strerror(i32 noundef %576, ptr noundef nonnull @.str.3) #11
  %578 = load i32, ptr %240, align 4, !tbaa !5
  %579 = call ptr @s2n_strerror_debug(i32 noundef %578, ptr noundef nonnull @.str.3) #11
  %580 = load i32, ptr %562, align 4, !tbaa !5
  %581 = call ptr @strerror(i32 noundef %580) #11
  %582 = load i32, ptr %562, align 4, !tbaa !5
  %583 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %574, ptr noundef nonnull %.str.4.sink1000, i32 noundef %575, ptr noundef nonnull @.str.87, ptr noundef nonnull @.str.2, i32 noundef 426, ptr noundef %577, ptr noundef %579, ptr noundef %581, i32 noundef %582) #13
  call void @exit(i32 noundef 1) #14
  unreachable

584:                                              ; preds = %556
  %585 = add nsw i32 %558, 2
  store i32 %585, ptr @test_count, align 4, !tbaa !5
  %586 = call i32 @s2n_connection_set_config(ptr noundef nonnull %557, ptr noundef nonnull %278) #11
  %587 = icmp eq i32 %586, -1
  br i1 %587, label %588, label %611

588:                                              ; preds = %584
  %589 = tail call ptr @__errno_location() #12
  %590 = load i32, ptr %589, align 4, !tbaa !5
  %591 = load ptr, ptr @stderr, align 8, !tbaa !9
  %592 = call i32 @s2n_print_stacktrace(ptr noundef %591) #11
  %593 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %594 = trunc nuw i8 %593 to i1
  br i1 %594, label %595, label %599

595:                                              ; preds = %588
  %596 = load ptr, ptr @stderr, align 8, !tbaa !9
  %597 = call i32 @fileno(ptr noundef %596) #11
  %598 = call i32 @isatty(i32 noundef %597) #11
  %.not628 = icmp eq i32 %598, 0
  br i1 %.not628, label %599, label %600

599:                                              ; preds = %595, %588
  br label %600

600:                                              ; preds = %595, %599
  %.str.4.sink1009 = phi ptr [ @.str.4, %599 ], [ @.str, %595 ]
  store i32 %590, ptr %589, align 4, !tbaa !5
  %601 = load ptr, ptr @stderr, align 8, !tbaa !9
  %602 = load i32, ptr @test_count, align 4, !tbaa !5
  %603 = load i32, ptr %240, align 4, !tbaa !5
  %604 = call ptr @s2n_strerror(i32 noundef %603, ptr noundef nonnull @.str.3) #11
  %605 = load i32, ptr %240, align 4, !tbaa !5
  %606 = call ptr @s2n_strerror_debug(i32 noundef %605, ptr noundef nonnull @.str.3) #11
  %607 = load i32, ptr %589, align 4, !tbaa !5
  %608 = call ptr @strerror(i32 noundef %607) #11
  %609 = load i32, ptr %589, align 4, !tbaa !5
  %610 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %601, ptr noundef nonnull %.str.4.sink1009, i32 noundef %602, ptr noundef nonnull @.str.88, ptr noundef nonnull @.str.2, i32 noundef 427, ptr noundef %604, ptr noundef %606, ptr noundef %608, i32 noundef %609) #13
  call void @exit(i32 noundef 1) #14
  unreachable

611:                                              ; preds = %584
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #11
  %612 = load i32, ptr @test_count, align 4, !tbaa !5
  %613 = add nsw i32 %612, 1
  store i32 %613, ptr @test_count, align 4, !tbaa !5
  %614 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef nonnull %9) #11
  %615 = icmp eq i32 %614, -1
  br i1 %615, label %616, label %639

616:                                              ; preds = %611
  %617 = tail call ptr @__errno_location() #12
  %618 = load i32, ptr %617, align 4, !tbaa !5
  %619 = load ptr, ptr @stderr, align 8, !tbaa !9
  %620 = call i32 @s2n_print_stacktrace(ptr noundef %619) #11
  %621 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %622 = trunc nuw i8 %621 to i1
  br i1 %622, label %623, label %627

623:                                              ; preds = %616
  %624 = load ptr, ptr @stderr, align 8, !tbaa !9
  %625 = call i32 @fileno(ptr noundef %624) #11
  %626 = call i32 @isatty(i32 noundef %625) #11
  %.not627 = icmp eq i32 %626, 0
  br i1 %.not627, label %627, label %628

627:                                              ; preds = %623, %616
  br label %628

628:                                              ; preds = %623, %627
  %.str.4.sink1018 = phi ptr [ @.str.4, %627 ], [ @.str, %623 ]
  store i32 %618, ptr %617, align 4, !tbaa !5
  %629 = load ptr, ptr @stderr, align 8, !tbaa !9
  %630 = load i32, ptr @test_count, align 4, !tbaa !5
  %631 = load i32, ptr %240, align 4, !tbaa !5
  %632 = call ptr @s2n_strerror(i32 noundef %631, ptr noundef nonnull @.str.3) #11
  %633 = load i32, ptr %240, align 4, !tbaa !5
  %634 = call ptr @s2n_strerror_debug(i32 noundef %633, ptr noundef nonnull @.str.3) #11
  %635 = load i32, ptr %617, align 4, !tbaa !5
  %636 = call ptr @strerror(i32 noundef %635) #11
  %637 = load i32, ptr %617, align 4, !tbaa !5
  %638 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %629, ptr noundef nonnull %.str.4.sink1018, i32 noundef %630, ptr noundef nonnull @.str.89, ptr noundef nonnull @.str.2, i32 noundef 431, ptr noundef %632, ptr noundef %634, ptr noundef %636, i32 noundef %637) #13
  call void @exit(i32 noundef 1) #14
  unreachable

639:                                              ; preds = %611
  %640 = load i32, ptr @test_count, align 4, !tbaa !5
  %641 = add nsw i32 %640, 1
  store i32 %641, ptr @test_count, align 4, !tbaa !5
  %642 = call i32 @s2n_connection_set_io_pair(ptr noundef nonnull %502, ptr noundef nonnull %9) #11
  %643 = icmp eq i32 %642, -1
  br i1 %643, label %644, label %667

644:                                              ; preds = %639
  %645 = tail call ptr @__errno_location() #12
  %646 = load i32, ptr %645, align 4, !tbaa !5
  %647 = load ptr, ptr @stderr, align 8, !tbaa !9
  %648 = call i32 @s2n_print_stacktrace(ptr noundef %647) #11
  %649 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %650 = trunc nuw i8 %649 to i1
  br i1 %650, label %651, label %655

651:                                              ; preds = %644
  %652 = load ptr, ptr @stderr, align 8, !tbaa !9
  %653 = call i32 @fileno(ptr noundef %652) #11
  %654 = call i32 @isatty(i32 noundef %653) #11
  %.not626 = icmp eq i32 %654, 0
  br i1 %.not626, label %655, label %656

655:                                              ; preds = %651, %644
  br label %656

656:                                              ; preds = %651, %655
  %.str.4.sink1027 = phi ptr [ @.str.4, %655 ], [ @.str, %651 ]
  store i32 %646, ptr %645, align 4, !tbaa !5
  %657 = load ptr, ptr @stderr, align 8, !tbaa !9
  %658 = load i32, ptr @test_count, align 4, !tbaa !5
  %659 = load i32, ptr %240, align 4, !tbaa !5
  %660 = call ptr @s2n_strerror(i32 noundef %659, ptr noundef nonnull @.str.3) #11
  %661 = load i32, ptr %240, align 4, !tbaa !5
  %662 = call ptr @s2n_strerror_debug(i32 noundef %661, ptr noundef nonnull @.str.3) #11
  %663 = load i32, ptr %645, align 4, !tbaa !5
  %664 = call ptr @strerror(i32 noundef %663) #11
  %665 = load i32, ptr %645, align 4, !tbaa !5
  %666 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %657, ptr noundef nonnull %.str.4.sink1027, i32 noundef %658, ptr noundef nonnull @.str.90, ptr noundef nonnull @.str.2, i32 noundef 432, ptr noundef %660, ptr noundef %662, ptr noundef %664, i32 noundef %665) #13
  call void @exit(i32 noundef 1) #14
  unreachable

667:                                              ; preds = %639
  %668 = load i32, ptr @test_count, align 4, !tbaa !5
  %669 = add nsw i32 %668, 1
  store i32 %669, ptr @test_count, align 4, !tbaa !5
  %670 = call i32 @s2n_connection_set_io_pair(ptr noundef nonnull %557, ptr noundef nonnull %9) #11
  %671 = icmp eq i32 %670, -1
  br i1 %671, label %672, label %695

672:                                              ; preds = %667
  %673 = tail call ptr @__errno_location() #12
  %674 = load i32, ptr %673, align 4, !tbaa !5
  %675 = load ptr, ptr @stderr, align 8, !tbaa !9
  %676 = call i32 @s2n_print_stacktrace(ptr noundef %675) #11
  %677 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %678 = trunc nuw i8 %677 to i1
  br i1 %678, label %679, label %683

679:                                              ; preds = %672
  %680 = load ptr, ptr @stderr, align 8, !tbaa !9
  %681 = call i32 @fileno(ptr noundef %680) #11
  %682 = call i32 @isatty(i32 noundef %681) #11
  %.not625 = icmp eq i32 %682, 0
  br i1 %.not625, label %683, label %684

683:                                              ; preds = %679, %672
  br label %684

684:                                              ; preds = %679, %683
  %.str.4.sink1036 = phi ptr [ @.str.4, %683 ], [ @.str, %679 ]
  store i32 %674, ptr %673, align 4, !tbaa !5
  %685 = load ptr, ptr @stderr, align 8, !tbaa !9
  %686 = load i32, ptr @test_count, align 4, !tbaa !5
  %687 = load i32, ptr %240, align 4, !tbaa !5
  %688 = call ptr @s2n_strerror(i32 noundef %687, ptr noundef nonnull @.str.3) #11
  %689 = load i32, ptr %240, align 4, !tbaa !5
  %690 = call ptr @s2n_strerror_debug(i32 noundef %689, ptr noundef nonnull @.str.3) #11
  %691 = load i32, ptr %673, align 4, !tbaa !5
  %692 = call ptr @strerror(i32 noundef %691) #11
  %693 = load i32, ptr %673, align 4, !tbaa !5
  %694 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %685, ptr noundef nonnull %.str.4.sink1036, i32 noundef %686, ptr noundef nonnull @.str.91, ptr noundef nonnull @.str.2, i32 noundef 433, ptr noundef %688, ptr noundef %690, ptr noundef %692, i32 noundef %693) #13
  call void @exit(i32 noundef 1) #14
  unreachable

695:                                              ; preds = %667
  %696 = load i32, ptr @test_count, align 4, !tbaa !5
  %697 = add nsw i32 %696, 1
  store i32 %697, ptr @test_count, align 4, !tbaa !5
  %698 = call i32 @try_handshake(ptr noundef nonnull %557, ptr noundef nonnull %502, ptr noundef nonnull @async_handler_fail)
  %699 = icmp eq i32 %698, -1
  br i1 %699, label %700, label %723

700:                                              ; preds = %695
  %701 = tail call ptr @__errno_location() #12
  %702 = load i32, ptr %701, align 4, !tbaa !5
  %703 = load ptr, ptr @stderr, align 8, !tbaa !9
  %704 = call i32 @s2n_print_stacktrace(ptr noundef %703) #11
  %705 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %706 = trunc nuw i8 %705 to i1
  br i1 %706, label %707, label %711

707:                                              ; preds = %700
  %708 = load ptr, ptr @stderr, align 8, !tbaa !9
  %709 = call i32 @fileno(ptr noundef %708) #11
  %710 = call i32 @isatty(i32 noundef %709) #11
  %.not624 = icmp eq i32 %710, 0
  br i1 %.not624, label %711, label %712

711:                                              ; preds = %707, %700
  br label %712

712:                                              ; preds = %707, %711
  %.str.4.sink1045 = phi ptr [ @.str.4, %711 ], [ @.str, %707 ]
  store i32 %702, ptr %701, align 4, !tbaa !5
  %713 = load ptr, ptr @stderr, align 8, !tbaa !9
  %714 = load i32, ptr @test_count, align 4, !tbaa !5
  %715 = load i32, ptr %240, align 4, !tbaa !5
  %716 = call ptr @s2n_strerror(i32 noundef %715, ptr noundef nonnull @.str.3) #11
  %717 = load i32, ptr %240, align 4, !tbaa !5
  %718 = call ptr @s2n_strerror_debug(i32 noundef %717, ptr noundef nonnull @.str.3) #11
  %719 = load i32, ptr %701, align 4, !tbaa !5
  %720 = call ptr @strerror(i32 noundef %719) #11
  %721 = load i32, ptr %701, align 4, !tbaa !5
  %722 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %713, ptr noundef nonnull %.str.4.sink1045, i32 noundef %714, ptr noundef nonnull @.str.92, ptr noundef nonnull @.str.2, i32 noundef 435, ptr noundef %716, ptr noundef %718, ptr noundef %720, i32 noundef %721) #13
  call void @exit(i32 noundef 1) #14
  unreachable

723:                                              ; preds = %695
  %724 = load i32, ptr @test_count, align 4, !tbaa !5
  %725 = add nsw i32 %724, 1
  store i32 %725, ptr @test_count, align 4, !tbaa !5
  %726 = call i32 @s2n_connection_free(ptr noundef nonnull %557) #11
  %727 = icmp eq i32 %726, -1
  br i1 %727, label %728, label %751

728:                                              ; preds = %723
  %729 = tail call ptr @__errno_location() #12
  %730 = load i32, ptr %729, align 4, !tbaa !5
  %731 = load ptr, ptr @stderr, align 8, !tbaa !9
  %732 = call i32 @s2n_print_stacktrace(ptr noundef %731) #11
  %733 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %734 = trunc nuw i8 %733 to i1
  br i1 %734, label %735, label %739

735:                                              ; preds = %728
  %736 = load ptr, ptr @stderr, align 8, !tbaa !9
  %737 = call i32 @fileno(ptr noundef %736) #11
  %738 = call i32 @isatty(i32 noundef %737) #11
  %.not623 = icmp eq i32 %738, 0
  br i1 %.not623, label %739, label %740

739:                                              ; preds = %735, %728
  br label %740

740:                                              ; preds = %735, %739
  %.str.4.sink1054 = phi ptr [ @.str.4, %739 ], [ @.str, %735 ]
  store i32 %730, ptr %729, align 4, !tbaa !5
  %741 = load ptr, ptr @stderr, align 8, !tbaa !9
  %742 = load i32, ptr @test_count, align 4, !tbaa !5
  %743 = load i32, ptr %240, align 4, !tbaa !5
  %744 = call ptr @s2n_strerror(i32 noundef %743, ptr noundef nonnull @.str.3) #11
  %745 = load i32, ptr %240, align 4, !tbaa !5
  %746 = call ptr @s2n_strerror_debug(i32 noundef %745, ptr noundef nonnull @.str.3) #11
  %747 = load i32, ptr %729, align 4, !tbaa !5
  %748 = call ptr @strerror(i32 noundef %747) #11
  %749 = load i32, ptr %729, align 4, !tbaa !5
  %750 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %741, ptr noundef nonnull %.str.4.sink1054, i32 noundef %742, ptr noundef nonnull @.str.93, ptr noundef nonnull @.str.2, i32 noundef 438, ptr noundef %744, ptr noundef %746, ptr noundef %748, i32 noundef %749) #13
  call void @exit(i32 noundef 1) #14
  unreachable

751:                                              ; preds = %723
  %752 = load i32, ptr @test_count, align 4, !tbaa !5
  %753 = add nsw i32 %752, 1
  store i32 %753, ptr @test_count, align 4, !tbaa !5
  %754 = call i32 @s2n_connection_free(ptr noundef nonnull %502) #11
  %755 = icmp eq i32 %754, -1
  br i1 %755, label %756, label %779

756:                                              ; preds = %751
  %757 = tail call ptr @__errno_location() #12
  %758 = load i32, ptr %757, align 4, !tbaa !5
  %759 = load ptr, ptr @stderr, align 8, !tbaa !9
  %760 = call i32 @s2n_print_stacktrace(ptr noundef %759) #11
  %761 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %762 = trunc nuw i8 %761 to i1
  br i1 %762, label %763, label %767

763:                                              ; preds = %756
  %764 = load ptr, ptr @stderr, align 8, !tbaa !9
  %765 = call i32 @fileno(ptr noundef %764) #11
  %766 = call i32 @isatty(i32 noundef %765) #11
  %.not622 = icmp eq i32 %766, 0
  br i1 %.not622, label %767, label %768

767:                                              ; preds = %763, %756
  br label %768

768:                                              ; preds = %763, %767
  %.str.4.sink1063 = phi ptr [ @.str.4, %767 ], [ @.str, %763 ]
  store i32 %758, ptr %757, align 4, !tbaa !5
  %769 = load ptr, ptr @stderr, align 8, !tbaa !9
  %770 = load i32, ptr @test_count, align 4, !tbaa !5
  %771 = load i32, ptr %240, align 4, !tbaa !5
  %772 = call ptr @s2n_strerror(i32 noundef %771, ptr noundef nonnull @.str.3) #11
  %773 = load i32, ptr %240, align 4, !tbaa !5
  %774 = call ptr @s2n_strerror_debug(i32 noundef %773, ptr noundef nonnull @.str.3) #11
  %775 = load i32, ptr %757, align 4, !tbaa !5
  %776 = call ptr @strerror(i32 noundef %775) #11
  %777 = load i32, ptr %757, align 4, !tbaa !5
  %778 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %769, ptr noundef nonnull %.str.4.sink1063, i32 noundef %770, ptr noundef nonnull @.str.94, ptr noundef nonnull @.str.2, i32 noundef 439, ptr noundef %772, ptr noundef %774, ptr noundef %776, i32 noundef %777) #13
  call void @exit(i32 noundef 1) #14
  unreachable

779:                                              ; preds = %751
  %780 = load i32, ptr @test_count, align 4, !tbaa !5
  %781 = add nsw i32 %780, 1
  store i32 %781, ptr @test_count, align 4, !tbaa !5
  %782 = call i32 @s2n_io_pair_close(ptr noundef nonnull %9) #11
  %783 = icmp eq i32 %782, -1
  br i1 %783, label %784, label %807

784:                                              ; preds = %779
  %785 = tail call ptr @__errno_location() #12
  %786 = load i32, ptr %785, align 4, !tbaa !5
  %787 = load ptr, ptr @stderr, align 8, !tbaa !9
  %788 = call i32 @s2n_print_stacktrace(ptr noundef %787) #11
  %789 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %790 = trunc nuw i8 %789 to i1
  br i1 %790, label %791, label %795

791:                                              ; preds = %784
  %792 = load ptr, ptr @stderr, align 8, !tbaa !9
  %793 = call i32 @fileno(ptr noundef %792) #11
  %794 = call i32 @isatty(i32 noundef %793) #11
  %.not621 = icmp eq i32 %794, 0
  br i1 %.not621, label %795, label %796

795:                                              ; preds = %791, %784
  br label %796

796:                                              ; preds = %791, %795
  %.str.4.sink1072 = phi ptr [ @.str.4, %795 ], [ @.str, %791 ]
  store i32 %786, ptr %785, align 4, !tbaa !5
  %797 = load ptr, ptr @stderr, align 8, !tbaa !9
  %798 = load i32, ptr @test_count, align 4, !tbaa !5
  %799 = load i32, ptr %240, align 4, !tbaa !5
  %800 = call ptr @s2n_strerror(i32 noundef %799, ptr noundef nonnull @.str.3) #11
  %801 = load i32, ptr %240, align 4, !tbaa !5
  %802 = call ptr @s2n_strerror_debug(i32 noundef %801, ptr noundef nonnull @.str.3) #11
  %803 = load i32, ptr %785, align 4, !tbaa !5
  %804 = call ptr @strerror(i32 noundef %803) #11
  %805 = load i32, ptr %785, align 4, !tbaa !5
  %806 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %797, ptr noundef nonnull %.str.4.sink1072, i32 noundef %798, ptr noundef nonnull @.str.95, ptr noundef nonnull @.str.2, i32 noundef 440, ptr noundef %800, ptr noundef %802, ptr noundef %804, i32 noundef %805) #13
  call void @exit(i32 noundef 1) #14
  unreachable

807:                                              ; preds = %779
  %808 = load i32, ptr @test_count, align 4, !tbaa !5
  %809 = add nsw i32 %808, 1
  store i32 %809, ptr @test_count, align 4, !tbaa !5
  %810 = call i32 @s2n_config_free(ptr noundef nonnull %278) #11
  %811 = icmp eq i32 %810, -1
  br i1 %811, label %812, label %835

812:                                              ; preds = %807
  %813 = tail call ptr @__errno_location() #12
  %814 = load i32, ptr %813, align 4, !tbaa !5
  %815 = load ptr, ptr @stderr, align 8, !tbaa !9
  %816 = call i32 @s2n_print_stacktrace(ptr noundef %815) #11
  %817 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %818 = trunc nuw i8 %817 to i1
  br i1 %818, label %819, label %823

819:                                              ; preds = %812
  %820 = load ptr, ptr @stderr, align 8, !tbaa !9
  %821 = call i32 @fileno(ptr noundef %820) #11
  %822 = call i32 @isatty(i32 noundef %821) #11
  %.not620 = icmp eq i32 %822, 0
  br i1 %.not620, label %823, label %824

823:                                              ; preds = %819, %812
  br label %824

824:                                              ; preds = %819, %823
  %.str.4.sink1081 = phi ptr [ @.str.4, %823 ], [ @.str, %819 ]
  store i32 %814, ptr %813, align 4, !tbaa !5
  %825 = load ptr, ptr @stderr, align 8, !tbaa !9
  %826 = load i32, ptr @test_count, align 4, !tbaa !5
  %827 = load i32, ptr %240, align 4, !tbaa !5
  %828 = call ptr @s2n_strerror(i32 noundef %827, ptr noundef nonnull @.str.3) #11
  %829 = load i32, ptr %240, align 4, !tbaa !5
  %830 = call ptr @s2n_strerror_debug(i32 noundef %829, ptr noundef nonnull @.str.3) #11
  %831 = load i32, ptr %813, align 4, !tbaa !5
  %832 = call ptr @strerror(i32 noundef %831) #11
  %833 = load i32, ptr %813, align 4, !tbaa !5
  %834 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %825, ptr noundef nonnull %.str.4.sink1081, i32 noundef %826, ptr noundef nonnull @.str.96, ptr noundef nonnull @.str.2, i32 noundef 441, ptr noundef %828, ptr noundef %830, ptr noundef %832, i32 noundef %833) #13
  call void @exit(i32 noundef 1) #14
  unreachable

835:                                              ; preds = %807
  %836 = load i32, ptr @test_count, align 4, !tbaa !5
  %837 = add nsw i32 %836, 1
  store i32 %837, ptr @test_count, align 4, !tbaa !5
  %838 = call i32 @s2n_config_free(ptr noundef nonnull %392) #11
  %839 = icmp eq i32 %838, -1
  br i1 %839, label %840, label %863

840:                                              ; preds = %835
  %841 = tail call ptr @__errno_location() #12
  %842 = load i32, ptr %841, align 4, !tbaa !5
  %843 = load ptr, ptr @stderr, align 8, !tbaa !9
  %844 = call i32 @s2n_print_stacktrace(ptr noundef %843) #11
  %845 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %846 = trunc nuw i8 %845 to i1
  br i1 %846, label %847, label %851

847:                                              ; preds = %840
  %848 = load ptr, ptr @stderr, align 8, !tbaa !9
  %849 = call i32 @fileno(ptr noundef %848) #11
  %850 = call i32 @isatty(i32 noundef %849) #11
  %.not619 = icmp eq i32 %850, 0
  br i1 %.not619, label %851, label %852

851:                                              ; preds = %847, %840
  br label %852

852:                                              ; preds = %847, %851
  %.str.4.sink1090 = phi ptr [ @.str.4, %851 ], [ @.str, %847 ]
  store i32 %842, ptr %841, align 4, !tbaa !5
  %853 = load ptr, ptr @stderr, align 8, !tbaa !9
  %854 = load i32, ptr @test_count, align 4, !tbaa !5
  %855 = load i32, ptr %240, align 4, !tbaa !5
  %856 = call ptr @s2n_strerror(i32 noundef %855, ptr noundef nonnull @.str.3) #11
  %857 = load i32, ptr %240, align 4, !tbaa !5
  %858 = call ptr @s2n_strerror_debug(i32 noundef %857, ptr noundef nonnull @.str.3) #11
  %859 = load i32, ptr %841, align 4, !tbaa !5
  %860 = call ptr @strerror(i32 noundef %859) #11
  %861 = load i32, ptr %841, align 4, !tbaa !5
  %862 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %853, ptr noundef nonnull %.str.4.sink1090, i32 noundef %854, ptr noundef nonnull @.str.97, ptr noundef nonnull @.str.2, i32 noundef 442, ptr noundef %856, ptr noundef %858, ptr noundef %860, i32 noundef %861) #13
  call void @exit(i32 noundef 1) #14
  unreachable

863:                                              ; preds = %835
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #11
  %864 = load i32, ptr @test_count, align 4, !tbaa !5
  %865 = add nsw i32 %864, 1
  store i32 %865, ptr @test_count, align 4, !tbaa !5
  %866 = call ptr @s2n_config_new() #11
  %867 = icmp eq ptr %866, null
  br i1 %867, label %868, label %891

868:                                              ; preds = %863
  %869 = tail call ptr @__errno_location() #12
  %870 = load i32, ptr %869, align 4, !tbaa !5
  %871 = load ptr, ptr @stderr, align 8, !tbaa !9
  %872 = call i32 @s2n_print_stacktrace(ptr noundef %871) #11
  %873 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %874 = trunc nuw i8 %873 to i1
  br i1 %874, label %875, label %879

875:                                              ; preds = %868
  %876 = load ptr, ptr @stderr, align 8, !tbaa !9
  %877 = call i32 @fileno(ptr noundef %876) #11
  %878 = call i32 @isatty(i32 noundef %877) #11
  %.not618 = icmp eq i32 %878, 0
  br i1 %.not618, label %879, label %880

879:                                              ; preds = %875, %868
  br label %880

880:                                              ; preds = %875, %879
  %.str.4.sink1099 = phi ptr [ @.str.4, %879 ], [ @.str, %875 ]
  store i32 %870, ptr %869, align 4, !tbaa !5
  %881 = load ptr, ptr @stderr, align 8, !tbaa !9
  %882 = load i32, ptr @test_count, align 4, !tbaa !5
  %883 = load i32, ptr %240, align 4, !tbaa !5
  %884 = call ptr @s2n_strerror(i32 noundef %883, ptr noundef nonnull @.str.3) #11
  %885 = load i32, ptr %240, align 4, !tbaa !5
  %886 = call ptr @s2n_strerror_debug(i32 noundef %885, ptr noundef nonnull @.str.3) #11
  %887 = load i32, ptr %869, align 4, !tbaa !5
  %888 = call ptr @strerror(i32 noundef %887) #11
  %889 = load i32, ptr %869, align 4, !tbaa !5
  %890 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %881, ptr noundef nonnull %.str.4.sink1099, i32 noundef %882, ptr noundef nonnull @.str.76, ptr noundef nonnull @.str.2, i32 noundef 448, ptr noundef %884, ptr noundef %886, ptr noundef %888, i32 noundef %889) #13
  call void @exit(i32 noundef 1) #14
  unreachable

891:                                              ; preds = %863
  %892 = load i32, ptr @test_count, align 4, !tbaa !5
  %893 = add nsw i32 %892, 1
  store i32 %893, ptr @test_count, align 4, !tbaa !5
  %894 = load ptr, ptr %4, align 8, !tbaa !9
  %895 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef nonnull %866, ptr noundef %894) #11
  %896 = icmp eq i32 %895, -1
  br i1 %896, label %897, label %920

897:                                              ; preds = %891
  %898 = tail call ptr @__errno_location() #12
  %899 = load i32, ptr %898, align 4, !tbaa !5
  %900 = load ptr, ptr @stderr, align 8, !tbaa !9
  %901 = call i32 @s2n_print_stacktrace(ptr noundef %900) #11
  %902 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %903 = trunc nuw i8 %902 to i1
  br i1 %903, label %904, label %908

904:                                              ; preds = %897
  %905 = load ptr, ptr @stderr, align 8, !tbaa !9
  %906 = call i32 @fileno(ptr noundef %905) #11
  %907 = call i32 @isatty(i32 noundef %906) #11
  %.not617 = icmp eq i32 %907, 0
  br i1 %.not617, label %908, label %909

908:                                              ; preds = %904, %897
  br label %909

909:                                              ; preds = %904, %908
  %.str.4.sink1108 = phi ptr [ @.str.4, %908 ], [ @.str, %904 ]
  store i32 %899, ptr %898, align 4, !tbaa !5
  %910 = load ptr, ptr @stderr, align 8, !tbaa !9
  %911 = load i32, ptr @test_count, align 4, !tbaa !5
  %912 = load i32, ptr %240, align 4, !tbaa !5
  %913 = call ptr @s2n_strerror(i32 noundef %912, ptr noundef nonnull @.str.3) #11
  %914 = load i32, ptr %240, align 4, !tbaa !5
  %915 = call ptr @s2n_strerror_debug(i32 noundef %914, ptr noundef nonnull @.str.3) #11
  %916 = load i32, ptr %898, align 4, !tbaa !5
  %917 = call ptr @strerror(i32 noundef %916) #11
  %918 = load i32, ptr %898, align 4, !tbaa !5
  %919 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %910, ptr noundef nonnull %.str.4.sink1108, i32 noundef %911, ptr noundef nonnull @.str.77, ptr noundef nonnull @.str.2, i32 noundef 449, ptr noundef %913, ptr noundef %915, ptr noundef %917, i32 noundef %918) #13
  call void @exit(i32 noundef 1) #14
  unreachable

920:                                              ; preds = %891
  %921 = load i32, ptr @test_count, align 4, !tbaa !5
  %922 = add nsw i32 %921, 1
  store i32 %922, ptr @test_count, align 4, !tbaa !5
  %923 = call i32 @s2n_config_add_dhparams(ptr noundef nonnull %866, ptr noundef nonnull %3) #11
  %924 = icmp eq i32 %923, -1
  br i1 %924, label %925, label %948

925:                                              ; preds = %920
  %926 = tail call ptr @__errno_location() #12
  %927 = load i32, ptr %926, align 4, !tbaa !5
  %928 = load ptr, ptr @stderr, align 8, !tbaa !9
  %929 = call i32 @s2n_print_stacktrace(ptr noundef %928) #11
  %930 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %931 = trunc nuw i8 %930 to i1
  br i1 %931, label %932, label %936

932:                                              ; preds = %925
  %933 = load ptr, ptr @stderr, align 8, !tbaa !9
  %934 = call i32 @fileno(ptr noundef %933) #11
  %935 = call i32 @isatty(i32 noundef %934) #11
  %.not616 = icmp eq i32 %935, 0
  br i1 %.not616, label %936, label %937

936:                                              ; preds = %932, %925
  br label %937

937:                                              ; preds = %932, %936
  %.str.4.sink1117 = phi ptr [ @.str.4, %936 ], [ @.str, %932 ]
  store i32 %927, ptr %926, align 4, !tbaa !5
  %938 = load ptr, ptr @stderr, align 8, !tbaa !9
  %939 = load i32, ptr @test_count, align 4, !tbaa !5
  %940 = load i32, ptr %240, align 4, !tbaa !5
  %941 = call ptr @s2n_strerror(i32 noundef %940, ptr noundef nonnull @.str.3) #11
  %942 = load i32, ptr %240, align 4, !tbaa !5
  %943 = call ptr @s2n_strerror_debug(i32 noundef %942, ptr noundef nonnull @.str.3) #11
  %944 = load i32, ptr %926, align 4, !tbaa !5
  %945 = call ptr @strerror(i32 noundef %944) #11
  %946 = load i32, ptr %926, align 4, !tbaa !5
  %947 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %938, ptr noundef nonnull %.str.4.sink1117, i32 noundef %939, ptr noundef nonnull @.str.78, ptr noundef nonnull @.str.2, i32 noundef 450, ptr noundef %941, ptr noundef %943, ptr noundef %945, i32 noundef %946) #13
  call void @exit(i32 noundef 1) #14
  unreachable

948:                                              ; preds = %920
  %949 = load i32, ptr @test_count, align 4, !tbaa !5
  %950 = add nsw i32 %949, 1
  store i32 %950, ptr @test_count, align 4, !tbaa !5
  %951 = call i32 @s2n_config_set_async_pkey_callback(ptr noundef nonnull %866, ptr noundef nonnull @async_pkey_store_callback) #11
  %952 = icmp eq i32 %951, -1
  br i1 %952, label %953, label %976

953:                                              ; preds = %948
  %954 = tail call ptr @__errno_location() #12
  %955 = load i32, ptr %954, align 4, !tbaa !5
  %956 = load ptr, ptr @stderr, align 8, !tbaa !9
  %957 = call i32 @s2n_print_stacktrace(ptr noundef %956) #11
  %958 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %959 = trunc nuw i8 %958 to i1
  br i1 %959, label %960, label %964

960:                                              ; preds = %953
  %961 = load ptr, ptr @stderr, align 8, !tbaa !9
  %962 = call i32 @fileno(ptr noundef %961) #11
  %963 = call i32 @isatty(i32 noundef %962) #11
  %.not615 = icmp eq i32 %963, 0
  br i1 %.not615, label %964, label %965

964:                                              ; preds = %960, %953
  br label %965

965:                                              ; preds = %960, %964
  %.str.4.sink1126 = phi ptr [ @.str.4, %964 ], [ @.str, %960 ]
  store i32 %955, ptr %954, align 4, !tbaa !5
  %966 = load ptr, ptr @stderr, align 8, !tbaa !9
  %967 = load i32, ptr @test_count, align 4, !tbaa !5
  %968 = load i32, ptr %240, align 4, !tbaa !5
  %969 = call ptr @s2n_strerror(i32 noundef %968, ptr noundef nonnull @.str.3) #11
  %970 = load i32, ptr %240, align 4, !tbaa !5
  %971 = call ptr @s2n_strerror_debug(i32 noundef %970, ptr noundef nonnull @.str.3) #11
  %972 = load i32, ptr %954, align 4, !tbaa !5
  %973 = call ptr @strerror(i32 noundef %972) #11
  %974 = load i32, ptr %954, align 4, !tbaa !5
  %975 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %966, ptr noundef nonnull %.str.4.sink1126, i32 noundef %967, ptr noundef nonnull @.str.98, ptr noundef nonnull @.str.2, i32 noundef 451, ptr noundef %969, ptr noundef %971, ptr noundef %973, i32 noundef %974) #13
  call void @exit(i32 noundef 1) #14
  unreachable

976:                                              ; preds = %948
  %977 = getelementptr inbounds i8, ptr %866, i64 96
  store ptr %8, ptr %977, align 8, !tbaa !29
  %978 = load i32, ptr @test_count, align 4, !tbaa !5
  %979 = add nsw i32 %978, 1
  store i32 %979, ptr @test_count, align 4, !tbaa !5
  %980 = call ptr @s2n_config_new() #11
  %981 = icmp eq ptr %980, null
  br i1 %981, label %982, label %1005

982:                                              ; preds = %976
  %983 = tail call ptr @__errno_location() #12
  %984 = load i32, ptr %983, align 4, !tbaa !5
  %985 = load ptr, ptr @stderr, align 8, !tbaa !9
  %986 = call i32 @s2n_print_stacktrace(ptr noundef %985) #11
  %987 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %988 = trunc nuw i8 %987 to i1
  br i1 %988, label %989, label %993

989:                                              ; preds = %982
  %990 = load ptr, ptr @stderr, align 8, !tbaa !9
  %991 = call i32 @fileno(ptr noundef %990) #11
  %992 = call i32 @isatty(i32 noundef %991) #11
  %.not614 = icmp eq i32 %992, 0
  br i1 %.not614, label %993, label %994

993:                                              ; preds = %989, %982
  br label %994

994:                                              ; preds = %989, %993
  %.str.4.sink1135 = phi ptr [ @.str.4, %993 ], [ @.str, %989 ]
  store i32 %984, ptr %983, align 4, !tbaa !5
  %995 = load ptr, ptr @stderr, align 8, !tbaa !9
  %996 = load i32, ptr @test_count, align 4, !tbaa !5
  %997 = load i32, ptr %240, align 4, !tbaa !5
  %998 = call ptr @s2n_strerror(i32 noundef %997, ptr noundef nonnull @.str.3) #11
  %999 = load i32, ptr %240, align 4, !tbaa !5
  %1000 = call ptr @s2n_strerror_debug(i32 noundef %999, ptr noundef nonnull @.str.3) #11
  %1001 = load i32, ptr %983, align 4, !tbaa !5
  %1002 = call ptr @strerror(i32 noundef %1001) #11
  %1003 = load i32, ptr %983, align 4, !tbaa !5
  %1004 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %995, ptr noundef nonnull %.str.4.sink1135, i32 noundef %996, ptr noundef nonnull @.str.80, ptr noundef nonnull @.str.2, i32 noundef 454, ptr noundef %998, ptr noundef %1000, ptr noundef %1002, i32 noundef %1003) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1005:                                             ; preds = %976
  %1006 = load i32, ptr @test_count, align 4, !tbaa !5
  %1007 = add nsw i32 %1006, 1
  store i32 %1007, ptr @test_count, align 4, !tbaa !5
  %1008 = call i32 @s2n_config_set_unsafe_for_testing(ptr noundef nonnull %980) #11
  %1009 = icmp eq i32 %1008, -1
  br i1 %1009, label %1010, label %1033

1010:                                             ; preds = %1005
  %1011 = tail call ptr @__errno_location() #12
  %1012 = load i32, ptr %1011, align 4, !tbaa !5
  %1013 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1014 = call i32 @s2n_print_stacktrace(ptr noundef %1013) #11
  %1015 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1016 = trunc nuw i8 %1015 to i1
  br i1 %1016, label %1017, label %1021

1017:                                             ; preds = %1010
  %1018 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1019 = call i32 @fileno(ptr noundef %1018) #11
  %1020 = call i32 @isatty(i32 noundef %1019) #11
  %.not613 = icmp eq i32 %1020, 0
  br i1 %.not613, label %1021, label %1022

1021:                                             ; preds = %1017, %1010
  br label %1022

1022:                                             ; preds = %1017, %1021
  %.str.4.sink1144 = phi ptr [ @.str.4, %1021 ], [ @.str, %1017 ]
  store i32 %1012, ptr %1011, align 4, !tbaa !5
  %1023 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1024 = load i32, ptr @test_count, align 4, !tbaa !5
  %1025 = load i32, ptr %240, align 4, !tbaa !5
  %1026 = call ptr @s2n_strerror(i32 noundef %1025, ptr noundef nonnull @.str.3) #11
  %1027 = load i32, ptr %240, align 4, !tbaa !5
  %1028 = call ptr @s2n_strerror_debug(i32 noundef %1027, ptr noundef nonnull @.str.3) #11
  %1029 = load i32, ptr %1011, align 4, !tbaa !5
  %1030 = call ptr @strerror(i32 noundef %1029) #11
  %1031 = load i32, ptr %1011, align 4, !tbaa !5
  %1032 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1023, ptr noundef nonnull %.str.4.sink1144, i32 noundef %1024, ptr noundef nonnull @.str.81, ptr noundef nonnull @.str.2, i32 noundef 455, ptr noundef %1026, ptr noundef %1028, ptr noundef %1030, i32 noundef %1031) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1033:                                             ; preds = %1005
  %1034 = load i32, ptr @test_count, align 4, !tbaa !5
  %1035 = add nsw i32 %1034, 1
  store i32 %1035, ptr @test_count, align 4, !tbaa !5
  %1036 = call i32 @s2n_config_set_cipher_preferences(ptr noundef nonnull %980, ptr noundef nonnull @.str.82) #11
  %1037 = icmp eq i32 %1036, -1
  br i1 %1037, label %1038, label %1061

1038:                                             ; preds = %1033
  %1039 = tail call ptr @__errno_location() #12
  %1040 = load i32, ptr %1039, align 4, !tbaa !5
  %1041 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1042 = call i32 @s2n_print_stacktrace(ptr noundef %1041) #11
  %1043 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1044 = trunc nuw i8 %1043 to i1
  br i1 %1044, label %1045, label %1049

1045:                                             ; preds = %1038
  %1046 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1047 = call i32 @fileno(ptr noundef %1046) #11
  %1048 = call i32 @isatty(i32 noundef %1047) #11
  %.not612 = icmp eq i32 %1048, 0
  br i1 %.not612, label %1049, label %1050

1049:                                             ; preds = %1045, %1038
  br label %1050

1050:                                             ; preds = %1045, %1049
  %.str.4.sink1153 = phi ptr [ @.str.4, %1049 ], [ @.str, %1045 ]
  store i32 %1040, ptr %1039, align 4, !tbaa !5
  %1051 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1052 = load i32, ptr @test_count, align 4, !tbaa !5
  %1053 = load i32, ptr %240, align 4, !tbaa !5
  %1054 = call ptr @s2n_strerror(i32 noundef %1053, ptr noundef nonnull @.str.3) #11
  %1055 = load i32, ptr %240, align 4, !tbaa !5
  %1056 = call ptr @s2n_strerror_debug(i32 noundef %1055, ptr noundef nonnull @.str.3) #11
  %1057 = load i32, ptr %1039, align 4, !tbaa !5
  %1058 = call ptr @strerror(i32 noundef %1057) #11
  %1059 = load i32, ptr %1039, align 4, !tbaa !5
  %1060 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1051, ptr noundef nonnull %.str.4.sink1153, i32 noundef %1052, ptr noundef nonnull @.str.83, ptr noundef nonnull @.str.2, i32 noundef 457, ptr noundef %1054, ptr noundef %1056, ptr noundef %1058, i32 noundef %1059) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1061:                                             ; preds = %1033
  %1062 = load i32, ptr @test_count, align 4, !tbaa !5
  %1063 = add nsw i32 %1062, 1
  store i32 %1063, ptr @test_count, align 4, !tbaa !5
  %1064 = call i32 @s2n_config_set_verification_ca_location(ptr noundef nonnull %980, ptr noundef nonnull @.str.69, ptr noundef null) #11
  %1065 = icmp eq i32 %1064, -1
  br i1 %1065, label %1066, label %1089

1066:                                             ; preds = %1061
  %1067 = tail call ptr @__errno_location() #12
  %1068 = load i32, ptr %1067, align 4, !tbaa !5
  %1069 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1070 = call i32 @s2n_print_stacktrace(ptr noundef %1069) #11
  %1071 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1072 = trunc nuw i8 %1071 to i1
  br i1 %1072, label %1073, label %1077

1073:                                             ; preds = %1066
  %1074 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1075 = call i32 @fileno(ptr noundef %1074) #11
  %1076 = call i32 @isatty(i32 noundef %1075) #11
  %.not611 = icmp eq i32 %1076, 0
  br i1 %.not611, label %1077, label %1078

1077:                                             ; preds = %1073, %1066
  br label %1078

1078:                                             ; preds = %1073, %1077
  %.str.4.sink1162 = phi ptr [ @.str.4, %1077 ], [ @.str, %1073 ]
  store i32 %1068, ptr %1067, align 4, !tbaa !5
  %1079 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1080 = load i32, ptr @test_count, align 4, !tbaa !5
  %1081 = load i32, ptr %240, align 4, !tbaa !5
  %1082 = call ptr @s2n_strerror(i32 noundef %1081, ptr noundef nonnull @.str.3) #11
  %1083 = load i32, ptr %240, align 4, !tbaa !5
  %1084 = call ptr @s2n_strerror_debug(i32 noundef %1083, ptr noundef nonnull @.str.3) #11
  %1085 = load i32, ptr %1067, align 4, !tbaa !5
  %1086 = call ptr @strerror(i32 noundef %1085) #11
  %1087 = load i32, ptr %1067, align 4, !tbaa !5
  %1088 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1079, ptr noundef nonnull %.str.4.sink1162, i32 noundef %1080, ptr noundef nonnull @.str.84, ptr noundef nonnull @.str.2, i32 noundef 459, ptr noundef %1082, ptr noundef %1084, ptr noundef %1086, i32 noundef %1087) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1089:                                             ; preds = %1061
  %1090 = call ptr @s2n_connection_new(i32 noundef 1) #11
  %1091 = load i32, ptr @test_count, align 4, !tbaa !5
  %1092 = add nsw i32 %1091, 1
  store i32 %1092, ptr @test_count, align 4, !tbaa !5
  %1093 = icmp eq ptr %1090, null
  br i1 %1093, label %1094, label %1117

1094:                                             ; preds = %1089
  %1095 = tail call ptr @__errno_location() #12
  %1096 = load i32, ptr %1095, align 4, !tbaa !5
  %1097 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1098 = call i32 @s2n_print_stacktrace(ptr noundef %1097) #11
  %1099 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1100 = trunc nuw i8 %1099 to i1
  br i1 %1100, label %1101, label %1105

1101:                                             ; preds = %1094
  %1102 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1103 = call i32 @fileno(ptr noundef %1102) #11
  %1104 = call i32 @isatty(i32 noundef %1103) #11
  %.not610 = icmp eq i32 %1104, 0
  br i1 %.not610, label %1105, label %1106

1105:                                             ; preds = %1101, %1094
  br label %1106

1106:                                             ; preds = %1101, %1105
  %.str.4.sink1171 = phi ptr [ @.str.4, %1105 ], [ @.str, %1101 ]
  store i32 %1096, ptr %1095, align 4, !tbaa !5
  %1107 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1108 = load i32, ptr @test_count, align 4, !tbaa !5
  %1109 = load i32, ptr %240, align 4, !tbaa !5
  %1110 = call ptr @s2n_strerror(i32 noundef %1109, ptr noundef nonnull @.str.3) #11
  %1111 = load i32, ptr %240, align 4, !tbaa !5
  %1112 = call ptr @s2n_strerror_debug(i32 noundef %1111, ptr noundef nonnull @.str.3) #11
  %1113 = load i32, ptr %1095, align 4, !tbaa !5
  %1114 = call ptr @strerror(i32 noundef %1113) #11
  %1115 = load i32, ptr %1095, align 4, !tbaa !5
  %1116 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1107, ptr noundef nonnull %.str.4.sink1171, i32 noundef %1108, ptr noundef nonnull @.str.85, ptr noundef nonnull @.str.2, i32 noundef 463, ptr noundef %1110, ptr noundef %1112, ptr noundef %1114, i32 noundef %1115) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1117:                                             ; preds = %1089
  %1118 = add nsw i32 %1091, 2
  store i32 %1118, ptr @test_count, align 4, !tbaa !5
  %1119 = call i32 @s2n_connection_set_config(ptr noundef nonnull %1090, ptr noundef nonnull %980) #11
  %1120 = icmp eq i32 %1119, -1
  br i1 %1120, label %1121, label %1144

1121:                                             ; preds = %1117
  %1122 = tail call ptr @__errno_location() #12
  %1123 = load i32, ptr %1122, align 4, !tbaa !5
  %1124 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1125 = call i32 @s2n_print_stacktrace(ptr noundef %1124) #11
  %1126 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1127 = trunc nuw i8 %1126 to i1
  br i1 %1127, label %1128, label %1132

1128:                                             ; preds = %1121
  %1129 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1130 = call i32 @fileno(ptr noundef %1129) #11
  %1131 = call i32 @isatty(i32 noundef %1130) #11
  %.not609 = icmp eq i32 %1131, 0
  br i1 %.not609, label %1132, label %1133

1132:                                             ; preds = %1128, %1121
  br label %1133

1133:                                             ; preds = %1128, %1132
  %.str.4.sink1180 = phi ptr [ @.str.4, %1132 ], [ @.str, %1128 ]
  store i32 %1123, ptr %1122, align 4, !tbaa !5
  %1134 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1135 = load i32, ptr @test_count, align 4, !tbaa !5
  %1136 = load i32, ptr %240, align 4, !tbaa !5
  %1137 = call ptr @s2n_strerror(i32 noundef %1136, ptr noundef nonnull @.str.3) #11
  %1138 = load i32, ptr %240, align 4, !tbaa !5
  %1139 = call ptr @s2n_strerror_debug(i32 noundef %1138, ptr noundef nonnull @.str.3) #11
  %1140 = load i32, ptr %1122, align 4, !tbaa !5
  %1141 = call ptr @strerror(i32 noundef %1140) #11
  %1142 = load i32, ptr %1122, align 4, !tbaa !5
  %1143 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1134, ptr noundef nonnull %.str.4.sink1180, i32 noundef %1135, ptr noundef nonnull @.str.86, ptr noundef nonnull @.str.2, i32 noundef 464, ptr noundef %1137, ptr noundef %1139, ptr noundef %1141, i32 noundef %1142) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1144:                                             ; preds = %1117
  %1145 = call ptr @s2n_connection_new(i32 noundef 0) #11
  %1146 = load i32, ptr @test_count, align 4, !tbaa !5
  %1147 = add nsw i32 %1146, 1
  store i32 %1147, ptr @test_count, align 4, !tbaa !5
  %1148 = icmp eq ptr %1145, null
  br i1 %1148, label %1149, label %1172

1149:                                             ; preds = %1144
  %1150 = tail call ptr @__errno_location() #12
  %1151 = load i32, ptr %1150, align 4, !tbaa !5
  %1152 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1153 = call i32 @s2n_print_stacktrace(ptr noundef %1152) #11
  %1154 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1155 = trunc nuw i8 %1154 to i1
  br i1 %1155, label %1156, label %1160

1156:                                             ; preds = %1149
  %1157 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1158 = call i32 @fileno(ptr noundef %1157) #11
  %1159 = call i32 @isatty(i32 noundef %1158) #11
  %.not608 = icmp eq i32 %1159, 0
  br i1 %.not608, label %1160, label %1161

1160:                                             ; preds = %1156, %1149
  br label %1161

1161:                                             ; preds = %1156, %1160
  %.str.4.sink1189 = phi ptr [ @.str.4, %1160 ], [ @.str, %1156 ]
  store i32 %1151, ptr %1150, align 4, !tbaa !5
  %1162 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1163 = load i32, ptr @test_count, align 4, !tbaa !5
  %1164 = load i32, ptr %240, align 4, !tbaa !5
  %1165 = call ptr @s2n_strerror(i32 noundef %1164, ptr noundef nonnull @.str.3) #11
  %1166 = load i32, ptr %240, align 4, !tbaa !5
  %1167 = call ptr @s2n_strerror_debug(i32 noundef %1166, ptr noundef nonnull @.str.3) #11
  %1168 = load i32, ptr %1150, align 4, !tbaa !5
  %1169 = call ptr @strerror(i32 noundef %1168) #11
  %1170 = load i32, ptr %1150, align 4, !tbaa !5
  %1171 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1162, ptr noundef nonnull %.str.4.sink1189, i32 noundef %1163, ptr noundef nonnull @.str.87, ptr noundef nonnull @.str.2, i32 noundef 467, ptr noundef %1165, ptr noundef %1167, ptr noundef %1169, i32 noundef %1170) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1172:                                             ; preds = %1144
  %1173 = add nsw i32 %1146, 2
  store i32 %1173, ptr @test_count, align 4, !tbaa !5
  %1174 = call i32 @s2n_connection_set_config(ptr noundef nonnull %1145, ptr noundef nonnull %866) #11
  %1175 = icmp eq i32 %1174, -1
  br i1 %1175, label %1176, label %1199

1176:                                             ; preds = %1172
  %1177 = tail call ptr @__errno_location() #12
  %1178 = load i32, ptr %1177, align 4, !tbaa !5
  %1179 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1180 = call i32 @s2n_print_stacktrace(ptr noundef %1179) #11
  %1181 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1182 = trunc nuw i8 %1181 to i1
  br i1 %1182, label %1183, label %1187

1183:                                             ; preds = %1176
  %1184 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1185 = call i32 @fileno(ptr noundef %1184) #11
  %1186 = call i32 @isatty(i32 noundef %1185) #11
  %.not607 = icmp eq i32 %1186, 0
  br i1 %.not607, label %1187, label %1188

1187:                                             ; preds = %1183, %1176
  br label %1188

1188:                                             ; preds = %1183, %1187
  %.str.4.sink1198 = phi ptr [ @.str.4, %1187 ], [ @.str, %1183 ]
  store i32 %1178, ptr %1177, align 4, !tbaa !5
  %1189 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1190 = load i32, ptr @test_count, align 4, !tbaa !5
  %1191 = load i32, ptr %240, align 4, !tbaa !5
  %1192 = call ptr @s2n_strerror(i32 noundef %1191, ptr noundef nonnull @.str.3) #11
  %1193 = load i32, ptr %240, align 4, !tbaa !5
  %1194 = call ptr @s2n_strerror_debug(i32 noundef %1193, ptr noundef nonnull @.str.3) #11
  %1195 = load i32, ptr %1177, align 4, !tbaa !5
  %1196 = call ptr @strerror(i32 noundef %1195) #11
  %1197 = load i32, ptr %1177, align 4, !tbaa !5
  %1198 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1189, ptr noundef nonnull %.str.4.sink1198, i32 noundef %1190, ptr noundef nonnull @.str.88, ptr noundef nonnull @.str.2, i32 noundef 468, ptr noundef %1192, ptr noundef %1194, ptr noundef %1196, i32 noundef %1197) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1199:                                             ; preds = %1172
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #11
  %1200 = load i32, ptr @test_count, align 4, !tbaa !5
  %1201 = add nsw i32 %1200, 1
  store i32 %1201, ptr @test_count, align 4, !tbaa !5
  %1202 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef nonnull %10) #11
  %1203 = icmp eq i32 %1202, -1
  br i1 %1203, label %1204, label %1227

1204:                                             ; preds = %1199
  %1205 = tail call ptr @__errno_location() #12
  %1206 = load i32, ptr %1205, align 4, !tbaa !5
  %1207 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1208 = call i32 @s2n_print_stacktrace(ptr noundef %1207) #11
  %1209 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1210 = trunc nuw i8 %1209 to i1
  br i1 %1210, label %1211, label %1215

1211:                                             ; preds = %1204
  %1212 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1213 = call i32 @fileno(ptr noundef %1212) #11
  %1214 = call i32 @isatty(i32 noundef %1213) #11
  %.not606 = icmp eq i32 %1214, 0
  br i1 %.not606, label %1215, label %1216

1215:                                             ; preds = %1211, %1204
  br label %1216

1216:                                             ; preds = %1211, %1215
  %.str.4.sink1207 = phi ptr [ @.str.4, %1215 ], [ @.str, %1211 ]
  store i32 %1206, ptr %1205, align 4, !tbaa !5
  %1217 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1218 = load i32, ptr @test_count, align 4, !tbaa !5
  %1219 = load i32, ptr %240, align 4, !tbaa !5
  %1220 = call ptr @s2n_strerror(i32 noundef %1219, ptr noundef nonnull @.str.3) #11
  %1221 = load i32, ptr %240, align 4, !tbaa !5
  %1222 = call ptr @s2n_strerror_debug(i32 noundef %1221, ptr noundef nonnull @.str.3) #11
  %1223 = load i32, ptr %1205, align 4, !tbaa !5
  %1224 = call ptr @strerror(i32 noundef %1223) #11
  %1225 = load i32, ptr %1205, align 4, !tbaa !5
  %1226 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1217, ptr noundef nonnull %.str.4.sink1207, i32 noundef %1218, ptr noundef nonnull @.str.89, ptr noundef nonnull @.str.2, i32 noundef 472, ptr noundef %1220, ptr noundef %1222, ptr noundef %1224, i32 noundef %1225) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1227:                                             ; preds = %1199
  %1228 = load i32, ptr @test_count, align 4, !tbaa !5
  %1229 = add nsw i32 %1228, 1
  store i32 %1229, ptr @test_count, align 4, !tbaa !5
  %1230 = call i32 @s2n_connection_set_io_pair(ptr noundef nonnull %1090, ptr noundef nonnull %10) #11
  %1231 = icmp eq i32 %1230, -1
  br i1 %1231, label %1232, label %1255

1232:                                             ; preds = %1227
  %1233 = tail call ptr @__errno_location() #12
  %1234 = load i32, ptr %1233, align 4, !tbaa !5
  %1235 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1236 = call i32 @s2n_print_stacktrace(ptr noundef %1235) #11
  %1237 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1238 = trunc nuw i8 %1237 to i1
  br i1 %1238, label %1239, label %1243

1239:                                             ; preds = %1232
  %1240 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1241 = call i32 @fileno(ptr noundef %1240) #11
  %1242 = call i32 @isatty(i32 noundef %1241) #11
  %.not605 = icmp eq i32 %1242, 0
  br i1 %.not605, label %1243, label %1244

1243:                                             ; preds = %1239, %1232
  br label %1244

1244:                                             ; preds = %1239, %1243
  %.str.4.sink1216 = phi ptr [ @.str.4, %1243 ], [ @.str, %1239 ]
  store i32 %1234, ptr %1233, align 4, !tbaa !5
  %1245 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1246 = load i32, ptr @test_count, align 4, !tbaa !5
  %1247 = load i32, ptr %240, align 4, !tbaa !5
  %1248 = call ptr @s2n_strerror(i32 noundef %1247, ptr noundef nonnull @.str.3) #11
  %1249 = load i32, ptr %240, align 4, !tbaa !5
  %1250 = call ptr @s2n_strerror_debug(i32 noundef %1249, ptr noundef nonnull @.str.3) #11
  %1251 = load i32, ptr %1233, align 4, !tbaa !5
  %1252 = call ptr @strerror(i32 noundef %1251) #11
  %1253 = load i32, ptr %1233, align 4, !tbaa !5
  %1254 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1245, ptr noundef nonnull %.str.4.sink1216, i32 noundef %1246, ptr noundef nonnull @.str.90, ptr noundef nonnull @.str.2, i32 noundef 473, ptr noundef %1248, ptr noundef %1250, ptr noundef %1252, i32 noundef %1253) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1255:                                             ; preds = %1227
  %1256 = load i32, ptr @test_count, align 4, !tbaa !5
  %1257 = add nsw i32 %1256, 1
  store i32 %1257, ptr @test_count, align 4, !tbaa !5
  %1258 = call i32 @s2n_connection_set_io_pair(ptr noundef nonnull %1145, ptr noundef nonnull %10) #11
  %1259 = icmp eq i32 %1258, -1
  br i1 %1259, label %1260, label %1283

1260:                                             ; preds = %1255
  %1261 = tail call ptr @__errno_location() #12
  %1262 = load i32, ptr %1261, align 4, !tbaa !5
  %1263 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1264 = call i32 @s2n_print_stacktrace(ptr noundef %1263) #11
  %1265 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1266 = trunc nuw i8 %1265 to i1
  br i1 %1266, label %1267, label %1271

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

1271:                                             ; preds = %1267, %1260
  br label %1272

1272:                                             ; preds = %1267, %1271
  %.str.4.sink1225 = phi ptr [ @.str.4, %1271 ], [ @.str, %1267 ]
  store i32 %1262, ptr %1261, align 4, !tbaa !5
  %1273 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1274 = load i32, ptr @test_count, align 4, !tbaa !5
  %1275 = load i32, ptr %240, align 4, !tbaa !5
  %1276 = call ptr @s2n_strerror(i32 noundef %1275, ptr noundef nonnull @.str.3) #11
  %1277 = load i32, ptr %240, align 4, !tbaa !5
  %1278 = call ptr @s2n_strerror_debug(i32 noundef %1277, ptr noundef nonnull @.str.3) #11
  %1279 = load i32, ptr %1261, align 4, !tbaa !5
  %1280 = call ptr @strerror(i32 noundef %1279) #11
  %1281 = load i32, ptr %1261, align 4, !tbaa !5
  %1282 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1273, ptr noundef nonnull %.str.4.sink1225, i32 noundef %1274, ptr noundef nonnull @.str.91, ptr noundef nonnull @.str.2, i32 noundef 474, ptr noundef %1276, ptr noundef %1278, ptr noundef %1280, i32 noundef %1281) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1283:                                             ; preds = %1255
  %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 = call i32 @try_handshake(ptr noundef nonnull %1145, ptr noundef nonnull %1090, ptr noundef nonnull @async_handler_wipe_connection_and_apply)
  %1287 = icmp eq i32 %1286, -1
  br i1 %1287, label %1311, label %1288

1288:                                             ; preds = %1283
  %1289 = tail call ptr @__errno_location() #12
  %1290 = load i32, ptr %1289, align 4, !tbaa !5
  %1291 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1292 = call i32 @s2n_print_stacktrace(ptr noundef %1291) #11
  %1293 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1294 = trunc nuw i8 %1293 to i1
  br i1 %1294, label %1295, label %1299

1295:                                             ; preds = %1288
  %1296 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1297 = call i32 @fileno(ptr noundef %1296) #11
  %1298 = call i32 @isatty(i32 noundef %1297) #11
  %.not536 = icmp eq i32 %1298, 0
  br i1 %.not536, label %1299, label %1300

1299:                                             ; preds = %1295, %1288
  br label %1300

1300:                                             ; preds = %1295, %1299
  %.str.4.sink1234 = phi ptr [ @.str.4, %1299 ], [ @.str, %1295 ]
  store i32 %1290, ptr %1289, align 4, !tbaa !5
  %1301 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1302 = load i32, ptr @test_count, align 4, !tbaa !5
  %1303 = load i32, ptr %240, align 4, !tbaa !5
  %1304 = call ptr @s2n_strerror(i32 noundef %1303, ptr noundef nonnull @.str.3) #11
  %1305 = load i32, ptr %240, align 4, !tbaa !5
  %1306 = call ptr @s2n_strerror_debug(i32 noundef %1305, ptr noundef nonnull @.str.3) #11
  %1307 = load i32, ptr %1289, align 4, !tbaa !5
  %1308 = call ptr @strerror(i32 noundef %1307) #11
  %1309 = load i32, ptr %1289, align 4, !tbaa !5
  %1310 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1301, ptr noundef nonnull %.str.4.sink1234, i32 noundef %1302, ptr noundef nonnull @.str.99, ptr noundef nonnull @.str.2, i32 noundef 476, ptr noundef %1304, ptr noundef %1306, ptr noundef %1308, i32 noundef %1309) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1311:                                             ; preds = %1283
  %1312 = load i32, ptr @test_count, align 4, !tbaa !5
  %1313 = add nsw i32 %1312, 1
  store i32 %1313, ptr @test_count, align 4, !tbaa !5
  %1314 = call i32 @s2n_connection_free(ptr noundef nonnull %1145) #11
  %1315 = icmp eq i32 %1314, -1
  br i1 %1315, label %1316, label %1339

1316:                                             ; preds = %1311
  %1317 = tail call ptr @__errno_location() #12
  %1318 = load i32, ptr %1317, align 4, !tbaa !5
  %1319 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1320 = call i32 @s2n_print_stacktrace(ptr noundef %1319) #11
  %1321 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1322 = trunc nuw i8 %1321 to i1
  br i1 %1322, label %1323, label %1327

1323:                                             ; preds = %1316
  %1324 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1325 = call i32 @fileno(ptr noundef %1324) #11
  %1326 = call i32 @isatty(i32 noundef %1325) #11
  %.not603 = icmp eq i32 %1326, 0
  br i1 %.not603, label %1327, label %1328

1327:                                             ; preds = %1323, %1316
  br label %1328

1328:                                             ; preds = %1323, %1327
  %.str.4.sink1243 = phi ptr [ @.str.4, %1327 ], [ @.str, %1323 ]
  store i32 %1318, ptr %1317, align 4, !tbaa !5
  %1329 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1330 = load i32, ptr @test_count, align 4, !tbaa !5
  %1331 = load i32, ptr %240, align 4, !tbaa !5
  %1332 = call ptr @s2n_strerror(i32 noundef %1331, ptr noundef nonnull @.str.3) #11
  %1333 = load i32, ptr %240, align 4, !tbaa !5
  %1334 = call ptr @s2n_strerror_debug(i32 noundef %1333, ptr noundef nonnull @.str.3) #11
  %1335 = load i32, ptr %1317, align 4, !tbaa !5
  %1336 = call ptr @strerror(i32 noundef %1335) #11
  %1337 = load i32, ptr %1317, align 4, !tbaa !5
  %1338 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1329, ptr noundef nonnull %.str.4.sink1243, i32 noundef %1330, ptr noundef nonnull @.str.93, ptr noundef nonnull @.str.2, i32 noundef 479, ptr noundef %1332, ptr noundef %1334, ptr noundef %1336, i32 noundef %1337) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1339:                                             ; preds = %1311
  %1340 = load i32, ptr @test_count, align 4, !tbaa !5
  %1341 = add nsw i32 %1340, 1
  store i32 %1341, ptr @test_count, align 4, !tbaa !5
  %1342 = call i32 @s2n_connection_free(ptr noundef nonnull %1090) #11
  %1343 = icmp eq i32 %1342, -1
  br i1 %1343, label %1344, label %1367

1344:                                             ; preds = %1339
  %1345 = tail call ptr @__errno_location() #12
  %1346 = load i32, ptr %1345, align 4, !tbaa !5
  %1347 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1348 = call i32 @s2n_print_stacktrace(ptr noundef %1347) #11
  %1349 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1350 = trunc nuw i8 %1349 to i1
  br i1 %1350, label %1351, label %1355

1351:                                             ; preds = %1344
  %1352 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1353 = call i32 @fileno(ptr noundef %1352) #11
  %1354 = call i32 @isatty(i32 noundef %1353) #11
  %.not602 = icmp eq i32 %1354, 0
  br i1 %.not602, label %1355, label %1356

1355:                                             ; preds = %1351, %1344
  br label %1356

1356:                                             ; preds = %1351, %1355
  %.str.4.sink1252 = phi ptr [ @.str.4, %1355 ], [ @.str, %1351 ]
  store i32 %1346, ptr %1345, align 4, !tbaa !5
  %1357 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1358 = load i32, ptr @test_count, align 4, !tbaa !5
  %1359 = load i32, ptr %240, align 4, !tbaa !5
  %1360 = call ptr @s2n_strerror(i32 noundef %1359, ptr noundef nonnull @.str.3) #11
  %1361 = load i32, ptr %240, align 4, !tbaa !5
  %1362 = call ptr @s2n_strerror_debug(i32 noundef %1361, ptr noundef nonnull @.str.3) #11
  %1363 = load i32, ptr %1345, align 4, !tbaa !5
  %1364 = call ptr @strerror(i32 noundef %1363) #11
  %1365 = load i32, ptr %1345, align 4, !tbaa !5
  %1366 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1357, ptr noundef nonnull %.str.4.sink1252, i32 noundef %1358, ptr noundef nonnull @.str.94, ptr noundef nonnull @.str.2, i32 noundef 480, ptr noundef %1360, ptr noundef %1362, ptr noundef %1364, i32 noundef %1365) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1367:                                             ; preds = %1339
  %1368 = load i32, ptr @test_count, align 4, !tbaa !5
  %1369 = add nsw i32 %1368, 1
  store i32 %1369, ptr @test_count, align 4, !tbaa !5
  %1370 = call i32 @s2n_io_pair_close(ptr noundef nonnull %10) #11
  %1371 = icmp eq i32 %1370, -1
  br i1 %1371, label %1372, label %1395

1372:                                             ; preds = %1367
  %1373 = tail call ptr @__errno_location() #12
  %1374 = load i32, ptr %1373, align 4, !tbaa !5
  %1375 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1376 = call i32 @s2n_print_stacktrace(ptr noundef %1375) #11
  %1377 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1378 = trunc nuw i8 %1377 to i1
  br i1 %1378, label %1379, label %1383

1379:                                             ; preds = %1372
  %1380 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1381 = call i32 @fileno(ptr noundef %1380) #11
  %1382 = call i32 @isatty(i32 noundef %1381) #11
  %.not601 = icmp eq i32 %1382, 0
  br i1 %.not601, label %1383, label %1384

1383:                                             ; preds = %1379, %1372
  br label %1384

1384:                                             ; preds = %1379, %1383
  %.str.4.sink1261 = phi ptr [ @.str.4, %1383 ], [ @.str, %1379 ]
  store i32 %1374, ptr %1373, align 4, !tbaa !5
  %1385 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1386 = load i32, ptr @test_count, align 4, !tbaa !5
  %1387 = load i32, ptr %240, align 4, !tbaa !5
  %1388 = call ptr @s2n_strerror(i32 noundef %1387, ptr noundef nonnull @.str.3) #11
  %1389 = load i32, ptr %240, align 4, !tbaa !5
  %1390 = call ptr @s2n_strerror_debug(i32 noundef %1389, ptr noundef nonnull @.str.3) #11
  %1391 = load i32, ptr %1373, align 4, !tbaa !5
  %1392 = call ptr @strerror(i32 noundef %1391) #11
  %1393 = load i32, ptr %1373, align 4, !tbaa !5
  %1394 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1385, ptr noundef nonnull %.str.4.sink1261, i32 noundef %1386, ptr noundef nonnull @.str.95, ptr noundef nonnull @.str.2, i32 noundef 481, ptr noundef %1388, ptr noundef %1390, ptr noundef %1392, i32 noundef %1393) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1395:                                             ; preds = %1367
  %1396 = load i32, ptr @test_count, align 4, !tbaa !5
  %1397 = add nsw i32 %1396, 1
  store i32 %1397, ptr @test_count, align 4, !tbaa !5
  %1398 = call i32 @s2n_config_free(ptr noundef nonnull %866) #11
  %1399 = icmp eq i32 %1398, -1
  br i1 %1399, label %1400, label %1423

1400:                                             ; preds = %1395
  %1401 = tail call ptr @__errno_location() #12
  %1402 = load i32, ptr %1401, align 4, !tbaa !5
  %1403 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1404 = call i32 @s2n_print_stacktrace(ptr noundef %1403) #11
  %1405 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1406 = trunc nuw i8 %1405 to i1
  br i1 %1406, label %1407, label %1411

1407:                                             ; preds = %1400
  %1408 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1409 = call i32 @fileno(ptr noundef %1408) #11
  %1410 = call i32 @isatty(i32 noundef %1409) #11
  %.not600 = icmp eq i32 %1410, 0
  br i1 %.not600, label %1411, label %1412

1411:                                             ; preds = %1407, %1400
  br label %1412

1412:                                             ; preds = %1407, %1411
  %.str.4.sink1270 = phi ptr [ @.str.4, %1411 ], [ @.str, %1407 ]
  store i32 %1402, ptr %1401, align 4, !tbaa !5
  %1413 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1414 = load i32, ptr @test_count, align 4, !tbaa !5
  %1415 = load i32, ptr %240, align 4, !tbaa !5
  %1416 = call ptr @s2n_strerror(i32 noundef %1415, ptr noundef nonnull @.str.3) #11
  %1417 = load i32, ptr %240, align 4, !tbaa !5
  %1418 = call ptr @s2n_strerror_debug(i32 noundef %1417, ptr noundef nonnull @.str.3) #11
  %1419 = load i32, ptr %1401, align 4, !tbaa !5
  %1420 = call ptr @strerror(i32 noundef %1419) #11
  %1421 = load i32, ptr %1401, align 4, !tbaa !5
  %1422 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1413, ptr noundef nonnull %.str.4.sink1270, i32 noundef %1414, ptr noundef nonnull @.str.96, ptr noundef nonnull @.str.2, i32 noundef 482, ptr noundef %1416, ptr noundef %1418, ptr noundef %1420, i32 noundef %1421) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1423:                                             ; preds = %1395
  %1424 = load i32, ptr @test_count, align 4, !tbaa !5
  %1425 = add nsw i32 %1424, 1
  store i32 %1425, ptr @test_count, align 4, !tbaa !5
  %1426 = call i32 @s2n_config_free(ptr noundef nonnull %980) #11
  %1427 = icmp eq i32 %1426, -1
  br i1 %1427, label %1428, label %1451

1428:                                             ; preds = %1423
  %1429 = tail call ptr @__errno_location() #12
  %1430 = load i32, ptr %1429, align 4, !tbaa !5
  %1431 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1432 = call i32 @s2n_print_stacktrace(ptr noundef %1431) #11
  %1433 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1434 = trunc nuw i8 %1433 to i1
  br i1 %1434, label %1435, label %1439

1435:                                             ; preds = %1428
  %1436 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1437 = call i32 @fileno(ptr noundef %1436) #11
  %1438 = call i32 @isatty(i32 noundef %1437) #11
  %.not599 = icmp eq i32 %1438, 0
  br i1 %.not599, label %1439, label %1440

1439:                                             ; preds = %1435, %1428
  br label %1440

1440:                                             ; preds = %1435, %1439
  %.str.4.sink1279 = phi ptr [ @.str.4, %1439 ], [ @.str, %1435 ]
  store i32 %1430, ptr %1429, align 4, !tbaa !5
  %1441 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1442 = load i32, ptr @test_count, align 4, !tbaa !5
  %1443 = load i32, ptr %240, align 4, !tbaa !5
  %1444 = call ptr @s2n_strerror(i32 noundef %1443, ptr noundef nonnull @.str.3) #11
  %1445 = load i32, ptr %240, align 4, !tbaa !5
  %1446 = call ptr @s2n_strerror_debug(i32 noundef %1445, ptr noundef nonnull @.str.3) #11
  %1447 = load i32, ptr %1429, align 4, !tbaa !5
  %1448 = call ptr @strerror(i32 noundef %1447) #11
  %1449 = load i32, ptr %1429, align 4, !tbaa !5
  %1450 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1441, ptr noundef nonnull %.str.4.sink1279, i32 noundef %1442, ptr noundef nonnull @.str.97, ptr noundef nonnull @.str.2, i32 noundef 483, ptr noundef %1444, ptr noundef %1446, ptr noundef %1448, i32 noundef %1449) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1451:                                             ; preds = %1423
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #11
  %1452 = load i32, ptr @test_count, align 4, !tbaa !5
  %1453 = add nsw i32 %1452, 1
  store i32 %1453, ptr @test_count, align 4, !tbaa !5
  %1454 = call ptr @s2n_config_new() #11
  %1455 = icmp eq ptr %1454, null
  br i1 %1455, label %1456, label %1479

1456:                                             ; preds = %1451
  %1457 = tail call ptr @__errno_location() #12
  %1458 = load i32, ptr %1457, align 4, !tbaa !5
  %1459 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1460 = call i32 @s2n_print_stacktrace(ptr noundef %1459) #11
  %1461 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1462 = trunc nuw i8 %1461 to i1
  br i1 %1462, label %1463, label %1467

1463:                                             ; preds = %1456
  %1464 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1465 = call i32 @fileno(ptr noundef %1464) #11
  %1466 = call i32 @isatty(i32 noundef %1465) #11
  %.not598 = icmp eq i32 %1466, 0
  br i1 %.not598, label %1467, label %1468

1467:                                             ; preds = %1463, %1456
  br label %1468

1468:                                             ; preds = %1463, %1467
  %.str.4.sink1288 = phi ptr [ @.str.4, %1467 ], [ @.str, %1463 ]
  store i32 %1458, ptr %1457, align 4, !tbaa !5
  %1469 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1470 = load i32, ptr @test_count, align 4, !tbaa !5
  %1471 = load i32, ptr %240, align 4, !tbaa !5
  %1472 = call ptr @s2n_strerror(i32 noundef %1471, ptr noundef nonnull @.str.3) #11
  %1473 = load i32, ptr %240, align 4, !tbaa !5
  %1474 = call ptr @s2n_strerror_debug(i32 noundef %1473, ptr noundef nonnull @.str.3) #11
  %1475 = load i32, ptr %1457, align 4, !tbaa !5
  %1476 = call ptr @strerror(i32 noundef %1475) #11
  %1477 = load i32, ptr %1457, align 4, !tbaa !5
  %1478 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1469, ptr noundef nonnull %.str.4.sink1288, i32 noundef %1470, ptr noundef nonnull @.str.76, ptr noundef nonnull @.str.2, i32 noundef 489, ptr noundef %1472, ptr noundef %1474, ptr noundef %1476, i32 noundef %1477) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1479:                                             ; preds = %1451
  %1480 = load i32, ptr @test_count, align 4, !tbaa !5
  %1481 = add nsw i32 %1480, 1
  store i32 %1481, ptr @test_count, align 4, !tbaa !5
  %1482 = load ptr, ptr %4, align 8, !tbaa !9
  %1483 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef nonnull %1454, ptr noundef %1482) #11
  %1484 = icmp eq i32 %1483, -1
  br i1 %1484, label %1485, label %1508

1485:                                             ; preds = %1479
  %1486 = tail call ptr @__errno_location() #12
  %1487 = load i32, ptr %1486, align 4, !tbaa !5
  %1488 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1489 = call i32 @s2n_print_stacktrace(ptr noundef %1488) #11
  %1490 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1491 = trunc nuw i8 %1490 to i1
  br i1 %1491, label %1492, label %1496

1492:                                             ; preds = %1485
  %1493 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1494 = call i32 @fileno(ptr noundef %1493) #11
  %1495 = call i32 @isatty(i32 noundef %1494) #11
  %.not597 = icmp eq i32 %1495, 0
  br i1 %.not597, label %1496, label %1497

1496:                                             ; preds = %1492, %1485
  br label %1497

1497:                                             ; preds = %1492, %1496
  %.str.4.sink1297 = phi ptr [ @.str.4, %1496 ], [ @.str, %1492 ]
  store i32 %1487, ptr %1486, align 4, !tbaa !5
  %1498 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1499 = load i32, ptr @test_count, align 4, !tbaa !5
  %1500 = load i32, ptr %240, align 4, !tbaa !5
  %1501 = call ptr @s2n_strerror(i32 noundef %1500, ptr noundef nonnull @.str.3) #11
  %1502 = load i32, ptr %240, align 4, !tbaa !5
  %1503 = call ptr @s2n_strerror_debug(i32 noundef %1502, ptr noundef nonnull @.str.3) #11
  %1504 = load i32, ptr %1486, align 4, !tbaa !5
  %1505 = call ptr @strerror(i32 noundef %1504) #11
  %1506 = load i32, ptr %1486, align 4, !tbaa !5
  %1507 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1498, ptr noundef nonnull %.str.4.sink1297, i32 noundef %1499, ptr noundef nonnull @.str.77, ptr noundef nonnull @.str.2, i32 noundef 490, ptr noundef %1501, ptr noundef %1503, ptr noundef %1505, i32 noundef %1506) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1508:                                             ; preds = %1479
  %1509 = load i32, ptr @test_count, align 4, !tbaa !5
  %1510 = add nsw i32 %1509, 1
  store i32 %1510, ptr @test_count, align 4, !tbaa !5
  %1511 = call i32 @s2n_config_add_dhparams(ptr noundef nonnull %1454, ptr noundef nonnull %3) #11
  %1512 = icmp eq i32 %1511, -1
  br i1 %1512, label %1513, label %1536

1513:                                             ; preds = %1508
  %1514 = tail call ptr @__errno_location() #12
  %1515 = load i32, ptr %1514, align 4, !tbaa !5
  %1516 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1517 = call i32 @s2n_print_stacktrace(ptr noundef %1516) #11
  %1518 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1519 = trunc nuw i8 %1518 to i1
  br i1 %1519, label %1520, label %1524

1520:                                             ; preds = %1513
  %1521 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1522 = call i32 @fileno(ptr noundef %1521) #11
  %1523 = call i32 @isatty(i32 noundef %1522) #11
  %.not596 = icmp eq i32 %1523, 0
  br i1 %.not596, label %1524, label %1525

1524:                                             ; preds = %1520, %1513
  br label %1525

1525:                                             ; preds = %1520, %1524
  %.str.4.sink1306 = phi ptr [ @.str.4, %1524 ], [ @.str, %1520 ]
  store i32 %1515, ptr %1514, align 4, !tbaa !5
  %1526 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1527 = load i32, ptr @test_count, align 4, !tbaa !5
  %1528 = load i32, ptr %240, align 4, !tbaa !5
  %1529 = call ptr @s2n_strerror(i32 noundef %1528, ptr noundef nonnull @.str.3) #11
  %1530 = load i32, ptr %240, align 4, !tbaa !5
  %1531 = call ptr @s2n_strerror_debug(i32 noundef %1530, ptr noundef nonnull @.str.3) #11
  %1532 = load i32, ptr %1514, align 4, !tbaa !5
  %1533 = call ptr @strerror(i32 noundef %1532) #11
  %1534 = load i32, ptr %1514, align 4, !tbaa !5
  %1535 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1526, ptr noundef nonnull %.str.4.sink1306, i32 noundef %1527, ptr noundef nonnull @.str.78, ptr noundef nonnull @.str.2, i32 noundef 491, ptr noundef %1529, ptr noundef %1531, ptr noundef %1533, i32 noundef %1534) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1536:                                             ; preds = %1508
  %1537 = load i32, ptr @test_count, align 4, !tbaa !5
  %1538 = add nsw i32 %1537, 1
  store i32 %1538, ptr @test_count, align 4, !tbaa !5
  %1539 = call i32 @s2n_config_set_async_pkey_callback(ptr noundef nonnull %1454, ptr noundef nonnull @async_pkey_store_callback) #11
  %1540 = icmp eq i32 %1539, -1
  br i1 %1540, label %1541, label %1564

1541:                                             ; preds = %1536
  %1542 = tail call ptr @__errno_location() #12
  %1543 = load i32, ptr %1542, align 4, !tbaa !5
  %1544 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1545 = call i32 @s2n_print_stacktrace(ptr noundef %1544) #11
  %1546 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1547 = trunc nuw i8 %1546 to i1
  br i1 %1547, label %1548, label %1552

1548:                                             ; preds = %1541
  %1549 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1550 = call i32 @fileno(ptr noundef %1549) #11
  %1551 = call i32 @isatty(i32 noundef %1550) #11
  %.not595 = icmp eq i32 %1551, 0
  br i1 %.not595, label %1552, label %1553

1552:                                             ; preds = %1548, %1541
  br label %1553

1553:                                             ; preds = %1548, %1552
  %.str.4.sink1315 = phi ptr [ @.str.4, %1552 ], [ @.str, %1548 ]
  store i32 %1543, ptr %1542, align 4, !tbaa !5
  %1554 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1555 = load i32, ptr @test_count, align 4, !tbaa !5
  %1556 = load i32, ptr %240, align 4, !tbaa !5
  %1557 = call ptr @s2n_strerror(i32 noundef %1556, ptr noundef nonnull @.str.3) #11
  %1558 = load i32, ptr %240, align 4, !tbaa !5
  %1559 = call ptr @s2n_strerror_debug(i32 noundef %1558, ptr noundef nonnull @.str.3) #11
  %1560 = load i32, ptr %1542, align 4, !tbaa !5
  %1561 = call ptr @strerror(i32 noundef %1560) #11
  %1562 = load i32, ptr %1542, align 4, !tbaa !5
  %1563 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1554, ptr noundef nonnull %.str.4.sink1315, i32 noundef %1555, ptr noundef nonnull @.str.98, ptr noundef nonnull @.str.2, i32 noundef 492, ptr noundef %1557, ptr noundef %1559, ptr noundef %1561, i32 noundef %1562) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1564:                                             ; preds = %1536
  %1565 = getelementptr inbounds i8, ptr %1454, i64 96
  store ptr %8, ptr %1565, align 8, !tbaa !29
  %1566 = load i32, ptr @test_count, align 4, !tbaa !5
  %1567 = add nsw i32 %1566, 1
  store i32 %1567, ptr @test_count, align 4, !tbaa !5
  %1568 = call ptr @s2n_config_new() #11
  %1569 = icmp eq ptr %1568, null
  br i1 %1569, label %1570, label %1593

1570:                                             ; preds = %1564
  %1571 = tail call ptr @__errno_location() #12
  %1572 = load i32, ptr %1571, align 4, !tbaa !5
  %1573 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1574 = call i32 @s2n_print_stacktrace(ptr noundef %1573) #11
  %1575 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1576 = trunc nuw i8 %1575 to i1
  br i1 %1576, label %1577, label %1581

1577:                                             ; preds = %1570
  %1578 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1579 = call i32 @fileno(ptr noundef %1578) #11
  %1580 = call i32 @isatty(i32 noundef %1579) #11
  %.not594 = icmp eq i32 %1580, 0
  br i1 %.not594, label %1581, label %1582

1581:                                             ; preds = %1577, %1570
  br label %1582

1582:                                             ; preds = %1577, %1581
  %.str.4.sink1324 = phi ptr [ @.str.4, %1581 ], [ @.str, %1577 ]
  store i32 %1572, ptr %1571, align 4, !tbaa !5
  %1583 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1584 = load i32, ptr @test_count, align 4, !tbaa !5
  %1585 = load i32, ptr %240, align 4, !tbaa !5
  %1586 = call ptr @s2n_strerror(i32 noundef %1585, ptr noundef nonnull @.str.3) #11
  %1587 = load i32, ptr %240, align 4, !tbaa !5
  %1588 = call ptr @s2n_strerror_debug(i32 noundef %1587, ptr noundef nonnull @.str.3) #11
  %1589 = load i32, ptr %1571, align 4, !tbaa !5
  %1590 = call ptr @strerror(i32 noundef %1589) #11
  %1591 = load i32, ptr %1571, align 4, !tbaa !5
  %1592 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1583, ptr noundef nonnull %.str.4.sink1324, i32 noundef %1584, ptr noundef nonnull @.str.80, ptr noundef nonnull @.str.2, i32 noundef 495, ptr noundef %1586, ptr noundef %1588, ptr noundef %1590, i32 noundef %1591) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1593:                                             ; preds = %1564
  %1594 = load i32, ptr @test_count, align 4, !tbaa !5
  %1595 = add nsw i32 %1594, 1
  store i32 %1595, ptr @test_count, align 4, !tbaa !5
  %1596 = call i32 @s2n_config_set_unsafe_for_testing(ptr noundef nonnull %1568) #11
  %1597 = icmp eq i32 %1596, -1
  br i1 %1597, label %1598, label %1621

1598:                                             ; preds = %1593
  %1599 = tail call ptr @__errno_location() #12
  %1600 = load i32, ptr %1599, align 4, !tbaa !5
  %1601 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1602 = call i32 @s2n_print_stacktrace(ptr noundef %1601) #11
  %1603 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1604 = trunc nuw i8 %1603 to i1
  br i1 %1604, label %1605, label %1609

1605:                                             ; preds = %1598
  %1606 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1607 = call i32 @fileno(ptr noundef %1606) #11
  %1608 = call i32 @isatty(i32 noundef %1607) #11
  %.not593 = icmp eq i32 %1608, 0
  br i1 %.not593, label %1609, label %1610

1609:                                             ; preds = %1605, %1598
  br label %1610

1610:                                             ; preds = %1605, %1609
  %.str.4.sink1333 = phi ptr [ @.str.4, %1609 ], [ @.str, %1605 ]
  store i32 %1600, ptr %1599, align 4, !tbaa !5
  %1611 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1612 = load i32, ptr @test_count, align 4, !tbaa !5
  %1613 = load i32, ptr %240, align 4, !tbaa !5
  %1614 = call ptr @s2n_strerror(i32 noundef %1613, ptr noundef nonnull @.str.3) #11
  %1615 = load i32, ptr %240, align 4, !tbaa !5
  %1616 = call ptr @s2n_strerror_debug(i32 noundef %1615, ptr noundef nonnull @.str.3) #11
  %1617 = load i32, ptr %1599, align 4, !tbaa !5
  %1618 = call ptr @strerror(i32 noundef %1617) #11
  %1619 = load i32, ptr %1599, align 4, !tbaa !5
  %1620 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1611, ptr noundef nonnull %.str.4.sink1333, i32 noundef %1612, ptr noundef nonnull @.str.81, ptr noundef nonnull @.str.2, i32 noundef 496, ptr noundef %1614, ptr noundef %1616, ptr noundef %1618, i32 noundef %1619) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1621:                                             ; preds = %1593
  %1622 = load i32, ptr @test_count, align 4, !tbaa !5
  %1623 = add nsw i32 %1622, 1
  store i32 %1623, ptr @test_count, align 4, !tbaa !5
  %1624 = call i32 @s2n_config_set_cipher_preferences(ptr noundef nonnull %1568, ptr noundef nonnull @.str.82) #11
  %1625 = icmp eq i32 %1624, -1
  br i1 %1625, label %1626, label %1649

1626:                                             ; preds = %1621
  %1627 = tail call ptr @__errno_location() #12
  %1628 = load i32, ptr %1627, align 4, !tbaa !5
  %1629 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1630 = call i32 @s2n_print_stacktrace(ptr noundef %1629) #11
  %1631 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1632 = trunc nuw i8 %1631 to i1
  br i1 %1632, label %1633, label %1637

1633:                                             ; preds = %1626
  %1634 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1635 = call i32 @fileno(ptr noundef %1634) #11
  %1636 = call i32 @isatty(i32 noundef %1635) #11
  %.not592 = icmp eq i32 %1636, 0
  br i1 %.not592, label %1637, label %1638

1637:                                             ; preds = %1633, %1626
  br label %1638

1638:                                             ; preds = %1633, %1637
  %.str.4.sink1342 = phi ptr [ @.str.4, %1637 ], [ @.str, %1633 ]
  store i32 %1628, ptr %1627, align 4, !tbaa !5
  %1639 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1640 = load i32, ptr @test_count, align 4, !tbaa !5
  %1641 = load i32, ptr %240, align 4, !tbaa !5
  %1642 = call ptr @s2n_strerror(i32 noundef %1641, ptr noundef nonnull @.str.3) #11
  %1643 = load i32, ptr %240, align 4, !tbaa !5
  %1644 = call ptr @s2n_strerror_debug(i32 noundef %1643, ptr noundef nonnull @.str.3) #11
  %1645 = load i32, ptr %1627, align 4, !tbaa !5
  %1646 = call ptr @strerror(i32 noundef %1645) #11
  %1647 = load i32, ptr %1627, align 4, !tbaa !5
  %1648 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1639, ptr noundef nonnull %.str.4.sink1342, i32 noundef %1640, ptr noundef nonnull @.str.83, ptr noundef nonnull @.str.2, i32 noundef 498, ptr noundef %1642, ptr noundef %1644, ptr noundef %1646, i32 noundef %1647) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1649:                                             ; preds = %1621
  %1650 = load i32, ptr @test_count, align 4, !tbaa !5
  %1651 = add nsw i32 %1650, 1
  store i32 %1651, ptr @test_count, align 4, !tbaa !5
  %1652 = call i32 @s2n_config_set_verification_ca_location(ptr noundef nonnull %1568, ptr noundef nonnull @.str.69, ptr noundef null) #11
  %1653 = icmp eq i32 %1652, -1
  br i1 %1653, label %1654, label %1677

1654:                                             ; preds = %1649
  %1655 = tail call ptr @__errno_location() #12
  %1656 = load i32, ptr %1655, align 4, !tbaa !5
  %1657 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1658 = call i32 @s2n_print_stacktrace(ptr noundef %1657) #11
  %1659 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1660 = trunc nuw i8 %1659 to i1
  br i1 %1660, label %1661, label %1665

1661:                                             ; preds = %1654
  %1662 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1663 = call i32 @fileno(ptr noundef %1662) #11
  %1664 = call i32 @isatty(i32 noundef %1663) #11
  %.not591 = icmp eq i32 %1664, 0
  br i1 %.not591, label %1665, label %1666

1665:                                             ; preds = %1661, %1654
  br label %1666

1666:                                             ; preds = %1661, %1665
  %.str.4.sink1351 = phi ptr [ @.str.4, %1665 ], [ @.str, %1661 ]
  store i32 %1656, ptr %1655, align 4, !tbaa !5
  %1667 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1668 = load i32, ptr @test_count, align 4, !tbaa !5
  %1669 = load i32, ptr %240, align 4, !tbaa !5
  %1670 = call ptr @s2n_strerror(i32 noundef %1669, ptr noundef nonnull @.str.3) #11
  %1671 = load i32, ptr %240, align 4, !tbaa !5
  %1672 = call ptr @s2n_strerror_debug(i32 noundef %1671, ptr noundef nonnull @.str.3) #11
  %1673 = load i32, ptr %1655, align 4, !tbaa !5
  %1674 = call ptr @strerror(i32 noundef %1673) #11
  %1675 = load i32, ptr %1655, align 4, !tbaa !5
  %1676 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1667, ptr noundef nonnull %.str.4.sink1351, i32 noundef %1668, ptr noundef nonnull @.str.84, ptr noundef nonnull @.str.2, i32 noundef 500, ptr noundef %1670, ptr noundef %1672, ptr noundef %1674, i32 noundef %1675) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1677:                                             ; preds = %1649
  %1678 = call ptr @s2n_connection_new(i32 noundef 1) #11
  %1679 = load i32, ptr @test_count, align 4, !tbaa !5
  %1680 = add nsw i32 %1679, 1
  store i32 %1680, ptr @test_count, align 4, !tbaa !5
  %1681 = icmp eq ptr %1678, null
  br i1 %1681, label %1682, label %1705

1682:                                             ; preds = %1677
  %1683 = tail call ptr @__errno_location() #12
  %1684 = load i32, ptr %1683, align 4, !tbaa !5
  %1685 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1686 = call i32 @s2n_print_stacktrace(ptr noundef %1685) #11
  %1687 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1688 = trunc nuw i8 %1687 to i1
  br i1 %1688, label %1689, label %1693

1689:                                             ; preds = %1682
  %1690 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1691 = call i32 @fileno(ptr noundef %1690) #11
  %1692 = call i32 @isatty(i32 noundef %1691) #11
  %.not590 = icmp eq i32 %1692, 0
  br i1 %.not590, label %1693, label %1694

1693:                                             ; preds = %1689, %1682
  br label %1694

1694:                                             ; preds = %1689, %1693
  %.str.4.sink1360 = phi ptr [ @.str.4, %1693 ], [ @.str, %1689 ]
  store i32 %1684, ptr %1683, align 4, !tbaa !5
  %1695 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1696 = load i32, ptr @test_count, align 4, !tbaa !5
  %1697 = load i32, ptr %240, align 4, !tbaa !5
  %1698 = call ptr @s2n_strerror(i32 noundef %1697, ptr noundef nonnull @.str.3) #11
  %1699 = load i32, ptr %240, align 4, !tbaa !5
  %1700 = call ptr @s2n_strerror_debug(i32 noundef %1699, ptr noundef nonnull @.str.3) #11
  %1701 = load i32, ptr %1683, align 4, !tbaa !5
  %1702 = call ptr @strerror(i32 noundef %1701) #11
  %1703 = load i32, ptr %1683, align 4, !tbaa !5
  %1704 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1695, ptr noundef nonnull %.str.4.sink1360, i32 noundef %1696, ptr noundef nonnull @.str.85, ptr noundef nonnull @.str.2, i32 noundef 504, ptr noundef %1698, ptr noundef %1700, ptr noundef %1702, i32 noundef %1703) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1705:                                             ; preds = %1677
  %1706 = add nsw i32 %1679, 2
  store i32 %1706, ptr @test_count, align 4, !tbaa !5
  %1707 = call i32 @s2n_connection_set_config(ptr noundef nonnull %1678, ptr noundef nonnull %1568) #11
  %1708 = icmp eq i32 %1707, -1
  br i1 %1708, label %1709, label %1732

1709:                                             ; preds = %1705
  %1710 = tail call ptr @__errno_location() #12
  %1711 = load i32, ptr %1710, align 4, !tbaa !5
  %1712 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1713 = call i32 @s2n_print_stacktrace(ptr noundef %1712) #11
  %1714 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1715 = trunc nuw i8 %1714 to i1
  br i1 %1715, label %1716, label %1720

1716:                                             ; preds = %1709
  %1717 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1718 = call i32 @fileno(ptr noundef %1717) #11
  %1719 = call i32 @isatty(i32 noundef %1718) #11
  %.not589 = icmp eq i32 %1719, 0
  br i1 %.not589, label %1720, label %1721

1720:                                             ; preds = %1716, %1709
  br label %1721

1721:                                             ; preds = %1716, %1720
  %.str.4.sink1369 = phi ptr [ @.str.4, %1720 ], [ @.str, %1716 ]
  store i32 %1711, ptr %1710, align 4, !tbaa !5
  %1722 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1723 = load i32, ptr @test_count, align 4, !tbaa !5
  %1724 = load i32, ptr %240, align 4, !tbaa !5
  %1725 = call ptr @s2n_strerror(i32 noundef %1724, ptr noundef nonnull @.str.3) #11
  %1726 = load i32, ptr %240, align 4, !tbaa !5
  %1727 = call ptr @s2n_strerror_debug(i32 noundef %1726, ptr noundef nonnull @.str.3) #11
  %1728 = load i32, ptr %1710, align 4, !tbaa !5
  %1729 = call ptr @strerror(i32 noundef %1728) #11
  %1730 = load i32, ptr %1710, align 4, !tbaa !5
  %1731 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1722, ptr noundef nonnull %.str.4.sink1369, i32 noundef %1723, ptr noundef nonnull @.str.86, ptr noundef nonnull @.str.2, i32 noundef 505, ptr noundef %1725, ptr noundef %1727, ptr noundef %1729, i32 noundef %1730) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1732:                                             ; preds = %1705
  %1733 = call ptr @s2n_connection_new(i32 noundef 0) #11
  %1734 = load i32, ptr @test_count, align 4, !tbaa !5
  %1735 = add nsw i32 %1734, 1
  store i32 %1735, ptr @test_count, align 4, !tbaa !5
  %1736 = icmp eq ptr %1733, null
  br i1 %1736, label %1737, label %1760

1737:                                             ; preds = %1732
  %1738 = tail call ptr @__errno_location() #12
  %1739 = load i32, ptr %1738, align 4, !tbaa !5
  %1740 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1741 = call i32 @s2n_print_stacktrace(ptr noundef %1740) #11
  %1742 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1743 = trunc nuw i8 %1742 to i1
  br i1 %1743, label %1744, label %1748

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

1748:                                             ; preds = %1744, %1737
  br label %1749

1749:                                             ; preds = %1744, %1748
  %.str.4.sink1378 = phi ptr [ @.str.4, %1748 ], [ @.str, %1744 ]
  store i32 %1739, ptr %1738, align 4, !tbaa !5
  %1750 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1751 = load i32, ptr @test_count, align 4, !tbaa !5
  %1752 = load i32, ptr %240, align 4, !tbaa !5
  %1753 = call ptr @s2n_strerror(i32 noundef %1752, ptr noundef nonnull @.str.3) #11
  %1754 = load i32, ptr %240, align 4, !tbaa !5
  %1755 = call ptr @s2n_strerror_debug(i32 noundef %1754, ptr noundef nonnull @.str.3) #11
  %1756 = load i32, ptr %1738, align 4, !tbaa !5
  %1757 = call ptr @strerror(i32 noundef %1756) #11
  %1758 = load i32, ptr %1738, align 4, !tbaa !5
  %1759 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1750, ptr noundef nonnull %.str.4.sink1378, i32 noundef %1751, ptr noundef nonnull @.str.87, ptr noundef nonnull @.str.2, i32 noundef 508, ptr noundef %1753, ptr noundef %1755, ptr noundef %1757, i32 noundef %1758) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1760:                                             ; preds = %1732
  %1761 = add nsw i32 %1734, 2
  store i32 %1761, ptr @test_count, align 4, !tbaa !5
  %1762 = call i32 @s2n_connection_set_config(ptr noundef nonnull %1733, ptr noundef nonnull %1454) #11
  %1763 = icmp eq i32 %1762, -1
  br i1 %1763, label %1764, label %1787

1764:                                             ; preds = %1760
  %1765 = tail call ptr @__errno_location() #12
  %1766 = load i32, ptr %1765, align 4, !tbaa !5
  %1767 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1768 = call i32 @s2n_print_stacktrace(ptr noundef %1767) #11
  %1769 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1770 = trunc nuw i8 %1769 to i1
  br i1 %1770, label %1771, label %1775

1771:                                             ; preds = %1764
  %1772 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1773 = call i32 @fileno(ptr noundef %1772) #11
  %1774 = call i32 @isatty(i32 noundef %1773) #11
  %.not587 = icmp eq i32 %1774, 0
  br i1 %.not587, label %1775, label %1776

1775:                                             ; preds = %1771, %1764
  br label %1776

1776:                                             ; preds = %1771, %1775
  %.str.4.sink1387 = phi ptr [ @.str.4, %1775 ], [ @.str, %1771 ]
  store i32 %1766, ptr %1765, align 4, !tbaa !5
  %1777 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1778 = load i32, ptr @test_count, align 4, !tbaa !5
  %1779 = load i32, ptr %240, align 4, !tbaa !5
  %1780 = call ptr @s2n_strerror(i32 noundef %1779, ptr noundef nonnull @.str.3) #11
  %1781 = load i32, ptr %240, align 4, !tbaa !5
  %1782 = call ptr @s2n_strerror_debug(i32 noundef %1781, ptr noundef nonnull @.str.3) #11
  %1783 = load i32, ptr %1765, align 4, !tbaa !5
  %1784 = call ptr @strerror(i32 noundef %1783) #11
  %1785 = load i32, ptr %1765, align 4, !tbaa !5
  %1786 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1777, ptr noundef nonnull %.str.4.sink1387, i32 noundef %1778, ptr noundef nonnull @.str.88, ptr noundef nonnull @.str.2, i32 noundef 509, ptr noundef %1780, ptr noundef %1782, ptr noundef %1784, i32 noundef %1785) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1787:                                             ; preds = %1760
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11) #11
  %1788 = load i32, ptr @test_count, align 4, !tbaa !5
  %1789 = add nsw i32 %1788, 1
  store i32 %1789, ptr @test_count, align 4, !tbaa !5
  %1790 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef nonnull %11) #11
  %1791 = icmp eq i32 %1790, -1
  br i1 %1791, label %1792, label %1815

1792:                                             ; preds = %1787
  %1793 = tail call ptr @__errno_location() #12
  %1794 = load i32, ptr %1793, align 4, !tbaa !5
  %1795 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1796 = call i32 @s2n_print_stacktrace(ptr noundef %1795) #11
  %1797 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1798 = trunc nuw i8 %1797 to i1
  br i1 %1798, label %1799, label %1803

1799:                                             ; preds = %1792
  %1800 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1801 = call i32 @fileno(ptr noundef %1800) #11
  %1802 = call i32 @isatty(i32 noundef %1801) #11
  %.not586 = icmp eq i32 %1802, 0
  br i1 %.not586, label %1803, label %1804

1803:                                             ; preds = %1799, %1792
  br label %1804

1804:                                             ; preds = %1799, %1803
  %.str.4.sink1396 = phi ptr [ @.str.4, %1803 ], [ @.str, %1799 ]
  store i32 %1794, ptr %1793, align 4, !tbaa !5
  %1805 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1806 = load i32, ptr @test_count, align 4, !tbaa !5
  %1807 = load i32, ptr %240, align 4, !tbaa !5
  %1808 = call ptr @s2n_strerror(i32 noundef %1807, ptr noundef nonnull @.str.3) #11
  %1809 = load i32, ptr %240, align 4, !tbaa !5
  %1810 = call ptr @s2n_strerror_debug(i32 noundef %1809, ptr noundef nonnull @.str.3) #11
  %1811 = load i32, ptr %1793, align 4, !tbaa !5
  %1812 = call ptr @strerror(i32 noundef %1811) #11
  %1813 = load i32, ptr %1793, align 4, !tbaa !5
  %1814 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1805, ptr noundef nonnull %.str.4.sink1396, i32 noundef %1806, ptr noundef nonnull @.str.89, ptr noundef nonnull @.str.2, i32 noundef 513, ptr noundef %1808, ptr noundef %1810, ptr noundef %1812, i32 noundef %1813) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1815:                                             ; preds = %1787
  %1816 = load i32, ptr @test_count, align 4, !tbaa !5
  %1817 = add nsw i32 %1816, 1
  store i32 %1817, ptr @test_count, align 4, !tbaa !5
  %1818 = call i32 @s2n_connection_set_io_pair(ptr noundef nonnull %1678, ptr noundef nonnull %11) #11
  %1819 = icmp eq i32 %1818, -1
  br i1 %1819, label %1820, label %1843

1820:                                             ; preds = %1815
  %1821 = tail call ptr @__errno_location() #12
  %1822 = load i32, ptr %1821, align 4, !tbaa !5
  %1823 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1824 = call i32 @s2n_print_stacktrace(ptr noundef %1823) #11
  %1825 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1826 = trunc nuw i8 %1825 to i1
  br i1 %1826, label %1827, label %1831

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

1831:                                             ; preds = %1827, %1820
  br label %1832

1832:                                             ; preds = %1827, %1831
  %.str.4.sink1405 = phi ptr [ @.str.4, %1831 ], [ @.str, %1827 ]
  store i32 %1822, ptr %1821, align 4, !tbaa !5
  %1833 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1834 = load i32, ptr @test_count, align 4, !tbaa !5
  %1835 = load i32, ptr %240, align 4, !tbaa !5
  %1836 = call ptr @s2n_strerror(i32 noundef %1835, ptr noundef nonnull @.str.3) #11
  %1837 = load i32, ptr %240, align 4, !tbaa !5
  %1838 = call ptr @s2n_strerror_debug(i32 noundef %1837, ptr noundef nonnull @.str.3) #11
  %1839 = load i32, ptr %1821, align 4, !tbaa !5
  %1840 = call ptr @strerror(i32 noundef %1839) #11
  %1841 = load i32, ptr %1821, align 4, !tbaa !5
  %1842 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1833, ptr noundef nonnull %.str.4.sink1405, i32 noundef %1834, ptr noundef nonnull @.str.90, ptr noundef nonnull @.str.2, i32 noundef 514, ptr noundef %1836, ptr noundef %1838, ptr noundef %1840, i32 noundef %1841) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1843:                                             ; preds = %1815
  %1844 = load i32, ptr @test_count, align 4, !tbaa !5
  %1845 = add nsw i32 %1844, 1
  store i32 %1845, ptr @test_count, align 4, !tbaa !5
  %1846 = call i32 @s2n_connection_set_io_pair(ptr noundef nonnull %1733, ptr noundef nonnull %11) #11
  %1847 = icmp eq i32 %1846, -1
  br i1 %1847, label %1848, label %1871

1848:                                             ; preds = %1843
  %1849 = tail call ptr @__errno_location() #12
  %1850 = load i32, ptr %1849, align 4, !tbaa !5
  %1851 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1852 = call i32 @s2n_print_stacktrace(ptr noundef %1851) #11
  %1853 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1854 = trunc nuw i8 %1853 to i1
  br i1 %1854, label %1855, label %1859

1855:                                             ; preds = %1848
  %1856 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1857 = call i32 @fileno(ptr noundef %1856) #11
  %1858 = call i32 @isatty(i32 noundef %1857) #11
  %.not584 = icmp eq i32 %1858, 0
  br i1 %.not584, label %1859, label %1860

1859:                                             ; preds = %1855, %1848
  br label %1860

1860:                                             ; preds = %1855, %1859
  %.str.4.sink1414 = phi ptr [ @.str.4, %1859 ], [ @.str, %1855 ]
  store i32 %1850, ptr %1849, align 4, !tbaa !5
  %1861 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1862 = load i32, ptr @test_count, align 4, !tbaa !5
  %1863 = load i32, ptr %240, align 4, !tbaa !5
  %1864 = call ptr @s2n_strerror(i32 noundef %1863, ptr noundef nonnull @.str.3) #11
  %1865 = load i32, ptr %240, align 4, !tbaa !5
  %1866 = call ptr @s2n_strerror_debug(i32 noundef %1865, ptr noundef nonnull @.str.3) #11
  %1867 = load i32, ptr %1849, align 4, !tbaa !5
  %1868 = call ptr @strerror(i32 noundef %1867) #11
  %1869 = load i32, ptr %1849, align 4, !tbaa !5
  %1870 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1861, ptr noundef nonnull %.str.4.sink1414, i32 noundef %1862, ptr noundef nonnull @.str.91, ptr noundef nonnull @.str.2, i32 noundef 515, ptr noundef %1864, ptr noundef %1866, ptr noundef %1868, i32 noundef %1869) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1871:                                             ; preds = %1843
  %1872 = load i32, ptr @test_count, align 4, !tbaa !5
  %1873 = add nsw i32 %1872, 1
  store i32 %1873, ptr @test_count, align 4, !tbaa !5
  %1874 = call i32 @try_handshake(ptr noundef nonnull %1733, ptr noundef nonnull %1678, ptr noundef nonnull @async_handler_free_pkey_op)
  %1875 = icmp eq i32 %1874, -1
  br i1 %1875, label %1899, label %1876

1876:                                             ; preds = %1871
  %1877 = tail call ptr @__errno_location() #12
  %1878 = load i32, ptr %1877, align 4, !tbaa !5
  %1879 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1880 = call i32 @s2n_print_stacktrace(ptr noundef %1879) #11
  %1881 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1882 = trunc nuw i8 %1881 to i1
  br i1 %1882, label %1883, label %1887

1883:                                             ; preds = %1876
  %1884 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1885 = call i32 @fileno(ptr noundef %1884) #11
  %1886 = call i32 @isatty(i32 noundef %1885) #11
  %.not537 = icmp eq i32 %1886, 0
  br i1 %.not537, label %1887, label %1888

1887:                                             ; preds = %1883, %1876
  br label %1888

1888:                                             ; preds = %1883, %1887
  %.str.4.sink1423 = phi ptr [ @.str.4, %1887 ], [ @.str, %1883 ]
  store i32 %1878, ptr %1877, align 4, !tbaa !5
  %1889 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1890 = load i32, ptr @test_count, align 4, !tbaa !5
  %1891 = load i32, ptr %240, align 4, !tbaa !5
  %1892 = call ptr @s2n_strerror(i32 noundef %1891, ptr noundef nonnull @.str.3) #11
  %1893 = load i32, ptr %240, align 4, !tbaa !5
  %1894 = call ptr @s2n_strerror_debug(i32 noundef %1893, ptr noundef nonnull @.str.3) #11
  %1895 = load i32, ptr %1877, align 4, !tbaa !5
  %1896 = call ptr @strerror(i32 noundef %1895) #11
  %1897 = load i32, ptr %1877, align 4, !tbaa !5
  %1898 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1889, ptr noundef nonnull %.str.4.sink1423, i32 noundef %1890, ptr noundef nonnull @.str.100, ptr noundef nonnull @.str.2, i32 noundef 518, ptr noundef %1892, ptr noundef %1894, ptr noundef %1896, i32 noundef %1897) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1899:                                             ; preds = %1871
  %1900 = load i32, ptr @test_count, align 4, !tbaa !5
  %1901 = add nsw i32 %1900, 1
  store i32 %1901, ptr @test_count, align 4, !tbaa !5
  %1902 = load i32, ptr %240, align 4, !tbaa !5
  %1903 = icmp eq i32 %1902, 201326593
  br i1 %1903, label %1927, label %1904

1904:                                             ; preds = %1899
  %1905 = tail call ptr @__errno_location() #12
  %1906 = load i32, ptr %1905, align 4, !tbaa !5
  %1907 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1908 = call i32 @s2n_print_stacktrace(ptr noundef %1907) #11
  %1909 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1910 = trunc nuw i8 %1909 to i1
  br i1 %1910, label %1911, label %1915

1911:                                             ; preds = %1904
  %1912 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1913 = call i32 @fileno(ptr noundef %1912) #11
  %1914 = call i32 @isatty(i32 noundef %1913) #11
  %.not538 = icmp eq i32 %1914, 0
  br i1 %.not538, label %1915, label %1916

1915:                                             ; preds = %1911, %1904
  br label %1916

1916:                                             ; preds = %1911, %1915
  %.str.4.sink1432 = phi ptr [ @.str.4, %1915 ], [ @.str, %1911 ]
  store i32 %1906, ptr %1905, align 4, !tbaa !5
  %1917 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1918 = load i32, ptr @test_count, align 4, !tbaa !5
  %1919 = load i32, ptr %240, align 4, !tbaa !5
  %1920 = call ptr @s2n_strerror(i32 noundef %1919, ptr noundef nonnull @.str.3) #11
  %1921 = load i32, ptr %240, align 4, !tbaa !5
  %1922 = call ptr @s2n_strerror_debug(i32 noundef %1921, ptr noundef nonnull @.str.3) #11
  %1923 = load i32, ptr %1905, align 4, !tbaa !5
  %1924 = call ptr @strerror(i32 noundef %1923) #11
  %1925 = load i32, ptr %1905, align 4, !tbaa !5
  %1926 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1917, ptr noundef nonnull %.str.4.sink1432, i32 noundef %1918, ptr noundef nonnull @.str.101, ptr noundef nonnull @.str.2, i32 noundef 518, ptr noundef %1920, ptr noundef %1922, ptr noundef %1924, i32 noundef %1925) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1927:                                             ; preds = %1899
  %1928 = add nsw i32 %1900, 2
  store i32 %1928, ptr @test_count, align 4, !tbaa !5
  %1929 = call ptr @s2n_strerror_debug(i32 noundef 201326593, ptr noundef nonnull @.str.3) #11
  %1930 = icmp eq ptr %1929, null
  br i1 %1930, label %1931, label %1954

1931:                                             ; preds = %1927
  %1932 = tail call ptr @__errno_location() #12
  %1933 = load i32, ptr %1932, align 4, !tbaa !5
  %1934 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1935 = call i32 @s2n_print_stacktrace(ptr noundef %1934) #11
  %1936 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1937 = trunc nuw i8 %1936 to i1
  br i1 %1937, label %1938, label %1942

1938:                                             ; preds = %1931
  %1939 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1940 = call i32 @fileno(ptr noundef %1939) #11
  %1941 = call i32 @isatty(i32 noundef %1940) #11
  %.not583 = icmp eq i32 %1941, 0
  br i1 %.not583, label %1942, label %1943

1942:                                             ; preds = %1938, %1931
  br label %1943

1943:                                             ; preds = %1938, %1942
  %.str.4.sink1441 = phi ptr [ @.str.4, %1942 ], [ @.str, %1938 ]
  store i32 %1933, ptr %1932, align 4, !tbaa !5
  %1944 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1945 = load i32, ptr @test_count, align 4, !tbaa !5
  %1946 = load i32, ptr %240, align 4, !tbaa !5
  %1947 = call ptr @s2n_strerror(i32 noundef %1946, ptr noundef nonnull @.str.3) #11
  %1948 = load i32, ptr %240, align 4, !tbaa !5
  %1949 = call ptr @s2n_strerror_debug(i32 noundef %1948, ptr noundef nonnull @.str.3) #11
  %1950 = load i32, ptr %1932, align 4, !tbaa !5
  %1951 = call ptr @strerror(i32 noundef %1950) #11
  %1952 = load i32, ptr %1932, align 4, !tbaa !5
  %1953 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1944, ptr noundef nonnull %.str.4.sink1441, i32 noundef %1945, ptr noundef nonnull @.str.56, ptr noundef nonnull @.str.2, i32 noundef 518, ptr noundef %1947, ptr noundef %1949, ptr noundef %1951, i32 noundef %1952) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1954:                                             ; preds = %1927
  store i32 0, ptr %240, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  %1955 = tail call ptr @__errno_location() #12
  store i32 0, ptr %1955, align 4, !tbaa !5
  %1956 = load i32, ptr @test_count, align 4, !tbaa !5
  %1957 = add nsw i32 %1956, 1
  store i32 %1957, ptr @test_count, align 4, !tbaa !5
  %1958 = call i32 @s2n_connection_free(ptr noundef nonnull %1733) #11
  %1959 = icmp eq i32 %1958, -1
  br i1 %1959, label %1960, label %1982

1960:                                             ; preds = %1954
  %1961 = load i32, ptr %1955, align 4, !tbaa !5
  %1962 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1963 = call i32 @s2n_print_stacktrace(ptr noundef %1962) #11
  %1964 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1965 = trunc nuw i8 %1964 to i1
  br i1 %1965, label %1966, label %1970

1966:                                             ; preds = %1960
  %1967 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1968 = call i32 @fileno(ptr noundef %1967) #11
  %1969 = call i32 @isatty(i32 noundef %1968) #11
  %.not582 = icmp eq i32 %1969, 0
  br i1 %.not582, label %1970, label %1971

1970:                                             ; preds = %1966, %1960
  br label %1971

1971:                                             ; preds = %1966, %1970
  %.str.4.sink1450 = phi ptr [ @.str.4, %1970 ], [ @.str, %1966 ]
  store i32 %1961, ptr %1955, align 4, !tbaa !5
  %1972 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1973 = load i32, ptr @test_count, align 4, !tbaa !5
  %1974 = load i32, ptr %240, align 4, !tbaa !5
  %1975 = call ptr @s2n_strerror(i32 noundef %1974, ptr noundef nonnull @.str.3) #11
  %1976 = load i32, ptr %240, align 4, !tbaa !5
  %1977 = call ptr @s2n_strerror_debug(i32 noundef %1976, ptr noundef nonnull @.str.3) #11
  %1978 = load i32, ptr %1955, align 4, !tbaa !5
  %1979 = call ptr @strerror(i32 noundef %1978) #11
  %1980 = load i32, ptr %1955, align 4, !tbaa !5
  %1981 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1972, ptr noundef nonnull %.str.4.sink1450, i32 noundef %1973, ptr noundef nonnull @.str.93, ptr noundef nonnull @.str.2, i32 noundef 521, ptr noundef %1975, ptr noundef %1977, ptr noundef %1979, i32 noundef %1980) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1982:                                             ; preds = %1954
  %1983 = load i32, ptr @test_count, align 4, !tbaa !5
  %1984 = add nsw i32 %1983, 1
  store i32 %1984, ptr @test_count, align 4, !tbaa !5
  %1985 = call i32 @s2n_connection_free(ptr noundef nonnull %1678) #11
  %1986 = icmp eq i32 %1985, -1
  br i1 %1986, label %1987, label %2009

1987:                                             ; preds = %1982
  %1988 = load i32, ptr %1955, align 4, !tbaa !5
  %1989 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1990 = call i32 @s2n_print_stacktrace(ptr noundef %1989) #11
  %1991 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1992 = trunc nuw i8 %1991 to i1
  br i1 %1992, label %1993, label %1997

1993:                                             ; preds = %1987
  %1994 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1995 = call i32 @fileno(ptr noundef %1994) #11
  %1996 = call i32 @isatty(i32 noundef %1995) #11
  %.not581 = icmp eq i32 %1996, 0
  br i1 %.not581, label %1997, label %1998

1997:                                             ; preds = %1993, %1987
  br label %1998

1998:                                             ; preds = %1993, %1997
  %.str.4.sink1459 = phi ptr [ @.str.4, %1997 ], [ @.str, %1993 ]
  store i32 %1988, ptr %1955, align 4, !tbaa !5
  %1999 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2000 = load i32, ptr @test_count, align 4, !tbaa !5
  %2001 = load i32, ptr %240, align 4, !tbaa !5
  %2002 = call ptr @s2n_strerror(i32 noundef %2001, ptr noundef nonnull @.str.3) #11
  %2003 = load i32, ptr %240, align 4, !tbaa !5
  %2004 = call ptr @s2n_strerror_debug(i32 noundef %2003, ptr noundef nonnull @.str.3) #11
  %2005 = load i32, ptr %1955, align 4, !tbaa !5
  %2006 = call ptr @strerror(i32 noundef %2005) #11
  %2007 = load i32, ptr %1955, align 4, !tbaa !5
  %2008 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1999, ptr noundef nonnull %.str.4.sink1459, i32 noundef %2000, ptr noundef nonnull @.str.94, ptr noundef nonnull @.str.2, i32 noundef 522, ptr noundef %2002, ptr noundef %2004, ptr noundef %2006, i32 noundef %2007) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2009:                                             ; preds = %1982
  %2010 = load i32, ptr @test_count, align 4, !tbaa !5
  %2011 = add nsw i32 %2010, 1
  store i32 %2011, ptr @test_count, align 4, !tbaa !5
  %2012 = call i32 @s2n_io_pair_close(ptr noundef nonnull %11) #11
  %2013 = icmp eq i32 %2012, -1
  br i1 %2013, label %2014, label %2036

2014:                                             ; preds = %2009
  %2015 = load i32, ptr %1955, align 4, !tbaa !5
  %2016 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2017 = call i32 @s2n_print_stacktrace(ptr noundef %2016) #11
  %2018 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2019 = trunc nuw i8 %2018 to i1
  br i1 %2019, label %2020, label %2024

2020:                                             ; preds = %2014
  %2021 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2022 = call i32 @fileno(ptr noundef %2021) #11
  %2023 = call i32 @isatty(i32 noundef %2022) #11
  %.not580 = icmp eq i32 %2023, 0
  br i1 %.not580, label %2024, label %2025

2024:                                             ; preds = %2020, %2014
  br label %2025

2025:                                             ; preds = %2020, %2024
  %.str.4.sink1468 = phi ptr [ @.str.4, %2024 ], [ @.str, %2020 ]
  store i32 %2015, ptr %1955, align 4, !tbaa !5
  %2026 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2027 = load i32, ptr @test_count, align 4, !tbaa !5
  %2028 = load i32, ptr %240, align 4, !tbaa !5
  %2029 = call ptr @s2n_strerror(i32 noundef %2028, ptr noundef nonnull @.str.3) #11
  %2030 = load i32, ptr %240, align 4, !tbaa !5
  %2031 = call ptr @s2n_strerror_debug(i32 noundef %2030, ptr noundef nonnull @.str.3) #11
  %2032 = load i32, ptr %1955, align 4, !tbaa !5
  %2033 = call ptr @strerror(i32 noundef %2032) #11
  %2034 = load i32, ptr %1955, align 4, !tbaa !5
  %2035 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2026, ptr noundef nonnull %.str.4.sink1468, i32 noundef %2027, ptr noundef nonnull @.str.95, ptr noundef nonnull @.str.2, i32 noundef 523, ptr noundef %2029, ptr noundef %2031, ptr noundef %2033, i32 noundef %2034) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2036:                                             ; preds = %2009
  %2037 = load i32, ptr @test_count, align 4, !tbaa !5
  %2038 = add nsw i32 %2037, 1
  store i32 %2038, ptr @test_count, align 4, !tbaa !5
  %2039 = call i32 @s2n_config_free(ptr noundef nonnull %1454) #11
  %2040 = icmp eq i32 %2039, -1
  br i1 %2040, label %2041, label %2063

2041:                                             ; preds = %2036
  %2042 = load i32, ptr %1955, align 4, !tbaa !5
  %2043 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2044 = call i32 @s2n_print_stacktrace(ptr noundef %2043) #11
  %2045 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2046 = trunc nuw i8 %2045 to i1
  br i1 %2046, label %2047, label %2051

2047:                                             ; preds = %2041
  %2048 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2049 = call i32 @fileno(ptr noundef %2048) #11
  %2050 = call i32 @isatty(i32 noundef %2049) #11
  %.not579 = icmp eq i32 %2050, 0
  br i1 %.not579, label %2051, label %2052

2051:                                             ; preds = %2047, %2041
  br label %2052

2052:                                             ; preds = %2047, %2051
  %.str.4.sink1477 = phi ptr [ @.str.4, %2051 ], [ @.str, %2047 ]
  store i32 %2042, ptr %1955, align 4, !tbaa !5
  %2053 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2054 = load i32, ptr @test_count, align 4, !tbaa !5
  %2055 = load i32, ptr %240, align 4, !tbaa !5
  %2056 = call ptr @s2n_strerror(i32 noundef %2055, ptr noundef nonnull @.str.3) #11
  %2057 = load i32, ptr %240, align 4, !tbaa !5
  %2058 = call ptr @s2n_strerror_debug(i32 noundef %2057, ptr noundef nonnull @.str.3) #11
  %2059 = load i32, ptr %1955, align 4, !tbaa !5
  %2060 = call ptr @strerror(i32 noundef %2059) #11
  %2061 = load i32, ptr %1955, align 4, !tbaa !5
  %2062 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2053, ptr noundef nonnull %.str.4.sink1477, i32 noundef %2054, ptr noundef nonnull @.str.96, ptr noundef nonnull @.str.2, i32 noundef 524, ptr noundef %2056, ptr noundef %2058, ptr noundef %2060, i32 noundef %2061) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2063:                                             ; preds = %2036
  %2064 = load i32, ptr @test_count, align 4, !tbaa !5
  %2065 = add nsw i32 %2064, 1
  store i32 %2065, ptr @test_count, align 4, !tbaa !5
  %2066 = call i32 @s2n_config_free(ptr noundef nonnull %1568) #11
  %2067 = icmp eq i32 %2066, -1
  br i1 %2067, label %2068, label %2090

2068:                                             ; preds = %2063
  %2069 = load i32, ptr %1955, align 4, !tbaa !5
  %2070 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2071 = call i32 @s2n_print_stacktrace(ptr noundef %2070) #11
  %2072 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2073 = trunc nuw i8 %2072 to i1
  br i1 %2073, label %2074, label %2078

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

2078:                                             ; preds = %2074, %2068
  br label %2079

2079:                                             ; preds = %2074, %2078
  %.str.4.sink1486 = phi ptr [ @.str.4, %2078 ], [ @.str, %2074 ]
  store i32 %2069, ptr %1955, align 4, !tbaa !5
  %2080 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2081 = load i32, ptr @test_count, align 4, !tbaa !5
  %2082 = load i32, ptr %240, align 4, !tbaa !5
  %2083 = call ptr @s2n_strerror(i32 noundef %2082, ptr noundef nonnull @.str.3) #11
  %2084 = load i32, ptr %240, align 4, !tbaa !5
  %2085 = call ptr @s2n_strerror_debug(i32 noundef %2084, ptr noundef nonnull @.str.3) #11
  %2086 = load i32, ptr %1955, align 4, !tbaa !5
  %2087 = call ptr @strerror(i32 noundef %2086) #11
  %2088 = load i32, ptr %1955, align 4, !tbaa !5
  %2089 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2080, ptr noundef nonnull %.str.4.sink1486, i32 noundef %2081, ptr noundef nonnull @.str.97, ptr noundef nonnull @.str.2, i32 noundef 525, ptr noundef %2083, ptr noundef %2085, ptr noundef %2087, i32 noundef %2088) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2090:                                             ; preds = %2063
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #11
  %2091 = load i32, ptr @test_count, align 4, !tbaa !5
  %2092 = add nsw i32 %2091, 1
  store i32 %2092, ptr @test_count, align 4, !tbaa !5
  %2093 = call ptr @s2n_config_new() #11
  %2094 = icmp eq ptr %2093, null
  br i1 %2094, label %2095, label %2117

2095:                                             ; preds = %2090
  %2096 = load i32, ptr %1955, align 4, !tbaa !5
  %2097 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2098 = call i32 @s2n_print_stacktrace(ptr noundef %2097) #11
  %2099 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2100 = trunc nuw i8 %2099 to i1
  br i1 %2100, label %2101, label %2105

2101:                                             ; preds = %2095
  %2102 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2103 = call i32 @fileno(ptr noundef %2102) #11
  %2104 = call i32 @isatty(i32 noundef %2103) #11
  %.not577 = icmp eq i32 %2104, 0
  br i1 %.not577, label %2105, label %2106

2105:                                             ; preds = %2101, %2095
  br label %2106

2106:                                             ; preds = %2101, %2105
  %.str.4.sink1495 = phi ptr [ @.str.4, %2105 ], [ @.str, %2101 ]
  store i32 %2096, ptr %1955, align 4, !tbaa !5
  %2107 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2108 = load i32, ptr @test_count, align 4, !tbaa !5
  %2109 = load i32, ptr %240, align 4, !tbaa !5
  %2110 = call ptr @s2n_strerror(i32 noundef %2109, ptr noundef nonnull @.str.3) #11
  %2111 = load i32, ptr %240, align 4, !tbaa !5
  %2112 = call ptr @s2n_strerror_debug(i32 noundef %2111, ptr noundef nonnull @.str.3) #11
  %2113 = load i32, ptr %1955, align 4, !tbaa !5
  %2114 = call ptr @strerror(i32 noundef %2113) #11
  %2115 = load i32, ptr %1955, align 4, !tbaa !5
  %2116 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2107, ptr noundef nonnull %.str.4.sink1495, i32 noundef %2108, ptr noundef nonnull @.str.76, ptr noundef nonnull @.str.2, i32 noundef 531, ptr noundef %2110, ptr noundef %2112, ptr noundef %2114, i32 noundef %2115) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2117:                                             ; preds = %2090
  %2118 = load i32, ptr @test_count, align 4, !tbaa !5
  %2119 = add nsw i32 %2118, 1
  store i32 %2119, ptr @test_count, align 4, !tbaa !5
  %2120 = load ptr, ptr %4, align 8, !tbaa !9
  %2121 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef nonnull %2093, ptr noundef %2120) #11
  %2122 = icmp eq i32 %2121, -1
  br i1 %2122, label %2123, label %2145

2123:                                             ; preds = %2117
  %2124 = load i32, ptr %1955, align 4, !tbaa !5
  %2125 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2126 = call i32 @s2n_print_stacktrace(ptr noundef %2125) #11
  %2127 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2128 = trunc nuw i8 %2127 to i1
  br i1 %2128, label %2129, label %2133

2129:                                             ; preds = %2123
  %2130 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2131 = call i32 @fileno(ptr noundef %2130) #11
  %2132 = call i32 @isatty(i32 noundef %2131) #11
  %.not576 = icmp eq i32 %2132, 0
  br i1 %.not576, label %2133, label %2134

2133:                                             ; preds = %2129, %2123
  br label %2134

2134:                                             ; preds = %2129, %2133
  %.str.4.sink1504 = phi ptr [ @.str.4, %2133 ], [ @.str, %2129 ]
  store i32 %2124, ptr %1955, align 4, !tbaa !5
  %2135 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2136 = load i32, ptr @test_count, align 4, !tbaa !5
  %2137 = load i32, ptr %240, align 4, !tbaa !5
  %2138 = call ptr @s2n_strerror(i32 noundef %2137, ptr noundef nonnull @.str.3) #11
  %2139 = load i32, ptr %240, align 4, !tbaa !5
  %2140 = call ptr @s2n_strerror_debug(i32 noundef %2139, ptr noundef nonnull @.str.3) #11
  %2141 = load i32, ptr %1955, align 4, !tbaa !5
  %2142 = call ptr @strerror(i32 noundef %2141) #11
  %2143 = load i32, ptr %1955, align 4, !tbaa !5
  %2144 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2135, ptr noundef nonnull %.str.4.sink1504, i32 noundef %2136, ptr noundef nonnull @.str.77, ptr noundef nonnull @.str.2, i32 noundef 532, ptr noundef %2138, ptr noundef %2140, ptr noundef %2142, i32 noundef %2143) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2145:                                             ; preds = %2117
  %2146 = load i32, ptr @test_count, align 4, !tbaa !5
  %2147 = add nsw i32 %2146, 1
  store i32 %2147, ptr @test_count, align 4, !tbaa !5
  %2148 = call i32 @s2n_config_add_dhparams(ptr noundef nonnull %2093, ptr noundef nonnull %3) #11
  %2149 = icmp eq i32 %2148, -1
  br i1 %2149, label %2150, label %2172

2150:                                             ; preds = %2145
  %2151 = load i32, ptr %1955, align 4, !tbaa !5
  %2152 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2153 = call i32 @s2n_print_stacktrace(ptr noundef %2152) #11
  %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 = %2150
  %2157 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2158 = call i32 @fileno(ptr noundef %2157) #11
  %2159 = call i32 @isatty(i32 noundef %2158) #11
  %.not575 = icmp eq i32 %2159, 0
  br i1 %.not575, label %2160, label %2161

2160:                                             ; preds = %2156, %2150
  br label %2161

2161:                                             ; preds = %2156, %2160
  %.str.4.sink1513 = phi ptr [ @.str.4, %2160 ], [ @.str, %2156 ]
  store i32 %2151, ptr %1955, align 4, !tbaa !5
  %2162 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2163 = load i32, ptr @test_count, align 4, !tbaa !5
  %2164 = load i32, ptr %240, align 4, !tbaa !5
  %2165 = call ptr @s2n_strerror(i32 noundef %2164, ptr noundef nonnull @.str.3) #11
  %2166 = load i32, ptr %240, align 4, !tbaa !5
  %2167 = call ptr @s2n_strerror_debug(i32 noundef %2166, ptr noundef nonnull @.str.3) #11
  %2168 = load i32, ptr %1955, align 4, !tbaa !5
  %2169 = call ptr @strerror(i32 noundef %2168) #11
  %2170 = load i32, ptr %1955, align 4, !tbaa !5
  %2171 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2162, ptr noundef nonnull %.str.4.sink1513, i32 noundef %2163, ptr noundef nonnull @.str.78, ptr noundef nonnull @.str.2, i32 noundef 533, ptr noundef %2165, ptr noundef %2167, ptr noundef %2169, i32 noundef %2170) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2172:                                             ; preds = %2145
  %2173 = load i32, ptr @test_count, align 4, !tbaa !5
  %2174 = add nsw i32 %2173, 1
  store i32 %2174, ptr @test_count, align 4, !tbaa !5
  %2175 = call i32 @s2n_config_set_async_pkey_callback(ptr noundef nonnull %2093, ptr noundef nonnull @async_pkey_store_callback) #11
  %2176 = icmp eq i32 %2175, -1
  br i1 %2176, label %2177, label %2199

2177:                                             ; preds = %2172
  %2178 = load i32, ptr %1955, align 4, !tbaa !5
  %2179 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2180 = call i32 @s2n_print_stacktrace(ptr noundef %2179) #11
  %2181 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2182 = trunc nuw i8 %2181 to i1
  br i1 %2182, label %2183, label %2187

2183:                                             ; preds = %2177
  %2184 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2185 = call i32 @fileno(ptr noundef %2184) #11
  %2186 = call i32 @isatty(i32 noundef %2185) #11
  %.not574 = icmp eq i32 %2186, 0
  br i1 %.not574, label %2187, label %2188

2187:                                             ; preds = %2183, %2177
  br label %2188

2188:                                             ; preds = %2183, %2187
  %.str.4.sink1522 = phi ptr [ @.str.4, %2187 ], [ @.str, %2183 ]
  store i32 %2178, ptr %1955, align 4, !tbaa !5
  %2189 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2190 = load i32, ptr @test_count, align 4, !tbaa !5
  %2191 = load i32, ptr %240, align 4, !tbaa !5
  %2192 = call ptr @s2n_strerror(i32 noundef %2191, ptr noundef nonnull @.str.3) #11
  %2193 = load i32, ptr %240, align 4, !tbaa !5
  %2194 = call ptr @s2n_strerror_debug(i32 noundef %2193, ptr noundef nonnull @.str.3) #11
  %2195 = load i32, ptr %1955, align 4, !tbaa !5
  %2196 = call ptr @strerror(i32 noundef %2195) #11
  %2197 = load i32, ptr %1955, align 4, !tbaa !5
  %2198 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2189, ptr noundef nonnull %.str.4.sink1522, i32 noundef %2190, ptr noundef nonnull @.str.98, ptr noundef nonnull @.str.2, i32 noundef 534, ptr noundef %2192, ptr noundef %2194, ptr noundef %2196, i32 noundef %2197) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2199:                                             ; preds = %2172
  %2200 = getelementptr inbounds i8, ptr %2093, i64 96
  store ptr %8, ptr %2200, align 8, !tbaa !29
  %2201 = load i32, ptr @test_count, align 4, !tbaa !5
  %2202 = add nsw i32 %2201, 1
  store i32 %2202, ptr @test_count, align 4, !tbaa !5
  %2203 = call i32 @s2n_config_set_async_pkey_validation_mode(ptr noundef nonnull %2093, i32 noundef 1) #11
  %2204 = icmp eq i32 %2203, -1
  br i1 %2204, label %2205, label %2227

2205:                                             ; preds = %2199
  %2206 = load i32, ptr %1955, align 4, !tbaa !5
  %2207 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2208 = call i32 @s2n_print_stacktrace(ptr noundef %2207) #11
  %2209 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2210 = trunc nuw i8 %2209 to i1
  br i1 %2210, label %2211, label %2215

2211:                                             ; preds = %2205
  %2212 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2213 = call i32 @fileno(ptr noundef %2212) #11
  %2214 = call i32 @isatty(i32 noundef %2213) #11
  %.not573 = icmp eq i32 %2214, 0
  br i1 %.not573, label %2215, label %2216

2215:                                             ; preds = %2211, %2205
  br label %2216

2216:                                             ; preds = %2211, %2215
  %.str.4.sink1531 = phi ptr [ @.str.4, %2215 ], [ @.str, %2211 ]
  store i32 %2206, ptr %1955, align 4, !tbaa !5
  %2217 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2218 = load i32, ptr @test_count, align 4, !tbaa !5
  %2219 = load i32, ptr %240, align 4, !tbaa !5
  %2220 = call ptr @s2n_strerror(i32 noundef %2219, ptr noundef nonnull @.str.3) #11
  %2221 = load i32, ptr %240, align 4, !tbaa !5
  %2222 = call ptr @s2n_strerror_debug(i32 noundef %2221, ptr noundef nonnull @.str.3) #11
  %2223 = load i32, ptr %1955, align 4, !tbaa !5
  %2224 = call ptr @strerror(i32 noundef %2223) #11
  %2225 = load i32, ptr %1955, align 4, !tbaa !5
  %2226 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2217, ptr noundef nonnull %.str.4.sink1531, i32 noundef %2218, ptr noundef nonnull @.str.102, ptr noundef nonnull @.str.2, i32 noundef 537, ptr noundef %2220, ptr noundef %2222, ptr noundef %2224, i32 noundef %2225) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2227:                                             ; preds = %2199
  %2228 = load i32, ptr @test_count, align 4, !tbaa !5
  %2229 = add nsw i32 %2228, 1
  store i32 %2229, ptr @test_count, align 4, !tbaa !5
  %2230 = call ptr @s2n_config_new() #11
  %2231 = icmp eq ptr %2230, null
  br i1 %2231, label %2232, label %2254

2232:                                             ; preds = %2227
  %2233 = load i32, ptr %1955, align 4, !tbaa !5
  %2234 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2235 = call i32 @s2n_print_stacktrace(ptr noundef %2234) #11
  %2236 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2237 = trunc nuw i8 %2236 to i1
  br i1 %2237, label %2238, label %2242

2238:                                             ; preds = %2232
  %2239 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2240 = call i32 @fileno(ptr noundef %2239) #11
  %2241 = call i32 @isatty(i32 noundef %2240) #11
  %.not572 = icmp eq i32 %2241, 0
  br i1 %.not572, label %2242, label %2243

2242:                                             ; preds = %2238, %2232
  br label %2243

2243:                                             ; preds = %2238, %2242
  %.str.4.sink1540 = phi ptr [ @.str.4, %2242 ], [ @.str, %2238 ]
  store i32 %2233, ptr %1955, align 4, !tbaa !5
  %2244 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2245 = load i32, ptr @test_count, align 4, !tbaa !5
  %2246 = load i32, ptr %240, align 4, !tbaa !5
  %2247 = call ptr @s2n_strerror(i32 noundef %2246, ptr noundef nonnull @.str.3) #11
  %2248 = load i32, ptr %240, align 4, !tbaa !5
  %2249 = call ptr @s2n_strerror_debug(i32 noundef %2248, ptr noundef nonnull @.str.3) #11
  %2250 = load i32, ptr %1955, align 4, !tbaa !5
  %2251 = call ptr @strerror(i32 noundef %2250) #11
  %2252 = load i32, ptr %1955, align 4, !tbaa !5
  %2253 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2244, ptr noundef nonnull %.str.4.sink1540, i32 noundef %2245, ptr noundef nonnull @.str.80, ptr noundef nonnull @.str.2, i32 noundef 539, ptr noundef %2247, ptr noundef %2249, ptr noundef %2251, i32 noundef %2252) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2254:                                             ; preds = %2227
  %2255 = load i32, ptr @test_count, align 4, !tbaa !5
  %2256 = add nsw i32 %2255, 1
  store i32 %2256, ptr @test_count, align 4, !tbaa !5
  %2257 = call i32 @s2n_config_set_unsafe_for_testing(ptr noundef nonnull %2230) #11
  %2258 = icmp eq i32 %2257, -1
  br i1 %2258, label %2259, label %2281

2259:                                             ; preds = %2254
  %2260 = load i32, ptr %1955, align 4, !tbaa !5
  %2261 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2262 = call i32 @s2n_print_stacktrace(ptr noundef %2261) #11
  %2263 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2264 = trunc nuw i8 %2263 to i1
  br i1 %2264, label %2265, label %2269

2265:                                             ; preds = %2259
  %2266 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2267 = call i32 @fileno(ptr noundef %2266) #11
  %2268 = call i32 @isatty(i32 noundef %2267) #11
  %.not571 = icmp eq i32 %2268, 0
  br i1 %.not571, label %2269, label %2270

2269:                                             ; preds = %2265, %2259
  br label %2270

2270:                                             ; preds = %2265, %2269
  %.str.4.sink1549 = phi ptr [ @.str.4, %2269 ], [ @.str, %2265 ]
  store i32 %2260, ptr %1955, align 4, !tbaa !5
  %2271 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2272 = load i32, ptr @test_count, align 4, !tbaa !5
  %2273 = load i32, ptr %240, align 4, !tbaa !5
  %2274 = call ptr @s2n_strerror(i32 noundef %2273, ptr noundef nonnull @.str.3) #11
  %2275 = load i32, ptr %240, align 4, !tbaa !5
  %2276 = call ptr @s2n_strerror_debug(i32 noundef %2275, ptr noundef nonnull @.str.3) #11
  %2277 = load i32, ptr %1955, align 4, !tbaa !5
  %2278 = call ptr @strerror(i32 noundef %2277) #11
  %2279 = load i32, ptr %1955, align 4, !tbaa !5
  %2280 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2271, ptr noundef nonnull %.str.4.sink1549, i32 noundef %2272, ptr noundef nonnull @.str.81, ptr noundef nonnull @.str.2, i32 noundef 540, ptr noundef %2274, ptr noundef %2276, ptr noundef %2278, i32 noundef %2279) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2281:                                             ; preds = %2254
  %2282 = load i32, ptr @test_count, align 4, !tbaa !5
  %2283 = add nsw i32 %2282, 1
  store i32 %2283, ptr @test_count, align 4, !tbaa !5
  %2284 = call i32 @s2n_config_set_cipher_preferences(ptr noundef nonnull %2230, ptr noundef nonnull @.str.82) #11
  %2285 = icmp eq i32 %2284, -1
  br i1 %2285, label %2286, label %2308

2286:                                             ; preds = %2281
  %2287 = load i32, ptr %1955, align 4, !tbaa !5
  %2288 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2289 = call i32 @s2n_print_stacktrace(ptr noundef %2288) #11
  %2290 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2291 = trunc nuw i8 %2290 to i1
  br i1 %2291, label %2292, label %2296

2292:                                             ; preds = %2286
  %2293 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2294 = call i32 @fileno(ptr noundef %2293) #11
  %2295 = call i32 @isatty(i32 noundef %2294) #11
  %.not570 = icmp eq i32 %2295, 0
  br i1 %.not570, label %2296, label %2297

2296:                                             ; preds = %2292, %2286
  br label %2297

2297:                                             ; preds = %2292, %2296
  %.str.4.sink1558 = phi ptr [ @.str.4, %2296 ], [ @.str, %2292 ]
  store i32 %2287, ptr %1955, align 4, !tbaa !5
  %2298 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2299 = load i32, ptr @test_count, align 4, !tbaa !5
  %2300 = load i32, ptr %240, align 4, !tbaa !5
  %2301 = call ptr @s2n_strerror(i32 noundef %2300, ptr noundef nonnull @.str.3) #11
  %2302 = load i32, ptr %240, align 4, !tbaa !5
  %2303 = call ptr @s2n_strerror_debug(i32 noundef %2302, ptr noundef nonnull @.str.3) #11
  %2304 = load i32, ptr %1955, align 4, !tbaa !5
  %2305 = call ptr @strerror(i32 noundef %2304) #11
  %2306 = load i32, ptr %1955, align 4, !tbaa !5
  %2307 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2298, ptr noundef nonnull %.str.4.sink1558, i32 noundef %2299, ptr noundef nonnull @.str.83, ptr noundef nonnull @.str.2, i32 noundef 542, ptr noundef %2301, ptr noundef %2303, ptr noundef %2305, i32 noundef %2306) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2308:                                             ; preds = %2281
  %2309 = load i32, ptr @test_count, align 4, !tbaa !5
  %2310 = add nsw i32 %2309, 1
  store i32 %2310, ptr @test_count, align 4, !tbaa !5
  %2311 = call i32 @s2n_config_set_verification_ca_location(ptr noundef nonnull %2230, ptr noundef nonnull @.str.69, ptr noundef null) #11
  %2312 = icmp eq i32 %2311, -1
  br i1 %2312, label %2313, label %2335

2313:                                             ; preds = %2308
  %2314 = load i32, ptr %1955, align 4, !tbaa !5
  %2315 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2316 = call i32 @s2n_print_stacktrace(ptr noundef %2315) #11
  %2317 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2318 = trunc nuw i8 %2317 to i1
  br i1 %2318, label %2319, label %2323

2319:                                             ; preds = %2313
  %2320 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2321 = call i32 @fileno(ptr noundef %2320) #11
  %2322 = call i32 @isatty(i32 noundef %2321) #11
  %.not569 = icmp eq i32 %2322, 0
  br i1 %.not569, label %2323, label %2324

2323:                                             ; preds = %2319, %2313
  br label %2324

2324:                                             ; preds = %2319, %2323
  %.str.4.sink1567 = phi ptr [ @.str.4, %2323 ], [ @.str, %2319 ]
  store i32 %2314, ptr %1955, align 4, !tbaa !5
  %2325 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2326 = load i32, ptr @test_count, align 4, !tbaa !5
  %2327 = load i32, ptr %240, align 4, !tbaa !5
  %2328 = call ptr @s2n_strerror(i32 noundef %2327, ptr noundef nonnull @.str.3) #11
  %2329 = load i32, ptr %240, align 4, !tbaa !5
  %2330 = call ptr @s2n_strerror_debug(i32 noundef %2329, ptr noundef nonnull @.str.3) #11
  %2331 = load i32, ptr %1955, align 4, !tbaa !5
  %2332 = call ptr @strerror(i32 noundef %2331) #11
  %2333 = load i32, ptr %1955, align 4, !tbaa !5
  %2334 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2325, ptr noundef nonnull %.str.4.sink1567, i32 noundef %2326, ptr noundef nonnull @.str.84, ptr noundef nonnull @.str.2, i32 noundef 544, ptr noundef %2328, ptr noundef %2330, ptr noundef %2332, i32 noundef %2333) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2335:                                             ; preds = %2308
  %2336 = call ptr @s2n_connection_new(i32 noundef 1) #11
  %2337 = load i32, ptr @test_count, align 4, !tbaa !5
  %2338 = add nsw i32 %2337, 1
  store i32 %2338, ptr @test_count, align 4, !tbaa !5
  %2339 = icmp eq ptr %2336, null
  br i1 %2339, label %2340, label %2362

2340:                                             ; preds = %2335
  %2341 = load i32, ptr %1955, align 4, !tbaa !5
  %2342 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2343 = call i32 @s2n_print_stacktrace(ptr noundef %2342) #11
  %2344 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2345 = trunc nuw i8 %2344 to i1
  br i1 %2345, label %2346, label %2350

2346:                                             ; preds = %2340
  %2347 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2348 = call i32 @fileno(ptr noundef %2347) #11
  %2349 = call i32 @isatty(i32 noundef %2348) #11
  %.not568 = icmp eq i32 %2349, 0
  br i1 %.not568, label %2350, label %2351

2350:                                             ; preds = %2346, %2340
  br label %2351

2351:                                             ; preds = %2346, %2350
  %.str.4.sink1576 = phi ptr [ @.str.4, %2350 ], [ @.str, %2346 ]
  store i32 %2341, ptr %1955, align 4, !tbaa !5
  %2352 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2353 = load i32, ptr @test_count, align 4, !tbaa !5
  %2354 = load i32, ptr %240, align 4, !tbaa !5
  %2355 = call ptr @s2n_strerror(i32 noundef %2354, ptr noundef nonnull @.str.3) #11
  %2356 = load i32, ptr %240, align 4, !tbaa !5
  %2357 = call ptr @s2n_strerror_debug(i32 noundef %2356, ptr noundef nonnull @.str.3) #11
  %2358 = load i32, ptr %1955, align 4, !tbaa !5
  %2359 = call ptr @strerror(i32 noundef %2358) #11
  %2360 = load i32, ptr %1955, align 4, !tbaa !5
  %2361 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2352, ptr noundef nonnull %.str.4.sink1576, i32 noundef %2353, ptr noundef nonnull @.str.85, ptr noundef nonnull @.str.2, i32 noundef 548, ptr noundef %2355, ptr noundef %2357, ptr noundef %2359, i32 noundef %2360) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2362:                                             ; preds = %2335
  %2363 = add nsw i32 %2337, 2
  store i32 %2363, ptr @test_count, align 4, !tbaa !5
  %2364 = call i32 @s2n_connection_set_config(ptr noundef nonnull %2336, ptr noundef nonnull %2230) #11
  %2365 = icmp eq i32 %2364, -1
  br i1 %2365, label %2366, label %2388

2366:                                             ; preds = %2362
  %2367 = load i32, ptr %1955, align 4, !tbaa !5
  %2368 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2369 = call i32 @s2n_print_stacktrace(ptr noundef %2368) #11
  %2370 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2371 = trunc nuw i8 %2370 to i1
  br i1 %2371, label %2372, label %2376

2372:                                             ; preds = %2366
  %2373 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2374 = call i32 @fileno(ptr noundef %2373) #11
  %2375 = call i32 @isatty(i32 noundef %2374) #11
  %.not567 = icmp eq i32 %2375, 0
  br i1 %.not567, label %2376, label %2377

2376:                                             ; preds = %2372, %2366
  br label %2377

2377:                                             ; preds = %2372, %2376
  %.str.4.sink1585 = phi ptr [ @.str.4, %2376 ], [ @.str, %2372 ]
  store i32 %2367, ptr %1955, align 4, !tbaa !5
  %2378 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2379 = load i32, ptr @test_count, align 4, !tbaa !5
  %2380 = load i32, ptr %240, align 4, !tbaa !5
  %2381 = call ptr @s2n_strerror(i32 noundef %2380, ptr noundef nonnull @.str.3) #11
  %2382 = load i32, ptr %240, align 4, !tbaa !5
  %2383 = call ptr @s2n_strerror_debug(i32 noundef %2382, ptr noundef nonnull @.str.3) #11
  %2384 = load i32, ptr %1955, align 4, !tbaa !5
  %2385 = call ptr @strerror(i32 noundef %2384) #11
  %2386 = load i32, ptr %1955, align 4, !tbaa !5
  %2387 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2378, ptr noundef nonnull %.str.4.sink1585, i32 noundef %2379, ptr noundef nonnull @.str.86, ptr noundef nonnull @.str.2, i32 noundef 549, ptr noundef %2381, ptr noundef %2383, ptr noundef %2385, i32 noundef %2386) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2388:                                             ; preds = %2362
  %2389 = call ptr @s2n_connection_new(i32 noundef 0) #11
  %2390 = load i32, ptr @test_count, align 4, !tbaa !5
  %2391 = add nsw i32 %2390, 1
  store i32 %2391, ptr @test_count, align 4, !tbaa !5
  %2392 = icmp eq ptr %2389, null
  br i1 %2392, label %2393, label %2415

2393:                                             ; preds = %2388
  %2394 = load i32, ptr %1955, align 4, !tbaa !5
  %2395 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2396 = call i32 @s2n_print_stacktrace(ptr noundef %2395) #11
  %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 = %2393
  %2400 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2401 = call i32 @fileno(ptr noundef %2400) #11
  %2402 = call i32 @isatty(i32 noundef %2401) #11
  %.not566 = icmp eq i32 %2402, 0
  br i1 %.not566, label %2403, label %2404

2403:                                             ; preds = %2399, %2393
  br label %2404

2404:                                             ; preds = %2399, %2403
  %.str.4.sink1594 = phi ptr [ @.str.4, %2403 ], [ @.str, %2399 ]
  store i32 %2394, ptr %1955, align 4, !tbaa !5
  %2405 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2406 = load i32, ptr @test_count, align 4, !tbaa !5
  %2407 = load i32, ptr %240, align 4, !tbaa !5
  %2408 = call ptr @s2n_strerror(i32 noundef %2407, ptr noundef nonnull @.str.3) #11
  %2409 = load i32, ptr %240, align 4, !tbaa !5
  %2410 = call ptr @s2n_strerror_debug(i32 noundef %2409, ptr noundef nonnull @.str.3) #11
  %2411 = load i32, ptr %1955, align 4, !tbaa !5
  %2412 = call ptr @strerror(i32 noundef %2411) #11
  %2413 = load i32, ptr %1955, align 4, !tbaa !5
  %2414 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2405, ptr noundef nonnull %.str.4.sink1594, i32 noundef %2406, ptr noundef nonnull @.str.87, ptr noundef nonnull @.str.2, i32 noundef 552, ptr noundef %2408, ptr noundef %2410, ptr noundef %2412, i32 noundef %2413) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2415:                                             ; preds = %2388
  %2416 = add nsw i32 %2390, 2
  store i32 %2416, ptr @test_count, align 4, !tbaa !5
  %2417 = call i32 @s2n_connection_set_config(ptr noundef nonnull %2389, ptr noundef nonnull %2093) #11
  %2418 = icmp eq i32 %2417, -1
  br i1 %2418, label %2419, label %2441

2419:                                             ; preds = %2415
  %2420 = load i32, ptr %1955, align 4, !tbaa !5
  %2421 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2422 = call i32 @s2n_print_stacktrace(ptr noundef %2421) #11
  %2423 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2424 = trunc nuw i8 %2423 to i1
  br i1 %2424, label %2425, label %2429

2425:                                             ; preds = %2419
  %2426 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2427 = call i32 @fileno(ptr noundef %2426) #11
  %2428 = call i32 @isatty(i32 noundef %2427) #11
  %.not565 = icmp eq i32 %2428, 0
  br i1 %.not565, label %2429, label %2430

2429:                                             ; preds = %2425, %2419
  br label %2430

2430:                                             ; preds = %2425, %2429
  %.str.4.sink1603 = phi ptr [ @.str.4, %2429 ], [ @.str, %2425 ]
  store i32 %2420, ptr %1955, align 4, !tbaa !5
  %2431 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2432 = load i32, ptr @test_count, align 4, !tbaa !5
  %2433 = load i32, ptr %240, align 4, !tbaa !5
  %2434 = call ptr @s2n_strerror(i32 noundef %2433, ptr noundef nonnull @.str.3) #11
  %2435 = load i32, ptr %240, align 4, !tbaa !5
  %2436 = call ptr @s2n_strerror_debug(i32 noundef %2435, ptr noundef nonnull @.str.3) #11
  %2437 = load i32, ptr %1955, align 4, !tbaa !5
  %2438 = call ptr @strerror(i32 noundef %2437) #11
  %2439 = load i32, ptr %1955, align 4, !tbaa !5
  %2440 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2431, ptr noundef nonnull %.str.4.sink1603, i32 noundef %2432, ptr noundef nonnull @.str.88, ptr noundef nonnull @.str.2, i32 noundef 553, ptr noundef %2434, ptr noundef %2436, ptr noundef %2438, i32 noundef %2439) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2441:                                             ; preds = %2415
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #11
  %2442 = load i32, ptr @test_count, align 4, !tbaa !5
  %2443 = add nsw i32 %2442, 1
  store i32 %2443, ptr @test_count, align 4, !tbaa !5
  %2444 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef nonnull %12) #11
  %2445 = icmp eq i32 %2444, -1
  br i1 %2445, label %2446, label %2468

2446:                                             ; preds = %2441
  %2447 = load i32, ptr %1955, align 4, !tbaa !5
  %2448 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2449 = call i32 @s2n_print_stacktrace(ptr noundef %2448) #11
  %2450 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2451 = trunc nuw i8 %2450 to i1
  br i1 %2451, label %2452, label %2456

2452:                                             ; preds = %2446
  %2453 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2454 = call i32 @fileno(ptr noundef %2453) #11
  %2455 = call i32 @isatty(i32 noundef %2454) #11
  %.not564 = icmp eq i32 %2455, 0
  br i1 %.not564, label %2456, label %2457

2456:                                             ; preds = %2452, %2446
  br label %2457

2457:                                             ; preds = %2452, %2456
  %.str.4.sink1612 = phi ptr [ @.str.4, %2456 ], [ @.str, %2452 ]
  store i32 %2447, ptr %1955, align 4, !tbaa !5
  %2458 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2459 = load i32, ptr @test_count, align 4, !tbaa !5
  %2460 = load i32, ptr %240, align 4, !tbaa !5
  %2461 = call ptr @s2n_strerror(i32 noundef %2460, ptr noundef nonnull @.str.3) #11
  %2462 = load i32, ptr %240, align 4, !tbaa !5
  %2463 = call ptr @s2n_strerror_debug(i32 noundef %2462, ptr noundef nonnull @.str.3) #11
  %2464 = load i32, ptr %1955, align 4, !tbaa !5
  %2465 = call ptr @strerror(i32 noundef %2464) #11
  %2466 = load i32, ptr %1955, align 4, !tbaa !5
  %2467 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2458, ptr noundef nonnull %.str.4.sink1612, i32 noundef %2459, ptr noundef nonnull @.str.89, ptr noundef nonnull @.str.2, i32 noundef 557, ptr noundef %2461, ptr noundef %2463, ptr noundef %2465, i32 noundef %2466) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2468:                                             ; preds = %2441
  %2469 = load i32, ptr @test_count, align 4, !tbaa !5
  %2470 = add nsw i32 %2469, 1
  store i32 %2470, ptr @test_count, align 4, !tbaa !5
  %2471 = call i32 @s2n_connection_set_io_pair(ptr noundef nonnull %2336, ptr noundef nonnull %12) #11
  %2472 = icmp eq i32 %2471, -1
  br i1 %2472, label %2473, label %2495

2473:                                             ; preds = %2468
  %2474 = load i32, ptr %1955, align 4, !tbaa !5
  %2475 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2476 = call i32 @s2n_print_stacktrace(ptr noundef %2475) #11
  %2477 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2478 = trunc nuw i8 %2477 to i1
  br i1 %2478, label %2479, label %2483

2479:                                             ; preds = %2473
  %2480 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2481 = call i32 @fileno(ptr noundef %2480) #11
  %2482 = call i32 @isatty(i32 noundef %2481) #11
  %.not563 = icmp eq i32 %2482, 0
  br i1 %.not563, label %2483, label %2484

2483:                                             ; preds = %2479, %2473
  br label %2484

2484:                                             ; preds = %2479, %2483
  %.str.4.sink1621 = phi ptr [ @.str.4, %2483 ], [ @.str, %2479 ]
  store i32 %2474, ptr %1955, align 4, !tbaa !5
  %2485 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2486 = load i32, ptr @test_count, align 4, !tbaa !5
  %2487 = load i32, ptr %240, align 4, !tbaa !5
  %2488 = call ptr @s2n_strerror(i32 noundef %2487, ptr noundef nonnull @.str.3) #11
  %2489 = load i32, ptr %240, align 4, !tbaa !5
  %2490 = call ptr @s2n_strerror_debug(i32 noundef %2489, ptr noundef nonnull @.str.3) #11
  %2491 = load i32, ptr %1955, align 4, !tbaa !5
  %2492 = call ptr @strerror(i32 noundef %2491) #11
  %2493 = load i32, ptr %1955, align 4, !tbaa !5
  %2494 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2485, ptr noundef nonnull %.str.4.sink1621, i32 noundef %2486, ptr noundef nonnull @.str.90, ptr noundef nonnull @.str.2, i32 noundef 558, ptr noundef %2488, ptr noundef %2490, ptr noundef %2492, i32 noundef %2493) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2495:                                             ; preds = %2468
  %2496 = load i32, ptr @test_count, align 4, !tbaa !5
  %2497 = add nsw i32 %2496, 1
  store i32 %2497, ptr @test_count, align 4, !tbaa !5
  %2498 = call i32 @s2n_connection_set_io_pair(ptr noundef nonnull %2389, ptr noundef nonnull %12) #11
  %2499 = icmp eq i32 %2498, -1
  br i1 %2499, label %2500, label %2522

2500:                                             ; preds = %2495
  %2501 = load i32, ptr %1955, align 4, !tbaa !5
  %2502 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2503 = call i32 @s2n_print_stacktrace(ptr noundef %2502) #11
  %2504 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2505 = trunc nuw i8 %2504 to i1
  br i1 %2505, label %2506, label %2510

2506:                                             ; preds = %2500
  %2507 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2508 = call i32 @fileno(ptr noundef %2507) #11
  %2509 = call i32 @isatty(i32 noundef %2508) #11
  %.not562 = icmp eq i32 %2509, 0
  br i1 %.not562, label %2510, label %2511

2510:                                             ; preds = %2506, %2500
  br label %2511

2511:                                             ; preds = %2506, %2510
  %.str.4.sink1630 = phi ptr [ @.str.4, %2510 ], [ @.str, %2506 ]
  store i32 %2501, ptr %1955, align 4, !tbaa !5
  %2512 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2513 = load i32, ptr @test_count, align 4, !tbaa !5
  %2514 = load i32, ptr %240, align 4, !tbaa !5
  %2515 = call ptr @s2n_strerror(i32 noundef %2514, ptr noundef nonnull @.str.3) #11
  %2516 = load i32, ptr %240, align 4, !tbaa !5
  %2517 = call ptr @s2n_strerror_debug(i32 noundef %2516, ptr noundef nonnull @.str.3) #11
  %2518 = load i32, ptr %1955, align 4, !tbaa !5
  %2519 = call ptr @strerror(i32 noundef %2518) #11
  %2520 = load i32, ptr %1955, align 4, !tbaa !5
  %2521 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2512, ptr noundef nonnull %.str.4.sink1630, i32 noundef %2513, ptr noundef nonnull @.str.91, ptr noundef nonnull @.str.2, i32 noundef 559, ptr noundef %2515, ptr noundef %2517, ptr noundef %2519, i32 noundef %2520) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2522:                                             ; preds = %2495
  %2523 = load i32, ptr @test_count, align 4, !tbaa !5
  %2524 = add nsw i32 %2523, 1
  store i32 %2524, ptr @test_count, align 4, !tbaa !5
  %2525 = call i32 @try_handshake(ptr noundef nonnull %2389, ptr noundef nonnull %2336, ptr noundef nonnull @async_handler_sign_with_different_pkey_and_apply)
  %2526 = icmp eq i32 %2525, -1
  br i1 %2526, label %2527, label %2549

2527:                                             ; preds = %2522
  %2528 = load i32, ptr %1955, align 4, !tbaa !5
  %2529 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2530 = call i32 @s2n_print_stacktrace(ptr noundef %2529) #11
  %2531 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2532 = trunc nuw i8 %2531 to i1
  br i1 %2532, label %2533, label %2537

2533:                                             ; preds = %2527
  %2534 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2535 = call i32 @fileno(ptr noundef %2534) #11
  %2536 = call i32 @isatty(i32 noundef %2535) #11
  %.not561 = icmp eq i32 %2536, 0
  br i1 %.not561, label %2537, label %2538

2537:                                             ; preds = %2533, %2527
  br label %2538

2538:                                             ; preds = %2533, %2537
  %.str.4.sink1639 = phi ptr [ @.str.4, %2537 ], [ @.str, %2533 ]
  store i32 %2528, ptr %1955, align 4, !tbaa !5
  %2539 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2540 = load i32, ptr @test_count, align 4, !tbaa !5
  %2541 = load i32, ptr %240, align 4, !tbaa !5
  %2542 = call ptr @s2n_strerror(i32 noundef %2541, ptr noundef nonnull @.str.3) #11
  %2543 = load i32, ptr %240, align 4, !tbaa !5
  %2544 = call ptr @s2n_strerror_debug(i32 noundef %2543, ptr noundef nonnull @.str.3) #11
  %2545 = load i32, ptr %1955, align 4, !tbaa !5
  %2546 = call ptr @strerror(i32 noundef %2545) #11
  %2547 = load i32, ptr %1955, align 4, !tbaa !5
  %2548 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2539, ptr noundef nonnull %.str.4.sink1639, i32 noundef %2540, ptr noundef nonnull @.str.103, ptr noundef nonnull @.str.2, i32 noundef 561, ptr noundef %2542, ptr noundef %2544, ptr noundef %2546, i32 noundef %2547) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2549:                                             ; preds = %2522
  %2550 = load i32, ptr @test_count, align 4, !tbaa !5
  %2551 = add nsw i32 %2550, 1
  store i32 %2551, ptr @test_count, align 4, !tbaa !5
  %2552 = call i32 @s2n_connection_free(ptr noundef nonnull %2389) #11
  %2553 = icmp eq i32 %2552, -1
  br i1 %2553, label %2554, label %2576

2554:                                             ; preds = %2549
  %2555 = load i32, ptr %1955, align 4, !tbaa !5
  %2556 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2557 = call i32 @s2n_print_stacktrace(ptr noundef %2556) #11
  %2558 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2559 = trunc nuw i8 %2558 to i1
  br i1 %2559, label %2560, label %2564

2560:                                             ; preds = %2554
  %2561 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2562 = call i32 @fileno(ptr noundef %2561) #11
  %2563 = call i32 @isatty(i32 noundef %2562) #11
  %.not560 = icmp eq i32 %2563, 0
  br i1 %.not560, label %2564, label %2565

2564:                                             ; preds = %2560, %2554
  br label %2565

2565:                                             ; preds = %2560, %2564
  %.str.4.sink1648 = phi ptr [ @.str.4, %2564 ], [ @.str, %2560 ]
  store i32 %2555, ptr %1955, align 4, !tbaa !5
  %2566 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2567 = load i32, ptr @test_count, align 4, !tbaa !5
  %2568 = load i32, ptr %240, align 4, !tbaa !5
  %2569 = call ptr @s2n_strerror(i32 noundef %2568, ptr noundef nonnull @.str.3) #11
  %2570 = load i32, ptr %240, align 4, !tbaa !5
  %2571 = call ptr @s2n_strerror_debug(i32 noundef %2570, ptr noundef nonnull @.str.3) #11
  %2572 = load i32, ptr %1955, align 4, !tbaa !5
  %2573 = call ptr @strerror(i32 noundef %2572) #11
  %2574 = load i32, ptr %1955, align 4, !tbaa !5
  %2575 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2566, ptr noundef nonnull %.str.4.sink1648, i32 noundef %2567, ptr noundef nonnull @.str.93, ptr noundef nonnull @.str.2, i32 noundef 564, ptr noundef %2569, ptr noundef %2571, ptr noundef %2573, i32 noundef %2574) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2576:                                             ; preds = %2549
  %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 = call i32 @s2n_connection_free(ptr noundef nonnull %2336) #11
  %2580 = icmp eq i32 %2579, -1
  br i1 %2580, label %2581, label %2603

2581:                                             ; preds = %2576
  %2582 = load i32, ptr %1955, align 4, !tbaa !5
  %2583 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2584 = call i32 @s2n_print_stacktrace(ptr noundef %2583) #11
  %2585 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2586 = trunc nuw i8 %2585 to i1
  br i1 %2586, label %2587, label %2591

2587:                                             ; preds = %2581
  %2588 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2589 = call i32 @fileno(ptr noundef %2588) #11
  %2590 = call i32 @isatty(i32 noundef %2589) #11
  %.not559 = icmp eq i32 %2590, 0
  br i1 %.not559, label %2591, label %2592

2591:                                             ; preds = %2587, %2581
  br label %2592

2592:                                             ; preds = %2587, %2591
  %.str.4.sink1657 = phi ptr [ @.str.4, %2591 ], [ @.str, %2587 ]
  store i32 %2582, ptr %1955, align 4, !tbaa !5
  %2593 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2594 = load i32, ptr @test_count, align 4, !tbaa !5
  %2595 = load i32, ptr %240, align 4, !tbaa !5
  %2596 = call ptr @s2n_strerror(i32 noundef %2595, ptr noundef nonnull @.str.3) #11
  %2597 = load i32, ptr %240, align 4, !tbaa !5
  %2598 = call ptr @s2n_strerror_debug(i32 noundef %2597, ptr noundef nonnull @.str.3) #11
  %2599 = load i32, ptr %1955, align 4, !tbaa !5
  %2600 = call ptr @strerror(i32 noundef %2599) #11
  %2601 = load i32, ptr %1955, align 4, !tbaa !5
  %2602 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2593, ptr noundef nonnull %.str.4.sink1657, i32 noundef %2594, ptr noundef nonnull @.str.94, ptr noundef nonnull @.str.2, i32 noundef 565, ptr noundef %2596, ptr noundef %2598, ptr noundef %2600, i32 noundef %2601) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2603:                                             ; preds = %2576
  %2604 = load i32, ptr @test_count, align 4, !tbaa !5
  %2605 = add nsw i32 %2604, 1
  store i32 %2605, ptr @test_count, align 4, !tbaa !5
  %2606 = call i32 @s2n_io_pair_close(ptr noundef nonnull %12) #11
  %2607 = icmp eq i32 %2606, -1
  br i1 %2607, label %2608, label %2630

2608:                                             ; preds = %2603
  %2609 = load i32, ptr %1955, align 4, !tbaa !5
  %2610 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2611 = call i32 @s2n_print_stacktrace(ptr noundef %2610) #11
  %2612 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2613 = trunc nuw i8 %2612 to i1
  br i1 %2613, label %2614, label %2618

2614:                                             ; preds = %2608
  %2615 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2616 = call i32 @fileno(ptr noundef %2615) #11
  %2617 = call i32 @isatty(i32 noundef %2616) #11
  %.not558 = icmp eq i32 %2617, 0
  br i1 %.not558, label %2618, label %2619

2618:                                             ; preds = %2614, %2608
  br label %2619

2619:                                             ; preds = %2614, %2618
  %.str.4.sink1666 = phi ptr [ @.str.4, %2618 ], [ @.str, %2614 ]
  store i32 %2609, ptr %1955, align 4, !tbaa !5
  %2620 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2621 = load i32, ptr @test_count, align 4, !tbaa !5
  %2622 = load i32, ptr %240, align 4, !tbaa !5
  %2623 = call ptr @s2n_strerror(i32 noundef %2622, ptr noundef nonnull @.str.3) #11
  %2624 = load i32, ptr %240, align 4, !tbaa !5
  %2625 = call ptr @s2n_strerror_debug(i32 noundef %2624, ptr noundef nonnull @.str.3) #11
  %2626 = load i32, ptr %1955, align 4, !tbaa !5
  %2627 = call ptr @strerror(i32 noundef %2626) #11
  %2628 = load i32, ptr %1955, align 4, !tbaa !5
  %2629 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2620, ptr noundef nonnull %.str.4.sink1666, i32 noundef %2621, ptr noundef nonnull @.str.95, ptr noundef nonnull @.str.2, i32 noundef 566, ptr noundef %2623, ptr noundef %2625, ptr noundef %2627, i32 noundef %2628) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2630:                                             ; preds = %2603
  %2631 = load i32, ptr @test_count, align 4, !tbaa !5
  %2632 = add nsw i32 %2631, 1
  store i32 %2632, ptr @test_count, align 4, !tbaa !5
  %2633 = call i32 @s2n_config_free(ptr noundef nonnull %2093) #11
  %2634 = icmp eq i32 %2633, -1
  br i1 %2634, label %2635, label %2657

2635:                                             ; preds = %2630
  %2636 = load i32, ptr %1955, align 4, !tbaa !5
  %2637 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2638 = call i32 @s2n_print_stacktrace(ptr noundef %2637) #11
  %2639 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2640 = trunc nuw i8 %2639 to i1
  br i1 %2640, label %2641, label %2645

2641:                                             ; preds = %2635
  %2642 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2643 = call i32 @fileno(ptr noundef %2642) #11
  %2644 = call i32 @isatty(i32 noundef %2643) #11
  %.not557 = icmp eq i32 %2644, 0
  br i1 %.not557, label %2645, label %2646

2645:                                             ; preds = %2641, %2635
  br label %2646

2646:                                             ; preds = %2641, %2645
  %.str.4.sink1675 = phi ptr [ @.str.4, %2645 ], [ @.str, %2641 ]
  store i32 %2636, ptr %1955, align 4, !tbaa !5
  %2647 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2648 = load i32, ptr @test_count, align 4, !tbaa !5
  %2649 = load i32, ptr %240, align 4, !tbaa !5
  %2650 = call ptr @s2n_strerror(i32 noundef %2649, ptr noundef nonnull @.str.3) #11
  %2651 = load i32, ptr %240, align 4, !tbaa !5
  %2652 = call ptr @s2n_strerror_debug(i32 noundef %2651, ptr noundef nonnull @.str.3) #11
  %2653 = load i32, ptr %1955, align 4, !tbaa !5
  %2654 = call ptr @strerror(i32 noundef %2653) #11
  %2655 = load i32, ptr %1955, align 4, !tbaa !5
  %2656 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2647, ptr noundef nonnull %.str.4.sink1675, i32 noundef %2648, ptr noundef nonnull @.str.96, ptr noundef nonnull @.str.2, i32 noundef 567, ptr noundef %2650, ptr noundef %2652, ptr noundef %2654, i32 noundef %2655) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2657:                                             ; preds = %2630
  %2658 = load i32, ptr @test_count, align 4, !tbaa !5
  %2659 = add nsw i32 %2658, 1
  store i32 %2659, ptr @test_count, align 4, !tbaa !5
  %2660 = call i32 @s2n_config_free(ptr noundef nonnull %2230) #11
  %2661 = icmp eq i32 %2660, -1
  br i1 %2661, label %2662, label %2684

2662:                                             ; preds = %2657
  %2663 = load i32, ptr %1955, align 4, !tbaa !5
  %2664 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2665 = call i32 @s2n_print_stacktrace(ptr noundef %2664) #11
  %2666 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2667 = trunc nuw i8 %2666 to i1
  br i1 %2667, label %2668, label %2672

2668:                                             ; preds = %2662
  %2669 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2670 = call i32 @fileno(ptr noundef %2669) #11
  %2671 = call i32 @isatty(i32 noundef %2670) #11
  %.not556 = icmp eq i32 %2671, 0
  br i1 %.not556, label %2672, label %2673

2672:                                             ; preds = %2668, %2662
  br label %2673

2673:                                             ; preds = %2668, %2672
  %.str.4.sink1684 = phi ptr [ @.str.4, %2672 ], [ @.str, %2668 ]
  store i32 %2663, ptr %1955, align 4, !tbaa !5
  %2674 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2675 = load i32, ptr @test_count, align 4, !tbaa !5
  %2676 = load i32, ptr %240, align 4, !tbaa !5
  %2677 = call ptr @s2n_strerror(i32 noundef %2676, ptr noundef nonnull @.str.3) #11
  %2678 = load i32, ptr %240, align 4, !tbaa !5
  %2679 = call ptr @s2n_strerror_debug(i32 noundef %2678, ptr noundef nonnull @.str.3) #11
  %2680 = load i32, ptr %1955, align 4, !tbaa !5
  %2681 = call ptr @strerror(i32 noundef %2680) #11
  %2682 = load i32, ptr %1955, align 4, !tbaa !5
  %2683 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2674, ptr noundef nonnull %.str.4.sink1684, i32 noundef %2675, ptr noundef nonnull @.str.97, ptr noundef nonnull @.str.2, i32 noundef 568, ptr noundef %2677, ptr noundef %2679, ptr noundef %2681, i32 noundef %2682) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2684:                                             ; preds = %2657
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #11
  %2685 = call ptr @s2n_config_new() #11
  store ptr %2685, ptr %13, align 8, !tbaa !9
  %2686 = load i32, ptr @test_count, align 4, !tbaa !5
  %2687 = add nsw i32 %2686, 1
  store i32 %2687, ptr @test_count, align 4, !tbaa !5
  %2688 = icmp eq ptr %2685, null
  br i1 %2688, label %2689, label %2711

2689:                                             ; preds = %2684
  %2690 = load i32, ptr %1955, align 4, !tbaa !5
  %2691 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2692 = call i32 @s2n_print_stacktrace(ptr noundef %2691) #11
  %2693 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2694 = trunc nuw i8 %2693 to i1
  br i1 %2694, label %2695, label %2699

2695:                                             ; preds = %2689
  %2696 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2697 = call i32 @fileno(ptr noundef %2696) #11
  %2698 = call i32 @isatty(i32 noundef %2697) #11
  %.not555 = icmp eq i32 %2698, 0
  br i1 %.not555, label %2699, label %2700

2699:                                             ; preds = %2695, %2689
  br label %2700

2700:                                             ; preds = %2695, %2699
  %.str.4.sink1693 = phi ptr [ @.str.4, %2699 ], [ @.str, %2695 ]
  store i32 %2690, ptr %1955, align 4, !tbaa !5
  %2701 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2702 = load i32, ptr @test_count, align 4, !tbaa !5
  %2703 = load i32, ptr %240, align 4, !tbaa !5
  %2704 = call ptr @s2n_strerror(i32 noundef %2703, ptr noundef nonnull @.str.3) #11
  %2705 = load i32, ptr %240, align 4, !tbaa !5
  %2706 = call ptr @s2n_strerror_debug(i32 noundef %2705, ptr noundef nonnull @.str.3) #11
  %2707 = load i32, ptr %1955, align 4, !tbaa !5
  %2708 = call ptr @strerror(i32 noundef %2707) #11
  %2709 = load i32, ptr %1955, align 4, !tbaa !5
  %2710 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2701, ptr noundef nonnull %.str.4.sink1693, i32 noundef %2702, ptr noundef nonnull @.str.104, ptr noundef nonnull @.str.2, i32 noundef 574, ptr noundef %2704, ptr noundef %2706, ptr noundef %2708, i32 noundef %2709) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2711:                                             ; preds = %2684
  %2712 = add nsw i32 %2686, 2
  store i32 %2712, ptr @test_count, align 4, !tbaa !5
  %2713 = load ptr, ptr %4, align 8, !tbaa !9
  %2714 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef nonnull %2685, ptr noundef %2713) #11
  %2715 = icmp eq i32 %2714, -1
  br i1 %2715, label %2716, label %2738

2716:                                             ; preds = %2711
  %2717 = load i32, ptr %1955, align 4, !tbaa !5
  %2718 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2719 = call i32 @s2n_print_stacktrace(ptr noundef %2718) #11
  %2720 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2721 = trunc nuw i8 %2720 to i1
  br i1 %2721, label %2722, label %2726

2722:                                             ; preds = %2716
  %2723 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2724 = call i32 @fileno(ptr noundef %2723) #11
  %2725 = call i32 @isatty(i32 noundef %2724) #11
  %.not554 = icmp eq i32 %2725, 0
  br i1 %.not554, label %2726, label %2727

2726:                                             ; preds = %2722, %2716
  br label %2727

2727:                                             ; preds = %2722, %2726
  %.str.4.sink1702 = phi ptr [ @.str.4, %2726 ], [ @.str, %2722 ]
  store i32 %2717, ptr %1955, align 4, !tbaa !5
  %2728 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2729 = load i32, ptr @test_count, align 4, !tbaa !5
  %2730 = load i32, ptr %240, align 4, !tbaa !5
  %2731 = call ptr @s2n_strerror(i32 noundef %2730, ptr noundef nonnull @.str.3) #11
  %2732 = load i32, ptr %240, align 4, !tbaa !5
  %2733 = call ptr @s2n_strerror_debug(i32 noundef %2732, ptr noundef nonnull @.str.3) #11
  %2734 = load i32, ptr %1955, align 4, !tbaa !5
  %2735 = call ptr @strerror(i32 noundef %2734) #11
  %2736 = load i32, ptr %1955, align 4, !tbaa !5
  %2737 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2728, ptr noundef nonnull %.str.4.sink1702, i32 noundef %2729, ptr noundef nonnull @.str.77, ptr noundef nonnull @.str.2, i32 noundef 575, ptr noundef %2731, ptr noundef %2733, ptr noundef %2735, i32 noundef %2736) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2738:                                             ; preds = %2711
  %2739 = load i32, ptr @test_count, align 4, !tbaa !5
  %2740 = add nsw i32 %2739, 1
  store i32 %2740, ptr @test_count, align 4, !tbaa !5
  %2741 = load ptr, ptr %13, align 8, !tbaa !9
  %2742 = call i32 @s2n_config_add_dhparams(ptr noundef %2741, ptr noundef nonnull %3) #11
  %2743 = icmp eq i32 %2742, -1
  br i1 %2743, label %2744, label %2766

2744:                                             ; preds = %2738
  %2745 = load i32, ptr %1955, align 4, !tbaa !5
  %2746 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2747 = call i32 @s2n_print_stacktrace(ptr noundef %2746) #11
  %2748 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2749 = trunc nuw i8 %2748 to i1
  br i1 %2749, label %2750, label %2754

2750:                                             ; preds = %2744
  %2751 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2752 = call i32 @fileno(ptr noundef %2751) #11
  %2753 = call i32 @isatty(i32 noundef %2752) #11
  %.not553 = icmp eq i32 %2753, 0
  br i1 %.not553, label %2754, label %2755

2754:                                             ; preds = %2750, %2744
  br label %2755

2755:                                             ; preds = %2750, %2754
  %.str.4.sink1711 = phi ptr [ @.str.4, %2754 ], [ @.str, %2750 ]
  store i32 %2745, ptr %1955, align 4, !tbaa !5
  %2756 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2757 = load i32, ptr @test_count, align 4, !tbaa !5
  %2758 = load i32, ptr %240, align 4, !tbaa !5
  %2759 = call ptr @s2n_strerror(i32 noundef %2758, ptr noundef nonnull @.str.3) #11
  %2760 = load i32, ptr %240, align 4, !tbaa !5
  %2761 = call ptr @s2n_strerror_debug(i32 noundef %2760, ptr noundef nonnull @.str.3) #11
  %2762 = load i32, ptr %1955, align 4, !tbaa !5
  %2763 = call ptr @strerror(i32 noundef %2762) #11
  %2764 = load i32, ptr %1955, align 4, !tbaa !5
  %2765 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2756, ptr noundef nonnull %.str.4.sink1711, i32 noundef %2757, ptr noundef nonnull @.str.78, ptr noundef nonnull @.str.2, i32 noundef 576, ptr noundef %2759, ptr noundef %2761, ptr noundef %2763, i32 noundef %2764) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2766:                                             ; preds = %2738
  %2767 = load i32, ptr @test_count, align 4, !tbaa !5
  %2768 = add nsw i32 %2767, 1
  store i32 %2768, ptr @test_count, align 4, !tbaa !5
  %2769 = load ptr, ptr %13, align 8, !tbaa !9
  %2770 = call i32 @s2n_config_set_async_pkey_callback(ptr noundef %2769, ptr noundef nonnull @async_pkey_store_callback) #11
  %2771 = icmp eq i32 %2770, -1
  br i1 %2771, label %2772, label %2794

2772:                                             ; preds = %2766
  %2773 = load i32, ptr %1955, align 4, !tbaa !5
  %2774 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2775 = call i32 @s2n_print_stacktrace(ptr noundef %2774) #11
  %2776 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2777 = trunc nuw i8 %2776 to i1
  br i1 %2777, label %2778, label %2782

2778:                                             ; preds = %2772
  %2779 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2780 = call i32 @fileno(ptr noundef %2779) #11
  %2781 = call i32 @isatty(i32 noundef %2780) #11
  %.not552 = icmp eq i32 %2781, 0
  br i1 %.not552, label %2782, label %2783

2782:                                             ; preds = %2778, %2772
  br label %2783

2783:                                             ; preds = %2778, %2782
  %.str.4.sink1720 = phi ptr [ @.str.4, %2782 ], [ @.str, %2778 ]
  store i32 %2773, ptr %1955, align 4, !tbaa !5
  %2784 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2785 = load i32, ptr @test_count, align 4, !tbaa !5
  %2786 = load i32, ptr %240, align 4, !tbaa !5
  %2787 = call ptr @s2n_strerror(i32 noundef %2786, ptr noundef nonnull @.str.3) #11
  %2788 = load i32, ptr %240, align 4, !tbaa !5
  %2789 = call ptr @s2n_strerror_debug(i32 noundef %2788, ptr noundef nonnull @.str.3) #11
  %2790 = load i32, ptr %1955, align 4, !tbaa !5
  %2791 = call ptr @strerror(i32 noundef %2790) #11
  %2792 = load i32, ptr %1955, align 4, !tbaa !5
  %2793 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2784, ptr noundef nonnull %.str.4.sink1720, i32 noundef %2785, ptr noundef nonnull @.str.98, ptr noundef nonnull @.str.2, i32 noundef 577, ptr noundef %2787, ptr noundef %2789, ptr noundef %2791, i32 noundef %2792) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2794:                                             ; preds = %2766
  %2795 = load ptr, ptr %13, align 8, !tbaa !9
  %2796 = getelementptr inbounds i8, ptr %2795, i64 96
  store ptr %8, ptr %2796, align 8, !tbaa !29
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %14) #11
  %2797 = call ptr @s2n_config_new() #11
  store ptr %2797, ptr %14, align 8, !tbaa !9
  %2798 = load i32, ptr @test_count, align 4, !tbaa !5
  %2799 = add nsw i32 %2798, 1
  store i32 %2799, ptr @test_count, align 4, !tbaa !5
  %2800 = icmp eq ptr %2797, null
  br i1 %2800, label %2801, label %2823

2801:                                             ; preds = %2794
  %2802 = load i32, ptr %1955, align 4, !tbaa !5
  %2803 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2804 = call i32 @s2n_print_stacktrace(ptr noundef %2803) #11
  %2805 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2806 = trunc nuw i8 %2805 to i1
  br i1 %2806, label %2807, label %2811

2807:                                             ; preds = %2801
  %2808 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2809 = call i32 @fileno(ptr noundef %2808) #11
  %2810 = call i32 @isatty(i32 noundef %2809) #11
  %.not551 = icmp eq i32 %2810, 0
  br i1 %.not551, label %2811, label %2812

2811:                                             ; preds = %2807, %2801
  br label %2812

2812:                                             ; preds = %2807, %2811
  %.str.4.sink1729 = phi ptr [ @.str.4, %2811 ], [ @.str, %2807 ]
  store i32 %2802, ptr %1955, align 4, !tbaa !5
  %2813 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2814 = load i32, ptr @test_count, align 4, !tbaa !5
  %2815 = load i32, ptr %240, align 4, !tbaa !5
  %2816 = call ptr @s2n_strerror(i32 noundef %2815, ptr noundef nonnull @.str.3) #11
  %2817 = load i32, ptr %240, align 4, !tbaa !5
  %2818 = call ptr @s2n_strerror_debug(i32 noundef %2817, ptr noundef nonnull @.str.3) #11
  %2819 = load i32, ptr %1955, align 4, !tbaa !5
  %2820 = call ptr @strerror(i32 noundef %2819) #11
  %2821 = load i32, ptr %1955, align 4, !tbaa !5
  %2822 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2813, ptr noundef nonnull %.str.4.sink1729, i32 noundef %2814, ptr noundef nonnull @.str.105, ptr noundef nonnull @.str.2, i32 noundef 581, ptr noundef %2816, ptr noundef %2818, ptr noundef %2820, i32 noundef %2821) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2823:                                             ; preds = %2794
  %2824 = add nsw i32 %2798, 2
  store i32 %2824, ptr @test_count, align 4, !tbaa !5
  %2825 = call i32 @s2n_config_set_unsafe_for_testing(ptr noundef nonnull %2797) #11
  %2826 = icmp eq i32 %2825, -1
  br i1 %2826, label %2827, label %2849

2827:                                             ; preds = %2823
  %2828 = load i32, ptr %1955, align 4, !tbaa !5
  %2829 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2830 = call i32 @s2n_print_stacktrace(ptr noundef %2829) #11
  %2831 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2832 = trunc nuw i8 %2831 to i1
  br i1 %2832, label %2833, label %2837

2833:                                             ; preds = %2827
  %2834 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2835 = call i32 @fileno(ptr noundef %2834) #11
  %2836 = call i32 @isatty(i32 noundef %2835) #11
  %.not550 = icmp eq i32 %2836, 0
  br i1 %.not550, label %2837, label %2838

2837:                                             ; preds = %2833, %2827
  br label %2838

2838:                                             ; preds = %2833, %2837
  %.str.4.sink1738 = phi ptr [ @.str.4, %2837 ], [ @.str, %2833 ]
  store i32 %2828, ptr %1955, align 4, !tbaa !5
  %2839 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2840 = load i32, ptr @test_count, align 4, !tbaa !5
  %2841 = load i32, ptr %240, align 4, !tbaa !5
  %2842 = call ptr @s2n_strerror(i32 noundef %2841, ptr noundef nonnull @.str.3) #11
  %2843 = load i32, ptr %240, align 4, !tbaa !5
  %2844 = call ptr @s2n_strerror_debug(i32 noundef %2843, ptr noundef nonnull @.str.3) #11
  %2845 = load i32, ptr %1955, align 4, !tbaa !5
  %2846 = call ptr @strerror(i32 noundef %2845) #11
  %2847 = load i32, ptr %1955, align 4, !tbaa !5
  %2848 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2839, ptr noundef nonnull %.str.4.sink1738, i32 noundef %2840, ptr noundef nonnull @.str.81, ptr noundef nonnull @.str.2, i32 noundef 582, ptr noundef %2842, ptr noundef %2844, ptr noundef %2846, i32 noundef %2847) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2849:                                             ; preds = %2823
  %2850 = load i32, ptr @test_count, align 4, !tbaa !5
  %2851 = add nsw i32 %2850, 1
  store i32 %2851, ptr @test_count, align 4, !tbaa !5
  %2852 = load ptr, ptr %14, align 8, !tbaa !9
  %2853 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %2852, ptr noundef nonnull @.str.82) #11
  %2854 = icmp eq i32 %2853, -1
  br i1 %2854, label %2855, label %2877

2855:                                             ; preds = %2849
  %2856 = load i32, ptr %1955, align 4, !tbaa !5
  %2857 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2858 = call i32 @s2n_print_stacktrace(ptr noundef %2857) #11
  %2859 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2860 = trunc nuw i8 %2859 to i1
  br i1 %2860, label %2861, label %2865

2861:                                             ; preds = %2855
  %2862 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2863 = call i32 @fileno(ptr noundef %2862) #11
  %2864 = call i32 @isatty(i32 noundef %2863) #11
  %.not549 = icmp eq i32 %2864, 0
  br i1 %.not549, label %2865, label %2866

2865:                                             ; preds = %2861, %2855
  br label %2866

2866:                                             ; preds = %2861, %2865
  %.str.4.sink1747 = phi ptr [ @.str.4, %2865 ], [ @.str, %2861 ]
  store i32 %2856, ptr %1955, align 4, !tbaa !5
  %2867 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2868 = load i32, ptr @test_count, align 4, !tbaa !5
  %2869 = load i32, ptr %240, align 4, !tbaa !5
  %2870 = call ptr @s2n_strerror(i32 noundef %2869, ptr noundef nonnull @.str.3) #11
  %2871 = load i32, ptr %240, align 4, !tbaa !5
  %2872 = call ptr @s2n_strerror_debug(i32 noundef %2871, ptr noundef nonnull @.str.3) #11
  %2873 = load i32, ptr %1955, align 4, !tbaa !5
  %2874 = call ptr @strerror(i32 noundef %2873) #11
  %2875 = load i32, ptr %1955, align 4, !tbaa !5
  %2876 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2867, ptr noundef nonnull %.str.4.sink1747, i32 noundef %2868, ptr noundef nonnull @.str.83, ptr noundef nonnull @.str.2, i32 noundef 584, ptr noundef %2870, ptr noundef %2872, ptr noundef %2874, i32 noundef %2875) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2877:                                             ; preds = %2849
  %2878 = load i32, ptr @test_count, align 4, !tbaa !5
  %2879 = add nsw i32 %2878, 1
  store i32 %2879, ptr @test_count, align 4, !tbaa !5
  %2880 = load ptr, ptr %14, align 8, !tbaa !9
  %2881 = call i32 @s2n_config_set_verification_ca_location(ptr noundef %2880, ptr noundef nonnull @.str.69, ptr noundef null) #11
  %2882 = icmp eq i32 %2881, -1
  br i1 %2882, label %2883, label %2905

2883:                                             ; preds = %2877
  %2884 = load i32, ptr %1955, align 4, !tbaa !5
  %2885 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2886 = call i32 @s2n_print_stacktrace(ptr noundef %2885) #11
  %2887 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2888 = trunc nuw i8 %2887 to i1
  br i1 %2888, label %2889, label %2893

2889:                                             ; preds = %2883
  %2890 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2891 = call i32 @fileno(ptr noundef %2890) #11
  %2892 = call i32 @isatty(i32 noundef %2891) #11
  %.not548 = icmp eq i32 %2892, 0
  br i1 %.not548, label %2893, label %2894

2893:                                             ; preds = %2889, %2883
  br label %2894

2894:                                             ; preds = %2889, %2893
  %.str.4.sink1756 = phi ptr [ @.str.4, %2893 ], [ @.str, %2889 ]
  store i32 %2884, ptr %1955, align 4, !tbaa !5
  %2895 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2896 = load i32, ptr @test_count, align 4, !tbaa !5
  %2897 = load i32, ptr %240, align 4, !tbaa !5
  %2898 = call ptr @s2n_strerror(i32 noundef %2897, ptr noundef nonnull @.str.3) #11
  %2899 = load i32, ptr %240, align 4, !tbaa !5
  %2900 = call ptr @s2n_strerror_debug(i32 noundef %2899, ptr noundef nonnull @.str.3) #11
  %2901 = load i32, ptr %1955, align 4, !tbaa !5
  %2902 = call ptr @strerror(i32 noundef %2901) #11
  %2903 = load i32, ptr %1955, align 4, !tbaa !5
  %2904 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2895, ptr noundef nonnull %.str.4.sink1756, i32 noundef %2896, ptr noundef nonnull @.str.84, ptr noundef nonnull @.str.2, i32 noundef 585, ptr noundef %2898, ptr noundef %2900, ptr noundef %2902, i32 noundef %2903) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2905:                                             ; preds = %2877
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #11
  %2906 = call ptr @s2n_connection_new(i32 noundef 1) #11
  store ptr %2906, ptr %15, align 8, !tbaa !9
  %2907 = load i32, ptr @test_count, align 4, !tbaa !5
  %2908 = add nsw i32 %2907, 1
  store i32 %2908, ptr @test_count, align 4, !tbaa !5
  %2909 = icmp eq ptr %2906, null
  br i1 %2909, label %2910, label %2932

2910:                                             ; preds = %2905
  %2911 = load i32, ptr %1955, align 4, !tbaa !5
  %2912 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2913 = call i32 @s2n_print_stacktrace(ptr noundef %2912) #11
  %2914 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2915 = trunc nuw i8 %2914 to i1
  br i1 %2915, label %2916, label %2920

2916:                                             ; preds = %2910
  %2917 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2918 = call i32 @fileno(ptr noundef %2917) #11
  %2919 = call i32 @isatty(i32 noundef %2918) #11
  %.not547 = icmp eq i32 %2919, 0
  br i1 %.not547, label %2920, label %2921

2920:                                             ; preds = %2916, %2910
  br label %2921

2921:                                             ; preds = %2916, %2920
  %.str.4.sink1765 = phi ptr [ @.str.4, %2920 ], [ @.str, %2916 ]
  store i32 %2911, ptr %1955, align 4, !tbaa !5
  %2922 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2923 = load i32, ptr @test_count, align 4, !tbaa !5
  %2924 = load i32, ptr %240, align 4, !tbaa !5
  %2925 = call ptr @s2n_strerror(i32 noundef %2924, ptr noundef nonnull @.str.3) #11
  %2926 = load i32, ptr %240, align 4, !tbaa !5
  %2927 = call ptr @s2n_strerror_debug(i32 noundef %2926, ptr noundef nonnull @.str.3) #11
  %2928 = load i32, ptr %1955, align 4, !tbaa !5
  %2929 = call ptr @strerror(i32 noundef %2928) #11
  %2930 = load i32, ptr %1955, align 4, !tbaa !5
  %2931 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2922, ptr noundef nonnull %.str.4.sink1765, i32 noundef %2923, ptr noundef nonnull @.str.85, ptr noundef nonnull @.str.2, i32 noundef 589, ptr noundef %2925, ptr noundef %2927, ptr noundef %2929, i32 noundef %2930) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2932:                                             ; preds = %2905
  %2933 = add nsw i32 %2907, 2
  store i32 %2933, ptr @test_count, align 4, !tbaa !5
  %2934 = load ptr, ptr %14, align 8, !tbaa !9
  %2935 = call i32 @s2n_connection_set_config(ptr noundef nonnull %2906, ptr noundef %2934) #11
  %2936 = icmp eq i32 %2935, -1
  br i1 %2936, label %2937, label %2959

2937:                                             ; preds = %2932
  %2938 = load i32, ptr %1955, align 4, !tbaa !5
  %2939 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2940 = call i32 @s2n_print_stacktrace(ptr noundef %2939) #11
  %2941 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2942 = trunc nuw i8 %2941 to i1
  br i1 %2942, label %2943, label %2947

2943:                                             ; preds = %2937
  %2944 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2945 = call i32 @fileno(ptr noundef %2944) #11
  %2946 = call i32 @isatty(i32 noundef %2945) #11
  %.not546 = icmp eq i32 %2946, 0
  br i1 %.not546, label %2947, label %2948

2947:                                             ; preds = %2943, %2937
  br label %2948

2948:                                             ; preds = %2943, %2947
  %.str.4.sink1774 = phi ptr [ @.str.4, %2947 ], [ @.str, %2943 ]
  store i32 %2938, ptr %1955, align 4, !tbaa !5
  %2949 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2950 = load i32, ptr @test_count, align 4, !tbaa !5
  %2951 = load i32, ptr %240, align 4, !tbaa !5
  %2952 = call ptr @s2n_strerror(i32 noundef %2951, ptr noundef nonnull @.str.3) #11
  %2953 = load i32, ptr %240, align 4, !tbaa !5
  %2954 = call ptr @s2n_strerror_debug(i32 noundef %2953, ptr noundef nonnull @.str.3) #11
  %2955 = load i32, ptr %1955, align 4, !tbaa !5
  %2956 = call ptr @strerror(i32 noundef %2955) #11
  %2957 = load i32, ptr %1955, align 4, !tbaa !5
  %2958 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2949, ptr noundef nonnull %.str.4.sink1774, i32 noundef %2950, ptr noundef nonnull @.str.86, ptr noundef nonnull @.str.2, i32 noundef 590, ptr noundef %2952, ptr noundef %2954, ptr noundef %2956, i32 noundef %2957) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2959:                                             ; preds = %2932
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %16) #11
  %2960 = call ptr @s2n_connection_new(i32 noundef 0) #11
  store ptr %2960, ptr %16, align 8, !tbaa !9
  %2961 = load i32, ptr @test_count, align 4, !tbaa !5
  %2962 = add nsw i32 %2961, 1
  store i32 %2962, ptr @test_count, align 4, !tbaa !5
  %2963 = icmp eq ptr %2960, null
  br i1 %2963, label %2964, label %2986

2964:                                             ; preds = %2959
  %2965 = load i32, ptr %1955, align 4, !tbaa !5
  %2966 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2967 = call i32 @s2n_print_stacktrace(ptr noundef %2966) #11
  %2968 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2969 = trunc nuw i8 %2968 to i1
  br i1 %2969, label %2970, label %2974

2970:                                             ; preds = %2964
  %2971 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2972 = call i32 @fileno(ptr noundef %2971) #11
  %2973 = call i32 @isatty(i32 noundef %2972) #11
  %.not545 = icmp eq i32 %2973, 0
  br i1 %.not545, label %2974, label %2975

2974:                                             ; preds = %2970, %2964
  br label %2975

2975:                                             ; preds = %2970, %2974
  %.str.4.sink1783 = phi ptr [ @.str.4, %2974 ], [ @.str, %2970 ]
  store i32 %2965, ptr %1955, align 4, !tbaa !5
  %2976 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2977 = load i32, ptr @test_count, align 4, !tbaa !5
  %2978 = load i32, ptr %240, align 4, !tbaa !5
  %2979 = call ptr @s2n_strerror(i32 noundef %2978, ptr noundef nonnull @.str.3) #11
  %2980 = load i32, ptr %240, align 4, !tbaa !5
  %2981 = call ptr @s2n_strerror_debug(i32 noundef %2980, ptr noundef nonnull @.str.3) #11
  %2982 = load i32, ptr %1955, align 4, !tbaa !5
  %2983 = call ptr @strerror(i32 noundef %2982) #11
  %2984 = load i32, ptr %1955, align 4, !tbaa !5
  %2985 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2976, ptr noundef nonnull %.str.4.sink1783, i32 noundef %2977, ptr noundef nonnull @.str.87, ptr noundef nonnull @.str.2, i32 noundef 593, ptr noundef %2979, ptr noundef %2981, ptr noundef %2983, i32 noundef %2984) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2986:                                             ; preds = %2959
  %2987 = add nsw i32 %2961, 2
  store i32 %2987, ptr @test_count, align 4, !tbaa !5
  %2988 = load ptr, ptr %13, align 8, !tbaa !9
  %2989 = call i32 @s2n_connection_set_config(ptr noundef nonnull %2960, ptr noundef %2988) #11
  %2990 = icmp eq i32 %2989, -1
  br i1 %2990, label %2991, label %3013

2991:                                             ; preds = %2986
  %2992 = load i32, ptr %1955, align 4, !tbaa !5
  %2993 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2994 = call i32 @s2n_print_stacktrace(ptr noundef %2993) #11
  %2995 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2996 = trunc nuw i8 %2995 to i1
  br i1 %2996, label %2997, label %3001

2997:                                             ; preds = %2991
  %2998 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2999 = call i32 @fileno(ptr noundef %2998) #11
  %3000 = call i32 @isatty(i32 noundef %2999) #11
  %.not544 = icmp eq i32 %3000, 0
  br i1 %.not544, label %3001, label %3002

3001:                                             ; preds = %2997, %2991
  br label %3002

3002:                                             ; preds = %2997, %3001
  %.str.4.sink1792 = phi ptr [ @.str.4, %3001 ], [ @.str, %2997 ]
  store i32 %2992, ptr %1955, align 4, !tbaa !5
  %3003 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3004 = load i32, ptr @test_count, align 4, !tbaa !5
  %3005 = load i32, ptr %240, align 4, !tbaa !5
  %3006 = call ptr @s2n_strerror(i32 noundef %3005, ptr noundef nonnull @.str.3) #11
  %3007 = load i32, ptr %240, align 4, !tbaa !5
  %3008 = call ptr @s2n_strerror_debug(i32 noundef %3007, ptr noundef nonnull @.str.3) #11
  %3009 = load i32, ptr %1955, align 4, !tbaa !5
  %3010 = call ptr @strerror(i32 noundef %3009) #11
  %3011 = load i32, ptr %1955, align 4, !tbaa !5
  %3012 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3003, ptr noundef nonnull %.str.4.sink1792, i32 noundef %3004, ptr noundef nonnull @.str.88, ptr noundef nonnull @.str.2, i32 noundef 594, ptr noundef %3006, ptr noundef %3008, ptr noundef %3010, i32 noundef %3011) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3013:                                             ; preds = %2986
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %17) #11
  store i64 0, ptr %17, align 8
  %3014 = load i32, ptr @test_count, align 4, !tbaa !5
  %3015 = add nsw i32 %3014, 1
  store i32 %3015, ptr @test_count, align 4, !tbaa !5
  %3016 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef nonnull %17) #11
  %3017 = icmp eq i32 %3016, -1
  br i1 %3017, label %3018, label %3040

3018:                                             ; preds = %3013
  %3019 = load i32, ptr %1955, align 4, !tbaa !5
  %3020 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3021 = call i32 @s2n_print_stacktrace(ptr noundef %3020) #11
  %3022 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3023 = trunc nuw i8 %3022 to i1
  br i1 %3023, label %3024, label %3028

3024:                                             ; preds = %3018
  %3025 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3026 = call i32 @fileno(ptr noundef %3025) #11
  %3027 = call i32 @isatty(i32 noundef %3026) #11
  %.not543 = icmp eq i32 %3027, 0
  br i1 %.not543, label %3028, label %3029

3028:                                             ; preds = %3024, %3018
  br label %3029

3029:                                             ; preds = %3024, %3028
  %.str.4.sink1801 = phi ptr [ @.str.4, %3028 ], [ @.str, %3024 ]
  store i32 %3019, ptr %1955, align 4, !tbaa !5
  %3030 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3031 = load i32, ptr @test_count, align 4, !tbaa !5
  %3032 = load i32, ptr %240, align 4, !tbaa !5
  %3033 = call ptr @s2n_strerror(i32 noundef %3032, ptr noundef nonnull @.str.3) #11
  %3034 = load i32, ptr %240, align 4, !tbaa !5
  %3035 = call ptr @s2n_strerror_debug(i32 noundef %3034, ptr noundef nonnull @.str.3) #11
  %3036 = load i32, ptr %1955, align 4, !tbaa !5
  %3037 = call ptr @strerror(i32 noundef %3036) #11
  %3038 = load i32, ptr %1955, align 4, !tbaa !5
  %3039 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3030, ptr noundef nonnull %.str.4.sink1801, i32 noundef %3031, ptr noundef nonnull @.str.89, ptr noundef nonnull @.str.2, i32 noundef 598, ptr noundef %3033, ptr noundef %3035, ptr noundef %3037, i32 noundef %3038) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3040:                                             ; preds = %3013
  %3041 = load i32, ptr @test_count, align 4, !tbaa !5
  %3042 = add nsw i32 %3041, 1
  store i32 %3042, ptr @test_count, align 4, !tbaa !5
  %3043 = load ptr, ptr %15, align 8, !tbaa !9
  %3044 = call i32 @s2n_connection_set_io_pair(ptr noundef %3043, ptr noundef nonnull %17) #11
  %3045 = icmp eq i32 %3044, -1
  br i1 %3045, label %3046, label %3068

3046:                                             ; preds = %3040
  %3047 = load i32, ptr %1955, align 4, !tbaa !5
  %3048 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3049 = call i32 @s2n_print_stacktrace(ptr noundef %3048) #11
  %3050 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3051 = trunc nuw i8 %3050 to i1
  br i1 %3051, label %3052, label %3056

3052:                                             ; preds = %3046
  %3053 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3054 = call i32 @fileno(ptr noundef %3053) #11
  %3055 = call i32 @isatty(i32 noundef %3054) #11
  %.not542 = icmp eq i32 %3055, 0
  br i1 %.not542, label %3056, label %3057

3056:                                             ; preds = %3052, %3046
  br label %3057

3057:                                             ; preds = %3052, %3056
  %.str.4.sink1810 = phi ptr [ @.str.4, %3056 ], [ @.str, %3052 ]
  store i32 %3047, ptr %1955, align 4, !tbaa !5
  %3058 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3059 = load i32, ptr @test_count, align 4, !tbaa !5
  %3060 = load i32, ptr %240, align 4, !tbaa !5
  %3061 = call ptr @s2n_strerror(i32 noundef %3060, ptr noundef nonnull @.str.3) #11
  %3062 = load i32, ptr %240, align 4, !tbaa !5
  %3063 = call ptr @s2n_strerror_debug(i32 noundef %3062, ptr noundef nonnull @.str.3) #11
  %3064 = load i32, ptr %1955, align 4, !tbaa !5
  %3065 = call ptr @strerror(i32 noundef %3064) #11
  %3066 = load i32, ptr %1955, align 4, !tbaa !5
  %3067 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3058, ptr noundef nonnull %.str.4.sink1810, i32 noundef %3059, ptr noundef nonnull @.str.90, ptr noundef nonnull @.str.2, i32 noundef 599, ptr noundef %3061, ptr noundef %3063, ptr noundef %3065, i32 noundef %3066) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3068:                                             ; preds = %3040
  %3069 = load i32, ptr @test_count, align 4, !tbaa !5
  %3070 = add nsw i32 %3069, 1
  store i32 %3070, ptr @test_count, align 4, !tbaa !5
  %3071 = load ptr, ptr %16, align 8, !tbaa !9
  %3072 = call i32 @s2n_connection_set_io_pair(ptr noundef %3071, ptr noundef nonnull %17) #11
  %3073 = icmp eq i32 %3072, -1
  br i1 %3073, label %3074, label %3096

3074:                                             ; preds = %3068
  %3075 = load i32, ptr %1955, align 4, !tbaa !5
  %3076 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3077 = call i32 @s2n_print_stacktrace(ptr noundef %3076) #11
  %3078 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3079 = trunc nuw i8 %3078 to i1
  br i1 %3079, label %3080, label %3084

3080:                                             ; preds = %3074
  %3081 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3082 = call i32 @fileno(ptr noundef %3081) #11
  %3083 = call i32 @isatty(i32 noundef %3082) #11
  %.not541 = icmp eq i32 %3083, 0
  br i1 %.not541, label %3084, label %3085

3084:                                             ; preds = %3080, %3074
  br label %3085

3085:                                             ; preds = %3080, %3084
  %.str.4.sink1819 = phi ptr [ @.str.4, %3084 ], [ @.str, %3080 ]
  store i32 %3075, ptr %1955, align 4, !tbaa !5
  %3086 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3087 = load i32, ptr @test_count, align 4, !tbaa !5
  %3088 = load i32, ptr %240, align 4, !tbaa !5
  %3089 = call ptr @s2n_strerror(i32 noundef %3088, ptr noundef nonnull @.str.3) #11
  %3090 = load i32, ptr %240, align 4, !tbaa !5
  %3091 = call ptr @s2n_strerror_debug(i32 noundef %3090, ptr noundef nonnull @.str.3) #11
  %3092 = load i32, ptr %1955, align 4, !tbaa !5
  %3093 = call ptr @strerror(i32 noundef %3092) #11
  %3094 = load i32, ptr %1955, align 4, !tbaa !5
  %3095 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3086, ptr noundef nonnull %.str.4.sink1819, i32 noundef %3087, ptr noundef nonnull @.str.91, ptr noundef nonnull @.str.2, i32 noundef 600, ptr noundef %3089, ptr noundef %3091, ptr noundef %3093, i32 noundef %3094) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3096:                                             ; preds = %3068
  %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 %13, align 8, !tbaa !9
  %3100 = call i32 @s2n_config_set_verify_after_sign(ptr noundef %3099, i32 noundef 1) #11
  %3101 = icmp eq i32 %3100, -1
  br i1 %3101, label %3102, label %3124

3102:                                             ; preds = %3096
  %3103 = load i32, ptr %1955, align 4, !tbaa !5
  %3104 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3105 = call i32 @s2n_print_stacktrace(ptr noundef %3104) #11
  %3106 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3107 = trunc nuw i8 %3106 to i1
  br i1 %3107, label %3108, label %3112

3108:                                             ; preds = %3102
  %3109 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3110 = call i32 @fileno(ptr noundef %3109) #11
  %3111 = call i32 @isatty(i32 noundef %3110) #11
  %.not540 = icmp eq i32 %3111, 0
  br i1 %.not540, label %3112, label %3113

3112:                                             ; preds = %3108, %3102
  br label %3113

3113:                                             ; preds = %3108, %3112
  %.str.4.sink1828 = phi ptr [ @.str.4, %3112 ], [ @.str, %3108 ]
  store i32 %3103, ptr %1955, align 4, !tbaa !5
  %3114 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3115 = load i32, ptr @test_count, align 4, !tbaa !5
  %3116 = load i32, ptr %240, align 4, !tbaa !5
  %3117 = call ptr @s2n_strerror(i32 noundef %3116, ptr noundef nonnull @.str.3) #11
  %3118 = load i32, ptr %240, align 4, !tbaa !5
  %3119 = call ptr @s2n_strerror_debug(i32 noundef %3118, ptr noundef nonnull @.str.3) #11
  %3120 = load i32, ptr %1955, align 4, !tbaa !5
  %3121 = call ptr @strerror(i32 noundef %3120) #11
  %3122 = load i32, ptr %1955, align 4, !tbaa !5
  %3123 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3114, ptr noundef nonnull %.str.4.sink1828, i32 noundef %3115, ptr noundef nonnull @.str.106, ptr noundef nonnull @.str.2, i32 noundef 603, ptr noundef %3117, ptr noundef %3119, ptr noundef %3121, i32 noundef %3122) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3124:                                             ; preds = %3096
  %3125 = load i32, ptr @test_count, align 4, !tbaa !5
  %3126 = add nsw i32 %3125, 1
  store i32 %3126, ptr @test_count, align 4, !tbaa !5
  %3127 = load ptr, ptr %16, align 8, !tbaa !9
  %3128 = load ptr, ptr %15, align 8, !tbaa !9
  %3129 = call i32 @try_handshake(ptr noundef %3127, ptr noundef %3128, ptr noundef nonnull @async_handler_sign_with_different_pkey_and_apply)
  %3130 = icmp eq i32 %3129, -1
  br i1 %3130, label %3131, label %3153

3131:                                             ; preds = %3124
  %3132 = load i32, ptr %1955, align 4, !tbaa !5
  %3133 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3134 = call i32 @s2n_print_stacktrace(ptr noundef %3133) #11
  %3135 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3136 = trunc nuw i8 %3135 to i1
  br i1 %3136, label %3137, label %3141

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

3141:                                             ; preds = %3137, %3131
  br label %3142

3142:                                             ; preds = %3137, %3141
  %.str.4.sink1837 = phi ptr [ @.str.4, %3141 ], [ @.str, %3137 ]
  store i32 %3132, ptr %1955, align 4, !tbaa !5
  %3143 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3144 = load i32, ptr @test_count, align 4, !tbaa !5
  %3145 = load i32, ptr %240, align 4, !tbaa !5
  %3146 = call ptr @s2n_strerror(i32 noundef %3145, ptr noundef nonnull @.str.3) #11
  %3147 = load i32, ptr %240, align 4, !tbaa !5
  %3148 = call ptr @s2n_strerror_debug(i32 noundef %3147, ptr noundef nonnull @.str.3) #11
  %3149 = load i32, ptr %1955, align 4, !tbaa !5
  %3150 = call ptr @strerror(i32 noundef %3149) #11
  %3151 = load i32, ptr %1955, align 4, !tbaa !5
  %3152 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3143, ptr noundef nonnull %.str.4.sink1837, i32 noundef %3144, ptr noundef nonnull @.str.103, ptr noundef nonnull @.str.2, i32 noundef 604, ptr noundef %3146, ptr noundef %3148, ptr noundef %3150, i32 noundef %3151) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3153:                                             ; preds = %3124
  %3154 = call i32 @s2n_io_pair_close(ptr noundef nonnull %17) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #11
  %3155 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %16) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #11
  %3156 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %15) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #11
  %3157 = call i32 @s2n_config_ptr_free(ptr noundef nonnull %14) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #11
  %3158 = call i32 @s2n_config_ptr_free(ptr noundef nonnull %13) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #11
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %8) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %7) #11
  br i1 %247, label %246, label %241, !llvm.loop !35

3159:                                             ; preds = %241
  %3160 = load i32, ptr %1955, align 4, !tbaa !5
  %3161 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3162 = call i32 @s2n_print_stacktrace(ptr noundef %3161) #11
  %3163 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3164 = trunc nuw i8 %3163 to i1
  br i1 %3164, label %3165, label %3169

3165:                                             ; preds = %3159
  %3166 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3167 = call i32 @fileno(ptr noundef %3166) #11
  %3168 = call i32 @isatty(i32 noundef %3167) #11
  %.not = icmp eq i32 %3168, 0
  br i1 %.not, label %3169, label %3170

3169:                                             ; preds = %3165, %3159
  br label %3170

3170:                                             ; preds = %3165, %3169
  %.str.4.sink1846 = phi ptr [ @.str.4, %3169 ], [ @.str, %3165 ]
  store i32 %3160, ptr %1955, align 4, !tbaa !5
  %3171 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3172 = load i32, ptr @test_count, align 4, !tbaa !5
  %3173 = load i32, ptr %240, align 4, !tbaa !5
  %3174 = call ptr @s2n_strerror(i32 noundef %3173, ptr noundef nonnull @.str.3) #11
  %3175 = load i32, ptr %240, align 4, !tbaa !5
  %3176 = call ptr @s2n_strerror_debug(i32 noundef %3175, ptr noundef nonnull @.str.3) #11
  %3177 = load i32, ptr %1955, align 4, !tbaa !5
  %3178 = call ptr @strerror(i32 noundef %3177) #11
  %3179 = load i32, ptr %1955, align 4, !tbaa !5
  %3180 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3171, ptr noundef nonnull %.str.4.sink1846, i32 noundef %3172, ptr noundef nonnull @.str.107, ptr noundef nonnull @.str.2, i32 noundef 610, ptr noundef %3174, ptr noundef %3176, ptr noundef %3178, i32 noundef %3179) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3181:                                             ; preds = %241
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %18) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(56) %18, i8 0, i64 56, i1 false)
  %3182 = add nsw i32 %242, 2
  store i32 %3182, ptr @test_count, align 4, !tbaa !5
  %3183 = call i32 @s2n_hash_new(ptr noundef nonnull %18) #11
  %3184 = icmp eq i32 %3183, -1
  br i1 %3184, label %3185, label %3207

3185:                                             ; preds = %3181
  %3186 = load i32, ptr %1955, align 4, !tbaa !5
  %3187 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3188 = call i32 @s2n_print_stacktrace(ptr noundef %3187) #11
  %3189 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3190 = trunc nuw i8 %3189 to i1
  br i1 %3190, label %3191, label %3195

3191:                                             ; preds = %3185
  %3192 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3193 = call i32 @fileno(ptr noundef %3192) #11
  %3194 = call i32 @isatty(i32 noundef %3193) #11
  %.not533 = icmp eq i32 %3194, 0
  br i1 %.not533, label %3195, label %3196

3195:                                             ; preds = %3191, %3185
  br label %3196

3196:                                             ; preds = %3191, %3195
  %.str.4.sink1855 = phi ptr [ @.str.4, %3195 ], [ @.str, %3191 ]
  store i32 %3186, ptr %1955, align 4, !tbaa !5
  %3197 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3198 = load i32, ptr @test_count, align 4, !tbaa !5
  %3199 = load i32, ptr %240, align 4, !tbaa !5
  %3200 = call ptr @s2n_strerror(i32 noundef %3199, ptr noundef nonnull @.str.3) #11
  %3201 = load i32, ptr %240, align 4, !tbaa !5
  %3202 = call ptr @s2n_strerror_debug(i32 noundef %3201, ptr noundef nonnull @.str.3) #11
  %3203 = load i32, ptr %1955, align 4, !tbaa !5
  %3204 = call ptr @strerror(i32 noundef %3203) #11
  %3205 = load i32, ptr %1955, align 4, !tbaa !5
  %3206 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3197, ptr noundef nonnull %.str.4.sink1855, i32 noundef %3198, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.2, i32 noundef 613, ptr noundef %3200, ptr noundef %3202, ptr noundef %3204, i32 noundef %3205) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3207:                                             ; preds = %3181
  %3208 = load i32, ptr @test_count, align 4, !tbaa !5
  %3209 = add nsw i32 %3208, 1
  store i32 %3209, ptr @test_count, align 4, !tbaa !5
  %3210 = call i32 @s2n_hash_init(ptr noundef nonnull %18, i32 noundef 4) #11
  %3211 = icmp eq i32 %3210, -1
  br i1 %3211, label %3212, label %3234

3212:                                             ; preds = %3207
  %3213 = load i32, ptr %1955, align 4, !tbaa !5
  %3214 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3215 = call i32 @s2n_print_stacktrace(ptr noundef %3214) #11
  %3216 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3217 = trunc nuw i8 %3216 to i1
  br i1 %3217, label %3218, label %3222

3218:                                             ; preds = %3212
  %3219 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3220 = call i32 @fileno(ptr noundef %3219) #11
  %3221 = call i32 @isatty(i32 noundef %3220) #11
  %.not532 = icmp eq i32 %3221, 0
  br i1 %.not532, label %3222, label %3223

3222:                                             ; preds = %3218, %3212
  br label %3223

3223:                                             ; preds = %3218, %3222
  %.str.4.sink1864 = phi ptr [ @.str.4, %3222 ], [ @.str, %3218 ]
  store i32 %3213, ptr %1955, align 4, !tbaa !5
  %3224 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3225 = load i32, ptr @test_count, align 4, !tbaa !5
  %3226 = load i32, ptr %240, align 4, !tbaa !5
  %3227 = call ptr @s2n_strerror(i32 noundef %3226, ptr noundef nonnull @.str.3) #11
  %3228 = load i32, ptr %240, align 4, !tbaa !5
  %3229 = call ptr @s2n_strerror_debug(i32 noundef %3228, ptr noundef nonnull @.str.3) #11
  %3230 = load i32, ptr %1955, align 4, !tbaa !5
  %3231 = call ptr @strerror(i32 noundef %3230) #11
  %3232 = load i32, ptr %1955, align 4, !tbaa !5
  %3233 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3224, ptr noundef nonnull %.str.4.sink1864, i32 noundef %3225, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.2, i32 noundef 614, ptr noundef %3227, ptr noundef %3229, ptr noundef %3231, i32 noundef %3232) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3234:                                             ; preds = %3207
  %3235 = load i32, ptr @test_count, align 4, !tbaa !5
  %3236 = add nsw i32 %3235, 1
  store i32 %3236, ptr @test_count, align 4, !tbaa !5
  %3237 = call i32 @s2n_hash_update(ptr noundef nonnull %18, ptr noundef nonnull @test_digest_data, i32 noundef 14) #11
  %3238 = icmp eq i32 %3237, -1
  br i1 %3238, label %3239, label %3261

3239:                                             ; preds = %3234
  %3240 = load i32, ptr %1955, align 4, !tbaa !5
  %3241 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3242 = call i32 @s2n_print_stacktrace(ptr noundef %3241) #11
  %3243 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3244 = trunc nuw i8 %3243 to i1
  br i1 %3244, label %3245, label %3249

3245:                                             ; preds = %3239
  %3246 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3247 = call i32 @fileno(ptr noundef %3246) #11
  %3248 = call i32 @isatty(i32 noundef %3247) #11
  %.not531 = icmp eq i32 %3248, 0
  br i1 %.not531, label %3249, label %3250

3249:                                             ; preds = %3245, %3239
  br label %3250

3250:                                             ; preds = %3245, %3249
  %.str.4.sink1873 = phi ptr [ @.str.4, %3249 ], [ @.str, %3245 ]
  store i32 %3240, ptr %1955, align 4, !tbaa !5
  %3251 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3252 = load i32, ptr @test_count, align 4, !tbaa !5
  %3253 = load i32, ptr %240, align 4, !tbaa !5
  %3254 = call ptr @s2n_strerror(i32 noundef %3253, ptr noundef nonnull @.str.3) #11
  %3255 = load i32, ptr %240, align 4, !tbaa !5
  %3256 = call ptr @s2n_strerror_debug(i32 noundef %3255, ptr noundef nonnull @.str.3) #11
  %3257 = load i32, ptr %1955, align 4, !tbaa !5
  %3258 = call ptr @strerror(i32 noundef %3257) #11
  %3259 = load i32, ptr %1955, align 4, !tbaa !5
  %3260 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3251, ptr noundef nonnull %.str.4.sink1873, i32 noundef %3252, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.2, i32 noundef 615, ptr noundef %3254, ptr noundef %3256, ptr noundef %3258, i32 noundef %3259) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3261:                                             ; preds = %3234
  %3262 = load i32, ptr @test_count, align 4, !tbaa !5
  %3263 = add nsw i32 %3262, 1
  store i32 %3263, ptr @test_count, align 4, !tbaa !5
  %3264 = load i8, ptr @offload_callback_count, align 1, !tbaa !37
  %3265 = icmp eq i8 %3264, 0
  br i1 %3265, label %3288, label %3266

3266:                                             ; preds = %3261
  %3267 = load i32, ptr %1955, align 4, !tbaa !5
  %3268 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3269 = call i32 @s2n_print_stacktrace(ptr noundef %3268) #11
  %3270 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3271 = trunc nuw i8 %3270 to i1
  br i1 %3271, label %3272, label %3276

3272:                                             ; preds = %3266
  %3273 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3274 = call i32 @fileno(ptr noundef %3273) #11
  %3275 = call i32 @isatty(i32 noundef %3274) #11
  %.not476 = icmp eq i32 %3275, 0
  br i1 %.not476, label %3276, label %3277

3276:                                             ; preds = %3272, %3266
  br label %3277

3277:                                             ; preds = %3272, %3276
  %.str.4.sink1882 = phi ptr [ @.str.4, %3276 ], [ @.str, %3272 ]
  store i32 %3267, ptr %1955, align 4, !tbaa !5
  %3278 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3279 = load i32, ptr @test_count, align 4, !tbaa !5
  %3280 = load i32, ptr %240, align 4, !tbaa !5
  %3281 = call ptr @s2n_strerror(i32 noundef %3280, ptr noundef nonnull @.str.3) #11
  %3282 = load i32, ptr %240, align 4, !tbaa !5
  %3283 = call ptr @s2n_strerror_debug(i32 noundef %3282, ptr noundef nonnull @.str.3) #11
  %3284 = load i32, ptr %1955, align 4, !tbaa !5
  %3285 = call ptr @strerror(i32 noundef %3284) #11
  %3286 = load i32, ptr %1955, align 4, !tbaa !5
  %3287 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3278, ptr noundef nonnull %.str.4.sink1882, i32 noundef %3279, ptr noundef nonnull @.str.108, ptr noundef nonnull @.str.2, i32 noundef 619, ptr noundef %3281, ptr noundef %3283, ptr noundef %3285, i32 noundef %3286) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3288:                                             ; preds = %3261
  %3289 = call ptr @s2n_connection_new(i32 noundef 1) #11
  %3290 = load i32, ptr @test_count, align 4, !tbaa !5
  %3291 = add nsw i32 %3290, 1
  store i32 %3291, ptr @test_count, align 4, !tbaa !5
  %3292 = icmp eq ptr %3289, null
  br i1 %3292, label %3293, label %3315

3293:                                             ; preds = %3288
  %3294 = load i32, ptr %1955, align 4, !tbaa !5
  %3295 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3296 = call i32 @s2n_print_stacktrace(ptr noundef %3295) #11
  %3297 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3298 = trunc nuw i8 %3297 to i1
  br i1 %3298, label %3299, label %3303

3299:                                             ; preds = %3293
  %3300 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3301 = call i32 @fileno(ptr noundef %3300) #11
  %3302 = call i32 @isatty(i32 noundef %3301) #11
  %.not530 = icmp eq i32 %3302, 0
  br i1 %.not530, label %3303, label %3304

3303:                                             ; preds = %3299, %3293
  br label %3304

3304:                                             ; preds = %3299, %3303
  %.str.4.sink1891 = phi ptr [ @.str.4, %3303 ], [ @.str, %3299 ]
  store i32 %3294, ptr %1955, align 4, !tbaa !5
  %3305 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3306 = load i32, ptr @test_count, align 4, !tbaa !5
  %3307 = load i32, ptr %240, align 4, !tbaa !5
  %3308 = call ptr @s2n_strerror(i32 noundef %3307, ptr noundef nonnull @.str.3) #11
  %3309 = load i32, ptr %240, align 4, !tbaa !5
  %3310 = call ptr @s2n_strerror_debug(i32 noundef %3309, ptr noundef nonnull @.str.3) #11
  %3311 = load i32, ptr %1955, align 4, !tbaa !5
  %3312 = call ptr @strerror(i32 noundef %3311) #11
  %3313 = load i32, ptr %1955, align 4, !tbaa !5
  %3314 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3305, ptr noundef nonnull %.str.4.sink1891, i32 noundef %3306, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.2, i32 noundef 621, ptr noundef %3308, ptr noundef %3310, ptr noundef %3312, i32 noundef %3313) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3315:                                             ; preds = %3288
  %3316 = getelementptr inbounds i8, ptr %3289, i64 8
  %3317 = load ptr, ptr %3316, align 8, !tbaa !38
  %3318 = getelementptr inbounds i8, ptr %3317, i64 328
  store ptr @async_pkey_signature_callback, ptr %3318, align 8, !tbaa !62
  %3319 = add nsw i32 %3290, 2
  store i32 %3319, ptr @test_count, align 4, !tbaa !5
  %3320 = call i32 @s2n_async_pkey_sign(ptr noundef nonnull %3289, i32 noundef 3, ptr noundef nonnull %18, ptr noundef nonnull @s2n_async_sign_complete) #11
  %3321 = call zeroext i1 @s2n_result_is_ok(i32 %3320)
  br i1 %3321, label %3322, label %3344

3322:                                             ; preds = %3315
  %3323 = load i32, ptr %1955, align 4, !tbaa !5
  %3324 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3325 = call i32 @s2n_print_stacktrace(ptr noundef %3324) #11
  %3326 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3327 = trunc nuw i8 %3326 to i1
  br i1 %3327, label %3328, label %3332

3328:                                             ; preds = %3322
  %3329 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3330 = call i32 @fileno(ptr noundef %3329) #11
  %3331 = call i32 @isatty(i32 noundef %3330) #11
  %.not529 = icmp eq i32 %3331, 0
  br i1 %.not529, label %3332, label %3333

3332:                                             ; preds = %3328, %3322
  br label %3333

3333:                                             ; preds = %3328, %3332
  %.str.4.sink1900 = phi ptr [ @.str.4, %3332 ], [ @.str, %3328 ]
  store i32 %3323, ptr %1955, align 4, !tbaa !5
  %3334 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3335 = load i32, ptr @test_count, align 4, !tbaa !5
  %3336 = load i32, ptr %240, align 4, !tbaa !5
  %3337 = call ptr @s2n_strerror(i32 noundef %3336, ptr noundef nonnull @.str.3) #11
  %3338 = load i32, ptr %240, align 4, !tbaa !5
  %3339 = call ptr @s2n_strerror_debug(i32 noundef %3338, ptr noundef nonnull @.str.3) #11
  %3340 = load i32, ptr %1955, align 4, !tbaa !5
  %3341 = call ptr @strerror(i32 noundef %3340) #11
  %3342 = load i32, ptr %1955, align 4, !tbaa !5
  %3343 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3334, ptr noundef nonnull %.str.4.sink1900, i32 noundef %3335, ptr noundef nonnull @.str.109, ptr noundef nonnull @.str.2, i32 noundef 624, ptr noundef %3337, ptr noundef %3339, ptr noundef %3341, i32 noundef %3342) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3344:                                             ; preds = %3315
  %3345 = load i32, ptr @test_count, align 4, !tbaa !5
  %3346 = add nsw i32 %3345, 1
  store i32 %3346, ptr @test_count, align 4, !tbaa !5
  %3347 = load i32, ptr %240, align 4, !tbaa !5
  %3348 = icmp eq i32 %3347, 201326593
  br i1 %3348, label %3371, label %3349

3349:                                             ; preds = %3344
  %3350 = load i32, ptr %1955, align 4, !tbaa !5
  %3351 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3352 = call i32 @s2n_print_stacktrace(ptr noundef %3351) #11
  %3353 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3354 = trunc nuw i8 %3353 to i1
  br i1 %3354, label %3355, label %3359

3355:                                             ; preds = %3349
  %3356 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3357 = call i32 @fileno(ptr noundef %3356) #11
  %3358 = call i32 @isatty(i32 noundef %3357) #11
  %.not477 = icmp eq i32 %3358, 0
  br i1 %.not477, label %3359, label %3360

3359:                                             ; preds = %3355, %3349
  br label %3360

3360:                                             ; preds = %3355, %3359
  %.str.4.sink1909 = phi ptr [ @.str.4, %3359 ], [ @.str, %3355 ]
  store i32 %3350, ptr %1955, align 4, !tbaa !5
  %3361 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3362 = load i32, ptr @test_count, align 4, !tbaa !5
  %3363 = load i32, ptr %240, align 4, !tbaa !5
  %3364 = call ptr @s2n_strerror(i32 noundef %3363, ptr noundef nonnull @.str.3) #11
  %3365 = load i32, ptr %240, align 4, !tbaa !5
  %3366 = call ptr @s2n_strerror_debug(i32 noundef %3365, ptr noundef nonnull @.str.3) #11
  %3367 = load i32, ptr %1955, align 4, !tbaa !5
  %3368 = call ptr @strerror(i32 noundef %3367) #11
  %3369 = load i32, ptr %1955, align 4, !tbaa !5
  %3370 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3361, ptr noundef nonnull %.str.4.sink1909, i32 noundef %3362, ptr noundef nonnull @.str.110, ptr noundef nonnull @.str.2, i32 noundef 625, ptr noundef %3364, ptr noundef %3366, ptr noundef %3368, i32 noundef %3369) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3371:                                             ; preds = %3344
  %3372 = add nsw i32 %3345, 2
  store i32 %3372, ptr @test_count, align 4, !tbaa !5
  %3373 = load i8, ptr @offload_callback_count, align 1, !tbaa !37
  %3374 = icmp eq i8 %3373, 1
  br i1 %3374, label %3397, label %3375

3375:                                             ; preds = %3371
  %3376 = load i32, ptr %1955, align 4, !tbaa !5
  %3377 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3378 = call i32 @s2n_print_stacktrace(ptr noundef %3377) #11
  %3379 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3380 = trunc nuw i8 %3379 to i1
  br i1 %3380, label %3381, label %3385

3381:                                             ; preds = %3375
  %3382 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3383 = call i32 @fileno(ptr noundef %3382) #11
  %3384 = call i32 @isatty(i32 noundef %3383) #11
  %.not478 = icmp eq i32 %3384, 0
  br i1 %.not478, label %3385, label %3386

3385:                                             ; preds = %3381, %3375
  br label %3386

3386:                                             ; preds = %3381, %3385
  %.str.4.sink1918 = phi ptr [ @.str.4, %3385 ], [ @.str, %3381 ]
  store i32 %3376, ptr %1955, align 4, !tbaa !5
  %3387 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3388 = load i32, ptr @test_count, align 4, !tbaa !5
  %3389 = load i32, ptr %240, align 4, !tbaa !5
  %3390 = call ptr @s2n_strerror(i32 noundef %3389, ptr noundef nonnull @.str.3) #11
  %3391 = load i32, ptr %240, align 4, !tbaa !5
  %3392 = call ptr @s2n_strerror_debug(i32 noundef %3391, ptr noundef nonnull @.str.3) #11
  %3393 = load i32, ptr %1955, align 4, !tbaa !5
  %3394 = call ptr @strerror(i32 noundef %3393) #11
  %3395 = load i32, ptr %1955, align 4, !tbaa !5
  %3396 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3387, ptr noundef nonnull %.str.4.sink1918, i32 noundef %3388, ptr noundef nonnull @.str.111, ptr noundef nonnull @.str.2, i32 noundef 626, ptr noundef %3390, ptr noundef %3392, ptr noundef %3394, i32 noundef %3395) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3397:                                             ; preds = %3371
  %3398 = add nsw i32 %3345, 3
  store i32 %3398, ptr @test_count, align 4, !tbaa !5
  %3399 = load ptr, ptr @pkey_op, align 8, !tbaa !9
  %3400 = call i32 @s2n_async_pkey_op_apply(ptr noundef %3399, ptr noundef nonnull %3289) #11
  %3401 = icmp eq i32 %3400, -1
  br i1 %3401, label %3402, label %3424

3402:                                             ; preds = %3397
  %3403 = load i32, ptr %1955, align 4, !tbaa !5
  %3404 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3405 = call i32 @s2n_print_stacktrace(ptr noundef %3404) #11
  %3406 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3407 = trunc nuw i8 %3406 to i1
  br i1 %3407, label %3408, label %3412

3408:                                             ; preds = %3402
  %3409 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3410 = call i32 @fileno(ptr noundef %3409) #11
  %3411 = call i32 @isatty(i32 noundef %3410) #11
  %.not528 = icmp eq i32 %3411, 0
  br i1 %.not528, label %3412, label %3413

3412:                                             ; preds = %3408, %3402
  br label %3413

3413:                                             ; preds = %3408, %3412
  %.str.4.sink1927 = phi ptr [ @.str.4, %3412 ], [ @.str, %3408 ]
  store i32 %3403, ptr %1955, align 4, !tbaa !5
  %3414 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3415 = load i32, ptr @test_count, align 4, !tbaa !5
  %3416 = load i32, ptr %240, align 4, !tbaa !5
  %3417 = call ptr @s2n_strerror(i32 noundef %3416, ptr noundef nonnull @.str.3) #11
  %3418 = load i32, ptr %240, align 4, !tbaa !5
  %3419 = call ptr @s2n_strerror_debug(i32 noundef %3418, ptr noundef nonnull @.str.3) #11
  %3420 = load i32, ptr %1955, align 4, !tbaa !5
  %3421 = call ptr @strerror(i32 noundef %3420) #11
  %3422 = load i32, ptr %1955, align 4, !tbaa !5
  %3423 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3414, ptr noundef nonnull %.str.4.sink1927, i32 noundef %3415, ptr noundef nonnull @.str.112, ptr noundef nonnull @.str.2, i32 noundef 628, ptr noundef %3417, ptr noundef %3419, ptr noundef %3421, i32 noundef %3422) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3424:                                             ; preds = %3397
  %3425 = load i32, ptr @test_count, align 4, !tbaa !5
  %3426 = add nsw i32 %3425, 1
  store i32 %3426, ptr @test_count, align 4, !tbaa !5
  %3427 = load ptr, ptr @pkey_op, align 8, !tbaa !9
  %3428 = call i32 @s2n_async_pkey_op_free(ptr noundef %3427) #11
  %3429 = icmp eq i32 %3428, -1
  br i1 %3429, label %3430, label %3452

3430:                                             ; preds = %3424
  %3431 = load i32, ptr %1955, align 4, !tbaa !5
  %3432 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3433 = call i32 @s2n_print_stacktrace(ptr noundef %3432) #11
  %3434 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3435 = trunc nuw i8 %3434 to i1
  br i1 %3435, label %3436, label %3440

3436:                                             ; preds = %3430
  %3437 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3438 = call i32 @fileno(ptr noundef %3437) #11
  %3439 = call i32 @isatty(i32 noundef %3438) #11
  %.not527 = icmp eq i32 %3439, 0
  br i1 %.not527, label %3440, label %3441

3440:                                             ; preds = %3436, %3430
  br label %3441

3441:                                             ; preds = %3436, %3440
  %.str.4.sink1936 = phi ptr [ @.str.4, %3440 ], [ @.str, %3436 ]
  store i32 %3431, ptr %1955, align 4, !tbaa !5
  %3442 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3443 = load i32, ptr @test_count, align 4, !tbaa !5
  %3444 = load i32, ptr %240, align 4, !tbaa !5
  %3445 = call ptr @s2n_strerror(i32 noundef %3444, ptr noundef nonnull @.str.3) #11
  %3446 = load i32, ptr %240, align 4, !tbaa !5
  %3447 = call ptr @s2n_strerror_debug(i32 noundef %3446, ptr noundef nonnull @.str.3) #11
  %3448 = load i32, ptr %1955, align 4, !tbaa !5
  %3449 = call ptr @strerror(i32 noundef %3448) #11
  %3450 = load i32, ptr %1955, align 4, !tbaa !5
  %3451 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3442, ptr noundef nonnull %.str.4.sink1936, i32 noundef %3443, ptr noundef nonnull @.str.113, ptr noundef nonnull @.str.2, i32 noundef 629, ptr noundef %3445, ptr noundef %3447, ptr noundef %3449, i32 noundef %3450) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3452:                                             ; preds = %3424
  %3453 = load i32, ptr @test_count, align 4, !tbaa !5
  %3454 = add nsw i32 %3453, 1
  store i32 %3454, ptr @test_count, align 4, !tbaa !5
  %3455 = load i8, ptr @offload_callback_count, align 1, !tbaa !37
  %3456 = icmp eq i8 %3455, 2
  br i1 %3456, label %3479, label %3457

3457:                                             ; preds = %3452
  %3458 = load i32, ptr %1955, align 4, !tbaa !5
  %3459 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3460 = call i32 @s2n_print_stacktrace(ptr noundef %3459) #11
  %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 = %3457
  %3464 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3465 = call i32 @fileno(ptr noundef %3464) #11
  %3466 = call i32 @isatty(i32 noundef %3465) #11
  %.not479 = icmp eq i32 %3466, 0
  br i1 %.not479, label %3467, label %3468

3467:                                             ; preds = %3463, %3457
  br label %3468

3468:                                             ; preds = %3463, %3467
  %.str.4.sink1945 = phi ptr [ @.str.4, %3467 ], [ @.str, %3463 ]
  store i32 %3458, ptr %1955, align 4, !tbaa !5
  %3469 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3470 = load i32, ptr @test_count, align 4, !tbaa !5
  %3471 = load i32, ptr %240, align 4, !tbaa !5
  %3472 = call ptr @s2n_strerror(i32 noundef %3471, ptr noundef nonnull @.str.3) #11
  %3473 = load i32, ptr %240, align 4, !tbaa !5
  %3474 = call ptr @s2n_strerror_debug(i32 noundef %3473, ptr noundef nonnull @.str.3) #11
  %3475 = load i32, ptr %1955, align 4, !tbaa !5
  %3476 = call ptr @strerror(i32 noundef %3475) #11
  %3477 = load i32, ptr %1955, align 4, !tbaa !5
  %3478 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3469, ptr noundef nonnull %.str.4.sink1945, i32 noundef %3470, ptr noundef nonnull @.str.114, ptr noundef nonnull @.str.2, i32 noundef 630, ptr noundef %3472, ptr noundef %3474, ptr noundef %3476, i32 noundef %3477) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3479:                                             ; preds = %3452
  %3480 = add nsw i32 %3453, 2
  store i32 %3480, ptr @test_count, align 4, !tbaa !5
  %3481 = call i32 @s2n_connection_free(ptr noundef nonnull %3289) #11
  %3482 = icmp eq i32 %3481, -1
  br i1 %3482, label %3483, label %3505

3483:                                             ; preds = %3479
  %3484 = load i32, ptr %1955, align 4, !tbaa !5
  %3485 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3486 = call i32 @s2n_print_stacktrace(ptr noundef %3485) #11
  %3487 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3488 = trunc nuw i8 %3487 to i1
  br i1 %3488, label %3489, label %3493

3489:                                             ; preds = %3483
  %3490 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3491 = call i32 @fileno(ptr noundef %3490) #11
  %3492 = call i32 @isatty(i32 noundef %3491) #11
  %.not526 = icmp eq i32 %3492, 0
  br i1 %.not526, label %3493, label %3494

3493:                                             ; preds = %3489, %3483
  br label %3494

3494:                                             ; preds = %3489, %3493
  %.str.4.sink1954 = phi ptr [ @.str.4, %3493 ], [ @.str, %3489 ]
  store i32 %3484, ptr %1955, align 4, !tbaa !5
  %3495 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3496 = load i32, ptr @test_count, align 4, !tbaa !5
  %3497 = load i32, ptr %240, align 4, !tbaa !5
  %3498 = call ptr @s2n_strerror(i32 noundef %3497, ptr noundef nonnull @.str.3) #11
  %3499 = load i32, ptr %240, align 4, !tbaa !5
  %3500 = call ptr @s2n_strerror_debug(i32 noundef %3499, ptr noundef nonnull @.str.3) #11
  %3501 = load i32, ptr %1955, align 4, !tbaa !5
  %3502 = call ptr @strerror(i32 noundef %3501) #11
  %3503 = load i32, ptr %1955, align 4, !tbaa !5
  %3504 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3495, ptr noundef nonnull %.str.4.sink1954, i32 noundef %3496, ptr noundef nonnull @.str.115, ptr noundef nonnull @.str.2, i32 noundef 632, ptr noundef %3498, ptr noundef %3500, ptr noundef %3502, i32 noundef %3503) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3505:                                             ; preds = %3479
  %3506 = call ptr @s2n_connection_new(i32 noundef 1) #11
  %3507 = load i32, ptr @test_count, align 4, !tbaa !5
  %3508 = add nsw i32 %3507, 1
  store i32 %3508, ptr @test_count, align 4, !tbaa !5
  %3509 = icmp eq ptr %3506, null
  br i1 %3509, label %3510, label %3532

3510:                                             ; preds = %3505
  %3511 = load i32, ptr %1955, align 4, !tbaa !5
  %3512 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3513 = call i32 @s2n_print_stacktrace(ptr noundef %3512) #11
  %3514 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3515 = trunc nuw i8 %3514 to i1
  br i1 %3515, label %3516, label %3520

3516:                                             ; preds = %3510
  %3517 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3518 = call i32 @fileno(ptr noundef %3517) #11
  %3519 = call i32 @isatty(i32 noundef %3518) #11
  %.not525 = icmp eq i32 %3519, 0
  br i1 %.not525, label %3520, label %3521

3520:                                             ; preds = %3516, %3510
  br label %3521

3521:                                             ; preds = %3516, %3520
  %.str.4.sink1963 = phi ptr [ @.str.4, %3520 ], [ @.str, %3516 ]
  store i32 %3511, ptr %1955, align 4, !tbaa !5
  %3522 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3523 = load i32, ptr @test_count, align 4, !tbaa !5
  %3524 = load i32, ptr %240, align 4, !tbaa !5
  %3525 = call ptr @s2n_strerror(i32 noundef %3524, ptr noundef nonnull @.str.3) #11
  %3526 = load i32, ptr %240, align 4, !tbaa !5
  %3527 = call ptr @s2n_strerror_debug(i32 noundef %3526, ptr noundef nonnull @.str.3) #11
  %3528 = load i32, ptr %1955, align 4, !tbaa !5
  %3529 = call ptr @strerror(i32 noundef %3528) #11
  %3530 = load i32, ptr %1955, align 4, !tbaa !5
  %3531 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3522, ptr noundef nonnull %.str.4.sink1963, i32 noundef %3523, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.2, i32 noundef 638, ptr noundef %3525, ptr noundef %3527, ptr noundef %3529, i32 noundef %3530) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3532:                                             ; preds = %3505
  %3533 = getelementptr inbounds i8, ptr %3506, i64 8
  %3534 = load ptr, ptr %3533, align 8, !tbaa !38
  %3535 = getelementptr inbounds i8, ptr %3534, i64 328
  store ptr @async_pkey_decrypt_callback, ptr %3535, align 8, !tbaa !62
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %19) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %19, i8 0, i64 24, i1 false)
  %3536 = add nsw i32 %3507, 2
  store i32 %3536, ptr @test_count, align 4, !tbaa !5
  %3537 = call i32 @s2n_blob_init(ptr noundef nonnull %19, ptr noundef nonnull @test_encrypted_data, i32 noundef 17) #11
  %3538 = icmp eq i32 %3537, -1
  br i1 %3538, label %3539, label %3561

3539:                                             ; preds = %3532
  %3540 = load i32, ptr %1955, align 4, !tbaa !5
  %3541 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3542 = call i32 @s2n_print_stacktrace(ptr noundef %3541) #11
  %3543 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3544 = trunc nuw i8 %3543 to i1
  br i1 %3544, label %3545, label %3549

3545:                                             ; preds = %3539
  %3546 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3547 = call i32 @fileno(ptr noundef %3546) #11
  %3548 = call i32 @isatty(i32 noundef %3547) #11
  %.not524 = icmp eq i32 %3548, 0
  br i1 %.not524, label %3549, label %3550

3549:                                             ; preds = %3545, %3539
  br label %3550

3550:                                             ; preds = %3545, %3549
  %.str.4.sink1972 = phi ptr [ @.str.4, %3549 ], [ @.str, %3545 ]
  store i32 %3540, ptr %1955, align 4, !tbaa !5
  %3551 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3552 = load i32, ptr @test_count, align 4, !tbaa !5
  %3553 = load i32, ptr %240, align 4, !tbaa !5
  %3554 = call ptr @s2n_strerror(i32 noundef %3553, ptr noundef nonnull @.str.3) #11
  %3555 = load i32, ptr %240, align 4, !tbaa !5
  %3556 = call ptr @s2n_strerror_debug(i32 noundef %3555, ptr noundef nonnull @.str.3) #11
  %3557 = load i32, ptr %1955, align 4, !tbaa !5
  %3558 = call ptr @strerror(i32 noundef %3557) #11
  %3559 = load i32, ptr %1955, align 4, !tbaa !5
  %3560 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3551, ptr noundef nonnull %.str.4.sink1972, i32 noundef %3552, ptr noundef nonnull @.str.116, ptr noundef nonnull @.str.2, i32 noundef 642, ptr noundef %3554, ptr noundef %3556, ptr noundef %3558, i32 noundef %3559) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3561:                                             ; preds = %3532
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %20) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %20, i8 0, i64 24, i1 false)
  %3562 = load i32, ptr @test_count, align 4, !tbaa !5
  %3563 = add nsw i32 %3562, 1
  store i32 %3563, ptr @test_count, align 4, !tbaa !5
  %3564 = call i32 @s2n_blob_init(ptr noundef nonnull %20, ptr noundef nonnull @test_encrypted_data, i32 noundef 17) #11
  %3565 = icmp eq i32 %3564, -1
  br i1 %3565, label %3566, label %3588

3566:                                             ; preds = %3561
  %3567 = load i32, ptr %1955, align 4, !tbaa !5
  %3568 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3569 = call i32 @s2n_print_stacktrace(ptr noundef %3568) #11
  %3570 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3571 = trunc nuw i8 %3570 to i1
  br i1 %3571, label %3572, label %3576

3572:                                             ; preds = %3566
  %3573 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3574 = call i32 @fileno(ptr noundef %3573) #11
  %3575 = call i32 @isatty(i32 noundef %3574) #11
  %.not523 = icmp eq i32 %3575, 0
  br i1 %.not523, label %3576, label %3577

3576:                                             ; preds = %3572, %3566
  br label %3577

3577:                                             ; preds = %3572, %3576
  %.str.4.sink1981 = phi ptr [ @.str.4, %3576 ], [ @.str, %3572 ]
  store i32 %3567, ptr %1955, align 4, !tbaa !5
  %3578 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3579 = load i32, ptr @test_count, align 4, !tbaa !5
  %3580 = load i32, ptr %240, align 4, !tbaa !5
  %3581 = call ptr @s2n_strerror(i32 noundef %3580, ptr noundef nonnull @.str.3) #11
  %3582 = load i32, ptr %240, align 4, !tbaa !5
  %3583 = call ptr @s2n_strerror_debug(i32 noundef %3582, ptr noundef nonnull @.str.3) #11
  %3584 = load i32, ptr %1955, align 4, !tbaa !5
  %3585 = call ptr @strerror(i32 noundef %3584) #11
  %3586 = load i32, ptr %1955, align 4, !tbaa !5
  %3587 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3578, ptr noundef nonnull %.str.4.sink1981, i32 noundef %3579, ptr noundef nonnull @.str.117, ptr noundef nonnull @.str.2, i32 noundef 647, ptr noundef %3581, ptr noundef %3583, ptr noundef %3585, i32 noundef %3586) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3588:                                             ; preds = %3561
  %3589 = load i32, ptr @test_count, align 4, !tbaa !5
  %3590 = add nsw i32 %3589, 1
  store i32 %3590, ptr @test_count, align 4, !tbaa !5
  %3591 = call i32 @s2n_async_pkey_decrypt(ptr noundef nonnull %3506, ptr noundef nonnull %19, ptr noundef nonnull %20, ptr noundef nonnull @s2n_async_decrypt_complete) #11
  %3592 = call zeroext i1 @s2n_result_is_ok(i32 %3591)
  br i1 %3592, label %3593, label %3615

3593:                                             ; preds = %3588
  %3594 = load i32, ptr %1955, align 4, !tbaa !5
  %3595 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3596 = call i32 @s2n_print_stacktrace(ptr noundef %3595) #11
  %3597 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3598 = trunc nuw i8 %3597 to i1
  br i1 %3598, label %3599, label %3603

3599:                                             ; preds = %3593
  %3600 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3601 = call i32 @fileno(ptr noundef %3600) #11
  %3602 = call i32 @isatty(i32 noundef %3601) #11
  %.not522 = icmp eq i32 %3602, 0
  br i1 %.not522, label %3603, label %3604

3603:                                             ; preds = %3599, %3593
  br label %3604

3604:                                             ; preds = %3599, %3603
  %.str.4.sink1990 = phi ptr [ @.str.4, %3603 ], [ @.str, %3599 ]
  store i32 %3594, ptr %1955, align 4, !tbaa !5
  %3605 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3606 = load i32, ptr @test_count, align 4, !tbaa !5
  %3607 = load i32, ptr %240, align 4, !tbaa !5
  %3608 = call ptr @s2n_strerror(i32 noundef %3607, ptr noundef nonnull @.str.3) #11
  %3609 = load i32, ptr %240, align 4, !tbaa !5
  %3610 = call ptr @s2n_strerror_debug(i32 noundef %3609, ptr noundef nonnull @.str.3) #11
  %3611 = load i32, ptr %1955, align 4, !tbaa !5
  %3612 = call ptr @strerror(i32 noundef %3611) #11
  %3613 = load i32, ptr %1955, align 4, !tbaa !5
  %3614 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3605, ptr noundef nonnull %.str.4.sink1990, i32 noundef %3606, ptr noundef nonnull @.str.118, ptr noundef nonnull @.str.2, i32 noundef 649, ptr noundef %3608, ptr noundef %3610, ptr noundef %3612, i32 noundef %3613) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3615:                                             ; preds = %3588
  %3616 = load i32, ptr @test_count, align 4, !tbaa !5
  %3617 = add nsw i32 %3616, 1
  store i32 %3617, ptr @test_count, align 4, !tbaa !5
  %3618 = load i32, ptr %240, align 4, !tbaa !5
  %3619 = icmp eq i32 %3618, 201326593
  br i1 %3619, label %3642, label %3620

3620:                                             ; preds = %3615
  %3621 = load i32, ptr %1955, align 4, !tbaa !5
  %3622 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3623 = call i32 @s2n_print_stacktrace(ptr noundef %3622) #11
  %3624 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3625 = trunc nuw i8 %3624 to i1
  br i1 %3625, label %3626, label %3630

3626:                                             ; preds = %3620
  %3627 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3628 = call i32 @fileno(ptr noundef %3627) #11
  %3629 = call i32 @isatty(i32 noundef %3628) #11
  %.not480 = icmp eq i32 %3629, 0
  br i1 %.not480, label %3630, label %3631

3630:                                             ; preds = %3626, %3620
  br label %3631

3631:                                             ; preds = %3626, %3630
  %.str.4.sink1999 = phi ptr [ @.str.4, %3630 ], [ @.str, %3626 ]
  store i32 %3621, ptr %1955, align 4, !tbaa !5
  %3632 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3633 = load i32, ptr @test_count, align 4, !tbaa !5
  %3634 = load i32, ptr %240, align 4, !tbaa !5
  %3635 = call ptr @s2n_strerror(i32 noundef %3634, ptr noundef nonnull @.str.3) #11
  %3636 = load i32, ptr %240, align 4, !tbaa !5
  %3637 = call ptr @s2n_strerror_debug(i32 noundef %3636, ptr noundef nonnull @.str.3) #11
  %3638 = load i32, ptr %1955, align 4, !tbaa !5
  %3639 = call ptr @strerror(i32 noundef %3638) #11
  %3640 = load i32, ptr %1955, align 4, !tbaa !5
  %3641 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3632, ptr noundef nonnull %.str.4.sink1999, i32 noundef %3633, ptr noundef nonnull @.str.110, ptr noundef nonnull @.str.2, i32 noundef 650, ptr noundef %3635, ptr noundef %3637, ptr noundef %3639, i32 noundef %3640) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3642:                                             ; preds = %3615
  %3643 = add nsw i32 %3616, 2
  store i32 %3643, ptr @test_count, align 4, !tbaa !5
  %3644 = load i8, ptr @offload_callback_count, align 1, !tbaa !37
  %3645 = icmp eq i8 %3644, 3
  br i1 %3645, label %3668, label %3646

3646:                                             ; preds = %3642
  %3647 = load i32, ptr %1955, align 4, !tbaa !5
  %3648 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3649 = call i32 @s2n_print_stacktrace(ptr noundef %3648) #11
  %3650 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3651 = trunc nuw i8 %3650 to i1
  br i1 %3651, label %3652, label %3656

3652:                                             ; preds = %3646
  %3653 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3654 = call i32 @fileno(ptr noundef %3653) #11
  %3655 = call i32 @isatty(i32 noundef %3654) #11
  %.not481 = icmp eq i32 %3655, 0
  br i1 %.not481, label %3656, label %3657

3656:                                             ; preds = %3652, %3646
  br label %3657

3657:                                             ; preds = %3652, %3656
  %.str.4.sink2008 = phi ptr [ @.str.4, %3656 ], [ @.str, %3652 ]
  store i32 %3647, ptr %1955, align 4, !tbaa !5
  %3658 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3659 = load i32, ptr @test_count, align 4, !tbaa !5
  %3660 = load i32, ptr %240, align 4, !tbaa !5
  %3661 = call ptr @s2n_strerror(i32 noundef %3660, ptr noundef nonnull @.str.3) #11
  %3662 = load i32, ptr %240, align 4, !tbaa !5
  %3663 = call ptr @s2n_strerror_debug(i32 noundef %3662, ptr noundef nonnull @.str.3) #11
  %3664 = load i32, ptr %1955, align 4, !tbaa !5
  %3665 = call ptr @strerror(i32 noundef %3664) #11
  %3666 = load i32, ptr %1955, align 4, !tbaa !5
  %3667 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3658, ptr noundef nonnull %.str.4.sink2008, i32 noundef %3659, ptr noundef nonnull @.str.119, ptr noundef nonnull @.str.2, i32 noundef 651, ptr noundef %3661, ptr noundef %3663, ptr noundef %3665, i32 noundef %3666) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3668:                                             ; preds = %3642
  %3669 = add nsw i32 %3616, 3
  store i32 %3669, ptr @test_count, align 4, !tbaa !5
  %3670 = load ptr, ptr @pkey_op, align 8, !tbaa !9
  %3671 = call i32 @s2n_async_pkey_op_apply(ptr noundef %3670, ptr noundef nonnull %3506) #11
  %3672 = icmp eq i32 %3671, -1
  br i1 %3672, label %3673, label %3695

3673:                                             ; preds = %3668
  %3674 = load i32, ptr %1955, align 4, !tbaa !5
  %3675 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3676 = call i32 @s2n_print_stacktrace(ptr noundef %3675) #11
  %3677 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3678 = trunc nuw i8 %3677 to i1
  br i1 %3678, label %3679, label %3683

3679:                                             ; preds = %3673
  %3680 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3681 = call i32 @fileno(ptr noundef %3680) #11
  %3682 = call i32 @isatty(i32 noundef %3681) #11
  %.not521 = icmp eq i32 %3682, 0
  br i1 %.not521, label %3683, label %3684

3683:                                             ; preds = %3679, %3673
  br label %3684

3684:                                             ; preds = %3679, %3683
  %.str.4.sink2017 = phi ptr [ @.str.4, %3683 ], [ @.str, %3679 ]
  store i32 %3674, ptr %1955, align 4, !tbaa !5
  %3685 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3686 = load i32, ptr @test_count, align 4, !tbaa !5
  %3687 = load i32, ptr %240, align 4, !tbaa !5
  %3688 = call ptr @s2n_strerror(i32 noundef %3687, ptr noundef nonnull @.str.3) #11
  %3689 = load i32, ptr %240, align 4, !tbaa !5
  %3690 = call ptr @s2n_strerror_debug(i32 noundef %3689, ptr noundef nonnull @.str.3) #11
  %3691 = load i32, ptr %1955, align 4, !tbaa !5
  %3692 = call ptr @strerror(i32 noundef %3691) #11
  %3693 = load i32, ptr %1955, align 4, !tbaa !5
  %3694 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3685, ptr noundef nonnull %.str.4.sink2017, i32 noundef %3686, ptr noundef nonnull @.str.112, ptr noundef nonnull @.str.2, i32 noundef 653, ptr noundef %3688, ptr noundef %3690, ptr noundef %3692, i32 noundef %3693) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3695:                                             ; preds = %3668
  %3696 = load i32, ptr @test_count, align 4, !tbaa !5
  %3697 = add nsw i32 %3696, 1
  store i32 %3697, ptr @test_count, align 4, !tbaa !5
  %3698 = load ptr, ptr @pkey_op, align 8, !tbaa !9
  %3699 = call i32 @s2n_async_pkey_op_free(ptr noundef %3698) #11
  %3700 = icmp eq i32 %3699, -1
  br i1 %3700, label %3701, label %3723

3701:                                             ; preds = %3695
  %3702 = load i32, ptr %1955, align 4, !tbaa !5
  %3703 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3704 = call i32 @s2n_print_stacktrace(ptr noundef %3703) #11
  %3705 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3706 = trunc nuw i8 %3705 to i1
  br i1 %3706, label %3707, label %3711

3707:                                             ; preds = %3701
  %3708 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3709 = call i32 @fileno(ptr noundef %3708) #11
  %3710 = call i32 @isatty(i32 noundef %3709) #11
  %.not520 = icmp eq i32 %3710, 0
  br i1 %.not520, label %3711, label %3712

3711:                                             ; preds = %3707, %3701
  br label %3712

3712:                                             ; preds = %3707, %3711
  %.str.4.sink2026 = phi ptr [ @.str.4, %3711 ], [ @.str, %3707 ]
  store i32 %3702, ptr %1955, align 4, !tbaa !5
  %3713 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3714 = load i32, ptr @test_count, align 4, !tbaa !5
  %3715 = load i32, ptr %240, align 4, !tbaa !5
  %3716 = call ptr @s2n_strerror(i32 noundef %3715, ptr noundef nonnull @.str.3) #11
  %3717 = load i32, ptr %240, align 4, !tbaa !5
  %3718 = call ptr @s2n_strerror_debug(i32 noundef %3717, ptr noundef nonnull @.str.3) #11
  %3719 = load i32, ptr %1955, align 4, !tbaa !5
  %3720 = call ptr @strerror(i32 noundef %3719) #11
  %3721 = load i32, ptr %1955, align 4, !tbaa !5
  %3722 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3713, ptr noundef nonnull %.str.4.sink2026, i32 noundef %3714, ptr noundef nonnull @.str.113, ptr noundef nonnull @.str.2, i32 noundef 654, ptr noundef %3716, ptr noundef %3718, ptr noundef %3720, i32 noundef %3721) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3723:                                             ; preds = %3695
  %3724 = load i32, ptr @test_count, align 4, !tbaa !5
  %3725 = add nsw i32 %3724, 1
  store i32 %3725, ptr @test_count, align 4, !tbaa !5
  %3726 = load i8, ptr @offload_callback_count, align 1, !tbaa !37
  %3727 = icmp eq i8 %3726, 4
  br i1 %3727, label %3750, label %3728

3728:                                             ; preds = %3723
  %3729 = load i32, ptr %1955, align 4, !tbaa !5
  %3730 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3731 = call i32 @s2n_print_stacktrace(ptr noundef %3730) #11
  %3732 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3733 = trunc nuw i8 %3732 to i1
  br i1 %3733, label %3734, label %3738

3734:                                             ; preds = %3728
  %3735 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3736 = call i32 @fileno(ptr noundef %3735) #11
  %3737 = call i32 @isatty(i32 noundef %3736) #11
  %.not482 = icmp eq i32 %3737, 0
  br i1 %.not482, label %3738, label %3739

3738:                                             ; preds = %3734, %3728
  br label %3739

3739:                                             ; preds = %3734, %3738
  %.str.4.sink2035 = phi ptr [ @.str.4, %3738 ], [ @.str, %3734 ]
  store i32 %3729, ptr %1955, align 4, !tbaa !5
  %3740 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3741 = load i32, ptr @test_count, align 4, !tbaa !5
  %3742 = load i32, ptr %240, align 4, !tbaa !5
  %3743 = call ptr @s2n_strerror(i32 noundef %3742, ptr noundef nonnull @.str.3) #11
  %3744 = load i32, ptr %240, align 4, !tbaa !5
  %3745 = call ptr @s2n_strerror_debug(i32 noundef %3744, ptr noundef nonnull @.str.3) #11
  %3746 = load i32, ptr %1955, align 4, !tbaa !5
  %3747 = call ptr @strerror(i32 noundef %3746) #11
  %3748 = load i32, ptr %1955, align 4, !tbaa !5
  %3749 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3740, ptr noundef nonnull %.str.4.sink2035, i32 noundef %3741, ptr noundef nonnull @.str.120, ptr noundef nonnull @.str.2, i32 noundef 655, ptr noundef %3743, ptr noundef %3745, ptr noundef %3747, i32 noundef %3748) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3750:                                             ; preds = %3723
  %3751 = add nsw i32 %3724, 2
  store i32 %3751, ptr @test_count, align 4, !tbaa !5
  %3752 = call i32 @s2n_connection_free(ptr noundef nonnull %3506) #11
  %3753 = icmp eq i32 %3752, -1
  br i1 %3753, label %3754, label %3776

3754:                                             ; preds = %3750
  %3755 = load i32, ptr %1955, align 4, !tbaa !5
  %3756 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3757 = call i32 @s2n_print_stacktrace(ptr noundef %3756) #11
  %3758 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3759 = trunc nuw i8 %3758 to i1
  br i1 %3759, label %3760, label %3764

3760:                                             ; preds = %3754
  %3761 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3762 = call i32 @fileno(ptr noundef %3761) #11
  %3763 = call i32 @isatty(i32 noundef %3762) #11
  %.not519 = icmp eq i32 %3763, 0
  br i1 %.not519, label %3764, label %3765

3764:                                             ; preds = %3760, %3754
  br label %3765

3765:                                             ; preds = %3760, %3764
  %.str.4.sink2044 = phi ptr [ @.str.4, %3764 ], [ @.str, %3760 ]
  store i32 %3755, ptr %1955, align 4, !tbaa !5
  %3766 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3767 = load i32, ptr @test_count, align 4, !tbaa !5
  %3768 = load i32, ptr %240, align 4, !tbaa !5
  %3769 = call ptr @s2n_strerror(i32 noundef %3768, ptr noundef nonnull @.str.3) #11
  %3770 = load i32, ptr %240, align 4, !tbaa !5
  %3771 = call ptr @s2n_strerror_debug(i32 noundef %3770, ptr noundef nonnull @.str.3) #11
  %3772 = load i32, ptr %1955, align 4, !tbaa !5
  %3773 = call ptr @strerror(i32 noundef %3772) #11
  %3774 = load i32, ptr %1955, align 4, !tbaa !5
  %3775 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3766, ptr noundef nonnull %.str.4.sink2044, i32 noundef %3767, ptr noundef nonnull @.str.115, ptr noundef nonnull @.str.2, i32 noundef 657, ptr noundef %3769, ptr noundef %3771, ptr noundef %3773, i32 noundef %3774) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3776:                                             ; preds = %3750
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %20) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %19) #11
  %3777 = call ptr @s2n_connection_new(i32 noundef 1) #11
  %3778 = load i32, ptr @test_count, align 4, !tbaa !5
  %3779 = add nsw i32 %3778, 1
  store i32 %3779, ptr @test_count, align 4, !tbaa !5
  %3780 = icmp eq ptr %3777, null
  br i1 %3780, label %3781, label %3803

3781:                                             ; preds = %3776
  %3782 = load i32, ptr %1955, align 4, !tbaa !5
  %3783 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3784 = call i32 @s2n_print_stacktrace(ptr noundef %3783) #11
  %3785 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3786 = trunc nuw i8 %3785 to i1
  br i1 %3786, label %3787, label %3791

3787:                                             ; preds = %3781
  %3788 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3789 = call i32 @fileno(ptr noundef %3788) #11
  %3790 = call i32 @isatty(i32 noundef %3789) #11
  %.not518 = icmp eq i32 %3790, 0
  br i1 %.not518, label %3791, label %3792

3791:                                             ; preds = %3787, %3781
  br label %3792

3792:                                             ; preds = %3787, %3791
  %.str.4.sink2053 = phi ptr [ @.str.4, %3791 ], [ @.str, %3787 ]
  store i32 %3782, ptr %1955, align 4, !tbaa !5
  %3793 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3794 = load i32, ptr @test_count, align 4, !tbaa !5
  %3795 = load i32, ptr %240, align 4, !tbaa !5
  %3796 = call ptr @s2n_strerror(i32 noundef %3795, ptr noundef nonnull @.str.3) #11
  %3797 = load i32, ptr %240, align 4, !tbaa !5
  %3798 = call ptr @s2n_strerror_debug(i32 noundef %3797, ptr noundef nonnull @.str.3) #11
  %3799 = load i32, ptr %1955, align 4, !tbaa !5
  %3800 = call ptr @strerror(i32 noundef %3799) #11
  %3801 = load i32, ptr %1955, align 4, !tbaa !5
  %3802 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3793, ptr noundef nonnull %.str.4.sink2053, i32 noundef %3794, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.2, i32 noundef 663, ptr noundef %3796, ptr noundef %3798, ptr noundef %3800, i32 noundef %3801) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3803:                                             ; preds = %3776
  %3804 = getelementptr inbounds i8, ptr %3777, i64 8
  %3805 = load ptr, ptr %3804, align 8, !tbaa !38
  %3806 = getelementptr inbounds i8, ptr %3805, i64 328
  store ptr @async_pkey_invalid_input_callback, ptr %3806, align 8, !tbaa !62
  %3807 = add nsw i32 %3778, 2
  store i32 %3807, ptr @test_count, align 4, !tbaa !5
  %3808 = call i32 @s2n_async_pkey_sign(ptr noundef nonnull %3777, i32 noundef 3, ptr noundef nonnull %18, ptr noundef nonnull @async_pkey_invalid_complete) #11
  %3809 = call zeroext i1 @s2n_result_is_ok(i32 %3808)
  br i1 %3809, label %3810, label %3832

3810:                                             ; preds = %3803
  %3811 = load i32, ptr %1955, align 4, !tbaa !5
  %3812 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3813 = call i32 @s2n_print_stacktrace(ptr noundef %3812) #11
  %3814 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3815 = trunc nuw i8 %3814 to i1
  br i1 %3815, label %3816, label %3820

3816:                                             ; preds = %3810
  %3817 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3818 = call i32 @fileno(ptr noundef %3817) #11
  %3819 = call i32 @isatty(i32 noundef %3818) #11
  %.not517 = icmp eq i32 %3819, 0
  br i1 %.not517, label %3820, label %3821

3820:                                             ; preds = %3816, %3810
  br label %3821

3821:                                             ; preds = %3816, %3820
  %.str.4.sink2062 = phi ptr [ @.str.4, %3820 ], [ @.str, %3816 ]
  store i32 %3811, ptr %1955, align 4, !tbaa !5
  %3822 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3823 = load i32, ptr @test_count, align 4, !tbaa !5
  %3824 = load i32, ptr %240, align 4, !tbaa !5
  %3825 = call ptr @s2n_strerror(i32 noundef %3824, ptr noundef nonnull @.str.3) #11
  %3826 = load i32, ptr %240, align 4, !tbaa !5
  %3827 = call ptr @s2n_strerror_debug(i32 noundef %3826, ptr noundef nonnull @.str.3) #11
  %3828 = load i32, ptr %1955, align 4, !tbaa !5
  %3829 = call ptr @strerror(i32 noundef %3828) #11
  %3830 = load i32, ptr %1955, align 4, !tbaa !5
  %3831 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3822, ptr noundef nonnull %.str.4.sink2062, i32 noundef %3823, ptr noundef nonnull @.str.121, ptr noundef nonnull @.str.2, i32 noundef 666, ptr noundef %3825, ptr noundef %3827, ptr noundef %3829, i32 noundef %3830) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3832:                                             ; preds = %3803
  %3833 = load i32, ptr @test_count, align 4, !tbaa !5
  %3834 = add nsw i32 %3833, 1
  store i32 %3834, ptr @test_count, align 4, !tbaa !5
  %3835 = load i32, ptr %240, align 4, !tbaa !5
  %3836 = icmp eq i32 %3835, 402653258
  br i1 %3836, label %3859, label %3837

3837:                                             ; preds = %3832
  %3838 = load i32, ptr %1955, align 4, !tbaa !5
  %3839 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3840 = call i32 @s2n_print_stacktrace(ptr noundef %3839) #11
  %3841 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3842 = trunc nuw i8 %3841 to i1
  br i1 %3842, label %3843, label %3847

3843:                                             ; preds = %3837
  %3844 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3845 = call i32 @fileno(ptr noundef %3844) #11
  %3846 = call i32 @isatty(i32 noundef %3845) #11
  %.not483 = icmp eq i32 %3846, 0
  br i1 %.not483, label %3847, label %3848

3847:                                             ; preds = %3843, %3837
  br label %3848

3848:                                             ; preds = %3843, %3847
  %.str.4.sink2071 = phi ptr [ @.str.4, %3847 ], [ @.str, %3843 ]
  store i32 %3838, ptr %1955, align 4, !tbaa !5
  %3849 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3850 = load i32, ptr @test_count, align 4, !tbaa !5
  %3851 = load i32, ptr %240, align 4, !tbaa !5
  %3852 = call ptr @s2n_strerror(i32 noundef %3851, ptr noundef nonnull @.str.3) #11
  %3853 = load i32, ptr %240, align 4, !tbaa !5
  %3854 = call ptr @s2n_strerror_debug(i32 noundef %3853, ptr noundef nonnull @.str.3) #11
  %3855 = load i32, ptr %1955, align 4, !tbaa !5
  %3856 = call ptr @strerror(i32 noundef %3855) #11
  %3857 = load i32, ptr %1955, align 4, !tbaa !5
  %3858 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3849, ptr noundef nonnull %.str.4.sink2071, i32 noundef %3850, ptr noundef nonnull @.str.122, ptr noundef nonnull @.str.2, i32 noundef 667, ptr noundef %3852, ptr noundef %3854, ptr noundef %3856, i32 noundef %3857) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3859:                                             ; preds = %3832
  %3860 = add nsw i32 %3833, 2
  store i32 %3860, ptr @test_count, align 4, !tbaa !5
  %3861 = load i8, ptr @offload_callback_count, align 1, !tbaa !37
  %3862 = icmp eq i8 %3861, 5
  br i1 %3862, label %3885, label %3863

3863:                                             ; preds = %3859
  %3864 = load i32, ptr %1955, align 4, !tbaa !5
  %3865 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3866 = call i32 @s2n_print_stacktrace(ptr noundef %3865) #11
  %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 = %3863
  %3870 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3871 = call i32 @fileno(ptr noundef %3870) #11
  %3872 = call i32 @isatty(i32 noundef %3871) #11
  %.not484 = icmp eq i32 %3872, 0
  br i1 %.not484, label %3873, label %3874

3873:                                             ; preds = %3869, %3863
  br label %3874

3874:                                             ; preds = %3869, %3873
  %.str.4.sink2080 = phi ptr [ @.str.4, %3873 ], [ @.str, %3869 ]
  store i32 %3864, ptr %1955, align 4, !tbaa !5
  %3875 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3876 = load i32, ptr @test_count, align 4, !tbaa !5
  %3877 = load i32, ptr %240, align 4, !tbaa !5
  %3878 = call ptr @s2n_strerror(i32 noundef %3877, ptr noundef nonnull @.str.3) #11
  %3879 = load i32, ptr %240, align 4, !tbaa !5
  %3880 = call ptr @s2n_strerror_debug(i32 noundef %3879, ptr noundef nonnull @.str.3) #11
  %3881 = load i32, ptr %1955, align 4, !tbaa !5
  %3882 = call ptr @strerror(i32 noundef %3881) #11
  %3883 = load i32, ptr %1955, align 4, !tbaa !5
  %3884 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3875, ptr noundef nonnull %.str.4.sink2080, i32 noundef %3876, ptr noundef nonnull @.str.123, ptr noundef nonnull @.str.2, i32 noundef 668, ptr noundef %3878, ptr noundef %3880, ptr noundef %3882, i32 noundef %3883) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3885:                                             ; preds = %3859
  %3886 = add nsw i32 %3833, 3
  store i32 %3886, ptr @test_count, align 4, !tbaa !5
  %3887 = load ptr, ptr @pkey_op, align 8, !tbaa !9
  %3888 = call i32 @s2n_async_pkey_op_apply(ptr noundef %3887, ptr noundef nonnull %3777) #11
  %3889 = icmp eq i32 %3888, -1
  br i1 %3889, label %3912, label %3890

3890:                                             ; preds = %3885
  %3891 = load i32, ptr %1955, align 4, !tbaa !5
  %3892 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3893 = call i32 @s2n_print_stacktrace(ptr noundef %3892) #11
  %3894 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3895 = trunc nuw i8 %3894 to i1
  br i1 %3895, label %3896, label %3900

3896:                                             ; preds = %3890
  %3897 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3898 = call i32 @fileno(ptr noundef %3897) #11
  %3899 = call i32 @isatty(i32 noundef %3898) #11
  %.not485 = icmp eq i32 %3899, 0
  br i1 %.not485, label %3900, label %3901

3900:                                             ; preds = %3896, %3890
  br label %3901

3901:                                             ; preds = %3896, %3900
  %.str.4.sink2089 = phi ptr [ @.str.4, %3900 ], [ @.str, %3896 ]
  store i32 %3891, ptr %1955, align 4, !tbaa !5
  %3902 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3903 = load i32, ptr @test_count, align 4, !tbaa !5
  %3904 = load i32, ptr %240, align 4, !tbaa !5
  %3905 = call ptr @s2n_strerror(i32 noundef %3904, ptr noundef nonnull @.str.3) #11
  %3906 = load i32, ptr %240, align 4, !tbaa !5
  %3907 = call ptr @s2n_strerror_debug(i32 noundef %3906, ptr noundef nonnull @.str.3) #11
  %3908 = load i32, ptr %1955, align 4, !tbaa !5
  %3909 = call ptr @strerror(i32 noundef %3908) #11
  %3910 = load i32, ptr %1955, align 4, !tbaa !5
  %3911 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3902, ptr noundef nonnull %.str.4.sink2089, i32 noundef %3903, ptr noundef nonnull @.str.124, ptr noundef nonnull @.str.2, i32 noundef 670, ptr noundef %3905, ptr noundef %3907, ptr noundef %3909, i32 noundef %3910) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3912:                                             ; preds = %3885
  %3913 = load i32, ptr @test_count, align 4, !tbaa !5
  %3914 = add nsw i32 %3913, 1
  store i32 %3914, ptr @test_count, align 4, !tbaa !5
  %3915 = load i32, ptr %240, align 4, !tbaa !5
  %3916 = icmp eq i32 %3915, 0
  br i1 %3916, label %3917, label %3939

3917:                                             ; preds = %3912
  %3918 = load i32, ptr %1955, align 4, !tbaa !5
  %3919 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3920 = call i32 @s2n_print_stacktrace(ptr noundef %3919) #11
  %3921 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3922 = trunc nuw i8 %3921 to i1
  br i1 %3922, label %3923, label %3927

3923:                                             ; preds = %3917
  %3924 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3925 = call i32 @fileno(ptr noundef %3924) #11
  %3926 = call i32 @isatty(i32 noundef %3925) #11
  %.not516 = icmp eq i32 %3926, 0
  br i1 %.not516, label %3927, label %3928

3927:                                             ; preds = %3923, %3917
  br label %3928

3928:                                             ; preds = %3923, %3927
  %.str.4.sink2098 = phi ptr [ @.str.4, %3927 ], [ @.str, %3923 ]
  store i32 %3918, ptr %1955, align 4, !tbaa !5
  %3929 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3930 = load i32, ptr @test_count, align 4, !tbaa !5
  %3931 = load i32, ptr %240, align 4, !tbaa !5
  %3932 = call ptr @s2n_strerror(i32 noundef %3931, ptr noundef nonnull @.str.3) #11
  %3933 = load i32, ptr %240, align 4, !tbaa !5
  %3934 = call ptr @s2n_strerror_debug(i32 noundef %3933, ptr noundef nonnull @.str.3) #11
  %3935 = load i32, ptr %1955, align 4, !tbaa !5
  %3936 = call ptr @strerror(i32 noundef %3935) #11
  %3937 = load i32, ptr %1955, align 4, !tbaa !5
  %3938 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3929, ptr noundef nonnull %.str.4.sink2098, i32 noundef %3930, ptr noundef nonnull @.str.55, ptr noundef nonnull @.str.2, i32 noundef 670, ptr noundef %3932, ptr noundef %3934, ptr noundef %3936, i32 noundef %3937) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3939:                                             ; preds = %3912
  %3940 = add nsw i32 %3913, 2
  store i32 %3940, ptr @test_count, align 4, !tbaa !5
  %3941 = call ptr @s2n_strerror_debug(i32 noundef %3915, ptr noundef nonnull @.str.3) #11
  %3942 = icmp eq ptr %3941, null
  br i1 %3942, label %3943, label %3965

3943:                                             ; preds = %3939
  %3944 = load i32, ptr %1955, align 4, !tbaa !5
  %3945 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3946 = call i32 @s2n_print_stacktrace(ptr noundef %3945) #11
  %3947 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3948 = trunc nuw i8 %3947 to i1
  br i1 %3948, label %3949, label %3953

3949:                                             ; preds = %3943
  %3950 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3951 = call i32 @fileno(ptr noundef %3950) #11
  %3952 = call i32 @isatty(i32 noundef %3951) #11
  %.not515 = icmp eq i32 %3952, 0
  br i1 %.not515, label %3953, label %3954

3953:                                             ; preds = %3949, %3943
  br label %3954

3954:                                             ; preds = %3949, %3953
  %.str.4.sink2107 = phi ptr [ @.str.4, %3953 ], [ @.str, %3949 ]
  store i32 %3944, ptr %1955, align 4, !tbaa !5
  %3955 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3956 = load i32, ptr @test_count, align 4, !tbaa !5
  %3957 = load i32, ptr %240, align 4, !tbaa !5
  %3958 = call ptr @s2n_strerror(i32 noundef %3957, ptr noundef nonnull @.str.3) #11
  %3959 = load i32, ptr %240, align 4, !tbaa !5
  %3960 = call ptr @s2n_strerror_debug(i32 noundef %3959, ptr noundef nonnull @.str.3) #11
  %3961 = load i32, ptr %1955, align 4, !tbaa !5
  %3962 = call ptr @strerror(i32 noundef %3961) #11
  %3963 = load i32, ptr %1955, align 4, !tbaa !5
  %3964 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3955, ptr noundef nonnull %.str.4.sink2107, i32 noundef %3956, ptr noundef nonnull @.str.56, ptr noundef nonnull @.str.2, i32 noundef 670, ptr noundef %3958, ptr noundef %3960, ptr noundef %3962, i32 noundef %3963) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3965:                                             ; preds = %3939
  store i32 0, ptr %240, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %1955, align 4, !tbaa !5
  %3966 = load i32, ptr @test_count, align 4, !tbaa !5
  %3967 = add nsw i32 %3966, 1
  store i32 %3967, ptr @test_count, align 4, !tbaa !5
  %3968 = load ptr, ptr @pkey_op, align 8, !tbaa !9
  %3969 = call i32 @s2n_async_pkey_op_free(ptr noundef %3968) #11
  %3970 = icmp eq i32 %3969, -1
  br i1 %3970, label %3971, label %3993

3971:                                             ; preds = %3965
  %3972 = load i32, ptr %1955, align 4, !tbaa !5
  %3973 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3974 = call i32 @s2n_print_stacktrace(ptr noundef %3973) #11
  %3975 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3976 = trunc nuw i8 %3975 to i1
  br i1 %3976, label %3977, label %3981

3977:                                             ; preds = %3971
  %3978 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3979 = call i32 @fileno(ptr noundef %3978) #11
  %3980 = call i32 @isatty(i32 noundef %3979) #11
  %.not514 = icmp eq i32 %3980, 0
  br i1 %.not514, label %3981, label %3982

3981:                                             ; preds = %3977, %3971
  br label %3982

3982:                                             ; preds = %3977, %3981
  %.str.4.sink2116 = phi ptr [ @.str.4, %3981 ], [ @.str, %3977 ]
  store i32 %3972, ptr %1955, align 4, !tbaa !5
  %3983 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3984 = load i32, ptr @test_count, align 4, !tbaa !5
  %3985 = load i32, ptr %240, align 4, !tbaa !5
  %3986 = call ptr @s2n_strerror(i32 noundef %3985, ptr noundef nonnull @.str.3) #11
  %3987 = load i32, ptr %240, align 4, !tbaa !5
  %3988 = call ptr @s2n_strerror_debug(i32 noundef %3987, ptr noundef nonnull @.str.3) #11
  %3989 = load i32, ptr %1955, align 4, !tbaa !5
  %3990 = call ptr @strerror(i32 noundef %3989) #11
  %3991 = load i32, ptr %1955, align 4, !tbaa !5
  %3992 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3983, ptr noundef nonnull %.str.4.sink2116, i32 noundef %3984, ptr noundef nonnull @.str.113, ptr noundef nonnull @.str.2, i32 noundef 671, ptr noundef %3986, ptr noundef %3988, ptr noundef %3990, i32 noundef %3991) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3993:                                             ; preds = %3965
  %3994 = load i32, ptr @test_count, align 4, !tbaa !5
  %3995 = add nsw i32 %3994, 1
  store i32 %3995, ptr @test_count, align 4, !tbaa !5
  %3996 = load i8, ptr @offload_callback_count, align 1, !tbaa !37
  %3997 = icmp eq i8 %3996, 5
  br i1 %3997, label %4020, label %3998

3998:                                             ; preds = %3993
  %3999 = load i32, ptr %1955, align 4, !tbaa !5
  %4000 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4001 = call i32 @s2n_print_stacktrace(ptr noundef %4000) #11
  %4002 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4003 = trunc nuw i8 %4002 to i1
  br i1 %4003, label %4004, label %4008

4004:                                             ; preds = %3998
  %4005 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4006 = call i32 @fileno(ptr noundef %4005) #11
  %4007 = call i32 @isatty(i32 noundef %4006) #11
  %.not486 = icmp eq i32 %4007, 0
  br i1 %.not486, label %4008, label %4009

4008:                                             ; preds = %4004, %3998
  br label %4009

4009:                                             ; preds = %4004, %4008
  %.str.4.sink2125 = phi ptr [ @.str.4, %4008 ], [ @.str, %4004 ]
  store i32 %3999, ptr %1955, align 4, !tbaa !5
  %4010 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4011 = load i32, ptr @test_count, align 4, !tbaa !5
  %4012 = load i32, ptr %240, align 4, !tbaa !5
  %4013 = call ptr @s2n_strerror(i32 noundef %4012, ptr noundef nonnull @.str.3) #11
  %4014 = load i32, ptr %240, align 4, !tbaa !5
  %4015 = call ptr @s2n_strerror_debug(i32 noundef %4014, ptr noundef nonnull @.str.3) #11
  %4016 = load i32, ptr %1955, align 4, !tbaa !5
  %4017 = call ptr @strerror(i32 noundef %4016) #11
  %4018 = load i32, ptr %1955, align 4, !tbaa !5
  %4019 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4010, ptr noundef nonnull %.str.4.sink2125, i32 noundef %4011, ptr noundef nonnull @.str.123, ptr noundef nonnull @.str.2, i32 noundef 672, ptr noundef %4013, ptr noundef %4015, ptr noundef %4017, i32 noundef %4018) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4020:                                             ; preds = %3993
  %4021 = add nsw i32 %3994, 2
  store i32 %4021, ptr @test_count, align 4, !tbaa !5
  %4022 = call i32 @s2n_connection_free(ptr noundef nonnull %3777) #11
  %4023 = icmp eq i32 %4022, -1
  br i1 %4023, label %4024, label %4046

4024:                                             ; preds = %4020
  %4025 = load i32, ptr %1955, align 4, !tbaa !5
  %4026 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4027 = call i32 @s2n_print_stacktrace(ptr noundef %4026) #11
  %4028 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4029 = trunc nuw i8 %4028 to i1
  br i1 %4029, label %4030, label %4034

4030:                                             ; preds = %4024
  %4031 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4032 = call i32 @fileno(ptr noundef %4031) #11
  %4033 = call i32 @isatty(i32 noundef %4032) #11
  %.not513 = icmp eq i32 %4033, 0
  br i1 %.not513, label %4034, label %4035

4034:                                             ; preds = %4030, %4024
  br label %4035

4035:                                             ; preds = %4030, %4034
  %.str.4.sink2134 = phi ptr [ @.str.4, %4034 ], [ @.str, %4030 ]
  store i32 %4025, ptr %1955, align 4, !tbaa !5
  %4036 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4037 = load i32, ptr @test_count, align 4, !tbaa !5
  %4038 = load i32, ptr %240, align 4, !tbaa !5
  %4039 = call ptr @s2n_strerror(i32 noundef %4038, ptr noundef nonnull @.str.3) #11
  %4040 = load i32, ptr %240, align 4, !tbaa !5
  %4041 = call ptr @s2n_strerror_debug(i32 noundef %4040, ptr noundef nonnull @.str.3) #11
  %4042 = load i32, ptr %1955, align 4, !tbaa !5
  %4043 = call ptr @strerror(i32 noundef %4042) #11
  %4044 = load i32, ptr %1955, align 4, !tbaa !5
  %4045 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4036, ptr noundef nonnull %.str.4.sink2134, i32 noundef %4037, ptr noundef nonnull @.str.115, ptr noundef nonnull @.str.2, i32 noundef 674, ptr noundef %4039, ptr noundef %4041, ptr noundef %4043, i32 noundef %4044) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4046:                                             ; preds = %4020
  %4047 = load i32, ptr @test_count, align 4, !tbaa !5
  %4048 = add nsw i32 %4047, 1
  store i32 %4048, ptr @test_count, align 4, !tbaa !5
  %4049 = call i32 (...) @s2n_reset_tls13_in_test() #11
  %4050 = icmp eq i32 %4049, -1
  br i1 %4050, label %4051, label %4073

4051:                                             ; preds = %4046
  %4052 = load i32, ptr %1955, align 4, !tbaa !5
  %4053 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4054 = call i32 @s2n_print_stacktrace(ptr noundef %4053) #11
  %4055 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4056 = trunc nuw i8 %4055 to i1
  br i1 %4056, label %4057, label %4061

4057:                                             ; preds = %4051
  %4058 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4059 = call i32 @fileno(ptr noundef %4058) #11
  %4060 = call i32 @isatty(i32 noundef %4059) #11
  %.not512 = icmp eq i32 %4060, 0
  br i1 %.not512, label %4061, label %4062

4061:                                             ; preds = %4057, %4051
  br label %4062

4062:                                             ; preds = %4057, %4061
  %.str.4.sink2143 = phi ptr [ @.str.4, %4061 ], [ @.str, %4057 ]
  store i32 %4052, ptr %1955, align 4, !tbaa !5
  %4063 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4064 = load i32, ptr @test_count, align 4, !tbaa !5
  %4065 = load i32, ptr %240, align 4, !tbaa !5
  %4066 = call ptr @s2n_strerror(i32 noundef %4065, ptr noundef nonnull @.str.3) #11
  %4067 = load i32, ptr %240, align 4, !tbaa !5
  %4068 = call ptr @s2n_strerror_debug(i32 noundef %4067, ptr noundef nonnull @.str.3) #11
  %4069 = load i32, ptr %1955, align 4, !tbaa !5
  %4070 = call ptr @strerror(i32 noundef %4069) #11
  %4071 = load i32, ptr %1955, align 4, !tbaa !5
  %4072 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4063, ptr noundef nonnull %.str.4.sink2143, i32 noundef %4064, ptr noundef nonnull @.str.125, ptr noundef nonnull @.str.2, i32 noundef 677, ptr noundef %4066, ptr noundef %4068, ptr noundef %4070, i32 noundef %4071) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4073:                                             ; preds = %4046
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #11
  %4074 = call ptr @s2n_config_new() #11
  store ptr %4074, ptr %21, align 8, !tbaa !9
  %4075 = load i32, ptr @test_count, align 4, !tbaa !5
  %4076 = add nsw i32 %4075, 1
  store i32 %4076, ptr @test_count, align 4, !tbaa !5
  %4077 = icmp eq ptr %4074, null
  br i1 %4077, label %4078, label %4100

4078:                                             ; preds = %4073
  %4079 = load i32, ptr %1955, align 4, !tbaa !5
  %4080 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4081 = call i32 @s2n_print_stacktrace(ptr noundef %4080) #11
  %4082 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4083 = trunc nuw i8 %4082 to i1
  br i1 %4083, label %4084, label %4088

4084:                                             ; preds = %4078
  %4085 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4086 = call i32 @fileno(ptr noundef %4085) #11
  %4087 = call i32 @isatty(i32 noundef %4086) #11
  %.not511 = icmp eq i32 %4087, 0
  br i1 %.not511, label %4088, label %4089

4088:                                             ; preds = %4084, %4078
  br label %4089

4089:                                             ; preds = %4084, %4088
  %.str.4.sink2152 = phi ptr [ @.str.4, %4088 ], [ @.str, %4084 ]
  store i32 %4079, ptr %1955, align 4, !tbaa !5
  %4090 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4091 = load i32, ptr @test_count, align 4, !tbaa !5
  %4092 = load i32, ptr %240, align 4, !tbaa !5
  %4093 = call ptr @s2n_strerror(i32 noundef %4092, ptr noundef nonnull @.str.3) #11
  %4094 = load i32, ptr %240, align 4, !tbaa !5
  %4095 = call ptr @s2n_strerror_debug(i32 noundef %4094, ptr noundef nonnull @.str.3) #11
  %4096 = load i32, ptr %1955, align 4, !tbaa !5
  %4097 = call ptr @strerror(i32 noundef %4096) #11
  %4098 = load i32, ptr %1955, align 4, !tbaa !5
  %4099 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4090, ptr noundef nonnull %.str.4.sink2152, i32 noundef %4091, ptr noundef nonnull @.str.126, ptr noundef nonnull @.str.2, i32 noundef 682, ptr noundef %4093, ptr noundef %4095, ptr noundef %4097, i32 noundef %4098) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4100:                                             ; preds = %4073
  %4101 = add nsw i32 %4075, 2
  store i32 %4101, ptr @test_count, align 4, !tbaa !5
  %4102 = call i32 @s2n_config_set_unsafe_for_testing(ptr noundef nonnull %4074) #11
  %4103 = icmp eq i32 %4102, -1
  br i1 %4103, label %4104, label %4126

4104:                                             ; preds = %4100
  %4105 = load i32, ptr %1955, align 4, !tbaa !5
  %4106 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4107 = call i32 @s2n_print_stacktrace(ptr noundef %4106) #11
  %4108 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4109 = trunc nuw i8 %4108 to i1
  br i1 %4109, label %4110, label %4114

4110:                                             ; preds = %4104
  %4111 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4112 = call i32 @fileno(ptr noundef %4111) #11
  %4113 = call i32 @isatty(i32 noundef %4112) #11
  %.not510 = icmp eq i32 %4113, 0
  br i1 %.not510, label %4114, label %4115

4114:                                             ; preds = %4110, %4104
  br label %4115

4115:                                             ; preds = %4110, %4114
  %.str.4.sink2161 = phi ptr [ @.str.4, %4114 ], [ @.str, %4110 ]
  store i32 %4105, ptr %1955, align 4, !tbaa !5
  %4116 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4117 = load i32, ptr @test_count, align 4, !tbaa !5
  %4118 = load i32, ptr %240, align 4, !tbaa !5
  %4119 = call ptr @s2n_strerror(i32 noundef %4118, ptr noundef nonnull @.str.3) #11
  %4120 = load i32, ptr %240, align 4, !tbaa !5
  %4121 = call ptr @s2n_strerror_debug(i32 noundef %4120, ptr noundef nonnull @.str.3) #11
  %4122 = load i32, ptr %1955, align 4, !tbaa !5
  %4123 = call ptr @strerror(i32 noundef %4122) #11
  %4124 = load i32, ptr %1955, align 4, !tbaa !5
  %4125 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4116, ptr noundef nonnull %.str.4.sink2161, i32 noundef %4117, ptr noundef nonnull @.str.127, ptr noundef nonnull @.str.2, i32 noundef 683, ptr noundef %4119, ptr noundef %4121, ptr noundef %4123, i32 noundef %4124) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4126:                                             ; preds = %4100
  %4127 = load i32, ptr @test_count, align 4, !tbaa !5
  %4128 = add nsw i32 %4127, 1
  store i32 %4128, ptr @test_count, align 4, !tbaa !5
  %4129 = call i32 @s2n_config_set_cipher_preferences(ptr noundef nonnull %4074, ptr noundef nonnull @.str.128) #11
  %4130 = icmp eq i32 %4129, -1
  br i1 %4130, label %4131, label %4153

4131:                                             ; preds = %4126
  %4132 = load i32, ptr %1955, align 4, !tbaa !5
  %4133 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4134 = call i32 @s2n_print_stacktrace(ptr noundef %4133) #11
  %4135 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4136 = trunc nuw i8 %4135 to i1
  br i1 %4136, label %4137, label %4141

4137:                                             ; preds = %4131
  %4138 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4139 = call i32 @fileno(ptr noundef %4138) #11
  %4140 = call i32 @isatty(i32 noundef %4139) #11
  %.not509 = icmp eq i32 %4140, 0
  br i1 %.not509, label %4141, label %4142

4141:                                             ; preds = %4137, %4131
  br label %4142

4142:                                             ; preds = %4137, %4141
  %.str.4.sink2170 = phi ptr [ @.str.4, %4141 ], [ @.str, %4137 ]
  store i32 %4132, ptr %1955, align 4, !tbaa !5
  %4143 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4144 = load i32, ptr @test_count, align 4, !tbaa !5
  %4145 = load i32, ptr %240, align 4, !tbaa !5
  %4146 = call ptr @s2n_strerror(i32 noundef %4145, ptr noundef nonnull @.str.3) #11
  %4147 = load i32, ptr %240, align 4, !tbaa !5
  %4148 = call ptr @s2n_strerror_debug(i32 noundef %4147, ptr noundef nonnull @.str.3) #11
  %4149 = load i32, ptr %1955, align 4, !tbaa !5
  %4150 = call ptr @strerror(i32 noundef %4149) #11
  %4151 = load i32, ptr %1955, align 4, !tbaa !5
  %4152 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4143, ptr noundef nonnull %.str.4.sink2170, i32 noundef %4144, ptr noundef nonnull @.str.129, ptr noundef nonnull @.str.2, i32 noundef 684, ptr noundef %4146, ptr noundef %4148, ptr noundef %4150, i32 noundef %4151) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4153:                                             ; preds = %4126
  %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 = load ptr, ptr %5, align 8, !tbaa !9
  %4157 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef nonnull %4074, ptr noundef %4156) #11
  %4158 = icmp eq i32 %4157, -1
  br i1 %4158, label %4159, label %4181

4159:                                             ; preds = %4153
  %4160 = load i32, ptr %1955, align 4, !tbaa !5
  %4161 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4162 = call i32 @s2n_print_stacktrace(ptr noundef %4161) #11
  %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 = %4159
  %4166 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4167 = call i32 @fileno(ptr noundef %4166) #11
  %4168 = call i32 @isatty(i32 noundef %4167) #11
  %.not508 = icmp eq i32 %4168, 0
  br i1 %.not508, label %4169, label %4170

4169:                                             ; preds = %4165, %4159
  br label %4170

4170:                                             ; preds = %4165, %4169
  %.str.4.sink2179 = phi ptr [ @.str.4, %4169 ], [ @.str, %4165 ]
  store i32 %4160, ptr %1955, align 4, !tbaa !5
  %4171 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4172 = load i32, ptr @test_count, align 4, !tbaa !5
  %4173 = load i32, ptr %240, align 4, !tbaa !5
  %4174 = call ptr @s2n_strerror(i32 noundef %4173, ptr noundef nonnull @.str.3) #11
  %4175 = load i32, ptr %240, align 4, !tbaa !5
  %4176 = call ptr @s2n_strerror_debug(i32 noundef %4175, ptr noundef nonnull @.str.3) #11
  %4177 = load i32, ptr %1955, align 4, !tbaa !5
  %4178 = call ptr @strerror(i32 noundef %4177) #11
  %4179 = load i32, ptr %1955, align 4, !tbaa !5
  %4180 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4171, ptr noundef nonnull %.str.4.sink2179, i32 noundef %4172, ptr noundef nonnull @.str.130, ptr noundef nonnull @.str.2, i32 noundef 685, ptr noundef %4174, ptr noundef %4176, ptr noundef %4178, i32 noundef %4179) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4181:                                             ; preds = %4153
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %22) #11
  %4182 = call ptr @s2n_connection_new(i32 noundef 1) #11
  store ptr %4182, ptr %22, align 8, !tbaa !9
  %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 = icmp eq ptr %4182, null
  br i1 %4185, label %4186, label %4208

4186:                                             ; preds = %4181
  %4187 = load i32, ptr %1955, align 4, !tbaa !5
  %4188 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4189 = call i32 @s2n_print_stacktrace(ptr noundef %4188) #11
  %4190 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4191 = trunc nuw i8 %4190 to i1
  br i1 %4191, label %4192, label %4196

4192:                                             ; preds = %4186
  %4193 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4194 = call i32 @fileno(ptr noundef %4193) #11
  %4195 = call i32 @isatty(i32 noundef %4194) #11
  %.not507 = icmp eq i32 %4195, 0
  br i1 %.not507, label %4196, label %4197

4196:                                             ; preds = %4192, %4186
  br label %4197

4197:                                             ; preds = %4192, %4196
  %.str.4.sink2188 = phi ptr [ @.str.4, %4196 ], [ @.str, %4192 ]
  store i32 %4187, ptr %1955, align 4, !tbaa !5
  %4198 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4199 = load i32, ptr @test_count, align 4, !tbaa !5
  %4200 = load i32, ptr %240, align 4, !tbaa !5
  %4201 = call ptr @s2n_strerror(i32 noundef %4200, ptr noundef nonnull @.str.3) #11
  %4202 = load i32, ptr %240, align 4, !tbaa !5
  %4203 = call ptr @s2n_strerror_debug(i32 noundef %4202, ptr noundef nonnull @.str.3) #11
  %4204 = load i32, ptr %1955, align 4, !tbaa !5
  %4205 = call ptr @strerror(i32 noundef %4204) #11
  %4206 = load i32, ptr %1955, align 4, !tbaa !5
  %4207 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4198, ptr noundef nonnull %.str.4.sink2188, i32 noundef %4199, ptr noundef nonnull @.str.85, ptr noundef nonnull @.str.2, i32 noundef 688, ptr noundef %4201, ptr noundef %4203, ptr noundef %4205, i32 noundef %4206) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4208:                                             ; preds = %4181
  %4209 = add nsw i32 %4183, 2
  store i32 %4209, ptr @test_count, align 4, !tbaa !5
  %4210 = call i32 @s2n_connection_set_config(ptr noundef nonnull %4182, ptr noundef nonnull %4074) #11
  %4211 = icmp eq i32 %4210, -1
  br i1 %4211, label %4212, label %4234

4212:                                             ; preds = %4208
  %4213 = load i32, ptr %1955, align 4, !tbaa !5
  %4214 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4215 = call i32 @s2n_print_stacktrace(ptr noundef %4214) #11
  %4216 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4217 = trunc nuw i8 %4216 to i1
  br i1 %4217, label %4218, label %4222

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

4222:                                             ; preds = %4218, %4212
  br label %4223

4223:                                             ; preds = %4218, %4222
  %.str.4.sink2197 = phi ptr [ @.str.4, %4222 ], [ @.str, %4218 ]
  store i32 %4213, ptr %1955, align 4, !tbaa !5
  %4224 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4225 = load i32, ptr @test_count, align 4, !tbaa !5
  %4226 = load i32, ptr %240, align 4, !tbaa !5
  %4227 = call ptr @s2n_strerror(i32 noundef %4226, ptr noundef nonnull @.str.3) #11
  %4228 = load i32, ptr %240, align 4, !tbaa !5
  %4229 = call ptr @s2n_strerror_debug(i32 noundef %4228, ptr noundef nonnull @.str.3) #11
  %4230 = load i32, ptr %1955, align 4, !tbaa !5
  %4231 = call ptr @strerror(i32 noundef %4230) #11
  %4232 = load i32, ptr %1955, align 4, !tbaa !5
  %4233 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4224, ptr noundef nonnull %.str.4.sink2197, i32 noundef %4225, ptr noundef nonnull @.str.131, ptr noundef nonnull @.str.2, i32 noundef 689, ptr noundef %4227, ptr noundef %4229, ptr noundef %4231, i32 noundef %4232) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4234:                                             ; preds = %4208
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %23) #11
  %4235 = call ptr @s2n_connection_new(i32 noundef 0) #11
  store ptr %4235, ptr %23, align 8, !tbaa !9
  %4236 = load i32, ptr @test_count, align 4, !tbaa !5
  %4237 = add nsw i32 %4236, 1
  store i32 %4237, ptr @test_count, align 4, !tbaa !5
  %4238 = icmp eq ptr %4235, null
  br i1 %4238, label %4239, label %4261

4239:                                             ; preds = %4234
  %4240 = load i32, ptr %1955, align 4, !tbaa !5
  %4241 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4242 = call i32 @s2n_print_stacktrace(ptr noundef %4241) #11
  %4243 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4244 = trunc nuw i8 %4243 to i1
  br i1 %4244, label %4245, label %4249

4245:                                             ; preds = %4239
  %4246 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4247 = call i32 @fileno(ptr noundef %4246) #11
  %4248 = call i32 @isatty(i32 noundef %4247) #11
  %.not505 = icmp eq i32 %4248, 0
  br i1 %.not505, label %4249, label %4250

4249:                                             ; preds = %4245, %4239
  br label %4250

4250:                                             ; preds = %4245, %4249
  %.str.4.sink2206 = phi ptr [ @.str.4, %4249 ], [ @.str, %4245 ]
  store i32 %4240, ptr %1955, align 4, !tbaa !5
  %4251 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4252 = load i32, ptr @test_count, align 4, !tbaa !5
  %4253 = load i32, ptr %240, align 4, !tbaa !5
  %4254 = call ptr @s2n_strerror(i32 noundef %4253, ptr noundef nonnull @.str.3) #11
  %4255 = load i32, ptr %240, align 4, !tbaa !5
  %4256 = call ptr @s2n_strerror_debug(i32 noundef %4255, ptr noundef nonnull @.str.3) #11
  %4257 = load i32, ptr %1955, align 4, !tbaa !5
  %4258 = call ptr @strerror(i32 noundef %4257) #11
  %4259 = load i32, ptr %1955, align 4, !tbaa !5
  %4260 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4251, ptr noundef nonnull %.str.4.sink2206, i32 noundef %4252, ptr noundef nonnull @.str.87, ptr noundef nonnull @.str.2, i32 noundef 692, ptr noundef %4254, ptr noundef %4256, ptr noundef %4258, i32 noundef %4259) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4261:                                             ; preds = %4234
  %4262 = add nsw i32 %4236, 2
  store i32 %4262, ptr @test_count, align 4, !tbaa !5
  %4263 = call i32 @s2n_connection_set_blinding(ptr noundef nonnull %4235, i32 noundef 1) #11
  %4264 = icmp eq i32 %4263, -1
  br i1 %4264, label %4265, label %4287

4265:                                             ; preds = %4261
  %4266 = load i32, ptr %1955, align 4, !tbaa !5
  %4267 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4268 = call i32 @s2n_print_stacktrace(ptr noundef %4267) #11
  %4269 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4270 = trunc nuw i8 %4269 to i1
  br i1 %4270, label %4271, label %4275

4271:                                             ; preds = %4265
  %4272 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4273 = call i32 @fileno(ptr noundef %4272) #11
  %4274 = call i32 @isatty(i32 noundef %4273) #11
  %.not504 = icmp eq i32 %4274, 0
  br i1 %.not504, label %4275, label %4276

4275:                                             ; preds = %4271, %4265
  br label %4276

4276:                                             ; preds = %4271, %4275
  %.str.4.sink2215 = phi ptr [ @.str.4, %4275 ], [ @.str, %4271 ]
  store i32 %4266, ptr %1955, align 4, !tbaa !5
  %4277 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4278 = load i32, ptr @test_count, align 4, !tbaa !5
  %4279 = load i32, ptr %240, align 4, !tbaa !5
  %4280 = call ptr @s2n_strerror(i32 noundef %4279, ptr noundef nonnull @.str.3) #11
  %4281 = load i32, ptr %240, align 4, !tbaa !5
  %4282 = call ptr @s2n_strerror_debug(i32 noundef %4281, ptr noundef nonnull @.str.3) #11
  %4283 = load i32, ptr %1955, align 4, !tbaa !5
  %4284 = call ptr @strerror(i32 noundef %4283) #11
  %4285 = load i32, ptr %1955, align 4, !tbaa !5
  %4286 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4277, ptr noundef nonnull %.str.4.sink2215, i32 noundef %4278, ptr noundef nonnull @.str.132, ptr noundef nonnull @.str.2, i32 noundef 693, ptr noundef %4280, ptr noundef %4282, ptr noundef %4284, i32 noundef %4285) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4287:                                             ; preds = %4261
  %4288 = load i32, ptr @test_count, align 4, !tbaa !5
  %4289 = add nsw i32 %4288, 1
  store i32 %4289, ptr @test_count, align 4, !tbaa !5
  %4290 = call i32 @s2n_connection_set_config(ptr noundef nonnull %4235, ptr noundef nonnull %4074) #11
  %4291 = icmp eq i32 %4290, -1
  br i1 %4291, label %4292, label %4314

4292:                                             ; preds = %4287
  %4293 = load i32, ptr %1955, align 4, !tbaa !5
  %4294 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4295 = call i32 @s2n_print_stacktrace(ptr noundef %4294) #11
  %4296 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4297 = trunc nuw i8 %4296 to i1
  br i1 %4297, label %4298, label %4302

4298:                                             ; preds = %4292
  %4299 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4300 = call i32 @fileno(ptr noundef %4299) #11
  %4301 = call i32 @isatty(i32 noundef %4300) #11
  %.not503 = icmp eq i32 %4301, 0
  br i1 %.not503, label %4302, label %4303

4302:                                             ; preds = %4298, %4292
  br label %4303

4303:                                             ; preds = %4298, %4302
  %.str.4.sink2224 = phi ptr [ @.str.4, %4302 ], [ @.str, %4298 ]
  store i32 %4293, ptr %1955, align 4, !tbaa !5
  %4304 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4305 = load i32, ptr @test_count, align 4, !tbaa !5
  %4306 = load i32, ptr %240, align 4, !tbaa !5
  %4307 = call ptr @s2n_strerror(i32 noundef %4306, ptr noundef nonnull @.str.3) #11
  %4308 = load i32, ptr %240, align 4, !tbaa !5
  %4309 = call ptr @s2n_strerror_debug(i32 noundef %4308, ptr noundef nonnull @.str.3) #11
  %4310 = load i32, ptr %1955, align 4, !tbaa !5
  %4311 = call ptr @strerror(i32 noundef %4310) #11
  %4312 = load i32, ptr %1955, align 4, !tbaa !5
  %4313 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4304, ptr noundef nonnull %.str.4.sink2224, i32 noundef %4305, ptr noundef nonnull @.str.133, ptr noundef nonnull @.str.2, i32 noundef 694, ptr noundef %4307, ptr noundef %4309, ptr noundef %4311, i32 noundef %4312) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4314:                                             ; preds = %4287
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %24) #11
  store i64 0, ptr %24, align 8
  %4315 = load i32, ptr @test_count, align 4, !tbaa !5
  %4316 = add nsw i32 %4315, 1
  store i32 %4316, ptr @test_count, align 4, !tbaa !5
  %4317 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef nonnull %24) #11
  %4318 = icmp eq i32 %4317, -1
  br i1 %4318, label %4319, label %4341

4319:                                             ; preds = %4314
  %4320 = load i32, ptr %1955, align 4, !tbaa !5
  %4321 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4322 = call i32 @s2n_print_stacktrace(ptr noundef %4321) #11
  %4323 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4324 = trunc nuw i8 %4323 to i1
  br i1 %4324, label %4325, label %4329

4325:                                             ; preds = %4319
  %4326 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4327 = call i32 @fileno(ptr noundef %4326) #11
  %4328 = call i32 @isatty(i32 noundef %4327) #11
  %.not502 = icmp eq i32 %4328, 0
  br i1 %.not502, label %4329, label %4330

4329:                                             ; preds = %4325, %4319
  br label %4330

4330:                                             ; preds = %4325, %4329
  %.str.4.sink2233 = phi ptr [ @.str.4, %4329 ], [ @.str, %4325 ]
  store i32 %4320, ptr %1955, align 4, !tbaa !5
  %4331 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4332 = load i32, ptr @test_count, align 4, !tbaa !5
  %4333 = load i32, ptr %240, align 4, !tbaa !5
  %4334 = call ptr @s2n_strerror(i32 noundef %4333, ptr noundef nonnull @.str.3) #11
  %4335 = load i32, ptr %240, align 4, !tbaa !5
  %4336 = call ptr @s2n_strerror_debug(i32 noundef %4335, ptr noundef nonnull @.str.3) #11
  %4337 = load i32, ptr %1955, align 4, !tbaa !5
  %4338 = call ptr @strerror(i32 noundef %4337) #11
  %4339 = load i32, ptr %1955, align 4, !tbaa !5
  %4340 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4331, ptr noundef nonnull %.str.4.sink2233, i32 noundef %4332, ptr noundef nonnull @.str.89, ptr noundef nonnull @.str.2, i32 noundef 697, ptr noundef %4334, ptr noundef %4336, ptr noundef %4338, i32 noundef %4339) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4341:                                             ; preds = %4314
  %4342 = load i32, ptr @test_count, align 4, !tbaa !5
  %4343 = add nsw i32 %4342, 1
  store i32 %4343, ptr @test_count, align 4, !tbaa !5
  %4344 = call i32 @s2n_connection_set_io_pair(ptr noundef nonnull %4182, ptr noundef nonnull %24) #11
  %4345 = icmp eq i32 %4344, -1
  br i1 %4345, label %4346, label %4368

4346:                                             ; preds = %4341
  %4347 = load i32, ptr %1955, align 4, !tbaa !5
  %4348 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4349 = call i32 @s2n_print_stacktrace(ptr noundef %4348) #11
  %4350 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4351 = trunc nuw i8 %4350 to i1
  br i1 %4351, label %4352, label %4356

4352:                                             ; preds = %4346
  %4353 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4354 = call i32 @fileno(ptr noundef %4353) #11
  %4355 = call i32 @isatty(i32 noundef %4354) #11
  %.not501 = icmp eq i32 %4355, 0
  br i1 %.not501, label %4356, label %4357

4356:                                             ; preds = %4352, %4346
  br label %4357

4357:                                             ; preds = %4352, %4356
  %.str.4.sink2242 = phi ptr [ @.str.4, %4356 ], [ @.str, %4352 ]
  store i32 %4347, ptr %1955, align 4, !tbaa !5
  %4358 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4359 = load i32, ptr @test_count, align 4, !tbaa !5
  %4360 = load i32, ptr %240, align 4, !tbaa !5
  %4361 = call ptr @s2n_strerror(i32 noundef %4360, ptr noundef nonnull @.str.3) #11
  %4362 = load i32, ptr %240, align 4, !tbaa !5
  %4363 = call ptr @s2n_strerror_debug(i32 noundef %4362, ptr noundef nonnull @.str.3) #11
  %4364 = load i32, ptr %1955, align 4, !tbaa !5
  %4365 = call ptr @strerror(i32 noundef %4364) #11
  %4366 = load i32, ptr %1955, align 4, !tbaa !5
  %4367 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4358, ptr noundef nonnull %.str.4.sink2242, i32 noundef %4359, ptr noundef nonnull @.str.90, ptr noundef nonnull @.str.2, i32 noundef 698, ptr noundef %4361, ptr noundef %4363, ptr noundef %4365, i32 noundef %4366) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4368:                                             ; preds = %4341
  %4369 = load i32, ptr @test_count, align 4, !tbaa !5
  %4370 = add nsw i32 %4369, 1
  store i32 %4370, ptr @test_count, align 4, !tbaa !5
  %4371 = call i32 @s2n_connection_set_io_pair(ptr noundef nonnull %4235, ptr noundef nonnull %24) #11
  %4372 = icmp eq i32 %4371, -1
  br i1 %4372, label %4373, label %4395

4373:                                             ; preds = %4368
  %4374 = load i32, ptr %1955, align 4, !tbaa !5
  %4375 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4376 = call i32 @s2n_print_stacktrace(ptr noundef %4375) #11
  %4377 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4378 = trunc nuw i8 %4377 to i1
  br i1 %4378, label %4379, label %4383

4379:                                             ; preds = %4373
  %4380 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4381 = call i32 @fileno(ptr noundef %4380) #11
  %4382 = call i32 @isatty(i32 noundef %4381) #11
  %.not500 = icmp eq i32 %4382, 0
  br i1 %.not500, label %4383, label %4384

4383:                                             ; preds = %4379, %4373
  br label %4384

4384:                                             ; preds = %4379, %4383
  %.str.4.sink2251 = phi ptr [ @.str.4, %4383 ], [ @.str, %4379 ]
  store i32 %4374, ptr %1955, align 4, !tbaa !5
  %4385 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4386 = load i32, ptr @test_count, align 4, !tbaa !5
  %4387 = load i32, ptr %240, align 4, !tbaa !5
  %4388 = call ptr @s2n_strerror(i32 noundef %4387, ptr noundef nonnull @.str.3) #11
  %4389 = load i32, ptr %240, align 4, !tbaa !5
  %4390 = call ptr @s2n_strerror_debug(i32 noundef %4389, ptr noundef nonnull @.str.3) #11
  %4391 = load i32, ptr %1955, align 4, !tbaa !5
  %4392 = call ptr @strerror(i32 noundef %4391) #11
  %4393 = load i32, ptr %1955, align 4, !tbaa !5
  %4394 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4385, ptr noundef nonnull %.str.4.sink2251, i32 noundef %4386, ptr noundef nonnull @.str.91, ptr noundef nonnull @.str.2, i32 noundef 699, ptr noundef %4388, ptr noundef %4390, ptr noundef %4392, i32 noundef %4393) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4395:                                             ; preds = %4368
  %4396 = load i32, ptr @test_count, align 4, !tbaa !5
  %4397 = add nsw i32 %4396, 1
  store i32 %4397, ptr @test_count, align 4, !tbaa !5
  %4398 = call i32 @s2n_config_set_verify_after_sign(ptr noundef nonnull %4074, i32 noundef 1) #11
  %4399 = icmp eq i32 %4398, -1
  br i1 %4399, label %4400, label %4422

4400:                                             ; preds = %4395
  %4401 = load i32, ptr %1955, align 4, !tbaa !5
  %4402 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4403 = call i32 @s2n_print_stacktrace(ptr noundef %4402) #11
  %4404 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4405 = trunc nuw i8 %4404 to i1
  br i1 %4405, label %4406, label %4410

4406:                                             ; preds = %4400
  %4407 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4408 = call i32 @fileno(ptr noundef %4407) #11
  %4409 = call i32 @isatty(i32 noundef %4408) #11
  %.not499 = icmp eq i32 %4409, 0
  br i1 %.not499, label %4410, label %4411

4410:                                             ; preds = %4406, %4400
  br label %4411

4411:                                             ; preds = %4406, %4410
  %.str.4.sink2260 = phi ptr [ @.str.4, %4410 ], [ @.str, %4406 ]
  store i32 %4401, ptr %1955, align 4, !tbaa !5
  %4412 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4413 = load i32, ptr @test_count, align 4, !tbaa !5
  %4414 = load i32, ptr %240, align 4, !tbaa !5
  %4415 = call ptr @s2n_strerror(i32 noundef %4414, ptr noundef nonnull @.str.3) #11
  %4416 = load i32, ptr %240, align 4, !tbaa !5
  %4417 = call ptr @s2n_strerror_debug(i32 noundef %4416, ptr noundef nonnull @.str.3) #11
  %4418 = load i32, ptr %1955, align 4, !tbaa !5
  %4419 = call ptr @strerror(i32 noundef %4418) #11
  %4420 = load i32, ptr %1955, align 4, !tbaa !5
  %4421 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4412, ptr noundef nonnull %.str.4.sink2260, i32 noundef %4413, ptr noundef nonnull @.str.134, ptr noundef nonnull @.str.2, i32 noundef 704, ptr noundef %4415, ptr noundef %4417, ptr noundef %4419, i32 noundef %4420) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4422:                                             ; preds = %4395
  %4423 = load i32, ptr @test_count, align 4, !tbaa !5
  %4424 = add nsw i32 %4423, 1
  store i32 %4424, ptr @test_count, align 4, !tbaa !5
  %4425 = call i32 @s2n_negotiate_test_server_and_client_until_message(ptr noundef nonnull %4235, ptr noundef nonnull %4182, i32 noundef 2) #11
  %4426 = call zeroext i1 @s2n_result_is_ok(i32 %4425)
  br i1 %4426, label %4449, label %4427

4427:                                             ; preds = %4422
  %4428 = load i32, ptr %1955, align 4, !tbaa !5
  %4429 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4430 = call i32 @s2n_print_stacktrace(ptr noundef %4429) #11
  %4431 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4432 = trunc nuw i8 %4431 to i1
  br i1 %4432, label %4433, label %4437

4433:                                             ; preds = %4427
  %4434 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4435 = call i32 @fileno(ptr noundef %4434) #11
  %4436 = call i32 @isatty(i32 noundef %4435) #11
  %.not487 = icmp eq i32 %4436, 0
  br i1 %.not487, label %4437, label %4438

4437:                                             ; preds = %4433, %4427
  br label %4438

4438:                                             ; preds = %4433, %4437
  %.str.4.sink2269 = phi ptr [ @.str.4, %4437 ], [ @.str, %4433 ]
  store i32 %4428, ptr %1955, align 4, !tbaa !5
  %4439 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4440 = load i32, ptr @test_count, align 4, !tbaa !5
  %4441 = load i32, ptr %240, align 4, !tbaa !5
  %4442 = call ptr @s2n_strerror(i32 noundef %4441, ptr noundef nonnull @.str.3) #11
  %4443 = load i32, ptr %240, align 4, !tbaa !5
  %4444 = call ptr @s2n_strerror_debug(i32 noundef %4443, ptr noundef nonnull @.str.3) #11
  %4445 = load i32, ptr %1955, align 4, !tbaa !5
  %4446 = call ptr @strerror(i32 noundef %4445) #11
  %4447 = load i32, ptr %1955, align 4, !tbaa !5
  %4448 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4439, ptr noundef nonnull %.str.4.sink2269, i32 noundef %4440, ptr noundef nonnull @.str.135, ptr noundef nonnull @.str.2, i32 noundef 705, ptr noundef %4442, ptr noundef %4444, ptr noundef %4446, i32 noundef %4447) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4449:                                             ; preds = %4422
  %4450 = load i32, ptr @test_count, align 4, !tbaa !5
  %4451 = add nsw i32 %4450, 1
  store i32 %4451, ptr @test_count, align 4, !tbaa !5
  %4452 = getelementptr inbounds i8, ptr %4235, i64 1544
  %4453 = load ptr, ptr %4452, align 8, !tbaa !63
  %4454 = icmp eq ptr %4453, null
  br i1 %4454, label %4455, label %4477

4455:                                             ; preds = %4449
  %4456 = load i32, ptr %1955, align 4, !tbaa !5
  %4457 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4458 = call i32 @s2n_print_stacktrace(ptr noundef %4457) #11
  %4459 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4460 = trunc nuw i8 %4459 to i1
  br i1 %4460, label %4461, label %4465

4461:                                             ; preds = %4455
  %4462 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4463 = call i32 @fileno(ptr noundef %4462) #11
  %4464 = call i32 @isatty(i32 noundef %4463) #11
  %.not498 = icmp eq i32 %4464, 0
  br i1 %.not498, label %4465, label %4466

4465:                                             ; preds = %4461, %4455
  br label %4466

4466:                                             ; preds = %4461, %4465
  %.str.4.sink2278 = phi ptr [ @.str.4, %4465 ], [ @.str, %4461 ]
  store i32 %4456, ptr %1955, align 4, !tbaa !5
  %4467 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4468 = load i32, ptr @test_count, align 4, !tbaa !5
  %4469 = load i32, ptr %240, align 4, !tbaa !5
  %4470 = call ptr @s2n_strerror(i32 noundef %4469, ptr noundef nonnull @.str.3) #11
  %4471 = load i32, ptr %240, align 4, !tbaa !5
  %4472 = call ptr @s2n_strerror_debug(i32 noundef %4471, ptr noundef nonnull @.str.3) #11
  %4473 = load i32, ptr %1955, align 4, !tbaa !5
  %4474 = call ptr @strerror(i32 noundef %4473) #11
  %4475 = load i32, ptr %1955, align 4, !tbaa !5
  %4476 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4467, ptr noundef nonnull %.str.4.sink2278, i32 noundef %4468, ptr noundef nonnull @.str.136, ptr noundef nonnull @.str.2, i32 noundef 708, ptr noundef %4470, ptr noundef %4472, ptr noundef %4474, i32 noundef %4475) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4477:                                             ; preds = %4449
  %4478 = add nsw i32 %4450, 2
  store i32 %4478, ptr @test_count, align 4, !tbaa !5
  %4479 = getelementptr inbounds i8, ptr %4453, i64 8
  %4480 = load ptr, ptr %4479, align 8, !tbaa !64
  %4481 = icmp eq ptr %4480, null
  br i1 %4481, label %4482, label %4504

4482:                                             ; preds = %4477
  %4483 = load i32, ptr %1955, align 4, !tbaa !5
  %4484 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4485 = call i32 @s2n_print_stacktrace(ptr noundef %4484) #11
  %4486 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4487 = trunc nuw i8 %4486 to i1
  br i1 %4487, label %4488, label %4492

4488:                                             ; preds = %4482
  %4489 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4490 = call i32 @fileno(ptr noundef %4489) #11
  %4491 = call i32 @isatty(i32 noundef %4490) #11
  %.not497 = icmp eq i32 %4491, 0
  br i1 %.not497, label %4492, label %4493

4492:                                             ; preds = %4488, %4482
  br label %4493

4493:                                             ; preds = %4488, %4492
  %.str.4.sink2287 = phi ptr [ @.str.4, %4492 ], [ @.str, %4488 ]
  store i32 %4483, ptr %1955, align 4, !tbaa !5
  %4494 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4495 = load i32, ptr @test_count, align 4, !tbaa !5
  %4496 = load i32, ptr %240, align 4, !tbaa !5
  %4497 = call ptr @s2n_strerror(i32 noundef %4496, ptr noundef nonnull @.str.3) #11
  %4498 = load i32, ptr %240, align 4, !tbaa !5
  %4499 = call ptr @s2n_strerror_debug(i32 noundef %4498, ptr noundef nonnull @.str.3) #11
  %4500 = load i32, ptr %1955, align 4, !tbaa !5
  %4501 = call ptr @strerror(i32 noundef %4500) #11
  %4502 = load i32, ptr %1955, align 4, !tbaa !5
  %4503 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4494, ptr noundef nonnull %.str.4.sink2287, i32 noundef %4495, ptr noundef nonnull @.str.137, ptr noundef nonnull @.str.2, i32 noundef 709, ptr noundef %4497, ptr noundef %4499, ptr noundef %4501, i32 noundef %4502) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4504:                                             ; preds = %4477
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %25) #11
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(48) %25, ptr noundef nonnull align 8 dereferenceable(48) %4480, i64 48, i1 false), !tbaa.struct !66
  %4505 = getelementptr inbounds i8, ptr %25, i64 16
  store ptr @s2n_test_bad_sign, ptr %4505, align 8, !tbaa !67
  store ptr %25, ptr %4479, align 8, !tbaa !64
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %26) #11
  store i32 0, ptr %26, align 4, !tbaa !5
  %4506 = add nsw i32 %4450, 3
  store i32 %4506, ptr @test_count, align 4, !tbaa !5
  %4507 = call i32 @s2n_config_set_verify_after_sign(ptr noundef nonnull %4074, i32 noundef 1) #11
  %4508 = icmp eq i32 %4507, -1
  br i1 %4508, label %4509, label %4531

4509:                                             ; preds = %4504
  %4510 = load i32, ptr %1955, align 4, !tbaa !5
  %4511 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4512 = call i32 @s2n_print_stacktrace(ptr noundef %4511) #11
  %4513 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4514 = trunc nuw i8 %4513 to i1
  br i1 %4514, label %4515, label %4519

4515:                                             ; preds = %4509
  %4516 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4517 = call i32 @fileno(ptr noundef %4516) #11
  %4518 = call i32 @isatty(i32 noundef %4517) #11
  %.not496 = icmp eq i32 %4518, 0
  br i1 %.not496, label %4519, label %4520

4519:                                             ; preds = %4515, %4509
  br label %4520

4520:                                             ; preds = %4515, %4519
  %.str.4.sink2296 = phi ptr [ @.str.4, %4519 ], [ @.str, %4515 ]
  store i32 %4510, ptr %1955, align 4, !tbaa !5
  %4521 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4522 = load i32, ptr @test_count, align 4, !tbaa !5
  %4523 = load i32, ptr %240, align 4, !tbaa !5
  %4524 = call ptr @s2n_strerror(i32 noundef %4523, ptr noundef nonnull @.str.3) #11
  %4525 = load i32, ptr %240, align 4, !tbaa !5
  %4526 = call ptr @s2n_strerror_debug(i32 noundef %4525, ptr noundef nonnull @.str.3) #11
  %4527 = load i32, ptr %1955, align 4, !tbaa !5
  %4528 = call ptr @strerror(i32 noundef %4527) #11
  %4529 = load i32, ptr %1955, align 4, !tbaa !5
  %4530 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4521, ptr noundef nonnull %.str.4.sink2296, i32 noundef %4522, ptr noundef nonnull @.str.134, ptr noundef nonnull @.str.2, i32 noundef 717, ptr noundef %4524, ptr noundef %4526, ptr noundef %4528, i32 noundef %4529) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4531:                                             ; preds = %4504
  %4532 = load i32, ptr @test_count, align 4, !tbaa !5
  %4533 = add nsw i32 %4532, 1
  store i32 %4533, ptr @test_count, align 4, !tbaa !5
  %4534 = call i32 @s2n_negotiate(ptr noundef nonnull %4235, ptr noundef nonnull %26) #11
  %4535 = icmp eq i32 %4534, -1
  br i1 %4535, label %4558, label %4536

4536:                                             ; preds = %4531
  %4537 = load i32, ptr %1955, align 4, !tbaa !5
  %4538 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4539 = call i32 @s2n_print_stacktrace(ptr noundef %4538) #11
  %4540 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4541 = trunc nuw i8 %4540 to i1
  br i1 %4541, label %4542, label %4546

4542:                                             ; preds = %4536
  %4543 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4544 = call i32 @fileno(ptr noundef %4543) #11
  %4545 = call i32 @isatty(i32 noundef %4544) #11
  %.not488 = icmp eq i32 %4545, 0
  br i1 %.not488, label %4546, label %4547

4546:                                             ; preds = %4542, %4536
  br label %4547

4547:                                             ; preds = %4542, %4546
  %.str.4.sink2305 = phi ptr [ @.str.4, %4546 ], [ @.str, %4542 ]
  store i32 %4537, ptr %1955, align 4, !tbaa !5
  %4548 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4549 = load i32, ptr @test_count, align 4, !tbaa !5
  %4550 = load i32, ptr %240, align 4, !tbaa !5
  %4551 = call ptr @s2n_strerror(i32 noundef %4550, ptr noundef nonnull @.str.3) #11
  %4552 = load i32, ptr %240, align 4, !tbaa !5
  %4553 = call ptr @s2n_strerror_debug(i32 noundef %4552, ptr noundef nonnull @.str.3) #11
  %4554 = load i32, ptr %1955, align 4, !tbaa !5
  %4555 = call ptr @strerror(i32 noundef %4554) #11
  %4556 = load i32, ptr %1955, align 4, !tbaa !5
  %4557 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4548, ptr noundef nonnull %.str.4.sink2305, i32 noundef %4549, ptr noundef nonnull @.str.138, ptr noundef nonnull @.str.2, i32 noundef 718, ptr noundef %4551, ptr noundef %4553, ptr noundef %4555, i32 noundef %4556) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4558:                                             ; preds = %4531
  %4559 = load i32, ptr @test_count, align 4, !tbaa !5
  %4560 = add nsw i32 %4559, 1
  store i32 %4560, ptr @test_count, align 4, !tbaa !5
  %4561 = load i32, ptr %240, align 4, !tbaa !5
  %4562 = icmp eq i32 %4561, 335544353
  br i1 %4562, label %4585, label %4563

4563:                                             ; preds = %4558
  %4564 = load i32, ptr %1955, align 4, !tbaa !5
  %4565 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4566 = call i32 @s2n_print_stacktrace(ptr noundef %4565) #11
  %4567 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4568 = trunc nuw i8 %4567 to i1
  br i1 %4568, label %4569, label %4573

4569:                                             ; preds = %4563
  %4570 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4571 = call i32 @fileno(ptr noundef %4570) #11
  %4572 = call i32 @isatty(i32 noundef %4571) #11
  %.not489 = icmp eq i32 %4572, 0
  br i1 %.not489, label %4573, label %4574

4573:                                             ; preds = %4569, %4563
  br label %4574

4574:                                             ; preds = %4569, %4573
  %.str.4.sink2314 = phi ptr [ @.str.4, %4573 ], [ @.str, %4569 ]
  store i32 %4564, ptr %1955, align 4, !tbaa !5
  %4575 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4576 = load i32, ptr @test_count, align 4, !tbaa !5
  %4577 = load i32, ptr %240, align 4, !tbaa !5
  %4578 = call ptr @s2n_strerror(i32 noundef %4577, ptr noundef nonnull @.str.3) #11
  %4579 = load i32, ptr %240, align 4, !tbaa !5
  %4580 = call ptr @s2n_strerror_debug(i32 noundef %4579, ptr noundef nonnull @.str.3) #11
  %4581 = load i32, ptr %1955, align 4, !tbaa !5
  %4582 = call ptr @strerror(i32 noundef %4581) #11
  %4583 = load i32, ptr %1955, align 4, !tbaa !5
  %4584 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4575, ptr noundef nonnull %.str.4.sink2314, i32 noundef %4576, ptr noundef nonnull @.str.139, ptr noundef nonnull @.str.2, i32 noundef 718, ptr noundef %4578, ptr noundef %4580, ptr noundef %4582, i32 noundef %4583) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4585:                                             ; preds = %4558
  %4586 = add nsw i32 %4559, 2
  store i32 %4586, ptr @test_count, align 4, !tbaa !5
  %4587 = call ptr @s2n_strerror_debug(i32 noundef 335544353, ptr noundef nonnull @.str.3) #11
  %4588 = icmp eq ptr %4587, null
  br i1 %4588, label %4589, label %4611

4589:                                             ; preds = %4585
  %4590 = load i32, ptr %1955, align 4, !tbaa !5
  %4591 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4592 = call i32 @s2n_print_stacktrace(ptr noundef %4591) #11
  %4593 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4594 = trunc nuw i8 %4593 to i1
  br i1 %4594, label %4595, label %4599

4595:                                             ; preds = %4589
  %4596 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4597 = call i32 @fileno(ptr noundef %4596) #11
  %4598 = call i32 @isatty(i32 noundef %4597) #11
  %.not495 = icmp eq i32 %4598, 0
  br i1 %.not495, label %4599, label %4600

4599:                                             ; preds = %4595, %4589
  br label %4600

4600:                                             ; preds = %4595, %4599
  %.str.4.sink2323 = phi ptr [ @.str.4, %4599 ], [ @.str, %4595 ]
  store i32 %4590, ptr %1955, align 4, !tbaa !5
  %4601 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4602 = load i32, ptr @test_count, align 4, !tbaa !5
  %4603 = load i32, ptr %240, align 4, !tbaa !5
  %4604 = call ptr @s2n_strerror(i32 noundef %4603, ptr noundef nonnull @.str.3) #11
  %4605 = load i32, ptr %240, align 4, !tbaa !5
  %4606 = call ptr @s2n_strerror_debug(i32 noundef %4605, ptr noundef nonnull @.str.3) #11
  %4607 = load i32, ptr %1955, align 4, !tbaa !5
  %4608 = call ptr @strerror(i32 noundef %4607) #11
  %4609 = load i32, ptr %1955, align 4, !tbaa !5
  %4610 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4601, ptr noundef nonnull %.str.4.sink2323, i32 noundef %4602, ptr noundef nonnull @.str.56, ptr noundef nonnull @.str.2, i32 noundef 718, ptr noundef %4604, ptr noundef %4606, ptr noundef %4608, i32 noundef %4609) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4611:                                             ; preds = %4585
  store i32 0, ptr %240, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %1955, align 4, !tbaa !5
  %4612 = load ptr, ptr %4452, align 8, !tbaa !63
  %4613 = getelementptr inbounds i8, ptr %4612, i64 8
  store ptr %4480, ptr %4613, align 8, !tbaa !64
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %26) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %25) #11
  %4614 = call i32 @s2n_io_pair_close(ptr noundef nonnull %24) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #11
  %4615 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %23) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #11
  %4616 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %22) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #11
  %4617 = call i32 @s2n_config_ptr_free(ptr noundef nonnull %21) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #11
  %4618 = call i32 @s2n_cleanup() #11
  %4619 = icmp eq i32 %4618, -1
  br i1 %4619, label %4620, label %4642

4620:                                             ; preds = %4611
  %4621 = load i32, ptr %1955, align 4, !tbaa !5
  %4622 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4623 = call i32 @s2n_print_stacktrace(ptr noundef %4622) #11
  %4624 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4625 = trunc nuw i8 %4624 to i1
  br i1 %4625, label %4626, label %4630

4626:                                             ; preds = %4620
  %4627 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4628 = call i32 @fileno(ptr noundef %4627) #11
  %4629 = call i32 @isatty(i32 noundef %4628) #11
  %.not494 = icmp eq i32 %4629, 0
  br i1 %.not494, label %4630, label %4631

4630:                                             ; preds = %4626, %4620
  br label %4631

4631:                                             ; preds = %4626, %4630
  %.str.4.sink2332 = phi ptr [ @.str.4, %4630 ], [ @.str, %4626 ]
  store i32 %4621, ptr %1955, align 4, !tbaa !5
  %4632 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4633 = load i32, ptr @test_count, align 4, !tbaa !5
  %4634 = load i32, ptr %240, align 4, !tbaa !5
  %4635 = call ptr @s2n_strerror(i32 noundef %4634, ptr noundef nonnull @.str.3) #11
  %4636 = load i32, ptr %240, align 4, !tbaa !5
  %4637 = call ptr @s2n_strerror_debug(i32 noundef %4636, ptr noundef nonnull @.str.3) #11
  %4638 = load i32, ptr %1955, align 4, !tbaa !5
  %4639 = call ptr @strerror(i32 noundef %4638) #11
  %4640 = load i32, ptr %1955, align 4, !tbaa !5
  %4641 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4632, ptr noundef nonnull %.str.4.sink2332, i32 noundef %4633, ptr noundef nonnull @.str.140, ptr noundef nonnull @.str.2, i32 noundef 724, ptr noundef %4635, ptr noundef %4637, ptr noundef %4639, i32 noundef %4640) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4642:                                             ; preds = %4611
  %4643 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #11
  %4644 = icmp eq i32 %4643, -1
  br i1 %4644, label %4645, label %4667

4645:                                             ; preds = %4642
  %4646 = load i32, ptr %1955, align 4, !tbaa !5
  %4647 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4648 = call i32 @s2n_print_stacktrace(ptr noundef %4647) #11
  %4649 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4650 = trunc nuw i8 %4649 to i1
  br i1 %4650, label %4651, label %4655

4651:                                             ; preds = %4645
  %4652 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4653 = call i32 @fileno(ptr noundef %4652) #11
  %4654 = call i32 @isatty(i32 noundef %4653) #11
  %.not493 = icmp eq i32 %4654, 0
  br i1 %.not493, label %4655, label %4656

4655:                                             ; preds = %4651, %4645
  br label %4656

4656:                                             ; preds = %4651, %4655
  %.str.4.sink2341 = phi ptr [ @.str.4, %4655 ], [ @.str, %4651 ]
  store i32 %4646, ptr %1955, align 4, !tbaa !5
  %4657 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4658 = load i32, ptr @test_count, align 4, !tbaa !5
  %4659 = load i32, ptr %240, align 4, !tbaa !5
  %4660 = call ptr @s2n_strerror(i32 noundef %4659, ptr noundef nonnull @.str.3) #11
  %4661 = load i32, ptr %240, align 4, !tbaa !5
  %4662 = call ptr @s2n_strerror_debug(i32 noundef %4661, ptr noundef nonnull @.str.3) #11
  %4663 = load i32, ptr %1955, align 4, !tbaa !5
  %4664 = call ptr @strerror(i32 noundef %4663) #11
  %4665 = load i32, ptr %1955, align 4, !tbaa !5
  %4666 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4657, ptr noundef nonnull %.str.4.sink2341, i32 noundef %4658, ptr noundef nonnull @.str.141, ptr noundef nonnull @.str.2, i32 noundef 724, ptr noundef %4660, ptr noundef %4662, ptr noundef %4664, i32 noundef %4665) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4667:                                             ; preds = %4642
  %4668 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4669 = trunc nuw i8 %4668 to i1
  br i1 %4669, label %4670, label %4681

4670:                                             ; preds = %4667
  %4671 = load ptr, ptr @stdout, align 8, !tbaa !9
  %4672 = call i32 @fileno(ptr noundef %4671) #11
  %4673 = call i32 @isatty(i32 noundef %4672) #11
  %.not490 = icmp eq i32 %4673, 0
  br i1 %.not490, label %4681, label %4674

4674:                                             ; preds = %4670
  %4675 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not492 = icmp eq i32 %4675, 0
  %4676 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not492, label %4679, label %4677

4677:                                             ; preds = %4674
  %4678 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4676, ptr noundef nonnull @.str.142, i32 noundef %4675) #11
  br label %4688

4679:                                             ; preds = %4674
  %4680 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4676, ptr noundef nonnull @.str.143) #11
  br label %4688

4681:                                             ; preds = %4670, %4667
  %4682 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not491 = icmp eq i32 %4682, 0
  %4683 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not491, label %4686, label %4684

4684:                                             ; preds = %4681
  %4685 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4683, ptr noundef nonnull @.str.144, i32 noundef %4682) #11
  br label %4688

4686:                                             ; preds = %4681
  %4687 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4683, ptr noundef nonnull @.str.145) #11
  br label %4688

4688:                                             ; preds = %4684, %4686, %4677, %4679
  %4689 = call i32 @s2n_hash_free(ptr noundef nonnull %18) #11
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %18) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %6) #11
  %4690 = call i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef nonnull %5) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #11
  %4691 = call i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef nonnull %4) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4) #11
  call void @llvm.lifetime.end.p0(i64 12000, ptr nonnull %3) #11
  ret i32 0
}

; Function Attrs: nofree nounwind
declare noundef i32 @fflush(ptr nocapture noundef) local_unnamed_addr #5

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) local_unnamed_addr #3

declare i32 @s2n_enable_atexit() local_unnamed_addr #3

declare i32 @s2n_init() local_unnamed_addr #3

declare i32 @s2n_disable_tls13_in_test(...) local_unnamed_addr #3

declare i32 @s2n_read_test_pem(ptr noundef, ptr noundef, i64 noundef) local_unnamed_addr #3

declare i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef) local_unnamed_addr #3

declare i32 @s2n_test_cert_chain_and_key_new(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #3

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

declare ptr @s2n_config_new() local_unnamed_addr #3

declare i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef, ptr noundef) local_unnamed_addr #3

declare i32 @s2n_config_add_dhparams(ptr noundef, ptr noundef) local_unnamed_addr #3

declare i32 @s2n_config_set_async_pkey_callback(ptr noundef, ptr noundef) local_unnamed_addr #3

declare i32 @s2n_config_set_unsafe_for_testing(ptr noundef) local_unnamed_addr #3

declare i32 @s2n_config_set_cipher_preferences(ptr noundef, ptr noundef) local_unnamed_addr #3

declare i32 @s2n_config_set_verification_ca_location(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #3

declare ptr @s2n_connection_new(i32 noundef) local_unnamed_addr #3

declare i32 @s2n_connection_set_config(ptr noundef, ptr noundef) local_unnamed_addr #3

declare i32 @s2n_io_pair_init_non_blocking(ptr noundef) local_unnamed_addr #3

declare i32 @s2n_connection_set_io_pair(ptr noundef, ptr noundef) local_unnamed_addr #3

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

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

declare i32 @s2n_connection_free(ptr noundef) local_unnamed_addr #3

declare i32 @s2n_io_pair_close(ptr noundef) local_unnamed_addr #3

declare i32 @s2n_config_free(ptr noundef) local_unnamed_addr #3

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

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

declare i32 @s2n_config_set_async_pkey_validation_mode(ptr noundef, i32 noundef) local_unnamed_addr #3

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

declare i32 @s2n_config_ptr_free(ptr noundef) local_unnamed_addr #3

declare i32 @s2n_connection_ptr_free(ptr noundef) local_unnamed_addr #3

declare i32 @s2n_config_set_verify_after_sign(ptr noundef, i32 noundef) local_unnamed_addr #3

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

declare i32 @s2n_async_pkey_sign(ptr noundef, i32 noundef, ptr noundef, ptr noundef) local_unnamed_addr #3

declare i32 @s2n_blob_init(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #3

declare i32 @s2n_async_pkey_decrypt(ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #3

declare i32 @s2n_reset_tls13_in_test(...) local_unnamed_addr #3

declare i32 @s2n_connection_set_blinding(ptr noundef, i32 noundef) local_unnamed_addr #3

declare i32 @s2n_negotiate_test_server_and_client_until_message(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #3

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

declare i32 @s2n_negotiate(ptr noundef, ptr noundef) local_unnamed_addr #3

declare i32 @s2n_cleanup() local_unnamed_addr #3

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 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 #3 = { "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 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { 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 #6 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #7 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #9 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #10 = { inlinehint nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #11 = { nounwind }
attributes #12 = { nounwind willreturn memory(none) }
attributes #13 = { cold nounwind }
attributes #14 = { noreturn nounwind }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"_Bool", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = !{!16, !17, i64 0}
!16 = !{!"s2n_cipher_preferences", !17, i64 0, !10, i64 8, !12, i64 16}
!17 = !{!"short", !7, i64 0}
!18 = !{!16, !10, i64 8}
!19 = !{!16, !12, i64 16}
!20 = !{!21, !7, i64 0}
!21 = !{!"s2n_security_policy", !7, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40, !10, i64 48, !12, i64 56, !7, i64 57}
!22 = !{!21, !10, i64 8}
!23 = !{!21, !10, i64 16}
!24 = !{!21, !10, i64 24}
!25 = !{!21, !10, i64 32}
!26 = !{!21, !10, i64 40}
!27 = !{!21, !10, i64 48}
!28 = !{!21, !12, i64 56}
!29 = !{!30, !10, i64 96}
!30 = !{!"s2n_config", !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !10, i64 8, !10, i64 16, !31, i64 24, !32, i64 56, !10, i64 80, !10, i64 88, !10, i64 96, !10, i64 104, !10, i64 112, !10, i64 120, !6, i64 128, !6, i64 132, !10, i64 136, !33, i64 144, !10, i64 152, !33, i64 160, !33, i64 168, !10, i64 176, !10, i64 184, !10, i64 192, !10, i64 200, !10, i64 208, !10, i64 216, !6, i64 224, !7, i64 228, !6, i64 232, !6, i64 236, !10, i64 240, !10, i64 248, !10, i64 256, !10, i64 264, !10, i64 272, !10, i64 280, !10, i64 288, !7, i64 296, !7, i64 297, !34, i64 304, !17, i64 320, !10, i64 328, !10, i64 336, !10, i64 344, !10, i64 352, !10, i64 360, !10, i64 368, !10, i64 376, !10, i64 384, !6, i64 392, !6, i64 396, !6, i64 400, !10, i64 408, !6, i64 416, !6, i64 420, !10, i64 424, !10, i64 432, !6, i64 440, !32, i64 448}
!31 = !{!"certs_by_type", !7, i64 0}
!32 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!33 = !{!"long", !7, i64 0}
!34 = !{!"s2n_x509_trust_store", !10, i64 0, !6, i64 8}
!35 = distinct !{!35, !36}
!36 = !{!"llvm.loop.mustprogress"}
!37 = !{!7, !7, i64 0}
!38 = !{!39, !10, i64 8}
!39 = !{!"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, !40, i64 160, !33, i64 168, !33, 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, !41, i64 240, !10, i64 632, !10, i64 640, !42, i64 648, !47, i64 1144, !50, i64 1688, !10, i64 1752, !7, i64 1760, !6, i64 1764, !7, i64 1768, !52, i64 1776, !52, i64 1816, !52, i64 1856, !52, i64 1896, !6, i64 1936, !33, i64 1944, !7, i64 1952, !52, i64 1960, !7, i64 2000, !7, i64 2001, !7, i64 2002, !12, i64 2003, !53, i64 2004, !53, i64 2008, !54, i64 2016, !17, i64 2208, !6, i64 2212, !17, i64 2216, !33, i64 2224, !7, i64 2232, !33, i64 2240, !33, i64 2248, !33, i64 2256, !53, i64 2264, !53, i64 2268, !7, i64 2272, !7, i64 2528, !6, i64 2784, !32, i64 2792, !6, i64 2816, !32, i64 2824, !32, i64 2848, !32, i64 2872, !56, i64 2896, !58, i64 3704, !10, i64 3760, !10, i64 3768, !7, i64 3776, !6, i64 3780, !32, i64 3784, !6, i64 3808, !60, i64 3816, !7, i64 3848, !52, i64 3992, !32, i64 4032, !32, i64 4056, !12, i64 4080, !12, i64 4081, !12, i64 4082, !17, i64 4084, !17, i64 4086, !6, i64 4088, !6, i64 4092, !32, i64 4096, !6, i64 4120, !61, i64 4128, !53, i64 4176, !7, i64 4180, !7, i64 4181}
!40 = !{!"s2n_timer", !33, i64 0}
!41 = !{!"s2n_secrets", !7, i64 0, !6, i64 388}
!42 = !{!"s2n_kex_parameters", !43, i64 0, !44, i64 8, !7, i64 24, !44, i64 56, !45, i64 72, !45, i64 184, !7, i64 296, !46, i64 360, !32, i64 448, !32, i64 472}
!43 = !{!"s2n_dh_params", !10, i64 0}
!44 = !{!"s2n_ecc_evp_params", !10, i64 0, !10, i64 8}
!45 = !{!"s2n_kem_group_params", !10, i64 0, !46, i64 8, !44, i64 96}
!46 = !{!"s2n_kem_params", !10, i64 0, !32, i64 8, !32, i64 32, !32, i64 56, !12, i64 80}
!47 = !{!"s2n_handshake_parameters", !48, i64 0, !48, i64 48, !32, i64 96, !6, i64 120, !49, 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}
!48 = !{!"s2n_pkey", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40}
!49 = !{!"s2n_sig_scheme_list", !7, i64 0, !7, i64 256}
!50 = !{!"s2n_psk_parameters", !6, i64 0, !51, i64 8, !17, i64 40, !17, i64 42, !10, i64 48, !6, i64 56}
!51 = !{!"s2n_array", !32, i64 0, !6, i64 24, !6, i64 28}
!52 = !{!"s2n_stuffer", !32, i64 0, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 36, !6, i64 36}
!53 = !{!"", !6, i64 0}
!54 = !{!"s2n_handshake", !52, 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, !55, i64 176, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 188}
!55 = !{!"s2n_offered_early_data", !10, i64 0}
!56 = !{!"s2n_client_hello", !32, i64 0, !57, i64 24, !32, i64 728, !32, i64 752, !32, 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}
!57 = !{!"", !7, i64 0, !32, i64 672, !17, i64 696}
!58 = !{!"s2n_x509_validator", !10, i64 0, !10, i64 8, !7, i64 16, !7, i64 17, !17, i64 18, !10, i64 24, !6, i64 32, !10, i64 40, !59, i64 48, !12, i64 52}
!59 = !{!"s2n_cert_validation_info", !6, i64 0, !6, i64 0}
!60 = !{!"s2n_ticket_fields", !32, i64 0, !6, i64 24}
!61 = !{!"s2n_post_handshake", !52, i64 0, !7, i64 40}
!62 = !{!30, !10, i64 328}
!63 = !{!39, !10, i64 1544}
!64 = !{!65, !10, i64 8}
!65 = !{!"s2n_cert_chain_and_key", !10, i64 0, !10, i64 8, !32, i64 16, !32, i64 40, !10, i64 64, !10, i64 72, !10, i64 80}
!66 = !{i64 0, i64 8, !9, i64 8, i64 8, !9, i64 16, i64 8, !9, i64 24, i64 8, !9, i64 32, i64 8, !9, i64 40, i64 8, !9}
!67 = !{!48, !10, i64 16}


; Effective O3 passes: ADCEPass,CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,LCSSAPass,LICMPass,LoopRotatePass,LoopUnrollPass,PostOrderFunctionAttrsPass,SROAPass,SimplifyCFGPass,TailCallElimPass