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

@s2n_use_color_in_output = external dso_local global i8, align 1
@test_count = external dso_local global i32, align 4
@stdout = external global ptr, align 8
@.str = external hidden unnamed_addr constant [19 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [72 x i8], align 1
@stderr = external global ptr, align 8
@.str.2 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [52 x i8], align 1
@s2n_errno = external thread_local global i32, align 4
@.str.4 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [128 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [137 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [69 x i8], align 1
@s2n_aes128_gcm = external constant %struct.s2n_cipher, align 8
@.str.23 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [82 x i8], align 1
@s2n_aes256_gcm = external constant %struct.s2n_cipher, align 8
@.str.36 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [76 x i8], align 1
@s2n_tls13_aes_128_gcm_sha256 = external global %struct.s2n_cipher_suite, align 8
@.str.54 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [68 x i8], align 1
@s2n_rsa_with_aes_256_gcm_sha384 = external global %struct.s2n_cipher_suite, align 8
@.str.80 = external hidden unnamed_addr constant [130 x i8], align 1
@.str.81 = external hidden unnamed_addr constant [130 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [139 x i8], align 1
@.str.85 = external hidden unnamed_addr constant [139 x i8], align 1
@.str.86 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.88 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.89 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [84 x i8], align 1
@s2n_test_setsockopt_expected = external dso_local global %struct.s2n_test_setsockopt_expected_struct, align 8
@.str.91 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.92 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.93 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.94 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.95 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.96 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.97 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.98 = external hidden unnamed_addr constant [200 x i8], align 1
@.str.99 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.100 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.101 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.102 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.103 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.104 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.105 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.106 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.107 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.108 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.109 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.110 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.111 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.112 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.113 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.114 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.115 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.116 = external hidden unnamed_addr constant [40 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local i32 @main(i32 noundef %0, ptr noundef %1) #0 {
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca ptr, align 8
  %6 = alloca i32, align 4
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  %9 = alloca ptr, align 8
  %10 = alloca %struct.s2n_result, align 4
  %11 = alloca i32, align 4
  %12 = alloca i32, align 4
  %13 = alloca i32, align 4
  %14 = alloca i32, align 4
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca %struct.s2n_result, align 4
  %22 = alloca %struct.s2n_crypto_parameters, align 8
  %23 = alloca %struct.s2n_blob, align 8
  %24 = alloca i32, align 4
  %25 = alloca %struct.s2n_result, align 4
  %26 = alloca i32, align 4
  %27 = alloca %struct.s2n_blob, align 8
  %28 = alloca i32, align 4
  %29 = alloca %struct.s2n_result, align 4
  %30 = alloca i32, align 4
  %31 = alloca %struct.s2n_blob, align 8
  %32 = alloca i32, align 4
  %33 = alloca %struct.s2n_result, align 4
  %34 = alloca i32, align 4
  %35 = alloca %struct.s2n_ktls_crypto_info_inputs, align 8
  %36 = alloca %struct.s2n_ktls_crypto_info, align 8
  %37 = alloca %struct.s2n_result, align 4
  %38 = alloca i32, align 4
  %39 = alloca i32, align 4
  %40 = alloca i32, align 4
  %41 = alloca ptr, align 8
  %42 = alloca i32, align 4
  %43 = alloca i32, align 4
  %44 = alloca i32, align 4
  %45 = alloca i32, align 4
  %46 = alloca i32, align 4
  %47 = alloca i32, align 4
  %48 = alloca i32, align 4
  %49 = alloca i32, align 4
  %50 = alloca %struct.s2n_blob, align 8
  %51 = alloca i32, align 4
  %52 = alloca %struct.s2n_result, align 4
  %53 = alloca i32, align 4
  %54 = alloca %struct.s2n_ktls_crypto_info_inputs, align 8
  %55 = alloca %struct.s2n_ktls_crypto_info, align 8
  %56 = alloca %struct.s2n_result, align 4
  %57 = alloca i32, align 4
  %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 i32, align 4
  %64 = alloca i32, align 4
  %65 = alloca i32, align 4
  %66 = alloca i32, align 4
  %67 = alloca i32, align 4
  %68 = alloca i32, align 4
  %69 = alloca ptr, align 8
  %70 = alloca %struct.s2n_result, align 4
  %71 = alloca i32, align 4
  %72 = alloca ptr, align 8
  %73 = alloca %struct.s2n_result, align 4
  %74 = alloca i32, align 4
  %75 = alloca i32, align 4
  %76 = alloca %struct.s2n_result, align 4
  %77 = alloca i32, align 4
  %78 = alloca i32, align 4
  %79 = alloca i32, align 4
  %80 = alloca %struct.s2n_result, align 4
  %81 = alloca i32, align 4
  %82 = alloca i32, align 4
  %83 = alloca i32, align 4
  %84 = alloca %struct.s2n_result, align 4
  %85 = alloca ptr, align 8
  %86 = alloca %struct.s2n_result, align 4
  %87 = alloca i32, align 4
  %88 = alloca %struct.s2n_result, align 4
  %89 = alloca i32, align 4
  %90 = alloca i32, align 4
  %91 = alloca i32, align 4
  %92 = alloca %struct.s2n_result, align 4
  %93 = alloca ptr, align 8
  %94 = alloca %struct.s2n_result, align 4
  %95 = alloca i32, align 4
  %96 = alloca %struct.s2n_result, align 4
  %97 = alloca i32, align 4
  %98 = alloca i32, align 4
  %99 = alloca i32, align 4
  %100 = alloca i32, align 4
  %101 = alloca i32, align 4
  %102 = alloca i32, align 4
  %103 = alloca i32, align 4
  %104 = alloca %struct.s2n_result, align 4
  %105 = alloca ptr, align 8
  %106 = alloca %struct.s2n_result, align 4
  %107 = alloca i32, align 4
  %108 = alloca i32, align 4
  %109 = alloca i32, align 4
  %110 = alloca %struct.s2n_result, align 4
  %111 = alloca ptr, align 8
  %112 = alloca %struct.s2n_result, align 4
  %113 = alloca i32, align 4
  %114 = alloca i32, align 4
  %115 = alloca i32, align 4
  %116 = alloca i32, align 4
  %117 = alloca i32, align 4
  %118 = alloca i32, align 4
  %119 = alloca i32, align 4
  %120 = alloca %struct.s2n_result, align 4
  %121 = alloca ptr, align 8
  %122 = alloca ptr, align 8
  %123 = alloca i32, align 4
  %124 = alloca %struct.s2n_result, align 4
  %125 = alloca i32, align 4
  %126 = alloca i32, align 4
  %127 = alloca i32, align 4
  %128 = alloca i32, align 4
  %129 = alloca i32, align 4
  %130 = alloca i32, align 4
  %131 = alloca %struct.s2n_result, align 4
  %132 = alloca %struct.s2n_result, align 4
  %133 = alloca ptr, align 8
  %134 = alloca %struct.s2n_result, align 4
  %135 = alloca i32, align 4
  %136 = alloca i32, align 4
  %137 = alloca i32, align 4
  %138 = alloca i32, align 4
  %139 = alloca i32, align 4
  %140 = alloca i32, align 4
  %141 = alloca i32, align 4
  %142 = alloca %struct.s2n_result, align 4
  %143 = alloca %struct.s2n_cipher, align 8
  %144 = alloca %struct.s2n_record_algorithm, align 8
  %145 = alloca %struct.s2n_cipher_suite, align 8
  %146 = alloca ptr, align 8
  %147 = alloca %struct.s2n_result, align 4
  %148 = alloca i32, align 4
  %149 = alloca i32, align 4
  %150 = alloca i32, align 4
  %151 = alloca i32, align 4
  %152 = alloca i32, align 4
  %153 = alloca i32, align 4
  %154 = alloca i32, align 4
  %155 = alloca %struct.s2n_result, align 4
  %156 = alloca ptr, align 8
  %157 = alloca %struct.s2n_result, align 4
  %158 = alloca i32, align 4
  %159 = alloca i8, align 1
  %160 = alloca i8, align 1
  %161 = alloca i32, align 4
  %162 = alloca i32, align 4
  %163 = alloca i32, align 4
  %164 = alloca i32, align 4
  %165 = alloca i32, align 4
  %166 = alloca i32, align 4
  %167 = alloca i32, align 4
  %168 = alloca i32, align 4
  %169 = alloca i32, align 4
  %170 = alloca i32, align 4
  %171 = alloca i32, align 4
  %172 = alloca i32, align 4
  %173 = alloca i32, align 4
  %174 = alloca i32, align 4
  %175 = alloca i32, align 4
  %176 = alloca i32, align 4
  %177 = alloca i32, align 4
  %178 = alloca i32, align 4
  %179 = alloca i32, align 4
  %180 = alloca %struct.s2n_result, align 4
  %181 = alloca ptr, align 8
  %182 = alloca %struct.s2n_result, align 4
  %183 = alloca i32, align 4
  %184 = alloca i32, align 4
  %185 = alloca i32, align 4
  %186 = alloca i32, align 4
  %187 = alloca i32, align 4
  %188 = alloca i32, align 4
  %189 = alloca i32, align 4
  %190 = alloca %struct.s2n_result, align 4
  %191 = alloca ptr, align 8
  %192 = alloca %struct.s2n_result, align 4
  %193 = alloca i32, align 4
  %194 = alloca i32, align 4
  %195 = alloca i32, align 4
  %196 = alloca i32, align 4
  %197 = alloca i32, align 4
  %198 = alloca %struct.s2n_result, align 4
  %199 = alloca ptr, align 8
  %200 = alloca %struct.s2n_result, align 4
  %201 = alloca i32, align 4
  %202 = alloca i32, align 4
  %203 = alloca i32, align 4
  %204 = alloca i32, align 4
  %205 = alloca i32, align 4
  %206 = alloca %struct.s2n_result, align 4
  %207 = alloca ptr, align 8
  %208 = alloca ptr, align 8
  %209 = alloca %struct.s2n_result, align 4
  %210 = alloca i32, align 4
  %211 = alloca i32, align 4
  %212 = alloca ptr, align 8
  %213 = alloca %struct.s2n_result, align 4
  %214 = alloca i32, align 4
  %215 = alloca i32, align 4
  %216 = alloca i32, align 4
  %217 = alloca i32, align 4
  %218 = alloca i32, align 4
  %219 = alloca i32, align 4
  %220 = alloca i32, align 4
  %221 = alloca %struct.s2n_result, align 4
  %222 = alloca %struct.s2n_result, align 4
  %223 = alloca %struct.s2n_result, align 4
  %224 = alloca ptr, align 8
  %225 = alloca ptr, align 8
  %226 = alloca %struct.s2n_result, align 4
  %227 = alloca i32, align 4
  %228 = alloca i32, align 4
  %229 = alloca i32, align 4
  %230 = alloca i32, align 4
  %231 = alloca i32, align 4
  %232 = alloca i32, align 4
  %233 = alloca i32, align 4
  %234 = alloca %struct.s2n_result, align 4
  %235 = alloca %struct.s2n_result, align 4
  %236 = alloca %struct.s2n_cipher_suite, align 8
  %237 = alloca %struct.s2n_record_algorithm, align 8
  %238 = alloca %struct.s2n_cipher, align 8
  %239 = alloca %struct.s2n_crypto_parameters, align 8
  %240 = alloca %struct.s2n_blob, align 8
  %241 = alloca %struct.s2n_blob, align 8
  %242 = alloca i32, align 4
  %243 = alloca i32, align 4
  %244 = alloca %struct.s2n_result, align 4
  %245 = alloca i32, align 4
  %246 = alloca %struct.s2n_result, align 4
  %247 = alloca i32, align 4
  %248 = alloca %struct.s2n_blob, align 8
  %249 = alloca %struct.s2n_blob, align 8
  %250 = alloca i32, align 4
  %251 = alloca i32, align 4
  %252 = alloca %struct.s2n_result, align 4
  %253 = alloca i32, align 4
  %254 = alloca %struct.s2n_result, align 4
  %255 = alloca i32, align 4
  %256 = alloca ptr, align 8
  %257 = alloca %struct.s2n_result, align 4
  %258 = alloca i32, align 4
  %259 = alloca %struct.s2n_result, align 4
  %260 = alloca i32, align 4
  %261 = alloca %struct.s2n_result, align 4
  %262 = alloca i32, align 4
  %263 = alloca %struct.s2n_key_material, align 8
  %264 = alloca %struct.s2n_result, align 4
  %265 = alloca i32, align 4
  %266 = alloca %struct.s2n_test_setsockopt_expected_struct, align 8
  %267 = alloca i32, align 4
  %268 = alloca i32, align 4
  %269 = alloca %struct.s2n_test_setsockopt_expected_struct, align 8
  %270 = alloca i32, align 4
  %271 = alloca i32, align 4
  %272 = alloca %struct.s2n_result, align 4
  %273 = alloca ptr, align 8
  %274 = alloca %struct.s2n_result, align 4
  %275 = alloca i32, align 4
  %276 = alloca %struct.s2n_result, align 4
  %277 = alloca i32, align 4
  %278 = alloca %struct.s2n_result, align 4
  %279 = alloca i32, align 4
  %280 = alloca %struct.s2n_key_material, align 8
  %281 = alloca %struct.s2n_result, align 4
  %282 = alloca i32, align 4
  %283 = alloca %struct.s2n_test_setsockopt_expected_struct, align 8
  %284 = alloca i32, align 4
  %285 = alloca i32, align 4
  %286 = alloca %struct.s2n_test_setsockopt_expected_struct, align 8
  %287 = alloca i32, align 4
  %288 = alloca i32, align 4
  %289 = alloca %struct.s2n_result, align 4
  %290 = alloca ptr, align 8
  %291 = alloca ptr, align 8
  %292 = alloca ptr, align 8
  %293 = alloca ptr, align 8
  %294 = alloca i32, align 4
  %295 = alloca i32, align 4
  %296 = alloca i32, align 4
  %297 = alloca i32, align 4
  %298 = alloca %struct.s2n_result, align 4
  %299 = alloca i32, align 4
  %300 = alloca i32, align 4
  %301 = alloca i32, align 4
  %302 = alloca %struct.s2n_test_io_pair, align 4
  %303 = alloca i32, align 4
  %304 = alloca i32, align 4
  %305 = alloca i32, align 4
  %306 = alloca i32, align 4
  %307 = alloca i32, align 4
  %308 = alloca i32, align 4
  %309 = alloca i32, align 4
  %310 = alloca i32, align 4
  %311 = alloca i32, align 4
  %312 = alloca i32, align 4
  %313 = alloca %struct.s2n_result, align 4
  %314 = alloca %struct.s2n_result, align 4
  %315 = alloca %struct.s2n_result, align 4
  %316 = alloca %struct.s2n_result, align 4
  %317 = alloca ptr, align 8
  %318 = alloca i32, align 4
  %319 = alloca i32, align 4
  %320 = alloca i32, align 4
  %321 = alloca i32, align 4
  %322 = alloca i32, align 4
  %323 = alloca i32, align 4
  %324 = alloca i32, align 4
  %325 = alloca i32, align 4
  %326 = alloca i32, align 4
  %327 = alloca %struct.s2n_result, align 4
  %328 = alloca i32, align 4
  %329 = alloca i32, align 4
  store i32 0, ptr %3, align 4
  store i32 %0, ptr %4, align 4, !tbaa !5
  store ptr %1, ptr %5, align 8, !tbaa !9
  br label %330

330:                                              ; preds = %2
  br label %331

331:                                              ; preds = %330
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %332 = load ptr, ptr @stdout, align 8, !tbaa !9
  %333 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %332, ptr noundef @.str, ptr noundef @.str.1) #11
  %334 = load ptr, ptr @stdout, align 8, !tbaa !9
  %335 = call i32 @fflush(ptr noundef %334)
  br label %336

336:                                              ; preds = %331
  %337 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true)
  %338 = icmp eq i32 %337, -1
  br i1 %338, label %339, label %390

339:                                              ; preds = %336
  br label %340

340:                                              ; preds = %339
  br label %341

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

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

353:                                              ; preds = %348
  %354 = load i32, ptr %6, align 4, !tbaa !5
  %355 = call ptr @__errno_location() #12
  store i32 %354, ptr %355, align 4, !tbaa !5
  %356 = load ptr, ptr @stderr, align 8, !tbaa !9
  %357 = load i32, ptr @test_count, align 4, !tbaa !5
  %358 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %359 = load i32, ptr %358, align 4, !tbaa !5
  %360 = call ptr @s2n_strerror(i32 noundef %359, ptr noundef @.str.4)
  %361 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %362 = load i32, ptr %361, align 4, !tbaa !5
  %363 = call ptr @s2n_strerror_debug(i32 noundef %362, ptr noundef @.str.4)
  %364 = call ptr @__errno_location() #12
  %365 = load i32, ptr %364, align 4, !tbaa !5
  %366 = call ptr @strerror(i32 noundef %365) #11
  %367 = call ptr @__errno_location() #12
  %368 = load i32, ptr %367, align 4, !tbaa !5
  %369 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %356, ptr noundef @.str.2, i32 noundef %357, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 143, ptr noundef %360, ptr noundef %363, ptr noundef %366, i32 noundef %368) #11
  br label %387

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

387:                                              ; preds = %370, %353
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #11
  br label %388

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

389:                                              ; No predecessors!
  br label %390

390:                                              ; preds = %389, %336
  br label %391

391:                                              ; preds = %390
  br label %392

392:                                              ; preds = %391
  %393 = load i32, ptr @test_count, align 4, !tbaa !5
  %394 = add nsw i32 %393, 1
  store i32 %394, ptr @test_count, align 4, !tbaa !5
  %395 = call i32 @s2n_enable_atexit()
  %396 = icmp eq i32 %395, -1
  br i1 %396, label %397, label %448

397:                                              ; preds = %392
  br label %398

398:                                              ; preds = %397
  br label %399

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

406:                                              ; preds = %399
  %407 = load ptr, ptr @stderr, align 8, !tbaa !9
  %408 = call i32 @fileno(ptr noundef %407) #11
  %409 = call i32 @isatty(i32 noundef %408) #11
  %410 = icmp ne i32 %409, 0
  br i1 %410, label %411, label %428

411:                                              ; preds = %406
  %412 = load i32, ptr %7, align 4, !tbaa !5
  %413 = call ptr @__errno_location() #12
  store i32 %412, ptr %413, align 4, !tbaa !5
  %414 = load ptr, ptr @stderr, align 8, !tbaa !9
  %415 = load i32, ptr @test_count, align 4, !tbaa !5
  %416 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %417 = load i32, ptr %416, align 4, !tbaa !5
  %418 = call ptr @s2n_strerror(i32 noundef %417, ptr noundef @.str.4)
  %419 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %420 = load i32, ptr %419, align 4, !tbaa !5
  %421 = call ptr @s2n_strerror_debug(i32 noundef %420, ptr noundef @.str.4)
  %422 = call ptr @__errno_location() #12
  %423 = load i32, ptr %422, align 4, !tbaa !5
  %424 = call ptr @strerror(i32 noundef %423) #11
  %425 = call ptr @__errno_location() #12
  %426 = load i32, ptr %425, align 4, !tbaa !5
  %427 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %414, ptr noundef @.str.2, i32 noundef %415, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 143, ptr noundef %418, ptr noundef %421, ptr noundef %424, i32 noundef %426) #11
  br label %445

428:                                              ; preds = %406, %399
  %429 = load i32, ptr %7, align 4, !tbaa !5
  %430 = call ptr @__errno_location() #12
  store i32 %429, ptr %430, align 4, !tbaa !5
  %431 = load ptr, ptr @stderr, align 8, !tbaa !9
  %432 = load i32, ptr @test_count, align 4, !tbaa !5
  %433 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %434 = load i32, ptr %433, align 4, !tbaa !5
  %435 = call ptr @s2n_strerror(i32 noundef %434, ptr noundef @.str.4)
  %436 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %437 = load i32, ptr %436, align 4, !tbaa !5
  %438 = call ptr @s2n_strerror_debug(i32 noundef %437, ptr noundef @.str.4)
  %439 = call ptr @__errno_location() #12
  %440 = load i32, ptr %439, align 4, !tbaa !5
  %441 = call ptr @strerror(i32 noundef %440) #11
  %442 = call ptr @__errno_location() #12
  %443 = load i32, ptr %442, align 4, !tbaa !5
  %444 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %431, ptr noundef @.str.5, i32 noundef %432, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 143, ptr noundef %435, ptr noundef %438, ptr noundef %441, i32 noundef %443) #11
  br label %445

445:                                              ; preds = %428, %411
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #11
  br label %446

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

447:                                              ; No predecessors!
  br label %448

448:                                              ; preds = %447, %392
  br label %449

449:                                              ; preds = %448
  br label %450

450:                                              ; preds = %449
  br label %451

451:                                              ; preds = %450
  %452 = call i32 @s2n_init()
  %453 = icmp eq i32 %452, -1
  br i1 %453, label %454, label %505

454:                                              ; preds = %451
  br label %455

455:                                              ; preds = %454
  br label %456

456:                                              ; preds = %455
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #11
  %457 = call ptr @__errno_location() #12
  %458 = load i32, ptr %457, align 4, !tbaa !5
  store i32 %458, ptr %8, align 4, !tbaa !5
  %459 = load ptr, ptr @stderr, align 8, !tbaa !9
  %460 = call i32 @s2n_print_stacktrace(ptr noundef %459)
  %461 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %462 = trunc i8 %461 to i1
  br i1 %462, label %463, label %485

463:                                              ; preds = %456
  %464 = load ptr, ptr @stderr, align 8, !tbaa !9
  %465 = call i32 @fileno(ptr noundef %464) #11
  %466 = call i32 @isatty(i32 noundef %465) #11
  %467 = icmp ne i32 %466, 0
  br i1 %467, label %468, label %485

468:                                              ; preds = %463
  %469 = load i32, ptr %8, align 4, !tbaa !5
  %470 = call ptr @__errno_location() #12
  store i32 %469, ptr %470, align 4, !tbaa !5
  %471 = load ptr, ptr @stderr, align 8, !tbaa !9
  %472 = load i32, ptr @test_count, align 4, !tbaa !5
  %473 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %474 = load i32, ptr %473, align 4, !tbaa !5
  %475 = call ptr @s2n_strerror(i32 noundef %474, ptr noundef @.str.4)
  %476 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %477 = load i32, ptr %476, align 4, !tbaa !5
  %478 = call ptr @s2n_strerror_debug(i32 noundef %477, ptr noundef @.str.4)
  %479 = call ptr @__errno_location() #12
  %480 = load i32, ptr %479, align 4, !tbaa !5
  %481 = call ptr @strerror(i32 noundef %480) #11
  %482 = call ptr @__errno_location() #12
  %483 = load i32, ptr %482, align 4, !tbaa !5
  %484 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %471, ptr noundef @.str.2, i32 noundef %472, ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 143, ptr noundef %475, ptr noundef %478, ptr noundef %481, i32 noundef %483) #11
  br label %502

485:                                              ; preds = %463, %456
  %486 = load i32, ptr %8, align 4, !tbaa !5
  %487 = call ptr @__errno_location() #12
  store i32 %486, ptr %487, align 4, !tbaa !5
  %488 = load ptr, ptr @stderr, align 8, !tbaa !9
  %489 = load i32, ptr @test_count, align 4, !tbaa !5
  %490 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %491 = load i32, ptr %490, align 4, !tbaa !5
  %492 = call ptr @s2n_strerror(i32 noundef %491, ptr noundef @.str.4)
  %493 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %494 = load i32, ptr %493, align 4, !tbaa !5
  %495 = call ptr @s2n_strerror_debug(i32 noundef %494, ptr noundef @.str.4)
  %496 = call ptr @__errno_location() #12
  %497 = load i32, ptr %496, align 4, !tbaa !5
  %498 = call ptr @strerror(i32 noundef %497) #11
  %499 = call ptr @__errno_location() #12
  %500 = load i32, ptr %499, align 4, !tbaa !5
  %501 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %488, ptr noundef @.str.5, i32 noundef %489, ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 143, ptr noundef %492, ptr noundef %495, ptr noundef %498, i32 noundef %500) #11
  br label %502

502:                                              ; preds = %485, %468
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #11
  br label %503

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

504:                                              ; No predecessors!
  br label %505

505:                                              ; preds = %504, %451
  br label %506

506:                                              ; preds = %505
  br label %507

507:                                              ; preds = %506
  %508 = call zeroext i1 (...) @s2n_ktls_is_supported_on_platform()
  br i1 %508, label %1131, label %509

509:                                              ; preds = %507
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #11
  %510 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %510, ptr %9, align 8, !tbaa !9
  br label %511

511:                                              ; preds = %509
  %512 = load i32, ptr @test_count, align 4, !tbaa !5
  %513 = add nsw i32 %512, 1
  store i32 %513, ptr @test_count, align 4, !tbaa !5
  %514 = load ptr, ptr %9, align 8, !tbaa !9
  %515 = call i32 @s2n_test_configure_connection_for_ktls(ptr noundef %514)
  %516 = getelementptr inbounds %struct.s2n_result, ptr %10, i32 0, i32 0
  store i32 %515, ptr %516, align 4
  %517 = getelementptr inbounds %struct.s2n_result, ptr %10, i32 0, i32 0
  %518 = load i32, ptr %517, align 4
  %519 = call zeroext i1 @s2n_result_is_ok(i32 %518)
  br i1 %519, label %573, label %520

520:                                              ; preds = %511
  br label %521

521:                                              ; preds = %520
  br label %522

522:                                              ; preds = %521
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #11
  %523 = call ptr @__errno_location() #12
  %524 = load i32, ptr %523, align 4, !tbaa !5
  store i32 %524, ptr %11, align 4, !tbaa !5
  %525 = load ptr, ptr @stderr, align 8, !tbaa !9
  %526 = call i32 @s2n_print_stacktrace(ptr noundef %525)
  %527 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %528 = trunc i8 %527 to i1
  br i1 %528, label %529, label %551

529:                                              ; preds = %522
  %530 = load ptr, ptr @stderr, align 8, !tbaa !9
  %531 = call i32 @fileno(ptr noundef %530) #11
  %532 = call i32 @isatty(i32 noundef %531) #11
  %533 = icmp ne i32 %532, 0
  br i1 %533, label %534, label %551

534:                                              ; preds = %529
  %535 = load i32, ptr %11, align 4, !tbaa !5
  %536 = call ptr @__errno_location() #12
  store i32 %535, ptr %536, align 4, !tbaa !5
  %537 = load ptr, ptr @stderr, align 8, !tbaa !9
  %538 = load i32, ptr @test_count, align 4, !tbaa !5
  %539 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %540 = load i32, ptr %539, align 4, !tbaa !5
  %541 = call ptr @s2n_strerror(i32 noundef %540, ptr noundef @.str.4)
  %542 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %543 = load i32, ptr %542, align 4, !tbaa !5
  %544 = call ptr @s2n_strerror_debug(i32 noundef %543, ptr noundef @.str.4)
  %545 = call ptr @__errno_location() #12
  %546 = load i32, ptr %545, align 4, !tbaa !5
  %547 = call ptr @strerror(i32 noundef %546) #11
  %548 = call ptr @__errno_location() #12
  %549 = load i32, ptr %548, align 4, !tbaa !5
  %550 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %537, ptr noundef @.str.2, i32 noundef %538, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 148, ptr noundef %541, ptr noundef %544, ptr noundef %547, i32 noundef %549) #11
  br label %568

551:                                              ; preds = %529, %522
  %552 = load i32, ptr %11, align 4, !tbaa !5
  %553 = call ptr @__errno_location() #12
  store i32 %552, ptr %553, align 4, !tbaa !5
  %554 = load ptr, ptr @stderr, align 8, !tbaa !9
  %555 = load i32, ptr @test_count, align 4, !tbaa !5
  %556 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %557 = load i32, ptr %556, align 4, !tbaa !5
  %558 = call ptr @s2n_strerror(i32 noundef %557, ptr noundef @.str.4)
  %559 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %560 = load i32, ptr %559, align 4, !tbaa !5
  %561 = call ptr @s2n_strerror_debug(i32 noundef %560, ptr noundef @.str.4)
  %562 = call ptr @__errno_location() #12
  %563 = load i32, ptr %562, align 4, !tbaa !5
  %564 = call ptr @strerror(i32 noundef %563) #11
  %565 = call ptr @__errno_location() #12
  %566 = load i32, ptr %565, align 4, !tbaa !5
  %567 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %554, ptr noundef @.str.5, i32 noundef %555, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 148, ptr noundef %558, ptr noundef %561, ptr noundef %564, i32 noundef %566) #11
  br label %568

568:                                              ; preds = %551, %534
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #11
  br label %569

569:                                              ; preds = %568
  br label %570

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

571:                                              ; No predecessors!
  br label %572

572:                                              ; preds = %571
  br label %573

573:                                              ; preds = %572, %511
  br label %574

574:                                              ; preds = %573
  br label %575

575:                                              ; preds = %574
  br label %576

576:                                              ; preds = %575
  br label %577

577:                                              ; preds = %576
  br label %578

578:                                              ; preds = %577
  %579 = load i32, ptr @test_count, align 4, !tbaa !5
  %580 = add nsw i32 %579, 1
  store i32 %580, ptr @test_count, align 4, !tbaa !5
  %581 = load ptr, ptr %9, align 8, !tbaa !9
  %582 = call i32 @s2n_connection_ktls_enable_send(ptr noundef %581)
  %583 = icmp eq i32 %582, -1
  br i1 %583, label %637, label %584

584:                                              ; preds = %578
  br label %585

585:                                              ; preds = %584
  br label %586

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

593:                                              ; preds = %586
  %594 = load ptr, ptr @stderr, align 8, !tbaa !9
  %595 = call i32 @fileno(ptr noundef %594) #11
  %596 = call i32 @isatty(i32 noundef %595) #11
  %597 = icmp ne i32 %596, 0
  br i1 %597, label %598, label %615

598:                                              ; preds = %593
  %599 = load i32, ptr %12, align 4, !tbaa !5
  %600 = call ptr @__errno_location() #12
  store i32 %599, ptr %600, align 4, !tbaa !5
  %601 = load ptr, ptr @stderr, align 8, !tbaa !9
  %602 = load i32, ptr @test_count, align 4, !tbaa !5
  %603 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %604 = load i32, ptr %603, align 4, !tbaa !5
  %605 = call ptr @s2n_strerror(i32 noundef %604, ptr noundef @.str.4)
  %606 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %607 = load i32, ptr %606, align 4, !tbaa !5
  %608 = call ptr @s2n_strerror_debug(i32 noundef %607, ptr noundef @.str.4)
  %609 = call ptr @__errno_location() #12
  %610 = load i32, ptr %609, align 4, !tbaa !5
  %611 = call ptr @strerror(i32 noundef %610) #11
  %612 = call ptr @__errno_location() #12
  %613 = load i32, ptr %612, align 4, !tbaa !5
  %614 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %601, ptr noundef @.str.2, i32 noundef %602, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 150, ptr noundef %605, ptr noundef %608, ptr noundef %611, i32 noundef %613) #11
  br label %632

615:                                              ; preds = %593, %586
  %616 = load i32, ptr %12, align 4, !tbaa !5
  %617 = call ptr @__errno_location() #12
  store i32 %616, ptr %617, align 4, !tbaa !5
  %618 = load ptr, ptr @stderr, align 8, !tbaa !9
  %619 = load i32, ptr @test_count, align 4, !tbaa !5
  %620 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %621 = load i32, ptr %620, align 4, !tbaa !5
  %622 = call ptr @s2n_strerror(i32 noundef %621, ptr noundef @.str.4)
  %623 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %624 = load i32, ptr %623, align 4, !tbaa !5
  %625 = call ptr @s2n_strerror_debug(i32 noundef %624, ptr noundef @.str.4)
  %626 = call ptr @__errno_location() #12
  %627 = load i32, ptr %626, align 4, !tbaa !5
  %628 = call ptr @strerror(i32 noundef %627) #11
  %629 = call ptr @__errno_location() #12
  %630 = load i32, ptr %629, align 4, !tbaa !5
  %631 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %618, ptr noundef @.str.5, i32 noundef %619, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 150, ptr noundef %622, ptr noundef %625, ptr noundef %628, i32 noundef %630) #11
  br label %632

632:                                              ; preds = %615, %598
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #11
  br label %633

633:                                              ; preds = %632
  br label %634

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

635:                                              ; No predecessors!
  br label %636

636:                                              ; preds = %635
  br label %637

637:                                              ; preds = %636, %578
  br label %638

638:                                              ; preds = %637
  br label %639

639:                                              ; preds = %638
  br label %640

640:                                              ; preds = %639
  %641 = load i32, ptr @test_count, align 4, !tbaa !5
  %642 = add nsw i32 %641, 1
  store i32 %642, ptr @test_count, align 4, !tbaa !5
  %643 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %644 = load i32, ptr %643, align 4, !tbaa !5
  %645 = icmp eq i32 %644, 469762126
  br i1 %645, label %699, label %646

646:                                              ; preds = %640
  br label %647

647:                                              ; preds = %646
  br label %648

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

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

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

677:                                              ; preds = %655, %648
  %678 = load i32, ptr %13, align 4, !tbaa !5
  %679 = call ptr @__errno_location() #12
  store i32 %678, ptr %679, align 4, !tbaa !5
  %680 = load ptr, ptr @stderr, align 8, !tbaa !9
  %681 = load i32, ptr @test_count, align 4, !tbaa !5
  %682 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %683 = load i32, ptr %682, align 4, !tbaa !5
  %684 = call ptr @s2n_strerror(i32 noundef %683, ptr noundef @.str.4)
  %685 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %686 = load i32, ptr %685, align 4, !tbaa !5
  %687 = call ptr @s2n_strerror_debug(i32 noundef %686, ptr noundef @.str.4)
  %688 = call ptr @__errno_location() #12
  %689 = load i32, ptr %688, align 4, !tbaa !5
  %690 = call ptr @strerror(i32 noundef %689) #11
  %691 = call ptr @__errno_location() #12
  %692 = load i32, ptr %691, align 4, !tbaa !5
  %693 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %680, ptr noundef @.str.5, i32 noundef %681, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 150, ptr noundef %684, ptr noundef %687, ptr noundef %690, i32 noundef %692) #11
  br label %694

694:                                              ; preds = %677, %660
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #11
  br label %695

695:                                              ; preds = %694
  br label %696

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

697:                                              ; No predecessors!
  br label %698

698:                                              ; preds = %697
  br label %699

699:                                              ; preds = %698, %640
  br label %700

700:                                              ; preds = %699
  br label %701

701:                                              ; preds = %700
  br label %702

702:                                              ; preds = %701
  %703 = load i32, ptr @test_count, align 4, !tbaa !5
  %704 = add nsw i32 %703, 1
  store i32 %704, ptr @test_count, align 4, !tbaa !5
  %705 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %706 = load i32, ptr %705, align 4, !tbaa !5
  %707 = call ptr @s2n_strerror_debug(i32 noundef %706, ptr noundef @.str.4)
  %708 = icmp eq ptr %707, null
  br i1 %708, label %709, label %762

709:                                              ; preds = %702
  br label %710

710:                                              ; preds = %709
  br label %711

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

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

723:                                              ; preds = %718
  %724 = load i32, ptr %14, align 4, !tbaa !5
  %725 = call ptr @__errno_location() #12
  store i32 %724, ptr %725, align 4, !tbaa !5
  %726 = load ptr, ptr @stderr, align 8, !tbaa !9
  %727 = load i32, ptr @test_count, align 4, !tbaa !5
  %728 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %729 = load i32, ptr %728, align 4, !tbaa !5
  %730 = call ptr @s2n_strerror(i32 noundef %729, ptr noundef @.str.4)
  %731 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %732 = load i32, ptr %731, align 4, !tbaa !5
  %733 = call ptr @s2n_strerror_debug(i32 noundef %732, ptr noundef @.str.4)
  %734 = call ptr @__errno_location() #12
  %735 = load i32, ptr %734, align 4, !tbaa !5
  %736 = call ptr @strerror(i32 noundef %735) #11
  %737 = call ptr @__errno_location() #12
  %738 = load i32, ptr %737, align 4, !tbaa !5
  %739 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %726, ptr noundef @.str.2, i32 noundef %727, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 150, ptr noundef %730, ptr noundef %733, ptr noundef %736, i32 noundef %738) #11
  br label %757

740:                                              ; preds = %718, %711
  %741 = load i32, ptr %14, align 4, !tbaa !5
  %742 = call ptr @__errno_location() #12
  store i32 %741, ptr %742, align 4, !tbaa !5
  %743 = load ptr, ptr @stderr, align 8, !tbaa !9
  %744 = load i32, ptr @test_count, align 4, !tbaa !5
  %745 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %746 = load i32, ptr %745, align 4, !tbaa !5
  %747 = call ptr @s2n_strerror(i32 noundef %746, ptr noundef @.str.4)
  %748 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %749 = load i32, ptr %748, align 4, !tbaa !5
  %750 = call ptr @s2n_strerror_debug(i32 noundef %749, ptr noundef @.str.4)
  %751 = call ptr @__errno_location() #12
  %752 = load i32, ptr %751, align 4, !tbaa !5
  %753 = call ptr @strerror(i32 noundef %752) #11
  %754 = call ptr @__errno_location() #12
  %755 = load i32, ptr %754, align 4, !tbaa !5
  %756 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %743, ptr noundef @.str.5, i32 noundef %744, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 150, ptr noundef %747, ptr noundef %750, ptr noundef %753, i32 noundef %755) #11
  br label %757

757:                                              ; preds = %740, %723
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #11
  br label %758

758:                                              ; preds = %757
  br label %759

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

760:                                              ; No predecessors!
  br label %761

761:                                              ; preds = %760
  br label %762

762:                                              ; preds = %761, %702
  br label %763

763:                                              ; preds = %762
  br label %764

764:                                              ; preds = %763
  br label %765

765:                                              ; preds = %764
  br label %766

766:                                              ; preds = %765
  br label %767

767:                                              ; preds = %766
  %768 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %768, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %769 = call ptr @__errno_location() #12
  store i32 0, ptr %769, align 4, !tbaa !5
  br label %770

770:                                              ; preds = %767
  br label %771

771:                                              ; preds = %770
  br label %772

772:                                              ; preds = %771
  br label %773

773:                                              ; preds = %772
  br label %774

774:                                              ; preds = %773
  br label %775

775:                                              ; preds = %774
  br label %776

776:                                              ; preds = %775
  %777 = load i32, ptr @test_count, align 4, !tbaa !5
  %778 = add nsw i32 %777, 1
  store i32 %778, ptr @test_count, align 4, !tbaa !5
  %779 = load ptr, ptr %9, align 8, !tbaa !9
  %780 = call i32 @s2n_connection_ktls_enable_recv(ptr noundef %779)
  %781 = icmp eq i32 %780, -1
  br i1 %781, label %835, label %782

782:                                              ; preds = %776
  br label %783

783:                                              ; preds = %782
  br label %784

784:                                              ; preds = %783
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #11
  %785 = call ptr @__errno_location() #12
  %786 = load i32, ptr %785, align 4, !tbaa !5
  store i32 %786, ptr %15, align 4, !tbaa !5
  %787 = load ptr, ptr @stderr, align 8, !tbaa !9
  %788 = call i32 @s2n_print_stacktrace(ptr noundef %787)
  %789 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %790 = trunc i8 %789 to i1
  br i1 %790, label %791, label %813

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
  %795 = icmp ne i32 %794, 0
  br i1 %795, label %796, label %813

796:                                              ; preds = %791
  %797 = load i32, ptr %15, align 4, !tbaa !5
  %798 = call ptr @__errno_location() #12
  store i32 %797, ptr %798, align 4, !tbaa !5
  %799 = load ptr, ptr @stderr, align 8, !tbaa !9
  %800 = load i32, ptr @test_count, align 4, !tbaa !5
  %801 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %802 = load i32, ptr %801, align 4, !tbaa !5
  %803 = call ptr @s2n_strerror(i32 noundef %802, ptr noundef @.str.4)
  %804 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %805 = load i32, ptr %804, align 4, !tbaa !5
  %806 = call ptr @s2n_strerror_debug(i32 noundef %805, ptr noundef @.str.4)
  %807 = call ptr @__errno_location() #12
  %808 = load i32, ptr %807, align 4, !tbaa !5
  %809 = call ptr @strerror(i32 noundef %808) #11
  %810 = call ptr @__errno_location() #12
  %811 = load i32, ptr %810, align 4, !tbaa !5
  %812 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %799, ptr noundef @.str.2, i32 noundef %800, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 151, ptr noundef %803, ptr noundef %806, ptr noundef %809, i32 noundef %811) #11
  br label %830

813:                                              ; preds = %791, %784
  %814 = load i32, ptr %15, align 4, !tbaa !5
  %815 = call ptr @__errno_location() #12
  store i32 %814, ptr %815, align 4, !tbaa !5
  %816 = load ptr, ptr @stderr, align 8, !tbaa !9
  %817 = load i32, ptr @test_count, align 4, !tbaa !5
  %818 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %819 = load i32, ptr %818, align 4, !tbaa !5
  %820 = call ptr @s2n_strerror(i32 noundef %819, ptr noundef @.str.4)
  %821 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %822 = load i32, ptr %821, align 4, !tbaa !5
  %823 = call ptr @s2n_strerror_debug(i32 noundef %822, ptr noundef @.str.4)
  %824 = call ptr @__errno_location() #12
  %825 = load i32, ptr %824, align 4, !tbaa !5
  %826 = call ptr @strerror(i32 noundef %825) #11
  %827 = call ptr @__errno_location() #12
  %828 = load i32, ptr %827, align 4, !tbaa !5
  %829 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %816, ptr noundef @.str.5, i32 noundef %817, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 151, ptr noundef %820, ptr noundef %823, ptr noundef %826, i32 noundef %828) #11
  br label %830

830:                                              ; preds = %813, %796
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #11
  br label %831

831:                                              ; preds = %830
  br label %832

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

833:                                              ; No predecessors!
  br label %834

834:                                              ; preds = %833
  br label %835

835:                                              ; preds = %834, %776
  br label %836

836:                                              ; preds = %835
  br label %837

837:                                              ; preds = %836
  br label %838

838:                                              ; preds = %837
  %839 = load i32, ptr @test_count, align 4, !tbaa !5
  %840 = add nsw i32 %839, 1
  store i32 %840, ptr @test_count, align 4, !tbaa !5
  %841 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %842 = load i32, ptr %841, align 4, !tbaa !5
  %843 = icmp eq i32 %842, 469762126
  br i1 %843, label %897, label %844

844:                                              ; preds = %838
  br label %845

845:                                              ; preds = %844
  br label %846

846:                                              ; preds = %845
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #11
  %847 = call ptr @__errno_location() #12
  %848 = load i32, ptr %847, align 4, !tbaa !5
  store i32 %848, ptr %16, align 4, !tbaa !5
  %849 = load ptr, ptr @stderr, align 8, !tbaa !9
  %850 = call i32 @s2n_print_stacktrace(ptr noundef %849)
  %851 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %852 = trunc i8 %851 to i1
  br i1 %852, label %853, label %875

853:                                              ; preds = %846
  %854 = load ptr, ptr @stderr, align 8, !tbaa !9
  %855 = call i32 @fileno(ptr noundef %854) #11
  %856 = call i32 @isatty(i32 noundef %855) #11
  %857 = icmp ne i32 %856, 0
  br i1 %857, label %858, label %875

858:                                              ; preds = %853
  %859 = load i32, ptr %16, align 4, !tbaa !5
  %860 = call ptr @__errno_location() #12
  store i32 %859, ptr %860, align 4, !tbaa !5
  %861 = load ptr, ptr @stderr, align 8, !tbaa !9
  %862 = load i32, ptr @test_count, align 4, !tbaa !5
  %863 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %864 = load i32, ptr %863, align 4, !tbaa !5
  %865 = call ptr @s2n_strerror(i32 noundef %864, ptr noundef @.str.4)
  %866 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %867 = load i32, ptr %866, align 4, !tbaa !5
  %868 = call ptr @s2n_strerror_debug(i32 noundef %867, ptr noundef @.str.4)
  %869 = call ptr @__errno_location() #12
  %870 = load i32, ptr %869, align 4, !tbaa !5
  %871 = call ptr @strerror(i32 noundef %870) #11
  %872 = call ptr @__errno_location() #12
  %873 = load i32, ptr %872, align 4, !tbaa !5
  %874 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %861, ptr noundef @.str.2, i32 noundef %862, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 151, ptr noundef %865, ptr noundef %868, ptr noundef %871, i32 noundef %873) #11
  br label %892

875:                                              ; preds = %853, %846
  %876 = load i32, ptr %16, align 4, !tbaa !5
  %877 = call ptr @__errno_location() #12
  store i32 %876, ptr %877, align 4, !tbaa !5
  %878 = load ptr, ptr @stderr, align 8, !tbaa !9
  %879 = load i32, ptr @test_count, align 4, !tbaa !5
  %880 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %881 = load i32, ptr %880, align 4, !tbaa !5
  %882 = call ptr @s2n_strerror(i32 noundef %881, ptr noundef @.str.4)
  %883 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %884 = load i32, ptr %883, align 4, !tbaa !5
  %885 = call ptr @s2n_strerror_debug(i32 noundef %884, ptr noundef @.str.4)
  %886 = call ptr @__errno_location() #12
  %887 = load i32, ptr %886, align 4, !tbaa !5
  %888 = call ptr @strerror(i32 noundef %887) #11
  %889 = call ptr @__errno_location() #12
  %890 = load i32, ptr %889, align 4, !tbaa !5
  %891 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %878, ptr noundef @.str.5, i32 noundef %879, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 151, ptr noundef %882, ptr noundef %885, ptr noundef %888, i32 noundef %890) #11
  br label %892

892:                                              ; preds = %875, %858
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #11
  br label %893

893:                                              ; preds = %892
  br label %894

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

895:                                              ; No predecessors!
  br label %896

896:                                              ; preds = %895
  br label %897

897:                                              ; preds = %896, %838
  br label %898

898:                                              ; preds = %897
  br label %899

899:                                              ; preds = %898
  br label %900

900:                                              ; preds = %899
  %901 = load i32, ptr @test_count, align 4, !tbaa !5
  %902 = add nsw i32 %901, 1
  store i32 %902, ptr @test_count, align 4, !tbaa !5
  %903 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %904 = load i32, ptr %903, align 4, !tbaa !5
  %905 = call ptr @s2n_strerror_debug(i32 noundef %904, ptr noundef @.str.4)
  %906 = icmp eq ptr %905, null
  br i1 %906, label %907, label %960

907:                                              ; preds = %900
  br label %908

908:                                              ; preds = %907
  br label %909

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

916:                                              ; preds = %909
  %917 = load ptr, ptr @stderr, align 8, !tbaa !9
  %918 = call i32 @fileno(ptr noundef %917) #11
  %919 = call i32 @isatty(i32 noundef %918) #11
  %920 = icmp ne i32 %919, 0
  br i1 %920, label %921, label %938

921:                                              ; preds = %916
  %922 = load i32, ptr %17, align 4, !tbaa !5
  %923 = call ptr @__errno_location() #12
  store i32 %922, ptr %923, align 4, !tbaa !5
  %924 = load ptr, ptr @stderr, align 8, !tbaa !9
  %925 = load i32, ptr @test_count, align 4, !tbaa !5
  %926 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %927 = load i32, ptr %926, align 4, !tbaa !5
  %928 = call ptr @s2n_strerror(i32 noundef %927, ptr noundef @.str.4)
  %929 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %930 = load i32, ptr %929, align 4, !tbaa !5
  %931 = call ptr @s2n_strerror_debug(i32 noundef %930, ptr noundef @.str.4)
  %932 = call ptr @__errno_location() #12
  %933 = load i32, ptr %932, align 4, !tbaa !5
  %934 = call ptr @strerror(i32 noundef %933) #11
  %935 = call ptr @__errno_location() #12
  %936 = load i32, ptr %935, align 4, !tbaa !5
  %937 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %924, ptr noundef @.str.2, i32 noundef %925, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 151, ptr noundef %928, ptr noundef %931, ptr noundef %934, i32 noundef %936) #11
  br label %955

938:                                              ; preds = %916, %909
  %939 = load i32, ptr %17, align 4, !tbaa !5
  %940 = call ptr @__errno_location() #12
  store i32 %939, ptr %940, align 4, !tbaa !5
  %941 = load ptr, ptr @stderr, align 8, !tbaa !9
  %942 = load i32, ptr @test_count, align 4, !tbaa !5
  %943 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %944 = load i32, ptr %943, align 4, !tbaa !5
  %945 = call ptr @s2n_strerror(i32 noundef %944, ptr noundef @.str.4)
  %946 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %947 = load i32, ptr %946, align 4, !tbaa !5
  %948 = call ptr @s2n_strerror_debug(i32 noundef %947, ptr noundef @.str.4)
  %949 = call ptr @__errno_location() #12
  %950 = load i32, ptr %949, align 4, !tbaa !5
  %951 = call ptr @strerror(i32 noundef %950) #11
  %952 = call ptr @__errno_location() #12
  %953 = load i32, ptr %952, align 4, !tbaa !5
  %954 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %941, ptr noundef @.str.5, i32 noundef %942, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 151, ptr noundef %945, ptr noundef %948, ptr noundef %951, i32 noundef %953) #11
  br label %955

955:                                              ; preds = %938, %921
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #11
  br label %956

956:                                              ; preds = %955
  br label %957

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

958:                                              ; No predecessors!
  br label %959

959:                                              ; preds = %958
  br label %960

960:                                              ; preds = %959, %900
  br label %961

961:                                              ; preds = %960
  br label %962

962:                                              ; preds = %961
  br label %963

963:                                              ; preds = %962
  br label %964

964:                                              ; preds = %963
  br label %965

965:                                              ; preds = %964
  %966 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %966, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %967 = call ptr @__errno_location() #12
  store i32 0, ptr %967, align 4, !tbaa !5
  br label %968

968:                                              ; preds = %965
  br label %969

969:                                              ; preds = %968
  br label %970

970:                                              ; preds = %969
  br label %971

971:                                              ; preds = %970
  br label %972

972:                                              ; preds = %971
  br label %973

973:                                              ; preds = %972
  %974 = call i32 @s2n_cleanup()
  %975 = icmp eq i32 %974, -1
  br i1 %975, label %976, label %1029

976:                                              ; preds = %973
  br label %977

977:                                              ; preds = %976
  br label %978

978:                                              ; preds = %977
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #11
  %979 = call ptr @__errno_location() #12
  %980 = load i32, ptr %979, align 4, !tbaa !5
  store i32 %980, ptr %18, align 4, !tbaa !5
  %981 = load ptr, ptr @stderr, align 8, !tbaa !9
  %982 = call i32 @s2n_print_stacktrace(ptr noundef %981)
  %983 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %984 = trunc i8 %983 to i1
  br i1 %984, label %985, label %1007

985:                                              ; preds = %978
  %986 = load ptr, ptr @stderr, align 8, !tbaa !9
  %987 = call i32 @fileno(ptr noundef %986) #11
  %988 = call i32 @isatty(i32 noundef %987) #11
  %989 = icmp ne i32 %988, 0
  br i1 %989, label %990, label %1007

990:                                              ; preds = %985
  %991 = load i32, ptr %18, align 4, !tbaa !5
  %992 = call ptr @__errno_location() #12
  store i32 %991, ptr %992, align 4, !tbaa !5
  %993 = load ptr, ptr @stderr, align 8, !tbaa !9
  %994 = load i32, ptr @test_count, align 4, !tbaa !5
  %995 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %996 = load i32, ptr %995, align 4, !tbaa !5
  %997 = call ptr @s2n_strerror(i32 noundef %996, ptr noundef @.str.4)
  %998 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %999 = load i32, ptr %998, align 4, !tbaa !5
  %1000 = call ptr @s2n_strerror_debug(i32 noundef %999, ptr noundef @.str.4)
  %1001 = call ptr @__errno_location() #12
  %1002 = load i32, ptr %1001, align 4, !tbaa !5
  %1003 = call ptr @strerror(i32 noundef %1002) #11
  %1004 = call ptr @__errno_location() #12
  %1005 = load i32, ptr %1004, align 4, !tbaa !5
  %1006 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %993, ptr noundef @.str.2, i32 noundef %994, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 153, ptr noundef %997, ptr noundef %1000, ptr noundef %1003, i32 noundef %1005) #11
  br label %1024

1007:                                             ; preds = %985, %978
  %1008 = load i32, ptr %18, align 4, !tbaa !5
  %1009 = call ptr @__errno_location() #12
  store i32 %1008, ptr %1009, align 4, !tbaa !5
  %1010 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1011 = load i32, ptr @test_count, align 4, !tbaa !5
  %1012 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1013 = load i32, ptr %1012, align 4, !tbaa !5
  %1014 = call ptr @s2n_strerror(i32 noundef %1013, ptr noundef @.str.4)
  %1015 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1016 = load i32, ptr %1015, align 4, !tbaa !5
  %1017 = call ptr @s2n_strerror_debug(i32 noundef %1016, ptr noundef @.str.4)
  %1018 = call ptr @__errno_location() #12
  %1019 = load i32, ptr %1018, align 4, !tbaa !5
  %1020 = call ptr @strerror(i32 noundef %1019) #11
  %1021 = call ptr @__errno_location() #12
  %1022 = load i32, ptr %1021, align 4, !tbaa !5
  %1023 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1010, ptr noundef @.str.5, i32 noundef %1011, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 153, ptr noundef %1014, ptr noundef %1017, ptr noundef %1020, i32 noundef %1022) #11
  br label %1024

1024:                                             ; preds = %1007, %990
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #11
  br label %1025

1025:                                             ; preds = %1024
  br label %1026

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

1027:                                             ; No predecessors!
  br label %1028

1028:                                             ; preds = %1027
  br label %1029

1029:                                             ; preds = %1028, %973
  br label %1030

1030:                                             ; preds = %1029
  br label %1031

1031:                                             ; preds = %1030
  br label %1032

1032:                                             ; preds = %1031
  br label %1033

1033:                                             ; preds = %1032
  %1034 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %1035 = icmp eq i32 %1034, -1
  br i1 %1035, label %1036, label %1089

1036:                                             ; preds = %1033
  br label %1037

1037:                                             ; preds = %1036
  br label %1038

1038:                                             ; preds = %1037
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #11
  %1039 = call ptr @__errno_location() #12
  %1040 = load i32, ptr %1039, align 4, !tbaa !5
  store i32 %1040, ptr %19, align 4, !tbaa !5
  %1041 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1042 = call i32 @s2n_print_stacktrace(ptr noundef %1041)
  %1043 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1044 = trunc i8 %1043 to i1
  br i1 %1044, label %1045, label %1067

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
  %1049 = icmp ne i32 %1048, 0
  br i1 %1049, label %1050, label %1067

1050:                                             ; preds = %1045
  %1051 = load i32, ptr %19, align 4, !tbaa !5
  %1052 = call ptr @__errno_location() #12
  store i32 %1051, ptr %1052, align 4, !tbaa !5
  %1053 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1054 = load i32, ptr @test_count, align 4, !tbaa !5
  %1055 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1056 = load i32, ptr %1055, align 4, !tbaa !5
  %1057 = call ptr @s2n_strerror(i32 noundef %1056, ptr noundef @.str.4)
  %1058 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1059 = load i32, ptr %1058, align 4, !tbaa !5
  %1060 = call ptr @s2n_strerror_debug(i32 noundef %1059, ptr noundef @.str.4)
  %1061 = call ptr @__errno_location() #12
  %1062 = load i32, ptr %1061, align 4, !tbaa !5
  %1063 = call ptr @strerror(i32 noundef %1062) #11
  %1064 = call ptr @__errno_location() #12
  %1065 = load i32, ptr %1064, align 4, !tbaa !5
  %1066 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1053, ptr noundef @.str.2, i32 noundef %1054, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 153, ptr noundef %1057, ptr noundef %1060, ptr noundef %1063, i32 noundef %1065) #11
  br label %1084

1067:                                             ; preds = %1045, %1038
  %1068 = load i32, ptr %19, align 4, !tbaa !5
  %1069 = call ptr @__errno_location() #12
  store i32 %1068, ptr %1069, align 4, !tbaa !5
  %1070 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1071 = load i32, ptr @test_count, align 4, !tbaa !5
  %1072 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1073 = load i32, ptr %1072, align 4, !tbaa !5
  %1074 = call ptr @s2n_strerror(i32 noundef %1073, ptr noundef @.str.4)
  %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_debug(i32 noundef %1076, ptr noundef @.str.4)
  %1078 = call ptr @__errno_location() #12
  %1079 = load i32, ptr %1078, align 4, !tbaa !5
  %1080 = call ptr @strerror(i32 noundef %1079) #11
  %1081 = call ptr @__errno_location() #12
  %1082 = load i32, ptr %1081, align 4, !tbaa !5
  %1083 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1070, ptr noundef @.str.5, i32 noundef %1071, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 153, ptr noundef %1074, ptr noundef %1077, ptr noundef %1080, i32 noundef %1082) #11
  br label %1084

1084:                                             ; preds = %1067, %1050
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #11
  br label %1085

1085:                                             ; preds = %1084
  br label %1086

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

1087:                                             ; No predecessors!
  br label %1088

1088:                                             ; preds = %1087
  br label %1089

1089:                                             ; preds = %1088, %1033
  br label %1090

1090:                                             ; preds = %1089
  br label %1091

1091:                                             ; preds = %1090
  %1092 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1093 = trunc i8 %1092 to i1
  br i1 %1093, label %1094, label %1110

1094:                                             ; preds = %1091
  %1095 = load ptr, ptr @stdout, align 8, !tbaa !9
  %1096 = call i32 @fileno(ptr noundef %1095) #11
  %1097 = call i32 @isatty(i32 noundef %1096) #11
  %1098 = icmp ne i32 %1097, 0
  br i1 %1098, label %1099, label %1110

1099:                                             ; preds = %1094
  %1100 = load i32, ptr @test_count, align 4, !tbaa !5
  %1101 = icmp ne i32 %1100, 0
  br i1 %1101, label %1102, label %1106

1102:                                             ; preds = %1099
  %1103 = load ptr, ptr @stdout, align 8, !tbaa !9
  %1104 = load i32, ptr @test_count, align 4, !tbaa !5
  %1105 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1103, ptr noundef @.str.15, i32 noundef %1104) #11
  br label %1109

1106:                                             ; preds = %1099
  %1107 = load ptr, ptr @stdout, align 8, !tbaa !9
  %1108 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1107, ptr noundef @.str.16) #11
  br label %1109

1109:                                             ; preds = %1106, %1102
  br label %1121

1110:                                             ; preds = %1094, %1091
  %1111 = load i32, ptr @test_count, align 4, !tbaa !5
  %1112 = icmp ne i32 %1111, 0
  br i1 %1112, label %1113, label %1117

1113:                                             ; preds = %1110
  %1114 = load ptr, ptr @stdout, align 8, !tbaa !9
  %1115 = load i32, ptr @test_count, align 4, !tbaa !5
  %1116 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1114, ptr noundef @.str.17, i32 noundef %1115) #11
  br label %1120

1117:                                             ; preds = %1110
  %1118 = load ptr, ptr @stdout, align 8, !tbaa !9
  %1119 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1118, ptr noundef @.str.18) #11
  br label %1120

1120:                                             ; preds = %1117, %1113
  br label %1121

1121:                                             ; preds = %1120, %1109
  store i32 0, ptr %3, align 4
  store i32 1, ptr %20, align 4
  br label %1126

1122:                                             ; No predecessors!
  br label %1123

1123:                                             ; preds = %1122
  br label %1124

1124:                                             ; preds = %1123
  br label %1125

1125:                                             ; preds = %1124
  store i32 0, ptr %20, align 4
  br label %1126

1126:                                             ; preds = %1125, %1121
  %1127 = call i32 @s2n_connection_ptr_free(ptr noundef %9)
  %1128 = getelementptr inbounds %struct.s2n_result, ptr %21, i32 0, i32 0
  store i32 %1127, ptr %1128, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #11
  %1129 = load i32, ptr %20, align 4
  switch i32 %1129, label %13388 [
    i32 0, label %1130
    i32 1, label %13386
  ]

1130:                                             ; preds = %1126
  br label %1131

1131:                                             ; preds = %1130, %507
  call void @llvm.lifetime.start.p0(i64 936, ptr %22) #11
  call void @llvm.memset.p0.i64(ptr align 8 %22, i8 0, i64 936, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr %23) #11
  call void @llvm.memset.p0.i64(ptr align 8 %23, i8 0, i64 24, i1 false)
  br label %1132

1132:                                             ; preds = %1131
  %1133 = load i32, ptr @test_count, align 4, !tbaa !5
  %1134 = add nsw i32 %1133, 1
  store i32 %1134, ptr @test_count, align 4, !tbaa !5
  %1135 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %22, i32 0, i32 5
  %1136 = getelementptr inbounds [16 x i8], ptr %1135, i64 0, i64 0
  %1137 = call i32 @s2n_blob_init(ptr noundef %23, ptr noundef %1136, i32 noundef 16)
  %1138 = icmp eq i32 %1137, -1
  br i1 %1138, label %1139, label %1192

1139:                                             ; preds = %1132
  br label %1140

1140:                                             ; preds = %1139
  br label %1141

1141:                                             ; preds = %1140
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #11
  %1142 = call ptr @__errno_location() #12
  %1143 = load i32, ptr %1142, align 4, !tbaa !5
  store i32 %1143, ptr %24, align 4, !tbaa !5
  %1144 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1145 = call i32 @s2n_print_stacktrace(ptr noundef %1144)
  %1146 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1147 = trunc i8 %1146 to i1
  br i1 %1147, label %1148, label %1170

1148:                                             ; preds = %1141
  %1149 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1150 = call i32 @fileno(ptr noundef %1149) #11
  %1151 = call i32 @isatty(i32 noundef %1150) #11
  %1152 = icmp ne i32 %1151, 0
  br i1 %1152, label %1153, label %1170

1153:                                             ; preds = %1148
  %1154 = load i32, ptr %24, align 4, !tbaa !5
  %1155 = call ptr @__errno_location() #12
  store i32 %1154, ptr %1155, align 4, !tbaa !5
  %1156 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1157 = load i32, ptr @test_count, align 4, !tbaa !5
  %1158 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1159 = load i32, ptr %1158, align 4, !tbaa !5
  %1160 = call ptr @s2n_strerror(i32 noundef %1159, ptr noundef @.str.4)
  %1161 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1162 = load i32, ptr %1161, align 4, !tbaa !5
  %1163 = call ptr @s2n_strerror_debug(i32 noundef %1162, ptr noundef @.str.4)
  %1164 = call ptr @__errno_location() #12
  %1165 = load i32, ptr %1164, align 4, !tbaa !5
  %1166 = call ptr @strerror(i32 noundef %1165) #11
  %1167 = call ptr @__errno_location() #12
  %1168 = load i32, ptr %1167, align 4, !tbaa !5
  %1169 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1156, ptr noundef @.str.2, i32 noundef %1157, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 162, ptr noundef %1160, ptr noundef %1163, ptr noundef %1166, i32 noundef %1168) #11
  br label %1187

1170:                                             ; preds = %1148, %1141
  %1171 = load i32, ptr %24, align 4, !tbaa !5
  %1172 = call ptr @__errno_location() #12
  store i32 %1171, ptr %1172, align 4, !tbaa !5
  %1173 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1174 = load i32, ptr @test_count, align 4, !tbaa !5
  %1175 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1176 = load i32, ptr %1175, align 4, !tbaa !5
  %1177 = call ptr @s2n_strerror(i32 noundef %1176, ptr noundef @.str.4)
  %1178 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1179 = load i32, ptr %1178, align 4, !tbaa !5
  %1180 = call ptr @s2n_strerror_debug(i32 noundef %1179, ptr noundef @.str.4)
  %1181 = call ptr @__errno_location() #12
  %1182 = load i32, ptr %1181, align 4, !tbaa !5
  %1183 = call ptr @strerror(i32 noundef %1182) #11
  %1184 = call ptr @__errno_location() #12
  %1185 = load i32, ptr %1184, align 4, !tbaa !5
  %1186 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1173, ptr noundef @.str.5, i32 noundef %1174, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 162, ptr noundef %1177, ptr noundef %1180, ptr noundef %1183, i32 noundef %1185) #11
  br label %1187

1187:                                             ; preds = %1170, %1153
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #11
  br label %1188

1188:                                             ; preds = %1187
  br label %1189

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

1190:                                             ; No predecessors!
  br label %1191

1191:                                             ; preds = %1190
  br label %1192

1192:                                             ; preds = %1191, %1132
  br label %1193

1193:                                             ; preds = %1192
  br label %1194

1194:                                             ; preds = %1193
  br label %1195

1195:                                             ; preds = %1194
  %1196 = load i32, ptr @test_count, align 4, !tbaa !5
  %1197 = add nsw i32 %1196, 1
  store i32 %1197, ptr @test_count, align 4, !tbaa !5
  %1198 = call i32 @s2n_get_public_random_data(ptr noundef %23)
  %1199 = getelementptr inbounds %struct.s2n_result, ptr %25, i32 0, i32 0
  store i32 %1198, ptr %1199, align 4
  %1200 = getelementptr inbounds %struct.s2n_result, ptr %25, i32 0, i32 0
  %1201 = load i32, ptr %1200, align 4
  %1202 = call zeroext i1 @s2n_result_is_ok(i32 %1201)
  br i1 %1202, label %1256, label %1203

1203:                                             ; preds = %1195
  br label %1204

1204:                                             ; preds = %1203
  br label %1205

1205:                                             ; preds = %1204
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #11
  %1206 = call ptr @__errno_location() #12
  %1207 = load i32, ptr %1206, align 4, !tbaa !5
  store i32 %1207, ptr %26, align 4, !tbaa !5
  %1208 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1209 = call i32 @s2n_print_stacktrace(ptr noundef %1208)
  %1210 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1211 = trunc i8 %1210 to i1
  br i1 %1211, label %1212, label %1234

1212:                                             ; preds = %1205
  %1213 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1214 = call i32 @fileno(ptr noundef %1213) #11
  %1215 = call i32 @isatty(i32 noundef %1214) #11
  %1216 = icmp ne i32 %1215, 0
  br i1 %1216, label %1217, label %1234

1217:                                             ; preds = %1212
  %1218 = load i32, ptr %26, align 4, !tbaa !5
  %1219 = call ptr @__errno_location() #12
  store i32 %1218, ptr %1219, align 4, !tbaa !5
  %1220 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1221 = load i32, ptr @test_count, align 4, !tbaa !5
  %1222 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1223 = load i32, ptr %1222, align 4, !tbaa !5
  %1224 = call ptr @s2n_strerror(i32 noundef %1223, ptr noundef @.str.4)
  %1225 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1226 = load i32, ptr %1225, align 4, !tbaa !5
  %1227 = call ptr @s2n_strerror_debug(i32 noundef %1226, ptr noundef @.str.4)
  %1228 = call ptr @__errno_location() #12
  %1229 = load i32, ptr %1228, align 4, !tbaa !5
  %1230 = call ptr @strerror(i32 noundef %1229) #11
  %1231 = call ptr @__errno_location() #12
  %1232 = load i32, ptr %1231, align 4, !tbaa !5
  %1233 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1220, ptr noundef @.str.2, i32 noundef %1221, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 163, ptr noundef %1224, ptr noundef %1227, ptr noundef %1230, i32 noundef %1232) #11
  br label %1251

1234:                                             ; preds = %1212, %1205
  %1235 = load i32, ptr %26, align 4, !tbaa !5
  %1236 = call ptr @__errno_location() #12
  store i32 %1235, ptr %1236, align 4, !tbaa !5
  %1237 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1238 = load i32, ptr @test_count, align 4, !tbaa !5
  %1239 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1240 = load i32, ptr %1239, align 4, !tbaa !5
  %1241 = call ptr @s2n_strerror(i32 noundef %1240, ptr noundef @.str.4)
  %1242 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1243 = load i32, ptr %1242, align 4, !tbaa !5
  %1244 = call ptr @s2n_strerror_debug(i32 noundef %1243, ptr noundef @.str.4)
  %1245 = call ptr @__errno_location() #12
  %1246 = load i32, ptr %1245, align 4, !tbaa !5
  %1247 = call ptr @strerror(i32 noundef %1246) #11
  %1248 = call ptr @__errno_location() #12
  %1249 = load i32, ptr %1248, align 4, !tbaa !5
  %1250 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1237, ptr noundef @.str.5, i32 noundef %1238, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 163, ptr noundef %1241, ptr noundef %1244, ptr noundef %1247, i32 noundef %1249) #11
  br label %1251

1251:                                             ; preds = %1234, %1217
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #11
  br label %1252

1252:                                             ; preds = %1251
  br label %1253

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

1254:                                             ; No predecessors!
  br label %1255

1255:                                             ; preds = %1254
  br label %1256

1256:                                             ; preds = %1255, %1195
  br label %1257

1257:                                             ; preds = %1256
  br label %1258

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

1259:                                             ; preds = %1258
  %1260 = load i32, ptr @test_count, align 4, !tbaa !5
  %1261 = add nsw i32 %1260, 1
  store i32 %1261, ptr @test_count, align 4, !tbaa !5
  %1262 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %22, i32 0, i32 7
  %1263 = getelementptr inbounds [8 x i8], ptr %1262, i64 0, i64 0
  %1264 = call i32 @s2n_blob_init(ptr noundef %27, ptr noundef %1263, i32 noundef 8)
  %1265 = icmp eq i32 %1264, -1
  br i1 %1265, label %1266, label %1319

1266:                                             ; preds = %1259
  br label %1267

1267:                                             ; preds = %1266
  br label %1268

1268:                                             ; preds = %1267
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #11
  %1269 = call ptr @__errno_location() #12
  %1270 = load i32, ptr %1269, align 4, !tbaa !5
  store i32 %1270, ptr %28, align 4, !tbaa !5
  %1271 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1272 = call i32 @s2n_print_stacktrace(ptr noundef %1271)
  %1273 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1274 = trunc i8 %1273 to i1
  br i1 %1274, label %1275, label %1297

1275:                                             ; preds = %1268
  %1276 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1277 = call i32 @fileno(ptr noundef %1276) #11
  %1278 = call i32 @isatty(i32 noundef %1277) #11
  %1279 = icmp ne i32 %1278, 0
  br i1 %1279, label %1280, label %1297

1280:                                             ; preds = %1275
  %1281 = load i32, ptr %28, align 4, !tbaa !5
  %1282 = call ptr @__errno_location() #12
  store i32 %1281, ptr %1282, align 4, !tbaa !5
  %1283 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1284 = load i32, ptr @test_count, align 4, !tbaa !5
  %1285 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1286 = load i32, ptr %1285, align 4, !tbaa !5
  %1287 = call ptr @s2n_strerror(i32 noundef %1286, ptr noundef @.str.4)
  %1288 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1289 = load i32, ptr %1288, align 4, !tbaa !5
  %1290 = call ptr @s2n_strerror_debug(i32 noundef %1289, ptr noundef @.str.4)
  %1291 = call ptr @__errno_location() #12
  %1292 = load i32, ptr %1291, align 4, !tbaa !5
  %1293 = call ptr @strerror(i32 noundef %1292) #11
  %1294 = call ptr @__errno_location() #12
  %1295 = load i32, ptr %1294, align 4, !tbaa !5
  %1296 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1283, ptr noundef @.str.2, i32 noundef %1284, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 167, ptr noundef %1287, ptr noundef %1290, ptr noundef %1293, i32 noundef %1295) #11
  br label %1314

1297:                                             ; preds = %1275, %1268
  %1298 = load i32, ptr %28, align 4, !tbaa !5
  %1299 = call ptr @__errno_location() #12
  store i32 %1298, ptr %1299, align 4, !tbaa !5
  %1300 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1301 = load i32, ptr @test_count, align 4, !tbaa !5
  %1302 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1303 = load i32, ptr %1302, align 4, !tbaa !5
  %1304 = call ptr @s2n_strerror(i32 noundef %1303, ptr noundef @.str.4)
  %1305 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1306 = load i32, ptr %1305, align 4, !tbaa !5
  %1307 = call ptr @s2n_strerror_debug(i32 noundef %1306, ptr noundef @.str.4)
  %1308 = call ptr @__errno_location() #12
  %1309 = load i32, ptr %1308, align 4, !tbaa !5
  %1310 = call ptr @strerror(i32 noundef %1309) #11
  %1311 = call ptr @__errno_location() #12
  %1312 = load i32, ptr %1311, align 4, !tbaa !5
  %1313 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1300, ptr noundef @.str.5, i32 noundef %1301, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 167, ptr noundef %1304, ptr noundef %1307, ptr noundef %1310, i32 noundef %1312) #11
  br label %1314

1314:                                             ; preds = %1297, %1280
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #11
  br label %1315

1315:                                             ; preds = %1314
  br label %1316

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

1317:                                             ; No predecessors!
  br label %1318

1318:                                             ; preds = %1317
  br label %1319

1319:                                             ; preds = %1318, %1259
  br label %1320

1320:                                             ; preds = %1319
  br label %1321

1321:                                             ; preds = %1320
  br label %1322

1322:                                             ; preds = %1321
  %1323 = load i32, ptr @test_count, align 4, !tbaa !5
  %1324 = add nsw i32 %1323, 1
  store i32 %1324, ptr @test_count, align 4, !tbaa !5
  %1325 = call i32 @s2n_get_public_random_data(ptr noundef %27)
  %1326 = getelementptr inbounds %struct.s2n_result, ptr %29, i32 0, i32 0
  store i32 %1325, ptr %1326, align 4
  %1327 = getelementptr inbounds %struct.s2n_result, ptr %29, i32 0, i32 0
  %1328 = load i32, ptr %1327, align 4
  %1329 = call zeroext i1 @s2n_result_is_ok(i32 %1328)
  br i1 %1329, label %1383, label %1330

1330:                                             ; preds = %1322
  br label %1331

1331:                                             ; preds = %1330
  br label %1332

1332:                                             ; preds = %1331
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #11
  %1333 = call ptr @__errno_location() #12
  %1334 = load i32, ptr %1333, align 4, !tbaa !5
  store i32 %1334, ptr %30, align 4, !tbaa !5
  %1335 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1336 = call i32 @s2n_print_stacktrace(ptr noundef %1335)
  %1337 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1338 = trunc i8 %1337 to i1
  br i1 %1338, label %1339, label %1361

1339:                                             ; preds = %1332
  %1340 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1341 = call i32 @fileno(ptr noundef %1340) #11
  %1342 = call i32 @isatty(i32 noundef %1341) #11
  %1343 = icmp ne i32 %1342, 0
  br i1 %1343, label %1344, label %1361

1344:                                             ; preds = %1339
  %1345 = load i32, ptr %30, align 4, !tbaa !5
  %1346 = call ptr @__errno_location() #12
  store i32 %1345, ptr %1346, align 4, !tbaa !5
  %1347 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1348 = load i32, ptr @test_count, align 4, !tbaa !5
  %1349 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1350 = load i32, ptr %1349, align 4, !tbaa !5
  %1351 = call ptr @s2n_strerror(i32 noundef %1350, ptr noundef @.str.4)
  %1352 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1353 = load i32, ptr %1352, align 4, !tbaa !5
  %1354 = call ptr @s2n_strerror_debug(i32 noundef %1353, ptr noundef @.str.4)
  %1355 = call ptr @__errno_location() #12
  %1356 = load i32, ptr %1355, align 4, !tbaa !5
  %1357 = call ptr @strerror(i32 noundef %1356) #11
  %1358 = call ptr @__errno_location() #12
  %1359 = load i32, ptr %1358, align 4, !tbaa !5
  %1360 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1347, ptr noundef @.str.2, i32 noundef %1348, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 168, ptr noundef %1351, ptr noundef %1354, ptr noundef %1357, i32 noundef %1359) #11
  br label %1378

1361:                                             ; preds = %1339, %1332
  %1362 = load i32, ptr %30, align 4, !tbaa !5
  %1363 = call ptr @__errno_location() #12
  store i32 %1362, ptr %1363, align 4, !tbaa !5
  %1364 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1365 = load i32, ptr @test_count, align 4, !tbaa !5
  %1366 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1367 = load i32, ptr %1366, align 4, !tbaa !5
  %1368 = call ptr @s2n_strerror(i32 noundef %1367, ptr noundef @.str.4)
  %1369 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1370 = load i32, ptr %1369, align 4, !tbaa !5
  %1371 = call ptr @s2n_strerror_debug(i32 noundef %1370, ptr noundef @.str.4)
  %1372 = call ptr @__errno_location() #12
  %1373 = load i32, ptr %1372, align 4, !tbaa !5
  %1374 = call ptr @strerror(i32 noundef %1373) #11
  %1375 = call ptr @__errno_location() #12
  %1376 = load i32, ptr %1375, align 4, !tbaa !5
  %1377 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1364, ptr noundef @.str.5, i32 noundef %1365, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 168, ptr noundef %1368, ptr noundef %1371, ptr noundef %1374, i32 noundef %1376) #11
  br label %1378

1378:                                             ; preds = %1361, %1344
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #11
  br label %1379

1379:                                             ; preds = %1378
  br label %1380

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

1381:                                             ; No predecessors!
  br label %1382

1382:                                             ; preds = %1381
  br label %1383

1383:                                             ; preds = %1382, %1322
  br label %1384

1384:                                             ; preds = %1383
  br label %1385

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

1386:                                             ; preds = %1385
  %1387 = load i32, ptr @test_count, align 4, !tbaa !5
  %1388 = add nsw i32 %1387, 1
  store i32 %1388, ptr @test_count, align 4, !tbaa !5
  %1389 = load i8, ptr getelementptr inbounds (%struct.s2n_cipher, ptr @s2n_aes128_gcm, i32 0, i32 2), align 8, !tbaa !15
  %1390 = zext i8 %1389 to i32
  %1391 = call i32 @s2n_alloc(ptr noundef %31, i32 noundef %1390)
  %1392 = icmp eq i32 %1391, -1
  br i1 %1392, label %1393, label %1446

1393:                                             ; preds = %1386
  br label %1394

1394:                                             ; preds = %1393
  br label %1395

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

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

1407:                                             ; preds = %1402
  %1408 = load i32, ptr %32, align 4, !tbaa !5
  %1409 = call ptr @__errno_location() #12
  store i32 %1408, ptr %1409, align 4, !tbaa !5
  %1410 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1411 = load i32, ptr @test_count, align 4, !tbaa !5
  %1412 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1413 = load i32, ptr %1412, align 4, !tbaa !5
  %1414 = call ptr @s2n_strerror(i32 noundef %1413, ptr noundef @.str.4)
  %1415 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1416 = load i32, ptr %1415, align 4, !tbaa !5
  %1417 = call ptr @s2n_strerror_debug(i32 noundef %1416, ptr noundef @.str.4)
  %1418 = call ptr @__errno_location() #12
  %1419 = load i32, ptr %1418, align 4, !tbaa !5
  %1420 = call ptr @strerror(i32 noundef %1419) #11
  %1421 = call ptr @__errno_location() #12
  %1422 = load i32, ptr %1421, align 4, !tbaa !5
  %1423 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1410, ptr noundef @.str.2, i32 noundef %1411, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 173, ptr noundef %1414, ptr noundef %1417, ptr noundef %1420, i32 noundef %1422) #11
  br label %1441

1424:                                             ; preds = %1402, %1395
  %1425 = load i32, ptr %32, align 4, !tbaa !5
  %1426 = call ptr @__errno_location() #12
  store i32 %1425, ptr %1426, align 4, !tbaa !5
  %1427 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1428 = load i32, ptr @test_count, align 4, !tbaa !5
  %1429 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1430 = load i32, ptr %1429, align 4, !tbaa !5
  %1431 = call ptr @s2n_strerror(i32 noundef %1430, ptr noundef @.str.4)
  %1432 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1433 = load i32, ptr %1432, align 4, !tbaa !5
  %1434 = call ptr @s2n_strerror_debug(i32 noundef %1433, ptr noundef @.str.4)
  %1435 = call ptr @__errno_location() #12
  %1436 = load i32, ptr %1435, align 4, !tbaa !5
  %1437 = call ptr @strerror(i32 noundef %1436) #11
  %1438 = call ptr @__errno_location() #12
  %1439 = load i32, ptr %1438, align 4, !tbaa !5
  %1440 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1427, ptr noundef @.str.5, i32 noundef %1428, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 173, ptr noundef %1431, ptr noundef %1434, ptr noundef %1437, i32 noundef %1439) #11
  br label %1441

1441:                                             ; preds = %1424, %1407
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #11
  br label %1442

1442:                                             ; preds = %1441
  br label %1443

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

1444:                                             ; No predecessors!
  br label %1445

1445:                                             ; preds = %1444
  br label %1446

1446:                                             ; preds = %1445, %1386
  br label %1447

1447:                                             ; preds = %1446
  br label %1448

1448:                                             ; preds = %1447
  br label %1449

1449:                                             ; preds = %1448
  %1450 = load i32, ptr @test_count, align 4, !tbaa !5
  %1451 = add nsw i32 %1450, 1
  store i32 %1451, ptr @test_count, align 4, !tbaa !5
  %1452 = call i32 @s2n_get_public_random_data(ptr noundef %31)
  %1453 = getelementptr inbounds %struct.s2n_result, ptr %33, i32 0, i32 0
  store i32 %1452, ptr %1453, align 4
  %1454 = getelementptr inbounds %struct.s2n_result, ptr %33, i32 0, i32 0
  %1455 = load i32, ptr %1454, align 4
  %1456 = call zeroext i1 @s2n_result_is_ok(i32 %1455)
  br i1 %1456, label %1510, label %1457

1457:                                             ; preds = %1449
  br label %1458

1458:                                             ; preds = %1457
  br label %1459

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

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

1471:                                             ; preds = %1466
  %1472 = load i32, ptr %34, align 4, !tbaa !5
  %1473 = call ptr @__errno_location() #12
  store i32 %1472, ptr %1473, align 4, !tbaa !5
  %1474 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1475 = load i32, ptr @test_count, align 4, !tbaa !5
  %1476 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1477 = load i32, ptr %1476, align 4, !tbaa !5
  %1478 = call ptr @s2n_strerror(i32 noundef %1477, ptr noundef @.str.4)
  %1479 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1480 = load i32, ptr %1479, align 4, !tbaa !5
  %1481 = call ptr @s2n_strerror_debug(i32 noundef %1480, ptr noundef @.str.4)
  %1482 = call ptr @__errno_location() #12
  %1483 = load i32, ptr %1482, align 4, !tbaa !5
  %1484 = call ptr @strerror(i32 noundef %1483) #11
  %1485 = call ptr @__errno_location() #12
  %1486 = load i32, ptr %1485, align 4, !tbaa !5
  %1487 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1474, ptr noundef @.str.2, i32 noundef %1475, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 174, ptr noundef %1478, ptr noundef %1481, ptr noundef %1484, i32 noundef %1486) #11
  br label %1505

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

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

1506:                                             ; preds = %1505
  br label %1507

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

1508:                                             ; No predecessors!
  br label %1509

1509:                                             ; preds = %1508
  br label %1510

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

1511:                                             ; preds = %1510
  br label %1512

1512:                                             ; preds = %1511
  call void @llvm.lifetime.start.p0(i64 72, ptr %35) #11
  %1513 = getelementptr inbounds %struct.s2n_ktls_crypto_info_inputs, ptr %35, i32 0, i32 0
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %1513, ptr align 8 %23, i64 24, i1 false), !tbaa.struct !17
  %1514 = getelementptr inbounds %struct.s2n_ktls_crypto_info_inputs, ptr %35, i32 0, i32 1
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %1514, ptr align 8 %31, i64 24, i1 false), !tbaa.struct !17
  %1515 = getelementptr inbounds %struct.s2n_ktls_crypto_info_inputs, ptr %35, i32 0, i32 2
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %1515, ptr align 8 %27, i64 24, i1 false), !tbaa.struct !17
  call void @llvm.lifetime.start.p0(i64 32, ptr %36) #11
  call void @llvm.memset.p0.i64(ptr align 8 %36, i8 0, i64 32, i1 false)
  br label %1516

1516:                                             ; preds = %1512
  %1517 = load i32, ptr @test_count, align 4, !tbaa !5
  %1518 = add nsw i32 %1517, 1
  store i32 %1518, ptr @test_count, align 4, !tbaa !5
  %1519 = load ptr, ptr getelementptr inbounds (%struct.s2n_cipher, ptr @s2n_aes128_gcm, i32 0, i32 8), align 8, !tbaa !19
  %1520 = call i32 %1519(ptr noundef %35, ptr noundef %36)
  %1521 = getelementptr inbounds %struct.s2n_result, ptr %37, i32 0, i32 0
  store i32 %1520, ptr %1521, align 4
  %1522 = getelementptr inbounds %struct.s2n_result, ptr %37, i32 0, i32 0
  %1523 = load i32, ptr %1522, align 4
  %1524 = call zeroext i1 @s2n_result_is_ok(i32 %1523)
  br i1 %1524, label %1578, label %1525

1525:                                             ; preds = %1516
  br label %1526

1526:                                             ; preds = %1525
  br label %1527

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

1534:                                             ; preds = %1527
  %1535 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1536 = call i32 @fileno(ptr noundef %1535) #11
  %1537 = call i32 @isatty(i32 noundef %1536) #11
  %1538 = icmp ne i32 %1537, 0
  br i1 %1538, label %1539, label %1556

1539:                                             ; preds = %1534
  %1540 = load i32, ptr %38, align 4, !tbaa !5
  %1541 = call ptr @__errno_location() #12
  store i32 %1540, ptr %1541, align 4, !tbaa !5
  %1542 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1543 = load i32, ptr @test_count, align 4, !tbaa !5
  %1544 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1545 = load i32, ptr %1544, align 4, !tbaa !5
  %1546 = call ptr @s2n_strerror(i32 noundef %1545, ptr noundef @.str.4)
  %1547 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1548 = load i32, ptr %1547, align 4, !tbaa !5
  %1549 = call ptr @s2n_strerror_debug(i32 noundef %1548, ptr noundef @.str.4)
  %1550 = call ptr @__errno_location() #12
  %1551 = load i32, ptr %1550, align 4, !tbaa !5
  %1552 = call ptr @strerror(i32 noundef %1551) #11
  %1553 = call ptr @__errno_location() #12
  %1554 = load i32, ptr %1553, align 4, !tbaa !5
  %1555 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1542, ptr noundef @.str.2, i32 noundef %1543, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 183, ptr noundef %1546, ptr noundef %1549, ptr noundef %1552, i32 noundef %1554) #11
  br label %1573

1556:                                             ; preds = %1534, %1527
  %1557 = load i32, ptr %38, align 4, !tbaa !5
  %1558 = call ptr @__errno_location() #12
  store i32 %1557, ptr %1558, align 4, !tbaa !5
  %1559 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1560 = load i32, ptr @test_count, align 4, !tbaa !5
  %1561 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1562 = load i32, ptr %1561, align 4, !tbaa !5
  %1563 = call ptr @s2n_strerror(i32 noundef %1562, ptr noundef @.str.4)
  %1564 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1565 = load i32, ptr %1564, align 4, !tbaa !5
  %1566 = call ptr @s2n_strerror_debug(i32 noundef %1565, ptr noundef @.str.4)
  %1567 = call ptr @__errno_location() #12
  %1568 = load i32, ptr %1567, align 4, !tbaa !5
  %1569 = call ptr @strerror(i32 noundef %1568) #11
  %1570 = call ptr @__errno_location() #12
  %1571 = load i32, ptr %1570, align 4, !tbaa !5
  %1572 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1559, ptr noundef @.str.5, i32 noundef %1560, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 183, ptr noundef %1563, ptr noundef %1566, ptr noundef %1569, i32 noundef %1571) #11
  br label %1573

1573:                                             ; preds = %1556, %1539
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #11
  br label %1574

1574:                                             ; preds = %1573
  br label %1575

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

1576:                                             ; No predecessors!
  br label %1577

1577:                                             ; preds = %1576
  br label %1578

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

1579:                                             ; preds = %1578
  br label %1580

1580:                                             ; preds = %1579
  br label %1581

1581:                                             ; preds = %1580
  %1582 = load i32, ptr @test_count, align 4, !tbaa !5
  %1583 = add nsw i32 %1582, 1
  store i32 %1583, ptr @test_count, align 4, !tbaa !5
  %1584 = getelementptr inbounds %struct.s2n_ktls_crypto_info, ptr %36, i32 0, i32 0
  %1585 = getelementptr inbounds %struct.s2n_blob, ptr %1584, i32 0, i32 1
  %1586 = load i32, ptr %1585, align 8, !tbaa !20
  %1587 = zext i32 %1586 to i64
  %1588 = icmp eq i64 %1587, 6
  br i1 %1588, label %1642, label %1589

1589:                                             ; preds = %1581
  br label %1590

1590:                                             ; preds = %1589
  br label %1591

1591:                                             ; preds = %1590
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #11
  %1592 = call ptr @__errno_location() #12
  %1593 = load i32, ptr %1592, align 4, !tbaa !5
  store i32 %1593, ptr %39, align 4, !tbaa !5
  %1594 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1595 = call i32 @s2n_print_stacktrace(ptr noundef %1594)
  %1596 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1597 = trunc i8 %1596 to i1
  br i1 %1597, label %1598, label %1620

1598:                                             ; preds = %1591
  %1599 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1600 = call i32 @fileno(ptr noundef %1599) #11
  %1601 = call i32 @isatty(i32 noundef %1600) #11
  %1602 = icmp ne i32 %1601, 0
  br i1 %1602, label %1603, label %1620

1603:                                             ; preds = %1598
  %1604 = load i32, ptr %39, align 4, !tbaa !5
  %1605 = call ptr @__errno_location() #12
  store i32 %1604, ptr %1605, align 4, !tbaa !5
  %1606 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1607 = load i32, ptr @test_count, align 4, !tbaa !5
  %1608 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1609 = load i32, ptr %1608, align 4, !tbaa !5
  %1610 = call ptr @s2n_strerror(i32 noundef %1609, ptr noundef @.str.4)
  %1611 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1612 = load i32, ptr %1611, align 4, !tbaa !5
  %1613 = call ptr @s2n_strerror_debug(i32 noundef %1612, ptr noundef @.str.4)
  %1614 = call ptr @__errno_location() #12
  %1615 = load i32, ptr %1614, align 4, !tbaa !5
  %1616 = call ptr @strerror(i32 noundef %1615) #11
  %1617 = call ptr @__errno_location() #12
  %1618 = load i32, ptr %1617, align 4, !tbaa !5
  %1619 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1606, ptr noundef @.str.2, i32 noundef %1607, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 184, ptr noundef %1610, ptr noundef %1613, ptr noundef %1616, i32 noundef %1618) #11
  br label %1637

1620:                                             ; preds = %1598, %1591
  %1621 = load i32, ptr %39, align 4, !tbaa !5
  %1622 = call ptr @__errno_location() #12
  store i32 %1621, ptr %1622, align 4, !tbaa !5
  %1623 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1624 = load i32, ptr @test_count, align 4, !tbaa !5
  %1625 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1626 = load i32, ptr %1625, align 4, !tbaa !5
  %1627 = call ptr @s2n_strerror(i32 noundef %1626, ptr noundef @.str.4)
  %1628 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1629 = load i32, ptr %1628, align 4, !tbaa !5
  %1630 = call ptr @s2n_strerror_debug(i32 noundef %1629, ptr noundef @.str.4)
  %1631 = call ptr @__errno_location() #12
  %1632 = load i32, ptr %1631, align 4, !tbaa !5
  %1633 = call ptr @strerror(i32 noundef %1632) #11
  %1634 = call ptr @__errno_location() #12
  %1635 = load i32, ptr %1634, align 4, !tbaa !5
  %1636 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1623, ptr noundef @.str.5, i32 noundef %1624, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 184, ptr noundef %1627, ptr noundef %1630, ptr noundef %1633, i32 noundef %1635) #11
  br label %1637

1637:                                             ; preds = %1620, %1603
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #11
  br label %1638

1638:                                             ; preds = %1637
  br label %1639

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

1640:                                             ; No predecessors!
  br label %1641

1641:                                             ; preds = %1640
  br label %1642

1642:                                             ; preds = %1641, %1581
  br label %1643

1643:                                             ; preds = %1642
  br label %1644

1644:                                             ; preds = %1643
  br label %1645

1645:                                             ; preds = %1644
  %1646 = load i32, ptr @test_count, align 4, !tbaa !5
  %1647 = add nsw i32 %1646, 1
  store i32 %1647, ptr @test_count, align 4, !tbaa !5
  %1648 = getelementptr inbounds %struct.s2n_ktls_crypto_info, ptr %36, i32 0, i32 0
  %1649 = getelementptr inbounds %struct.s2n_blob, ptr %1648, i32 0, i32 0
  %1650 = load ptr, ptr %1649, align 8, !tbaa !23
  %1651 = getelementptr inbounds %struct.s2n_ktls_crypto_info, ptr %36, i32 0, i32 1
  %1652 = icmp eq ptr %1650, %1651
  br i1 %1652, label %1706, label %1653

1653:                                             ; preds = %1645
  br label %1654

1654:                                             ; preds = %1653
  br label %1655

1655:                                             ; preds = %1654
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #11
  %1656 = call ptr @__errno_location() #12
  %1657 = load i32, ptr %1656, align 4, !tbaa !5
  store i32 %1657, ptr %40, align 4, !tbaa !5
  %1658 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1659 = call i32 @s2n_print_stacktrace(ptr noundef %1658)
  %1660 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1661 = trunc i8 %1660 to i1
  br i1 %1661, label %1662, label %1684

1662:                                             ; preds = %1655
  %1663 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1664 = call i32 @fileno(ptr noundef %1663) #11
  %1665 = call i32 @isatty(i32 noundef %1664) #11
  %1666 = icmp ne i32 %1665, 0
  br i1 %1666, label %1667, label %1684

1667:                                             ; preds = %1662
  %1668 = load i32, ptr %40, align 4, !tbaa !5
  %1669 = call ptr @__errno_location() #12
  store i32 %1668, ptr %1669, align 4, !tbaa !5
  %1670 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1671 = load i32, ptr @test_count, align 4, !tbaa !5
  %1672 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1673 = load i32, ptr %1672, align 4, !tbaa !5
  %1674 = call ptr @s2n_strerror(i32 noundef %1673, ptr noundef @.str.4)
  %1675 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1676 = load i32, ptr %1675, align 4, !tbaa !5
  %1677 = call ptr @s2n_strerror_debug(i32 noundef %1676, ptr noundef @.str.4)
  %1678 = call ptr @__errno_location() #12
  %1679 = load i32, ptr %1678, align 4, !tbaa !5
  %1680 = call ptr @strerror(i32 noundef %1679) #11
  %1681 = call ptr @__errno_location() #12
  %1682 = load i32, ptr %1681, align 4, !tbaa !5
  %1683 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1670, ptr noundef @.str.2, i32 noundef %1671, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 185, ptr noundef %1674, ptr noundef %1677, ptr noundef %1680, i32 noundef %1682) #11
  br label %1701

1684:                                             ; preds = %1662, %1655
  %1685 = load i32, ptr %40, align 4, !tbaa !5
  %1686 = call ptr @__errno_location() #12
  store i32 %1685, ptr %1686, align 4, !tbaa !5
  %1687 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1688 = load i32, ptr @test_count, align 4, !tbaa !5
  %1689 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1690 = load i32, ptr %1689, align 4, !tbaa !5
  %1691 = call ptr @s2n_strerror(i32 noundef %1690, ptr noundef @.str.4)
  %1692 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1693 = load i32, ptr %1692, align 4, !tbaa !5
  %1694 = call ptr @s2n_strerror_debug(i32 noundef %1693, ptr noundef @.str.4)
  %1695 = call ptr @__errno_location() #12
  %1696 = load i32, ptr %1695, align 4, !tbaa !5
  %1697 = call ptr @strerror(i32 noundef %1696) #11
  %1698 = call ptr @__errno_location() #12
  %1699 = load i32, ptr %1698, align 4, !tbaa !5
  %1700 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1687, ptr noundef @.str.5, i32 noundef %1688, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 185, ptr noundef %1691, ptr noundef %1694, ptr noundef %1697, i32 noundef %1699) #11
  br label %1701

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

1702:                                             ; preds = %1701
  br label %1703

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

1704:                                             ; No predecessors!
  br label %1705

1705:                                             ; preds = %1704
  br label %1706

1706:                                             ; preds = %1705, %1645
  br label %1707

1707:                                             ; preds = %1706
  br label %1708

1708:                                             ; preds = %1707
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #11
  %1709 = getelementptr inbounds %struct.s2n_ktls_crypto_info, ptr %36, i32 0, i32 0
  %1710 = getelementptr inbounds %struct.s2n_blob, ptr %1709, i32 0, i32 0
  %1711 = load ptr, ptr %1710, align 8, !tbaa !23
  store ptr %1711, ptr %41, align 8, !tbaa !9
  br label %1712

1712:                                             ; preds = %1708
  %1713 = load i32, ptr @test_count, align 4, !tbaa !5
  %1714 = add nsw i32 %1713, 1
  store i32 %1714, ptr @test_count, align 4, !tbaa !5
  %1715 = getelementptr inbounds %struct.s2n_blob, ptr %31, i32 0, i32 1
  %1716 = load i32, ptr %1715, align 8, !tbaa !24
  %1717 = zext i32 %1716 to i64
  %1718 = icmp eq i64 %1717, 1
  br i1 %1718, label %1772, label %1719

1719:                                             ; preds = %1712
  br label %1720

1720:                                             ; preds = %1719
  br label %1721

1721:                                             ; preds = %1720
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #11
  %1722 = call ptr @__errno_location() #12
  %1723 = load i32, ptr %1722, align 4, !tbaa !5
  store i32 %1723, ptr %42, align 4, !tbaa !5
  %1724 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1725 = call i32 @s2n_print_stacktrace(ptr noundef %1724)
  %1726 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1727 = trunc i8 %1726 to i1
  br i1 %1727, label %1728, label %1750

1728:                                             ; preds = %1721
  %1729 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1730 = call i32 @fileno(ptr noundef %1729) #11
  %1731 = call i32 @isatty(i32 noundef %1730) #11
  %1732 = icmp ne i32 %1731, 0
  br i1 %1732, label %1733, label %1750

1733:                                             ; preds = %1728
  %1734 = load i32, ptr %42, align 4, !tbaa !5
  %1735 = call ptr @__errno_location() #12
  store i32 %1734, ptr %1735, align 4, !tbaa !5
  %1736 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1737 = load i32, ptr @test_count, align 4, !tbaa !5
  %1738 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1739 = load i32, ptr %1738, align 4, !tbaa !5
  %1740 = call ptr @s2n_strerror(i32 noundef %1739, ptr noundef @.str.4)
  %1741 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1742 = load i32, ptr %1741, align 4, !tbaa !5
  %1743 = call ptr @s2n_strerror_debug(i32 noundef %1742, ptr noundef @.str.4)
  %1744 = call ptr @__errno_location() #12
  %1745 = load i32, ptr %1744, align 4, !tbaa !5
  %1746 = call ptr @strerror(i32 noundef %1745) #11
  %1747 = call ptr @__errno_location() #12
  %1748 = load i32, ptr %1747, align 4, !tbaa !5
  %1749 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1736, ptr noundef @.str.2, i32 noundef %1737, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 189, ptr noundef %1740, ptr noundef %1743, ptr noundef %1746, i32 noundef %1748) #11
  br label %1767

1750:                                             ; preds = %1728, %1721
  %1751 = load i32, ptr %42, align 4, !tbaa !5
  %1752 = call ptr @__errno_location() #12
  store i32 %1751, ptr %1752, align 4, !tbaa !5
  %1753 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1754 = load i32, ptr @test_count, align 4, !tbaa !5
  %1755 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1756 = load i32, ptr %1755, align 4, !tbaa !5
  %1757 = call ptr @s2n_strerror(i32 noundef %1756, ptr noundef @.str.4)
  %1758 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1759 = load i32, ptr %1758, align 4, !tbaa !5
  %1760 = call ptr @s2n_strerror_debug(i32 noundef %1759, ptr noundef @.str.4)
  %1761 = call ptr @__errno_location() #12
  %1762 = load i32, ptr %1761, align 4, !tbaa !5
  %1763 = call ptr @strerror(i32 noundef %1762) #11
  %1764 = call ptr @__errno_location() #12
  %1765 = load i32, ptr %1764, align 4, !tbaa !5
  %1766 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1753, ptr noundef @.str.5, i32 noundef %1754, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 189, ptr noundef %1757, ptr noundef %1760, ptr noundef %1763, i32 noundef %1765) #11
  br label %1767

1767:                                             ; preds = %1750, %1733
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #11
  br label %1768

1768:                                             ; preds = %1767
  br label %1769

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

1770:                                             ; No predecessors!
  br label %1771

1771:                                             ; preds = %1770
  br label %1772

1772:                                             ; preds = %1771, %1712
  br label %1773

1773:                                             ; preds = %1772
  br label %1774

1774:                                             ; preds = %1773
  br label %1775

1775:                                             ; preds = %1774
  br label %1776

1776:                                             ; preds = %1775
  %1777 = load i32, ptr @test_count, align 4, !tbaa !5
  %1778 = add nsw i32 %1777, 1
  store i32 %1778, ptr @test_count, align 4, !tbaa !5
  %1779 = getelementptr inbounds %struct.s2n_blob, ptr %31, i32 0, i32 0
  %1780 = load ptr, ptr %1779, align 8, !tbaa !25
  %1781 = load ptr, ptr %41, align 8, !tbaa !9
  %1782 = getelementptr inbounds %struct.s2n_ktls_crypto_info_stub, ptr %1781, i32 0, i32 2
  %1783 = getelementptr inbounds [1 x i8], ptr %1782, i64 0, i64 0
  %1784 = call i32 @memcmp(ptr noundef %1780, ptr noundef %1783, i64 noundef 1) #14
  %1785 = icmp eq i32 %1784, 0
  br i1 %1785, label %1839, label %1786

1786:                                             ; preds = %1776
  br label %1787

1787:                                             ; preds = %1786
  br label %1788

1788:                                             ; preds = %1787
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #11
  %1789 = call ptr @__errno_location() #12
  %1790 = load i32, ptr %1789, align 4, !tbaa !5
  store i32 %1790, ptr %43, align 4, !tbaa !5
  %1791 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1792 = call i32 @s2n_print_stacktrace(ptr noundef %1791)
  %1793 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1794 = trunc i8 %1793 to i1
  br i1 %1794, label %1795, label %1817

1795:                                             ; preds = %1788
  %1796 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1797 = call i32 @fileno(ptr noundef %1796) #11
  %1798 = call i32 @isatty(i32 noundef %1797) #11
  %1799 = icmp ne i32 %1798, 0
  br i1 %1799, label %1800, label %1817

1800:                                             ; preds = %1795
  %1801 = load i32, ptr %43, align 4, !tbaa !5
  %1802 = call ptr @__errno_location() #12
  store i32 %1801, ptr %1802, align 4, !tbaa !5
  %1803 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1804 = load i32, ptr @test_count, align 4, !tbaa !5
  %1805 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1806 = load i32, ptr %1805, align 4, !tbaa !5
  %1807 = call ptr @s2n_strerror(i32 noundef %1806, ptr noundef @.str.4)
  %1808 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1809 = load i32, ptr %1808, align 4, !tbaa !5
  %1810 = call ptr @s2n_strerror_debug(i32 noundef %1809, ptr noundef @.str.4)
  %1811 = call ptr @__errno_location() #12
  %1812 = load i32, ptr %1811, align 4, !tbaa !5
  %1813 = call ptr @strerror(i32 noundef %1812) #11
  %1814 = call ptr @__errno_location() #12
  %1815 = load i32, ptr %1814, align 4, !tbaa !5
  %1816 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1803, ptr noundef @.str.2, i32 noundef %1804, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 190, ptr noundef %1807, ptr noundef %1810, ptr noundef %1813, i32 noundef %1815) #11
  br label %1834

1817:                                             ; preds = %1795, %1788
  %1818 = load i32, ptr %43, align 4, !tbaa !5
  %1819 = call ptr @__errno_location() #12
  store i32 %1818, ptr %1819, align 4, !tbaa !5
  %1820 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1821 = load i32, ptr @test_count, align 4, !tbaa !5
  %1822 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1823 = load i32, ptr %1822, align 4, !tbaa !5
  %1824 = call ptr @s2n_strerror(i32 noundef %1823, ptr noundef @.str.4)
  %1825 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1826 = load i32, ptr %1825, align 4, !tbaa !5
  %1827 = call ptr @s2n_strerror_debug(i32 noundef %1826, ptr noundef @.str.4)
  %1828 = call ptr @__errno_location() #12
  %1829 = load i32, ptr %1828, align 4, !tbaa !5
  %1830 = call ptr @strerror(i32 noundef %1829) #11
  %1831 = call ptr @__errno_location() #12
  %1832 = load i32, ptr %1831, align 4, !tbaa !5
  %1833 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1820, ptr noundef @.str.5, i32 noundef %1821, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 190, ptr noundef %1824, ptr noundef %1827, ptr noundef %1830, i32 noundef %1832) #11
  br label %1834

1834:                                             ; preds = %1817, %1800
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #11
  br label %1835

1835:                                             ; preds = %1834
  br label %1836

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

1837:                                             ; No predecessors!
  br label %1838

1838:                                             ; preds = %1837
  br label %1839

1839:                                             ; preds = %1838, %1776
  br label %1840

1840:                                             ; preds = %1839
  br label %1841

1841:                                             ; preds = %1840
  br label %1842

1842:                                             ; preds = %1841
  br label %1843

1843:                                             ; preds = %1842
  br label %1844

1844:                                             ; preds = %1843
  %1845 = load i32, ptr @test_count, align 4, !tbaa !5
  %1846 = add nsw i32 %1845, 1
  store i32 %1846, ptr @test_count, align 4, !tbaa !5
  %1847 = getelementptr inbounds %struct.s2n_blob, ptr %27, i32 0, i32 1
  %1848 = load i32, ptr %1847, align 8, !tbaa !24
  %1849 = zext i32 %1848 to i64
  %1850 = icmp uge i64 %1849, 1
  br i1 %1850, label %1904, label %1851

1851:                                             ; preds = %1844
  br label %1852

1852:                                             ; preds = %1851
  br label %1853

1853:                                             ; preds = %1852
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #11
  %1854 = call ptr @__errno_location() #12
  %1855 = load i32, ptr %1854, align 4, !tbaa !5
  store i32 %1855, ptr %44, align 4, !tbaa !5
  %1856 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1857 = call i32 @s2n_print_stacktrace(ptr noundef %1856)
  %1858 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1859 = trunc i8 %1858 to i1
  br i1 %1859, label %1860, label %1882

1860:                                             ; preds = %1853
  %1861 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1862 = call i32 @fileno(ptr noundef %1861) #11
  %1863 = call i32 @isatty(i32 noundef %1862) #11
  %1864 = icmp ne i32 %1863, 0
  br i1 %1864, label %1865, label %1882

1865:                                             ; preds = %1860
  %1866 = load i32, ptr %44, align 4, !tbaa !5
  %1867 = call ptr @__errno_location() #12
  store i32 %1866, ptr %1867, align 4, !tbaa !5
  %1868 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1869 = load i32, ptr @test_count, align 4, !tbaa !5
  %1870 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1871 = load i32, ptr %1870, align 4, !tbaa !5
  %1872 = call ptr @s2n_strerror(i32 noundef %1871, ptr noundef @.str.4)
  %1873 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1874 = load i32, ptr %1873, align 4, !tbaa !5
  %1875 = call ptr @s2n_strerror_debug(i32 noundef %1874, ptr noundef @.str.4)
  %1876 = call ptr @__errno_location() #12
  %1877 = load i32, ptr %1876, align 4, !tbaa !5
  %1878 = call ptr @strerror(i32 noundef %1877) #11
  %1879 = call ptr @__errno_location() #12
  %1880 = load i32, ptr %1879, align 4, !tbaa !5
  %1881 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1868, ptr noundef @.str.2, i32 noundef %1869, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 192, ptr noundef %1872, ptr noundef %1875, ptr noundef %1878, i32 noundef %1880) #11
  br label %1899

1882:                                             ; preds = %1860, %1853
  %1883 = load i32, ptr %44, align 4, !tbaa !5
  %1884 = call ptr @__errno_location() #12
  store i32 %1883, ptr %1884, align 4, !tbaa !5
  %1885 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1886 = load i32, ptr @test_count, align 4, !tbaa !5
  %1887 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1888 = load i32, ptr %1887, align 4, !tbaa !5
  %1889 = call ptr @s2n_strerror(i32 noundef %1888, ptr noundef @.str.4)
  %1890 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1891 = load i32, ptr %1890, align 4, !tbaa !5
  %1892 = call ptr @s2n_strerror_debug(i32 noundef %1891, ptr noundef @.str.4)
  %1893 = call ptr @__errno_location() #12
  %1894 = load i32, ptr %1893, align 4, !tbaa !5
  %1895 = call ptr @strerror(i32 noundef %1894) #11
  %1896 = call ptr @__errno_location() #12
  %1897 = load i32, ptr %1896, align 4, !tbaa !5
  %1898 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1885, ptr noundef @.str.5, i32 noundef %1886, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 192, ptr noundef %1889, ptr noundef %1892, ptr noundef %1895, i32 noundef %1897) #11
  br label %1899

1899:                                             ; preds = %1882, %1865
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #11
  br label %1900

1900:                                             ; preds = %1899
  br label %1901

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

1902:                                             ; No predecessors!
  br label %1903

1903:                                             ; preds = %1902
  br label %1904

1904:                                             ; preds = %1903, %1844
  br label %1905

1905:                                             ; preds = %1904
  br label %1906

1906:                                             ; preds = %1905
  br label %1907

1907:                                             ; preds = %1906
  br label %1908

1908:                                             ; preds = %1907
  %1909 = load i32, ptr @test_count, align 4, !tbaa !5
  %1910 = add nsw i32 %1909, 1
  store i32 %1910, ptr @test_count, align 4, !tbaa !5
  %1911 = getelementptr inbounds %struct.s2n_blob, ptr %27, i32 0, i32 0
  %1912 = load ptr, ptr %1911, align 8, !tbaa !25
  %1913 = load ptr, ptr %41, align 8, !tbaa !9
  %1914 = getelementptr inbounds %struct.s2n_ktls_crypto_info_stub, ptr %1913, i32 0, i32 4
  %1915 = getelementptr inbounds [1 x i8], ptr %1914, i64 0, i64 0
  %1916 = call i32 @memcmp(ptr noundef %1912, ptr noundef %1915, i64 noundef 1) #14
  %1917 = icmp eq i32 %1916, 0
  br i1 %1917, label %1971, label %1918

1918:                                             ; preds = %1908
  br label %1919

1919:                                             ; preds = %1918
  br label %1920

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

1927:                                             ; preds = %1920
  %1928 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1929 = call i32 @fileno(ptr noundef %1928) #11
  %1930 = call i32 @isatty(i32 noundef %1929) #11
  %1931 = icmp ne i32 %1930, 0
  br i1 %1931, label %1932, label %1949

1932:                                             ; preds = %1927
  %1933 = load i32, ptr %45, align 4, !tbaa !5
  %1934 = call ptr @__errno_location() #12
  store i32 %1933, ptr %1934, align 4, !tbaa !5
  %1935 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1936 = load i32, ptr @test_count, align 4, !tbaa !5
  %1937 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1938 = load i32, ptr %1937, align 4, !tbaa !5
  %1939 = call ptr @s2n_strerror(i32 noundef %1938, ptr noundef @.str.4)
  %1940 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1941 = load i32, ptr %1940, align 4, !tbaa !5
  %1942 = call ptr @s2n_strerror_debug(i32 noundef %1941, ptr noundef @.str.4)
  %1943 = call ptr @__errno_location() #12
  %1944 = load i32, ptr %1943, align 4, !tbaa !5
  %1945 = call ptr @strerror(i32 noundef %1944) #11
  %1946 = call ptr @__errno_location() #12
  %1947 = load i32, ptr %1946, align 4, !tbaa !5
  %1948 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1935, ptr noundef @.str.2, i32 noundef %1936, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 193, ptr noundef %1939, ptr noundef %1942, ptr noundef %1945, i32 noundef %1947) #11
  br label %1966

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

1966:                                             ; preds = %1949, %1932
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #11
  br label %1967

1967:                                             ; preds = %1966
  br label %1968

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

1969:                                             ; No predecessors!
  br label %1970

1970:                                             ; preds = %1969
  br label %1971

1971:                                             ; preds = %1970, %1908
  br label %1972

1972:                                             ; preds = %1971
  br label %1973

1973:                                             ; preds = %1972
  br label %1974

1974:                                             ; preds = %1973
  br label %1975

1975:                                             ; preds = %1974
  br label %1976

1976:                                             ; preds = %1975
  %1977 = load i32, ptr @test_count, align 4, !tbaa !5
  %1978 = add nsw i32 %1977, 1
  store i32 %1978, ptr @test_count, align 4, !tbaa !5
  %1979 = getelementptr inbounds %struct.s2n_blob, ptr %23, i32 0, i32 1
  %1980 = load i32, ptr %1979, align 8, !tbaa !24
  %1981 = zext i32 %1980 to i64
  %1982 = icmp uge i64 %1981, 1
  br i1 %1982, label %2036, label %1983

1983:                                             ; preds = %1976
  br label %1984

1984:                                             ; preds = %1983
  br label %1985

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

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

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

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

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

2032:                                             ; preds = %2031
  br label %2033

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

2034:                                             ; No predecessors!
  br label %2035

2035:                                             ; preds = %2034
  br label %2036

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

2037:                                             ; preds = %2036
  br label %2038

2038:                                             ; preds = %2037
  br label %2039

2039:                                             ; preds = %2038
  br label %2040

2040:                                             ; preds = %2039
  %2041 = load i32, ptr @test_count, align 4, !tbaa !5
  %2042 = add nsw i32 %2041, 1
  store i32 %2042, ptr @test_count, align 4, !tbaa !5
  %2043 = getelementptr inbounds %struct.s2n_blob, ptr %23, i32 0, i32 0
  %2044 = load ptr, ptr %2043, align 8, !tbaa !25
  %2045 = load ptr, ptr %41, align 8, !tbaa !9
  %2046 = getelementptr inbounds %struct.s2n_ktls_crypto_info_stub, ptr %2045, i32 0, i32 3
  %2047 = getelementptr inbounds [1 x i8], ptr %2046, i64 0, i64 0
  %2048 = call i32 @memcmp(ptr noundef %2044, ptr noundef %2047, i64 noundef 1) #14
  %2049 = icmp eq i32 %2048, 0
  br i1 %2049, label %2103, label %2050

2050:                                             ; preds = %2040
  br label %2051

2051:                                             ; preds = %2050
  br label %2052

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

2059:                                             ; preds = %2052
  %2060 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2061 = call i32 @fileno(ptr noundef %2060) #11
  %2062 = call i32 @isatty(i32 noundef %2061) #11
  %2063 = icmp ne i32 %2062, 0
  br i1 %2063, label %2064, label %2081

2064:                                             ; preds = %2059
  %2065 = load i32, ptr %47, align 4, !tbaa !5
  %2066 = call ptr @__errno_location() #12
  store i32 %2065, ptr %2066, align 4, !tbaa !5
  %2067 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2068 = load i32, ptr @test_count, align 4, !tbaa !5
  %2069 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2070 = load i32, ptr %2069, align 4, !tbaa !5
  %2071 = call ptr @s2n_strerror(i32 noundef %2070, ptr noundef @.str.4)
  %2072 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2073 = load i32, ptr %2072, align 4, !tbaa !5
  %2074 = call ptr @s2n_strerror_debug(i32 noundef %2073, ptr noundef @.str.4)
  %2075 = call ptr @__errno_location() #12
  %2076 = load i32, ptr %2075, align 4, !tbaa !5
  %2077 = call ptr @strerror(i32 noundef %2076) #11
  %2078 = call ptr @__errno_location() #12
  %2079 = load i32, ptr %2078, align 4, !tbaa !5
  %2080 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2067, ptr noundef @.str.2, i32 noundef %2068, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 196, ptr noundef %2071, ptr noundef %2074, ptr noundef %2077, i32 noundef %2079) #11
  br label %2098

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

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

2099:                                             ; preds = %2098
  br label %2100

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

2101:                                             ; No predecessors!
  br label %2102

2102:                                             ; preds = %2101
  br label %2103

2103:                                             ; preds = %2102, %2040
  br label %2104

2104:                                             ; preds = %2103
  br label %2105

2105:                                             ; preds = %2104
  br label %2106

2106:                                             ; preds = %2105
  br label %2107

2107:                                             ; preds = %2106
  br label %2108

2108:                                             ; preds = %2107
  %2109 = load i32, ptr @test_count, align 4, !tbaa !5
  %2110 = add nsw i32 %2109, 1
  store i32 %2110, ptr @test_count, align 4, !tbaa !5
  %2111 = getelementptr inbounds %struct.s2n_blob, ptr %23, i32 0, i32 1
  %2112 = load i32, ptr %2111, align 8, !tbaa !24
  %2113 = zext i32 %2112 to i64
  %2114 = icmp uge i64 %2113, 1
  br i1 %2114, label %2168, label %2115

2115:                                             ; preds = %2108
  br label %2116

2116:                                             ; preds = %2115
  br label %2117

2117:                                             ; preds = %2116
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #11
  %2118 = call ptr @__errno_location() #12
  %2119 = load i32, ptr %2118, align 4, !tbaa !5
  store i32 %2119, ptr %48, align 4, !tbaa !5
  %2120 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2121 = call i32 @s2n_print_stacktrace(ptr noundef %2120)
  %2122 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2123 = trunc i8 %2122 to i1
  br i1 %2123, label %2124, label %2146

2124:                                             ; preds = %2117
  %2125 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2126 = call i32 @fileno(ptr noundef %2125) #11
  %2127 = call i32 @isatty(i32 noundef %2126) #11
  %2128 = icmp ne i32 %2127, 0
  br i1 %2128, label %2129, label %2146

2129:                                             ; preds = %2124
  %2130 = load i32, ptr %48, align 4, !tbaa !5
  %2131 = call ptr @__errno_location() #12
  store i32 %2130, ptr %2131, align 4, !tbaa !5
  %2132 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2133 = load i32, ptr @test_count, align 4, !tbaa !5
  %2134 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2135 = load i32, ptr %2134, align 4, !tbaa !5
  %2136 = call ptr @s2n_strerror(i32 noundef %2135, ptr noundef @.str.4)
  %2137 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2138 = load i32, ptr %2137, align 4, !tbaa !5
  %2139 = call ptr @s2n_strerror_debug(i32 noundef %2138, ptr noundef @.str.4)
  %2140 = call ptr @__errno_location() #12
  %2141 = load i32, ptr %2140, align 4, !tbaa !5
  %2142 = call ptr @strerror(i32 noundef %2141) #11
  %2143 = call ptr @__errno_location() #12
  %2144 = load i32, ptr %2143, align 4, !tbaa !5
  %2145 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2132, ptr noundef @.str.2, i32 noundef %2133, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 198, ptr noundef %2136, ptr noundef %2139, ptr noundef %2142, i32 noundef %2144) #11
  br label %2163

2146:                                             ; preds = %2124, %2117
  %2147 = load i32, ptr %48, align 4, !tbaa !5
  %2148 = call ptr @__errno_location() #12
  store i32 %2147, ptr %2148, align 4, !tbaa !5
  %2149 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2150 = load i32, ptr @test_count, align 4, !tbaa !5
  %2151 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2152 = load i32, ptr %2151, align 4, !tbaa !5
  %2153 = call ptr @s2n_strerror(i32 noundef %2152, ptr noundef @.str.4)
  %2154 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2155 = load i32, ptr %2154, align 4, !tbaa !5
  %2156 = call ptr @s2n_strerror_debug(i32 noundef %2155, ptr noundef @.str.4)
  %2157 = call ptr @__errno_location() #12
  %2158 = load i32, ptr %2157, align 4, !tbaa !5
  %2159 = call ptr @strerror(i32 noundef %2158) #11
  %2160 = call ptr @__errno_location() #12
  %2161 = load i32, ptr %2160, align 4, !tbaa !5
  %2162 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2149, ptr noundef @.str.5, i32 noundef %2150, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 198, ptr noundef %2153, ptr noundef %2156, ptr noundef %2159, i32 noundef %2161) #11
  br label %2163

2163:                                             ; preds = %2146, %2129
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #11
  br label %2164

2164:                                             ; preds = %2163
  br label %2165

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

2166:                                             ; No predecessors!
  br label %2167

2167:                                             ; preds = %2166
  br label %2168

2168:                                             ; preds = %2167, %2108
  br label %2169

2169:                                             ; preds = %2168
  br label %2170

2170:                                             ; preds = %2169
  br label %2171

2171:                                             ; preds = %2170
  br label %2172

2172:                                             ; preds = %2171
  %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 = getelementptr inbounds %struct.s2n_blob, ptr %27, i32 0, i32 0
  %2176 = load ptr, ptr %2175, align 8, !tbaa !25
  %2177 = load ptr, ptr %41, align 8, !tbaa !9
  %2178 = getelementptr inbounds %struct.s2n_ktls_crypto_info_stub, ptr %2177, i32 0, i32 1
  %2179 = getelementptr inbounds [1 x i8], ptr %2178, i64 0, i64 0
  %2180 = call i32 @memcmp(ptr noundef %2176, ptr noundef %2179, i64 noundef 1) #14
  %2181 = icmp eq i32 %2180, 0
  br i1 %2181, label %2235, label %2182

2182:                                             ; preds = %2172
  br label %2183

2183:                                             ; preds = %2182
  br label %2184

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

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

2196:                                             ; preds = %2191
  %2197 = load i32, ptr %49, align 4, !tbaa !5
  %2198 = call ptr @__errno_location() #12
  store i32 %2197, ptr %2198, align 4, !tbaa !5
  %2199 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2200 = load i32, ptr @test_count, align 4, !tbaa !5
  %2201 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2202 = load i32, ptr %2201, align 4, !tbaa !5
  %2203 = call ptr @s2n_strerror(i32 noundef %2202, ptr noundef @.str.4)
  %2204 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2205 = load i32, ptr %2204, align 4, !tbaa !5
  %2206 = call ptr @s2n_strerror_debug(i32 noundef %2205, ptr noundef @.str.4)
  %2207 = call ptr @__errno_location() #12
  %2208 = load i32, ptr %2207, align 4, !tbaa !5
  %2209 = call ptr @strerror(i32 noundef %2208) #11
  %2210 = call ptr @__errno_location() #12
  %2211 = load i32, ptr %2210, align 4, !tbaa !5
  %2212 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2199, ptr noundef @.str.2, i32 noundef %2200, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 199, ptr noundef %2203, ptr noundef %2206, ptr noundef %2209, i32 noundef %2211) #11
  br label %2230

2213:                                             ; preds = %2191, %2184
  %2214 = load i32, ptr %49, align 4, !tbaa !5
  %2215 = call ptr @__errno_location() #12
  store i32 %2214, ptr %2215, align 4, !tbaa !5
  %2216 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2217 = load i32, ptr @test_count, align 4, !tbaa !5
  %2218 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2219 = load i32, ptr %2218, align 4, !tbaa !5
  %2220 = call ptr @s2n_strerror(i32 noundef %2219, ptr noundef @.str.4)
  %2221 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2222 = load i32, ptr %2221, align 4, !tbaa !5
  %2223 = call ptr @s2n_strerror_debug(i32 noundef %2222, ptr noundef @.str.4)
  %2224 = call ptr @__errno_location() #12
  %2225 = load i32, ptr %2224, align 4, !tbaa !5
  %2226 = call ptr @strerror(i32 noundef %2225) #11
  %2227 = call ptr @__errno_location() #12
  %2228 = load i32, ptr %2227, align 4, !tbaa !5
  %2229 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2216, ptr noundef @.str.5, i32 noundef %2217, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 199, ptr noundef %2220, ptr noundef %2223, ptr noundef %2226, i32 noundef %2228) #11
  br label %2230

2230:                                             ; preds = %2213, %2196
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #11
  br label %2231

2231:                                             ; preds = %2230
  br label %2232

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

2233:                                             ; No predecessors!
  br label %2234

2234:                                             ; preds = %2233
  br label %2235

2235:                                             ; preds = %2234, %2172
  br label %2236

2236:                                             ; preds = %2235
  br label %2237

2237:                                             ; preds = %2236
  br label %2238

2238:                                             ; preds = %2237
  br label %2239

2239:                                             ; preds = %2238
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %36) #11
  call void @llvm.lifetime.end.p0(i64 72, ptr %35) #11
  %2240 = call i32 @s2n_free(ptr noundef %31)
  call void @llvm.lifetime.end.p0(i64 24, ptr %31) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr %50) #11
  call void @llvm.memset.p0.i64(ptr align 8 %50, i8 0, i64 24, i1 false)
  br label %2241

2241:                                             ; preds = %2239
  %2242 = load i32, ptr @test_count, align 4, !tbaa !5
  %2243 = add nsw i32 %2242, 1
  store i32 %2243, ptr @test_count, align 4, !tbaa !5
  %2244 = load i8, ptr getelementptr inbounds (%struct.s2n_cipher, ptr @s2n_aes256_gcm, i32 0, i32 2), align 8, !tbaa !15
  %2245 = zext i8 %2244 to i32
  %2246 = call i32 @s2n_alloc(ptr noundef %50, i32 noundef %2245)
  %2247 = icmp eq i32 %2246, -1
  br i1 %2247, label %2248, label %2301

2248:                                             ; preds = %2241
  br label %2249

2249:                                             ; preds = %2248
  br label %2250

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

2257:                                             ; preds = %2250
  %2258 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2259 = call i32 @fileno(ptr noundef %2258) #11
  %2260 = call i32 @isatty(i32 noundef %2259) #11
  %2261 = icmp ne i32 %2260, 0
  br i1 %2261, label %2262, label %2279

2262:                                             ; preds = %2257
  %2263 = load i32, ptr %51, align 4, !tbaa !5
  %2264 = call ptr @__errno_location() #12
  store i32 %2263, ptr %2264, align 4, !tbaa !5
  %2265 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2266 = load i32, ptr @test_count, align 4, !tbaa !5
  %2267 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2268 = load i32, ptr %2267, align 4, !tbaa !5
  %2269 = call ptr @s2n_strerror(i32 noundef %2268, ptr noundef @.str.4)
  %2270 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2271 = load i32, ptr %2270, align 4, !tbaa !5
  %2272 = call ptr @s2n_strerror_debug(i32 noundef %2271, ptr noundef @.str.4)
  %2273 = call ptr @__errno_location() #12
  %2274 = load i32, ptr %2273, align 4, !tbaa !5
  %2275 = call ptr @strerror(i32 noundef %2274) #11
  %2276 = call ptr @__errno_location() #12
  %2277 = load i32, ptr %2276, align 4, !tbaa !5
  %2278 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2265, ptr noundef @.str.2, i32 noundef %2266, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 205, ptr noundef %2269, ptr noundef %2272, ptr noundef %2275, i32 noundef %2277) #11
  br label %2296

2279:                                             ; preds = %2257, %2250
  %2280 = load i32, ptr %51, align 4, !tbaa !5
  %2281 = call ptr @__errno_location() #12
  store i32 %2280, ptr %2281, align 4, !tbaa !5
  %2282 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2283 = load i32, ptr @test_count, align 4, !tbaa !5
  %2284 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2285 = load i32, ptr %2284, align 4, !tbaa !5
  %2286 = call ptr @s2n_strerror(i32 noundef %2285, ptr noundef @.str.4)
  %2287 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2288 = load i32, ptr %2287, align 4, !tbaa !5
  %2289 = call ptr @s2n_strerror_debug(i32 noundef %2288, ptr noundef @.str.4)
  %2290 = call ptr @__errno_location() #12
  %2291 = load i32, ptr %2290, align 4, !tbaa !5
  %2292 = call ptr @strerror(i32 noundef %2291) #11
  %2293 = call ptr @__errno_location() #12
  %2294 = load i32, ptr %2293, align 4, !tbaa !5
  %2295 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2282, ptr noundef @.str.5, i32 noundef %2283, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 205, ptr noundef %2286, ptr noundef %2289, ptr noundef %2292, i32 noundef %2294) #11
  br label %2296

2296:                                             ; preds = %2279, %2262
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #11
  br label %2297

2297:                                             ; preds = %2296
  br label %2298

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

2299:                                             ; No predecessors!
  br label %2300

2300:                                             ; preds = %2299
  br label %2301

2301:                                             ; preds = %2300, %2241
  br label %2302

2302:                                             ; preds = %2301
  br label %2303

2303:                                             ; preds = %2302
  br label %2304

2304:                                             ; preds = %2303
  %2305 = load i32, ptr @test_count, align 4, !tbaa !5
  %2306 = add nsw i32 %2305, 1
  store i32 %2306, ptr @test_count, align 4, !tbaa !5
  %2307 = call i32 @s2n_get_public_random_data(ptr noundef %50)
  %2308 = getelementptr inbounds %struct.s2n_result, ptr %52, i32 0, i32 0
  store i32 %2307, ptr %2308, align 4
  %2309 = getelementptr inbounds %struct.s2n_result, ptr %52, i32 0, i32 0
  %2310 = load i32, ptr %2309, align 4
  %2311 = call zeroext i1 @s2n_result_is_ok(i32 %2310)
  br i1 %2311, label %2365, label %2312

2312:                                             ; preds = %2304
  br label %2313

2313:                                             ; preds = %2312
  br label %2314

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

2321:                                             ; preds = %2314
  %2322 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2323 = call i32 @fileno(ptr noundef %2322) #11
  %2324 = call i32 @isatty(i32 noundef %2323) #11
  %2325 = icmp ne i32 %2324, 0
  br i1 %2325, label %2326, label %2343

2326:                                             ; preds = %2321
  %2327 = load i32, ptr %53, align 4, !tbaa !5
  %2328 = call ptr @__errno_location() #12
  store i32 %2327, ptr %2328, align 4, !tbaa !5
  %2329 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2330 = load i32, ptr @test_count, align 4, !tbaa !5
  %2331 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2332 = load i32, ptr %2331, align 4, !tbaa !5
  %2333 = call ptr @s2n_strerror(i32 noundef %2332, ptr noundef @.str.4)
  %2334 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2335 = load i32, ptr %2334, align 4, !tbaa !5
  %2336 = call ptr @s2n_strerror_debug(i32 noundef %2335, ptr noundef @.str.4)
  %2337 = call ptr @__errno_location() #12
  %2338 = load i32, ptr %2337, align 4, !tbaa !5
  %2339 = call ptr @strerror(i32 noundef %2338) #11
  %2340 = call ptr @__errno_location() #12
  %2341 = load i32, ptr %2340, align 4, !tbaa !5
  %2342 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2329, ptr noundef @.str.2, i32 noundef %2330, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 206, ptr noundef %2333, ptr noundef %2336, ptr noundef %2339, i32 noundef %2341) #11
  br label %2360

2343:                                             ; preds = %2321, %2314
  %2344 = load i32, ptr %53, align 4, !tbaa !5
  %2345 = call ptr @__errno_location() #12
  store i32 %2344, ptr %2345, align 4, !tbaa !5
  %2346 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2347 = load i32, ptr @test_count, align 4, !tbaa !5
  %2348 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2349 = load i32, ptr %2348, align 4, !tbaa !5
  %2350 = call ptr @s2n_strerror(i32 noundef %2349, ptr noundef @.str.4)
  %2351 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2352 = load i32, ptr %2351, align 4, !tbaa !5
  %2353 = call ptr @s2n_strerror_debug(i32 noundef %2352, ptr noundef @.str.4)
  %2354 = call ptr @__errno_location() #12
  %2355 = load i32, ptr %2354, align 4, !tbaa !5
  %2356 = call ptr @strerror(i32 noundef %2355) #11
  %2357 = call ptr @__errno_location() #12
  %2358 = load i32, ptr %2357, align 4, !tbaa !5
  %2359 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2346, ptr noundef @.str.5, i32 noundef %2347, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 206, ptr noundef %2350, ptr noundef %2353, ptr noundef %2356, i32 noundef %2358) #11
  br label %2360

2360:                                             ; preds = %2343, %2326
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #11
  br label %2361

2361:                                             ; preds = %2360
  br label %2362

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

2363:                                             ; No predecessors!
  br label %2364

2364:                                             ; preds = %2363
  br label %2365

2365:                                             ; preds = %2364, %2304
  br label %2366

2366:                                             ; preds = %2365
  br label %2367

2367:                                             ; preds = %2366
  call void @llvm.lifetime.start.p0(i64 72, ptr %54) #11
  %2368 = getelementptr inbounds %struct.s2n_ktls_crypto_info_inputs, ptr %54, i32 0, i32 0
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %2368, ptr align 8 %23, i64 24, i1 false), !tbaa.struct !17
  %2369 = getelementptr inbounds %struct.s2n_ktls_crypto_info_inputs, ptr %54, i32 0, i32 1
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %2369, ptr align 8 %50, i64 24, i1 false), !tbaa.struct !17
  %2370 = getelementptr inbounds %struct.s2n_ktls_crypto_info_inputs, ptr %54, i32 0, i32 2
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %2370, ptr align 8 %27, i64 24, i1 false), !tbaa.struct !17
  call void @llvm.lifetime.start.p0(i64 32, ptr %55) #11
  call void @llvm.memset.p0.i64(ptr align 8 %55, i8 0, i64 32, i1 false)
  br label %2371

2371:                                             ; preds = %2367
  %2372 = load i32, ptr @test_count, align 4, !tbaa !5
  %2373 = add nsw i32 %2372, 1
  store i32 %2373, ptr @test_count, align 4, !tbaa !5
  %2374 = load ptr, ptr getelementptr inbounds (%struct.s2n_cipher, ptr @s2n_aes256_gcm, i32 0, i32 8), align 8, !tbaa !19
  %2375 = call i32 %2374(ptr noundef %54, ptr noundef %55)
  %2376 = getelementptr inbounds %struct.s2n_result, ptr %56, i32 0, i32 0
  store i32 %2375, ptr %2376, align 4
  %2377 = getelementptr inbounds %struct.s2n_result, ptr %56, i32 0, i32 0
  %2378 = load i32, ptr %2377, align 4
  %2379 = call zeroext i1 @s2n_result_is_ok(i32 %2378)
  br i1 %2379, label %2433, label %2380

2380:                                             ; preds = %2371
  br label %2381

2381:                                             ; preds = %2380
  br label %2382

2382:                                             ; preds = %2381
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #11
  %2383 = call ptr @__errno_location() #12
  %2384 = load i32, ptr %2383, align 4, !tbaa !5
  store i32 %2384, ptr %57, align 4, !tbaa !5
  %2385 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2386 = call i32 @s2n_print_stacktrace(ptr noundef %2385)
  %2387 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2388 = trunc i8 %2387 to i1
  br i1 %2388, label %2389, label %2411

2389:                                             ; preds = %2382
  %2390 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2391 = call i32 @fileno(ptr noundef %2390) #11
  %2392 = call i32 @isatty(i32 noundef %2391) #11
  %2393 = icmp ne i32 %2392, 0
  br i1 %2393, label %2394, label %2411

2394:                                             ; preds = %2389
  %2395 = load i32, ptr %57, align 4, !tbaa !5
  %2396 = call ptr @__errno_location() #12
  store i32 %2395, ptr %2396, align 4, !tbaa !5
  %2397 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2398 = load i32, ptr @test_count, align 4, !tbaa !5
  %2399 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2400 = load i32, ptr %2399, align 4, !tbaa !5
  %2401 = call ptr @s2n_strerror(i32 noundef %2400, ptr noundef @.str.4)
  %2402 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2403 = load i32, ptr %2402, align 4, !tbaa !5
  %2404 = call ptr @s2n_strerror_debug(i32 noundef %2403, ptr noundef @.str.4)
  %2405 = call ptr @__errno_location() #12
  %2406 = load i32, ptr %2405, align 4, !tbaa !5
  %2407 = call ptr @strerror(i32 noundef %2406) #11
  %2408 = call ptr @__errno_location() #12
  %2409 = load i32, ptr %2408, align 4, !tbaa !5
  %2410 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2397, ptr noundef @.str.2, i32 noundef %2398, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 215, ptr noundef %2401, ptr noundef %2404, ptr noundef %2407, i32 noundef %2409) #11
  br label %2428

2411:                                             ; preds = %2389, %2382
  %2412 = load i32, ptr %57, align 4, !tbaa !5
  %2413 = call ptr @__errno_location() #12
  store i32 %2412, ptr %2413, align 4, !tbaa !5
  %2414 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2415 = load i32, ptr @test_count, align 4, !tbaa !5
  %2416 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2417 = load i32, ptr %2416, align 4, !tbaa !5
  %2418 = call ptr @s2n_strerror(i32 noundef %2417, ptr noundef @.str.4)
  %2419 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2420 = load i32, ptr %2419, align 4, !tbaa !5
  %2421 = call ptr @s2n_strerror_debug(i32 noundef %2420, ptr noundef @.str.4)
  %2422 = call ptr @__errno_location() #12
  %2423 = load i32, ptr %2422, align 4, !tbaa !5
  %2424 = call ptr @strerror(i32 noundef %2423) #11
  %2425 = call ptr @__errno_location() #12
  %2426 = load i32, ptr %2425, align 4, !tbaa !5
  %2427 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2414, ptr noundef @.str.5, i32 noundef %2415, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 215, ptr noundef %2418, ptr noundef %2421, ptr noundef %2424, i32 noundef %2426) #11
  br label %2428

2428:                                             ; preds = %2411, %2394
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #11
  br label %2429

2429:                                             ; preds = %2428
  br label %2430

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

2431:                                             ; No predecessors!
  br label %2432

2432:                                             ; preds = %2431
  br label %2433

2433:                                             ; preds = %2432, %2371
  br label %2434

2434:                                             ; preds = %2433
  br label %2435

2435:                                             ; preds = %2434
  br label %2436

2436:                                             ; preds = %2435
  %2437 = load i32, ptr @test_count, align 4, !tbaa !5
  %2438 = add nsw i32 %2437, 1
  store i32 %2438, ptr @test_count, align 4, !tbaa !5
  %2439 = getelementptr inbounds %struct.s2n_ktls_crypto_info, ptr %55, i32 0, i32 0
  %2440 = getelementptr inbounds %struct.s2n_blob, ptr %2439, i32 0, i32 1
  %2441 = load i32, ptr %2440, align 8, !tbaa !20
  %2442 = zext i32 %2441 to i64
  %2443 = icmp eq i64 %2442, 6
  br i1 %2443, label %2497, label %2444

2444:                                             ; preds = %2436
  br label %2445

2445:                                             ; preds = %2444
  br label %2446

2446:                                             ; preds = %2445
  call void @llvm.lifetime.start.p0(i64 4, ptr %58) #11
  %2447 = call ptr @__errno_location() #12
  %2448 = load i32, ptr %2447, align 4, !tbaa !5
  store i32 %2448, ptr %58, align 4, !tbaa !5
  %2449 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2450 = call i32 @s2n_print_stacktrace(ptr noundef %2449)
  %2451 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2452 = trunc i8 %2451 to i1
  br i1 %2452, label %2453, label %2475

2453:                                             ; preds = %2446
  %2454 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2455 = call i32 @fileno(ptr noundef %2454) #11
  %2456 = call i32 @isatty(i32 noundef %2455) #11
  %2457 = icmp ne i32 %2456, 0
  br i1 %2457, label %2458, label %2475

2458:                                             ; preds = %2453
  %2459 = load i32, ptr %58, align 4, !tbaa !5
  %2460 = call ptr @__errno_location() #12
  store i32 %2459, ptr %2460, align 4, !tbaa !5
  %2461 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2462 = load i32, ptr @test_count, align 4, !tbaa !5
  %2463 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2464 = load i32, ptr %2463, align 4, !tbaa !5
  %2465 = call ptr @s2n_strerror(i32 noundef %2464, ptr noundef @.str.4)
  %2466 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2467 = load i32, ptr %2466, align 4, !tbaa !5
  %2468 = call ptr @s2n_strerror_debug(i32 noundef %2467, ptr noundef @.str.4)
  %2469 = call ptr @__errno_location() #12
  %2470 = load i32, ptr %2469, align 4, !tbaa !5
  %2471 = call ptr @strerror(i32 noundef %2470) #11
  %2472 = call ptr @__errno_location() #12
  %2473 = load i32, ptr %2472, align 4, !tbaa !5
  %2474 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2461, ptr noundef @.str.2, i32 noundef %2462, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 216, ptr noundef %2465, ptr noundef %2468, ptr noundef %2471, i32 noundef %2473) #11
  br label %2492

2475:                                             ; preds = %2453, %2446
  %2476 = load i32, ptr %58, align 4, !tbaa !5
  %2477 = call ptr @__errno_location() #12
  store i32 %2476, ptr %2477, align 4, !tbaa !5
  %2478 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2479 = load i32, ptr @test_count, align 4, !tbaa !5
  %2480 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2481 = load i32, ptr %2480, align 4, !tbaa !5
  %2482 = call ptr @s2n_strerror(i32 noundef %2481, ptr noundef @.str.4)
  %2483 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2484 = load i32, ptr %2483, align 4, !tbaa !5
  %2485 = call ptr @s2n_strerror_debug(i32 noundef %2484, ptr noundef @.str.4)
  %2486 = call ptr @__errno_location() #12
  %2487 = load i32, ptr %2486, align 4, !tbaa !5
  %2488 = call ptr @strerror(i32 noundef %2487) #11
  %2489 = call ptr @__errno_location() #12
  %2490 = load i32, ptr %2489, align 4, !tbaa !5
  %2491 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2478, ptr noundef @.str.5, i32 noundef %2479, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 216, ptr noundef %2482, ptr noundef %2485, ptr noundef %2488, i32 noundef %2490) #11
  br label %2492

2492:                                             ; preds = %2475, %2458
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #11
  br label %2493

2493:                                             ; preds = %2492
  br label %2494

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

2495:                                             ; No predecessors!
  br label %2496

2496:                                             ; preds = %2495
  br label %2497

2497:                                             ; preds = %2496, %2436
  br label %2498

2498:                                             ; preds = %2497
  br label %2499

2499:                                             ; preds = %2498
  br label %2500

2500:                                             ; preds = %2499
  %2501 = load i32, ptr @test_count, align 4, !tbaa !5
  %2502 = add nsw i32 %2501, 1
  store i32 %2502, ptr @test_count, align 4, !tbaa !5
  %2503 = getelementptr inbounds %struct.s2n_ktls_crypto_info, ptr %55, i32 0, i32 0
  %2504 = getelementptr inbounds %struct.s2n_blob, ptr %2503, i32 0, i32 0
  %2505 = load ptr, ptr %2504, align 8, !tbaa !23
  %2506 = getelementptr inbounds %struct.s2n_ktls_crypto_info, ptr %55, i32 0, i32 1
  %2507 = icmp eq ptr %2505, %2506
  br i1 %2507, label %2561, label %2508

2508:                                             ; preds = %2500
  br label %2509

2509:                                             ; preds = %2508
  br label %2510

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

2517:                                             ; preds = %2510
  %2518 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2519 = call i32 @fileno(ptr noundef %2518) #11
  %2520 = call i32 @isatty(i32 noundef %2519) #11
  %2521 = icmp ne i32 %2520, 0
  br i1 %2521, label %2522, label %2539

2522:                                             ; preds = %2517
  %2523 = load i32, ptr %59, align 4, !tbaa !5
  %2524 = call ptr @__errno_location() #12
  store i32 %2523, ptr %2524, align 4, !tbaa !5
  %2525 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2526 = load i32, ptr @test_count, align 4, !tbaa !5
  %2527 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2528 = load i32, ptr %2527, align 4, !tbaa !5
  %2529 = call ptr @s2n_strerror(i32 noundef %2528, ptr noundef @.str.4)
  %2530 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2531 = load i32, ptr %2530, align 4, !tbaa !5
  %2532 = call ptr @s2n_strerror_debug(i32 noundef %2531, ptr noundef @.str.4)
  %2533 = call ptr @__errno_location() #12
  %2534 = load i32, ptr %2533, align 4, !tbaa !5
  %2535 = call ptr @strerror(i32 noundef %2534) #11
  %2536 = call ptr @__errno_location() #12
  %2537 = load i32, ptr %2536, align 4, !tbaa !5
  %2538 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2525, ptr noundef @.str.2, i32 noundef %2526, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 217, ptr noundef %2529, ptr noundef %2532, ptr noundef %2535, i32 noundef %2537) #11
  br label %2556

2539:                                             ; preds = %2517, %2510
  %2540 = load i32, ptr %59, align 4, !tbaa !5
  %2541 = call ptr @__errno_location() #12
  store i32 %2540, ptr %2541, align 4, !tbaa !5
  %2542 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2543 = load i32, ptr @test_count, align 4, !tbaa !5
  %2544 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2545 = load i32, ptr %2544, align 4, !tbaa !5
  %2546 = call ptr @s2n_strerror(i32 noundef %2545, ptr noundef @.str.4)
  %2547 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2548 = load i32, ptr %2547, align 4, !tbaa !5
  %2549 = call ptr @s2n_strerror_debug(i32 noundef %2548, ptr noundef @.str.4)
  %2550 = call ptr @__errno_location() #12
  %2551 = load i32, ptr %2550, align 4, !tbaa !5
  %2552 = call ptr @strerror(i32 noundef %2551) #11
  %2553 = call ptr @__errno_location() #12
  %2554 = load i32, ptr %2553, align 4, !tbaa !5
  %2555 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2542, ptr noundef @.str.5, i32 noundef %2543, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 217, ptr noundef %2546, ptr noundef %2549, ptr noundef %2552, i32 noundef %2554) #11
  br label %2556

2556:                                             ; preds = %2539, %2522
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #11
  br label %2557

2557:                                             ; preds = %2556
  br label %2558

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

2559:                                             ; No predecessors!
  br label %2560

2560:                                             ; preds = %2559
  br label %2561

2561:                                             ; preds = %2560, %2500
  br label %2562

2562:                                             ; preds = %2561
  br label %2563

2563:                                             ; preds = %2562
  call void @llvm.lifetime.start.p0(i64 8, ptr %60) #11
  %2564 = getelementptr inbounds %struct.s2n_ktls_crypto_info, ptr %55, i32 0, i32 0
  %2565 = getelementptr inbounds %struct.s2n_blob, ptr %2564, i32 0, i32 0
  %2566 = load ptr, ptr %2565, align 8, !tbaa !23
  store ptr %2566, ptr %60, align 8, !tbaa !9
  br label %2567

2567:                                             ; preds = %2563
  %2568 = load i32, ptr @test_count, align 4, !tbaa !5
  %2569 = add nsw i32 %2568, 1
  store i32 %2569, ptr @test_count, align 4, !tbaa !5
  %2570 = getelementptr inbounds %struct.s2n_blob, ptr %50, i32 0, i32 1
  %2571 = load i32, ptr %2570, align 8, !tbaa !24
  %2572 = zext i32 %2571 to i64
  %2573 = icmp eq i64 %2572, 1
  br i1 %2573, label %2627, label %2574

2574:                                             ; preds = %2567
  br label %2575

2575:                                             ; preds = %2574
  br label %2576

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

2583:                                             ; preds = %2576
  %2584 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2585 = call i32 @fileno(ptr noundef %2584) #11
  %2586 = call i32 @isatty(i32 noundef %2585) #11
  %2587 = icmp ne i32 %2586, 0
  br i1 %2587, label %2588, label %2605

2588:                                             ; preds = %2583
  %2589 = load i32, ptr %61, align 4, !tbaa !5
  %2590 = call ptr @__errno_location() #12
  store i32 %2589, ptr %2590, align 4, !tbaa !5
  %2591 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2592 = load i32, ptr @test_count, align 4, !tbaa !5
  %2593 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2594 = load i32, ptr %2593, align 4, !tbaa !5
  %2595 = call ptr @s2n_strerror(i32 noundef %2594, ptr noundef @.str.4)
  %2596 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2597 = load i32, ptr %2596, align 4, !tbaa !5
  %2598 = call ptr @s2n_strerror_debug(i32 noundef %2597, ptr noundef @.str.4)
  %2599 = call ptr @__errno_location() #12
  %2600 = load i32, ptr %2599, align 4, !tbaa !5
  %2601 = call ptr @strerror(i32 noundef %2600) #11
  %2602 = call ptr @__errno_location() #12
  %2603 = load i32, ptr %2602, align 4, !tbaa !5
  %2604 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2591, ptr noundef @.str.2, i32 noundef %2592, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 221, ptr noundef %2595, ptr noundef %2598, ptr noundef %2601, i32 noundef %2603) #11
  br label %2622

2605:                                             ; preds = %2583, %2576
  %2606 = load i32, ptr %61, align 4, !tbaa !5
  %2607 = call ptr @__errno_location() #12
  store i32 %2606, ptr %2607, align 4, !tbaa !5
  %2608 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2609 = load i32, ptr @test_count, align 4, !tbaa !5
  %2610 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2611 = load i32, ptr %2610, align 4, !tbaa !5
  %2612 = call ptr @s2n_strerror(i32 noundef %2611, ptr noundef @.str.4)
  %2613 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2614 = load i32, ptr %2613, align 4, !tbaa !5
  %2615 = call ptr @s2n_strerror_debug(i32 noundef %2614, ptr noundef @.str.4)
  %2616 = call ptr @__errno_location() #12
  %2617 = load i32, ptr %2616, align 4, !tbaa !5
  %2618 = call ptr @strerror(i32 noundef %2617) #11
  %2619 = call ptr @__errno_location() #12
  %2620 = load i32, ptr %2619, align 4, !tbaa !5
  %2621 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2608, ptr noundef @.str.5, i32 noundef %2609, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 221, ptr noundef %2612, ptr noundef %2615, ptr noundef %2618, i32 noundef %2620) #11
  br label %2622

2622:                                             ; preds = %2605, %2588
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #11
  br label %2623

2623:                                             ; preds = %2622
  br label %2624

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

2625:                                             ; No predecessors!
  br label %2626

2626:                                             ; preds = %2625
  br label %2627

2627:                                             ; preds = %2626, %2567
  br label %2628

2628:                                             ; preds = %2627
  br label %2629

2629:                                             ; preds = %2628
  br label %2630

2630:                                             ; preds = %2629
  br label %2631

2631:                                             ; preds = %2630
  %2632 = load i32, ptr @test_count, align 4, !tbaa !5
  %2633 = add nsw i32 %2632, 1
  store i32 %2633, ptr @test_count, align 4, !tbaa !5
  %2634 = getelementptr inbounds %struct.s2n_blob, ptr %50, i32 0, i32 0
  %2635 = load ptr, ptr %2634, align 8, !tbaa !25
  %2636 = load ptr, ptr %60, align 8, !tbaa !9
  %2637 = getelementptr inbounds %struct.s2n_ktls_crypto_info_stub, ptr %2636, i32 0, i32 2
  %2638 = getelementptr inbounds [1 x i8], ptr %2637, i64 0, i64 0
  %2639 = call i32 @memcmp(ptr noundef %2635, ptr noundef %2638, i64 noundef 1) #14
  %2640 = icmp eq i32 %2639, 0
  br i1 %2640, label %2694, label %2641

2641:                                             ; preds = %2631
  br label %2642

2642:                                             ; preds = %2641
  br label %2643

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

2650:                                             ; preds = %2643
  %2651 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2652 = call i32 @fileno(ptr noundef %2651) #11
  %2653 = call i32 @isatty(i32 noundef %2652) #11
  %2654 = icmp ne i32 %2653, 0
  br i1 %2654, label %2655, label %2672

2655:                                             ; preds = %2650
  %2656 = load i32, ptr %62, align 4, !tbaa !5
  %2657 = call ptr @__errno_location() #12
  store i32 %2656, ptr %2657, align 4, !tbaa !5
  %2658 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2659 = load i32, ptr @test_count, align 4, !tbaa !5
  %2660 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2661 = load i32, ptr %2660, align 4, !tbaa !5
  %2662 = call ptr @s2n_strerror(i32 noundef %2661, ptr noundef @.str.4)
  %2663 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2664 = load i32, ptr %2663, align 4, !tbaa !5
  %2665 = call ptr @s2n_strerror_debug(i32 noundef %2664, ptr noundef @.str.4)
  %2666 = call ptr @__errno_location() #12
  %2667 = load i32, ptr %2666, align 4, !tbaa !5
  %2668 = call ptr @strerror(i32 noundef %2667) #11
  %2669 = call ptr @__errno_location() #12
  %2670 = load i32, ptr %2669, align 4, !tbaa !5
  %2671 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2658, ptr noundef @.str.2, i32 noundef %2659, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 222, ptr noundef %2662, ptr noundef %2665, ptr noundef %2668, i32 noundef %2670) #11
  br label %2689

2672:                                             ; preds = %2650, %2643
  %2673 = load i32, ptr %62, align 4, !tbaa !5
  %2674 = call ptr @__errno_location() #12
  store i32 %2673, ptr %2674, align 4, !tbaa !5
  %2675 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2676 = load i32, ptr @test_count, align 4, !tbaa !5
  %2677 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2678 = load i32, ptr %2677, align 4, !tbaa !5
  %2679 = call ptr @s2n_strerror(i32 noundef %2678, ptr noundef @.str.4)
  %2680 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2681 = load i32, ptr %2680, align 4, !tbaa !5
  %2682 = call ptr @s2n_strerror_debug(i32 noundef %2681, ptr noundef @.str.4)
  %2683 = call ptr @__errno_location() #12
  %2684 = load i32, ptr %2683, align 4, !tbaa !5
  %2685 = call ptr @strerror(i32 noundef %2684) #11
  %2686 = call ptr @__errno_location() #12
  %2687 = load i32, ptr %2686, align 4, !tbaa !5
  %2688 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2675, ptr noundef @.str.5, i32 noundef %2676, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 222, ptr noundef %2679, ptr noundef %2682, ptr noundef %2685, i32 noundef %2687) #11
  br label %2689

2689:                                             ; preds = %2672, %2655
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #11
  br label %2690

2690:                                             ; preds = %2689
  br label %2691

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

2692:                                             ; No predecessors!
  br label %2693

2693:                                             ; preds = %2692
  br label %2694

2694:                                             ; preds = %2693, %2631
  br label %2695

2695:                                             ; preds = %2694
  br label %2696

2696:                                             ; preds = %2695
  br label %2697

2697:                                             ; preds = %2696
  br label %2698

2698:                                             ; preds = %2697
  br label %2699

2699:                                             ; preds = %2698
  %2700 = load i32, ptr @test_count, align 4, !tbaa !5
  %2701 = add nsw i32 %2700, 1
  store i32 %2701, ptr @test_count, align 4, !tbaa !5
  %2702 = getelementptr inbounds %struct.s2n_blob, ptr %27, i32 0, i32 1
  %2703 = load i32, ptr %2702, align 8, !tbaa !24
  %2704 = zext i32 %2703 to i64
  %2705 = icmp uge i64 %2704, 1
  br i1 %2705, label %2759, label %2706

2706:                                             ; preds = %2699
  br label %2707

2707:                                             ; preds = %2706
  br label %2708

2708:                                             ; preds = %2707
  call void @llvm.lifetime.start.p0(i64 4, ptr %63) #11
  %2709 = call ptr @__errno_location() #12
  %2710 = load i32, ptr %2709, align 4, !tbaa !5
  store i32 %2710, ptr %63, align 4, !tbaa !5
  %2711 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2712 = call i32 @s2n_print_stacktrace(ptr noundef %2711)
  %2713 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2714 = trunc i8 %2713 to i1
  br i1 %2714, label %2715, label %2737

2715:                                             ; preds = %2708
  %2716 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2717 = call i32 @fileno(ptr noundef %2716) #11
  %2718 = call i32 @isatty(i32 noundef %2717) #11
  %2719 = icmp ne i32 %2718, 0
  br i1 %2719, label %2720, label %2737

2720:                                             ; preds = %2715
  %2721 = load i32, ptr %63, align 4, !tbaa !5
  %2722 = call ptr @__errno_location() #12
  store i32 %2721, ptr %2722, align 4, !tbaa !5
  %2723 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2724 = load i32, ptr @test_count, align 4, !tbaa !5
  %2725 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2726 = load i32, ptr %2725, align 4, !tbaa !5
  %2727 = call ptr @s2n_strerror(i32 noundef %2726, ptr noundef @.str.4)
  %2728 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2729 = load i32, ptr %2728, align 4, !tbaa !5
  %2730 = call ptr @s2n_strerror_debug(i32 noundef %2729, ptr noundef @.str.4)
  %2731 = call ptr @__errno_location() #12
  %2732 = load i32, ptr %2731, align 4, !tbaa !5
  %2733 = call ptr @strerror(i32 noundef %2732) #11
  %2734 = call ptr @__errno_location() #12
  %2735 = load i32, ptr %2734, align 4, !tbaa !5
  %2736 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2723, ptr noundef @.str.2, i32 noundef %2724, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 224, ptr noundef %2727, ptr noundef %2730, ptr noundef %2733, i32 noundef %2735) #11
  br label %2754

2737:                                             ; preds = %2715, %2708
  %2738 = load i32, ptr %63, align 4, !tbaa !5
  %2739 = call ptr @__errno_location() #12
  store i32 %2738, ptr %2739, align 4, !tbaa !5
  %2740 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2741 = load i32, ptr @test_count, align 4, !tbaa !5
  %2742 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2743 = load i32, ptr %2742, align 4, !tbaa !5
  %2744 = call ptr @s2n_strerror(i32 noundef %2743, ptr noundef @.str.4)
  %2745 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2746 = load i32, ptr %2745, align 4, !tbaa !5
  %2747 = call ptr @s2n_strerror_debug(i32 noundef %2746, ptr noundef @.str.4)
  %2748 = call ptr @__errno_location() #12
  %2749 = load i32, ptr %2748, align 4, !tbaa !5
  %2750 = call ptr @strerror(i32 noundef %2749) #11
  %2751 = call ptr @__errno_location() #12
  %2752 = load i32, ptr %2751, align 4, !tbaa !5
  %2753 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2740, ptr noundef @.str.5, i32 noundef %2741, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 224, ptr noundef %2744, ptr noundef %2747, ptr noundef %2750, i32 noundef %2752) #11
  br label %2754

2754:                                             ; preds = %2737, %2720
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #11
  br label %2755

2755:                                             ; preds = %2754
  br label %2756

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

2757:                                             ; No predecessors!
  br label %2758

2758:                                             ; preds = %2757
  br label %2759

2759:                                             ; preds = %2758, %2699
  br label %2760

2760:                                             ; preds = %2759
  br label %2761

2761:                                             ; preds = %2760
  br label %2762

2762:                                             ; preds = %2761
  br label %2763

2763:                                             ; preds = %2762
  %2764 = load i32, ptr @test_count, align 4, !tbaa !5
  %2765 = add nsw i32 %2764, 1
  store i32 %2765, ptr @test_count, align 4, !tbaa !5
  %2766 = getelementptr inbounds %struct.s2n_blob, ptr %27, i32 0, i32 0
  %2767 = load ptr, ptr %2766, align 8, !tbaa !25
  %2768 = load ptr, ptr %60, align 8, !tbaa !9
  %2769 = getelementptr inbounds %struct.s2n_ktls_crypto_info_stub, ptr %2768, i32 0, i32 4
  %2770 = getelementptr inbounds [1 x i8], ptr %2769, i64 0, i64 0
  %2771 = call i32 @memcmp(ptr noundef %2767, ptr noundef %2770, i64 noundef 1) #14
  %2772 = icmp eq i32 %2771, 0
  br i1 %2772, label %2826, label %2773

2773:                                             ; preds = %2763
  br label %2774

2774:                                             ; preds = %2773
  br label %2775

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

2782:                                             ; preds = %2775
  %2783 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2784 = call i32 @fileno(ptr noundef %2783) #11
  %2785 = call i32 @isatty(i32 noundef %2784) #11
  %2786 = icmp ne i32 %2785, 0
  br i1 %2786, label %2787, label %2804

2787:                                             ; preds = %2782
  %2788 = load i32, ptr %64, align 4, !tbaa !5
  %2789 = call ptr @__errno_location() #12
  store i32 %2788, ptr %2789, align 4, !tbaa !5
  %2790 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2791 = load i32, ptr @test_count, align 4, !tbaa !5
  %2792 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2793 = load i32, ptr %2792, align 4, !tbaa !5
  %2794 = call ptr @s2n_strerror(i32 noundef %2793, ptr noundef @.str.4)
  %2795 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2796 = load i32, ptr %2795, align 4, !tbaa !5
  %2797 = call ptr @s2n_strerror_debug(i32 noundef %2796, ptr noundef @.str.4)
  %2798 = call ptr @__errno_location() #12
  %2799 = load i32, ptr %2798, align 4, !tbaa !5
  %2800 = call ptr @strerror(i32 noundef %2799) #11
  %2801 = call ptr @__errno_location() #12
  %2802 = load i32, ptr %2801, align 4, !tbaa !5
  %2803 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2790, ptr noundef @.str.2, i32 noundef %2791, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 225, ptr noundef %2794, ptr noundef %2797, ptr noundef %2800, i32 noundef %2802) #11
  br label %2821

2804:                                             ; preds = %2782, %2775
  %2805 = load i32, ptr %64, align 4, !tbaa !5
  %2806 = call ptr @__errno_location() #12
  store i32 %2805, ptr %2806, align 4, !tbaa !5
  %2807 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2808 = load i32, ptr @test_count, align 4, !tbaa !5
  %2809 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2810 = load i32, ptr %2809, align 4, !tbaa !5
  %2811 = call ptr @s2n_strerror(i32 noundef %2810, ptr noundef @.str.4)
  %2812 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2813 = load i32, ptr %2812, align 4, !tbaa !5
  %2814 = call ptr @s2n_strerror_debug(i32 noundef %2813, ptr noundef @.str.4)
  %2815 = call ptr @__errno_location() #12
  %2816 = load i32, ptr %2815, align 4, !tbaa !5
  %2817 = call ptr @strerror(i32 noundef %2816) #11
  %2818 = call ptr @__errno_location() #12
  %2819 = load i32, ptr %2818, align 4, !tbaa !5
  %2820 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2807, ptr noundef @.str.5, i32 noundef %2808, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 225, ptr noundef %2811, ptr noundef %2814, ptr noundef %2817, i32 noundef %2819) #11
  br label %2821

2821:                                             ; preds = %2804, %2787
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #11
  br label %2822

2822:                                             ; preds = %2821
  br label %2823

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

2824:                                             ; No predecessors!
  br label %2825

2825:                                             ; preds = %2824
  br label %2826

2826:                                             ; preds = %2825, %2763
  br label %2827

2827:                                             ; preds = %2826
  br label %2828

2828:                                             ; preds = %2827
  br label %2829

2829:                                             ; preds = %2828
  br label %2830

2830:                                             ; preds = %2829
  br label %2831

2831:                                             ; preds = %2830
  %2832 = load i32, ptr @test_count, align 4, !tbaa !5
  %2833 = add nsw i32 %2832, 1
  store i32 %2833, ptr @test_count, align 4, !tbaa !5
  %2834 = getelementptr inbounds %struct.s2n_blob, ptr %23, i32 0, i32 1
  %2835 = load i32, ptr %2834, align 8, !tbaa !24
  %2836 = zext i32 %2835 to i64
  %2837 = icmp uge i64 %2836, 1
  br i1 %2837, label %2891, label %2838

2838:                                             ; preds = %2831
  br label %2839

2839:                                             ; preds = %2838
  br label %2840

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

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

2852:                                             ; preds = %2847
  %2853 = load i32, ptr %65, align 4, !tbaa !5
  %2854 = call ptr @__errno_location() #12
  store i32 %2853, ptr %2854, align 4, !tbaa !5
  %2855 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2856 = load i32, ptr @test_count, align 4, !tbaa !5
  %2857 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2858 = load i32, ptr %2857, align 4, !tbaa !5
  %2859 = call ptr @s2n_strerror(i32 noundef %2858, ptr noundef @.str.4)
  %2860 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2861 = load i32, ptr %2860, align 4, !tbaa !5
  %2862 = call ptr @s2n_strerror_debug(i32 noundef %2861, ptr noundef @.str.4)
  %2863 = call ptr @__errno_location() #12
  %2864 = load i32, ptr %2863, align 4, !tbaa !5
  %2865 = call ptr @strerror(i32 noundef %2864) #11
  %2866 = call ptr @__errno_location() #12
  %2867 = load i32, ptr %2866, align 4, !tbaa !5
  %2868 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2855, ptr noundef @.str.2, i32 noundef %2856, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 227, ptr noundef %2859, ptr noundef %2862, ptr noundef %2865, i32 noundef %2867) #11
  br label %2886

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

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

2887:                                             ; preds = %2886
  br label %2888

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

2889:                                             ; No predecessors!
  br label %2890

2890:                                             ; preds = %2889
  br label %2891

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

2892:                                             ; preds = %2891
  br label %2893

2893:                                             ; preds = %2892
  br label %2894

2894:                                             ; preds = %2893
  br label %2895

2895:                                             ; preds = %2894
  %2896 = load i32, ptr @test_count, align 4, !tbaa !5
  %2897 = add nsw i32 %2896, 1
  store i32 %2897, ptr @test_count, align 4, !tbaa !5
  %2898 = getelementptr inbounds %struct.s2n_blob, ptr %23, i32 0, i32 0
  %2899 = load ptr, ptr %2898, align 8, !tbaa !25
  %2900 = load ptr, ptr %60, align 8, !tbaa !9
  %2901 = getelementptr inbounds %struct.s2n_ktls_crypto_info_stub, ptr %2900, i32 0, i32 3
  %2902 = getelementptr inbounds [1 x i8], ptr %2901, i64 0, i64 0
  %2903 = call i32 @memcmp(ptr noundef %2899, ptr noundef %2902, i64 noundef 1) #14
  %2904 = icmp eq i32 %2903, 0
  br i1 %2904, label %2958, label %2905

2905:                                             ; preds = %2895
  br label %2906

2906:                                             ; preds = %2905
  br label %2907

2907:                                             ; preds = %2906
  call void @llvm.lifetime.start.p0(i64 4, ptr %66) #11
  %2908 = call ptr @__errno_location() #12
  %2909 = load i32, ptr %2908, align 4, !tbaa !5
  store i32 %2909, ptr %66, align 4, !tbaa !5
  %2910 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2911 = call i32 @s2n_print_stacktrace(ptr noundef %2910)
  %2912 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2913 = trunc i8 %2912 to i1
  br i1 %2913, label %2914, label %2936

2914:                                             ; preds = %2907
  %2915 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2916 = call i32 @fileno(ptr noundef %2915) #11
  %2917 = call i32 @isatty(i32 noundef %2916) #11
  %2918 = icmp ne i32 %2917, 0
  br i1 %2918, label %2919, label %2936

2919:                                             ; preds = %2914
  %2920 = load i32, ptr %66, align 4, !tbaa !5
  %2921 = call ptr @__errno_location() #12
  store i32 %2920, ptr %2921, align 4, !tbaa !5
  %2922 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2923 = load i32, ptr @test_count, align 4, !tbaa !5
  %2924 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2925 = load i32, ptr %2924, align 4, !tbaa !5
  %2926 = call ptr @s2n_strerror(i32 noundef %2925, ptr noundef @.str.4)
  %2927 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2928 = load i32, ptr %2927, align 4, !tbaa !5
  %2929 = call ptr @s2n_strerror_debug(i32 noundef %2928, ptr noundef @.str.4)
  %2930 = call ptr @__errno_location() #12
  %2931 = load i32, ptr %2930, align 4, !tbaa !5
  %2932 = call ptr @strerror(i32 noundef %2931) #11
  %2933 = call ptr @__errno_location() #12
  %2934 = load i32, ptr %2933, align 4, !tbaa !5
  %2935 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2922, ptr noundef @.str.2, i32 noundef %2923, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 228, ptr noundef %2926, ptr noundef %2929, ptr noundef %2932, i32 noundef %2934) #11
  br label %2953

2936:                                             ; preds = %2914, %2907
  %2937 = load i32, ptr %66, align 4, !tbaa !5
  %2938 = call ptr @__errno_location() #12
  store i32 %2937, ptr %2938, align 4, !tbaa !5
  %2939 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2940 = load i32, ptr @test_count, align 4, !tbaa !5
  %2941 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2942 = load i32, ptr %2941, align 4, !tbaa !5
  %2943 = call ptr @s2n_strerror(i32 noundef %2942, ptr noundef @.str.4)
  %2944 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2945 = load i32, ptr %2944, align 4, !tbaa !5
  %2946 = call ptr @s2n_strerror_debug(i32 noundef %2945, ptr noundef @.str.4)
  %2947 = call ptr @__errno_location() #12
  %2948 = load i32, ptr %2947, align 4, !tbaa !5
  %2949 = call ptr @strerror(i32 noundef %2948) #11
  %2950 = call ptr @__errno_location() #12
  %2951 = load i32, ptr %2950, align 4, !tbaa !5
  %2952 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2939, ptr noundef @.str.5, i32 noundef %2940, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 228, ptr noundef %2943, ptr noundef %2946, ptr noundef %2949, i32 noundef %2951) #11
  br label %2953

2953:                                             ; preds = %2936, %2919
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #11
  br label %2954

2954:                                             ; preds = %2953
  br label %2955

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

2956:                                             ; No predecessors!
  br label %2957

2957:                                             ; preds = %2956
  br label %2958

2958:                                             ; preds = %2957, %2895
  br label %2959

2959:                                             ; preds = %2958
  br label %2960

2960:                                             ; preds = %2959
  br label %2961

2961:                                             ; preds = %2960
  br label %2962

2962:                                             ; preds = %2961
  br label %2963

2963:                                             ; preds = %2962
  %2964 = load i32, ptr @test_count, align 4, !tbaa !5
  %2965 = add nsw i32 %2964, 1
  store i32 %2965, ptr @test_count, align 4, !tbaa !5
  %2966 = getelementptr inbounds %struct.s2n_blob, ptr %23, i32 0, i32 1
  %2967 = load i32, ptr %2966, align 8, !tbaa !24
  %2968 = zext i32 %2967 to i64
  %2969 = icmp uge i64 %2968, 1
  br i1 %2969, label %3023, label %2970

2970:                                             ; preds = %2963
  br label %2971

2971:                                             ; preds = %2970
  br label %2972

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

2979:                                             ; preds = %2972
  %2980 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2981 = call i32 @fileno(ptr noundef %2980) #11
  %2982 = call i32 @isatty(i32 noundef %2981) #11
  %2983 = icmp ne i32 %2982, 0
  br i1 %2983, label %2984, label %3001

2984:                                             ; preds = %2979
  %2985 = load i32, ptr %67, align 4, !tbaa !5
  %2986 = call ptr @__errno_location() #12
  store i32 %2985, ptr %2986, align 4, !tbaa !5
  %2987 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2988 = load i32, ptr @test_count, align 4, !tbaa !5
  %2989 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2990 = load i32, ptr %2989, align 4, !tbaa !5
  %2991 = call ptr @s2n_strerror(i32 noundef %2990, ptr noundef @.str.4)
  %2992 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2993 = load i32, ptr %2992, align 4, !tbaa !5
  %2994 = call ptr @s2n_strerror_debug(i32 noundef %2993, ptr noundef @.str.4)
  %2995 = call ptr @__errno_location() #12
  %2996 = load i32, ptr %2995, align 4, !tbaa !5
  %2997 = call ptr @strerror(i32 noundef %2996) #11
  %2998 = call ptr @__errno_location() #12
  %2999 = load i32, ptr %2998, align 4, !tbaa !5
  %3000 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2987, ptr noundef @.str.2, i32 noundef %2988, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 230, ptr noundef %2991, ptr noundef %2994, ptr noundef %2997, i32 noundef %2999) #11
  br label %3018

3001:                                             ; preds = %2979, %2972
  %3002 = load i32, ptr %67, align 4, !tbaa !5
  %3003 = call ptr @__errno_location() #12
  store i32 %3002, ptr %3003, align 4, !tbaa !5
  %3004 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3005 = load i32, ptr @test_count, align 4, !tbaa !5
  %3006 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3007 = load i32, ptr %3006, align 4, !tbaa !5
  %3008 = call ptr @s2n_strerror(i32 noundef %3007, ptr noundef @.str.4)
  %3009 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3010 = load i32, ptr %3009, align 4, !tbaa !5
  %3011 = call ptr @s2n_strerror_debug(i32 noundef %3010, ptr noundef @.str.4)
  %3012 = call ptr @__errno_location() #12
  %3013 = load i32, ptr %3012, align 4, !tbaa !5
  %3014 = call ptr @strerror(i32 noundef %3013) #11
  %3015 = call ptr @__errno_location() #12
  %3016 = load i32, ptr %3015, align 4, !tbaa !5
  %3017 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3004, ptr noundef @.str.5, i32 noundef %3005, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 230, ptr noundef %3008, ptr noundef %3011, ptr noundef %3014, i32 noundef %3016) #11
  br label %3018

3018:                                             ; preds = %3001, %2984
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #11
  br label %3019

3019:                                             ; preds = %3018
  br label %3020

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

3021:                                             ; No predecessors!
  br label %3022

3022:                                             ; preds = %3021
  br label %3023

3023:                                             ; preds = %3022, %2963
  br label %3024

3024:                                             ; preds = %3023
  br label %3025

3025:                                             ; preds = %3024
  br label %3026

3026:                                             ; preds = %3025
  br label %3027

3027:                                             ; preds = %3026
  %3028 = load i32, ptr @test_count, align 4, !tbaa !5
  %3029 = add nsw i32 %3028, 1
  store i32 %3029, ptr @test_count, align 4, !tbaa !5
  %3030 = getelementptr inbounds %struct.s2n_blob, ptr %27, i32 0, i32 0
  %3031 = load ptr, ptr %3030, align 8, !tbaa !25
  %3032 = load ptr, ptr %60, align 8, !tbaa !9
  %3033 = getelementptr inbounds %struct.s2n_ktls_crypto_info_stub, ptr %3032, i32 0, i32 1
  %3034 = getelementptr inbounds [1 x i8], ptr %3033, i64 0, i64 0
  %3035 = call i32 @memcmp(ptr noundef %3031, ptr noundef %3034, i64 noundef 1) #14
  %3036 = icmp eq i32 %3035, 0
  br i1 %3036, label %3090, label %3037

3037:                                             ; preds = %3027
  br label %3038

3038:                                             ; preds = %3037
  br label %3039

3039:                                             ; preds = %3038
  call void @llvm.lifetime.start.p0(i64 4, ptr %68) #11
  %3040 = call ptr @__errno_location() #12
  %3041 = load i32, ptr %3040, align 4, !tbaa !5
  store i32 %3041, ptr %68, align 4, !tbaa !5
  %3042 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3043 = call i32 @s2n_print_stacktrace(ptr noundef %3042)
  %3044 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3045 = trunc i8 %3044 to i1
  br i1 %3045, label %3046, label %3068

3046:                                             ; preds = %3039
  %3047 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3048 = call i32 @fileno(ptr noundef %3047) #11
  %3049 = call i32 @isatty(i32 noundef %3048) #11
  %3050 = icmp ne i32 %3049, 0
  br i1 %3050, label %3051, label %3068

3051:                                             ; preds = %3046
  %3052 = load i32, ptr %68, align 4, !tbaa !5
  %3053 = call ptr @__errno_location() #12
  store i32 %3052, ptr %3053, align 4, !tbaa !5
  %3054 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3055 = load i32, ptr @test_count, align 4, !tbaa !5
  %3056 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3057 = load i32, ptr %3056, align 4, !tbaa !5
  %3058 = call ptr @s2n_strerror(i32 noundef %3057, ptr noundef @.str.4)
  %3059 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3060 = load i32, ptr %3059, align 4, !tbaa !5
  %3061 = call ptr @s2n_strerror_debug(i32 noundef %3060, ptr noundef @.str.4)
  %3062 = call ptr @__errno_location() #12
  %3063 = load i32, ptr %3062, align 4, !tbaa !5
  %3064 = call ptr @strerror(i32 noundef %3063) #11
  %3065 = call ptr @__errno_location() #12
  %3066 = load i32, ptr %3065, align 4, !tbaa !5
  %3067 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3054, ptr noundef @.str.2, i32 noundef %3055, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 231, ptr noundef %3058, ptr noundef %3061, ptr noundef %3064, i32 noundef %3066) #11
  br label %3085

3068:                                             ; preds = %3046, %3039
  %3069 = load i32, ptr %68, align 4, !tbaa !5
  %3070 = call ptr @__errno_location() #12
  store i32 %3069, ptr %3070, align 4, !tbaa !5
  %3071 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3072 = load i32, ptr @test_count, align 4, !tbaa !5
  %3073 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3074 = load i32, ptr %3073, align 4, !tbaa !5
  %3075 = call ptr @s2n_strerror(i32 noundef %3074, ptr noundef @.str.4)
  %3076 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3077 = load i32, ptr %3076, align 4, !tbaa !5
  %3078 = call ptr @s2n_strerror_debug(i32 noundef %3077, ptr noundef @.str.4)
  %3079 = call ptr @__errno_location() #12
  %3080 = load i32, ptr %3079, align 4, !tbaa !5
  %3081 = call ptr @strerror(i32 noundef %3080) #11
  %3082 = call ptr @__errno_location() #12
  %3083 = load i32, ptr %3082, align 4, !tbaa !5
  %3084 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3071, ptr noundef @.str.5, i32 noundef %3072, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 231, ptr noundef %3075, ptr noundef %3078, ptr noundef %3081, i32 noundef %3083) #11
  br label %3085

3085:                                             ; preds = %3068, %3051
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #11
  br label %3086

3086:                                             ; preds = %3085
  br label %3087

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

3088:                                             ; No predecessors!
  br label %3089

3089:                                             ; preds = %3088
  br label %3090

3090:                                             ; preds = %3089, %3027
  br label %3091

3091:                                             ; preds = %3090
  br label %3092

3092:                                             ; preds = %3091
  br label %3093

3093:                                             ; preds = %3092
  br label %3094

3094:                                             ; preds = %3093
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %55) #11
  call void @llvm.lifetime.end.p0(i64 72, ptr %54) #11
  %3095 = call i32 @s2n_free(ptr noundef %50)
  call void @llvm.lifetime.end.p0(i64 24, ptr %50) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %27) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %23) #11
  call void @llvm.lifetime.end.p0(i64 936, ptr %22) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %69) #11
  %3096 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %3096, ptr %69, align 8, !tbaa !9
  br label %3097

3097:                                             ; preds = %3094
  %3098 = load i32, ptr @test_count, align 4, !tbaa !5
  %3099 = add nsw i32 %3098, 1
  store i32 %3099, ptr @test_count, align 4, !tbaa !5
  %3100 = load ptr, ptr %69, align 8, !tbaa !9
  %3101 = call i32 @s2n_test_configure_connection_for_ktls(ptr noundef %3100)
  %3102 = getelementptr inbounds %struct.s2n_result, ptr %70, i32 0, i32 0
  store i32 %3101, ptr %3102, align 4
  %3103 = getelementptr inbounds %struct.s2n_result, ptr %70, i32 0, i32 0
  %3104 = load i32, ptr %3103, align 4
  %3105 = call zeroext i1 @s2n_result_is_ok(i32 %3104)
  br i1 %3105, label %3159, label %3106

3106:                                             ; preds = %3097
  br label %3107

3107:                                             ; preds = %3106
  br label %3108

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

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

3120:                                             ; preds = %3115
  %3121 = load i32, ptr %71, align 4, !tbaa !5
  %3122 = call ptr @__errno_location() #12
  store i32 %3121, ptr %3122, align 4, !tbaa !5
  %3123 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3124 = load i32, ptr @test_count, align 4, !tbaa !5
  %3125 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3126 = load i32, ptr %3125, align 4, !tbaa !5
  %3127 = call ptr @s2n_strerror(i32 noundef %3126, ptr noundef @.str.4)
  %3128 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3129 = load i32, ptr %3128, align 4, !tbaa !5
  %3130 = call ptr @s2n_strerror_debug(i32 noundef %3129, ptr noundef @.str.4)
  %3131 = call ptr @__errno_location() #12
  %3132 = load i32, ptr %3131, align 4, !tbaa !5
  %3133 = call ptr @strerror(i32 noundef %3132) #11
  %3134 = call ptr @__errno_location() #12
  %3135 = load i32, ptr %3134, align 4, !tbaa !5
  %3136 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3123, ptr noundef @.str.2, i32 noundef %3124, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 241, ptr noundef %3127, ptr noundef %3130, ptr noundef %3133, i32 noundef %3135) #11
  br label %3154

3137:                                             ; preds = %3115, %3108
  %3138 = load i32, ptr %71, align 4, !tbaa !5
  %3139 = call ptr @__errno_location() #12
  store i32 %3138, ptr %3139, align 4, !tbaa !5
  %3140 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3141 = load i32, ptr @test_count, align 4, !tbaa !5
  %3142 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3143 = load i32, ptr %3142, align 4, !tbaa !5
  %3144 = call ptr @s2n_strerror(i32 noundef %3143, ptr noundef @.str.4)
  %3145 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3146 = load i32, ptr %3145, align 4, !tbaa !5
  %3147 = call ptr @s2n_strerror_debug(i32 noundef %3146, ptr noundef @.str.4)
  %3148 = call ptr @__errno_location() #12
  %3149 = load i32, ptr %3148, align 4, !tbaa !5
  %3150 = call ptr @strerror(i32 noundef %3149) #11
  %3151 = call ptr @__errno_location() #12
  %3152 = load i32, ptr %3151, align 4, !tbaa !5
  %3153 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3140, ptr noundef @.str.5, i32 noundef %3141, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 241, ptr noundef %3144, ptr noundef %3147, ptr noundef %3150, i32 noundef %3152) #11
  br label %3154

3154:                                             ; preds = %3137, %3120
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #11
  br label %3155

3155:                                             ; preds = %3154
  br label %3156

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

3157:                                             ; No predecessors!
  br label %3158

3158:                                             ; preds = %3157
  br label %3159

3159:                                             ; preds = %3158, %3097
  br label %3160

3160:                                             ; preds = %3159
  br label %3161

3161:                                             ; preds = %3160
  call void @llvm.lifetime.start.p0(i64 8, ptr %72) #11
  store ptr null, ptr %72, align 8, !tbaa !9
  br label %3162

3162:                                             ; preds = %3161
  %3163 = load i32, ptr @test_count, align 4, !tbaa !5
  %3164 = add nsw i32 %3163, 1
  store i32 %3164, ptr @test_count, align 4, !tbaa !5
  %3165 = load ptr, ptr %69, align 8, !tbaa !9
  %3166 = call i32 @s2n_connection_get_secure_cipher(ptr noundef %3165, ptr noundef %72)
  %3167 = getelementptr inbounds %struct.s2n_result, ptr %73, i32 0, i32 0
  store i32 %3166, ptr %3167, align 4
  %3168 = getelementptr inbounds %struct.s2n_result, ptr %73, i32 0, i32 0
  %3169 = load i32, ptr %3168, align 4
  %3170 = call zeroext i1 @s2n_result_is_ok(i32 %3169)
  br i1 %3170, label %3224, label %3171

3171:                                             ; preds = %3162
  br label %3172

3172:                                             ; preds = %3171
  br label %3173

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

3180:                                             ; preds = %3173
  %3181 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3182 = call i32 @fileno(ptr noundef %3181) #11
  %3183 = call i32 @isatty(i32 noundef %3182) #11
  %3184 = icmp ne i32 %3183, 0
  br i1 %3184, label %3185, label %3202

3185:                                             ; preds = %3180
  %3186 = load i32, ptr %74, align 4, !tbaa !5
  %3187 = call ptr @__errno_location() #12
  store i32 %3186, ptr %3187, align 4, !tbaa !5
  %3188 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3189 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %3191, ptr noundef @.str.4)
  %3193 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3194 = load i32, ptr %3193, align 4, !tbaa !5
  %3195 = call ptr @s2n_strerror_debug(i32 noundef %3194, ptr noundef @.str.4)
  %3196 = call ptr @__errno_location() #12
  %3197 = load i32, ptr %3196, align 4, !tbaa !5
  %3198 = call ptr @strerror(i32 noundef %3197) #11
  %3199 = call ptr @__errno_location() #12
  %3200 = load i32, ptr %3199, align 4, !tbaa !5
  %3201 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3188, ptr noundef @.str.2, i32 noundef %3189, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 244, ptr noundef %3192, ptr noundef %3195, ptr noundef %3198, i32 noundef %3200) #11
  br label %3219

3202:                                             ; preds = %3180, %3173
  %3203 = load i32, ptr %74, align 4, !tbaa !5
  %3204 = call ptr @__errno_location() #12
  store i32 %3203, ptr %3204, align 4, !tbaa !5
  %3205 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3206 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %3208, ptr noundef @.str.4)
  %3210 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3211 = load i32, ptr %3210, align 4, !tbaa !5
  %3212 = call ptr @s2n_strerror_debug(i32 noundef %3211, ptr noundef @.str.4)
  %3213 = call ptr @__errno_location() #12
  %3214 = load i32, ptr %3213, align 4, !tbaa !5
  %3215 = call ptr @strerror(i32 noundef %3214) #11
  %3216 = call ptr @__errno_location() #12
  %3217 = load i32, ptr %3216, align 4, !tbaa !5
  %3218 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3205, ptr noundef @.str.5, i32 noundef %3206, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 244, ptr noundef %3209, ptr noundef %3212, ptr noundef %3215, i32 noundef %3217) #11
  br label %3219

3219:                                             ; preds = %3202, %3185
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #11
  br label %3220

3220:                                             ; preds = %3219
  br label %3221

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

3222:                                             ; No predecessors!
  br label %3223

3223:                                             ; preds = %3222
  br label %3224

3224:                                             ; preds = %3223, %3162
  br label %3225

3225:                                             ; preds = %3224
  br label %3226

3226:                                             ; preds = %3225
  br label %3227

3227:                                             ; preds = %3226
  %3228 = load i32, ptr @test_count, align 4, !tbaa !5
  %3229 = add nsw i32 %3228, 1
  store i32 %3229, ptr @test_count, align 4, !tbaa !5
  %3230 = load ptr, ptr %72, align 8, !tbaa !9
  %3231 = icmp eq ptr %3230, @s2n_aes128_gcm
  br i1 %3231, label %3285, label %3232

3232:                                             ; preds = %3227
  br label %3233

3233:                                             ; preds = %3232
  br label %3234

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

3241:                                             ; preds = %3234
  %3242 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3243 = call i32 @fileno(ptr noundef %3242) #11
  %3244 = call i32 @isatty(i32 noundef %3243) #11
  %3245 = icmp ne i32 %3244, 0
  br i1 %3245, label %3246, label %3263

3246:                                             ; preds = %3241
  %3247 = load i32, ptr %75, align 4, !tbaa !5
  %3248 = call ptr @__errno_location() #12
  store i32 %3247, ptr %3248, align 4, !tbaa !5
  %3249 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3250 = load i32, ptr @test_count, align 4, !tbaa !5
  %3251 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3252 = load i32, ptr %3251, align 4, !tbaa !5
  %3253 = call ptr @s2n_strerror(i32 noundef %3252, ptr noundef @.str.4)
  %3254 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3255 = load i32, ptr %3254, align 4, !tbaa !5
  %3256 = call ptr @s2n_strerror_debug(i32 noundef %3255, ptr noundef @.str.4)
  %3257 = call ptr @__errno_location() #12
  %3258 = load i32, ptr %3257, align 4, !tbaa !5
  %3259 = call ptr @strerror(i32 noundef %3258) #11
  %3260 = call ptr @__errno_location() #12
  %3261 = load i32, ptr %3260, align 4, !tbaa !5
  %3262 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3249, ptr noundef @.str.2, i32 noundef %3250, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 245, ptr noundef %3253, ptr noundef %3256, ptr noundef %3259, i32 noundef %3261) #11
  br label %3280

3263:                                             ; preds = %3241, %3234
  %3264 = load i32, ptr %75, align 4, !tbaa !5
  %3265 = call ptr @__errno_location() #12
  store i32 %3264, ptr %3265, align 4, !tbaa !5
  %3266 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3267 = load i32, ptr @test_count, align 4, !tbaa !5
  %3268 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3269 = load i32, ptr %3268, align 4, !tbaa !5
  %3270 = call ptr @s2n_strerror(i32 noundef %3269, ptr noundef @.str.4)
  %3271 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3272 = load i32, ptr %3271, align 4, !tbaa !5
  %3273 = call ptr @s2n_strerror_debug(i32 noundef %3272, ptr noundef @.str.4)
  %3274 = call ptr @__errno_location() #12
  %3275 = load i32, ptr %3274, align 4, !tbaa !5
  %3276 = call ptr @strerror(i32 noundef %3275) #11
  %3277 = call ptr @__errno_location() #12
  %3278 = load i32, ptr %3277, align 4, !tbaa !5
  %3279 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3266, ptr noundef @.str.5, i32 noundef %3267, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 245, ptr noundef %3270, ptr noundef %3273, ptr noundef %3276, i32 noundef %3278) #11
  br label %3280

3280:                                             ; preds = %3263, %3246
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #11
  br label %3281

3281:                                             ; preds = %3280
  br label %3282

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

3283:                                             ; No predecessors!
  br label %3284

3284:                                             ; preds = %3283
  br label %3285

3285:                                             ; preds = %3284, %3227
  br label %3286

3286:                                             ; preds = %3285
  br label %3287

3287:                                             ; preds = %3286
  br label %3288

3288:                                             ; preds = %3287
  %3289 = load i32, ptr @test_count, align 4, !tbaa !5
  %3290 = add nsw i32 %3289, 1
  store i32 %3290, ptr @test_count, align 4, !tbaa !5
  %3291 = call i32 @s2n_ktls_set_setsockopt_cb(ptr noundef @s2n_test_setsockopt_aes128_tx)
  %3292 = getelementptr inbounds %struct.s2n_result, ptr %76, i32 0, i32 0
  store i32 %3291, ptr %3292, align 4
  %3293 = getelementptr inbounds %struct.s2n_result, ptr %76, i32 0, i32 0
  %3294 = load i32, ptr %3293, align 4
  %3295 = call zeroext i1 @s2n_result_is_ok(i32 %3294)
  br i1 %3295, label %3349, label %3296

3296:                                             ; preds = %3288
  br label %3297

3297:                                             ; preds = %3296
  br label %3298

3298:                                             ; preds = %3297
  call void @llvm.lifetime.start.p0(i64 4, ptr %77) #11
  %3299 = call ptr @__errno_location() #12
  %3300 = load i32, ptr %3299, align 4, !tbaa !5
  store i32 %3300, ptr %77, align 4, !tbaa !5
  %3301 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3302 = call i32 @s2n_print_stacktrace(ptr noundef %3301)
  %3303 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3304 = trunc i8 %3303 to i1
  br i1 %3304, label %3305, label %3327

3305:                                             ; preds = %3298
  %3306 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3307 = call i32 @fileno(ptr noundef %3306) #11
  %3308 = call i32 @isatty(i32 noundef %3307) #11
  %3309 = icmp ne i32 %3308, 0
  br i1 %3309, label %3310, label %3327

3310:                                             ; preds = %3305
  %3311 = load i32, ptr %77, align 4, !tbaa !5
  %3312 = call ptr @__errno_location() #12
  store i32 %3311, ptr %3312, align 4, !tbaa !5
  %3313 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3314 = load i32, ptr @test_count, align 4, !tbaa !5
  %3315 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3316 = load i32, ptr %3315, align 4, !tbaa !5
  %3317 = call ptr @s2n_strerror(i32 noundef %3316, ptr noundef @.str.4)
  %3318 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3319 = load i32, ptr %3318, align 4, !tbaa !5
  %3320 = call ptr @s2n_strerror_debug(i32 noundef %3319, ptr noundef @.str.4)
  %3321 = call ptr @__errno_location() #12
  %3322 = load i32, ptr %3321, align 4, !tbaa !5
  %3323 = call ptr @strerror(i32 noundef %3322) #11
  %3324 = call ptr @__errno_location() #12
  %3325 = load i32, ptr %3324, align 4, !tbaa !5
  %3326 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3313, ptr noundef @.str.2, i32 noundef %3314, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 247, ptr noundef %3317, ptr noundef %3320, ptr noundef %3323, i32 noundef %3325) #11
  br label %3344

3327:                                             ; preds = %3305, %3298
  %3328 = load i32, ptr %77, align 4, !tbaa !5
  %3329 = call ptr @__errno_location() #12
  store i32 %3328, ptr %3329, align 4, !tbaa !5
  %3330 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3331 = load i32, ptr @test_count, align 4, !tbaa !5
  %3332 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3333 = load i32, ptr %3332, align 4, !tbaa !5
  %3334 = call ptr @s2n_strerror(i32 noundef %3333, ptr noundef @.str.4)
  %3335 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3336 = load i32, ptr %3335, align 4, !tbaa !5
  %3337 = call ptr @s2n_strerror_debug(i32 noundef %3336, ptr noundef @.str.4)
  %3338 = call ptr @__errno_location() #12
  %3339 = load i32, ptr %3338, align 4, !tbaa !5
  %3340 = call ptr @strerror(i32 noundef %3339) #11
  %3341 = call ptr @__errno_location() #12
  %3342 = load i32, ptr %3341, align 4, !tbaa !5
  %3343 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3330, ptr noundef @.str.5, i32 noundef %3331, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 247, ptr noundef %3334, ptr noundef %3337, ptr noundef %3340, i32 noundef %3342) #11
  br label %3344

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

3345:                                             ; preds = %3344
  br label %3346

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

3347:                                             ; No predecessors!
  br label %3348

3348:                                             ; preds = %3347
  br label %3349

3349:                                             ; preds = %3348, %3288
  br label %3350

3350:                                             ; preds = %3349
  br label %3351

3351:                                             ; preds = %3350
  br label %3352

3352:                                             ; preds = %3351
  %3353 = load i32, ptr @test_count, align 4, !tbaa !5
  %3354 = add nsw i32 %3353, 1
  store i32 %3354, ptr @test_count, align 4, !tbaa !5
  %3355 = load ptr, ptr %69, align 8, !tbaa !9
  %3356 = call i32 @s2n_connection_ktls_enable_send(ptr noundef %3355)
  %3357 = icmp eq i32 %3356, -1
  br i1 %3357, label %3358, label %3411

3358:                                             ; preds = %3352
  br label %3359

3359:                                             ; preds = %3358
  br label %3360

3360:                                             ; preds = %3359
  call void @llvm.lifetime.start.p0(i64 4, ptr %78) #11
  %3361 = call ptr @__errno_location() #12
  %3362 = load i32, ptr %3361, align 4, !tbaa !5
  store i32 %3362, ptr %78, align 4, !tbaa !5
  %3363 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3364 = call i32 @s2n_print_stacktrace(ptr noundef %3363)
  %3365 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3366 = trunc i8 %3365 to i1
  br i1 %3366, label %3367, label %3389

3367:                                             ; preds = %3360
  %3368 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3369 = call i32 @fileno(ptr noundef %3368) #11
  %3370 = call i32 @isatty(i32 noundef %3369) #11
  %3371 = icmp ne i32 %3370, 0
  br i1 %3371, label %3372, label %3389

3372:                                             ; preds = %3367
  %3373 = load i32, ptr %78, align 4, !tbaa !5
  %3374 = call ptr @__errno_location() #12
  store i32 %3373, ptr %3374, align 4, !tbaa !5
  %3375 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3376 = load i32, ptr @test_count, align 4, !tbaa !5
  %3377 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3378 = load i32, ptr %3377, align 4, !tbaa !5
  %3379 = call ptr @s2n_strerror(i32 noundef %3378, ptr noundef @.str.4)
  %3380 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3381 = load i32, ptr %3380, align 4, !tbaa !5
  %3382 = call ptr @s2n_strerror_debug(i32 noundef %3381, ptr noundef @.str.4)
  %3383 = call ptr @__errno_location() #12
  %3384 = load i32, ptr %3383, align 4, !tbaa !5
  %3385 = call ptr @strerror(i32 noundef %3384) #11
  %3386 = call ptr @__errno_location() #12
  %3387 = load i32, ptr %3386, align 4, !tbaa !5
  %3388 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3375, ptr noundef @.str.2, i32 noundef %3376, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 248, ptr noundef %3379, ptr noundef %3382, ptr noundef %3385, i32 noundef %3387) #11
  br label %3406

3389:                                             ; preds = %3367, %3360
  %3390 = load i32, ptr %78, align 4, !tbaa !5
  %3391 = call ptr @__errno_location() #12
  store i32 %3390, ptr %3391, align 4, !tbaa !5
  %3392 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3393 = load i32, ptr @test_count, align 4, !tbaa !5
  %3394 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3395 = load i32, ptr %3394, align 4, !tbaa !5
  %3396 = call ptr @s2n_strerror(i32 noundef %3395, ptr noundef @.str.4)
  %3397 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3398 = load i32, ptr %3397, align 4, !tbaa !5
  %3399 = call ptr @s2n_strerror_debug(i32 noundef %3398, ptr noundef @.str.4)
  %3400 = call ptr @__errno_location() #12
  %3401 = load i32, ptr %3400, align 4, !tbaa !5
  %3402 = call ptr @strerror(i32 noundef %3401) #11
  %3403 = call ptr @__errno_location() #12
  %3404 = load i32, ptr %3403, align 4, !tbaa !5
  %3405 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3392, ptr noundef @.str.5, i32 noundef %3393, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 248, ptr noundef %3396, ptr noundef %3399, ptr noundef %3402, i32 noundef %3404) #11
  br label %3406

3406:                                             ; preds = %3389, %3372
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #11
  br label %3407

3407:                                             ; preds = %3406
  br label %3408

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

3409:                                             ; No predecessors!
  br label %3410

3410:                                             ; preds = %3409
  br label %3411

3411:                                             ; preds = %3410, %3352
  br label %3412

3412:                                             ; preds = %3411
  br label %3413

3413:                                             ; preds = %3412
  br label %3414

3414:                                             ; preds = %3413
  %3415 = load i32, ptr @test_count, align 4, !tbaa !5
  %3416 = add nsw i32 %3415, 1
  store i32 %3416, ptr @test_count, align 4, !tbaa !5
  %3417 = load ptr, ptr %69, align 8, !tbaa !9
  %3418 = load i32, ptr %3417, align 8
  %3419 = lshr i32 %3418, 18
  %3420 = and i32 %3419, 1
  %3421 = icmp ne i32 %3420, 0
  br i1 %3421, label %3475, label %3422

3422:                                             ; preds = %3414
  br label %3423

3423:                                             ; preds = %3422
  br label %3424

3424:                                             ; preds = %3423
  call void @llvm.lifetime.start.p0(i64 4, ptr %79) #11
  %3425 = call ptr @__errno_location() #12
  %3426 = load i32, ptr %3425, align 4, !tbaa !5
  store i32 %3426, ptr %79, align 4, !tbaa !5
  %3427 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3428 = call i32 @s2n_print_stacktrace(ptr noundef %3427)
  %3429 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3430 = trunc i8 %3429 to i1
  br i1 %3430, label %3431, label %3453

3431:                                             ; preds = %3424
  %3432 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3433 = call i32 @fileno(ptr noundef %3432) #11
  %3434 = call i32 @isatty(i32 noundef %3433) #11
  %3435 = icmp ne i32 %3434, 0
  br i1 %3435, label %3436, label %3453

3436:                                             ; preds = %3431
  %3437 = load i32, ptr %79, align 4, !tbaa !5
  %3438 = call ptr @__errno_location() #12
  store i32 %3437, ptr %3438, align 4, !tbaa !5
  %3439 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3440 = load i32, ptr @test_count, align 4, !tbaa !5
  %3441 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3442 = load i32, ptr %3441, align 4, !tbaa !5
  %3443 = call ptr @s2n_strerror(i32 noundef %3442, ptr noundef @.str.4)
  %3444 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3445 = load i32, ptr %3444, align 4, !tbaa !5
  %3446 = call ptr @s2n_strerror_debug(i32 noundef %3445, ptr noundef @.str.4)
  %3447 = call ptr @__errno_location() #12
  %3448 = load i32, ptr %3447, align 4, !tbaa !5
  %3449 = call ptr @strerror(i32 noundef %3448) #11
  %3450 = call ptr @__errno_location() #12
  %3451 = load i32, ptr %3450, align 4, !tbaa !5
  %3452 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3439, ptr noundef @.str.2, i32 noundef %3440, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 249, ptr noundef %3443, ptr noundef %3446, ptr noundef %3449, i32 noundef %3451) #11
  br label %3470

3453:                                             ; preds = %3431, %3424
  %3454 = load i32, ptr %79, align 4, !tbaa !5
  %3455 = call ptr @__errno_location() #12
  store i32 %3454, ptr %3455, align 4, !tbaa !5
  %3456 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3457 = load i32, ptr @test_count, align 4, !tbaa !5
  %3458 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3459 = load i32, ptr %3458, align 4, !tbaa !5
  %3460 = call ptr @s2n_strerror(i32 noundef %3459, ptr noundef @.str.4)
  %3461 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3462 = load i32, ptr %3461, align 4, !tbaa !5
  %3463 = call ptr @s2n_strerror_debug(i32 noundef %3462, ptr noundef @.str.4)
  %3464 = call ptr @__errno_location() #12
  %3465 = load i32, ptr %3464, align 4, !tbaa !5
  %3466 = call ptr @strerror(i32 noundef %3465) #11
  %3467 = call ptr @__errno_location() #12
  %3468 = load i32, ptr %3467, align 4, !tbaa !5
  %3469 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3456, ptr noundef @.str.5, i32 noundef %3457, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 249, ptr noundef %3460, ptr noundef %3463, ptr noundef %3466, i32 noundef %3468) #11
  br label %3470

3470:                                             ; preds = %3453, %3436
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #11
  br label %3471

3471:                                             ; preds = %3470
  br label %3472

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

3473:                                             ; No predecessors!
  br label %3474

3474:                                             ; preds = %3473
  br label %3475

3475:                                             ; preds = %3474, %3414
  br label %3476

3476:                                             ; preds = %3475
  br label %3477

3477:                                             ; preds = %3476
  br label %3478

3478:                                             ; preds = %3477
  %3479 = load i32, ptr @test_count, align 4, !tbaa !5
  %3480 = add nsw i32 %3479, 1
  store i32 %3480, ptr @test_count, align 4, !tbaa !5
  %3481 = call i32 @s2n_ktls_set_setsockopt_cb(ptr noundef @s2n_test_setsockopt_aes128_rx)
  %3482 = getelementptr inbounds %struct.s2n_result, ptr %80, i32 0, i32 0
  store i32 %3481, ptr %3482, align 4
  %3483 = getelementptr inbounds %struct.s2n_result, ptr %80, i32 0, i32 0
  %3484 = load i32, ptr %3483, align 4
  %3485 = call zeroext i1 @s2n_result_is_ok(i32 %3484)
  br i1 %3485, label %3539, label %3486

3486:                                             ; preds = %3478
  br label %3487

3487:                                             ; preds = %3486
  br label %3488

3488:                                             ; preds = %3487
  call void @llvm.lifetime.start.p0(i64 4, ptr %81) #11
  %3489 = call ptr @__errno_location() #12
  %3490 = load i32, ptr %3489, align 4, !tbaa !5
  store i32 %3490, ptr %81, align 4, !tbaa !5
  %3491 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3492 = call i32 @s2n_print_stacktrace(ptr noundef %3491)
  %3493 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3494 = trunc i8 %3493 to i1
  br i1 %3494, label %3495, label %3517

3495:                                             ; preds = %3488
  %3496 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3497 = call i32 @fileno(ptr noundef %3496) #11
  %3498 = call i32 @isatty(i32 noundef %3497) #11
  %3499 = icmp ne i32 %3498, 0
  br i1 %3499, label %3500, label %3517

3500:                                             ; preds = %3495
  %3501 = load i32, ptr %81, align 4, !tbaa !5
  %3502 = call ptr @__errno_location() #12
  store i32 %3501, ptr %3502, align 4, !tbaa !5
  %3503 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3504 = load i32, ptr @test_count, align 4, !tbaa !5
  %3505 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3506 = load i32, ptr %3505, align 4, !tbaa !5
  %3507 = call ptr @s2n_strerror(i32 noundef %3506, ptr noundef @.str.4)
  %3508 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3509 = load i32, ptr %3508, align 4, !tbaa !5
  %3510 = call ptr @s2n_strerror_debug(i32 noundef %3509, ptr noundef @.str.4)
  %3511 = call ptr @__errno_location() #12
  %3512 = load i32, ptr %3511, align 4, !tbaa !5
  %3513 = call ptr @strerror(i32 noundef %3512) #11
  %3514 = call ptr @__errno_location() #12
  %3515 = load i32, ptr %3514, align 4, !tbaa !5
  %3516 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3503, ptr noundef @.str.2, i32 noundef %3504, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 251, ptr noundef %3507, ptr noundef %3510, ptr noundef %3513, i32 noundef %3515) #11
  br label %3534

3517:                                             ; preds = %3495, %3488
  %3518 = load i32, ptr %81, align 4, !tbaa !5
  %3519 = call ptr @__errno_location() #12
  store i32 %3518, ptr %3519, align 4, !tbaa !5
  %3520 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3521 = load i32, ptr @test_count, align 4, !tbaa !5
  %3522 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3523 = load i32, ptr %3522, align 4, !tbaa !5
  %3524 = call ptr @s2n_strerror(i32 noundef %3523, ptr noundef @.str.4)
  %3525 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3526 = load i32, ptr %3525, align 4, !tbaa !5
  %3527 = call ptr @s2n_strerror_debug(i32 noundef %3526, ptr noundef @.str.4)
  %3528 = call ptr @__errno_location() #12
  %3529 = load i32, ptr %3528, align 4, !tbaa !5
  %3530 = call ptr @strerror(i32 noundef %3529) #11
  %3531 = call ptr @__errno_location() #12
  %3532 = load i32, ptr %3531, align 4, !tbaa !5
  %3533 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3520, ptr noundef @.str.5, i32 noundef %3521, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 251, ptr noundef %3524, ptr noundef %3527, ptr noundef %3530, i32 noundef %3532) #11
  br label %3534

3534:                                             ; preds = %3517, %3500
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #11
  br label %3535

3535:                                             ; preds = %3534
  br label %3536

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

3537:                                             ; No predecessors!
  br label %3538

3538:                                             ; preds = %3537
  br label %3539

3539:                                             ; preds = %3538, %3478
  br label %3540

3540:                                             ; preds = %3539
  br label %3541

3541:                                             ; preds = %3540
  br label %3542

3542:                                             ; preds = %3541
  %3543 = load i32, ptr @test_count, align 4, !tbaa !5
  %3544 = add nsw i32 %3543, 1
  store i32 %3544, ptr @test_count, align 4, !tbaa !5
  %3545 = load ptr, ptr %69, align 8, !tbaa !9
  %3546 = call i32 @s2n_connection_ktls_enable_recv(ptr noundef %3545)
  %3547 = icmp eq i32 %3546, -1
  br i1 %3547, label %3548, label %3601

3548:                                             ; preds = %3542
  br label %3549

3549:                                             ; preds = %3548
  br label %3550

3550:                                             ; preds = %3549
  call void @llvm.lifetime.start.p0(i64 4, ptr %82) #11
  %3551 = call ptr @__errno_location() #12
  %3552 = load i32, ptr %3551, align 4, !tbaa !5
  store i32 %3552, ptr %82, align 4, !tbaa !5
  %3553 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3554 = call i32 @s2n_print_stacktrace(ptr noundef %3553)
  %3555 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3556 = trunc i8 %3555 to i1
  br i1 %3556, label %3557, label %3579

3557:                                             ; preds = %3550
  %3558 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3559 = call i32 @fileno(ptr noundef %3558) #11
  %3560 = call i32 @isatty(i32 noundef %3559) #11
  %3561 = icmp ne i32 %3560, 0
  br i1 %3561, label %3562, label %3579

3562:                                             ; preds = %3557
  %3563 = load i32, ptr %82, align 4, !tbaa !5
  %3564 = call ptr @__errno_location() #12
  store i32 %3563, ptr %3564, align 4, !tbaa !5
  %3565 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3566 = load i32, ptr @test_count, align 4, !tbaa !5
  %3567 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3568 = load i32, ptr %3567, align 4, !tbaa !5
  %3569 = call ptr @s2n_strerror(i32 noundef %3568, ptr noundef @.str.4)
  %3570 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3571 = load i32, ptr %3570, align 4, !tbaa !5
  %3572 = call ptr @s2n_strerror_debug(i32 noundef %3571, ptr noundef @.str.4)
  %3573 = call ptr @__errno_location() #12
  %3574 = load i32, ptr %3573, align 4, !tbaa !5
  %3575 = call ptr @strerror(i32 noundef %3574) #11
  %3576 = call ptr @__errno_location() #12
  %3577 = load i32, ptr %3576, align 4, !tbaa !5
  %3578 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3565, ptr noundef @.str.2, i32 noundef %3566, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 252, ptr noundef %3569, ptr noundef %3572, ptr noundef %3575, i32 noundef %3577) #11
  br label %3596

3579:                                             ; preds = %3557, %3550
  %3580 = load i32, ptr %82, align 4, !tbaa !5
  %3581 = call ptr @__errno_location() #12
  store i32 %3580, ptr %3581, align 4, !tbaa !5
  %3582 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3583 = load i32, ptr @test_count, align 4, !tbaa !5
  %3584 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3585 = load i32, ptr %3584, align 4, !tbaa !5
  %3586 = call ptr @s2n_strerror(i32 noundef %3585, ptr noundef @.str.4)
  %3587 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3588 = load i32, ptr %3587, align 4, !tbaa !5
  %3589 = call ptr @s2n_strerror_debug(i32 noundef %3588, ptr noundef @.str.4)
  %3590 = call ptr @__errno_location() #12
  %3591 = load i32, ptr %3590, align 4, !tbaa !5
  %3592 = call ptr @strerror(i32 noundef %3591) #11
  %3593 = call ptr @__errno_location() #12
  %3594 = load i32, ptr %3593, align 4, !tbaa !5
  %3595 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3582, ptr noundef @.str.5, i32 noundef %3583, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 252, ptr noundef %3586, ptr noundef %3589, ptr noundef %3592, i32 noundef %3594) #11
  br label %3596

3596:                                             ; preds = %3579, %3562
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #11
  br label %3597

3597:                                             ; preds = %3596
  br label %3598

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

3599:                                             ; No predecessors!
  br label %3600

3600:                                             ; preds = %3599
  br label %3601

3601:                                             ; preds = %3600, %3542
  br label %3602

3602:                                             ; preds = %3601
  br label %3603

3603:                                             ; preds = %3602
  br label %3604

3604:                                             ; preds = %3603
  %3605 = load i32, ptr @test_count, align 4, !tbaa !5
  %3606 = add nsw i32 %3605, 1
  store i32 %3606, ptr @test_count, align 4, !tbaa !5
  %3607 = load ptr, ptr %69, align 8, !tbaa !9
  %3608 = load i32, ptr %3607, align 8
  %3609 = lshr i32 %3608, 19
  %3610 = and i32 %3609, 1
  %3611 = icmp ne i32 %3610, 0
  br i1 %3611, label %3665, label %3612

3612:                                             ; preds = %3604
  br label %3613

3613:                                             ; preds = %3612
  br label %3614

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

3621:                                             ; preds = %3614
  %3622 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3623 = call i32 @fileno(ptr noundef %3622) #11
  %3624 = call i32 @isatty(i32 noundef %3623) #11
  %3625 = icmp ne i32 %3624, 0
  br i1 %3625, label %3626, label %3643

3626:                                             ; preds = %3621
  %3627 = load i32, ptr %83, align 4, !tbaa !5
  %3628 = call ptr @__errno_location() #12
  store i32 %3627, ptr %3628, align 4, !tbaa !5
  %3629 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3630 = load i32, ptr @test_count, align 4, !tbaa !5
  %3631 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3632 = load i32, ptr %3631, align 4, !tbaa !5
  %3633 = call ptr @s2n_strerror(i32 noundef %3632, ptr noundef @.str.4)
  %3634 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3635 = load i32, ptr %3634, align 4, !tbaa !5
  %3636 = call ptr @s2n_strerror_debug(i32 noundef %3635, ptr noundef @.str.4)
  %3637 = call ptr @__errno_location() #12
  %3638 = load i32, ptr %3637, align 4, !tbaa !5
  %3639 = call ptr @strerror(i32 noundef %3638) #11
  %3640 = call ptr @__errno_location() #12
  %3641 = load i32, ptr %3640, align 4, !tbaa !5
  %3642 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3629, ptr noundef @.str.2, i32 noundef %3630, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 253, ptr noundef %3633, ptr noundef %3636, ptr noundef %3639, i32 noundef %3641) #11
  br label %3660

3643:                                             ; preds = %3621, %3614
  %3644 = load i32, ptr %83, align 4, !tbaa !5
  %3645 = call ptr @__errno_location() #12
  store i32 %3644, ptr %3645, align 4, !tbaa !5
  %3646 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3647 = load i32, ptr @test_count, align 4, !tbaa !5
  %3648 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3649 = load i32, ptr %3648, align 4, !tbaa !5
  %3650 = call ptr @s2n_strerror(i32 noundef %3649, ptr noundef @.str.4)
  %3651 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3652 = load i32, ptr %3651, align 4, !tbaa !5
  %3653 = call ptr @s2n_strerror_debug(i32 noundef %3652, ptr noundef @.str.4)
  %3654 = call ptr @__errno_location() #12
  %3655 = load i32, ptr %3654, align 4, !tbaa !5
  %3656 = call ptr @strerror(i32 noundef %3655) #11
  %3657 = call ptr @__errno_location() #12
  %3658 = load i32, ptr %3657, align 4, !tbaa !5
  %3659 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3646, ptr noundef @.str.5, i32 noundef %3647, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 253, ptr noundef %3650, ptr noundef %3653, ptr noundef %3656, i32 noundef %3658) #11
  br label %3660

3660:                                             ; preds = %3643, %3626
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #11
  br label %3661

3661:                                             ; preds = %3660
  br label %3662

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

3663:                                             ; No predecessors!
  br label %3664

3664:                                             ; preds = %3663
  br label %3665

3665:                                             ; preds = %3664, %3604
  br label %3666

3666:                                             ; preds = %3665
  br label %3667

3667:                                             ; preds = %3666
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #11
  %3668 = call i32 @s2n_connection_ptr_free(ptr noundef %69)
  %3669 = getelementptr inbounds %struct.s2n_result, ptr %84, i32 0, i32 0
  store i32 %3668, ptr %3669, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %85) #11
  %3670 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %3670, ptr %85, align 8, !tbaa !9
  br label %3671

3671:                                             ; preds = %3667
  %3672 = load i32, ptr @test_count, align 4, !tbaa !5
  %3673 = add nsw i32 %3672, 1
  store i32 %3673, ptr @test_count, align 4, !tbaa !5
  %3674 = load ptr, ptr %85, align 8, !tbaa !9
  %3675 = call i32 @s2n_test_configure_connection_for_ktls(ptr noundef %3674)
  %3676 = getelementptr inbounds %struct.s2n_result, ptr %86, i32 0, i32 0
  store i32 %3675, ptr %3676, align 4
  %3677 = getelementptr inbounds %struct.s2n_result, ptr %86, i32 0, i32 0
  %3678 = load i32, ptr %3677, align 4
  %3679 = call zeroext i1 @s2n_result_is_ok(i32 %3678)
  br i1 %3679, label %3733, label %3680

3680:                                             ; preds = %3671
  br label %3681

3681:                                             ; preds = %3680
  br label %3682

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

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

3694:                                             ; preds = %3689
  %3695 = load i32, ptr %87, align 4, !tbaa !5
  %3696 = call ptr @__errno_location() #12
  store i32 %3695, ptr %3696, align 4, !tbaa !5
  %3697 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3698 = load i32, ptr @test_count, align 4, !tbaa !5
  %3699 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3700 = load i32, ptr %3699, align 4, !tbaa !5
  %3701 = call ptr @s2n_strerror(i32 noundef %3700, ptr noundef @.str.4)
  %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_debug(i32 noundef %3703, ptr noundef @.str.4)
  %3705 = call ptr @__errno_location() #12
  %3706 = load i32, ptr %3705, align 4, !tbaa !5
  %3707 = call ptr @strerror(i32 noundef %3706) #11
  %3708 = call ptr @__errno_location() #12
  %3709 = load i32, ptr %3708, align 4, !tbaa !5
  %3710 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3697, ptr noundef @.str.2, i32 noundef %3698, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 260, ptr noundef %3701, ptr noundef %3704, ptr noundef %3707, i32 noundef %3709) #11
  br label %3728

3711:                                             ; preds = %3689, %3682
  %3712 = load i32, ptr %87, align 4, !tbaa !5
  %3713 = call ptr @__errno_location() #12
  store i32 %3712, ptr %3713, align 4, !tbaa !5
  %3714 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3715 = load i32, ptr @test_count, align 4, !tbaa !5
  %3716 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3717 = load i32, ptr %3716, align 4, !tbaa !5
  %3718 = call ptr @s2n_strerror(i32 noundef %3717, ptr noundef @.str.4)
  %3719 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3720 = load i32, ptr %3719, align 4, !tbaa !5
  %3721 = call ptr @s2n_strerror_debug(i32 noundef %3720, ptr noundef @.str.4)
  %3722 = call ptr @__errno_location() #12
  %3723 = load i32, ptr %3722, align 4, !tbaa !5
  %3724 = call ptr @strerror(i32 noundef %3723) #11
  %3725 = call ptr @__errno_location() #12
  %3726 = load i32, ptr %3725, align 4, !tbaa !5
  %3727 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3714, ptr noundef @.str.5, i32 noundef %3715, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 260, ptr noundef %3718, ptr noundef %3721, ptr noundef %3724, i32 noundef %3726) #11
  br label %3728

3728:                                             ; preds = %3711, %3694
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #11
  br label %3729

3729:                                             ; preds = %3728
  br label %3730

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

3731:                                             ; No predecessors!
  br label %3732

3732:                                             ; preds = %3731
  br label %3733

3733:                                             ; preds = %3732, %3671
  br label %3734

3734:                                             ; preds = %3733
  br label %3735

3735:                                             ; preds = %3734
  br label %3736

3736:                                             ; preds = %3735
  %3737 = load i32, ptr @test_count, align 4, !tbaa !5
  %3738 = add nsw i32 %3737, 1
  store i32 %3738, ptr @test_count, align 4, !tbaa !5
  %3739 = call i32 @s2n_ktls_set_setsockopt_cb(ptr noundef @s2n_test_setsockopt_tcp_error)
  %3740 = getelementptr inbounds %struct.s2n_result, ptr %88, i32 0, i32 0
  store i32 %3739, ptr %3740, align 4
  %3741 = getelementptr inbounds %struct.s2n_result, ptr %88, i32 0, i32 0
  %3742 = load i32, ptr %3741, align 4
  %3743 = call zeroext i1 @s2n_result_is_ok(i32 %3742)
  br i1 %3743, label %3797, label %3744

3744:                                             ; preds = %3736
  br label %3745

3745:                                             ; preds = %3744
  br label %3746

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

3753:                                             ; preds = %3746
  %3754 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3755 = call i32 @fileno(ptr noundef %3754) #11
  %3756 = call i32 @isatty(i32 noundef %3755) #11
  %3757 = icmp ne i32 %3756, 0
  br i1 %3757, label %3758, label %3775

3758:                                             ; preds = %3753
  %3759 = load i32, ptr %89, align 4, !tbaa !5
  %3760 = call ptr @__errno_location() #12
  store i32 %3759, ptr %3760, align 4, !tbaa !5
  %3761 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3762 = load i32, ptr @test_count, align 4, !tbaa !5
  %3763 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3764 = load i32, ptr %3763, align 4, !tbaa !5
  %3765 = call ptr @s2n_strerror(i32 noundef %3764, ptr noundef @.str.4)
  %3766 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3767 = load i32, ptr %3766, align 4, !tbaa !5
  %3768 = call ptr @s2n_strerror_debug(i32 noundef %3767, ptr noundef @.str.4)
  %3769 = call ptr @__errno_location() #12
  %3770 = load i32, ptr %3769, align 4, !tbaa !5
  %3771 = call ptr @strerror(i32 noundef %3770) #11
  %3772 = call ptr @__errno_location() #12
  %3773 = load i32, ptr %3772, align 4, !tbaa !5
  %3774 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3761, ptr noundef @.str.2, i32 noundef %3762, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 261, ptr noundef %3765, ptr noundef %3768, ptr noundef %3771, i32 noundef %3773) #11
  br label %3792

3775:                                             ; preds = %3753, %3746
  %3776 = load i32, ptr %89, align 4, !tbaa !5
  %3777 = call ptr @__errno_location() #12
  store i32 %3776, ptr %3777, align 4, !tbaa !5
  %3778 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3779 = load i32, ptr @test_count, align 4, !tbaa !5
  %3780 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3781 = load i32, ptr %3780, align 4, !tbaa !5
  %3782 = call ptr @s2n_strerror(i32 noundef %3781, ptr noundef @.str.4)
  %3783 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3784 = load i32, ptr %3783, align 4, !tbaa !5
  %3785 = call ptr @s2n_strerror_debug(i32 noundef %3784, ptr noundef @.str.4)
  %3786 = call ptr @__errno_location() #12
  %3787 = load i32, ptr %3786, align 4, !tbaa !5
  %3788 = call ptr @strerror(i32 noundef %3787) #11
  %3789 = call ptr @__errno_location() #12
  %3790 = load i32, ptr %3789, align 4, !tbaa !5
  %3791 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3778, ptr noundef @.str.5, i32 noundef %3779, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 261, ptr noundef %3782, ptr noundef %3785, ptr noundef %3788, i32 noundef %3790) #11
  br label %3792

3792:                                             ; preds = %3775, %3758
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #11
  br label %3793

3793:                                             ; preds = %3792
  br label %3794

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

3795:                                             ; No predecessors!
  br label %3796

3796:                                             ; preds = %3795
  br label %3797

3797:                                             ; preds = %3796, %3736
  br label %3798

3798:                                             ; preds = %3797
  br label %3799

3799:                                             ; preds = %3798
  br label %3800

3800:                                             ; preds = %3799
  %3801 = load i32, ptr @test_count, align 4, !tbaa !5
  %3802 = add nsw i32 %3801, 1
  store i32 %3802, ptr @test_count, align 4, !tbaa !5
  %3803 = load ptr, ptr %85, align 8, !tbaa !9
  %3804 = call i32 @s2n_connection_ktls_enable_send(ptr noundef %3803)
  %3805 = icmp eq i32 %3804, -1
  br i1 %3805, label %3806, label %3859

3806:                                             ; preds = %3800
  br label %3807

3807:                                             ; preds = %3806
  br label %3808

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

3815:                                             ; preds = %3808
  %3816 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3817 = call i32 @fileno(ptr noundef %3816) #11
  %3818 = call i32 @isatty(i32 noundef %3817) #11
  %3819 = icmp ne i32 %3818, 0
  br i1 %3819, label %3820, label %3837

3820:                                             ; preds = %3815
  %3821 = load i32, ptr %90, align 4, !tbaa !5
  %3822 = call ptr @__errno_location() #12
  store i32 %3821, ptr %3822, align 4, !tbaa !5
  %3823 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3824 = load i32, ptr @test_count, align 4, !tbaa !5
  %3825 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3826 = load i32, ptr %3825, align 4, !tbaa !5
  %3827 = call ptr @s2n_strerror(i32 noundef %3826, ptr noundef @.str.4)
  %3828 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3829 = load i32, ptr %3828, align 4, !tbaa !5
  %3830 = call ptr @s2n_strerror_debug(i32 noundef %3829, ptr noundef @.str.4)
  %3831 = call ptr @__errno_location() #12
  %3832 = load i32, ptr %3831, align 4, !tbaa !5
  %3833 = call ptr @strerror(i32 noundef %3832) #11
  %3834 = call ptr @__errno_location() #12
  %3835 = load i32, ptr %3834, align 4, !tbaa !5
  %3836 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3823, ptr noundef @.str.2, i32 noundef %3824, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 264, ptr noundef %3827, ptr noundef %3830, ptr noundef %3833, i32 noundef %3835) #11
  br label %3854

3837:                                             ; preds = %3815, %3808
  %3838 = load i32, ptr %90, align 4, !tbaa !5
  %3839 = call ptr @__errno_location() #12
  store i32 %3838, ptr %3839, align 4, !tbaa !5
  %3840 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3841 = load i32, ptr @test_count, align 4, !tbaa !5
  %3842 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3843 = load i32, ptr %3842, align 4, !tbaa !5
  %3844 = call ptr @s2n_strerror(i32 noundef %3843, ptr noundef @.str.4)
  %3845 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3846 = load i32, ptr %3845, align 4, !tbaa !5
  %3847 = call ptr @s2n_strerror_debug(i32 noundef %3846, ptr noundef @.str.4)
  %3848 = call ptr @__errno_location() #12
  %3849 = load i32, ptr %3848, align 4, !tbaa !5
  %3850 = call ptr @strerror(i32 noundef %3849) #11
  %3851 = call ptr @__errno_location() #12
  %3852 = load i32, ptr %3851, align 4, !tbaa !5
  %3853 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3840, ptr noundef @.str.5, i32 noundef %3841, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 264, ptr noundef %3844, ptr noundef %3847, ptr noundef %3850, i32 noundef %3852) #11
  br label %3854

3854:                                             ; preds = %3837, %3820
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #11
  br label %3855

3855:                                             ; preds = %3854
  br label %3856

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

3857:                                             ; No predecessors!
  br label %3858

3858:                                             ; preds = %3857
  br label %3859

3859:                                             ; preds = %3858, %3800
  br label %3860

3860:                                             ; preds = %3859
  br label %3861

3861:                                             ; preds = %3860
  br label %3862

3862:                                             ; preds = %3861
  %3863 = load i32, ptr @test_count, align 4, !tbaa !5
  %3864 = add nsw i32 %3863, 1
  store i32 %3864, ptr @test_count, align 4, !tbaa !5
  %3865 = load ptr, ptr %85, align 8, !tbaa !9
  %3866 = call i32 @s2n_connection_ktls_enable_recv(ptr noundef %3865)
  %3867 = icmp eq i32 %3866, -1
  br i1 %3867, label %3868, label %3921

3868:                                             ; preds = %3862
  br label %3869

3869:                                             ; preds = %3868
  br label %3870

3870:                                             ; preds = %3869
  call void @llvm.lifetime.start.p0(i64 4, ptr %91) #11
  %3871 = call ptr @__errno_location() #12
  %3872 = load i32, ptr %3871, align 4, !tbaa !5
  store i32 %3872, ptr %91, align 4, !tbaa !5
  %3873 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3874 = call i32 @s2n_print_stacktrace(ptr noundef %3873)
  %3875 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3876 = trunc i8 %3875 to i1
  br i1 %3876, label %3877, label %3899

3877:                                             ; preds = %3870
  %3878 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3879 = call i32 @fileno(ptr noundef %3878) #11
  %3880 = call i32 @isatty(i32 noundef %3879) #11
  %3881 = icmp ne i32 %3880, 0
  br i1 %3881, label %3882, label %3899

3882:                                             ; preds = %3877
  %3883 = load i32, ptr %91, align 4, !tbaa !5
  %3884 = call ptr @__errno_location() #12
  store i32 %3883, ptr %3884, align 4, !tbaa !5
  %3885 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3886 = load i32, ptr @test_count, align 4, !tbaa !5
  %3887 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3888 = load i32, ptr %3887, align 4, !tbaa !5
  %3889 = call ptr @s2n_strerror(i32 noundef %3888, ptr noundef @.str.4)
  %3890 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3891 = load i32, ptr %3890, align 4, !tbaa !5
  %3892 = call ptr @s2n_strerror_debug(i32 noundef %3891, ptr noundef @.str.4)
  %3893 = call ptr @__errno_location() #12
  %3894 = load i32, ptr %3893, align 4, !tbaa !5
  %3895 = call ptr @strerror(i32 noundef %3894) #11
  %3896 = call ptr @__errno_location() #12
  %3897 = load i32, ptr %3896, align 4, !tbaa !5
  %3898 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3885, ptr noundef @.str.2, i32 noundef %3886, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 265, ptr noundef %3889, ptr noundef %3892, ptr noundef %3895, i32 noundef %3897) #11
  br label %3916

3899:                                             ; preds = %3877, %3870
  %3900 = load i32, ptr %91, align 4, !tbaa !5
  %3901 = call ptr @__errno_location() #12
  store i32 %3900, ptr %3901, align 4, !tbaa !5
  %3902 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3903 = load i32, ptr @test_count, align 4, !tbaa !5
  %3904 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3905 = load i32, ptr %3904, align 4, !tbaa !5
  %3906 = call ptr @s2n_strerror(i32 noundef %3905, ptr noundef @.str.4)
  %3907 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3908 = load i32, ptr %3907, align 4, !tbaa !5
  %3909 = call ptr @s2n_strerror_debug(i32 noundef %3908, ptr noundef @.str.4)
  %3910 = call ptr @__errno_location() #12
  %3911 = load i32, ptr %3910, align 4, !tbaa !5
  %3912 = call ptr @strerror(i32 noundef %3911) #11
  %3913 = call ptr @__errno_location() #12
  %3914 = load i32, ptr %3913, align 4, !tbaa !5
  %3915 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3902, ptr noundef @.str.5, i32 noundef %3903, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 265, ptr noundef %3906, ptr noundef %3909, ptr noundef %3912, i32 noundef %3914) #11
  br label %3916

3916:                                             ; preds = %3899, %3882
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #11
  br label %3917

3917:                                             ; preds = %3916
  br label %3918

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

3919:                                             ; No predecessors!
  br label %3920

3920:                                             ; preds = %3919
  br label %3921

3921:                                             ; preds = %3920, %3862
  br label %3922

3922:                                             ; preds = %3921
  br label %3923

3923:                                             ; preds = %3922
  %3924 = call i32 @s2n_connection_ptr_free(ptr noundef %85)
  %3925 = getelementptr inbounds %struct.s2n_result, ptr %92, i32 0, i32 0
  store i32 %3924, ptr %3925, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %85) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %93) #11
  %3926 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %3926, ptr %93, align 8, !tbaa !9
  br label %3927

3927:                                             ; preds = %3923
  %3928 = load i32, ptr @test_count, align 4, !tbaa !5
  %3929 = add nsw i32 %3928, 1
  store i32 %3929, ptr @test_count, align 4, !tbaa !5
  %3930 = load ptr, ptr %93, align 8, !tbaa !9
  %3931 = call i32 @s2n_test_configure_connection_for_ktls(ptr noundef %3930)
  %3932 = getelementptr inbounds %struct.s2n_result, ptr %94, i32 0, i32 0
  store i32 %3931, ptr %3932, align 4
  %3933 = getelementptr inbounds %struct.s2n_result, ptr %94, i32 0, i32 0
  %3934 = load i32, ptr %3933, align 4
  %3935 = call zeroext i1 @s2n_result_is_ok(i32 %3934)
  br i1 %3935, label %3989, label %3936

3936:                                             ; preds = %3927
  br label %3937

3937:                                             ; preds = %3936
  br label %3938

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

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

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

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

3984:                                             ; preds = %3967, %3950
  call void @llvm.lifetime.end.p0(i64 4, ptr %95) #11
  br label %3985

3985:                                             ; preds = %3984
  br label %3986

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

3987:                                             ; No predecessors!
  br label %3988

3988:                                             ; preds = %3987
  br label %3989

3989:                                             ; preds = %3988, %3927
  br label %3990

3990:                                             ; preds = %3989
  br label %3991

3991:                                             ; preds = %3990
  br label %3992

3992:                                             ; preds = %3991
  %3993 = load i32, ptr @test_count, align 4, !tbaa !5
  %3994 = add nsw i32 %3993, 1
  store i32 %3994, ptr @test_count, align 4, !tbaa !5
  %3995 = call i32 @s2n_ktls_set_setsockopt_cb(ptr noundef @s2n_test_setsockopt_tls_error)
  %3996 = getelementptr inbounds %struct.s2n_result, ptr %96, i32 0, i32 0
  store i32 %3995, ptr %3996, align 4
  %3997 = getelementptr inbounds %struct.s2n_result, ptr %96, i32 0, i32 0
  %3998 = load i32, ptr %3997, align 4
  %3999 = call zeroext i1 @s2n_result_is_ok(i32 %3998)
  br i1 %3999, label %4053, label %4000

4000:                                             ; preds = %3992
  br label %4001

4001:                                             ; preds = %4000
  br label %4002

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

4009:                                             ; preds = %4002
  %4010 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4011 = call i32 @fileno(ptr noundef %4010) #11
  %4012 = call i32 @isatty(i32 noundef %4011) #11
  %4013 = icmp ne i32 %4012, 0
  br i1 %4013, label %4014, label %4031

4014:                                             ; preds = %4009
  %4015 = load i32, ptr %97, align 4, !tbaa !5
  %4016 = call ptr @__errno_location() #12
  store i32 %4015, ptr %4016, align 4, !tbaa !5
  %4017 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4018 = load i32, ptr @test_count, align 4, !tbaa !5
  %4019 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4020 = load i32, ptr %4019, align 4, !tbaa !5
  %4021 = call ptr @s2n_strerror(i32 noundef %4020, ptr noundef @.str.4)
  %4022 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4023 = load i32, ptr %4022, align 4, !tbaa !5
  %4024 = call ptr @s2n_strerror_debug(i32 noundef %4023, ptr noundef @.str.4)
  %4025 = call ptr @__errno_location() #12
  %4026 = load i32, ptr %4025, align 4, !tbaa !5
  %4027 = call ptr @strerror(i32 noundef %4026) #11
  %4028 = call ptr @__errno_location() #12
  %4029 = load i32, ptr %4028, align 4, !tbaa !5
  %4030 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4017, ptr noundef @.str.2, i32 noundef %4018, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 273, ptr noundef %4021, ptr noundef %4024, ptr noundef %4027, i32 noundef %4029) #11
  br label %4048

4031:                                             ; preds = %4009, %4002
  %4032 = load i32, ptr %97, align 4, !tbaa !5
  %4033 = call ptr @__errno_location() #12
  store i32 %4032, ptr %4033, align 4, !tbaa !5
  %4034 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4035 = load i32, ptr @test_count, align 4, !tbaa !5
  %4036 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4037 = load i32, ptr %4036, align 4, !tbaa !5
  %4038 = call ptr @s2n_strerror(i32 noundef %4037, ptr noundef @.str.4)
  %4039 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4040 = load i32, ptr %4039, align 4, !tbaa !5
  %4041 = call ptr @s2n_strerror_debug(i32 noundef %4040, ptr noundef @.str.4)
  %4042 = call ptr @__errno_location() #12
  %4043 = load i32, ptr %4042, align 4, !tbaa !5
  %4044 = call ptr @strerror(i32 noundef %4043) #11
  %4045 = call ptr @__errno_location() #12
  %4046 = load i32, ptr %4045, align 4, !tbaa !5
  %4047 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4034, ptr noundef @.str.5, i32 noundef %4035, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 273, ptr noundef %4038, ptr noundef %4041, ptr noundef %4044, i32 noundef %4046) #11
  br label %4048

4048:                                             ; preds = %4031, %4014
  call void @llvm.lifetime.end.p0(i64 4, ptr %97) #11
  br label %4049

4049:                                             ; preds = %4048
  br label %4050

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

4051:                                             ; No predecessors!
  br label %4052

4052:                                             ; preds = %4051
  br label %4053

4053:                                             ; preds = %4052, %3992
  br label %4054

4054:                                             ; preds = %4053
  br label %4055

4055:                                             ; preds = %4054
  br label %4056

4056:                                             ; preds = %4055
  br label %4057

4057:                                             ; preds = %4056
  br label %4058

4058:                                             ; preds = %4057
  %4059 = load i32, ptr @test_count, align 4, !tbaa !5
  %4060 = add nsw i32 %4059, 1
  store i32 %4060, ptr @test_count, align 4, !tbaa !5
  %4061 = load ptr, ptr %93, align 8, !tbaa !9
  %4062 = call i32 @s2n_connection_ktls_enable_send(ptr noundef %4061)
  %4063 = icmp eq i32 %4062, -1
  br i1 %4063, label %4117, label %4064

4064:                                             ; preds = %4058
  br label %4065

4065:                                             ; preds = %4064
  br label %4066

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

4073:                                             ; preds = %4066
  %4074 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4075 = call i32 @fileno(ptr noundef %4074) #11
  %4076 = call i32 @isatty(i32 noundef %4075) #11
  %4077 = icmp ne i32 %4076, 0
  br i1 %4077, label %4078, label %4095

4078:                                             ; preds = %4073
  %4079 = load i32, ptr %98, align 4, !tbaa !5
  %4080 = call ptr @__errno_location() #12
  store i32 %4079, ptr %4080, align 4, !tbaa !5
  %4081 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4082 = load i32, ptr @test_count, align 4, !tbaa !5
  %4083 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4084 = load i32, ptr %4083, align 4, !tbaa !5
  %4085 = call ptr @s2n_strerror(i32 noundef %4084, ptr noundef @.str.4)
  %4086 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4087 = load i32, ptr %4086, align 4, !tbaa !5
  %4088 = call ptr @s2n_strerror_debug(i32 noundef %4087, ptr noundef @.str.4)
  %4089 = call ptr @__errno_location() #12
  %4090 = load i32, ptr %4089, align 4, !tbaa !5
  %4091 = call ptr @strerror(i32 noundef %4090) #11
  %4092 = call ptr @__errno_location() #12
  %4093 = load i32, ptr %4092, align 4, !tbaa !5
  %4094 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4081, ptr noundef @.str.2, i32 noundef %4082, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 277, ptr noundef %4085, ptr noundef %4088, ptr noundef %4091, i32 noundef %4093) #11
  br label %4112

4095:                                             ; preds = %4073, %4066
  %4096 = load i32, ptr %98, align 4, !tbaa !5
  %4097 = call ptr @__errno_location() #12
  store i32 %4096, ptr %4097, align 4, !tbaa !5
  %4098 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4099 = load i32, ptr @test_count, align 4, !tbaa !5
  %4100 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4101 = load i32, ptr %4100, align 4, !tbaa !5
  %4102 = call ptr @s2n_strerror(i32 noundef %4101, ptr noundef @.str.4)
  %4103 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4104 = load i32, ptr %4103, align 4, !tbaa !5
  %4105 = call ptr @s2n_strerror_debug(i32 noundef %4104, ptr noundef @.str.4)
  %4106 = call ptr @__errno_location() #12
  %4107 = load i32, ptr %4106, align 4, !tbaa !5
  %4108 = call ptr @strerror(i32 noundef %4107) #11
  %4109 = call ptr @__errno_location() #12
  %4110 = load i32, ptr %4109, align 4, !tbaa !5
  %4111 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4098, ptr noundef @.str.5, i32 noundef %4099, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 277, ptr noundef %4102, ptr noundef %4105, ptr noundef %4108, i32 noundef %4110) #11
  br label %4112

4112:                                             ; preds = %4095, %4078
  call void @llvm.lifetime.end.p0(i64 4, ptr %98) #11
  br label %4113

4113:                                             ; preds = %4112
  br label %4114

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

4115:                                             ; No predecessors!
  br label %4116

4116:                                             ; preds = %4115
  br label %4117

4117:                                             ; preds = %4116, %4058
  br label %4118

4118:                                             ; preds = %4117
  br label %4119

4119:                                             ; preds = %4118
  br label %4120

4120:                                             ; preds = %4119
  %4121 = load i32, ptr @test_count, align 4, !tbaa !5
  %4122 = add nsw i32 %4121, 1
  store i32 %4122, ptr @test_count, align 4, !tbaa !5
  %4123 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4124 = load i32, ptr %4123, align 4, !tbaa !5
  %4125 = icmp eq i32 %4124, 469762128
  br i1 %4125, label %4179, label %4126

4126:                                             ; preds = %4120
  br label %4127

4127:                                             ; preds = %4126
  br label %4128

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

4135:                                             ; preds = %4128
  %4136 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4137 = call i32 @fileno(ptr noundef %4136) #11
  %4138 = call i32 @isatty(i32 noundef %4137) #11
  %4139 = icmp ne i32 %4138, 0
  br i1 %4139, label %4140, label %4157

4140:                                             ; preds = %4135
  %4141 = load i32, ptr %99, align 4, !tbaa !5
  %4142 = call ptr @__errno_location() #12
  store i32 %4141, ptr %4142, align 4, !tbaa !5
  %4143 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4144 = load i32, ptr @test_count, align 4, !tbaa !5
  %4145 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4146 = load i32, ptr %4145, align 4, !tbaa !5
  %4147 = call ptr @s2n_strerror(i32 noundef %4146, ptr noundef @.str.4)
  %4148 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4149 = load i32, ptr %4148, align 4, !tbaa !5
  %4150 = call ptr @s2n_strerror_debug(i32 noundef %4149, ptr noundef @.str.4)
  %4151 = call ptr @__errno_location() #12
  %4152 = load i32, ptr %4151, align 4, !tbaa !5
  %4153 = call ptr @strerror(i32 noundef %4152) #11
  %4154 = call ptr @__errno_location() #12
  %4155 = load i32, ptr %4154, align 4, !tbaa !5
  %4156 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4143, ptr noundef @.str.2, i32 noundef %4144, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 277, ptr noundef %4147, ptr noundef %4150, ptr noundef %4153, i32 noundef %4155) #11
  br label %4174

4157:                                             ; preds = %4135, %4128
  %4158 = load i32, ptr %99, align 4, !tbaa !5
  %4159 = call ptr @__errno_location() #12
  store i32 %4158, ptr %4159, align 4, !tbaa !5
  %4160 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4161 = load i32, ptr @test_count, align 4, !tbaa !5
  %4162 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4163 = load i32, ptr %4162, align 4, !tbaa !5
  %4164 = call ptr @s2n_strerror(i32 noundef %4163, ptr noundef @.str.4)
  %4165 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4166 = load i32, ptr %4165, align 4, !tbaa !5
  %4167 = call ptr @s2n_strerror_debug(i32 noundef %4166, ptr noundef @.str.4)
  %4168 = call ptr @__errno_location() #12
  %4169 = load i32, ptr %4168, align 4, !tbaa !5
  %4170 = call ptr @strerror(i32 noundef %4169) #11
  %4171 = call ptr @__errno_location() #12
  %4172 = load i32, ptr %4171, align 4, !tbaa !5
  %4173 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4160, ptr noundef @.str.5, i32 noundef %4161, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 277, ptr noundef %4164, ptr noundef %4167, ptr noundef %4170, i32 noundef %4172) #11
  br label %4174

4174:                                             ; preds = %4157, %4140
  call void @llvm.lifetime.end.p0(i64 4, ptr %99) #11
  br label %4175

4175:                                             ; preds = %4174
  br label %4176

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

4177:                                             ; No predecessors!
  br label %4178

4178:                                             ; preds = %4177
  br label %4179

4179:                                             ; preds = %4178, %4120
  br label %4180

4180:                                             ; preds = %4179
  br label %4181

4181:                                             ; preds = %4180
  br label %4182

4182:                                             ; preds = %4181
  %4183 = load i32, ptr @test_count, align 4, !tbaa !5
  %4184 = add nsw i32 %4183, 1
  store i32 %4184, ptr @test_count, align 4, !tbaa !5
  %4185 = call 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.4)
  %4188 = icmp eq ptr %4187, null
  br i1 %4188, label %4189, label %4242

4189:                                             ; preds = %4182
  br label %4190

4190:                                             ; preds = %4189
  br label %4191

4191:                                             ; preds = %4190
  call void @llvm.lifetime.start.p0(i64 4, ptr %100) #11
  %4192 = call ptr @__errno_location() #12
  %4193 = load i32, ptr %4192, align 4, !tbaa !5
  store i32 %4193, ptr %100, align 4, !tbaa !5
  %4194 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4195 = call i32 @s2n_print_stacktrace(ptr noundef %4194)
  %4196 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4197 = trunc i8 %4196 to i1
  br i1 %4197, label %4198, label %4220

4198:                                             ; preds = %4191
  %4199 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4200 = call i32 @fileno(ptr noundef %4199) #11
  %4201 = call i32 @isatty(i32 noundef %4200) #11
  %4202 = icmp ne i32 %4201, 0
  br i1 %4202, label %4203, label %4220

4203:                                             ; preds = %4198
  %4204 = load i32, ptr %100, align 4, !tbaa !5
  %4205 = call ptr @__errno_location() #12
  store i32 %4204, ptr %4205, align 4, !tbaa !5
  %4206 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4207 = load i32, ptr @test_count, align 4, !tbaa !5
  %4208 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4209 = load i32, ptr %4208, align 4, !tbaa !5
  %4210 = call ptr @s2n_strerror(i32 noundef %4209, ptr noundef @.str.4)
  %4211 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4212 = load i32, ptr %4211, align 4, !tbaa !5
  %4213 = call ptr @s2n_strerror_debug(i32 noundef %4212, ptr noundef @.str.4)
  %4214 = call ptr @__errno_location() #12
  %4215 = load i32, ptr %4214, align 4, !tbaa !5
  %4216 = call ptr @strerror(i32 noundef %4215) #11
  %4217 = call ptr @__errno_location() #12
  %4218 = load i32, ptr %4217, align 4, !tbaa !5
  %4219 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4206, ptr noundef @.str.2, i32 noundef %4207, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 277, ptr noundef %4210, ptr noundef %4213, ptr noundef %4216, i32 noundef %4218) #11
  br label %4237

4220:                                             ; preds = %4198, %4191
  %4221 = load i32, ptr %100, align 4, !tbaa !5
  %4222 = call ptr @__errno_location() #12
  store i32 %4221, ptr %4222, align 4, !tbaa !5
  %4223 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4224 = load i32, ptr @test_count, align 4, !tbaa !5
  %4225 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4226 = load i32, ptr %4225, align 4, !tbaa !5
  %4227 = call ptr @s2n_strerror(i32 noundef %4226, ptr noundef @.str.4)
  %4228 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4229 = load i32, ptr %4228, align 4, !tbaa !5
  %4230 = call ptr @s2n_strerror_debug(i32 noundef %4229, ptr noundef @.str.4)
  %4231 = call ptr @__errno_location() #12
  %4232 = load i32, ptr %4231, align 4, !tbaa !5
  %4233 = call ptr @strerror(i32 noundef %4232) #11
  %4234 = call ptr @__errno_location() #12
  %4235 = load i32, ptr %4234, align 4, !tbaa !5
  %4236 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4223, ptr noundef @.str.5, i32 noundef %4224, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 277, ptr noundef %4227, ptr noundef %4230, ptr noundef %4233, i32 noundef %4235) #11
  br label %4237

4237:                                             ; preds = %4220, %4203
  call void @llvm.lifetime.end.p0(i64 4, ptr %100) #11
  br label %4238

4238:                                             ; preds = %4237
  br label %4239

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

4240:                                             ; No predecessors!
  br label %4241

4241:                                             ; preds = %4240
  br label %4242

4242:                                             ; preds = %4241, %4182
  br label %4243

4243:                                             ; preds = %4242
  br label %4244

4244:                                             ; preds = %4243
  br label %4245

4245:                                             ; preds = %4244
  br label %4246

4246:                                             ; preds = %4245
  br label %4247

4247:                                             ; preds = %4246
  %4248 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %4248, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %4249 = call ptr @__errno_location() #12
  store i32 0, ptr %4249, align 4, !tbaa !5
  br label %4250

4250:                                             ; preds = %4247
  br label %4251

4251:                                             ; preds = %4250
  br label %4252

4252:                                             ; preds = %4251
  br label %4253

4253:                                             ; preds = %4252
  br label %4254

4254:                                             ; preds = %4253
  br label %4255

4255:                                             ; preds = %4254
  br label %4256

4256:                                             ; preds = %4255
  %4257 = load i32, ptr @test_count, align 4, !tbaa !5
  %4258 = add nsw i32 %4257, 1
  store i32 %4258, ptr @test_count, align 4, !tbaa !5
  %4259 = load ptr, ptr %93, align 8, !tbaa !9
  %4260 = call i32 @s2n_connection_ktls_enable_recv(ptr noundef %4259)
  %4261 = icmp eq i32 %4260, -1
  br i1 %4261, label %4315, label %4262

4262:                                             ; preds = %4256
  br label %4263

4263:                                             ; preds = %4262
  br label %4264

4264:                                             ; preds = %4263
  call void @llvm.lifetime.start.p0(i64 4, ptr %101) #11
  %4265 = call ptr @__errno_location() #12
  %4266 = load i32, ptr %4265, align 4, !tbaa !5
  store i32 %4266, ptr %101, align 4, !tbaa !5
  %4267 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4268 = call i32 @s2n_print_stacktrace(ptr noundef %4267)
  %4269 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4270 = trunc i8 %4269 to i1
  br i1 %4270, label %4271, label %4293

4271:                                             ; preds = %4264
  %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
  %4275 = icmp ne i32 %4274, 0
  br i1 %4275, label %4276, label %4293

4276:                                             ; preds = %4271
  %4277 = load i32, ptr %101, align 4, !tbaa !5
  %4278 = call ptr @__errno_location() #12
  store i32 %4277, ptr %4278, align 4, !tbaa !5
  %4279 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4280 = load i32, ptr @test_count, align 4, !tbaa !5
  %4281 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4282 = load i32, ptr %4281, align 4, !tbaa !5
  %4283 = call ptr @s2n_strerror(i32 noundef %4282, ptr noundef @.str.4)
  %4284 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4285 = load i32, ptr %4284, align 4, !tbaa !5
  %4286 = call ptr @s2n_strerror_debug(i32 noundef %4285, ptr noundef @.str.4)
  %4287 = call ptr @__errno_location() #12
  %4288 = load i32, ptr %4287, align 4, !tbaa !5
  %4289 = call ptr @strerror(i32 noundef %4288) #11
  %4290 = call ptr @__errno_location() #12
  %4291 = load i32, ptr %4290, align 4, !tbaa !5
  %4292 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4279, ptr noundef @.str.2, i32 noundef %4280, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 279, ptr noundef %4283, ptr noundef %4286, ptr noundef %4289, i32 noundef %4291) #11
  br label %4310

4293:                                             ; preds = %4271, %4264
  %4294 = load i32, ptr %101, align 4, !tbaa !5
  %4295 = call ptr @__errno_location() #12
  store i32 %4294, ptr %4295, align 4, !tbaa !5
  %4296 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4297 = load i32, ptr @test_count, align 4, !tbaa !5
  %4298 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4299 = load i32, ptr %4298, align 4, !tbaa !5
  %4300 = call ptr @s2n_strerror(i32 noundef %4299, ptr noundef @.str.4)
  %4301 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4302 = load i32, ptr %4301, align 4, !tbaa !5
  %4303 = call ptr @s2n_strerror_debug(i32 noundef %4302, ptr noundef @.str.4)
  %4304 = call ptr @__errno_location() #12
  %4305 = load i32, ptr %4304, align 4, !tbaa !5
  %4306 = call ptr @strerror(i32 noundef %4305) #11
  %4307 = call ptr @__errno_location() #12
  %4308 = load i32, ptr %4307, align 4, !tbaa !5
  %4309 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4296, ptr noundef @.str.5, i32 noundef %4297, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 279, ptr noundef %4300, ptr noundef %4303, ptr noundef %4306, i32 noundef %4308) #11
  br label %4310

4310:                                             ; preds = %4293, %4276
  call void @llvm.lifetime.end.p0(i64 4, ptr %101) #11
  br label %4311

4311:                                             ; preds = %4310
  br label %4312

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

4313:                                             ; No predecessors!
  br label %4314

4314:                                             ; preds = %4313
  br label %4315

4315:                                             ; preds = %4314, %4256
  br label %4316

4316:                                             ; preds = %4315
  br label %4317

4317:                                             ; preds = %4316
  br label %4318

4318:                                             ; preds = %4317
  %4319 = load i32, ptr @test_count, align 4, !tbaa !5
  %4320 = add nsw i32 %4319, 1
  store i32 %4320, ptr @test_count, align 4, !tbaa !5
  %4321 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4322 = load i32, ptr %4321, align 4, !tbaa !5
  %4323 = icmp eq i32 %4322, 469762128
  br i1 %4323, label %4377, label %4324

4324:                                             ; preds = %4318
  br label %4325

4325:                                             ; preds = %4324
  br label %4326

4326:                                             ; preds = %4325
  call void @llvm.lifetime.start.p0(i64 4, ptr %102) #11
  %4327 = call ptr @__errno_location() #12
  %4328 = load i32, ptr %4327, align 4, !tbaa !5
  store i32 %4328, ptr %102, align 4, !tbaa !5
  %4329 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4330 = call i32 @s2n_print_stacktrace(ptr noundef %4329)
  %4331 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4332 = trunc i8 %4331 to i1
  br i1 %4332, label %4333, label %4355

4333:                                             ; preds = %4326
  %4334 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4335 = call i32 @fileno(ptr noundef %4334) #11
  %4336 = call i32 @isatty(i32 noundef %4335) #11
  %4337 = icmp ne i32 %4336, 0
  br i1 %4337, label %4338, label %4355

4338:                                             ; preds = %4333
  %4339 = load i32, ptr %102, align 4, !tbaa !5
  %4340 = call ptr @__errno_location() #12
  store i32 %4339, ptr %4340, align 4, !tbaa !5
  %4341 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4342 = load i32, ptr @test_count, align 4, !tbaa !5
  %4343 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4344 = load i32, ptr %4343, align 4, !tbaa !5
  %4345 = call ptr @s2n_strerror(i32 noundef %4344, ptr noundef @.str.4)
  %4346 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4347 = load i32, ptr %4346, align 4, !tbaa !5
  %4348 = call ptr @s2n_strerror_debug(i32 noundef %4347, ptr noundef @.str.4)
  %4349 = call ptr @__errno_location() #12
  %4350 = load i32, ptr %4349, align 4, !tbaa !5
  %4351 = call ptr @strerror(i32 noundef %4350) #11
  %4352 = call ptr @__errno_location() #12
  %4353 = load i32, ptr %4352, align 4, !tbaa !5
  %4354 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4341, ptr noundef @.str.2, i32 noundef %4342, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 279, ptr noundef %4345, ptr noundef %4348, ptr noundef %4351, i32 noundef %4353) #11
  br label %4372

4355:                                             ; preds = %4333, %4326
  %4356 = load i32, ptr %102, align 4, !tbaa !5
  %4357 = call ptr @__errno_location() #12
  store i32 %4356, ptr %4357, align 4, !tbaa !5
  %4358 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4359 = load i32, ptr @test_count, align 4, !tbaa !5
  %4360 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4361 = load i32, ptr %4360, align 4, !tbaa !5
  %4362 = call ptr @s2n_strerror(i32 noundef %4361, ptr noundef @.str.4)
  %4363 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4364 = load i32, ptr %4363, align 4, !tbaa !5
  %4365 = call ptr @s2n_strerror_debug(i32 noundef %4364, ptr noundef @.str.4)
  %4366 = call ptr @__errno_location() #12
  %4367 = load i32, ptr %4366, align 4, !tbaa !5
  %4368 = call ptr @strerror(i32 noundef %4367) #11
  %4369 = call ptr @__errno_location() #12
  %4370 = load i32, ptr %4369, align 4, !tbaa !5
  %4371 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4358, ptr noundef @.str.5, i32 noundef %4359, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 279, ptr noundef %4362, ptr noundef %4365, ptr noundef %4368, i32 noundef %4370) #11
  br label %4372

4372:                                             ; preds = %4355, %4338
  call void @llvm.lifetime.end.p0(i64 4, ptr %102) #11
  br label %4373

4373:                                             ; preds = %4372
  br label %4374

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

4375:                                             ; No predecessors!
  br label %4376

4376:                                             ; preds = %4375
  br label %4377

4377:                                             ; preds = %4376, %4318
  br label %4378

4378:                                             ; preds = %4377
  br label %4379

4379:                                             ; preds = %4378
  br label %4380

4380:                                             ; preds = %4379
  %4381 = load i32, ptr @test_count, align 4, !tbaa !5
  %4382 = add nsw i32 %4381, 1
  store i32 %4382, ptr @test_count, align 4, !tbaa !5
  %4383 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4384 = load i32, ptr %4383, align 4, !tbaa !5
  %4385 = call ptr @s2n_strerror_debug(i32 noundef %4384, ptr noundef @.str.4)
  %4386 = icmp eq ptr %4385, null
  br i1 %4386, label %4387, label %4440

4387:                                             ; preds = %4380
  br label %4388

4388:                                             ; preds = %4387
  br label %4389

4389:                                             ; preds = %4388
  call void @llvm.lifetime.start.p0(i64 4, ptr %103) #11
  %4390 = call ptr @__errno_location() #12
  %4391 = load i32, ptr %4390, align 4, !tbaa !5
  store i32 %4391, ptr %103, align 4, !tbaa !5
  %4392 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4393 = call i32 @s2n_print_stacktrace(ptr noundef %4392)
  %4394 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4395 = trunc i8 %4394 to i1
  br i1 %4395, label %4396, label %4418

4396:                                             ; preds = %4389
  %4397 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4398 = call i32 @fileno(ptr noundef %4397) #11
  %4399 = call i32 @isatty(i32 noundef %4398) #11
  %4400 = icmp ne i32 %4399, 0
  br i1 %4400, label %4401, label %4418

4401:                                             ; preds = %4396
  %4402 = load i32, ptr %103, align 4, !tbaa !5
  %4403 = call ptr @__errno_location() #12
  store i32 %4402, ptr %4403, align 4, !tbaa !5
  %4404 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4405 = load i32, ptr @test_count, align 4, !tbaa !5
  %4406 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4407 = load i32, ptr %4406, align 4, !tbaa !5
  %4408 = call ptr @s2n_strerror(i32 noundef %4407, ptr noundef @.str.4)
  %4409 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4410 = load i32, ptr %4409, align 4, !tbaa !5
  %4411 = call ptr @s2n_strerror_debug(i32 noundef %4410, ptr noundef @.str.4)
  %4412 = call ptr @__errno_location() #12
  %4413 = load i32, ptr %4412, align 4, !tbaa !5
  %4414 = call ptr @strerror(i32 noundef %4413) #11
  %4415 = call ptr @__errno_location() #12
  %4416 = load i32, ptr %4415, align 4, !tbaa !5
  %4417 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4404, ptr noundef @.str.2, i32 noundef %4405, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 279, ptr noundef %4408, ptr noundef %4411, ptr noundef %4414, i32 noundef %4416) #11
  br label %4435

4418:                                             ; preds = %4396, %4389
  %4419 = load i32, ptr %103, align 4, !tbaa !5
  %4420 = call ptr @__errno_location() #12
  store i32 %4419, ptr %4420, align 4, !tbaa !5
  %4421 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4422 = load i32, ptr @test_count, align 4, !tbaa !5
  %4423 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4424 = load i32, ptr %4423, align 4, !tbaa !5
  %4425 = call ptr @s2n_strerror(i32 noundef %4424, ptr noundef @.str.4)
  %4426 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4427 = load i32, ptr %4426, align 4, !tbaa !5
  %4428 = call ptr @s2n_strerror_debug(i32 noundef %4427, ptr noundef @.str.4)
  %4429 = call ptr @__errno_location() #12
  %4430 = load i32, ptr %4429, align 4, !tbaa !5
  %4431 = call ptr @strerror(i32 noundef %4430) #11
  %4432 = call ptr @__errno_location() #12
  %4433 = load i32, ptr %4432, align 4, !tbaa !5
  %4434 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4421, ptr noundef @.str.5, i32 noundef %4422, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 279, ptr noundef %4425, ptr noundef %4428, ptr noundef %4431, i32 noundef %4433) #11
  br label %4435

4435:                                             ; preds = %4418, %4401
  call void @llvm.lifetime.end.p0(i64 4, ptr %103) #11
  br label %4436

4436:                                             ; preds = %4435
  br label %4437

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

4438:                                             ; No predecessors!
  br label %4439

4439:                                             ; preds = %4438
  br label %4440

4440:                                             ; preds = %4439, %4380
  br label %4441

4441:                                             ; preds = %4440
  br label %4442

4442:                                             ; preds = %4441
  br label %4443

4443:                                             ; preds = %4442
  br label %4444

4444:                                             ; preds = %4443
  br label %4445

4445:                                             ; preds = %4444
  %4446 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %4446, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %4447 = call ptr @__errno_location() #12
  store i32 0, ptr %4447, align 4, !tbaa !5
  br label %4448

4448:                                             ; preds = %4445
  br label %4449

4449:                                             ; preds = %4448
  br label %4450

4450:                                             ; preds = %4449
  br label %4451

4451:                                             ; preds = %4450
  %4452 = call i32 @s2n_connection_ptr_free(ptr noundef %93)
  %4453 = getelementptr inbounds %struct.s2n_result, ptr %104, i32 0, i32 0
  store i32 %4452, ptr %4453, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %93) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %105) #11
  %4454 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %4454, ptr %105, align 8, !tbaa !9
  br label %4455

4455:                                             ; preds = %4451
  %4456 = load i32, ptr @test_count, align 4, !tbaa !5
  %4457 = add nsw i32 %4456, 1
  store i32 %4457, ptr @test_count, align 4, !tbaa !5
  %4458 = load ptr, ptr %105, align 8, !tbaa !9
  %4459 = call i32 @s2n_test_configure_connection_for_ktls(ptr noundef %4458)
  %4460 = getelementptr inbounds %struct.s2n_result, ptr %106, i32 0, i32 0
  store i32 %4459, ptr %4460, align 4
  %4461 = getelementptr inbounds %struct.s2n_result, ptr %106, i32 0, i32 0
  %4462 = load i32, ptr %4461, align 4
  %4463 = call zeroext i1 @s2n_result_is_ok(i32 %4462)
  br i1 %4463, label %4517, label %4464

4464:                                             ; preds = %4455
  br label %4465

4465:                                             ; preds = %4464
  br label %4466

4466:                                             ; preds = %4465
  call void @llvm.lifetime.start.p0(i64 4, ptr %107) #11
  %4467 = call ptr @__errno_location() #12
  %4468 = load i32, ptr %4467, align 4, !tbaa !5
  store i32 %4468, ptr %107, align 4, !tbaa !5
  %4469 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4470 = call i32 @s2n_print_stacktrace(ptr noundef %4469)
  %4471 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4472 = trunc i8 %4471 to i1
  br i1 %4472, label %4473, label %4495

4473:                                             ; preds = %4466
  %4474 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4475 = call i32 @fileno(ptr noundef %4474) #11
  %4476 = call i32 @isatty(i32 noundef %4475) #11
  %4477 = icmp ne i32 %4476, 0
  br i1 %4477, label %4478, label %4495

4478:                                             ; preds = %4473
  %4479 = load i32, ptr %107, align 4, !tbaa !5
  %4480 = call ptr @__errno_location() #12
  store i32 %4479, ptr %4480, align 4, !tbaa !5
  %4481 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4482 = load i32, ptr @test_count, align 4, !tbaa !5
  %4483 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4484 = load i32, ptr %4483, align 4, !tbaa !5
  %4485 = call ptr @s2n_strerror(i32 noundef %4484, ptr noundef @.str.4)
  %4486 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4487 = load i32, ptr %4486, align 4, !tbaa !5
  %4488 = call ptr @s2n_strerror_debug(i32 noundef %4487, ptr noundef @.str.4)
  %4489 = call ptr @__errno_location() #12
  %4490 = load i32, ptr %4489, align 4, !tbaa !5
  %4491 = call ptr @strerror(i32 noundef %4490) #11
  %4492 = call ptr @__errno_location() #12
  %4493 = load i32, ptr %4492, align 4, !tbaa !5
  %4494 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4481, ptr noundef @.str.2, i32 noundef %4482, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 286, ptr noundef %4485, ptr noundef %4488, ptr noundef %4491, i32 noundef %4493) #11
  br label %4512

4495:                                             ; preds = %4473, %4466
  %4496 = load i32, ptr %107, align 4, !tbaa !5
  %4497 = call ptr @__errno_location() #12
  store i32 %4496, ptr %4497, align 4, !tbaa !5
  %4498 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4499 = load i32, ptr @test_count, align 4, !tbaa !5
  %4500 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4501 = load i32, ptr %4500, align 4, !tbaa !5
  %4502 = call ptr @s2n_strerror(i32 noundef %4501, ptr noundef @.str.4)
  %4503 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4504 = load i32, ptr %4503, align 4, !tbaa !5
  %4505 = call ptr @s2n_strerror_debug(i32 noundef %4504, ptr noundef @.str.4)
  %4506 = call ptr @__errno_location() #12
  %4507 = load i32, ptr %4506, align 4, !tbaa !5
  %4508 = call ptr @strerror(i32 noundef %4507) #11
  %4509 = call ptr @__errno_location() #12
  %4510 = load i32, ptr %4509, align 4, !tbaa !5
  %4511 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4498, ptr noundef @.str.5, i32 noundef %4499, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 286, ptr noundef %4502, ptr noundef %4505, ptr noundef %4508, i32 noundef %4510) #11
  br label %4512

4512:                                             ; preds = %4495, %4478
  call void @llvm.lifetime.end.p0(i64 4, ptr %107) #11
  br label %4513

4513:                                             ; preds = %4512
  br label %4514

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

4515:                                             ; No predecessors!
  br label %4516

4516:                                             ; preds = %4515
  br label %4517

4517:                                             ; preds = %4516, %4455
  br label %4518

4518:                                             ; preds = %4517
  br label %4519

4519:                                             ; preds = %4518
  %4520 = load ptr, ptr %105, align 8, !tbaa !9
  %4521 = load i32, ptr %4520, align 8
  %4522 = and i32 %4521, -262145
  %4523 = or i32 %4522, 262144
  store i32 %4523, ptr %4520, align 8
  br label %4524

4524:                                             ; preds = %4519
  %4525 = load i32, ptr @test_count, align 4, !tbaa !5
  %4526 = add nsw i32 %4525, 1
  store i32 %4526, ptr @test_count, align 4, !tbaa !5
  %4527 = load ptr, ptr %105, align 8, !tbaa !9
  %4528 = call i32 @s2n_connection_ktls_enable_send(ptr noundef %4527)
  %4529 = icmp eq i32 %4528, -1
  br i1 %4529, label %4530, label %4583

4530:                                             ; preds = %4524
  br label %4531

4531:                                             ; preds = %4530
  br label %4532

4532:                                             ; preds = %4531
  call void @llvm.lifetime.start.p0(i64 4, ptr %108) #11
  %4533 = call ptr @__errno_location() #12
  %4534 = load i32, ptr %4533, align 4, !tbaa !5
  store i32 %4534, ptr %108, align 4, !tbaa !5
  %4535 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4536 = call i32 @s2n_print_stacktrace(ptr noundef %4535)
  %4537 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4538 = trunc i8 %4537 to i1
  br i1 %4538, label %4539, label %4561

4539:                                             ; preds = %4532
  %4540 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4541 = call i32 @fileno(ptr noundef %4540) #11
  %4542 = call i32 @isatty(i32 noundef %4541) #11
  %4543 = icmp ne i32 %4542, 0
  br i1 %4543, label %4544, label %4561

4544:                                             ; preds = %4539
  %4545 = load i32, ptr %108, align 4, !tbaa !5
  %4546 = call ptr @__errno_location() #12
  store i32 %4545, ptr %4546, align 4, !tbaa !5
  %4547 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4548 = load i32, ptr @test_count, align 4, !tbaa !5
  %4549 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4550 = load i32, ptr %4549, align 4, !tbaa !5
  %4551 = call ptr @s2n_strerror(i32 noundef %4550, ptr noundef @.str.4)
  %4552 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4553 = load i32, ptr %4552, align 4, !tbaa !5
  %4554 = call ptr @s2n_strerror_debug(i32 noundef %4553, ptr noundef @.str.4)
  %4555 = call ptr @__errno_location() #12
  %4556 = load i32, ptr %4555, align 4, !tbaa !5
  %4557 = call ptr @strerror(i32 noundef %4556) #11
  %4558 = call ptr @__errno_location() #12
  %4559 = load i32, ptr %4558, align 4, !tbaa !5
  %4560 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4547, ptr noundef @.str.2, i32 noundef %4548, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 289, ptr noundef %4551, ptr noundef %4554, ptr noundef %4557, i32 noundef %4559) #11
  br label %4578

4561:                                             ; preds = %4539, %4532
  %4562 = load i32, ptr %108, align 4, !tbaa !5
  %4563 = call ptr @__errno_location() #12
  store i32 %4562, ptr %4563, align 4, !tbaa !5
  %4564 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4565 = load i32, ptr @test_count, align 4, !tbaa !5
  %4566 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4567 = load i32, ptr %4566, align 4, !tbaa !5
  %4568 = call ptr @s2n_strerror(i32 noundef %4567, ptr noundef @.str.4)
  %4569 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4570 = load i32, ptr %4569, align 4, !tbaa !5
  %4571 = call ptr @s2n_strerror_debug(i32 noundef %4570, ptr noundef @.str.4)
  %4572 = call ptr @__errno_location() #12
  %4573 = load i32, ptr %4572, align 4, !tbaa !5
  %4574 = call ptr @strerror(i32 noundef %4573) #11
  %4575 = call ptr @__errno_location() #12
  %4576 = load i32, ptr %4575, align 4, !tbaa !5
  %4577 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4564, ptr noundef @.str.5, i32 noundef %4565, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 289, ptr noundef %4568, ptr noundef %4571, ptr noundef %4574, i32 noundef %4576) #11
  br label %4578

4578:                                             ; preds = %4561, %4544
  call void @llvm.lifetime.end.p0(i64 4, ptr %108) #11
  br label %4579

4579:                                             ; preds = %4578
  br label %4580

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

4581:                                             ; No predecessors!
  br label %4582

4582:                                             ; preds = %4581
  br label %4583

4583:                                             ; preds = %4582, %4524
  br label %4584

4584:                                             ; preds = %4583
  br label %4585

4585:                                             ; preds = %4584
  %4586 = load ptr, ptr %105, align 8, !tbaa !9
  %4587 = load i32, ptr %4586, align 8
  %4588 = and i32 %4587, -524289
  %4589 = or i32 %4588, 524288
  store i32 %4589, ptr %4586, align 8
  br label %4590

4590:                                             ; preds = %4585
  %4591 = load i32, ptr @test_count, align 4, !tbaa !5
  %4592 = add nsw i32 %4591, 1
  store i32 %4592, ptr @test_count, align 4, !tbaa !5
  %4593 = load ptr, ptr %105, align 8, !tbaa !9
  %4594 = call i32 @s2n_connection_ktls_enable_recv(ptr noundef %4593)
  %4595 = icmp eq i32 %4594, -1
  br i1 %4595, label %4596, label %4649

4596:                                             ; preds = %4590
  br label %4597

4597:                                             ; preds = %4596
  br label %4598

4598:                                             ; preds = %4597
  call void @llvm.lifetime.start.p0(i64 4, ptr %109) #11
  %4599 = call ptr @__errno_location() #12
  %4600 = load i32, ptr %4599, align 4, !tbaa !5
  store i32 %4600, ptr %109, align 4, !tbaa !5
  %4601 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4602 = call i32 @s2n_print_stacktrace(ptr noundef %4601)
  %4603 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4604 = trunc i8 %4603 to i1
  br i1 %4604, label %4605, label %4627

4605:                                             ; preds = %4598
  %4606 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4607 = call i32 @fileno(ptr noundef %4606) #11
  %4608 = call i32 @isatty(i32 noundef %4607) #11
  %4609 = icmp ne i32 %4608, 0
  br i1 %4609, label %4610, label %4627

4610:                                             ; preds = %4605
  %4611 = load i32, ptr %109, align 4, !tbaa !5
  %4612 = call ptr @__errno_location() #12
  store i32 %4611, ptr %4612, align 4, !tbaa !5
  %4613 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4614 = load i32, ptr @test_count, align 4, !tbaa !5
  %4615 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4616 = load i32, ptr %4615, align 4, !tbaa !5
  %4617 = call ptr @s2n_strerror(i32 noundef %4616, ptr noundef @.str.4)
  %4618 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4619 = load i32, ptr %4618, align 4, !tbaa !5
  %4620 = call ptr @s2n_strerror_debug(i32 noundef %4619, ptr noundef @.str.4)
  %4621 = call ptr @__errno_location() #12
  %4622 = load i32, ptr %4621, align 4, !tbaa !5
  %4623 = call ptr @strerror(i32 noundef %4622) #11
  %4624 = call ptr @__errno_location() #12
  %4625 = load i32, ptr %4624, align 4, !tbaa !5
  %4626 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4613, ptr noundef @.str.2, i32 noundef %4614, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 292, ptr noundef %4617, ptr noundef %4620, ptr noundef %4623, i32 noundef %4625) #11
  br label %4644

4627:                                             ; preds = %4605, %4598
  %4628 = load i32, ptr %109, align 4, !tbaa !5
  %4629 = call ptr @__errno_location() #12
  store i32 %4628, ptr %4629, align 4, !tbaa !5
  %4630 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4631 = load i32, ptr @test_count, align 4, !tbaa !5
  %4632 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4633 = load i32, ptr %4632, align 4, !tbaa !5
  %4634 = call ptr @s2n_strerror(i32 noundef %4633, ptr noundef @.str.4)
  %4635 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4636 = load i32, ptr %4635, align 4, !tbaa !5
  %4637 = call ptr @s2n_strerror_debug(i32 noundef %4636, ptr noundef @.str.4)
  %4638 = call ptr @__errno_location() #12
  %4639 = load i32, ptr %4638, align 4, !tbaa !5
  %4640 = call ptr @strerror(i32 noundef %4639) #11
  %4641 = call ptr @__errno_location() #12
  %4642 = load i32, ptr %4641, align 4, !tbaa !5
  %4643 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4630, ptr noundef @.str.5, i32 noundef %4631, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 292, ptr noundef %4634, ptr noundef %4637, ptr noundef %4640, i32 noundef %4642) #11
  br label %4644

4644:                                             ; preds = %4627, %4610
  call void @llvm.lifetime.end.p0(i64 4, ptr %109) #11
  br label %4645

4645:                                             ; preds = %4644
  br label %4646

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

4647:                                             ; No predecessors!
  br label %4648

4648:                                             ; preds = %4647
  br label %4649

4649:                                             ; preds = %4648, %4590
  br label %4650

4650:                                             ; preds = %4649
  br label %4651

4651:                                             ; preds = %4650
  %4652 = call i32 @s2n_connection_ptr_free(ptr noundef %105)
  %4653 = getelementptr inbounds %struct.s2n_result, ptr %110, i32 0, i32 0
  store i32 %4652, ptr %4653, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %105) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %111) #11
  %4654 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %4654, ptr %111, align 8, !tbaa !9
  br label %4655

4655:                                             ; preds = %4651
  %4656 = load i32, ptr @test_count, align 4, !tbaa !5
  %4657 = add nsw i32 %4656, 1
  store i32 %4657, ptr @test_count, align 4, !tbaa !5
  %4658 = load ptr, ptr %111, align 8, !tbaa !9
  %4659 = call i32 @s2n_test_configure_connection_for_ktls(ptr noundef %4658)
  %4660 = getelementptr inbounds %struct.s2n_result, ptr %112, i32 0, i32 0
  store i32 %4659, ptr %4660, align 4
  %4661 = getelementptr inbounds %struct.s2n_result, ptr %112, i32 0, i32 0
  %4662 = load i32, ptr %4661, align 4
  %4663 = call zeroext i1 @s2n_result_is_ok(i32 %4662)
  br i1 %4663, label %4717, label %4664

4664:                                             ; preds = %4655
  br label %4665

4665:                                             ; preds = %4664
  br label %4666

4666:                                             ; preds = %4665
  call void @llvm.lifetime.start.p0(i64 4, ptr %113) #11
  %4667 = call ptr @__errno_location() #12
  %4668 = load i32, ptr %4667, align 4, !tbaa !5
  store i32 %4668, ptr %113, align 4, !tbaa !5
  %4669 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4670 = call i32 @s2n_print_stacktrace(ptr noundef %4669)
  %4671 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4672 = trunc i8 %4671 to i1
  br i1 %4672, label %4673, label %4695

4673:                                             ; preds = %4666
  %4674 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4675 = call i32 @fileno(ptr noundef %4674) #11
  %4676 = call i32 @isatty(i32 noundef %4675) #11
  %4677 = icmp ne i32 %4676, 0
  br i1 %4677, label %4678, label %4695

4678:                                             ; preds = %4673
  %4679 = load i32, ptr %113, align 4, !tbaa !5
  %4680 = call ptr @__errno_location() #12
  store i32 %4679, ptr %4680, align 4, !tbaa !5
  %4681 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4682 = load i32, ptr @test_count, align 4, !tbaa !5
  %4683 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4684 = load i32, ptr %4683, align 4, !tbaa !5
  %4685 = call ptr @s2n_strerror(i32 noundef %4684, ptr noundef @.str.4)
  %4686 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4687 = load i32, ptr %4686, align 4, !tbaa !5
  %4688 = call ptr @s2n_strerror_debug(i32 noundef %4687, ptr noundef @.str.4)
  %4689 = call ptr @__errno_location() #12
  %4690 = load i32, ptr %4689, align 4, !tbaa !5
  %4691 = call ptr @strerror(i32 noundef %4690) #11
  %4692 = call ptr @__errno_location() #12
  %4693 = load i32, ptr %4692, align 4, !tbaa !5
  %4694 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4681, ptr noundef @.str.2, i32 noundef %4682, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 299, ptr noundef %4685, ptr noundef %4688, ptr noundef %4691, i32 noundef %4693) #11
  br label %4712

4695:                                             ; preds = %4673, %4666
  %4696 = load i32, ptr %113, align 4, !tbaa !5
  %4697 = call ptr @__errno_location() #12
  store i32 %4696, ptr %4697, align 4, !tbaa !5
  %4698 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4699 = load i32, ptr @test_count, align 4, !tbaa !5
  %4700 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4701 = load i32, ptr %4700, align 4, !tbaa !5
  %4702 = call ptr @s2n_strerror(i32 noundef %4701, ptr noundef @.str.4)
  %4703 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4704 = load i32, ptr %4703, align 4, !tbaa !5
  %4705 = call ptr @s2n_strerror_debug(i32 noundef %4704, ptr noundef @.str.4)
  %4706 = call ptr @__errno_location() #12
  %4707 = load i32, ptr %4706, align 4, !tbaa !5
  %4708 = call ptr @strerror(i32 noundef %4707) #11
  %4709 = call ptr @__errno_location() #12
  %4710 = load i32, ptr %4709, align 4, !tbaa !5
  %4711 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4698, ptr noundef @.str.5, i32 noundef %4699, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 299, ptr noundef %4702, ptr noundef %4705, ptr noundef %4708, i32 noundef %4710) #11
  br label %4712

4712:                                             ; preds = %4695, %4678
  call void @llvm.lifetime.end.p0(i64 4, ptr %113) #11
  br label %4713

4713:                                             ; preds = %4712
  br label %4714

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

4715:                                             ; No predecessors!
  br label %4716

4716:                                             ; preds = %4715
  br label %4717

4717:                                             ; preds = %4716, %4655
  br label %4718

4718:                                             ; preds = %4717
  br label %4719

4719:                                             ; preds = %4718
  %4720 = load ptr, ptr %111, align 8, !tbaa !9
  %4721 = getelementptr inbounds %struct.s2n_connection, ptr %4720, i32 0, i32 52
  %4722 = getelementptr inbounds %struct.s2n_handshake, ptr %4721, i32 0, i32 7
  store i32 0, ptr %4722, align 8, !tbaa !26
  br label %4723

4723:                                             ; preds = %4719
  br label %4724

4724:                                             ; preds = %4723
  br label %4725

4725:                                             ; preds = %4724
  %4726 = load i32, ptr @test_count, align 4, !tbaa !5
  %4727 = add nsw i32 %4726, 1
  store i32 %4727, ptr @test_count, align 4, !tbaa !5
  %4728 = load ptr, ptr %111, align 8, !tbaa !9
  %4729 = call i32 @s2n_connection_ktls_enable_send(ptr noundef %4728)
  %4730 = icmp eq i32 %4729, -1
  br i1 %4730, label %4784, label %4731

4731:                                             ; preds = %4725
  br label %4732

4732:                                             ; preds = %4731
  br label %4733

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

4740:                                             ; preds = %4733
  %4741 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4742 = call i32 @fileno(ptr noundef %4741) #11
  %4743 = call i32 @isatty(i32 noundef %4742) #11
  %4744 = icmp ne i32 %4743, 0
  br i1 %4744, label %4745, label %4762

4745:                                             ; preds = %4740
  %4746 = load i32, ptr %114, align 4, !tbaa !5
  %4747 = call ptr @__errno_location() #12
  store i32 %4746, ptr %4747, align 4, !tbaa !5
  %4748 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4749 = load i32, ptr @test_count, align 4, !tbaa !5
  %4750 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4751 = load i32, ptr %4750, align 4, !tbaa !5
  %4752 = call ptr @s2n_strerror(i32 noundef %4751, ptr noundef @.str.4)
  %4753 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4754 = load i32, ptr %4753, align 4, !tbaa !5
  %4755 = call ptr @s2n_strerror_debug(i32 noundef %4754, ptr noundef @.str.4)
  %4756 = call ptr @__errno_location() #12
  %4757 = load i32, ptr %4756, align 4, !tbaa !5
  %4758 = call ptr @strerror(i32 noundef %4757) #11
  %4759 = call ptr @__errno_location() #12
  %4760 = load i32, ptr %4759, align 4, !tbaa !5
  %4761 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4748, ptr noundef @.str.2, i32 noundef %4749, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 302, ptr noundef %4752, ptr noundef %4755, ptr noundef %4758, i32 noundef %4760) #11
  br label %4779

4762:                                             ; preds = %4740, %4733
  %4763 = load i32, ptr %114, align 4, !tbaa !5
  %4764 = call ptr @__errno_location() #12
  store i32 %4763, ptr %4764, align 4, !tbaa !5
  %4765 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4766 = load i32, ptr @test_count, align 4, !tbaa !5
  %4767 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4768 = load i32, ptr %4767, align 4, !tbaa !5
  %4769 = call ptr @s2n_strerror(i32 noundef %4768, ptr noundef @.str.4)
  %4770 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4771 = load i32, ptr %4770, align 4, !tbaa !5
  %4772 = call ptr @s2n_strerror_debug(i32 noundef %4771, ptr noundef @.str.4)
  %4773 = call ptr @__errno_location() #12
  %4774 = load i32, ptr %4773, align 4, !tbaa !5
  %4775 = call ptr @strerror(i32 noundef %4774) #11
  %4776 = call ptr @__errno_location() #12
  %4777 = load i32, ptr %4776, align 4, !tbaa !5
  %4778 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4765, ptr noundef @.str.5, i32 noundef %4766, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 302, ptr noundef %4769, ptr noundef %4772, ptr noundef %4775, i32 noundef %4777) #11
  br label %4779

4779:                                             ; preds = %4762, %4745
  call void @llvm.lifetime.end.p0(i64 4, ptr %114) #11
  br label %4780

4780:                                             ; preds = %4779
  br label %4781

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

4782:                                             ; No predecessors!
  br label %4783

4783:                                             ; preds = %4782
  br label %4784

4784:                                             ; preds = %4783, %4725
  br label %4785

4785:                                             ; preds = %4784
  br label %4786

4786:                                             ; preds = %4785
  br label %4787

4787:                                             ; preds = %4786
  %4788 = load i32, ptr @test_count, align 4, !tbaa !5
  %4789 = add nsw i32 %4788, 1
  store i32 %4789, ptr @test_count, align 4, !tbaa !5
  %4790 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4791 = load i32, ptr %4790, align 4, !tbaa !5
  %4792 = icmp eq i32 %4791, 469762124
  br i1 %4792, label %4846, label %4793

4793:                                             ; preds = %4787
  br label %4794

4794:                                             ; preds = %4793
  br label %4795

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

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

4807:                                             ; preds = %4802
  %4808 = load i32, ptr %115, align 4, !tbaa !5
  %4809 = call ptr @__errno_location() #12
  store i32 %4808, ptr %4809, align 4, !tbaa !5
  %4810 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4811 = load i32, ptr @test_count, align 4, !tbaa !5
  %4812 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4813 = load i32, ptr %4812, align 4, !tbaa !5
  %4814 = call ptr @s2n_strerror(i32 noundef %4813, ptr noundef @.str.4)
  %4815 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4816 = load i32, ptr %4815, align 4, !tbaa !5
  %4817 = call ptr @s2n_strerror_debug(i32 noundef %4816, ptr noundef @.str.4)
  %4818 = call ptr @__errno_location() #12
  %4819 = load i32, ptr %4818, align 4, !tbaa !5
  %4820 = call ptr @strerror(i32 noundef %4819) #11
  %4821 = call ptr @__errno_location() #12
  %4822 = load i32, ptr %4821, align 4, !tbaa !5
  %4823 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4810, ptr noundef @.str.2, i32 noundef %4811, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 302, ptr noundef %4814, ptr noundef %4817, ptr noundef %4820, i32 noundef %4822) #11
  br label %4841

4824:                                             ; preds = %4802, %4795
  %4825 = load i32, ptr %115, align 4, !tbaa !5
  %4826 = call ptr @__errno_location() #12
  store i32 %4825, ptr %4826, align 4, !tbaa !5
  %4827 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4828 = load i32, ptr @test_count, align 4, !tbaa !5
  %4829 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4830 = load i32, ptr %4829, align 4, !tbaa !5
  %4831 = call ptr @s2n_strerror(i32 noundef %4830, ptr noundef @.str.4)
  %4832 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4833 = load i32, ptr %4832, align 4, !tbaa !5
  %4834 = call ptr @s2n_strerror_debug(i32 noundef %4833, ptr noundef @.str.4)
  %4835 = call ptr @__errno_location() #12
  %4836 = load i32, ptr %4835, align 4, !tbaa !5
  %4837 = call ptr @strerror(i32 noundef %4836) #11
  %4838 = call ptr @__errno_location() #12
  %4839 = load i32, ptr %4838, align 4, !tbaa !5
  %4840 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4827, ptr noundef @.str.5, i32 noundef %4828, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 302, ptr noundef %4831, ptr noundef %4834, ptr noundef %4837, i32 noundef %4839) #11
  br label %4841

4841:                                             ; preds = %4824, %4807
  call void @llvm.lifetime.end.p0(i64 4, ptr %115) #11
  br label %4842

4842:                                             ; preds = %4841
  br label %4843

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

4844:                                             ; No predecessors!
  br label %4845

4845:                                             ; preds = %4844
  br label %4846

4846:                                             ; preds = %4845, %4787
  br label %4847

4847:                                             ; preds = %4846
  br label %4848

4848:                                             ; preds = %4847
  br label %4849

4849:                                             ; preds = %4848
  %4850 = load i32, ptr @test_count, align 4, !tbaa !5
  %4851 = add nsw i32 %4850, 1
  store i32 %4851, ptr @test_count, align 4, !tbaa !5
  %4852 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4853 = load i32, ptr %4852, align 4, !tbaa !5
  %4854 = call ptr @s2n_strerror_debug(i32 noundef %4853, ptr noundef @.str.4)
  %4855 = icmp eq ptr %4854, null
  br i1 %4855, label %4856, label %4909

4856:                                             ; preds = %4849
  br label %4857

4857:                                             ; preds = %4856
  br label %4858

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

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

4870:                                             ; preds = %4865
  %4871 = load i32, ptr %116, align 4, !tbaa !5
  %4872 = call ptr @__errno_location() #12
  store i32 %4871, ptr %4872, align 4, !tbaa !5
  %4873 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4874 = load i32, ptr @test_count, align 4, !tbaa !5
  %4875 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4876 = load i32, ptr %4875, align 4, !tbaa !5
  %4877 = call ptr @s2n_strerror(i32 noundef %4876, ptr noundef @.str.4)
  %4878 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4879 = load i32, ptr %4878, align 4, !tbaa !5
  %4880 = call ptr @s2n_strerror_debug(i32 noundef %4879, ptr noundef @.str.4)
  %4881 = call ptr @__errno_location() #12
  %4882 = load i32, ptr %4881, align 4, !tbaa !5
  %4883 = call ptr @strerror(i32 noundef %4882) #11
  %4884 = call ptr @__errno_location() #12
  %4885 = load i32, ptr %4884, align 4, !tbaa !5
  %4886 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4873, ptr noundef @.str.2, i32 noundef %4874, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 302, ptr noundef %4877, ptr noundef %4880, ptr noundef %4883, i32 noundef %4885) #11
  br label %4904

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

4904:                                             ; preds = %4887, %4870
  call void @llvm.lifetime.end.p0(i64 4, ptr %116) #11
  br label %4905

4905:                                             ; preds = %4904
  br label %4906

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

4907:                                             ; No predecessors!
  br label %4908

4908:                                             ; preds = %4907
  br label %4909

4909:                                             ; preds = %4908, %4849
  br label %4910

4910:                                             ; preds = %4909
  br label %4911

4911:                                             ; preds = %4910
  br label %4912

4912:                                             ; preds = %4911
  br label %4913

4913:                                             ; preds = %4912
  br label %4914

4914:                                             ; preds = %4913
  %4915 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %4915, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %4916 = call ptr @__errno_location() #12
  store i32 0, ptr %4916, align 4, !tbaa !5
  br label %4917

4917:                                             ; preds = %4914
  br label %4918

4918:                                             ; preds = %4917
  br label %4919

4919:                                             ; preds = %4918
  br label %4920

4920:                                             ; preds = %4919
  br label %4921

4921:                                             ; preds = %4920
  br label %4922

4922:                                             ; preds = %4921
  br label %4923

4923:                                             ; preds = %4922
  %4924 = load i32, ptr @test_count, align 4, !tbaa !5
  %4925 = add nsw i32 %4924, 1
  store i32 %4925, ptr @test_count, align 4, !tbaa !5
  %4926 = load ptr, ptr %111, align 8, !tbaa !9
  %4927 = call i32 @s2n_connection_ktls_enable_recv(ptr noundef %4926)
  %4928 = icmp eq i32 %4927, -1
  br i1 %4928, label %4982, label %4929

4929:                                             ; preds = %4923
  br label %4930

4930:                                             ; preds = %4929
  br label %4931

4931:                                             ; preds = %4930
  call void @llvm.lifetime.start.p0(i64 4, ptr %117) #11
  %4932 = call ptr @__errno_location() #12
  %4933 = load i32, ptr %4932, align 4, !tbaa !5
  store i32 %4933, ptr %117, align 4, !tbaa !5
  %4934 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4935 = call i32 @s2n_print_stacktrace(ptr noundef %4934)
  %4936 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4937 = trunc i8 %4936 to i1
  br i1 %4937, label %4938, label %4960

4938:                                             ; preds = %4931
  %4939 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4940 = call i32 @fileno(ptr noundef %4939) #11
  %4941 = call i32 @isatty(i32 noundef %4940) #11
  %4942 = icmp ne i32 %4941, 0
  br i1 %4942, label %4943, label %4960

4943:                                             ; preds = %4938
  %4944 = load i32, ptr %117, align 4, !tbaa !5
  %4945 = call ptr @__errno_location() #12
  store i32 %4944, ptr %4945, align 4, !tbaa !5
  %4946 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4947 = load i32, ptr @test_count, align 4, !tbaa !5
  %4948 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4949 = load i32, ptr %4948, align 4, !tbaa !5
  %4950 = call ptr @s2n_strerror(i32 noundef %4949, ptr noundef @.str.4)
  %4951 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4952 = load i32, ptr %4951, align 4, !tbaa !5
  %4953 = call ptr @s2n_strerror_debug(i32 noundef %4952, ptr noundef @.str.4)
  %4954 = call ptr @__errno_location() #12
  %4955 = load i32, ptr %4954, align 4, !tbaa !5
  %4956 = call ptr @strerror(i32 noundef %4955) #11
  %4957 = call ptr @__errno_location() #12
  %4958 = load i32, ptr %4957, align 4, !tbaa !5
  %4959 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4946, ptr noundef @.str.2, i32 noundef %4947, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 303, ptr noundef %4950, ptr noundef %4953, ptr noundef %4956, i32 noundef %4958) #11
  br label %4977

4960:                                             ; preds = %4938, %4931
  %4961 = load i32, ptr %117, align 4, !tbaa !5
  %4962 = call ptr @__errno_location() #12
  store i32 %4961, ptr %4962, align 4, !tbaa !5
  %4963 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4964 = load i32, ptr @test_count, align 4, !tbaa !5
  %4965 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4966 = load i32, ptr %4965, align 4, !tbaa !5
  %4967 = call ptr @s2n_strerror(i32 noundef %4966, ptr noundef @.str.4)
  %4968 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4969 = load i32, ptr %4968, align 4, !tbaa !5
  %4970 = call ptr @s2n_strerror_debug(i32 noundef %4969, ptr noundef @.str.4)
  %4971 = call ptr @__errno_location() #12
  %4972 = load i32, ptr %4971, align 4, !tbaa !5
  %4973 = call ptr @strerror(i32 noundef %4972) #11
  %4974 = call ptr @__errno_location() #12
  %4975 = load i32, ptr %4974, align 4, !tbaa !5
  %4976 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4963, ptr noundef @.str.5, i32 noundef %4964, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 303, ptr noundef %4967, ptr noundef %4970, ptr noundef %4973, i32 noundef %4975) #11
  br label %4977

4977:                                             ; preds = %4960, %4943
  call void @llvm.lifetime.end.p0(i64 4, ptr %117) #11
  br label %4978

4978:                                             ; preds = %4977
  br label %4979

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

4980:                                             ; No predecessors!
  br label %4981

4981:                                             ; preds = %4980
  br label %4982

4982:                                             ; preds = %4981, %4923
  br label %4983

4983:                                             ; preds = %4982
  br label %4984

4984:                                             ; preds = %4983
  br label %4985

4985:                                             ; preds = %4984
  %4986 = load i32, ptr @test_count, align 4, !tbaa !5
  %4987 = add nsw i32 %4986, 1
  store i32 %4987, ptr @test_count, align 4, !tbaa !5
  %4988 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4989 = load i32, ptr %4988, align 4, !tbaa !5
  %4990 = icmp eq i32 %4989, 469762124
  br i1 %4990, label %5044, label %4991

4991:                                             ; preds = %4985
  br label %4992

4992:                                             ; preds = %4991
  br label %4993

4993:                                             ; preds = %4992
  call void @llvm.lifetime.start.p0(i64 4, ptr %118) #11
  %4994 = call ptr @__errno_location() #12
  %4995 = load i32, ptr %4994, align 4, !tbaa !5
  store i32 %4995, ptr %118, align 4, !tbaa !5
  %4996 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4997 = call i32 @s2n_print_stacktrace(ptr noundef %4996)
  %4998 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4999 = trunc i8 %4998 to i1
  br i1 %4999, label %5000, label %5022

5000:                                             ; preds = %4993
  %5001 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5002 = call i32 @fileno(ptr noundef %5001) #11
  %5003 = call i32 @isatty(i32 noundef %5002) #11
  %5004 = icmp ne i32 %5003, 0
  br i1 %5004, label %5005, label %5022

5005:                                             ; preds = %5000
  %5006 = load i32, ptr %118, align 4, !tbaa !5
  %5007 = call ptr @__errno_location() #12
  store i32 %5006, ptr %5007, align 4, !tbaa !5
  %5008 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5009 = load i32, ptr @test_count, align 4, !tbaa !5
  %5010 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5011 = load i32, ptr %5010, align 4, !tbaa !5
  %5012 = call ptr @s2n_strerror(i32 noundef %5011, ptr noundef @.str.4)
  %5013 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5014 = load i32, ptr %5013, align 4, !tbaa !5
  %5015 = call ptr @s2n_strerror_debug(i32 noundef %5014, ptr noundef @.str.4)
  %5016 = call ptr @__errno_location() #12
  %5017 = load i32, ptr %5016, align 4, !tbaa !5
  %5018 = call ptr @strerror(i32 noundef %5017) #11
  %5019 = call ptr @__errno_location() #12
  %5020 = load i32, ptr %5019, align 4, !tbaa !5
  %5021 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5008, ptr noundef @.str.2, i32 noundef %5009, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 303, ptr noundef %5012, ptr noundef %5015, ptr noundef %5018, i32 noundef %5020) #11
  br label %5039

5022:                                             ; preds = %5000, %4993
  %5023 = load i32, ptr %118, align 4, !tbaa !5
  %5024 = call ptr @__errno_location() #12
  store i32 %5023, ptr %5024, align 4, !tbaa !5
  %5025 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5026 = load i32, ptr @test_count, align 4, !tbaa !5
  %5027 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5028 = load i32, ptr %5027, align 4, !tbaa !5
  %5029 = call ptr @s2n_strerror(i32 noundef %5028, ptr noundef @.str.4)
  %5030 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5031 = load i32, ptr %5030, align 4, !tbaa !5
  %5032 = call ptr @s2n_strerror_debug(i32 noundef %5031, ptr noundef @.str.4)
  %5033 = call ptr @__errno_location() #12
  %5034 = load i32, ptr %5033, align 4, !tbaa !5
  %5035 = call ptr @strerror(i32 noundef %5034) #11
  %5036 = call ptr @__errno_location() #12
  %5037 = load i32, ptr %5036, align 4, !tbaa !5
  %5038 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5025, ptr noundef @.str.5, i32 noundef %5026, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 303, ptr noundef %5029, ptr noundef %5032, ptr noundef %5035, i32 noundef %5037) #11
  br label %5039

5039:                                             ; preds = %5022, %5005
  call void @llvm.lifetime.end.p0(i64 4, ptr %118) #11
  br label %5040

5040:                                             ; preds = %5039
  br label %5041

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

5042:                                             ; No predecessors!
  br label %5043

5043:                                             ; preds = %5042
  br label %5044

5044:                                             ; preds = %5043, %4985
  br label %5045

5045:                                             ; preds = %5044
  br label %5046

5046:                                             ; preds = %5045
  br label %5047

5047:                                             ; preds = %5046
  %5048 = load i32, ptr @test_count, align 4, !tbaa !5
  %5049 = add nsw i32 %5048, 1
  store i32 %5049, ptr @test_count, align 4, !tbaa !5
  %5050 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5051 = load i32, ptr %5050, align 4, !tbaa !5
  %5052 = call ptr @s2n_strerror_debug(i32 noundef %5051, ptr noundef @.str.4)
  %5053 = icmp eq ptr %5052, null
  br i1 %5053, label %5054, label %5107

5054:                                             ; preds = %5047
  br label %5055

5055:                                             ; preds = %5054
  br label %5056

5056:                                             ; preds = %5055
  call void @llvm.lifetime.start.p0(i64 4, ptr %119) #11
  %5057 = call ptr @__errno_location() #12
  %5058 = load i32, ptr %5057, align 4, !tbaa !5
  store i32 %5058, ptr %119, align 4, !tbaa !5
  %5059 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5060 = call i32 @s2n_print_stacktrace(ptr noundef %5059)
  %5061 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5062 = trunc i8 %5061 to i1
  br i1 %5062, label %5063, label %5085

5063:                                             ; preds = %5056
  %5064 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5065 = call i32 @fileno(ptr noundef %5064) #11
  %5066 = call i32 @isatty(i32 noundef %5065) #11
  %5067 = icmp ne i32 %5066, 0
  br i1 %5067, label %5068, label %5085

5068:                                             ; preds = %5063
  %5069 = load i32, ptr %119, align 4, !tbaa !5
  %5070 = call ptr @__errno_location() #12
  store i32 %5069, ptr %5070, align 4, !tbaa !5
  %5071 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5072 = load i32, ptr @test_count, align 4, !tbaa !5
  %5073 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5074 = load i32, ptr %5073, align 4, !tbaa !5
  %5075 = call ptr @s2n_strerror(i32 noundef %5074, ptr noundef @.str.4)
  %5076 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5077 = load i32, ptr %5076, align 4, !tbaa !5
  %5078 = call ptr @s2n_strerror_debug(i32 noundef %5077, ptr noundef @.str.4)
  %5079 = call ptr @__errno_location() #12
  %5080 = load i32, ptr %5079, align 4, !tbaa !5
  %5081 = call ptr @strerror(i32 noundef %5080) #11
  %5082 = call ptr @__errno_location() #12
  %5083 = load i32, ptr %5082, align 4, !tbaa !5
  %5084 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5071, ptr noundef @.str.2, i32 noundef %5072, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 303, ptr noundef %5075, ptr noundef %5078, ptr noundef %5081, i32 noundef %5083) #11
  br label %5102

5085:                                             ; preds = %5063, %5056
  %5086 = load i32, ptr %119, align 4, !tbaa !5
  %5087 = call ptr @__errno_location() #12
  store i32 %5086, ptr %5087, align 4, !tbaa !5
  %5088 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5089 = load i32, ptr @test_count, align 4, !tbaa !5
  %5090 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5091 = load i32, ptr %5090, align 4, !tbaa !5
  %5092 = call ptr @s2n_strerror(i32 noundef %5091, ptr noundef @.str.4)
  %5093 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5094 = load i32, ptr %5093, align 4, !tbaa !5
  %5095 = call ptr @s2n_strerror_debug(i32 noundef %5094, ptr noundef @.str.4)
  %5096 = call ptr @__errno_location() #12
  %5097 = load i32, ptr %5096, align 4, !tbaa !5
  %5098 = call ptr @strerror(i32 noundef %5097) #11
  %5099 = call ptr @__errno_location() #12
  %5100 = load i32, ptr %5099, align 4, !tbaa !5
  %5101 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5088, ptr noundef @.str.5, i32 noundef %5089, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 303, ptr noundef %5092, ptr noundef %5095, ptr noundef %5098, i32 noundef %5100) #11
  br label %5102

5102:                                             ; preds = %5085, %5068
  call void @llvm.lifetime.end.p0(i64 4, ptr %119) #11
  br label %5103

5103:                                             ; preds = %5102
  br label %5104

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

5105:                                             ; No predecessors!
  br label %5106

5106:                                             ; preds = %5105
  br label %5107

5107:                                             ; preds = %5106, %5047
  br label %5108

5108:                                             ; preds = %5107
  br label %5109

5109:                                             ; preds = %5108
  br label %5110

5110:                                             ; preds = %5109
  br label %5111

5111:                                             ; preds = %5110
  br label %5112

5112:                                             ; preds = %5111
  %5113 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %5113, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %5114 = call ptr @__errno_location() #12
  store i32 0, ptr %5114, align 4, !tbaa !5
  br label %5115

5115:                                             ; preds = %5112
  br label %5116

5116:                                             ; preds = %5115
  br label %5117

5117:                                             ; preds = %5116
  br label %5118

5118:                                             ; preds = %5117
  %5119 = call i32 @s2n_connection_ptr_free(ptr noundef %111)
  %5120 = getelementptr inbounds %struct.s2n_result, ptr %120, i32 0, i32 0
  store i32 %5119, ptr %5120, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %111) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %121) #11
  %5121 = call ptr @s2n_config_new()
  store ptr %5121, ptr %121, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %122) #11
  %5122 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %5122, ptr %122, align 8, !tbaa !9
  br label %5123

5123:                                             ; preds = %5118
  %5124 = load i32, ptr @test_count, align 4, !tbaa !5
  %5125 = add nsw i32 %5124, 1
  store i32 %5125, ptr @test_count, align 4, !tbaa !5
  %5126 = load ptr, ptr %122, align 8, !tbaa !9
  %5127 = load ptr, ptr %121, align 8, !tbaa !9
  %5128 = call i32 @s2n_connection_set_config(ptr noundef %5126, ptr noundef %5127)
  %5129 = icmp eq i32 %5128, -1
  br i1 %5129, label %5130, label %5183

5130:                                             ; preds = %5123
  br label %5131

5131:                                             ; preds = %5130
  br label %5132

5132:                                             ; preds = %5131
  call void @llvm.lifetime.start.p0(i64 4, ptr %123) #11
  %5133 = call ptr @__errno_location() #12
  %5134 = load i32, ptr %5133, align 4, !tbaa !5
  store i32 %5134, ptr %123, align 4, !tbaa !5
  %5135 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5136 = call i32 @s2n_print_stacktrace(ptr noundef %5135)
  %5137 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5138 = trunc i8 %5137 to i1
  br i1 %5138, label %5139, label %5161

5139:                                             ; preds = %5132
  %5140 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5141 = call i32 @fileno(ptr noundef %5140) #11
  %5142 = call i32 @isatty(i32 noundef %5141) #11
  %5143 = icmp ne i32 %5142, 0
  br i1 %5143, label %5144, label %5161

5144:                                             ; preds = %5139
  %5145 = load i32, ptr %123, align 4, !tbaa !5
  %5146 = call ptr @__errno_location() #12
  store i32 %5145, ptr %5146, align 4, !tbaa !5
  %5147 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5148 = load i32, ptr @test_count, align 4, !tbaa !5
  %5149 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5150 = load i32, ptr %5149, align 4, !tbaa !5
  %5151 = call ptr @s2n_strerror(i32 noundef %5150, ptr noundef @.str.4)
  %5152 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5153 = load i32, ptr %5152, align 4, !tbaa !5
  %5154 = call ptr @s2n_strerror_debug(i32 noundef %5153, ptr noundef @.str.4)
  %5155 = call ptr @__errno_location() #12
  %5156 = load i32, ptr %5155, align 4, !tbaa !5
  %5157 = call ptr @strerror(i32 noundef %5156) #11
  %5158 = call ptr @__errno_location() #12
  %5159 = load i32, ptr %5158, align 4, !tbaa !5
  %5160 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5147, ptr noundef @.str.2, i32 noundef %5148, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 311, ptr noundef %5151, ptr noundef %5154, ptr noundef %5157, i32 noundef %5159) #11
  br label %5178

5161:                                             ; preds = %5139, %5132
  %5162 = load i32, ptr %123, align 4, !tbaa !5
  %5163 = call ptr @__errno_location() #12
  store i32 %5162, ptr %5163, align 4, !tbaa !5
  %5164 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5165 = load i32, ptr @test_count, align 4, !tbaa !5
  %5166 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5167 = load i32, ptr %5166, align 4, !tbaa !5
  %5168 = call ptr @s2n_strerror(i32 noundef %5167, ptr noundef @.str.4)
  %5169 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5170 = load i32, ptr %5169, align 4, !tbaa !5
  %5171 = call ptr @s2n_strerror_debug(i32 noundef %5170, ptr noundef @.str.4)
  %5172 = call ptr @__errno_location() #12
  %5173 = load i32, ptr %5172, align 4, !tbaa !5
  %5174 = call ptr @strerror(i32 noundef %5173) #11
  %5175 = call ptr @__errno_location() #12
  %5176 = load i32, ptr %5175, align 4, !tbaa !5
  %5177 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5164, ptr noundef @.str.5, i32 noundef %5165, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 311, ptr noundef %5168, ptr noundef %5171, ptr noundef %5174, i32 noundef %5176) #11
  br label %5178

5178:                                             ; preds = %5161, %5144
  call void @llvm.lifetime.end.p0(i64 4, ptr %123) #11
  br label %5179

5179:                                             ; preds = %5178
  br label %5180

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

5181:                                             ; No predecessors!
  br label %5182

5182:                                             ; preds = %5181
  br label %5183

5183:                                             ; preds = %5182, %5123
  br label %5184

5184:                                             ; preds = %5183
  br label %5185

5185:                                             ; preds = %5184
  br label %5186

5186:                                             ; preds = %5185
  %5187 = load i32, ptr @test_count, align 4, !tbaa !5
  %5188 = add nsw i32 %5187, 1
  store i32 %5188, ptr @test_count, align 4, !tbaa !5
  %5189 = load ptr, ptr %122, align 8, !tbaa !9
  %5190 = call i32 @s2n_test_configure_connection_for_ktls(ptr noundef %5189)
  %5191 = getelementptr inbounds %struct.s2n_result, ptr %124, i32 0, i32 0
  store i32 %5190, ptr %5191, align 4
  %5192 = getelementptr inbounds %struct.s2n_result, ptr %124, i32 0, i32 0
  %5193 = load i32, ptr %5192, align 4
  %5194 = call zeroext i1 @s2n_result_is_ok(i32 %5193)
  br i1 %5194, label %5248, label %5195

5195:                                             ; preds = %5186
  br label %5196

5196:                                             ; preds = %5195
  br label %5197

5197:                                             ; preds = %5196
  call void @llvm.lifetime.start.p0(i64 4, ptr %125) #11
  %5198 = call ptr @__errno_location() #12
  %5199 = load i32, ptr %5198, align 4, !tbaa !5
  store i32 %5199, ptr %125, align 4, !tbaa !5
  %5200 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5201 = call i32 @s2n_print_stacktrace(ptr noundef %5200)
  %5202 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5203 = trunc i8 %5202 to i1
  br i1 %5203, label %5204, label %5226

5204:                                             ; preds = %5197
  %5205 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5206 = call i32 @fileno(ptr noundef %5205) #11
  %5207 = call i32 @isatty(i32 noundef %5206) #11
  %5208 = icmp ne i32 %5207, 0
  br i1 %5208, label %5209, label %5226

5209:                                             ; preds = %5204
  %5210 = load i32, ptr %125, align 4, !tbaa !5
  %5211 = call ptr @__errno_location() #12
  store i32 %5210, ptr %5211, align 4, !tbaa !5
  %5212 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5213 = load i32, ptr @test_count, align 4, !tbaa !5
  %5214 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5215 = load i32, ptr %5214, align 4, !tbaa !5
  %5216 = call ptr @s2n_strerror(i32 noundef %5215, ptr noundef @.str.4)
  %5217 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5218 = load i32, ptr %5217, align 4, !tbaa !5
  %5219 = call ptr @s2n_strerror_debug(i32 noundef %5218, ptr noundef @.str.4)
  %5220 = call ptr @__errno_location() #12
  %5221 = load i32, ptr %5220, align 4, !tbaa !5
  %5222 = call ptr @strerror(i32 noundef %5221) #11
  %5223 = call ptr @__errno_location() #12
  %5224 = load i32, ptr %5223, align 4, !tbaa !5
  %5225 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5212, ptr noundef @.str.2, i32 noundef %5213, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 312, ptr noundef %5216, ptr noundef %5219, ptr noundef %5222, i32 noundef %5224) #11
  br label %5243

5226:                                             ; preds = %5204, %5197
  %5227 = load i32, ptr %125, align 4, !tbaa !5
  %5228 = call ptr @__errno_location() #12
  store i32 %5227, ptr %5228, align 4, !tbaa !5
  %5229 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5230 = load i32, ptr @test_count, align 4, !tbaa !5
  %5231 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5232 = load i32, ptr %5231, align 4, !tbaa !5
  %5233 = call ptr @s2n_strerror(i32 noundef %5232, ptr noundef @.str.4)
  %5234 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5235 = load i32, ptr %5234, align 4, !tbaa !5
  %5236 = call ptr @s2n_strerror_debug(i32 noundef %5235, ptr noundef @.str.4)
  %5237 = call ptr @__errno_location() #12
  %5238 = load i32, ptr %5237, align 4, !tbaa !5
  %5239 = call ptr @strerror(i32 noundef %5238) #11
  %5240 = call ptr @__errno_location() #12
  %5241 = load i32, ptr %5240, align 4, !tbaa !5
  %5242 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5229, ptr noundef @.str.5, i32 noundef %5230, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 312, ptr noundef %5233, ptr noundef %5236, ptr noundef %5239, i32 noundef %5241) #11
  br label %5243

5243:                                             ; preds = %5226, %5209
  call void @llvm.lifetime.end.p0(i64 4, ptr %125) #11
  br label %5244

5244:                                             ; preds = %5243
  br label %5245

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

5246:                                             ; No predecessors!
  br label %5247

5247:                                             ; preds = %5246
  br label %5248

5248:                                             ; preds = %5247, %5186
  br label %5249

5249:                                             ; preds = %5248
  br label %5250

5250:                                             ; preds = %5249
  %5251 = load ptr, ptr %122, align 8, !tbaa !9
  %5252 = getelementptr inbounds %struct.s2n_connection, ptr %5251, i32 0, i32 23
  store i8 34, ptr %5252, align 4, !tbaa !52
  %5253 = load ptr, ptr %122, align 8, !tbaa !9
  %5254 = getelementptr inbounds %struct.s2n_connection, ptr %5253, i32 0, i32 27
  %5255 = load ptr, ptr %5254, align 8, !tbaa !53
  %5256 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %5255, i32 0, i32 0
  store ptr @s2n_tls13_aes_128_gcm_sha256, ptr %5256, align 8, !tbaa !54
  br label %5257

5257:                                             ; preds = %5250
  br label %5258

5258:                                             ; preds = %5257
  br label %5259

5259:                                             ; preds = %5258
  %5260 = load i32, ptr @test_count, align 4, !tbaa !5
  %5261 = add nsw i32 %5260, 1
  store i32 %5261, ptr @test_count, align 4, !tbaa !5
  %5262 = load ptr, ptr %122, align 8, !tbaa !9
  %5263 = call i32 @s2n_connection_ktls_enable_send(ptr noundef %5262)
  %5264 = icmp eq i32 %5263, -1
  br i1 %5264, label %5318, label %5265

5265:                                             ; preds = %5259
  br label %5266

5266:                                             ; preds = %5265
  br label %5267

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

5274:                                             ; preds = %5267
  %5275 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5276 = call i32 @fileno(ptr noundef %5275) #11
  %5277 = call i32 @isatty(i32 noundef %5276) #11
  %5278 = icmp ne i32 %5277, 0
  br i1 %5278, label %5279, label %5296

5279:                                             ; preds = %5274
  %5280 = load i32, ptr %126, align 4, !tbaa !5
  %5281 = call ptr @__errno_location() #12
  store i32 %5280, ptr %5281, align 4, !tbaa !5
  %5282 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5283 = load i32, ptr @test_count, align 4, !tbaa !5
  %5284 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5285 = load i32, ptr %5284, align 4, !tbaa !5
  %5286 = call ptr @s2n_strerror(i32 noundef %5285, ptr noundef @.str.4)
  %5287 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5288 = load i32, ptr %5287, align 4, !tbaa !5
  %5289 = call ptr @s2n_strerror_debug(i32 noundef %5288, ptr noundef @.str.4)
  %5290 = call ptr @__errno_location() #12
  %5291 = load i32, ptr %5290, align 4, !tbaa !5
  %5292 = call ptr @strerror(i32 noundef %5291) #11
  %5293 = call ptr @__errno_location() #12
  %5294 = load i32, ptr %5293, align 4, !tbaa !5
  %5295 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5282, ptr noundef @.str.2, i32 noundef %5283, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 319, ptr noundef %5286, ptr noundef %5289, ptr noundef %5292, i32 noundef %5294) #11
  br label %5313

5296:                                             ; preds = %5274, %5267
  %5297 = load i32, ptr %126, align 4, !tbaa !5
  %5298 = call ptr @__errno_location() #12
  store i32 %5297, ptr %5298, align 4, !tbaa !5
  %5299 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5300 = load i32, ptr @test_count, align 4, !tbaa !5
  %5301 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5302 = load i32, ptr %5301, align 4, !tbaa !5
  %5303 = call ptr @s2n_strerror(i32 noundef %5302, ptr noundef @.str.4)
  %5304 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5305 = load i32, ptr %5304, align 4, !tbaa !5
  %5306 = call ptr @s2n_strerror_debug(i32 noundef %5305, ptr noundef @.str.4)
  %5307 = call ptr @__errno_location() #12
  %5308 = load i32, ptr %5307, align 4, !tbaa !5
  %5309 = call ptr @strerror(i32 noundef %5308) #11
  %5310 = call ptr @__errno_location() #12
  %5311 = load i32, ptr %5310, align 4, !tbaa !5
  %5312 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5299, ptr noundef @.str.5, i32 noundef %5300, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 319, ptr noundef %5303, ptr noundef %5306, ptr noundef %5309, i32 noundef %5311) #11
  br label %5313

5313:                                             ; preds = %5296, %5279
  call void @llvm.lifetime.end.p0(i64 4, ptr %126) #11
  br label %5314

5314:                                             ; preds = %5313
  br label %5315

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

5316:                                             ; No predecessors!
  br label %5317

5317:                                             ; preds = %5316
  br label %5318

5318:                                             ; preds = %5317, %5259
  br label %5319

5319:                                             ; preds = %5318
  br label %5320

5320:                                             ; preds = %5319
  br label %5321

5321:                                             ; preds = %5320
  %5322 = load i32, ptr @test_count, align 4, !tbaa !5
  %5323 = add nsw i32 %5322, 1
  store i32 %5323, ptr @test_count, align 4, !tbaa !5
  %5324 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5325 = load i32, ptr %5324, align 4, !tbaa !5
  %5326 = icmp eq i32 %5325, 469762127
  br i1 %5326, label %5380, label %5327

5327:                                             ; preds = %5321
  br label %5328

5328:                                             ; preds = %5327
  br label %5329

5329:                                             ; preds = %5328
  call void @llvm.lifetime.start.p0(i64 4, ptr %127) #11
  %5330 = call ptr @__errno_location() #12
  %5331 = load i32, ptr %5330, align 4, !tbaa !5
  store i32 %5331, ptr %127, align 4, !tbaa !5
  %5332 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5333 = call i32 @s2n_print_stacktrace(ptr noundef %5332)
  %5334 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5335 = trunc i8 %5334 to i1
  br i1 %5335, label %5336, label %5358

5336:                                             ; preds = %5329
  %5337 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5338 = call i32 @fileno(ptr noundef %5337) #11
  %5339 = call i32 @isatty(i32 noundef %5338) #11
  %5340 = icmp ne i32 %5339, 0
  br i1 %5340, label %5341, label %5358

5341:                                             ; preds = %5336
  %5342 = load i32, ptr %127, align 4, !tbaa !5
  %5343 = call ptr @__errno_location() #12
  store i32 %5342, ptr %5343, align 4, !tbaa !5
  %5344 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5345 = load i32, ptr @test_count, align 4, !tbaa !5
  %5346 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5347 = load i32, ptr %5346, align 4, !tbaa !5
  %5348 = call ptr @s2n_strerror(i32 noundef %5347, ptr noundef @.str.4)
  %5349 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5350 = load i32, ptr %5349, align 4, !tbaa !5
  %5351 = call ptr @s2n_strerror_debug(i32 noundef %5350, ptr noundef @.str.4)
  %5352 = call ptr @__errno_location() #12
  %5353 = load i32, ptr %5352, align 4, !tbaa !5
  %5354 = call ptr @strerror(i32 noundef %5353) #11
  %5355 = call ptr @__errno_location() #12
  %5356 = load i32, ptr %5355, align 4, !tbaa !5
  %5357 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5344, ptr noundef @.str.2, i32 noundef %5345, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 319, ptr noundef %5348, ptr noundef %5351, ptr noundef %5354, i32 noundef %5356) #11
  br label %5375

5358:                                             ; preds = %5336, %5329
  %5359 = load i32, ptr %127, align 4, !tbaa !5
  %5360 = call ptr @__errno_location() #12
  store i32 %5359, ptr %5360, align 4, !tbaa !5
  %5361 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5362 = load i32, ptr @test_count, align 4, !tbaa !5
  %5363 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5364 = load i32, ptr %5363, align 4, !tbaa !5
  %5365 = call ptr @s2n_strerror(i32 noundef %5364, ptr noundef @.str.4)
  %5366 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5367 = load i32, ptr %5366, align 4, !tbaa !5
  %5368 = call ptr @s2n_strerror_debug(i32 noundef %5367, ptr noundef @.str.4)
  %5369 = call ptr @__errno_location() #12
  %5370 = load i32, ptr %5369, align 4, !tbaa !5
  %5371 = call ptr @strerror(i32 noundef %5370) #11
  %5372 = call ptr @__errno_location() #12
  %5373 = load i32, ptr %5372, align 4, !tbaa !5
  %5374 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5361, ptr noundef @.str.5, i32 noundef %5362, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 319, ptr noundef %5365, ptr noundef %5368, ptr noundef %5371, i32 noundef %5373) #11
  br label %5375

5375:                                             ; preds = %5358, %5341
  call void @llvm.lifetime.end.p0(i64 4, ptr %127) #11
  br label %5376

5376:                                             ; preds = %5375
  br label %5377

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

5378:                                             ; No predecessors!
  br label %5379

5379:                                             ; preds = %5378
  br label %5380

5380:                                             ; preds = %5379, %5321
  br label %5381

5381:                                             ; preds = %5380
  br label %5382

5382:                                             ; preds = %5381
  br label %5383

5383:                                             ; preds = %5382
  %5384 = load i32, ptr @test_count, align 4, !tbaa !5
  %5385 = add nsw i32 %5384, 1
  store i32 %5385, ptr @test_count, align 4, !tbaa !5
  %5386 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5387 = load i32, ptr %5386, align 4, !tbaa !5
  %5388 = call ptr @s2n_strerror_debug(i32 noundef %5387, ptr noundef @.str.4)
  %5389 = icmp eq ptr %5388, null
  br i1 %5389, label %5390, label %5443

5390:                                             ; preds = %5383
  br label %5391

5391:                                             ; preds = %5390
  br label %5392

5392:                                             ; preds = %5391
  call void @llvm.lifetime.start.p0(i64 4, ptr %128) #11
  %5393 = call ptr @__errno_location() #12
  %5394 = load i32, ptr %5393, align 4, !tbaa !5
  store i32 %5394, ptr %128, align 4, !tbaa !5
  %5395 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5396 = call i32 @s2n_print_stacktrace(ptr noundef %5395)
  %5397 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5398 = trunc i8 %5397 to i1
  br i1 %5398, label %5399, label %5421

5399:                                             ; preds = %5392
  %5400 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5401 = call i32 @fileno(ptr noundef %5400) #11
  %5402 = call i32 @isatty(i32 noundef %5401) #11
  %5403 = icmp ne i32 %5402, 0
  br i1 %5403, label %5404, label %5421

5404:                                             ; preds = %5399
  %5405 = load i32, ptr %128, align 4, !tbaa !5
  %5406 = call ptr @__errno_location() #12
  store i32 %5405, ptr %5406, align 4, !tbaa !5
  %5407 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5408 = load i32, ptr @test_count, align 4, !tbaa !5
  %5409 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5410 = load i32, ptr %5409, align 4, !tbaa !5
  %5411 = call ptr @s2n_strerror(i32 noundef %5410, ptr noundef @.str.4)
  %5412 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5413 = load i32, ptr %5412, align 4, !tbaa !5
  %5414 = call ptr @s2n_strerror_debug(i32 noundef %5413, ptr noundef @.str.4)
  %5415 = call ptr @__errno_location() #12
  %5416 = load i32, ptr %5415, align 4, !tbaa !5
  %5417 = call ptr @strerror(i32 noundef %5416) #11
  %5418 = call ptr @__errno_location() #12
  %5419 = load i32, ptr %5418, align 4, !tbaa !5
  %5420 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5407, ptr noundef @.str.2, i32 noundef %5408, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 319, ptr noundef %5411, ptr noundef %5414, ptr noundef %5417, i32 noundef %5419) #11
  br label %5438

5421:                                             ; preds = %5399, %5392
  %5422 = load i32, ptr %128, align 4, !tbaa !5
  %5423 = call ptr @__errno_location() #12
  store i32 %5422, ptr %5423, align 4, !tbaa !5
  %5424 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5425 = load i32, ptr @test_count, align 4, !tbaa !5
  %5426 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5427 = load i32, ptr %5426, align 4, !tbaa !5
  %5428 = call ptr @s2n_strerror(i32 noundef %5427, ptr noundef @.str.4)
  %5429 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5430 = load i32, ptr %5429, align 4, !tbaa !5
  %5431 = call ptr @s2n_strerror_debug(i32 noundef %5430, ptr noundef @.str.4)
  %5432 = call ptr @__errno_location() #12
  %5433 = load i32, ptr %5432, align 4, !tbaa !5
  %5434 = call ptr @strerror(i32 noundef %5433) #11
  %5435 = call ptr @__errno_location() #12
  %5436 = load i32, ptr %5435, align 4, !tbaa !5
  %5437 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5424, ptr noundef @.str.5, i32 noundef %5425, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 319, ptr noundef %5428, ptr noundef %5431, ptr noundef %5434, i32 noundef %5436) #11
  br label %5438

5438:                                             ; preds = %5421, %5404
  call void @llvm.lifetime.end.p0(i64 4, ptr %128) #11
  br label %5439

5439:                                             ; preds = %5438
  br label %5440

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

5441:                                             ; No predecessors!
  br label %5442

5442:                                             ; preds = %5441
  br label %5443

5443:                                             ; preds = %5442, %5383
  br label %5444

5444:                                             ; preds = %5443
  br label %5445

5445:                                             ; preds = %5444
  br label %5446

5446:                                             ; preds = %5445
  br label %5447

5447:                                             ; preds = %5446
  br label %5448

5448:                                             ; preds = %5447
  %5449 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %5449, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %5450 = call ptr @__errno_location() #12
  store i32 0, ptr %5450, align 4, !tbaa !5
  br label %5451

5451:                                             ; preds = %5448
  br label %5452

5452:                                             ; preds = %5451
  br label %5453

5453:                                             ; preds = %5452
  br label %5454

5454:                                             ; preds = %5453
  br label %5455

5455:                                             ; preds = %5454
  %5456 = load i32, ptr @test_count, align 4, !tbaa !5
  %5457 = add nsw i32 %5456, 1
  store i32 %5457, ptr @test_count, align 4, !tbaa !5
  %5458 = load ptr, ptr %121, align 8, !tbaa !9
  %5459 = call i32 @s2n_config_ktls_enable_unsafe_tls13(ptr noundef %5458)
  %5460 = icmp eq i32 %5459, -1
  br i1 %5460, label %5461, label %5514

5461:                                             ; preds = %5455
  br label %5462

5462:                                             ; preds = %5461
  br label %5463

5463:                                             ; preds = %5462
  call void @llvm.lifetime.start.p0(i64 4, ptr %129) #11
  %5464 = call ptr @__errno_location() #12
  %5465 = load i32, ptr %5464, align 4, !tbaa !5
  store i32 %5465, ptr %129, align 4, !tbaa !5
  %5466 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5467 = call i32 @s2n_print_stacktrace(ptr noundef %5466)
  %5468 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5469 = trunc i8 %5468 to i1
  br i1 %5469, label %5470, label %5492

5470:                                             ; preds = %5463
  %5471 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5472 = call i32 @fileno(ptr noundef %5471) #11
  %5473 = call i32 @isatty(i32 noundef %5472) #11
  %5474 = icmp ne i32 %5473, 0
  br i1 %5474, label %5475, label %5492

5475:                                             ; preds = %5470
  %5476 = load i32, ptr %129, align 4, !tbaa !5
  %5477 = call ptr @__errno_location() #12
  store i32 %5476, ptr %5477, align 4, !tbaa !5
  %5478 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5479 = load i32, ptr @test_count, align 4, !tbaa !5
  %5480 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5481 = load i32, ptr %5480, align 4, !tbaa !5
  %5482 = call ptr @s2n_strerror(i32 noundef %5481, ptr noundef @.str.4)
  %5483 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5484 = load i32, ptr %5483, align 4, !tbaa !5
  %5485 = call ptr @s2n_strerror_debug(i32 noundef %5484, ptr noundef @.str.4)
  %5486 = call ptr @__errno_location() #12
  %5487 = load i32, ptr %5486, align 4, !tbaa !5
  %5488 = call ptr @strerror(i32 noundef %5487) #11
  %5489 = call ptr @__errno_location() #12
  %5490 = load i32, ptr %5489, align 4, !tbaa !5
  %5491 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5478, ptr noundef @.str.2, i32 noundef %5479, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 322, ptr noundef %5482, ptr noundef %5485, ptr noundef %5488, i32 noundef %5490) #11
  br label %5509

5492:                                             ; preds = %5470, %5463
  %5493 = load i32, ptr %129, align 4, !tbaa !5
  %5494 = call ptr @__errno_location() #12
  store i32 %5493, ptr %5494, align 4, !tbaa !5
  %5495 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5496 = load i32, ptr @test_count, align 4, !tbaa !5
  %5497 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5498 = load i32, ptr %5497, align 4, !tbaa !5
  %5499 = call ptr @s2n_strerror(i32 noundef %5498, ptr noundef @.str.4)
  %5500 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5501 = load i32, ptr %5500, align 4, !tbaa !5
  %5502 = call ptr @s2n_strerror_debug(i32 noundef %5501, ptr noundef @.str.4)
  %5503 = call ptr @__errno_location() #12
  %5504 = load i32, ptr %5503, align 4, !tbaa !5
  %5505 = call ptr @strerror(i32 noundef %5504) #11
  %5506 = call ptr @__errno_location() #12
  %5507 = load i32, ptr %5506, align 4, !tbaa !5
  %5508 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5495, ptr noundef @.str.5, i32 noundef %5496, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 322, ptr noundef %5499, ptr noundef %5502, ptr noundef %5505, i32 noundef %5507) #11
  br label %5509

5509:                                             ; preds = %5492, %5475
  call void @llvm.lifetime.end.p0(i64 4, ptr %129) #11
  br label %5510

5510:                                             ; preds = %5509
  br label %5511

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

5512:                                             ; No predecessors!
  br label %5513

5513:                                             ; preds = %5512
  br label %5514

5514:                                             ; preds = %5513, %5455
  br label %5515

5515:                                             ; preds = %5514
  br label %5516

5516:                                             ; preds = %5515
  br label %5517

5517:                                             ; preds = %5516
  %5518 = load i32, ptr @test_count, align 4, !tbaa !5
  %5519 = add nsw i32 %5518, 1
  store i32 %5519, ptr @test_count, align 4, !tbaa !5
  %5520 = load ptr, ptr %122, align 8, !tbaa !9
  %5521 = call i32 @s2n_connection_ktls_enable_send(ptr noundef %5520)
  %5522 = icmp eq i32 %5521, -1
  br i1 %5522, label %5523, label %5576

5523:                                             ; preds = %5517
  br label %5524

5524:                                             ; preds = %5523
  br label %5525

5525:                                             ; preds = %5524
  call void @llvm.lifetime.start.p0(i64 4, ptr %130) #11
  %5526 = call ptr @__errno_location() #12
  %5527 = load i32, ptr %5526, align 4, !tbaa !5
  store i32 %5527, ptr %130, align 4, !tbaa !5
  %5528 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5529 = call i32 @s2n_print_stacktrace(ptr noundef %5528)
  %5530 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5531 = trunc i8 %5530 to i1
  br i1 %5531, label %5532, label %5554

5532:                                             ; preds = %5525
  %5533 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5534 = call i32 @fileno(ptr noundef %5533) #11
  %5535 = call i32 @isatty(i32 noundef %5534) #11
  %5536 = icmp ne i32 %5535, 0
  br i1 %5536, label %5537, label %5554

5537:                                             ; preds = %5532
  %5538 = load i32, ptr %130, align 4, !tbaa !5
  %5539 = call ptr @__errno_location() #12
  store i32 %5538, ptr %5539, align 4, !tbaa !5
  %5540 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5541 = load i32, ptr @test_count, align 4, !tbaa !5
  %5542 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5543 = load i32, ptr %5542, align 4, !tbaa !5
  %5544 = call ptr @s2n_strerror(i32 noundef %5543, ptr noundef @.str.4)
  %5545 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5546 = load i32, ptr %5545, align 4, !tbaa !5
  %5547 = call ptr @s2n_strerror_debug(i32 noundef %5546, ptr noundef @.str.4)
  %5548 = call ptr @__errno_location() #12
  %5549 = load i32, ptr %5548, align 4, !tbaa !5
  %5550 = call ptr @strerror(i32 noundef %5549) #11
  %5551 = call ptr @__errno_location() #12
  %5552 = load i32, ptr %5551, align 4, !tbaa !5
  %5553 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5540, ptr noundef @.str.2, i32 noundef %5541, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 323, ptr noundef %5544, ptr noundef %5547, ptr noundef %5550, i32 noundef %5552) #11
  br label %5571

5554:                                             ; preds = %5532, %5525
  %5555 = load i32, ptr %130, align 4, !tbaa !5
  %5556 = call ptr @__errno_location() #12
  store i32 %5555, ptr %5556, align 4, !tbaa !5
  %5557 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5558 = load i32, ptr @test_count, align 4, !tbaa !5
  %5559 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5560 = load i32, ptr %5559, align 4, !tbaa !5
  %5561 = call ptr @s2n_strerror(i32 noundef %5560, ptr noundef @.str.4)
  %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_debug(i32 noundef %5563, ptr noundef @.str.4)
  %5565 = call ptr @__errno_location() #12
  %5566 = load i32, ptr %5565, align 4, !tbaa !5
  %5567 = call ptr @strerror(i32 noundef %5566) #11
  %5568 = call ptr @__errno_location() #12
  %5569 = load i32, ptr %5568, align 4, !tbaa !5
  %5570 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5557, ptr noundef @.str.5, i32 noundef %5558, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 323, ptr noundef %5561, ptr noundef %5564, ptr noundef %5567, i32 noundef %5569) #11
  br label %5571

5571:                                             ; preds = %5554, %5537
  call void @llvm.lifetime.end.p0(i64 4, ptr %130) #11
  br label %5572

5572:                                             ; preds = %5571
  br label %5573

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

5574:                                             ; No predecessors!
  br label %5575

5575:                                             ; preds = %5574
  br label %5576

5576:                                             ; preds = %5575, %5517
  br label %5577

5577:                                             ; preds = %5576
  br label %5578

5578:                                             ; preds = %5577
  %5579 = call i32 @s2n_connection_ptr_free(ptr noundef %122)
  %5580 = getelementptr inbounds %struct.s2n_result, ptr %131, i32 0, i32 0
  store i32 %5579, ptr %5580, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %122) #11
  %5581 = call i32 @s2n_config_ptr_free(ptr noundef %121)
  %5582 = getelementptr inbounds %struct.s2n_result, ptr %132, i32 0, i32 0
  store i32 %5581, ptr %5582, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %121) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %133) #11
  %5583 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %5583, ptr %133, align 8, !tbaa !9
  br label %5584

5584:                                             ; preds = %5578
  %5585 = load i32, ptr @test_count, align 4, !tbaa !5
  %5586 = add nsw i32 %5585, 1
  store i32 %5586, ptr @test_count, align 4, !tbaa !5
  %5587 = load ptr, ptr %133, align 8, !tbaa !9
  %5588 = call i32 @s2n_test_configure_connection_for_ktls(ptr noundef %5587)
  %5589 = getelementptr inbounds %struct.s2n_result, ptr %134, i32 0, i32 0
  store i32 %5588, ptr %5589, align 4
  %5590 = getelementptr inbounds %struct.s2n_result, ptr %134, i32 0, i32 0
  %5591 = load i32, ptr %5590, align 4
  %5592 = call zeroext i1 @s2n_result_is_ok(i32 %5591)
  br i1 %5592, label %5646, label %5593

5593:                                             ; preds = %5584
  br label %5594

5594:                                             ; preds = %5593
  br label %5595

5595:                                             ; preds = %5594
  call void @llvm.lifetime.start.p0(i64 4, ptr %135) #11
  %5596 = call ptr @__errno_location() #12
  %5597 = load i32, ptr %5596, align 4, !tbaa !5
  store i32 %5597, ptr %135, align 4, !tbaa !5
  %5598 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5599 = call i32 @s2n_print_stacktrace(ptr noundef %5598)
  %5600 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5601 = trunc i8 %5600 to i1
  br i1 %5601, label %5602, label %5624

5602:                                             ; preds = %5595
  %5603 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5604 = call i32 @fileno(ptr noundef %5603) #11
  %5605 = call i32 @isatty(i32 noundef %5604) #11
  %5606 = icmp ne i32 %5605, 0
  br i1 %5606, label %5607, label %5624

5607:                                             ; preds = %5602
  %5608 = load i32, ptr %135, align 4, !tbaa !5
  %5609 = call ptr @__errno_location() #12
  store i32 %5608, ptr %5609, align 4, !tbaa !5
  %5610 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5611 = load i32, ptr @test_count, align 4, !tbaa !5
  %5612 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5613 = load i32, ptr %5612, align 4, !tbaa !5
  %5614 = call ptr @s2n_strerror(i32 noundef %5613, ptr noundef @.str.4)
  %5615 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5616 = load i32, ptr %5615, align 4, !tbaa !5
  %5617 = call ptr @s2n_strerror_debug(i32 noundef %5616, ptr noundef @.str.4)
  %5618 = call ptr @__errno_location() #12
  %5619 = load i32, ptr %5618, align 4, !tbaa !5
  %5620 = call ptr @strerror(i32 noundef %5619) #11
  %5621 = call ptr @__errno_location() #12
  %5622 = load i32, ptr %5621, align 4, !tbaa !5
  %5623 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5610, ptr noundef @.str.2, i32 noundef %5611, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 330, ptr noundef %5614, ptr noundef %5617, ptr noundef %5620, i32 noundef %5622) #11
  br label %5641

5624:                                             ; preds = %5602, %5595
  %5625 = load i32, ptr %135, align 4, !tbaa !5
  %5626 = call ptr @__errno_location() #12
  store i32 %5625, ptr %5626, align 4, !tbaa !5
  %5627 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5628 = load i32, ptr @test_count, align 4, !tbaa !5
  %5629 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5630 = load i32, ptr %5629, align 4, !tbaa !5
  %5631 = call ptr @s2n_strerror(i32 noundef %5630, ptr noundef @.str.4)
  %5632 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5633 = load i32, ptr %5632, align 4, !tbaa !5
  %5634 = call ptr @s2n_strerror_debug(i32 noundef %5633, ptr noundef @.str.4)
  %5635 = call ptr @__errno_location() #12
  %5636 = load i32, ptr %5635, align 4, !tbaa !5
  %5637 = call ptr @strerror(i32 noundef %5636) #11
  %5638 = call ptr @__errno_location() #12
  %5639 = load i32, ptr %5638, align 4, !tbaa !5
  %5640 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5627, ptr noundef @.str.5, i32 noundef %5628, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 330, ptr noundef %5631, ptr noundef %5634, ptr noundef %5637, i32 noundef %5639) #11
  br label %5641

5641:                                             ; preds = %5624, %5607
  call void @llvm.lifetime.end.p0(i64 4, ptr %135) #11
  br label %5642

5642:                                             ; preds = %5641
  br label %5643

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

5644:                                             ; No predecessors!
  br label %5645

5645:                                             ; preds = %5644
  br label %5646

5646:                                             ; preds = %5645, %5584
  br label %5647

5647:                                             ; preds = %5646
  br label %5648

5648:                                             ; preds = %5647
  %5649 = load ptr, ptr %133, align 8, !tbaa !9
  %5650 = getelementptr inbounds %struct.s2n_connection, ptr %5649, i32 0, i32 23
  store i8 35, ptr %5650, align 4, !tbaa !52
  br label %5651

5651:                                             ; preds = %5648
  br label %5652

5652:                                             ; preds = %5651
  br label %5653

5653:                                             ; preds = %5652
  %5654 = load i32, ptr @test_count, align 4, !tbaa !5
  %5655 = add nsw i32 %5654, 1
  store i32 %5655, ptr @test_count, align 4, !tbaa !5
  %5656 = load ptr, ptr %133, align 8, !tbaa !9
  %5657 = call i32 @s2n_connection_ktls_enable_send(ptr noundef %5656)
  %5658 = icmp eq i32 %5657, -1
  br i1 %5658, label %5712, label %5659

5659:                                             ; preds = %5653
  br label %5660

5660:                                             ; preds = %5659
  br label %5661

5661:                                             ; preds = %5660
  call void @llvm.lifetime.start.p0(i64 4, ptr %136) #11
  %5662 = call ptr @__errno_location() #12
  %5663 = load i32, ptr %5662, align 4, !tbaa !5
  store i32 %5663, ptr %136, align 4, !tbaa !5
  %5664 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5665 = call i32 @s2n_print_stacktrace(ptr noundef %5664)
  %5666 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5667 = trunc i8 %5666 to i1
  br i1 %5667, label %5668, label %5690

5668:                                             ; preds = %5661
  %5669 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5670 = call i32 @fileno(ptr noundef %5669) #11
  %5671 = call i32 @isatty(i32 noundef %5670) #11
  %5672 = icmp ne i32 %5671, 0
  br i1 %5672, label %5673, label %5690

5673:                                             ; preds = %5668
  %5674 = load i32, ptr %136, align 4, !tbaa !5
  %5675 = call ptr @__errno_location() #12
  store i32 %5674, ptr %5675, align 4, !tbaa !5
  %5676 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5677 = load i32, ptr @test_count, align 4, !tbaa !5
  %5678 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5679 = load i32, ptr %5678, align 4, !tbaa !5
  %5680 = call ptr @s2n_strerror(i32 noundef %5679, ptr noundef @.str.4)
  %5681 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5682 = load i32, ptr %5681, align 4, !tbaa !5
  %5683 = call ptr @s2n_strerror_debug(i32 noundef %5682, ptr noundef @.str.4)
  %5684 = call ptr @__errno_location() #12
  %5685 = load i32, ptr %5684, align 4, !tbaa !5
  %5686 = call ptr @strerror(i32 noundef %5685) #11
  %5687 = call ptr @__errno_location() #12
  %5688 = load i32, ptr %5687, align 4, !tbaa !5
  %5689 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5676, ptr noundef @.str.2, i32 noundef %5677, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 333, ptr noundef %5680, ptr noundef %5683, ptr noundef %5686, i32 noundef %5688) #11
  br label %5707

5690:                                             ; preds = %5668, %5661
  %5691 = load i32, ptr %136, align 4, !tbaa !5
  %5692 = call ptr @__errno_location() #12
  store i32 %5691, ptr %5692, align 4, !tbaa !5
  %5693 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5694 = load i32, ptr @test_count, align 4, !tbaa !5
  %5695 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5696 = load i32, ptr %5695, align 4, !tbaa !5
  %5697 = call ptr @s2n_strerror(i32 noundef %5696, ptr noundef @.str.4)
  %5698 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5699 = load i32, ptr %5698, align 4, !tbaa !5
  %5700 = call ptr @s2n_strerror_debug(i32 noundef %5699, ptr noundef @.str.4)
  %5701 = call ptr @__errno_location() #12
  %5702 = load i32, ptr %5701, align 4, !tbaa !5
  %5703 = call ptr @strerror(i32 noundef %5702) #11
  %5704 = call ptr @__errno_location() #12
  %5705 = load i32, ptr %5704, align 4, !tbaa !5
  %5706 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5693, ptr noundef @.str.5, i32 noundef %5694, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 333, ptr noundef %5697, ptr noundef %5700, ptr noundef %5703, i32 noundef %5705) #11
  br label %5707

5707:                                             ; preds = %5690, %5673
  call void @llvm.lifetime.end.p0(i64 4, ptr %136) #11
  br label %5708

5708:                                             ; preds = %5707
  br label %5709

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

5710:                                             ; No predecessors!
  br label %5711

5711:                                             ; preds = %5710
  br label %5712

5712:                                             ; preds = %5711, %5653
  br label %5713

5713:                                             ; preds = %5712
  br label %5714

5714:                                             ; preds = %5713
  br label %5715

5715:                                             ; preds = %5714
  %5716 = load i32, ptr @test_count, align 4, !tbaa !5
  %5717 = add nsw i32 %5716, 1
  store i32 %5717, ptr @test_count, align 4, !tbaa !5
  %5718 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5719 = load i32, ptr %5718, align 4, !tbaa !5
  %5720 = icmp eq i32 %5719, 469762127
  br i1 %5720, label %5774, label %5721

5721:                                             ; preds = %5715
  br label %5722

5722:                                             ; preds = %5721
  br label %5723

5723:                                             ; preds = %5722
  call void @llvm.lifetime.start.p0(i64 4, ptr %137) #11
  %5724 = call ptr @__errno_location() #12
  %5725 = load i32, ptr %5724, align 4, !tbaa !5
  store i32 %5725, ptr %137, align 4, !tbaa !5
  %5726 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5727 = call i32 @s2n_print_stacktrace(ptr noundef %5726)
  %5728 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5729 = trunc i8 %5728 to i1
  br i1 %5729, label %5730, label %5752

5730:                                             ; preds = %5723
  %5731 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5732 = call i32 @fileno(ptr noundef %5731) #11
  %5733 = call i32 @isatty(i32 noundef %5732) #11
  %5734 = icmp ne i32 %5733, 0
  br i1 %5734, label %5735, label %5752

5735:                                             ; preds = %5730
  %5736 = load i32, ptr %137, align 4, !tbaa !5
  %5737 = call ptr @__errno_location() #12
  store i32 %5736, ptr %5737, align 4, !tbaa !5
  %5738 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5739 = load i32, ptr @test_count, align 4, !tbaa !5
  %5740 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5741 = load i32, ptr %5740, align 4, !tbaa !5
  %5742 = call ptr @s2n_strerror(i32 noundef %5741, ptr noundef @.str.4)
  %5743 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5744 = load i32, ptr %5743, align 4, !tbaa !5
  %5745 = call ptr @s2n_strerror_debug(i32 noundef %5744, ptr noundef @.str.4)
  %5746 = call ptr @__errno_location() #12
  %5747 = load i32, ptr %5746, align 4, !tbaa !5
  %5748 = call ptr @strerror(i32 noundef %5747) #11
  %5749 = call ptr @__errno_location() #12
  %5750 = load i32, ptr %5749, align 4, !tbaa !5
  %5751 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5738, ptr noundef @.str.2, i32 noundef %5739, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 333, ptr noundef %5742, ptr noundef %5745, ptr noundef %5748, i32 noundef %5750) #11
  br label %5769

5752:                                             ; preds = %5730, %5723
  %5753 = load i32, ptr %137, align 4, !tbaa !5
  %5754 = call ptr @__errno_location() #12
  store i32 %5753, ptr %5754, align 4, !tbaa !5
  %5755 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5756 = load i32, ptr @test_count, align 4, !tbaa !5
  %5757 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5758 = load i32, ptr %5757, align 4, !tbaa !5
  %5759 = call ptr @s2n_strerror(i32 noundef %5758, ptr noundef @.str.4)
  %5760 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5761 = load i32, ptr %5760, align 4, !tbaa !5
  %5762 = call ptr @s2n_strerror_debug(i32 noundef %5761, ptr noundef @.str.4)
  %5763 = call ptr @__errno_location() #12
  %5764 = load i32, ptr %5763, align 4, !tbaa !5
  %5765 = call ptr @strerror(i32 noundef %5764) #11
  %5766 = call ptr @__errno_location() #12
  %5767 = load i32, ptr %5766, align 4, !tbaa !5
  %5768 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5755, ptr noundef @.str.5, i32 noundef %5756, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 333, ptr noundef %5759, ptr noundef %5762, ptr noundef %5765, i32 noundef %5767) #11
  br label %5769

5769:                                             ; preds = %5752, %5735
  call void @llvm.lifetime.end.p0(i64 4, ptr %137) #11
  br label %5770

5770:                                             ; preds = %5769
  br label %5771

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

5772:                                             ; No predecessors!
  br label %5773

5773:                                             ; preds = %5772
  br label %5774

5774:                                             ; preds = %5773, %5715
  br label %5775

5775:                                             ; preds = %5774
  br label %5776

5776:                                             ; preds = %5775
  br label %5777

5777:                                             ; preds = %5776
  %5778 = load i32, ptr @test_count, align 4, !tbaa !5
  %5779 = add nsw i32 %5778, 1
  store i32 %5779, ptr @test_count, align 4, !tbaa !5
  %5780 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5781 = load i32, ptr %5780, align 4, !tbaa !5
  %5782 = call ptr @s2n_strerror_debug(i32 noundef %5781, ptr noundef @.str.4)
  %5783 = icmp eq ptr %5782, null
  br i1 %5783, label %5784, label %5837

5784:                                             ; preds = %5777
  br label %5785

5785:                                             ; preds = %5784
  br label %5786

5786:                                             ; preds = %5785
  call void @llvm.lifetime.start.p0(i64 4, ptr %138) #11
  %5787 = call ptr @__errno_location() #12
  %5788 = load i32, ptr %5787, align 4, !tbaa !5
  store i32 %5788, ptr %138, align 4, !tbaa !5
  %5789 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5790 = call i32 @s2n_print_stacktrace(ptr noundef %5789)
  %5791 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5792 = trunc i8 %5791 to i1
  br i1 %5792, label %5793, label %5815

5793:                                             ; preds = %5786
  %5794 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5795 = call i32 @fileno(ptr noundef %5794) #11
  %5796 = call i32 @isatty(i32 noundef %5795) #11
  %5797 = icmp ne i32 %5796, 0
  br i1 %5797, label %5798, label %5815

5798:                                             ; preds = %5793
  %5799 = load i32, ptr %138, align 4, !tbaa !5
  %5800 = call ptr @__errno_location() #12
  store i32 %5799, ptr %5800, align 4, !tbaa !5
  %5801 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5802 = load i32, ptr @test_count, align 4, !tbaa !5
  %5803 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5804 = load i32, ptr %5803, align 4, !tbaa !5
  %5805 = call ptr @s2n_strerror(i32 noundef %5804, ptr noundef @.str.4)
  %5806 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5807 = load i32, ptr %5806, align 4, !tbaa !5
  %5808 = call ptr @s2n_strerror_debug(i32 noundef %5807, ptr noundef @.str.4)
  %5809 = call ptr @__errno_location() #12
  %5810 = load i32, ptr %5809, align 4, !tbaa !5
  %5811 = call ptr @strerror(i32 noundef %5810) #11
  %5812 = call ptr @__errno_location() #12
  %5813 = load i32, ptr %5812, align 4, !tbaa !5
  %5814 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5801, ptr noundef @.str.2, i32 noundef %5802, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 333, ptr noundef %5805, ptr noundef %5808, ptr noundef %5811, i32 noundef %5813) #11
  br label %5832

5815:                                             ; preds = %5793, %5786
  %5816 = load i32, ptr %138, align 4, !tbaa !5
  %5817 = call ptr @__errno_location() #12
  store i32 %5816, ptr %5817, align 4, !tbaa !5
  %5818 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5819 = load i32, ptr @test_count, align 4, !tbaa !5
  %5820 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5821 = load i32, ptr %5820, align 4, !tbaa !5
  %5822 = call ptr @s2n_strerror(i32 noundef %5821, ptr noundef @.str.4)
  %5823 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5824 = load i32, ptr %5823, align 4, !tbaa !5
  %5825 = call ptr @s2n_strerror_debug(i32 noundef %5824, ptr noundef @.str.4)
  %5826 = call ptr @__errno_location() #12
  %5827 = load i32, ptr %5826, align 4, !tbaa !5
  %5828 = call ptr @strerror(i32 noundef %5827) #11
  %5829 = call ptr @__errno_location() #12
  %5830 = load i32, ptr %5829, align 4, !tbaa !5
  %5831 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5818, ptr noundef @.str.5, i32 noundef %5819, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 333, ptr noundef %5822, ptr noundef %5825, ptr noundef %5828, i32 noundef %5830) #11
  br label %5832

5832:                                             ; preds = %5815, %5798
  call void @llvm.lifetime.end.p0(i64 4, ptr %138) #11
  br label %5833

5833:                                             ; preds = %5832
  br label %5834

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

5835:                                             ; No predecessors!
  br label %5836

5836:                                             ; preds = %5835
  br label %5837

5837:                                             ; preds = %5836, %5777
  br label %5838

5838:                                             ; preds = %5837
  br label %5839

5839:                                             ; preds = %5838
  br label %5840

5840:                                             ; preds = %5839
  br label %5841

5841:                                             ; preds = %5840
  br label %5842

5842:                                             ; preds = %5841
  %5843 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %5843, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %5844 = call ptr @__errno_location() #12
  store i32 0, ptr %5844, align 4, !tbaa !5
  br label %5845

5845:                                             ; preds = %5842
  br label %5846

5846:                                             ; preds = %5845
  br label %5847

5847:                                             ; preds = %5846
  br label %5848

5848:                                             ; preds = %5847
  %5849 = load ptr, ptr %133, align 8, !tbaa !9
  %5850 = getelementptr inbounds %struct.s2n_connection, ptr %5849, i32 0, i32 23
  store i8 32, ptr %5850, align 4, !tbaa !52
  br label %5851

5851:                                             ; preds = %5848
  br label %5852

5852:                                             ; preds = %5851
  br label %5853

5853:                                             ; preds = %5852
  %5854 = load i32, ptr @test_count, align 4, !tbaa !5
  %5855 = add nsw i32 %5854, 1
  store i32 %5855, ptr @test_count, align 4, !tbaa !5
  %5856 = load ptr, ptr %133, align 8, !tbaa !9
  %5857 = call i32 @s2n_connection_ktls_enable_send(ptr noundef %5856)
  %5858 = icmp eq i32 %5857, -1
  br i1 %5858, label %5912, label %5859

5859:                                             ; preds = %5853
  br label %5860

5860:                                             ; preds = %5859
  br label %5861

5861:                                             ; preds = %5860
  call void @llvm.lifetime.start.p0(i64 4, ptr %139) #11
  %5862 = call ptr @__errno_location() #12
  %5863 = load i32, ptr %5862, align 4, !tbaa !5
  store i32 %5863, ptr %139, align 4, !tbaa !5
  %5864 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5865 = call i32 @s2n_print_stacktrace(ptr noundef %5864)
  %5866 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5867 = trunc i8 %5866 to i1
  br i1 %5867, label %5868, label %5890

5868:                                             ; preds = %5861
  %5869 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5870 = call i32 @fileno(ptr noundef %5869) #11
  %5871 = call i32 @isatty(i32 noundef %5870) #11
  %5872 = icmp ne i32 %5871, 0
  br i1 %5872, label %5873, label %5890

5873:                                             ; preds = %5868
  %5874 = load i32, ptr %139, align 4, !tbaa !5
  %5875 = call ptr @__errno_location() #12
  store i32 %5874, ptr %5875, align 4, !tbaa !5
  %5876 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5877 = load i32, ptr @test_count, align 4, !tbaa !5
  %5878 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5879 = load i32, ptr %5878, align 4, !tbaa !5
  %5880 = call ptr @s2n_strerror(i32 noundef %5879, ptr noundef @.str.4)
  %5881 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5882 = load i32, ptr %5881, align 4, !tbaa !5
  %5883 = call ptr @s2n_strerror_debug(i32 noundef %5882, ptr noundef @.str.4)
  %5884 = call ptr @__errno_location() #12
  %5885 = load i32, ptr %5884, align 4, !tbaa !5
  %5886 = call ptr @strerror(i32 noundef %5885) #11
  %5887 = call ptr @__errno_location() #12
  %5888 = load i32, ptr %5887, align 4, !tbaa !5
  %5889 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5876, ptr noundef @.str.2, i32 noundef %5877, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 336, ptr noundef %5880, ptr noundef %5883, ptr noundef %5886, i32 noundef %5888) #11
  br label %5907

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

5907:                                             ; preds = %5890, %5873
  call void @llvm.lifetime.end.p0(i64 4, ptr %139) #11
  br label %5908

5908:                                             ; preds = %5907
  br label %5909

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

5910:                                             ; No predecessors!
  br label %5911

5911:                                             ; preds = %5910
  br label %5912

5912:                                             ; preds = %5911, %5853
  br label %5913

5913:                                             ; preds = %5912
  br label %5914

5914:                                             ; preds = %5913
  br label %5915

5915:                                             ; preds = %5914
  %5916 = load i32, ptr @test_count, align 4, !tbaa !5
  %5917 = add nsw i32 %5916, 1
  store i32 %5917, ptr @test_count, align 4, !tbaa !5
  %5918 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5919 = load i32, ptr %5918, align 4, !tbaa !5
  %5920 = icmp eq i32 %5919, 469762127
  br i1 %5920, label %5974, label %5921

5921:                                             ; preds = %5915
  br label %5922

5922:                                             ; preds = %5921
  br label %5923

5923:                                             ; preds = %5922
  call void @llvm.lifetime.start.p0(i64 4, ptr %140) #11
  %5924 = call ptr @__errno_location() #12
  %5925 = load i32, ptr %5924, align 4, !tbaa !5
  store i32 %5925, ptr %140, align 4, !tbaa !5
  %5926 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5927 = call i32 @s2n_print_stacktrace(ptr noundef %5926)
  %5928 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5929 = trunc i8 %5928 to i1
  br i1 %5929, label %5930, label %5952

5930:                                             ; preds = %5923
  %5931 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5932 = call i32 @fileno(ptr noundef %5931) #11
  %5933 = call i32 @isatty(i32 noundef %5932) #11
  %5934 = icmp ne i32 %5933, 0
  br i1 %5934, label %5935, label %5952

5935:                                             ; preds = %5930
  %5936 = load i32, ptr %140, align 4, !tbaa !5
  %5937 = call ptr @__errno_location() #12
  store i32 %5936, ptr %5937, align 4, !tbaa !5
  %5938 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5939 = load i32, ptr @test_count, align 4, !tbaa !5
  %5940 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5941 = load i32, ptr %5940, align 4, !tbaa !5
  %5942 = call ptr @s2n_strerror(i32 noundef %5941, ptr noundef @.str.4)
  %5943 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5944 = load i32, ptr %5943, align 4, !tbaa !5
  %5945 = call ptr @s2n_strerror_debug(i32 noundef %5944, ptr noundef @.str.4)
  %5946 = call ptr @__errno_location() #12
  %5947 = load i32, ptr %5946, align 4, !tbaa !5
  %5948 = call ptr @strerror(i32 noundef %5947) #11
  %5949 = call ptr @__errno_location() #12
  %5950 = load i32, ptr %5949, align 4, !tbaa !5
  %5951 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5938, ptr noundef @.str.2, i32 noundef %5939, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 336, ptr noundef %5942, ptr noundef %5945, ptr noundef %5948, i32 noundef %5950) #11
  br label %5969

5952:                                             ; preds = %5930, %5923
  %5953 = load i32, ptr %140, align 4, !tbaa !5
  %5954 = call ptr @__errno_location() #12
  store i32 %5953, ptr %5954, align 4, !tbaa !5
  %5955 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5956 = load i32, ptr @test_count, align 4, !tbaa !5
  %5957 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5958 = load i32, ptr %5957, align 4, !tbaa !5
  %5959 = call ptr @s2n_strerror(i32 noundef %5958, ptr noundef @.str.4)
  %5960 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5961 = load i32, ptr %5960, align 4, !tbaa !5
  %5962 = call ptr @s2n_strerror_debug(i32 noundef %5961, ptr noundef @.str.4)
  %5963 = call ptr @__errno_location() #12
  %5964 = load i32, ptr %5963, align 4, !tbaa !5
  %5965 = call ptr @strerror(i32 noundef %5964) #11
  %5966 = call ptr @__errno_location() #12
  %5967 = load i32, ptr %5966, align 4, !tbaa !5
  %5968 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5955, ptr noundef @.str.5, i32 noundef %5956, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 336, ptr noundef %5959, ptr noundef %5962, ptr noundef %5965, i32 noundef %5967) #11
  br label %5969

5969:                                             ; preds = %5952, %5935
  call void @llvm.lifetime.end.p0(i64 4, ptr %140) #11
  br label %5970

5970:                                             ; preds = %5969
  br label %5971

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

5972:                                             ; No predecessors!
  br label %5973

5973:                                             ; preds = %5972
  br label %5974

5974:                                             ; preds = %5973, %5915
  br label %5975

5975:                                             ; preds = %5974
  br label %5976

5976:                                             ; preds = %5975
  br label %5977

5977:                                             ; preds = %5976
  %5978 = load i32, ptr @test_count, align 4, !tbaa !5
  %5979 = add nsw i32 %5978, 1
  store i32 %5979, ptr @test_count, align 4, !tbaa !5
  %5980 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5981 = load i32, ptr %5980, align 4, !tbaa !5
  %5982 = call ptr @s2n_strerror_debug(i32 noundef %5981, ptr noundef @.str.4)
  %5983 = icmp eq ptr %5982, null
  br i1 %5983, label %5984, label %6037

5984:                                             ; preds = %5977
  br label %5985

5985:                                             ; preds = %5984
  br label %5986

5986:                                             ; preds = %5985
  call void @llvm.lifetime.start.p0(i64 4, ptr %141) #11
  %5987 = call ptr @__errno_location() #12
  %5988 = load i32, ptr %5987, align 4, !tbaa !5
  store i32 %5988, ptr %141, align 4, !tbaa !5
  %5989 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5990 = call i32 @s2n_print_stacktrace(ptr noundef %5989)
  %5991 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5992 = trunc i8 %5991 to i1
  br i1 %5992, label %5993, label %6015

5993:                                             ; preds = %5986
  %5994 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5995 = call i32 @fileno(ptr noundef %5994) #11
  %5996 = call i32 @isatty(i32 noundef %5995) #11
  %5997 = icmp ne i32 %5996, 0
  br i1 %5997, label %5998, label %6015

5998:                                             ; preds = %5993
  %5999 = load i32, ptr %141, align 4, !tbaa !5
  %6000 = call ptr @__errno_location() #12
  store i32 %5999, ptr %6000, align 4, !tbaa !5
  %6001 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6002 = load i32, ptr @test_count, align 4, !tbaa !5
  %6003 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6004 = load i32, ptr %6003, align 4, !tbaa !5
  %6005 = call ptr @s2n_strerror(i32 noundef %6004, ptr noundef @.str.4)
  %6006 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6007 = load i32, ptr %6006, align 4, !tbaa !5
  %6008 = call ptr @s2n_strerror_debug(i32 noundef %6007, ptr noundef @.str.4)
  %6009 = call ptr @__errno_location() #12
  %6010 = load i32, ptr %6009, align 4, !tbaa !5
  %6011 = call ptr @strerror(i32 noundef %6010) #11
  %6012 = call ptr @__errno_location() #12
  %6013 = load i32, ptr %6012, align 4, !tbaa !5
  %6014 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6001, ptr noundef @.str.2, i32 noundef %6002, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 336, ptr noundef %6005, ptr noundef %6008, ptr noundef %6011, i32 noundef %6013) #11
  br label %6032

6015:                                             ; preds = %5993, %5986
  %6016 = load i32, ptr %141, align 4, !tbaa !5
  %6017 = call ptr @__errno_location() #12
  store i32 %6016, ptr %6017, align 4, !tbaa !5
  %6018 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6019 = load i32, ptr @test_count, align 4, !tbaa !5
  %6020 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6021 = load i32, ptr %6020, align 4, !tbaa !5
  %6022 = call ptr @s2n_strerror(i32 noundef %6021, ptr noundef @.str.4)
  %6023 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6024 = load i32, ptr %6023, align 4, !tbaa !5
  %6025 = call ptr @s2n_strerror_debug(i32 noundef %6024, ptr noundef @.str.4)
  %6026 = call ptr @__errno_location() #12
  %6027 = load i32, ptr %6026, align 4, !tbaa !5
  %6028 = call ptr @strerror(i32 noundef %6027) #11
  %6029 = call ptr @__errno_location() #12
  %6030 = load i32, ptr %6029, align 4, !tbaa !5
  %6031 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6018, ptr noundef @.str.5, i32 noundef %6019, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 336, ptr noundef %6022, ptr noundef %6025, ptr noundef %6028, i32 noundef %6030) #11
  br label %6032

6032:                                             ; preds = %6015, %5998
  call void @llvm.lifetime.end.p0(i64 4, ptr %141) #11
  br label %6033

6033:                                             ; preds = %6032
  br label %6034

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

6035:                                             ; No predecessors!
  br label %6036

6036:                                             ; preds = %6035
  br label %6037

6037:                                             ; preds = %6036, %5977
  br label %6038

6038:                                             ; preds = %6037
  br label %6039

6039:                                             ; preds = %6038
  br label %6040

6040:                                             ; preds = %6039
  br label %6041

6041:                                             ; preds = %6040
  br label %6042

6042:                                             ; preds = %6041
  %6043 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %6043, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %6044 = call ptr @__errno_location() #12
  store i32 0, ptr %6044, align 4, !tbaa !5
  br label %6045

6045:                                             ; preds = %6042
  br label %6046

6046:                                             ; preds = %6045
  br label %6047

6047:                                             ; preds = %6046
  br label %6048

6048:                                             ; preds = %6047
  %6049 = call i32 @s2n_connection_ptr_free(ptr noundef %133)
  %6050 = getelementptr inbounds %struct.s2n_result, ptr %142, i32 0, i32 0
  store i32 %6049, ptr %6050, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %133) #11
  call void @llvm.lifetime.start.p0(i64 104, ptr %143) #11
  call void @llvm.memset.p0.i64(ptr align 8 %143, i8 0, i64 104, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr %144) #11
  %6051 = getelementptr inbounds %struct.s2n_record_algorithm, ptr %144, i32 0, i32 0
  store ptr %143, ptr %6051, align 8, !tbaa !59
  %6052 = getelementptr inbounds %struct.s2n_record_algorithm, ptr %144, i32 0, i32 1
  store i32 0, ptr %6052, align 8, !tbaa !61
  %6053 = getelementptr inbounds %struct.s2n_record_algorithm, ptr %144, i32 0, i32 2
  store i32 0, ptr %6053, align 4, !tbaa !62
  %6054 = getelementptr inbounds %struct.s2n_record_algorithm, ptr %144, i32 0, i32 3
  store i64 0, ptr %6054, align 8, !tbaa !63
  call void @llvm.lifetime.start.p0(i64 104, ptr %145) #11
  call void @llvm.memset.p0.i64(ptr align 8 %145, i8 0, i64 104, i1 false)
  %6055 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %145, i32 0, i32 1
  %6056 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %145, i32 0, i32 2
  %6057 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %145, i32 0, i32 3
  %6058 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %145, i32 0, i32 4
  %6059 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %145, i32 0, i32 5
  %6060 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %145, i32 0, i32 6
  store ptr %144, ptr %6060, align 8, !tbaa !64
  %6061 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %145, i32 0, i32 7
  %6062 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %145, i32 0, i32 8
  %6063 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %145, i32 0, i32 9
  %6064 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %145, i32 0, i32 10
  %6065 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %145, i32 0, i32 11
  %6066 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %145, i32 0, i32 12
  call void @llvm.lifetime.start.p0(i64 8, ptr %146) #11
  %6067 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %6067, ptr %146, align 8, !tbaa !9
  br label %6068

6068:                                             ; preds = %6048
  %6069 = load i32, ptr @test_count, align 4, !tbaa !5
  %6070 = add nsw i32 %6069, 1
  store i32 %6070, ptr @test_count, align 4, !tbaa !5
  %6071 = load ptr, ptr %146, align 8, !tbaa !9
  %6072 = call i32 @s2n_test_configure_connection_for_ktls(ptr noundef %6071)
  %6073 = getelementptr inbounds %struct.s2n_result, ptr %147, i32 0, i32 0
  store i32 %6072, ptr %6073, align 4
  %6074 = getelementptr inbounds %struct.s2n_result, ptr %147, i32 0, i32 0
  %6075 = load i32, ptr %6074, align 4
  %6076 = call zeroext i1 @s2n_result_is_ok(i32 %6075)
  br i1 %6076, label %6130, label %6077

6077:                                             ; preds = %6068
  br label %6078

6078:                                             ; preds = %6077
  br label %6079

6079:                                             ; preds = %6078
  call void @llvm.lifetime.start.p0(i64 4, ptr %148) #11
  %6080 = call ptr @__errno_location() #12
  %6081 = load i32, ptr %6080, align 4, !tbaa !5
  store i32 %6081, ptr %148, align 4, !tbaa !5
  %6082 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6083 = call i32 @s2n_print_stacktrace(ptr noundef %6082)
  %6084 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6085 = trunc i8 %6084 to i1
  br i1 %6085, label %6086, label %6108

6086:                                             ; preds = %6079
  %6087 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6088 = call i32 @fileno(ptr noundef %6087) #11
  %6089 = call i32 @isatty(i32 noundef %6088) #11
  %6090 = icmp ne i32 %6089, 0
  br i1 %6090, label %6091, label %6108

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

6108:                                             ; preds = %6086, %6079
  %6109 = load i32, ptr %148, align 4, !tbaa !5
  %6110 = call ptr @__errno_location() #12
  store i32 %6109, ptr %6110, align 4, !tbaa !5
  %6111 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6112 = load i32, ptr @test_count, align 4, !tbaa !5
  %6113 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6114 = load i32, ptr %6113, align 4, !tbaa !5
  %6115 = call ptr @s2n_strerror(i32 noundef %6114, ptr noundef @.str.4)
  %6116 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6117 = load i32, ptr %6116, align 4, !tbaa !5
  %6118 = call ptr @s2n_strerror_debug(i32 noundef %6117, ptr noundef @.str.4)
  %6119 = call ptr @__errno_location() #12
  %6120 = load i32, ptr %6119, align 4, !tbaa !5
  %6121 = call ptr @strerror(i32 noundef %6120) #11
  %6122 = call ptr @__errno_location() #12
  %6123 = load i32, ptr %6122, align 4, !tbaa !5
  %6124 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6111, ptr noundef @.str.5, i32 noundef %6112, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 354, ptr noundef %6115, ptr noundef %6118, ptr noundef %6121, i32 noundef %6123) #11
  br label %6125

6125:                                             ; preds = %6108, %6091
  call void @llvm.lifetime.end.p0(i64 4, ptr %148) #11
  br label %6126

6126:                                             ; preds = %6125
  br label %6127

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

6128:                                             ; No predecessors!
  br label %6129

6129:                                             ; preds = %6128
  br label %6130

6130:                                             ; preds = %6129, %6068
  br label %6131

6131:                                             ; preds = %6130
  br label %6132

6132:                                             ; preds = %6131
  %6133 = load ptr, ptr %146, align 8, !tbaa !9
  %6134 = getelementptr inbounds %struct.s2n_connection, ptr %6133, i32 0, i32 27
  %6135 = load ptr, ptr %6134, align 8, !tbaa !53
  %6136 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %6135, i32 0, i32 0
  store ptr %145, ptr %6136, align 8, !tbaa !54
  br label %6137

6137:                                             ; preds = %6132
  br label %6138

6138:                                             ; preds = %6137
  br label %6139

6139:                                             ; preds = %6138
  %6140 = load i32, ptr @test_count, align 4, !tbaa !5
  %6141 = add nsw i32 %6140, 1
  store i32 %6141, ptr @test_count, align 4, !tbaa !5
  %6142 = load ptr, ptr %146, align 8, !tbaa !9
  %6143 = call i32 @s2n_connection_ktls_enable_send(ptr noundef %6142)
  %6144 = icmp eq i32 %6143, -1
  br i1 %6144, label %6198, label %6145

6145:                                             ; preds = %6139
  br label %6146

6146:                                             ; preds = %6145
  br label %6147

6147:                                             ; preds = %6146
  call void @llvm.lifetime.start.p0(i64 4, ptr %149) #11
  %6148 = call ptr @__errno_location() #12
  %6149 = load i32, ptr %6148, align 4, !tbaa !5
  store i32 %6149, ptr %149, align 4, !tbaa !5
  %6150 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6151 = call i32 @s2n_print_stacktrace(ptr noundef %6150)
  %6152 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6153 = trunc i8 %6152 to i1
  br i1 %6153, label %6154, label %6176

6154:                                             ; preds = %6147
  %6155 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6156 = call i32 @fileno(ptr noundef %6155) #11
  %6157 = call i32 @isatty(i32 noundef %6156) #11
  %6158 = icmp ne i32 %6157, 0
  br i1 %6158, label %6159, label %6176

6159:                                             ; preds = %6154
  %6160 = load i32, ptr %149, align 4, !tbaa !5
  %6161 = call ptr @__errno_location() #12
  store i32 %6160, ptr %6161, align 4, !tbaa !5
  %6162 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6163 = load i32, ptr @test_count, align 4, !tbaa !5
  %6164 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6165 = load i32, ptr %6164, align 4, !tbaa !5
  %6166 = call ptr @s2n_strerror(i32 noundef %6165, ptr noundef @.str.4)
  %6167 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6168 = load i32, ptr %6167, align 4, !tbaa !5
  %6169 = call ptr @s2n_strerror_debug(i32 noundef %6168, ptr noundef @.str.4)
  %6170 = call ptr @__errno_location() #12
  %6171 = load i32, ptr %6170, align 4, !tbaa !5
  %6172 = call ptr @strerror(i32 noundef %6171) #11
  %6173 = call ptr @__errno_location() #12
  %6174 = load i32, ptr %6173, align 4, !tbaa !5
  %6175 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6162, ptr noundef @.str.2, i32 noundef %6163, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 357, ptr noundef %6166, ptr noundef %6169, ptr noundef %6172, i32 noundef %6174) #11
  br label %6193

6176:                                             ; preds = %6154, %6147
  %6177 = load i32, ptr %149, align 4, !tbaa !5
  %6178 = call ptr @__errno_location() #12
  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.4)
  %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.4)
  %6187 = call ptr @__errno_location() #12
  %6188 = load i32, ptr %6187, align 4, !tbaa !5
  %6189 = call ptr @strerror(i32 noundef %6188) #11
  %6190 = call ptr @__errno_location() #12
  %6191 = load i32, ptr %6190, align 4, !tbaa !5
  %6192 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6179, ptr noundef @.str.5, i32 noundef %6180, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 357, ptr noundef %6183, ptr noundef %6186, ptr noundef %6189, i32 noundef %6191) #11
  br label %6193

6193:                                             ; preds = %6176, %6159
  call void @llvm.lifetime.end.p0(i64 4, ptr %149) #11
  br label %6194

6194:                                             ; preds = %6193
  br label %6195

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

6196:                                             ; No predecessors!
  br label %6197

6197:                                             ; preds = %6196
  br label %6198

6198:                                             ; preds = %6197, %6139
  br label %6199

6199:                                             ; preds = %6198
  br label %6200

6200:                                             ; preds = %6199
  br label %6201

6201:                                             ; preds = %6200
  %6202 = load i32, ptr @test_count, align 4, !tbaa !5
  %6203 = add nsw i32 %6202, 1
  store i32 %6203, ptr @test_count, align 4, !tbaa !5
  %6204 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6205 = load i32, ptr %6204, align 4, !tbaa !5
  %6206 = icmp eq i32 %6205, 469762127
  br i1 %6206, label %6260, label %6207

6207:                                             ; preds = %6201
  br label %6208

6208:                                             ; preds = %6207
  br label %6209

6209:                                             ; preds = %6208
  call void @llvm.lifetime.start.p0(i64 4, ptr %150) #11
  %6210 = call ptr @__errno_location() #12
  %6211 = load i32, ptr %6210, align 4, !tbaa !5
  store i32 %6211, ptr %150, align 4, !tbaa !5
  %6212 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6213 = call i32 @s2n_print_stacktrace(ptr noundef %6212)
  %6214 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6215 = trunc i8 %6214 to i1
  br i1 %6215, label %6216, label %6238

6216:                                             ; preds = %6209
  %6217 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6218 = call i32 @fileno(ptr noundef %6217) #11
  %6219 = call i32 @isatty(i32 noundef %6218) #11
  %6220 = icmp ne i32 %6219, 0
  br i1 %6220, label %6221, label %6238

6221:                                             ; preds = %6216
  %6222 = load i32, ptr %150, align 4, !tbaa !5
  %6223 = call ptr @__errno_location() #12
  store i32 %6222, ptr %6223, align 4, !tbaa !5
  %6224 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6225 = load i32, ptr @test_count, align 4, !tbaa !5
  %6226 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6227 = load i32, ptr %6226, align 4, !tbaa !5
  %6228 = call ptr @s2n_strerror(i32 noundef %6227, ptr noundef @.str.4)
  %6229 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6230 = load i32, ptr %6229, align 4, !tbaa !5
  %6231 = call ptr @s2n_strerror_debug(i32 noundef %6230, ptr noundef @.str.4)
  %6232 = call ptr @__errno_location() #12
  %6233 = load i32, ptr %6232, align 4, !tbaa !5
  %6234 = call ptr @strerror(i32 noundef %6233) #11
  %6235 = call ptr @__errno_location() #12
  %6236 = load i32, ptr %6235, align 4, !tbaa !5
  %6237 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6224, ptr noundef @.str.2, i32 noundef %6225, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 357, ptr noundef %6228, ptr noundef %6231, ptr noundef %6234, i32 noundef %6236) #11
  br label %6255

6238:                                             ; preds = %6216, %6209
  %6239 = load i32, ptr %150, align 4, !tbaa !5
  %6240 = call ptr @__errno_location() #12
  store i32 %6239, ptr %6240, align 4, !tbaa !5
  %6241 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6242 = load i32, ptr @test_count, align 4, !tbaa !5
  %6243 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6244 = load i32, ptr %6243, align 4, !tbaa !5
  %6245 = call ptr @s2n_strerror(i32 noundef %6244, ptr noundef @.str.4)
  %6246 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6247 = load i32, ptr %6246, align 4, !tbaa !5
  %6248 = call ptr @s2n_strerror_debug(i32 noundef %6247, ptr noundef @.str.4)
  %6249 = call ptr @__errno_location() #12
  %6250 = load i32, ptr %6249, align 4, !tbaa !5
  %6251 = call ptr @strerror(i32 noundef %6250) #11
  %6252 = call ptr @__errno_location() #12
  %6253 = load i32, ptr %6252, align 4, !tbaa !5
  %6254 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6241, ptr noundef @.str.5, i32 noundef %6242, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 357, ptr noundef %6245, ptr noundef %6248, ptr noundef %6251, i32 noundef %6253) #11
  br label %6255

6255:                                             ; preds = %6238, %6221
  call void @llvm.lifetime.end.p0(i64 4, ptr %150) #11
  br label %6256

6256:                                             ; preds = %6255
  br label %6257

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

6258:                                             ; No predecessors!
  br label %6259

6259:                                             ; preds = %6258
  br label %6260

6260:                                             ; preds = %6259, %6201
  br label %6261

6261:                                             ; preds = %6260
  br label %6262

6262:                                             ; preds = %6261
  br label %6263

6263:                                             ; preds = %6262
  %6264 = load i32, ptr @test_count, align 4, !tbaa !5
  %6265 = add nsw i32 %6264, 1
  store i32 %6265, ptr @test_count, align 4, !tbaa !5
  %6266 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6267 = load i32, ptr %6266, align 4, !tbaa !5
  %6268 = call ptr @s2n_strerror_debug(i32 noundef %6267, ptr noundef @.str.4)
  %6269 = icmp eq ptr %6268, null
  br i1 %6269, label %6270, label %6323

6270:                                             ; preds = %6263
  br label %6271

6271:                                             ; preds = %6270
  br label %6272

6272:                                             ; preds = %6271
  call void @llvm.lifetime.start.p0(i64 4, ptr %151) #11
  %6273 = call ptr @__errno_location() #12
  %6274 = load i32, ptr %6273, align 4, !tbaa !5
  store i32 %6274, ptr %151, align 4, !tbaa !5
  %6275 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6276 = call i32 @s2n_print_stacktrace(ptr noundef %6275)
  %6277 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6278 = trunc i8 %6277 to i1
  br i1 %6278, label %6279, label %6301

6279:                                             ; preds = %6272
  %6280 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6281 = call i32 @fileno(ptr noundef %6280) #11
  %6282 = call i32 @isatty(i32 noundef %6281) #11
  %6283 = icmp ne i32 %6282, 0
  br i1 %6283, label %6284, label %6301

6284:                                             ; preds = %6279
  %6285 = load i32, ptr %151, align 4, !tbaa !5
  %6286 = call ptr @__errno_location() #12
  store i32 %6285, ptr %6286, align 4, !tbaa !5
  %6287 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6288 = load i32, ptr @test_count, align 4, !tbaa !5
  %6289 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6290 = load i32, ptr %6289, align 4, !tbaa !5
  %6291 = call ptr @s2n_strerror(i32 noundef %6290, ptr noundef @.str.4)
  %6292 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6293 = load i32, ptr %6292, align 4, !tbaa !5
  %6294 = call ptr @s2n_strerror_debug(i32 noundef %6293, ptr noundef @.str.4)
  %6295 = call ptr @__errno_location() #12
  %6296 = load i32, ptr %6295, align 4, !tbaa !5
  %6297 = call ptr @strerror(i32 noundef %6296) #11
  %6298 = call ptr @__errno_location() #12
  %6299 = load i32, ptr %6298, align 4, !tbaa !5
  %6300 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6287, ptr noundef @.str.2, i32 noundef %6288, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 357, ptr noundef %6291, ptr noundef %6294, ptr noundef %6297, i32 noundef %6299) #11
  br label %6318

6301:                                             ; preds = %6279, %6272
  %6302 = load i32, ptr %151, align 4, !tbaa !5
  %6303 = call ptr @__errno_location() #12
  store i32 %6302, ptr %6303, align 4, !tbaa !5
  %6304 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6305 = load i32, ptr @test_count, align 4, !tbaa !5
  %6306 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6307 = load i32, ptr %6306, align 4, !tbaa !5
  %6308 = call ptr @s2n_strerror(i32 noundef %6307, ptr noundef @.str.4)
  %6309 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6310 = load i32, ptr %6309, align 4, !tbaa !5
  %6311 = call ptr @s2n_strerror_debug(i32 noundef %6310, ptr noundef @.str.4)
  %6312 = call ptr @__errno_location() #12
  %6313 = load i32, ptr %6312, align 4, !tbaa !5
  %6314 = call ptr @strerror(i32 noundef %6313) #11
  %6315 = call ptr @__errno_location() #12
  %6316 = load i32, ptr %6315, align 4, !tbaa !5
  %6317 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6304, ptr noundef @.str.5, i32 noundef %6305, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 357, ptr noundef %6308, ptr noundef %6311, ptr noundef %6314, i32 noundef %6316) #11
  br label %6318

6318:                                             ; preds = %6301, %6284
  call void @llvm.lifetime.end.p0(i64 4, ptr %151) #11
  br label %6319

6319:                                             ; preds = %6318
  br label %6320

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

6321:                                             ; No predecessors!
  br label %6322

6322:                                             ; preds = %6321
  br label %6323

6323:                                             ; preds = %6322, %6263
  br label %6324

6324:                                             ; preds = %6323
  br label %6325

6325:                                             ; preds = %6324
  br label %6326

6326:                                             ; preds = %6325
  br label %6327

6327:                                             ; preds = %6326
  br label %6328

6328:                                             ; preds = %6327
  %6329 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %6329, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %6330 = call ptr @__errno_location() #12
  store i32 0, ptr %6330, align 4, !tbaa !5
  br label %6331

6331:                                             ; preds = %6328
  br label %6332

6332:                                             ; preds = %6331
  br label %6333

6333:                                             ; preds = %6332
  br label %6334

6334:                                             ; preds = %6333
  br label %6335

6335:                                             ; preds = %6334
  br label %6336

6336:                                             ; preds = %6335
  br label %6337

6337:                                             ; preds = %6336
  %6338 = load i32, ptr @test_count, align 4, !tbaa !5
  %6339 = add nsw i32 %6338, 1
  store i32 %6339, ptr @test_count, align 4, !tbaa !5
  %6340 = load ptr, ptr %146, align 8, !tbaa !9
  %6341 = call i32 @s2n_connection_ktls_enable_recv(ptr noundef %6340)
  %6342 = icmp eq i32 %6341, -1
  br i1 %6342, label %6396, label %6343

6343:                                             ; preds = %6337
  br label %6344

6344:                                             ; preds = %6343
  br label %6345

6345:                                             ; preds = %6344
  call void @llvm.lifetime.start.p0(i64 4, ptr %152) #11
  %6346 = call ptr @__errno_location() #12
  %6347 = load i32, ptr %6346, align 4, !tbaa !5
  store i32 %6347, ptr %152, align 4, !tbaa !5
  %6348 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6349 = call i32 @s2n_print_stacktrace(ptr noundef %6348)
  %6350 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6351 = trunc i8 %6350 to i1
  br i1 %6351, label %6352, label %6374

6352:                                             ; preds = %6345
  %6353 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6354 = call i32 @fileno(ptr noundef %6353) #11
  %6355 = call i32 @isatty(i32 noundef %6354) #11
  %6356 = icmp ne i32 %6355, 0
  br i1 %6356, label %6357, label %6374

6357:                                             ; preds = %6352
  %6358 = load i32, ptr %152, align 4, !tbaa !5
  %6359 = call ptr @__errno_location() #12
  store i32 %6358, ptr %6359, align 4, !tbaa !5
  %6360 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6361 = load i32, ptr @test_count, align 4, !tbaa !5
  %6362 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6363 = load i32, ptr %6362, align 4, !tbaa !5
  %6364 = call ptr @s2n_strerror(i32 noundef %6363, ptr noundef @.str.4)
  %6365 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6366 = load i32, ptr %6365, align 4, !tbaa !5
  %6367 = call ptr @s2n_strerror_debug(i32 noundef %6366, ptr noundef @.str.4)
  %6368 = call ptr @__errno_location() #12
  %6369 = load i32, ptr %6368, align 4, !tbaa !5
  %6370 = call ptr @strerror(i32 noundef %6369) #11
  %6371 = call ptr @__errno_location() #12
  %6372 = load i32, ptr %6371, align 4, !tbaa !5
  %6373 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6360, ptr noundef @.str.2, i32 noundef %6361, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 358, ptr noundef %6364, ptr noundef %6367, ptr noundef %6370, i32 noundef %6372) #11
  br label %6391

6374:                                             ; preds = %6352, %6345
  %6375 = load i32, ptr %152, align 4, !tbaa !5
  %6376 = call ptr @__errno_location() #12
  store i32 %6375, ptr %6376, align 4, !tbaa !5
  %6377 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6378 = load i32, ptr @test_count, align 4, !tbaa !5
  %6379 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6380 = load i32, ptr %6379, align 4, !tbaa !5
  %6381 = call ptr @s2n_strerror(i32 noundef %6380, ptr noundef @.str.4)
  %6382 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6383 = load i32, ptr %6382, align 4, !tbaa !5
  %6384 = call ptr @s2n_strerror_debug(i32 noundef %6383, ptr noundef @.str.4)
  %6385 = call ptr @__errno_location() #12
  %6386 = load i32, ptr %6385, align 4, !tbaa !5
  %6387 = call ptr @strerror(i32 noundef %6386) #11
  %6388 = call ptr @__errno_location() #12
  %6389 = load i32, ptr %6388, align 4, !tbaa !5
  %6390 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6377, ptr noundef @.str.5, i32 noundef %6378, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 358, ptr noundef %6381, ptr noundef %6384, ptr noundef %6387, i32 noundef %6389) #11
  br label %6391

6391:                                             ; preds = %6374, %6357
  call void @llvm.lifetime.end.p0(i64 4, ptr %152) #11
  br label %6392

6392:                                             ; preds = %6391
  br label %6393

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

6394:                                             ; No predecessors!
  br label %6395

6395:                                             ; preds = %6394
  br label %6396

6396:                                             ; preds = %6395, %6337
  br label %6397

6397:                                             ; preds = %6396
  br label %6398

6398:                                             ; preds = %6397
  br label %6399

6399:                                             ; preds = %6398
  %6400 = load i32, ptr @test_count, align 4, !tbaa !5
  %6401 = add nsw i32 %6400, 1
  store i32 %6401, ptr @test_count, align 4, !tbaa !5
  %6402 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6403 = load i32, ptr %6402, align 4, !tbaa !5
  %6404 = icmp eq i32 %6403, 469762127
  br i1 %6404, label %6458, label %6405

6405:                                             ; preds = %6399
  br label %6406

6406:                                             ; preds = %6405
  br label %6407

6407:                                             ; preds = %6406
  call void @llvm.lifetime.start.p0(i64 4, ptr %153) #11
  %6408 = call ptr @__errno_location() #12
  %6409 = load i32, ptr %6408, align 4, !tbaa !5
  store i32 %6409, ptr %153, align 4, !tbaa !5
  %6410 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6411 = call i32 @s2n_print_stacktrace(ptr noundef %6410)
  %6412 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6413 = trunc i8 %6412 to i1
  br i1 %6413, label %6414, label %6436

6414:                                             ; preds = %6407
  %6415 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6416 = call i32 @fileno(ptr noundef %6415) #11
  %6417 = call i32 @isatty(i32 noundef %6416) #11
  %6418 = icmp ne i32 %6417, 0
  br i1 %6418, label %6419, label %6436

6419:                                             ; preds = %6414
  %6420 = load i32, ptr %153, align 4, !tbaa !5
  %6421 = call ptr @__errno_location() #12
  store i32 %6420, ptr %6421, align 4, !tbaa !5
  %6422 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6423 = load i32, ptr @test_count, align 4, !tbaa !5
  %6424 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6425 = load i32, ptr %6424, align 4, !tbaa !5
  %6426 = call ptr @s2n_strerror(i32 noundef %6425, ptr noundef @.str.4)
  %6427 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6428 = load i32, ptr %6427, align 4, !tbaa !5
  %6429 = call ptr @s2n_strerror_debug(i32 noundef %6428, ptr noundef @.str.4)
  %6430 = call ptr @__errno_location() #12
  %6431 = load i32, ptr %6430, align 4, !tbaa !5
  %6432 = call ptr @strerror(i32 noundef %6431) #11
  %6433 = call ptr @__errno_location() #12
  %6434 = load i32, ptr %6433, align 4, !tbaa !5
  %6435 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6422, ptr noundef @.str.2, i32 noundef %6423, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 358, ptr noundef %6426, ptr noundef %6429, ptr noundef %6432, i32 noundef %6434) #11
  br label %6453

6436:                                             ; preds = %6414, %6407
  %6437 = load i32, ptr %153, align 4, !tbaa !5
  %6438 = call ptr @__errno_location() #12
  store i32 %6437, ptr %6438, align 4, !tbaa !5
  %6439 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6440 = load i32, ptr @test_count, align 4, !tbaa !5
  %6441 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6442 = load i32, ptr %6441, align 4, !tbaa !5
  %6443 = call ptr @s2n_strerror(i32 noundef %6442, ptr noundef @.str.4)
  %6444 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6445 = load i32, ptr %6444, align 4, !tbaa !5
  %6446 = call ptr @s2n_strerror_debug(i32 noundef %6445, ptr noundef @.str.4)
  %6447 = call ptr @__errno_location() #12
  %6448 = load i32, ptr %6447, align 4, !tbaa !5
  %6449 = call ptr @strerror(i32 noundef %6448) #11
  %6450 = call ptr @__errno_location() #12
  %6451 = load i32, ptr %6450, align 4, !tbaa !5
  %6452 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6439, ptr noundef @.str.5, i32 noundef %6440, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 358, ptr noundef %6443, ptr noundef %6446, ptr noundef %6449, i32 noundef %6451) #11
  br label %6453

6453:                                             ; preds = %6436, %6419
  call void @llvm.lifetime.end.p0(i64 4, ptr %153) #11
  br label %6454

6454:                                             ; preds = %6453
  br label %6455

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

6456:                                             ; No predecessors!
  br label %6457

6457:                                             ; preds = %6456
  br label %6458

6458:                                             ; preds = %6457, %6399
  br label %6459

6459:                                             ; preds = %6458
  br label %6460

6460:                                             ; preds = %6459
  br label %6461

6461:                                             ; preds = %6460
  %6462 = load i32, ptr @test_count, align 4, !tbaa !5
  %6463 = add nsw i32 %6462, 1
  store i32 %6463, ptr @test_count, align 4, !tbaa !5
  %6464 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6465 = load i32, ptr %6464, align 4, !tbaa !5
  %6466 = call ptr @s2n_strerror_debug(i32 noundef %6465, ptr noundef @.str.4)
  %6467 = icmp eq ptr %6466, null
  br i1 %6467, label %6468, label %6521

6468:                                             ; preds = %6461
  br label %6469

6469:                                             ; preds = %6468
  br label %6470

6470:                                             ; preds = %6469
  call void @llvm.lifetime.start.p0(i64 4, ptr %154) #11
  %6471 = call ptr @__errno_location() #12
  %6472 = load i32, ptr %6471, align 4, !tbaa !5
  store i32 %6472, ptr %154, align 4, !tbaa !5
  %6473 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6474 = call i32 @s2n_print_stacktrace(ptr noundef %6473)
  %6475 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6476 = trunc i8 %6475 to i1
  br i1 %6476, label %6477, label %6499

6477:                                             ; preds = %6470
  %6478 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6479 = call i32 @fileno(ptr noundef %6478) #11
  %6480 = call i32 @isatty(i32 noundef %6479) #11
  %6481 = icmp ne i32 %6480, 0
  br i1 %6481, label %6482, label %6499

6482:                                             ; preds = %6477
  %6483 = load i32, ptr %154, align 4, !tbaa !5
  %6484 = call ptr @__errno_location() #12
  store i32 %6483, ptr %6484, align 4, !tbaa !5
  %6485 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6486 = load i32, ptr @test_count, align 4, !tbaa !5
  %6487 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6488 = load i32, ptr %6487, align 4, !tbaa !5
  %6489 = call ptr @s2n_strerror(i32 noundef %6488, ptr noundef @.str.4)
  %6490 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6491 = load i32, ptr %6490, align 4, !tbaa !5
  %6492 = call ptr @s2n_strerror_debug(i32 noundef %6491, ptr noundef @.str.4)
  %6493 = call ptr @__errno_location() #12
  %6494 = load i32, ptr %6493, align 4, !tbaa !5
  %6495 = call ptr @strerror(i32 noundef %6494) #11
  %6496 = call ptr @__errno_location() #12
  %6497 = load i32, ptr %6496, align 4, !tbaa !5
  %6498 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6485, ptr noundef @.str.2, i32 noundef %6486, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 358, ptr noundef %6489, ptr noundef %6492, ptr noundef %6495, i32 noundef %6497) #11
  br label %6516

6499:                                             ; preds = %6477, %6470
  %6500 = load i32, ptr %154, align 4, !tbaa !5
  %6501 = call ptr @__errno_location() #12
  store i32 %6500, ptr %6501, align 4, !tbaa !5
  %6502 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6503 = load i32, ptr @test_count, align 4, !tbaa !5
  %6504 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6505 = load i32, ptr %6504, align 4, !tbaa !5
  %6506 = call ptr @s2n_strerror(i32 noundef %6505, ptr noundef @.str.4)
  %6507 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6508 = load i32, ptr %6507, align 4, !tbaa !5
  %6509 = call ptr @s2n_strerror_debug(i32 noundef %6508, ptr noundef @.str.4)
  %6510 = call ptr @__errno_location() #12
  %6511 = load i32, ptr %6510, align 4, !tbaa !5
  %6512 = call ptr @strerror(i32 noundef %6511) #11
  %6513 = call ptr @__errno_location() #12
  %6514 = load i32, ptr %6513, align 4, !tbaa !5
  %6515 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6502, ptr noundef @.str.5, i32 noundef %6503, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 358, ptr noundef %6506, ptr noundef %6509, ptr noundef %6512, i32 noundef %6514) #11
  br label %6516

6516:                                             ; preds = %6499, %6482
  call void @llvm.lifetime.end.p0(i64 4, ptr %154) #11
  br label %6517

6517:                                             ; preds = %6516
  br label %6518

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

6519:                                             ; No predecessors!
  br label %6520

6520:                                             ; preds = %6519
  br label %6521

6521:                                             ; preds = %6520, %6461
  br label %6522

6522:                                             ; preds = %6521
  br label %6523

6523:                                             ; preds = %6522
  br label %6524

6524:                                             ; preds = %6523
  br label %6525

6525:                                             ; preds = %6524
  br label %6526

6526:                                             ; preds = %6525
  %6527 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %6527, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %6528 = call ptr @__errno_location() #12
  store i32 0, ptr %6528, align 4, !tbaa !5
  br label %6529

6529:                                             ; preds = %6526
  br label %6530

6530:                                             ; preds = %6529
  br label %6531

6531:                                             ; preds = %6530
  br label %6532

6532:                                             ; preds = %6531
  %6533 = call i32 @s2n_connection_ptr_free(ptr noundef %146)
  %6534 = getelementptr inbounds %struct.s2n_result, ptr %155, i32 0, i32 0
  store i32 %6533, ptr %6534, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %146) #11
  call void @llvm.lifetime.end.p0(i64 104, ptr %145) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %144) #11
  call void @llvm.lifetime.end.p0(i64 104, ptr %143) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %156) #11
  %6535 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %6535, ptr %156, align 8, !tbaa !9
  br label %6536

6536:                                             ; preds = %6532
  %6537 = load i32, ptr @test_count, align 4, !tbaa !5
  %6538 = add nsw i32 %6537, 1
  store i32 %6538, ptr @test_count, align 4, !tbaa !5
  %6539 = load ptr, ptr %156, align 8, !tbaa !9
  %6540 = call i32 @s2n_test_configure_connection_for_ktls(ptr noundef %6539)
  %6541 = getelementptr inbounds %struct.s2n_result, ptr %157, i32 0, i32 0
  store i32 %6540, ptr %6541, align 4
  %6542 = getelementptr inbounds %struct.s2n_result, ptr %157, i32 0, i32 0
  %6543 = load i32, ptr %6542, align 4
  %6544 = call zeroext i1 @s2n_result_is_ok(i32 %6543)
  br i1 %6544, label %6598, label %6545

6545:                                             ; preds = %6536
  br label %6546

6546:                                             ; preds = %6545
  br label %6547

6547:                                             ; preds = %6546
  call void @llvm.lifetime.start.p0(i64 4, ptr %158) #11
  %6548 = call ptr @__errno_location() #12
  %6549 = load i32, ptr %6548, align 4, !tbaa !5
  store i32 %6549, ptr %158, align 4, !tbaa !5
  %6550 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6551 = call i32 @s2n_print_stacktrace(ptr noundef %6550)
  %6552 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6553 = trunc i8 %6552 to i1
  br i1 %6553, label %6554, label %6576

6554:                                             ; preds = %6547
  %6555 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6556 = call i32 @fileno(ptr noundef %6555) #11
  %6557 = call i32 @isatty(i32 noundef %6556) #11
  %6558 = icmp ne i32 %6557, 0
  br i1 %6558, label %6559, label %6576

6559:                                             ; preds = %6554
  %6560 = load i32, ptr %158, align 4, !tbaa !5
  %6561 = call ptr @__errno_location() #12
  store i32 %6560, ptr %6561, align 4, !tbaa !5
  %6562 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6563 = load i32, ptr @test_count, align 4, !tbaa !5
  %6564 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6565 = load i32, ptr %6564, align 4, !tbaa !5
  %6566 = call ptr @s2n_strerror(i32 noundef %6565, ptr noundef @.str.4)
  %6567 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6568 = load i32, ptr %6567, align 4, !tbaa !5
  %6569 = call ptr @s2n_strerror_debug(i32 noundef %6568, ptr noundef @.str.4)
  %6570 = call ptr @__errno_location() #12
  %6571 = load i32, ptr %6570, align 4, !tbaa !5
  %6572 = call ptr @strerror(i32 noundef %6571) #11
  %6573 = call ptr @__errno_location() #12
  %6574 = load i32, ptr %6573, align 4, !tbaa !5
  %6575 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6562, ptr noundef @.str.2, i32 noundef %6563, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 365, ptr noundef %6566, ptr noundef %6569, ptr noundef %6572, i32 noundef %6574) #11
  br label %6593

6576:                                             ; preds = %6554, %6547
  %6577 = load i32, ptr %158, align 4, !tbaa !5
  %6578 = call ptr @__errno_location() #12
  store i32 %6577, ptr %6578, align 4, !tbaa !5
  %6579 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6580 = load i32, ptr @test_count, align 4, !tbaa !5
  %6581 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6582 = load i32, ptr %6581, align 4, !tbaa !5
  %6583 = call ptr @s2n_strerror(i32 noundef %6582, ptr noundef @.str.4)
  %6584 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6585 = load i32, ptr %6584, align 4, !tbaa !5
  %6586 = call ptr @s2n_strerror_debug(i32 noundef %6585, ptr noundef @.str.4)
  %6587 = call ptr @__errno_location() #12
  %6588 = load i32, ptr %6587, align 4, !tbaa !5
  %6589 = call ptr @strerror(i32 noundef %6588) #11
  %6590 = call ptr @__errno_location() #12
  %6591 = load i32, ptr %6590, align 4, !tbaa !5
  %6592 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6579, ptr noundef @.str.5, i32 noundef %6580, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 365, ptr noundef %6583, ptr noundef %6586, ptr noundef %6589, i32 noundef %6591) #11
  br label %6593

6593:                                             ; preds = %6576, %6559
  call void @llvm.lifetime.end.p0(i64 4, ptr %158) #11
  br label %6594

6594:                                             ; preds = %6593
  br label %6595

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

6596:                                             ; No predecessors!
  br label %6597

6597:                                             ; preds = %6596
  br label %6598

6598:                                             ; preds = %6597, %6536
  br label %6599

6599:                                             ; preds = %6598
  br label %6600

6600:                                             ; preds = %6599
  call void @llvm.lifetime.start.p0(i64 1, ptr %159) #11
  store i8 8, ptr %159, align 1, !tbaa !18
  call void @llvm.lifetime.start.p0(i64 1, ptr %160) #11
  store i8 0, ptr %160, align 1, !tbaa !18
  br label %6601

6601:                                             ; preds = %6600
  %6602 = load i32, ptr @test_count, align 4, !tbaa !5
  %6603 = add nsw i32 %6602, 1
  store i32 %6603, ptr @test_count, align 4, !tbaa !5
  %6604 = load ptr, ptr %156, align 8, !tbaa !9
  %6605 = getelementptr inbounds %struct.s2n_connection, ptr %6604, i32 0, i32 41
  %6606 = load i8, ptr %159, align 1, !tbaa !18
  %6607 = call i32 @s2n_stuffer_write_uint8(ptr noundef %6605, i8 noundef zeroext %6606)
  %6608 = icmp eq i32 %6607, -1
  br i1 %6608, label %6609, label %6662

6609:                                             ; preds = %6601
  br label %6610

6610:                                             ; preds = %6609
  br label %6611

6611:                                             ; preds = %6610
  call void @llvm.lifetime.start.p0(i64 4, ptr %161) #11
  %6612 = call ptr @__errno_location() #12
  %6613 = load i32, ptr %6612, align 4, !tbaa !5
  store i32 %6613, ptr %161, align 4, !tbaa !5
  %6614 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6615 = call i32 @s2n_print_stacktrace(ptr noundef %6614)
  %6616 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6617 = trunc i8 %6616 to i1
  br i1 %6617, label %6618, label %6640

6618:                                             ; preds = %6611
  %6619 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6620 = call i32 @fileno(ptr noundef %6619) #11
  %6621 = call i32 @isatty(i32 noundef %6620) #11
  %6622 = icmp ne i32 %6621, 0
  br i1 %6622, label %6623, label %6640

6623:                                             ; preds = %6618
  %6624 = load i32, ptr %161, align 4, !tbaa !5
  %6625 = call ptr @__errno_location() #12
  store i32 %6624, ptr %6625, align 4, !tbaa !5
  %6626 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6627 = load i32, ptr @test_count, align 4, !tbaa !5
  %6628 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6629 = load i32, ptr %6628, align 4, !tbaa !5
  %6630 = call ptr @s2n_strerror(i32 noundef %6629, ptr noundef @.str.4)
  %6631 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6632 = load i32, ptr %6631, align 4, !tbaa !5
  %6633 = call ptr @s2n_strerror_debug(i32 noundef %6632, ptr noundef @.str.4)
  %6634 = call ptr @__errno_location() #12
  %6635 = load i32, ptr %6634, align 4, !tbaa !5
  %6636 = call ptr @strerror(i32 noundef %6635) #11
  %6637 = call ptr @__errno_location() #12
  %6638 = load i32, ptr %6637, align 4, !tbaa !5
  %6639 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6626, ptr noundef @.str.2, i32 noundef %6627, ptr noundef @.str.58, ptr noundef @.str.1, i32 noundef 370, ptr noundef %6630, ptr noundef %6633, ptr noundef %6636, i32 noundef %6638) #11
  br label %6657

6640:                                             ; preds = %6618, %6611
  %6641 = load i32, ptr %161, align 4, !tbaa !5
  %6642 = call ptr @__errno_location() #12
  store i32 %6641, ptr %6642, align 4, !tbaa !5
  %6643 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6644 = load i32, ptr @test_count, align 4, !tbaa !5
  %6645 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6646 = load i32, ptr %6645, align 4, !tbaa !5
  %6647 = call ptr @s2n_strerror(i32 noundef %6646, ptr noundef @.str.4)
  %6648 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6649 = load i32, ptr %6648, align 4, !tbaa !5
  %6650 = call ptr @s2n_strerror_debug(i32 noundef %6649, ptr noundef @.str.4)
  %6651 = call ptr @__errno_location() #12
  %6652 = load i32, ptr %6651, align 4, !tbaa !5
  %6653 = call ptr @strerror(i32 noundef %6652) #11
  %6654 = call ptr @__errno_location() #12
  %6655 = load i32, ptr %6654, align 4, !tbaa !5
  %6656 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6643, ptr noundef @.str.5, i32 noundef %6644, ptr noundef @.str.58, ptr noundef @.str.1, i32 noundef 370, ptr noundef %6647, ptr noundef %6650, ptr noundef %6653, i32 noundef %6655) #11
  br label %6657

6657:                                             ; preds = %6640, %6623
  call void @llvm.lifetime.end.p0(i64 4, ptr %161) #11
  br label %6658

6658:                                             ; preds = %6657
  br label %6659

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

6660:                                             ; No predecessors!
  br label %6661

6661:                                             ; preds = %6660
  br label %6662

6662:                                             ; preds = %6661, %6601
  br label %6663

6663:                                             ; preds = %6662
  br label %6664

6664:                                             ; preds = %6663
  br label %6665

6665:                                             ; preds = %6664
  br label %6666

6666:                                             ; preds = %6665
  br label %6667

6667:                                             ; preds = %6666
  %6668 = load i32, ptr @test_count, align 4, !tbaa !5
  %6669 = add nsw i32 %6668, 1
  store i32 %6669, ptr @test_count, align 4, !tbaa !5
  %6670 = load ptr, ptr %156, align 8, !tbaa !9
  %6671 = call i32 @s2n_connection_ktls_enable_send(ptr noundef %6670)
  %6672 = icmp eq i32 %6671, -1
  br i1 %6672, label %6726, label %6673

6673:                                             ; preds = %6667
  br label %6674

6674:                                             ; preds = %6673
  br label %6675

6675:                                             ; preds = %6674
  call void @llvm.lifetime.start.p0(i64 4, ptr %162) #11
  %6676 = call ptr @__errno_location() #12
  %6677 = load i32, ptr %6676, align 4, !tbaa !5
  store i32 %6677, ptr %162, align 4, !tbaa !5
  %6678 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6679 = call i32 @s2n_print_stacktrace(ptr noundef %6678)
  %6680 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6681 = trunc i8 %6680 to i1
  br i1 %6681, label %6682, label %6704

6682:                                             ; preds = %6675
  %6683 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6684 = call i32 @fileno(ptr noundef %6683) #11
  %6685 = call i32 @isatty(i32 noundef %6684) #11
  %6686 = icmp ne i32 %6685, 0
  br i1 %6686, label %6687, label %6704

6687:                                             ; preds = %6682
  %6688 = load i32, ptr %162, align 4, !tbaa !5
  %6689 = call ptr @__errno_location() #12
  store i32 %6688, ptr %6689, align 4, !tbaa !5
  %6690 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6691 = load i32, ptr @test_count, align 4, !tbaa !5
  %6692 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6693 = load i32, ptr %6692, align 4, !tbaa !5
  %6694 = call ptr @s2n_strerror(i32 noundef %6693, ptr noundef @.str.4)
  %6695 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6696 = load i32, ptr %6695, align 4, !tbaa !5
  %6697 = call ptr @s2n_strerror_debug(i32 noundef %6696, ptr noundef @.str.4)
  %6698 = call ptr @__errno_location() #12
  %6699 = load i32, ptr %6698, align 4, !tbaa !5
  %6700 = call ptr @strerror(i32 noundef %6699) #11
  %6701 = call ptr @__errno_location() #12
  %6702 = load i32, ptr %6701, align 4, !tbaa !5
  %6703 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6690, ptr noundef @.str.2, i32 noundef %6691, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 371, ptr noundef %6694, ptr noundef %6697, ptr noundef %6700, i32 noundef %6702) #11
  br label %6721

6704:                                             ; preds = %6682, %6675
  %6705 = load i32, ptr %162, align 4, !tbaa !5
  %6706 = call ptr @__errno_location() #12
  store i32 %6705, ptr %6706, align 4, !tbaa !5
  %6707 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6708 = load i32, ptr @test_count, align 4, !tbaa !5
  %6709 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6710 = load i32, ptr %6709, align 4, !tbaa !5
  %6711 = call ptr @s2n_strerror(i32 noundef %6710, ptr noundef @.str.4)
  %6712 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6713 = load i32, ptr %6712, align 4, !tbaa !5
  %6714 = call ptr @s2n_strerror_debug(i32 noundef %6713, ptr noundef @.str.4)
  %6715 = call ptr @__errno_location() #12
  %6716 = load i32, ptr %6715, align 4, !tbaa !5
  %6717 = call ptr @strerror(i32 noundef %6716) #11
  %6718 = call ptr @__errno_location() #12
  %6719 = load i32, ptr %6718, align 4, !tbaa !5
  %6720 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6707, ptr noundef @.str.5, i32 noundef %6708, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 371, ptr noundef %6711, ptr noundef %6714, ptr noundef %6717, i32 noundef %6719) #11
  br label %6721

6721:                                             ; preds = %6704, %6687
  call void @llvm.lifetime.end.p0(i64 4, ptr %162) #11
  br label %6722

6722:                                             ; preds = %6721
  br label %6723

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

6724:                                             ; No predecessors!
  br label %6725

6725:                                             ; preds = %6724
  br label %6726

6726:                                             ; preds = %6725, %6667
  br label %6727

6727:                                             ; preds = %6726
  br label %6728

6728:                                             ; preds = %6727
  br label %6729

6729:                                             ; preds = %6728
  %6730 = load i32, ptr @test_count, align 4, !tbaa !5
  %6731 = add nsw i32 %6730, 1
  store i32 %6731, ptr @test_count, align 4, !tbaa !5
  %6732 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6733 = load i32, ptr %6732, align 4, !tbaa !5
  %6734 = icmp eq i32 %6733, 335544392
  br i1 %6734, label %6788, label %6735

6735:                                             ; preds = %6729
  br label %6736

6736:                                             ; preds = %6735
  br label %6737

6737:                                             ; preds = %6736
  call void @llvm.lifetime.start.p0(i64 4, ptr %163) #11
  %6738 = call ptr @__errno_location() #12
  %6739 = load i32, ptr %6738, align 4, !tbaa !5
  store i32 %6739, ptr %163, align 4, !tbaa !5
  %6740 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6741 = call i32 @s2n_print_stacktrace(ptr noundef %6740)
  %6742 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6743 = trunc i8 %6742 to i1
  br i1 %6743, label %6744, label %6766

6744:                                             ; preds = %6737
  %6745 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6746 = call i32 @fileno(ptr noundef %6745) #11
  %6747 = call i32 @isatty(i32 noundef %6746) #11
  %6748 = icmp ne i32 %6747, 0
  br i1 %6748, label %6749, label %6766

6749:                                             ; preds = %6744
  %6750 = load i32, ptr %163, align 4, !tbaa !5
  %6751 = call ptr @__errno_location() #12
  store i32 %6750, ptr %6751, align 4, !tbaa !5
  %6752 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6753 = load i32, ptr @test_count, align 4, !tbaa !5
  %6754 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6755 = load i32, ptr %6754, align 4, !tbaa !5
  %6756 = call ptr @s2n_strerror(i32 noundef %6755, ptr noundef @.str.4)
  %6757 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6758 = load i32, ptr %6757, align 4, !tbaa !5
  %6759 = call ptr @s2n_strerror_debug(i32 noundef %6758, ptr noundef @.str.4)
  %6760 = call ptr @__errno_location() #12
  %6761 = load i32, ptr %6760, align 4, !tbaa !5
  %6762 = call ptr @strerror(i32 noundef %6761) #11
  %6763 = call ptr @__errno_location() #12
  %6764 = load i32, ptr %6763, align 4, !tbaa !5
  %6765 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6752, ptr noundef @.str.2, i32 noundef %6753, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 371, ptr noundef %6756, ptr noundef %6759, ptr noundef %6762, i32 noundef %6764) #11
  br label %6783

6766:                                             ; preds = %6744, %6737
  %6767 = load i32, ptr %163, align 4, !tbaa !5
  %6768 = call ptr @__errno_location() #12
  store i32 %6767, ptr %6768, align 4, !tbaa !5
  %6769 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6770 = load i32, ptr @test_count, align 4, !tbaa !5
  %6771 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6772 = load i32, ptr %6771, align 4, !tbaa !5
  %6773 = call ptr @s2n_strerror(i32 noundef %6772, ptr noundef @.str.4)
  %6774 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6775 = load i32, ptr %6774, align 4, !tbaa !5
  %6776 = call ptr @s2n_strerror_debug(i32 noundef %6775, ptr noundef @.str.4)
  %6777 = call ptr @__errno_location() #12
  %6778 = load i32, ptr %6777, align 4, !tbaa !5
  %6779 = call ptr @strerror(i32 noundef %6778) #11
  %6780 = call ptr @__errno_location() #12
  %6781 = load i32, ptr %6780, align 4, !tbaa !5
  %6782 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6769, ptr noundef @.str.5, i32 noundef %6770, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 371, ptr noundef %6773, ptr noundef %6776, ptr noundef %6779, i32 noundef %6781) #11
  br label %6783

6783:                                             ; preds = %6766, %6749
  call void @llvm.lifetime.end.p0(i64 4, ptr %163) #11
  br label %6784

6784:                                             ; preds = %6783
  br label %6785

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

6786:                                             ; No predecessors!
  br label %6787

6787:                                             ; preds = %6786
  br label %6788

6788:                                             ; preds = %6787, %6729
  br label %6789

6789:                                             ; preds = %6788
  br label %6790

6790:                                             ; preds = %6789
  br label %6791

6791:                                             ; preds = %6790
  %6792 = load i32, ptr @test_count, align 4, !tbaa !5
  %6793 = add nsw i32 %6792, 1
  store i32 %6793, ptr @test_count, align 4, !tbaa !5
  %6794 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6795 = load i32, ptr %6794, align 4, !tbaa !5
  %6796 = call ptr @s2n_strerror_debug(i32 noundef %6795, ptr noundef @.str.4)
  %6797 = icmp eq ptr %6796, null
  br i1 %6797, label %6798, label %6851

6798:                                             ; preds = %6791
  br label %6799

6799:                                             ; preds = %6798
  br label %6800

6800:                                             ; preds = %6799
  call void @llvm.lifetime.start.p0(i64 4, ptr %164) #11
  %6801 = call ptr @__errno_location() #12
  %6802 = load i32, ptr %6801, align 4, !tbaa !5
  store i32 %6802, ptr %164, align 4, !tbaa !5
  %6803 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6804 = call i32 @s2n_print_stacktrace(ptr noundef %6803)
  %6805 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6806 = trunc i8 %6805 to i1
  br i1 %6806, label %6807, label %6829

6807:                                             ; preds = %6800
  %6808 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6809 = call i32 @fileno(ptr noundef %6808) #11
  %6810 = call i32 @isatty(i32 noundef %6809) #11
  %6811 = icmp ne i32 %6810, 0
  br i1 %6811, label %6812, label %6829

6812:                                             ; preds = %6807
  %6813 = load i32, ptr %164, align 4, !tbaa !5
  %6814 = call ptr @__errno_location() #12
  store i32 %6813, ptr %6814, align 4, !tbaa !5
  %6815 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6816 = load i32, ptr @test_count, align 4, !tbaa !5
  %6817 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6818 = load i32, ptr %6817, align 4, !tbaa !5
  %6819 = call ptr @s2n_strerror(i32 noundef %6818, ptr noundef @.str.4)
  %6820 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6821 = load i32, ptr %6820, align 4, !tbaa !5
  %6822 = call ptr @s2n_strerror_debug(i32 noundef %6821, ptr noundef @.str.4)
  %6823 = call ptr @__errno_location() #12
  %6824 = load i32, ptr %6823, align 4, !tbaa !5
  %6825 = call ptr @strerror(i32 noundef %6824) #11
  %6826 = call ptr @__errno_location() #12
  %6827 = load i32, ptr %6826, align 4, !tbaa !5
  %6828 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6815, ptr noundef @.str.2, i32 noundef %6816, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 371, ptr noundef %6819, ptr noundef %6822, ptr noundef %6825, i32 noundef %6827) #11
  br label %6846

6829:                                             ; preds = %6807, %6800
  %6830 = load i32, ptr %164, align 4, !tbaa !5
  %6831 = call ptr @__errno_location() #12
  store i32 %6830, ptr %6831, align 4, !tbaa !5
  %6832 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6833 = load i32, ptr @test_count, align 4, !tbaa !5
  %6834 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6835 = load i32, ptr %6834, align 4, !tbaa !5
  %6836 = call ptr @s2n_strerror(i32 noundef %6835, ptr noundef @.str.4)
  %6837 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6838 = load i32, ptr %6837, align 4, !tbaa !5
  %6839 = call ptr @s2n_strerror_debug(i32 noundef %6838, ptr noundef @.str.4)
  %6840 = call ptr @__errno_location() #12
  %6841 = load i32, ptr %6840, align 4, !tbaa !5
  %6842 = call ptr @strerror(i32 noundef %6841) #11
  %6843 = call ptr @__errno_location() #12
  %6844 = load i32, ptr %6843, align 4, !tbaa !5
  %6845 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6832, ptr noundef @.str.5, i32 noundef %6833, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 371, ptr noundef %6836, ptr noundef %6839, ptr noundef %6842, i32 noundef %6844) #11
  br label %6846

6846:                                             ; preds = %6829, %6812
  call void @llvm.lifetime.end.p0(i64 4, ptr %164) #11
  br label %6847

6847:                                             ; preds = %6846
  br label %6848

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

6849:                                             ; No predecessors!
  br label %6850

6850:                                             ; preds = %6849
  br label %6851

6851:                                             ; preds = %6850, %6791
  br label %6852

6852:                                             ; preds = %6851
  br label %6853

6853:                                             ; preds = %6852
  br label %6854

6854:                                             ; preds = %6853
  br label %6855

6855:                                             ; preds = %6854
  br label %6856

6856:                                             ; preds = %6855
  %6857 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %6857, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %6858 = call ptr @__errno_location() #12
  store i32 0, ptr %6858, align 4, !tbaa !5
  br label %6859

6859:                                             ; preds = %6856
  br label %6860

6860:                                             ; preds = %6859
  br label %6861

6861:                                             ; preds = %6860
  br label %6862

6862:                                             ; preds = %6861
  br label %6863

6863:                                             ; preds = %6862
  %6864 = load i32, ptr @test_count, align 4, !tbaa !5
  %6865 = add nsw i32 %6864, 1
  store i32 %6865, ptr @test_count, align 4, !tbaa !5
  %6866 = load ptr, ptr %156, align 8, !tbaa !9
  %6867 = getelementptr inbounds %struct.s2n_connection, ptr %6866, i32 0, i32 41
  %6868 = call i32 @s2n_stuffer_read_uint8(ptr noundef %6867, ptr noundef %160)
  %6869 = icmp eq i32 %6868, -1
  br i1 %6869, label %6870, label %6923

6870:                                             ; preds = %6863
  br label %6871

6871:                                             ; preds = %6870
  br label %6872

6872:                                             ; preds = %6871
  call void @llvm.lifetime.start.p0(i64 4, ptr %165) #11
  %6873 = call ptr @__errno_location() #12
  %6874 = load i32, ptr %6873, align 4, !tbaa !5
  store i32 %6874, ptr %165, align 4, !tbaa !5
  %6875 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6876 = call i32 @s2n_print_stacktrace(ptr noundef %6875)
  %6877 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6878 = trunc i8 %6877 to i1
  br i1 %6878, label %6879, label %6901

6879:                                             ; preds = %6872
  %6880 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6881 = call i32 @fileno(ptr noundef %6880) #11
  %6882 = call i32 @isatty(i32 noundef %6881) #11
  %6883 = icmp ne i32 %6882, 0
  br i1 %6883, label %6884, label %6901

6884:                                             ; preds = %6879
  %6885 = load i32, ptr %165, align 4, !tbaa !5
  %6886 = call ptr @__errno_location() #12
  store i32 %6885, ptr %6886, align 4, !tbaa !5
  %6887 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6888 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %6890, ptr noundef @.str.4)
  %6892 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6893 = load i32, ptr %6892, align 4, !tbaa !5
  %6894 = call ptr @s2n_strerror_debug(i32 noundef %6893, ptr noundef @.str.4)
  %6895 = call ptr @__errno_location() #12
  %6896 = load i32, ptr %6895, align 4, !tbaa !5
  %6897 = call ptr @strerror(i32 noundef %6896) #11
  %6898 = call ptr @__errno_location() #12
  %6899 = load i32, ptr %6898, align 4, !tbaa !5
  %6900 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6887, ptr noundef @.str.2, i32 noundef %6888, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 373, ptr noundef %6891, ptr noundef %6894, ptr noundef %6897, i32 noundef %6899) #11
  br label %6918

6901:                                             ; preds = %6879, %6872
  %6902 = load i32, ptr %165, align 4, !tbaa !5
  %6903 = call ptr @__errno_location() #12
  store i32 %6902, ptr %6903, align 4, !tbaa !5
  %6904 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6905 = load i32, ptr @test_count, align 4, !tbaa !5
  %6906 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6907 = load i32, ptr %6906, align 4, !tbaa !5
  %6908 = call ptr @s2n_strerror(i32 noundef %6907, ptr noundef @.str.4)
  %6909 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6910 = load i32, ptr %6909, align 4, !tbaa !5
  %6911 = call ptr @s2n_strerror_debug(i32 noundef %6910, ptr noundef @.str.4)
  %6912 = call ptr @__errno_location() #12
  %6913 = load i32, ptr %6912, align 4, !tbaa !5
  %6914 = call ptr @strerror(i32 noundef %6913) #11
  %6915 = call ptr @__errno_location() #12
  %6916 = load i32, ptr %6915, align 4, !tbaa !5
  %6917 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6904, ptr noundef @.str.5, i32 noundef %6905, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 373, ptr noundef %6908, ptr noundef %6911, ptr noundef %6914, i32 noundef %6916) #11
  br label %6918

6918:                                             ; preds = %6901, %6884
  call void @llvm.lifetime.end.p0(i64 4, ptr %165) #11
  br label %6919

6919:                                             ; preds = %6918
  br label %6920

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

6921:                                             ; No predecessors!
  br label %6922

6922:                                             ; preds = %6921
  br label %6923

6923:                                             ; preds = %6922, %6863
  br label %6924

6924:                                             ; preds = %6923
  br label %6925

6925:                                             ; preds = %6924
  br label %6926

6926:                                             ; preds = %6925
  %6927 = load i32, ptr @test_count, align 4, !tbaa !5
  %6928 = add nsw i32 %6927, 1
  store i32 %6928, ptr @test_count, align 4, !tbaa !5
  %6929 = load ptr, ptr %156, align 8, !tbaa !9
  %6930 = call i32 @s2n_connection_ktls_enable_send(ptr noundef %6929)
  %6931 = icmp eq i32 %6930, -1
  br i1 %6931, label %6932, label %6985

6932:                                             ; preds = %6926
  br label %6933

6933:                                             ; preds = %6932
  br label %6934

6934:                                             ; preds = %6933
  call void @llvm.lifetime.start.p0(i64 4, ptr %166) #11
  %6935 = call ptr @__errno_location() #12
  %6936 = load i32, ptr %6935, align 4, !tbaa !5
  store i32 %6936, ptr %166, align 4, !tbaa !5
  %6937 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6938 = call i32 @s2n_print_stacktrace(ptr noundef %6937)
  %6939 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6940 = trunc i8 %6939 to i1
  br i1 %6940, label %6941, label %6963

6941:                                             ; preds = %6934
  %6942 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6943 = call i32 @fileno(ptr noundef %6942) #11
  %6944 = call i32 @isatty(i32 noundef %6943) #11
  %6945 = icmp ne i32 %6944, 0
  br i1 %6945, label %6946, label %6963

6946:                                             ; preds = %6941
  %6947 = load i32, ptr %166, align 4, !tbaa !5
  %6948 = call ptr @__errno_location() #12
  store i32 %6947, ptr %6948, align 4, !tbaa !5
  %6949 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6950 = load i32, ptr @test_count, align 4, !tbaa !5
  %6951 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6952 = load i32, ptr %6951, align 4, !tbaa !5
  %6953 = call ptr @s2n_strerror(i32 noundef %6952, ptr noundef @.str.4)
  %6954 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6955 = load i32, ptr %6954, align 4, !tbaa !5
  %6956 = call ptr @s2n_strerror_debug(i32 noundef %6955, ptr noundef @.str.4)
  %6957 = call ptr @__errno_location() #12
  %6958 = load i32, ptr %6957, align 4, !tbaa !5
  %6959 = call ptr @strerror(i32 noundef %6958) #11
  %6960 = call ptr @__errno_location() #12
  %6961 = load i32, ptr %6960, align 4, !tbaa !5
  %6962 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6949, ptr noundef @.str.2, i32 noundef %6950, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 374, ptr noundef %6953, ptr noundef %6956, ptr noundef %6959, i32 noundef %6961) #11
  br label %6980

6963:                                             ; preds = %6941, %6934
  %6964 = load i32, ptr %166, align 4, !tbaa !5
  %6965 = call ptr @__errno_location() #12
  store i32 %6964, ptr %6965, align 4, !tbaa !5
  %6966 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6967 = load i32, ptr @test_count, align 4, !tbaa !5
  %6968 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6969 = load i32, ptr %6968, align 4, !tbaa !5
  %6970 = call ptr @s2n_strerror(i32 noundef %6969, ptr noundef @.str.4)
  %6971 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6972 = load i32, ptr %6971, align 4, !tbaa !5
  %6973 = call ptr @s2n_strerror_debug(i32 noundef %6972, ptr noundef @.str.4)
  %6974 = call ptr @__errno_location() #12
  %6975 = load i32, ptr %6974, align 4, !tbaa !5
  %6976 = call ptr @strerror(i32 noundef %6975) #11
  %6977 = call ptr @__errno_location() #12
  %6978 = load i32, ptr %6977, align 4, !tbaa !5
  %6979 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6966, ptr noundef @.str.5, i32 noundef %6967, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 374, ptr noundef %6970, ptr noundef %6973, ptr noundef %6976, i32 noundef %6978) #11
  br label %6980

6980:                                             ; preds = %6963, %6946
  call void @llvm.lifetime.end.p0(i64 4, ptr %166) #11
  br label %6981

6981:                                             ; preds = %6980
  br label %6982

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

6983:                                             ; No predecessors!
  br label %6984

6984:                                             ; preds = %6983
  br label %6985

6985:                                             ; preds = %6984, %6926
  br label %6986

6986:                                             ; preds = %6985
  br label %6987

6987:                                             ; preds = %6986
  br label %6988

6988:                                             ; preds = %6987
  %6989 = load i32, ptr @test_count, align 4, !tbaa !5
  %6990 = add nsw i32 %6989, 1
  store i32 %6990, ptr @test_count, align 4, !tbaa !5
  %6991 = load ptr, ptr %156, align 8, !tbaa !9
  %6992 = getelementptr inbounds %struct.s2n_connection, ptr %6991, i32 0, i32 38
  %6993 = load i8, ptr %159, align 1, !tbaa !18
  %6994 = call i32 @s2n_stuffer_write_uint8(ptr noundef %6992, i8 noundef zeroext %6993)
  %6995 = icmp eq i32 %6994, -1
  br i1 %6995, label %6996, label %7049

6996:                                             ; preds = %6988
  br label %6997

6997:                                             ; preds = %6996
  br label %6998

6998:                                             ; preds = %6997
  call void @llvm.lifetime.start.p0(i64 4, ptr %167) #11
  %6999 = call ptr @__errno_location() #12
  %7000 = load i32, ptr %6999, align 4, !tbaa !5
  store i32 %7000, ptr %167, align 4, !tbaa !5
  %7001 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7002 = call i32 @s2n_print_stacktrace(ptr noundef %7001)
  %7003 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7004 = trunc i8 %7003 to i1
  br i1 %7004, label %7005, label %7027

7005:                                             ; preds = %6998
  %7006 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7007 = call i32 @fileno(ptr noundef %7006) #11
  %7008 = call i32 @isatty(i32 noundef %7007) #11
  %7009 = icmp ne i32 %7008, 0
  br i1 %7009, label %7010, label %7027

7010:                                             ; preds = %7005
  %7011 = load i32, ptr %167, align 4, !tbaa !5
  %7012 = call ptr @__errno_location() #12
  store i32 %7011, ptr %7012, align 4, !tbaa !5
  %7013 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7014 = load i32, ptr @test_count, align 4, !tbaa !5
  %7015 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7016 = load i32, ptr %7015, align 4, !tbaa !5
  %7017 = call ptr @s2n_strerror(i32 noundef %7016, ptr noundef @.str.4)
  %7018 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7019 = load i32, ptr %7018, align 4, !tbaa !5
  %7020 = call ptr @s2n_strerror_debug(i32 noundef %7019, ptr noundef @.str.4)
  %7021 = call ptr @__errno_location() #12
  %7022 = load i32, ptr %7021, align 4, !tbaa !5
  %7023 = call ptr @strerror(i32 noundef %7022) #11
  %7024 = call ptr @__errno_location() #12
  %7025 = load i32, ptr %7024, align 4, !tbaa !5
  %7026 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7013, ptr noundef @.str.2, i32 noundef %7014, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 377, ptr noundef %7017, ptr noundef %7020, ptr noundef %7023, i32 noundef %7025) #11
  br label %7044

7027:                                             ; preds = %7005, %6998
  %7028 = load i32, ptr %167, align 4, !tbaa !5
  %7029 = call ptr @__errno_location() #12
  store i32 %7028, ptr %7029, align 4, !tbaa !5
  %7030 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7031 = load i32, ptr @test_count, align 4, !tbaa !5
  %7032 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7033 = load i32, ptr %7032, align 4, !tbaa !5
  %7034 = call ptr @s2n_strerror(i32 noundef %7033, ptr noundef @.str.4)
  %7035 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7036 = load i32, ptr %7035, align 4, !tbaa !5
  %7037 = call ptr @s2n_strerror_debug(i32 noundef %7036, ptr noundef @.str.4)
  %7038 = call ptr @__errno_location() #12
  %7039 = load i32, ptr %7038, align 4, !tbaa !5
  %7040 = call ptr @strerror(i32 noundef %7039) #11
  %7041 = call ptr @__errno_location() #12
  %7042 = load i32, ptr %7041, align 4, !tbaa !5
  %7043 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7030, ptr noundef @.str.5, i32 noundef %7031, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 377, ptr noundef %7034, ptr noundef %7037, ptr noundef %7040, i32 noundef %7042) #11
  br label %7044

7044:                                             ; preds = %7027, %7010
  call void @llvm.lifetime.end.p0(i64 4, ptr %167) #11
  br label %7045

7045:                                             ; preds = %7044
  br label %7046

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

7047:                                             ; No predecessors!
  br label %7048

7048:                                             ; preds = %7047
  br label %7049

7049:                                             ; preds = %7048, %6988
  br label %7050

7050:                                             ; preds = %7049
  br label %7051

7051:                                             ; preds = %7050
  br label %7052

7052:                                             ; preds = %7051
  br label %7053

7053:                                             ; preds = %7052
  br label %7054

7054:                                             ; preds = %7053
  %7055 = load i32, ptr @test_count, align 4, !tbaa !5
  %7056 = add nsw i32 %7055, 1
  store i32 %7056, ptr @test_count, align 4, !tbaa !5
  %7057 = load ptr, ptr %156, align 8, !tbaa !9
  %7058 = call i32 @s2n_connection_ktls_enable_recv(ptr noundef %7057)
  %7059 = icmp eq i32 %7058, -1
  br i1 %7059, label %7113, label %7060

7060:                                             ; preds = %7054
  br label %7061

7061:                                             ; preds = %7060
  br label %7062

7062:                                             ; preds = %7061
  call void @llvm.lifetime.start.p0(i64 4, ptr %168) #11
  %7063 = call ptr @__errno_location() #12
  %7064 = load i32, ptr %7063, align 4, !tbaa !5
  store i32 %7064, ptr %168, align 4, !tbaa !5
  %7065 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7066 = call i32 @s2n_print_stacktrace(ptr noundef %7065)
  %7067 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7068 = trunc i8 %7067 to i1
  br i1 %7068, label %7069, label %7091

7069:                                             ; preds = %7062
  %7070 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7071 = call i32 @fileno(ptr noundef %7070) #11
  %7072 = call i32 @isatty(i32 noundef %7071) #11
  %7073 = icmp ne i32 %7072, 0
  br i1 %7073, label %7074, label %7091

7074:                                             ; preds = %7069
  %7075 = load i32, ptr %168, align 4, !tbaa !5
  %7076 = call ptr @__errno_location() #12
  store i32 %7075, ptr %7076, align 4, !tbaa !5
  %7077 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7078 = load i32, ptr @test_count, align 4, !tbaa !5
  %7079 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7080 = load i32, ptr %7079, align 4, !tbaa !5
  %7081 = call ptr @s2n_strerror(i32 noundef %7080, ptr noundef @.str.4)
  %7082 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7083 = load i32, ptr %7082, align 4, !tbaa !5
  %7084 = call ptr @s2n_strerror_debug(i32 noundef %7083, ptr noundef @.str.4)
  %7085 = call ptr @__errno_location() #12
  %7086 = load i32, ptr %7085, align 4, !tbaa !5
  %7087 = call ptr @strerror(i32 noundef %7086) #11
  %7088 = call ptr @__errno_location() #12
  %7089 = load i32, ptr %7088, align 4, !tbaa !5
  %7090 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7077, ptr noundef @.str.2, i32 noundef %7078, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 378, ptr noundef %7081, ptr noundef %7084, ptr noundef %7087, i32 noundef %7089) #11
  br label %7108

7091:                                             ; preds = %7069, %7062
  %7092 = load i32, ptr %168, align 4, !tbaa !5
  %7093 = call ptr @__errno_location() #12
  store i32 %7092, ptr %7093, align 4, !tbaa !5
  %7094 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7095 = load i32, ptr @test_count, align 4, !tbaa !5
  %7096 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7097 = load i32, ptr %7096, align 4, !tbaa !5
  %7098 = call ptr @s2n_strerror(i32 noundef %7097, ptr noundef @.str.4)
  %7099 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7100 = load i32, ptr %7099, align 4, !tbaa !5
  %7101 = call ptr @s2n_strerror_debug(i32 noundef %7100, ptr noundef @.str.4)
  %7102 = call ptr @__errno_location() #12
  %7103 = load i32, ptr %7102, align 4, !tbaa !5
  %7104 = call ptr @strerror(i32 noundef %7103) #11
  %7105 = call ptr @__errno_location() #12
  %7106 = load i32, ptr %7105, align 4, !tbaa !5
  %7107 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7094, ptr noundef @.str.5, i32 noundef %7095, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 378, ptr noundef %7098, ptr noundef %7101, ptr noundef %7104, i32 noundef %7106) #11
  br label %7108

7108:                                             ; preds = %7091, %7074
  call void @llvm.lifetime.end.p0(i64 4, ptr %168) #11
  br label %7109

7109:                                             ; preds = %7108
  br label %7110

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

7111:                                             ; No predecessors!
  br label %7112

7112:                                             ; preds = %7111
  br label %7113

7113:                                             ; preds = %7112, %7054
  br label %7114

7114:                                             ; preds = %7113
  br label %7115

7115:                                             ; preds = %7114
  br label %7116

7116:                                             ; preds = %7115
  %7117 = load i32, ptr @test_count, align 4, !tbaa !5
  %7118 = add nsw i32 %7117, 1
  store i32 %7118, ptr @test_count, align 4, !tbaa !5
  %7119 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7120 = load i32, ptr %7119, align 4, !tbaa !5
  %7121 = icmp eq i32 %7120, 335544392
  br i1 %7121, label %7175, label %7122

7122:                                             ; preds = %7116
  br label %7123

7123:                                             ; preds = %7122
  br label %7124

7124:                                             ; preds = %7123
  call void @llvm.lifetime.start.p0(i64 4, ptr %169) #11
  %7125 = call ptr @__errno_location() #12
  %7126 = load i32, ptr %7125, align 4, !tbaa !5
  store i32 %7126, ptr %169, align 4, !tbaa !5
  %7127 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7128 = call i32 @s2n_print_stacktrace(ptr noundef %7127)
  %7129 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7130 = trunc i8 %7129 to i1
  br i1 %7130, label %7131, label %7153

7131:                                             ; preds = %7124
  %7132 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7133 = call i32 @fileno(ptr noundef %7132) #11
  %7134 = call i32 @isatty(i32 noundef %7133) #11
  %7135 = icmp ne i32 %7134, 0
  br i1 %7135, label %7136, label %7153

7136:                                             ; preds = %7131
  %7137 = load i32, ptr %169, align 4, !tbaa !5
  %7138 = call ptr @__errno_location() #12
  store i32 %7137, ptr %7138, align 4, !tbaa !5
  %7139 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7140 = load i32, ptr @test_count, align 4, !tbaa !5
  %7141 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7142 = load i32, ptr %7141, align 4, !tbaa !5
  %7143 = call ptr @s2n_strerror(i32 noundef %7142, ptr noundef @.str.4)
  %7144 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7145 = load i32, ptr %7144, align 4, !tbaa !5
  %7146 = call ptr @s2n_strerror_debug(i32 noundef %7145, ptr noundef @.str.4)
  %7147 = call ptr @__errno_location() #12
  %7148 = load i32, ptr %7147, align 4, !tbaa !5
  %7149 = call ptr @strerror(i32 noundef %7148) #11
  %7150 = call ptr @__errno_location() #12
  %7151 = load i32, ptr %7150, align 4, !tbaa !5
  %7152 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7139, ptr noundef @.str.2, i32 noundef %7140, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 378, ptr noundef %7143, ptr noundef %7146, ptr noundef %7149, i32 noundef %7151) #11
  br label %7170

7153:                                             ; preds = %7131, %7124
  %7154 = load i32, ptr %169, align 4, !tbaa !5
  %7155 = call ptr @__errno_location() #12
  store i32 %7154, ptr %7155, align 4, !tbaa !5
  %7156 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7157 = load i32, ptr @test_count, align 4, !tbaa !5
  %7158 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7159 = load i32, ptr %7158, align 4, !tbaa !5
  %7160 = call ptr @s2n_strerror(i32 noundef %7159, ptr noundef @.str.4)
  %7161 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7162 = load i32, ptr %7161, align 4, !tbaa !5
  %7163 = call ptr @s2n_strerror_debug(i32 noundef %7162, ptr noundef @.str.4)
  %7164 = call ptr @__errno_location() #12
  %7165 = load i32, ptr %7164, align 4, !tbaa !5
  %7166 = call ptr @strerror(i32 noundef %7165) #11
  %7167 = call ptr @__errno_location() #12
  %7168 = load i32, ptr %7167, align 4, !tbaa !5
  %7169 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7156, ptr noundef @.str.5, i32 noundef %7157, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 378, ptr noundef %7160, ptr noundef %7163, ptr noundef %7166, i32 noundef %7168) #11
  br label %7170

7170:                                             ; preds = %7153, %7136
  call void @llvm.lifetime.end.p0(i64 4, ptr %169) #11
  br label %7171

7171:                                             ; preds = %7170
  br label %7172

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

7173:                                             ; No predecessors!
  br label %7174

7174:                                             ; preds = %7173
  br label %7175

7175:                                             ; preds = %7174, %7116
  br label %7176

7176:                                             ; preds = %7175
  br label %7177

7177:                                             ; preds = %7176
  br label %7178

7178:                                             ; preds = %7177
  %7179 = load i32, ptr @test_count, align 4, !tbaa !5
  %7180 = add nsw i32 %7179, 1
  store i32 %7180, ptr @test_count, align 4, !tbaa !5
  %7181 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7182 = load i32, ptr %7181, align 4, !tbaa !5
  %7183 = call ptr @s2n_strerror_debug(i32 noundef %7182, ptr noundef @.str.4)
  %7184 = icmp eq ptr %7183, null
  br i1 %7184, label %7185, label %7238

7185:                                             ; preds = %7178
  br label %7186

7186:                                             ; preds = %7185
  br label %7187

7187:                                             ; preds = %7186
  call void @llvm.lifetime.start.p0(i64 4, ptr %170) #11
  %7188 = call ptr @__errno_location() #12
  %7189 = load i32, ptr %7188, align 4, !tbaa !5
  store i32 %7189, ptr %170, align 4, !tbaa !5
  %7190 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7191 = call i32 @s2n_print_stacktrace(ptr noundef %7190)
  %7192 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7193 = trunc i8 %7192 to i1
  br i1 %7193, label %7194, label %7216

7194:                                             ; preds = %7187
  %7195 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7196 = call i32 @fileno(ptr noundef %7195) #11
  %7197 = call i32 @isatty(i32 noundef %7196) #11
  %7198 = icmp ne i32 %7197, 0
  br i1 %7198, label %7199, label %7216

7199:                                             ; preds = %7194
  %7200 = load i32, ptr %170, align 4, !tbaa !5
  %7201 = call ptr @__errno_location() #12
  store i32 %7200, ptr %7201, align 4, !tbaa !5
  %7202 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7203 = load i32, ptr @test_count, align 4, !tbaa !5
  %7204 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7205 = load i32, ptr %7204, align 4, !tbaa !5
  %7206 = call ptr @s2n_strerror(i32 noundef %7205, ptr noundef @.str.4)
  %7207 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7208 = load i32, ptr %7207, align 4, !tbaa !5
  %7209 = call ptr @s2n_strerror_debug(i32 noundef %7208, ptr noundef @.str.4)
  %7210 = call ptr @__errno_location() #12
  %7211 = load i32, ptr %7210, align 4, !tbaa !5
  %7212 = call ptr @strerror(i32 noundef %7211) #11
  %7213 = call ptr @__errno_location() #12
  %7214 = load i32, ptr %7213, align 4, !tbaa !5
  %7215 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7202, ptr noundef @.str.2, i32 noundef %7203, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 378, ptr noundef %7206, ptr noundef %7209, ptr noundef %7212, i32 noundef %7214) #11
  br label %7233

7216:                                             ; preds = %7194, %7187
  %7217 = load i32, ptr %170, align 4, !tbaa !5
  %7218 = call ptr @__errno_location() #12
  store i32 %7217, ptr %7218, align 4, !tbaa !5
  %7219 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7220 = load i32, ptr @test_count, align 4, !tbaa !5
  %7221 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7222 = load i32, ptr %7221, align 4, !tbaa !5
  %7223 = call ptr @s2n_strerror(i32 noundef %7222, ptr noundef @.str.4)
  %7224 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7225 = load i32, ptr %7224, align 4, !tbaa !5
  %7226 = call ptr @s2n_strerror_debug(i32 noundef %7225, ptr noundef @.str.4)
  %7227 = call ptr @__errno_location() #12
  %7228 = load i32, ptr %7227, align 4, !tbaa !5
  %7229 = call ptr @strerror(i32 noundef %7228) #11
  %7230 = call ptr @__errno_location() #12
  %7231 = load i32, ptr %7230, align 4, !tbaa !5
  %7232 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7219, ptr noundef @.str.5, i32 noundef %7220, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 378, ptr noundef %7223, ptr noundef %7226, ptr noundef %7229, i32 noundef %7231) #11
  br label %7233

7233:                                             ; preds = %7216, %7199
  call void @llvm.lifetime.end.p0(i64 4, ptr %170) #11
  br label %7234

7234:                                             ; preds = %7233
  br label %7235

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

7236:                                             ; No predecessors!
  br label %7237

7237:                                             ; preds = %7236
  br label %7238

7238:                                             ; preds = %7237, %7178
  br label %7239

7239:                                             ; preds = %7238
  br label %7240

7240:                                             ; preds = %7239
  br label %7241

7241:                                             ; preds = %7240
  br label %7242

7242:                                             ; preds = %7241
  br label %7243

7243:                                             ; preds = %7242
  %7244 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %7244, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %7245 = call ptr @__errno_location() #12
  store i32 0, ptr %7245, align 4, !tbaa !5
  br label %7246

7246:                                             ; preds = %7243
  br label %7247

7247:                                             ; preds = %7246
  br label %7248

7248:                                             ; preds = %7247
  br label %7249

7249:                                             ; preds = %7248
  br label %7250

7250:                                             ; preds = %7249
  %7251 = load i32, ptr @test_count, align 4, !tbaa !5
  %7252 = add nsw i32 %7251, 1
  store i32 %7252, ptr @test_count, align 4, !tbaa !5
  %7253 = load ptr, ptr %156, align 8, !tbaa !9
  %7254 = getelementptr inbounds %struct.s2n_connection, ptr %7253, i32 0, i32 38
  %7255 = call i32 @s2n_stuffer_read_uint8(ptr noundef %7254, ptr noundef %160)
  %7256 = icmp eq i32 %7255, -1
  br i1 %7256, label %7257, label %7310

7257:                                             ; preds = %7250
  br label %7258

7258:                                             ; preds = %7257
  br label %7259

7259:                                             ; preds = %7258
  call void @llvm.lifetime.start.p0(i64 4, ptr %171) #11
  %7260 = call ptr @__errno_location() #12
  %7261 = load i32, ptr %7260, align 4, !tbaa !5
  store i32 %7261, ptr %171, align 4, !tbaa !5
  %7262 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7263 = call i32 @s2n_print_stacktrace(ptr noundef %7262)
  %7264 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7265 = trunc i8 %7264 to i1
  br i1 %7265, label %7266, label %7288

7266:                                             ; preds = %7259
  %7267 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7268 = call i32 @fileno(ptr noundef %7267) #11
  %7269 = call i32 @isatty(i32 noundef %7268) #11
  %7270 = icmp ne i32 %7269, 0
  br i1 %7270, label %7271, label %7288

7271:                                             ; preds = %7266
  %7272 = load i32, ptr %171, align 4, !tbaa !5
  %7273 = call ptr @__errno_location() #12
  store i32 %7272, ptr %7273, align 4, !tbaa !5
  %7274 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7275 = load i32, ptr @test_count, align 4, !tbaa !5
  %7276 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7277 = load i32, ptr %7276, align 4, !tbaa !5
  %7278 = call ptr @s2n_strerror(i32 noundef %7277, ptr noundef @.str.4)
  %7279 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7280 = load i32, ptr %7279, align 4, !tbaa !5
  %7281 = call ptr @s2n_strerror_debug(i32 noundef %7280, ptr noundef @.str.4)
  %7282 = call ptr @__errno_location() #12
  %7283 = load i32, ptr %7282, align 4, !tbaa !5
  %7284 = call ptr @strerror(i32 noundef %7283) #11
  %7285 = call ptr @__errno_location() #12
  %7286 = load i32, ptr %7285, align 4, !tbaa !5
  %7287 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7274, ptr noundef @.str.2, i32 noundef %7275, ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 379, ptr noundef %7278, ptr noundef %7281, ptr noundef %7284, i32 noundef %7286) #11
  br label %7305

7288:                                             ; preds = %7266, %7259
  %7289 = load i32, ptr %171, align 4, !tbaa !5
  %7290 = call ptr @__errno_location() #12
  store i32 %7289, ptr %7290, align 4, !tbaa !5
  %7291 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7292 = load i32, ptr @test_count, align 4, !tbaa !5
  %7293 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7294 = load i32, ptr %7293, align 4, !tbaa !5
  %7295 = call ptr @s2n_strerror(i32 noundef %7294, ptr noundef @.str.4)
  %7296 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7297 = load i32, ptr %7296, align 4, !tbaa !5
  %7298 = call ptr @s2n_strerror_debug(i32 noundef %7297, ptr noundef @.str.4)
  %7299 = call ptr @__errno_location() #12
  %7300 = load i32, ptr %7299, align 4, !tbaa !5
  %7301 = call ptr @strerror(i32 noundef %7300) #11
  %7302 = call ptr @__errno_location() #12
  %7303 = load i32, ptr %7302, align 4, !tbaa !5
  %7304 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7291, ptr noundef @.str.5, i32 noundef %7292, ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 379, ptr noundef %7295, ptr noundef %7298, ptr noundef %7301, i32 noundef %7303) #11
  br label %7305

7305:                                             ; preds = %7288, %7271
  call void @llvm.lifetime.end.p0(i64 4, ptr %171) #11
  br label %7306

7306:                                             ; preds = %7305
  br label %7307

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

7308:                                             ; No predecessors!
  br label %7309

7309:                                             ; preds = %7308
  br label %7310

7310:                                             ; preds = %7309, %7250
  br label %7311

7311:                                             ; preds = %7310
  br label %7312

7312:                                             ; preds = %7311
  br label %7313

7313:                                             ; preds = %7312
  %7314 = load i32, ptr @test_count, align 4, !tbaa !5
  %7315 = add nsw i32 %7314, 1
  store i32 %7315, ptr @test_count, align 4, !tbaa !5
  %7316 = load ptr, ptr %156, align 8, !tbaa !9
  %7317 = getelementptr inbounds %struct.s2n_connection, ptr %7316, i32 0, i32 40
  %7318 = load i8, ptr %159, align 1, !tbaa !18
  %7319 = call i32 @s2n_stuffer_write_uint8(ptr noundef %7317, i8 noundef zeroext %7318)
  %7320 = icmp eq i32 %7319, -1
  br i1 %7320, label %7321, label %7374

7321:                                             ; preds = %7313
  br label %7322

7322:                                             ; preds = %7321
  br label %7323

7323:                                             ; preds = %7322
  call void @llvm.lifetime.start.p0(i64 4, ptr %172) #11
  %7324 = call ptr @__errno_location() #12
  %7325 = load i32, ptr %7324, align 4, !tbaa !5
  store i32 %7325, ptr %172, align 4, !tbaa !5
  %7326 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7327 = call i32 @s2n_print_stacktrace(ptr noundef %7326)
  %7328 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7329 = trunc i8 %7328 to i1
  br i1 %7329, label %7330, label %7352

7330:                                             ; preds = %7323
  %7331 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7332 = call i32 @fileno(ptr noundef %7331) #11
  %7333 = call i32 @isatty(i32 noundef %7332) #11
  %7334 = icmp ne i32 %7333, 0
  br i1 %7334, label %7335, label %7352

7335:                                             ; preds = %7330
  %7336 = load i32, ptr %172, align 4, !tbaa !5
  %7337 = call ptr @__errno_location() #12
  store i32 %7336, ptr %7337, align 4, !tbaa !5
  %7338 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7339 = load i32, ptr @test_count, align 4, !tbaa !5
  %7340 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7341 = load i32, ptr %7340, align 4, !tbaa !5
  %7342 = call ptr @s2n_strerror(i32 noundef %7341, ptr noundef @.str.4)
  %7343 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7344 = load i32, ptr %7343, align 4, !tbaa !5
  %7345 = call ptr @s2n_strerror_debug(i32 noundef %7344, ptr noundef @.str.4)
  %7346 = call ptr @__errno_location() #12
  %7347 = load i32, ptr %7346, align 4, !tbaa !5
  %7348 = call ptr @strerror(i32 noundef %7347) #11
  %7349 = call ptr @__errno_location() #12
  %7350 = load i32, ptr %7349, align 4, !tbaa !5
  %7351 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7338, ptr noundef @.str.2, i32 noundef %7339, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 381, ptr noundef %7342, ptr noundef %7345, ptr noundef %7348, i32 noundef %7350) #11
  br label %7369

7352:                                             ; preds = %7330, %7323
  %7353 = load i32, ptr %172, align 4, !tbaa !5
  %7354 = call ptr @__errno_location() #12
  store i32 %7353, ptr %7354, align 4, !tbaa !5
  %7355 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7356 = load i32, ptr @test_count, align 4, !tbaa !5
  %7357 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7358 = load i32, ptr %7357, align 4, !tbaa !5
  %7359 = call ptr @s2n_strerror(i32 noundef %7358, ptr noundef @.str.4)
  %7360 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7361 = load i32, ptr %7360, align 4, !tbaa !5
  %7362 = call ptr @s2n_strerror_debug(i32 noundef %7361, ptr noundef @.str.4)
  %7363 = call ptr @__errno_location() #12
  %7364 = load i32, ptr %7363, align 4, !tbaa !5
  %7365 = call ptr @strerror(i32 noundef %7364) #11
  %7366 = call ptr @__errno_location() #12
  %7367 = load i32, ptr %7366, align 4, !tbaa !5
  %7368 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7355, ptr noundef @.str.5, i32 noundef %7356, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 381, ptr noundef %7359, ptr noundef %7362, ptr noundef %7365, i32 noundef %7367) #11
  br label %7369

7369:                                             ; preds = %7352, %7335
  call void @llvm.lifetime.end.p0(i64 4, ptr %172) #11
  br label %7370

7370:                                             ; preds = %7369
  br label %7371

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

7372:                                             ; No predecessors!
  br label %7373

7373:                                             ; preds = %7372
  br label %7374

7374:                                             ; preds = %7373, %7313
  br label %7375

7375:                                             ; preds = %7374
  br label %7376

7376:                                             ; preds = %7375
  br label %7377

7377:                                             ; preds = %7376
  br label %7378

7378:                                             ; preds = %7377
  br label %7379

7379:                                             ; preds = %7378
  %7380 = load i32, ptr @test_count, align 4, !tbaa !5
  %7381 = add nsw i32 %7380, 1
  store i32 %7381, ptr @test_count, align 4, !tbaa !5
  %7382 = load ptr, ptr %156, align 8, !tbaa !9
  %7383 = call i32 @s2n_connection_ktls_enable_recv(ptr noundef %7382)
  %7384 = icmp eq i32 %7383, -1
  br i1 %7384, label %7438, label %7385

7385:                                             ; preds = %7379
  br label %7386

7386:                                             ; preds = %7385
  br label %7387

7387:                                             ; preds = %7386
  call void @llvm.lifetime.start.p0(i64 4, ptr %173) #11
  %7388 = call ptr @__errno_location() #12
  %7389 = load i32, ptr %7388, align 4, !tbaa !5
  store i32 %7389, ptr %173, align 4, !tbaa !5
  %7390 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7391 = call i32 @s2n_print_stacktrace(ptr noundef %7390)
  %7392 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7393 = trunc i8 %7392 to i1
  br i1 %7393, label %7394, label %7416

7394:                                             ; preds = %7387
  %7395 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7396 = call i32 @fileno(ptr noundef %7395) #11
  %7397 = call i32 @isatty(i32 noundef %7396) #11
  %7398 = icmp ne i32 %7397, 0
  br i1 %7398, label %7399, label %7416

7399:                                             ; preds = %7394
  %7400 = load i32, ptr %173, align 4, !tbaa !5
  %7401 = call ptr @__errno_location() #12
  store i32 %7400, ptr %7401, align 4, !tbaa !5
  %7402 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7403 = load i32, ptr @test_count, align 4, !tbaa !5
  %7404 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7405 = load i32, ptr %7404, align 4, !tbaa !5
  %7406 = call ptr @s2n_strerror(i32 noundef %7405, ptr noundef @.str.4)
  %7407 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7408 = load i32, ptr %7407, align 4, !tbaa !5
  %7409 = call ptr @s2n_strerror_debug(i32 noundef %7408, ptr noundef @.str.4)
  %7410 = call ptr @__errno_location() #12
  %7411 = load i32, ptr %7410, align 4, !tbaa !5
  %7412 = call ptr @strerror(i32 noundef %7411) #11
  %7413 = call ptr @__errno_location() #12
  %7414 = load i32, ptr %7413, align 4, !tbaa !5
  %7415 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7402, ptr noundef @.str.2, i32 noundef %7403, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 382, ptr noundef %7406, ptr noundef %7409, ptr noundef %7412, i32 noundef %7414) #11
  br label %7433

7416:                                             ; preds = %7394, %7387
  %7417 = load i32, ptr %173, align 4, !tbaa !5
  %7418 = call ptr @__errno_location() #12
  store i32 %7417, ptr %7418, align 4, !tbaa !5
  %7419 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7420 = load i32, ptr @test_count, align 4, !tbaa !5
  %7421 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7422 = load i32, ptr %7421, align 4, !tbaa !5
  %7423 = call ptr @s2n_strerror(i32 noundef %7422, ptr noundef @.str.4)
  %7424 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7425 = load i32, ptr %7424, align 4, !tbaa !5
  %7426 = call ptr @s2n_strerror_debug(i32 noundef %7425, ptr noundef @.str.4)
  %7427 = call ptr @__errno_location() #12
  %7428 = load i32, ptr %7427, align 4, !tbaa !5
  %7429 = call ptr @strerror(i32 noundef %7428) #11
  %7430 = call ptr @__errno_location() #12
  %7431 = load i32, ptr %7430, align 4, !tbaa !5
  %7432 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7419, ptr noundef @.str.5, i32 noundef %7420, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 382, ptr noundef %7423, ptr noundef %7426, ptr noundef %7429, i32 noundef %7431) #11
  br label %7433

7433:                                             ; preds = %7416, %7399
  call void @llvm.lifetime.end.p0(i64 4, ptr %173) #11
  br label %7434

7434:                                             ; preds = %7433
  br label %7435

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

7436:                                             ; No predecessors!
  br label %7437

7437:                                             ; preds = %7436
  br label %7438

7438:                                             ; preds = %7437, %7379
  br label %7439

7439:                                             ; preds = %7438
  br label %7440

7440:                                             ; preds = %7439
  br label %7441

7441:                                             ; preds = %7440
  %7442 = load i32, ptr @test_count, align 4, !tbaa !5
  %7443 = add nsw i32 %7442, 1
  store i32 %7443, ptr @test_count, align 4, !tbaa !5
  %7444 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7445 = load i32, ptr %7444, align 4, !tbaa !5
  %7446 = icmp eq i32 %7445, 335544392
  br i1 %7446, label %7500, label %7447

7447:                                             ; preds = %7441
  br label %7448

7448:                                             ; preds = %7447
  br label %7449

7449:                                             ; preds = %7448
  call void @llvm.lifetime.start.p0(i64 4, ptr %174) #11
  %7450 = call ptr @__errno_location() #12
  %7451 = load i32, ptr %7450, align 4, !tbaa !5
  store i32 %7451, ptr %174, align 4, !tbaa !5
  %7452 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7453 = call i32 @s2n_print_stacktrace(ptr noundef %7452)
  %7454 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7455 = trunc i8 %7454 to i1
  br i1 %7455, label %7456, label %7478

7456:                                             ; preds = %7449
  %7457 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7458 = call i32 @fileno(ptr noundef %7457) #11
  %7459 = call i32 @isatty(i32 noundef %7458) #11
  %7460 = icmp ne i32 %7459, 0
  br i1 %7460, label %7461, label %7478

7461:                                             ; preds = %7456
  %7462 = load i32, ptr %174, align 4, !tbaa !5
  %7463 = call ptr @__errno_location() #12
  store i32 %7462, ptr %7463, align 4, !tbaa !5
  %7464 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7465 = load i32, ptr @test_count, align 4, !tbaa !5
  %7466 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7467 = load i32, ptr %7466, align 4, !tbaa !5
  %7468 = call ptr @s2n_strerror(i32 noundef %7467, ptr noundef @.str.4)
  %7469 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7470 = load i32, ptr %7469, align 4, !tbaa !5
  %7471 = call ptr @s2n_strerror_debug(i32 noundef %7470, ptr noundef @.str.4)
  %7472 = call ptr @__errno_location() #12
  %7473 = load i32, ptr %7472, align 4, !tbaa !5
  %7474 = call ptr @strerror(i32 noundef %7473) #11
  %7475 = call ptr @__errno_location() #12
  %7476 = load i32, ptr %7475, align 4, !tbaa !5
  %7477 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7464, ptr noundef @.str.2, i32 noundef %7465, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 382, ptr noundef %7468, ptr noundef %7471, ptr noundef %7474, i32 noundef %7476) #11
  br label %7495

7478:                                             ; preds = %7456, %7449
  %7479 = load i32, ptr %174, align 4, !tbaa !5
  %7480 = call ptr @__errno_location() #12
  store i32 %7479, ptr %7480, align 4, !tbaa !5
  %7481 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7482 = load i32, ptr @test_count, align 4, !tbaa !5
  %7483 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7484 = load i32, ptr %7483, align 4, !tbaa !5
  %7485 = call ptr @s2n_strerror(i32 noundef %7484, ptr noundef @.str.4)
  %7486 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7487 = load i32, ptr %7486, align 4, !tbaa !5
  %7488 = call ptr @s2n_strerror_debug(i32 noundef %7487, ptr noundef @.str.4)
  %7489 = call ptr @__errno_location() #12
  %7490 = load i32, ptr %7489, align 4, !tbaa !5
  %7491 = call ptr @strerror(i32 noundef %7490) #11
  %7492 = call ptr @__errno_location() #12
  %7493 = load i32, ptr %7492, align 4, !tbaa !5
  %7494 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7481, ptr noundef @.str.5, i32 noundef %7482, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 382, ptr noundef %7485, ptr noundef %7488, ptr noundef %7491, i32 noundef %7493) #11
  br label %7495

7495:                                             ; preds = %7478, %7461
  call void @llvm.lifetime.end.p0(i64 4, ptr %174) #11
  br label %7496

7496:                                             ; preds = %7495
  br label %7497

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

7498:                                             ; No predecessors!
  br label %7499

7499:                                             ; preds = %7498
  br label %7500

7500:                                             ; preds = %7499, %7441
  br label %7501

7501:                                             ; preds = %7500
  br label %7502

7502:                                             ; preds = %7501
  br label %7503

7503:                                             ; preds = %7502
  %7504 = load i32, ptr @test_count, align 4, !tbaa !5
  %7505 = add nsw i32 %7504, 1
  store i32 %7505, ptr @test_count, align 4, !tbaa !5
  %7506 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7507 = load i32, ptr %7506, align 4, !tbaa !5
  %7508 = call ptr @s2n_strerror_debug(i32 noundef %7507, ptr noundef @.str.4)
  %7509 = icmp eq ptr %7508, null
  br i1 %7509, label %7510, label %7563

7510:                                             ; preds = %7503
  br label %7511

7511:                                             ; preds = %7510
  br label %7512

7512:                                             ; preds = %7511
  call void @llvm.lifetime.start.p0(i64 4, ptr %175) #11
  %7513 = call ptr @__errno_location() #12
  %7514 = load i32, ptr %7513, align 4, !tbaa !5
  store i32 %7514, ptr %175, align 4, !tbaa !5
  %7515 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7516 = call i32 @s2n_print_stacktrace(ptr noundef %7515)
  %7517 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7518 = trunc i8 %7517 to i1
  br i1 %7518, label %7519, label %7541

7519:                                             ; preds = %7512
  %7520 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7521 = call i32 @fileno(ptr noundef %7520) #11
  %7522 = call i32 @isatty(i32 noundef %7521) #11
  %7523 = icmp ne i32 %7522, 0
  br i1 %7523, label %7524, label %7541

7524:                                             ; preds = %7519
  %7525 = load i32, ptr %175, align 4, !tbaa !5
  %7526 = call ptr @__errno_location() #12
  store i32 %7525, ptr %7526, align 4, !tbaa !5
  %7527 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7528 = load i32, ptr @test_count, align 4, !tbaa !5
  %7529 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7530 = load i32, ptr %7529, align 4, !tbaa !5
  %7531 = call ptr @s2n_strerror(i32 noundef %7530, ptr noundef @.str.4)
  %7532 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7533 = load i32, ptr %7532, align 4, !tbaa !5
  %7534 = call ptr @s2n_strerror_debug(i32 noundef %7533, ptr noundef @.str.4)
  %7535 = call ptr @__errno_location() #12
  %7536 = load i32, ptr %7535, align 4, !tbaa !5
  %7537 = call ptr @strerror(i32 noundef %7536) #11
  %7538 = call ptr @__errno_location() #12
  %7539 = load i32, ptr %7538, align 4, !tbaa !5
  %7540 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7527, ptr noundef @.str.2, i32 noundef %7528, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 382, ptr noundef %7531, ptr noundef %7534, ptr noundef %7537, i32 noundef %7539) #11
  br label %7558

7541:                                             ; preds = %7519, %7512
  %7542 = load i32, ptr %175, align 4, !tbaa !5
  %7543 = call ptr @__errno_location() #12
  store i32 %7542, ptr %7543, align 4, !tbaa !5
  %7544 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7545 = load i32, ptr @test_count, align 4, !tbaa !5
  %7546 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7547 = load i32, ptr %7546, align 4, !tbaa !5
  %7548 = call ptr @s2n_strerror(i32 noundef %7547, ptr noundef @.str.4)
  %7549 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7550 = load i32, ptr %7549, align 4, !tbaa !5
  %7551 = call ptr @s2n_strerror_debug(i32 noundef %7550, ptr noundef @.str.4)
  %7552 = call ptr @__errno_location() #12
  %7553 = load i32, ptr %7552, align 4, !tbaa !5
  %7554 = call ptr @strerror(i32 noundef %7553) #11
  %7555 = call ptr @__errno_location() #12
  %7556 = load i32, ptr %7555, align 4, !tbaa !5
  %7557 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7544, ptr noundef @.str.5, i32 noundef %7545, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 382, ptr noundef %7548, ptr noundef %7551, ptr noundef %7554, i32 noundef %7556) #11
  br label %7558

7558:                                             ; preds = %7541, %7524
  call void @llvm.lifetime.end.p0(i64 4, ptr %175) #11
  br label %7559

7559:                                             ; preds = %7558
  br label %7560

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

7561:                                             ; No predecessors!
  br label %7562

7562:                                             ; preds = %7561
  br label %7563

7563:                                             ; preds = %7562, %7503
  br label %7564

7564:                                             ; preds = %7563
  br label %7565

7565:                                             ; preds = %7564
  br label %7566

7566:                                             ; preds = %7565
  br label %7567

7567:                                             ; preds = %7566
  br label %7568

7568:                                             ; preds = %7567
  %7569 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %7569, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %7570 = call ptr @__errno_location() #12
  store i32 0, ptr %7570, align 4, !tbaa !5
  br label %7571

7571:                                             ; preds = %7568
  br label %7572

7572:                                             ; preds = %7571
  br label %7573

7573:                                             ; preds = %7572
  br label %7574

7574:                                             ; preds = %7573
  br label %7575

7575:                                             ; preds = %7574
  %7576 = load i32, ptr @test_count, align 4, !tbaa !5
  %7577 = add nsw i32 %7576, 1
  store i32 %7577, ptr @test_count, align 4, !tbaa !5
  %7578 = load ptr, ptr %156, align 8, !tbaa !9
  %7579 = getelementptr inbounds %struct.s2n_connection, ptr %7578, i32 0, i32 40
  %7580 = call i32 @s2n_stuffer_read_uint8(ptr noundef %7579, ptr noundef %160)
  %7581 = icmp eq i32 %7580, -1
  br i1 %7581, label %7582, label %7635

7582:                                             ; preds = %7575
  br label %7583

7583:                                             ; preds = %7582
  br label %7584

7584:                                             ; preds = %7583
  call void @llvm.lifetime.start.p0(i64 4, ptr %176) #11
  %7585 = call ptr @__errno_location() #12
  %7586 = load i32, ptr %7585, align 4, !tbaa !5
  store i32 %7586, ptr %176, align 4, !tbaa !5
  %7587 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7588 = call i32 @s2n_print_stacktrace(ptr noundef %7587)
  %7589 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7590 = trunc i8 %7589 to i1
  br i1 %7590, label %7591, label %7613

7591:                                             ; preds = %7584
  %7592 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7593 = call i32 @fileno(ptr noundef %7592) #11
  %7594 = call i32 @isatty(i32 noundef %7593) #11
  %7595 = icmp ne i32 %7594, 0
  br i1 %7595, label %7596, label %7613

7596:                                             ; preds = %7591
  %7597 = load i32, ptr %176, align 4, !tbaa !5
  %7598 = call ptr @__errno_location() #12
  store i32 %7597, ptr %7598, align 4, !tbaa !5
  %7599 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7600 = load i32, ptr @test_count, align 4, !tbaa !5
  %7601 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7602 = load i32, ptr %7601, align 4, !tbaa !5
  %7603 = call ptr @s2n_strerror(i32 noundef %7602, ptr noundef @.str.4)
  %7604 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7605 = load i32, ptr %7604, align 4, !tbaa !5
  %7606 = call ptr @s2n_strerror_debug(i32 noundef %7605, ptr noundef @.str.4)
  %7607 = call ptr @__errno_location() #12
  %7608 = load i32, ptr %7607, align 4, !tbaa !5
  %7609 = call ptr @strerror(i32 noundef %7608) #11
  %7610 = call ptr @__errno_location() #12
  %7611 = load i32, ptr %7610, align 4, !tbaa !5
  %7612 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7599, ptr noundef @.str.2, i32 noundef %7600, ptr noundef @.str.64, ptr noundef @.str.1, i32 noundef 383, ptr noundef %7603, ptr noundef %7606, ptr noundef %7609, i32 noundef %7611) #11
  br label %7630

7613:                                             ; preds = %7591, %7584
  %7614 = load i32, ptr %176, align 4, !tbaa !5
  %7615 = call ptr @__errno_location() #12
  store i32 %7614, ptr %7615, align 4, !tbaa !5
  %7616 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7617 = load i32, ptr @test_count, align 4, !tbaa !5
  %7618 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7619 = load i32, ptr %7618, align 4, !tbaa !5
  %7620 = call ptr @s2n_strerror(i32 noundef %7619, ptr noundef @.str.4)
  %7621 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7622 = load i32, ptr %7621, align 4, !tbaa !5
  %7623 = call ptr @s2n_strerror_debug(i32 noundef %7622, ptr noundef @.str.4)
  %7624 = call ptr @__errno_location() #12
  %7625 = load i32, ptr %7624, align 4, !tbaa !5
  %7626 = call ptr @strerror(i32 noundef %7625) #11
  %7627 = call ptr @__errno_location() #12
  %7628 = load i32, ptr %7627, align 4, !tbaa !5
  %7629 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7616, ptr noundef @.str.5, i32 noundef %7617, ptr noundef @.str.64, ptr noundef @.str.1, i32 noundef 383, ptr noundef %7620, ptr noundef %7623, ptr noundef %7626, i32 noundef %7628) #11
  br label %7630

7630:                                             ; preds = %7613, %7596
  call void @llvm.lifetime.end.p0(i64 4, ptr %176) #11
  br label %7631

7631:                                             ; preds = %7630
  br label %7632

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

7633:                                             ; No predecessors!
  br label %7634

7634:                                             ; preds = %7633
  br label %7635

7635:                                             ; preds = %7634, %7575
  br label %7636

7636:                                             ; preds = %7635
  br label %7637

7637:                                             ; preds = %7636
  br label %7638

7638:                                             ; preds = %7637
  %7639 = load i32, ptr @test_count, align 4, !tbaa !5
  %7640 = add nsw i32 %7639, 1
  store i32 %7640, ptr @test_count, align 4, !tbaa !5
  %7641 = load ptr, ptr %156, align 8, !tbaa !9
  %7642 = getelementptr inbounds %struct.s2n_connection, ptr %7641, i32 0, i32 38
  %7643 = getelementptr inbounds %struct.s2n_stuffer, ptr %7642, i32 0, i32 2
  %7644 = load i32, ptr %7643, align 4, !tbaa !66
  %7645 = load ptr, ptr %156, align 8, !tbaa !9
  %7646 = getelementptr inbounds %struct.s2n_connection, ptr %7645, i32 0, i32 38
  %7647 = getelementptr inbounds %struct.s2n_stuffer, ptr %7646, i32 0, i32 1
  %7648 = load i32, ptr %7647, align 8, !tbaa !67
  %7649 = sub i32 %7644, %7648
  %7650 = icmp eq i32 %7649, 0
  br i1 %7650, label %7704, label %7651

7651:                                             ; preds = %7638
  br label %7652

7652:                                             ; preds = %7651
  br label %7653

7653:                                             ; preds = %7652
  call void @llvm.lifetime.start.p0(i64 4, ptr %177) #11
  %7654 = call ptr @__errno_location() #12
  %7655 = load i32, ptr %7654, align 4, !tbaa !5
  store i32 %7655, ptr %177, align 4, !tbaa !5
  %7656 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7657 = call i32 @s2n_print_stacktrace(ptr noundef %7656)
  %7658 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7659 = trunc i8 %7658 to i1
  br i1 %7659, label %7660, label %7682

7660:                                             ; preds = %7653
  %7661 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7662 = call i32 @fileno(ptr noundef %7661) #11
  %7663 = call i32 @isatty(i32 noundef %7662) #11
  %7664 = icmp ne i32 %7663, 0
  br i1 %7664, label %7665, label %7682

7665:                                             ; preds = %7660
  %7666 = load i32, ptr %177, align 4, !tbaa !5
  %7667 = call ptr @__errno_location() #12
  store i32 %7666, ptr %7667, align 4, !tbaa !5
  %7668 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7669 = load i32, ptr @test_count, align 4, !tbaa !5
  %7670 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7671 = load i32, ptr %7670, align 4, !tbaa !5
  %7672 = call ptr @s2n_strerror(i32 noundef %7671, ptr noundef @.str.4)
  %7673 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7674 = load i32, ptr %7673, align 4, !tbaa !5
  %7675 = call ptr @s2n_strerror_debug(i32 noundef %7674, ptr noundef @.str.4)
  %7676 = call ptr @__errno_location() #12
  %7677 = load i32, ptr %7676, align 4, !tbaa !5
  %7678 = call ptr @strerror(i32 noundef %7677) #11
  %7679 = call ptr @__errno_location() #12
  %7680 = load i32, ptr %7679, align 4, !tbaa !5
  %7681 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7668, ptr noundef @.str.2, i32 noundef %7669, ptr noundef @.str.65, ptr noundef @.str.1, i32 noundef 385, ptr noundef %7672, ptr noundef %7675, ptr noundef %7678, i32 noundef %7680) #11
  br label %7699

7682:                                             ; preds = %7660, %7653
  %7683 = load i32, ptr %177, align 4, !tbaa !5
  %7684 = call ptr @__errno_location() #12
  store i32 %7683, ptr %7684, align 4, !tbaa !5
  %7685 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7686 = load i32, ptr @test_count, align 4, !tbaa !5
  %7687 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7688 = load i32, ptr %7687, align 4, !tbaa !5
  %7689 = call ptr @s2n_strerror(i32 noundef %7688, ptr noundef @.str.4)
  %7690 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7691 = load i32, ptr %7690, align 4, !tbaa !5
  %7692 = call ptr @s2n_strerror_debug(i32 noundef %7691, ptr noundef @.str.4)
  %7693 = call ptr @__errno_location() #12
  %7694 = load i32, ptr %7693, align 4, !tbaa !5
  %7695 = call ptr @strerror(i32 noundef %7694) #11
  %7696 = call ptr @__errno_location() #12
  %7697 = load i32, ptr %7696, align 4, !tbaa !5
  %7698 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7685, ptr noundef @.str.5, i32 noundef %7686, ptr noundef @.str.65, ptr noundef @.str.1, i32 noundef 385, ptr noundef %7689, ptr noundef %7692, ptr noundef %7695, i32 noundef %7697) #11
  br label %7699

7699:                                             ; preds = %7682, %7665
  call void @llvm.lifetime.end.p0(i64 4, ptr %177) #11
  br label %7700

7700:                                             ; preds = %7699
  br label %7701

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

7702:                                             ; No predecessors!
  br label %7703

7703:                                             ; preds = %7702
  br label %7704

7704:                                             ; preds = %7703, %7638
  br label %7705

7705:                                             ; preds = %7704
  br label %7706

7706:                                             ; preds = %7705
  br label %7707

7707:                                             ; preds = %7706
  %7708 = load i32, ptr @test_count, align 4, !tbaa !5
  %7709 = add nsw i32 %7708, 1
  store i32 %7709, ptr @test_count, align 4, !tbaa !5
  %7710 = load ptr, ptr %156, align 8, !tbaa !9
  %7711 = getelementptr inbounds %struct.s2n_connection, ptr %7710, i32 0, i32 40
  %7712 = getelementptr inbounds %struct.s2n_stuffer, ptr %7711, i32 0, i32 2
  %7713 = load i32, ptr %7712, align 4, !tbaa !68
  %7714 = load ptr, ptr %156, align 8, !tbaa !9
  %7715 = getelementptr inbounds %struct.s2n_connection, ptr %7714, i32 0, i32 40
  %7716 = getelementptr inbounds %struct.s2n_stuffer, ptr %7715, i32 0, i32 1
  %7717 = load i32, ptr %7716, align 8, !tbaa !69
  %7718 = sub i32 %7713, %7717
  %7719 = icmp eq i32 %7718, 0
  br i1 %7719, label %7773, label %7720

7720:                                             ; preds = %7707
  br label %7721

7721:                                             ; preds = %7720
  br label %7722

7722:                                             ; preds = %7721
  call void @llvm.lifetime.start.p0(i64 4, ptr %178) #11
  %7723 = call ptr @__errno_location() #12
  %7724 = load i32, ptr %7723, align 4, !tbaa !5
  store i32 %7724, ptr %178, align 4, !tbaa !5
  %7725 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7726 = call i32 @s2n_print_stacktrace(ptr noundef %7725)
  %7727 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7728 = trunc i8 %7727 to i1
  br i1 %7728, label %7729, label %7751

7729:                                             ; preds = %7722
  %7730 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7731 = call i32 @fileno(ptr noundef %7730) #11
  %7732 = call i32 @isatty(i32 noundef %7731) #11
  %7733 = icmp ne i32 %7732, 0
  br i1 %7733, label %7734, label %7751

7734:                                             ; preds = %7729
  %7735 = load i32, ptr %178, align 4, !tbaa !5
  %7736 = call ptr @__errno_location() #12
  store i32 %7735, ptr %7736, align 4, !tbaa !5
  %7737 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7738 = load i32, ptr @test_count, align 4, !tbaa !5
  %7739 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7740 = load i32, ptr %7739, align 4, !tbaa !5
  %7741 = call ptr @s2n_strerror(i32 noundef %7740, ptr noundef @.str.4)
  %7742 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7743 = load i32, ptr %7742, align 4, !tbaa !5
  %7744 = call ptr @s2n_strerror_debug(i32 noundef %7743, ptr noundef @.str.4)
  %7745 = call ptr @__errno_location() #12
  %7746 = load i32, ptr %7745, align 4, !tbaa !5
  %7747 = call ptr @strerror(i32 noundef %7746) #11
  %7748 = call ptr @__errno_location() #12
  %7749 = load i32, ptr %7748, align 4, !tbaa !5
  %7750 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7737, ptr noundef @.str.2, i32 noundef %7738, ptr noundef @.str.66, ptr noundef @.str.1, i32 noundef 386, ptr noundef %7741, ptr noundef %7744, ptr noundef %7747, i32 noundef %7749) #11
  br label %7768

7751:                                             ; preds = %7729, %7722
  %7752 = load i32, ptr %178, align 4, !tbaa !5
  %7753 = call ptr @__errno_location() #12
  store i32 %7752, ptr %7753, align 4, !tbaa !5
  %7754 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7755 = load i32, ptr @test_count, align 4, !tbaa !5
  %7756 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7757 = load i32, ptr %7756, align 4, !tbaa !5
  %7758 = call ptr @s2n_strerror(i32 noundef %7757, ptr noundef @.str.4)
  %7759 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7760 = load i32, ptr %7759, align 4, !tbaa !5
  %7761 = call ptr @s2n_strerror_debug(i32 noundef %7760, ptr noundef @.str.4)
  %7762 = call ptr @__errno_location() #12
  %7763 = load i32, ptr %7762, align 4, !tbaa !5
  %7764 = call ptr @strerror(i32 noundef %7763) #11
  %7765 = call ptr @__errno_location() #12
  %7766 = load i32, ptr %7765, align 4, !tbaa !5
  %7767 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7754, ptr noundef @.str.5, i32 noundef %7755, ptr noundef @.str.66, ptr noundef @.str.1, i32 noundef 386, ptr noundef %7758, ptr noundef %7761, ptr noundef %7764, i32 noundef %7766) #11
  br label %7768

7768:                                             ; preds = %7751, %7734
  call void @llvm.lifetime.end.p0(i64 4, ptr %178) #11
  br label %7769

7769:                                             ; preds = %7768
  br label %7770

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

7771:                                             ; No predecessors!
  br label %7772

7772:                                             ; preds = %7771
  br label %7773

7773:                                             ; preds = %7772, %7707
  br label %7774

7774:                                             ; preds = %7773
  br label %7775

7775:                                             ; preds = %7774
  br label %7776

7776:                                             ; preds = %7775
  %7777 = load i32, ptr @test_count, align 4, !tbaa !5
  %7778 = add nsw i32 %7777, 1
  store i32 %7778, ptr @test_count, align 4, !tbaa !5
  %7779 = load ptr, ptr %156, align 8, !tbaa !9
  %7780 = call i32 @s2n_connection_ktls_enable_recv(ptr noundef %7779)
  %7781 = icmp eq i32 %7780, -1
  br i1 %7781, label %7782, label %7835

7782:                                             ; preds = %7776
  br label %7783

7783:                                             ; preds = %7782
  br label %7784

7784:                                             ; preds = %7783
  call void @llvm.lifetime.start.p0(i64 4, ptr %179) #11
  %7785 = call ptr @__errno_location() #12
  %7786 = load i32, ptr %7785, align 4, !tbaa !5
  store i32 %7786, ptr %179, align 4, !tbaa !5
  %7787 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7788 = call i32 @s2n_print_stacktrace(ptr noundef %7787)
  %7789 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7790 = trunc i8 %7789 to i1
  br i1 %7790, label %7791, label %7813

7791:                                             ; preds = %7784
  %7792 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7793 = call i32 @fileno(ptr noundef %7792) #11
  %7794 = call i32 @isatty(i32 noundef %7793) #11
  %7795 = icmp ne i32 %7794, 0
  br i1 %7795, label %7796, label %7813

7796:                                             ; preds = %7791
  %7797 = load i32, ptr %179, align 4, !tbaa !5
  %7798 = call ptr @__errno_location() #12
  store i32 %7797, ptr %7798, align 4, !tbaa !5
  %7799 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7800 = load i32, ptr @test_count, align 4, !tbaa !5
  %7801 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7802 = load i32, ptr %7801, align 4, !tbaa !5
  %7803 = call ptr @s2n_strerror(i32 noundef %7802, ptr noundef @.str.4)
  %7804 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7805 = load i32, ptr %7804, align 4, !tbaa !5
  %7806 = call ptr @s2n_strerror_debug(i32 noundef %7805, ptr noundef @.str.4)
  %7807 = call ptr @__errno_location() #12
  %7808 = load i32, ptr %7807, align 4, !tbaa !5
  %7809 = call ptr @strerror(i32 noundef %7808) #11
  %7810 = call ptr @__errno_location() #12
  %7811 = load i32, ptr %7810, align 4, !tbaa !5
  %7812 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7799, ptr noundef @.str.2, i32 noundef %7800, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 387, ptr noundef %7803, ptr noundef %7806, ptr noundef %7809, i32 noundef %7811) #11
  br label %7830

7813:                                             ; preds = %7791, %7784
  %7814 = load i32, ptr %179, align 4, !tbaa !5
  %7815 = call ptr @__errno_location() #12
  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.4)
  %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.4)
  %7824 = call ptr @__errno_location() #12
  %7825 = load i32, ptr %7824, align 4, !tbaa !5
  %7826 = call ptr @strerror(i32 noundef %7825) #11
  %7827 = call ptr @__errno_location() #12
  %7828 = load i32, ptr %7827, align 4, !tbaa !5
  %7829 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7816, ptr noundef @.str.5, i32 noundef %7817, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 387, ptr noundef %7820, ptr noundef %7823, ptr noundef %7826, i32 noundef %7828) #11
  br label %7830

7830:                                             ; preds = %7813, %7796
  call void @llvm.lifetime.end.p0(i64 4, ptr %179) #11
  br label %7831

7831:                                             ; preds = %7830
  br label %7832

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

7833:                                             ; No predecessors!
  br label %7834

7834:                                             ; preds = %7833
  br label %7835

7835:                                             ; preds = %7834, %7776
  br label %7836

7836:                                             ; preds = %7835
  br label %7837

7837:                                             ; preds = %7836
  call void @llvm.lifetime.end.p0(i64 1, ptr %160) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %159) #11
  %7838 = call i32 @s2n_connection_ptr_free(ptr noundef %156)
  %7839 = getelementptr inbounds %struct.s2n_result, ptr %180, i32 0, i32 0
  store i32 %7838, ptr %7839, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %156) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %181) #11
  %7840 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %7840, ptr %181, align 8, !tbaa !9
  br label %7841

7841:                                             ; preds = %7837
  %7842 = load i32, ptr @test_count, align 4, !tbaa !5
  %7843 = add nsw i32 %7842, 1
  store i32 %7843, ptr @test_count, align 4, !tbaa !5
  %7844 = load ptr, ptr %181, align 8, !tbaa !9
  %7845 = call i32 @s2n_test_configure_connection_for_ktls(ptr noundef %7844)
  %7846 = getelementptr inbounds %struct.s2n_result, ptr %182, i32 0, i32 0
  store i32 %7845, ptr %7846, align 4
  %7847 = getelementptr inbounds %struct.s2n_result, ptr %182, i32 0, i32 0
  %7848 = load i32, ptr %7847, align 4
  %7849 = call zeroext i1 @s2n_result_is_ok(i32 %7848)
  br i1 %7849, label %7903, label %7850

7850:                                             ; preds = %7841
  br label %7851

7851:                                             ; preds = %7850
  br label %7852

7852:                                             ; preds = %7851
  call void @llvm.lifetime.start.p0(i64 4, ptr %183) #11
  %7853 = call ptr @__errno_location() #12
  %7854 = load i32, ptr %7853, align 4, !tbaa !5
  store i32 %7854, ptr %183, align 4, !tbaa !5
  %7855 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7856 = call i32 @s2n_print_stacktrace(ptr noundef %7855)
  %7857 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7858 = trunc i8 %7857 to i1
  br i1 %7858, label %7859, label %7881

7859:                                             ; preds = %7852
  %7860 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7861 = call i32 @fileno(ptr noundef %7860) #11
  %7862 = call i32 @isatty(i32 noundef %7861) #11
  %7863 = icmp ne i32 %7862, 0
  br i1 %7863, label %7864, label %7881

7864:                                             ; preds = %7859
  %7865 = load i32, ptr %183, align 4, !tbaa !5
  %7866 = call ptr @__errno_location() #12
  store i32 %7865, ptr %7866, align 4, !tbaa !5
  %7867 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7868 = load i32, ptr @test_count, align 4, !tbaa !5
  %7869 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7870 = load i32, ptr %7869, align 4, !tbaa !5
  %7871 = call ptr @s2n_strerror(i32 noundef %7870, ptr noundef @.str.4)
  %7872 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7873 = load i32, ptr %7872, align 4, !tbaa !5
  %7874 = call ptr @s2n_strerror_debug(i32 noundef %7873, ptr noundef @.str.4)
  %7875 = call ptr @__errno_location() #12
  %7876 = load i32, ptr %7875, align 4, !tbaa !5
  %7877 = call ptr @strerror(i32 noundef %7876) #11
  %7878 = call ptr @__errno_location() #12
  %7879 = load i32, ptr %7878, align 4, !tbaa !5
  %7880 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7867, ptr noundef @.str.2, i32 noundef %7868, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 396, ptr noundef %7871, ptr noundef %7874, ptr noundef %7877, i32 noundef %7879) #11
  br label %7898

7881:                                             ; preds = %7859, %7852
  %7882 = load i32, ptr %183, align 4, !tbaa !5
  %7883 = call ptr @__errno_location() #12
  store i32 %7882, ptr %7883, align 4, !tbaa !5
  %7884 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7885 = load i32, ptr @test_count, align 4, !tbaa !5
  %7886 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7887 = load i32, ptr %7886, align 4, !tbaa !5
  %7888 = call ptr @s2n_strerror(i32 noundef %7887, ptr noundef @.str.4)
  %7889 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7890 = load i32, ptr %7889, align 4, !tbaa !5
  %7891 = call ptr @s2n_strerror_debug(i32 noundef %7890, ptr noundef @.str.4)
  %7892 = call ptr @__errno_location() #12
  %7893 = load i32, ptr %7892, align 4, !tbaa !5
  %7894 = call ptr @strerror(i32 noundef %7893) #11
  %7895 = call ptr @__errno_location() #12
  %7896 = load i32, ptr %7895, align 4, !tbaa !5
  %7897 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7884, ptr noundef @.str.5, i32 noundef %7885, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 396, ptr noundef %7888, ptr noundef %7891, ptr noundef %7894, i32 noundef %7896) #11
  br label %7898

7898:                                             ; preds = %7881, %7864
  call void @llvm.lifetime.end.p0(i64 4, ptr %183) #11
  br label %7899

7899:                                             ; preds = %7898
  br label %7900

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

7901:                                             ; No predecessors!
  br label %7902

7902:                                             ; preds = %7901
  br label %7903

7903:                                             ; preds = %7902, %7841
  br label %7904

7904:                                             ; preds = %7903
  br label %7905

7905:                                             ; preds = %7904
  br label %7906

7906:                                             ; preds = %7905
  %7907 = load i32, ptr @test_count, align 4, !tbaa !5
  %7908 = add nsw i32 %7907, 1
  store i32 %7908, ptr @test_count, align 4, !tbaa !5
  %7909 = load ptr, ptr %181, align 8, !tbaa !9
  %7910 = getelementptr inbounds %struct.s2n_connection, ptr %7909, i32 0, i32 39
  %7911 = call i32 @s2n_stuffer_write_uint8(ptr noundef %7910, i8 noundef zeroext 1)
  %7912 = icmp eq i32 %7911, -1
  br i1 %7912, label %7913, label %7966

7913:                                             ; preds = %7906
  br label %7914

7914:                                             ; preds = %7913
  br label %7915

7915:                                             ; preds = %7914
  call void @llvm.lifetime.start.p0(i64 4, ptr %184) #11
  %7916 = call ptr @__errno_location() #12
  %7917 = load i32, ptr %7916, align 4, !tbaa !5
  store i32 %7917, ptr %184, align 4, !tbaa !5
  %7918 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7919 = call i32 @s2n_print_stacktrace(ptr noundef %7918)
  %7920 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7921 = trunc i8 %7920 to i1
  br i1 %7921, label %7922, label %7944

7922:                                             ; preds = %7915
  %7923 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7924 = call i32 @fileno(ptr noundef %7923) #11
  %7925 = call i32 @isatty(i32 noundef %7924) #11
  %7926 = icmp ne i32 %7925, 0
  br i1 %7926, label %7927, label %7944

7927:                                             ; preds = %7922
  %7928 = load i32, ptr %184, align 4, !tbaa !5
  %7929 = call ptr @__errno_location() #12
  store i32 %7928, ptr %7929, align 4, !tbaa !5
  %7930 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7931 = load i32, ptr @test_count, align 4, !tbaa !5
  %7932 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7933 = load i32, ptr %7932, align 4, !tbaa !5
  %7934 = call ptr @s2n_strerror(i32 noundef %7933, ptr noundef @.str.4)
  %7935 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7936 = load i32, ptr %7935, align 4, !tbaa !5
  %7937 = call ptr @s2n_strerror_debug(i32 noundef %7936, ptr noundef @.str.4)
  %7938 = call ptr @__errno_location() #12
  %7939 = load i32, ptr %7938, align 4, !tbaa !5
  %7940 = call ptr @strerror(i32 noundef %7939) #11
  %7941 = call ptr @__errno_location() #12
  %7942 = load i32, ptr %7941, align 4, !tbaa !5
  %7943 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7930, ptr noundef @.str.2, i32 noundef %7931, ptr noundef @.str.67, ptr noundef @.str.1, i32 noundef 398, ptr noundef %7934, ptr noundef %7937, ptr noundef %7940, i32 noundef %7942) #11
  br label %7961

7944:                                             ; preds = %7922, %7915
  %7945 = load i32, ptr %184, align 4, !tbaa !5
  %7946 = call ptr @__errno_location() #12
  store i32 %7945, ptr %7946, align 4, !tbaa !5
  %7947 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7948 = load i32, ptr @test_count, align 4, !tbaa !5
  %7949 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7950 = load i32, ptr %7949, align 4, !tbaa !5
  %7951 = call ptr @s2n_strerror(i32 noundef %7950, ptr noundef @.str.4)
  %7952 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7953 = load i32, ptr %7952, align 4, !tbaa !5
  %7954 = call ptr @s2n_strerror_debug(i32 noundef %7953, ptr noundef @.str.4)
  %7955 = call ptr @__errno_location() #12
  %7956 = load i32, ptr %7955, align 4, !tbaa !5
  %7957 = call ptr @strerror(i32 noundef %7956) #11
  %7958 = call ptr @__errno_location() #12
  %7959 = load i32, ptr %7958, align 4, !tbaa !5
  %7960 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7947, ptr noundef @.str.5, i32 noundef %7948, ptr noundef @.str.67, ptr noundef @.str.1, i32 noundef 398, ptr noundef %7951, ptr noundef %7954, ptr noundef %7957, i32 noundef %7959) #11
  br label %7961

7961:                                             ; preds = %7944, %7927
  call void @llvm.lifetime.end.p0(i64 4, ptr %184) #11
  br label %7962

7962:                                             ; preds = %7961
  br label %7963

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

7964:                                             ; No predecessors!
  br label %7965

7965:                                             ; preds = %7964
  br label %7966

7966:                                             ; preds = %7965, %7906
  br label %7967

7967:                                             ; preds = %7966
  br label %7968

7968:                                             ; preds = %7967
  br label %7969

7969:                                             ; preds = %7968
  br label %7970

7970:                                             ; preds = %7969
  br label %7971

7971:                                             ; preds = %7970
  %7972 = load i32, ptr @test_count, align 4, !tbaa !5
  %7973 = add nsw i32 %7972, 1
  store i32 %7973, ptr @test_count, align 4, !tbaa !5
  %7974 = load ptr, ptr %181, align 8, !tbaa !9
  %7975 = call i32 @s2n_connection_ktls_enable_recv(ptr noundef %7974)
  %7976 = icmp eq i32 %7975, -1
  br i1 %7976, label %8030, label %7977

7977:                                             ; preds = %7971
  br label %7978

7978:                                             ; preds = %7977
  br label %7979

7979:                                             ; preds = %7978
  call void @llvm.lifetime.start.p0(i64 4, ptr %185) #11
  %7980 = call ptr @__errno_location() #12
  %7981 = load i32, ptr %7980, align 4, !tbaa !5
  store i32 %7981, ptr %185, align 4, !tbaa !5
  %7982 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7983 = call i32 @s2n_print_stacktrace(ptr noundef %7982)
  %7984 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7985 = trunc i8 %7984 to i1
  br i1 %7985, label %7986, label %8008

7986:                                             ; preds = %7979
  %7987 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7988 = call i32 @fileno(ptr noundef %7987) #11
  %7989 = call i32 @isatty(i32 noundef %7988) #11
  %7990 = icmp ne i32 %7989, 0
  br i1 %7990, label %7991, label %8008

7991:                                             ; preds = %7986
  %7992 = load i32, ptr %185, align 4, !tbaa !5
  %7993 = call ptr @__errno_location() #12
  store i32 %7992, ptr %7993, align 4, !tbaa !5
  %7994 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7995 = load i32, ptr @test_count, align 4, !tbaa !5
  %7996 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7997 = load i32, ptr %7996, align 4, !tbaa !5
  %7998 = call ptr @s2n_strerror(i32 noundef %7997, ptr noundef @.str.4)
  %7999 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8000 = load i32, ptr %7999, align 4, !tbaa !5
  %8001 = call ptr @s2n_strerror_debug(i32 noundef %8000, ptr noundef @.str.4)
  %8002 = call ptr @__errno_location() #12
  %8003 = load i32, ptr %8002, align 4, !tbaa !5
  %8004 = call ptr @strerror(i32 noundef %8003) #11
  %8005 = call ptr @__errno_location() #12
  %8006 = load i32, ptr %8005, align 4, !tbaa !5
  %8007 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7994, ptr noundef @.str.2, i32 noundef %7995, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 400, ptr noundef %7998, ptr noundef %8001, ptr noundef %8004, i32 noundef %8006) #11
  br label %8025

8008:                                             ; preds = %7986, %7979
  %8009 = load i32, ptr %185, align 4, !tbaa !5
  %8010 = call ptr @__errno_location() #12
  store i32 %8009, ptr %8010, align 4, !tbaa !5
  %8011 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8012 = load i32, ptr @test_count, align 4, !tbaa !5
  %8013 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8014 = load i32, ptr %8013, align 4, !tbaa !5
  %8015 = call ptr @s2n_strerror(i32 noundef %8014, ptr noundef @.str.4)
  %8016 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8017 = load i32, ptr %8016, align 4, !tbaa !5
  %8018 = call ptr @s2n_strerror_debug(i32 noundef %8017, ptr noundef @.str.4)
  %8019 = call ptr @__errno_location() #12
  %8020 = load i32, ptr %8019, align 4, !tbaa !5
  %8021 = call ptr @strerror(i32 noundef %8020) #11
  %8022 = call ptr @__errno_location() #12
  %8023 = load i32, ptr %8022, align 4, !tbaa !5
  %8024 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8011, ptr noundef @.str.5, i32 noundef %8012, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 400, ptr noundef %8015, ptr noundef %8018, ptr noundef %8021, i32 noundef %8023) #11
  br label %8025

8025:                                             ; preds = %8008, %7991
  call void @llvm.lifetime.end.p0(i64 4, ptr %185) #11
  br label %8026

8026:                                             ; preds = %8025
  br label %8027

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

8028:                                             ; No predecessors!
  br label %8029

8029:                                             ; preds = %8028
  br label %8030

8030:                                             ; preds = %8029, %7971
  br label %8031

8031:                                             ; preds = %8030
  br label %8032

8032:                                             ; preds = %8031
  br label %8033

8033:                                             ; preds = %8032
  %8034 = load i32, ptr @test_count, align 4, !tbaa !5
  %8035 = add nsw i32 %8034, 1
  store i32 %8035, ptr @test_count, align 4, !tbaa !5
  %8036 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8037 = load i32, ptr %8036, align 4, !tbaa !5
  %8038 = icmp eq i32 %8037, 469762127
  br i1 %8038, label %8092, label %8039

8039:                                             ; preds = %8033
  br label %8040

8040:                                             ; preds = %8039
  br label %8041

8041:                                             ; preds = %8040
  call void @llvm.lifetime.start.p0(i64 4, ptr %186) #11
  %8042 = call ptr @__errno_location() #12
  %8043 = load i32, ptr %8042, align 4, !tbaa !5
  store i32 %8043, ptr %186, align 4, !tbaa !5
  %8044 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8045 = call i32 @s2n_print_stacktrace(ptr noundef %8044)
  %8046 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8047 = trunc i8 %8046 to i1
  br i1 %8047, label %8048, label %8070

8048:                                             ; preds = %8041
  %8049 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8050 = call i32 @fileno(ptr noundef %8049) #11
  %8051 = call i32 @isatty(i32 noundef %8050) #11
  %8052 = icmp ne i32 %8051, 0
  br i1 %8052, label %8053, label %8070

8053:                                             ; preds = %8048
  %8054 = load i32, ptr %186, align 4, !tbaa !5
  %8055 = call ptr @__errno_location() #12
  store i32 %8054, ptr %8055, align 4, !tbaa !5
  %8056 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8057 = load i32, ptr @test_count, align 4, !tbaa !5
  %8058 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8059 = load i32, ptr %8058, align 4, !tbaa !5
  %8060 = call ptr @s2n_strerror(i32 noundef %8059, ptr noundef @.str.4)
  %8061 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8062 = load i32, ptr %8061, align 4, !tbaa !5
  %8063 = call ptr @s2n_strerror_debug(i32 noundef %8062, ptr noundef @.str.4)
  %8064 = call ptr @__errno_location() #12
  %8065 = load i32, ptr %8064, align 4, !tbaa !5
  %8066 = call ptr @strerror(i32 noundef %8065) #11
  %8067 = call ptr @__errno_location() #12
  %8068 = load i32, ptr %8067, align 4, !tbaa !5
  %8069 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8056, ptr noundef @.str.2, i32 noundef %8057, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 400, ptr noundef %8060, ptr noundef %8063, ptr noundef %8066, i32 noundef %8068) #11
  br label %8087

8070:                                             ; preds = %8048, %8041
  %8071 = load i32, ptr %186, align 4, !tbaa !5
  %8072 = call ptr @__errno_location() #12
  store i32 %8071, ptr %8072, align 4, !tbaa !5
  %8073 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8074 = load i32, ptr @test_count, align 4, !tbaa !5
  %8075 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8076 = load i32, ptr %8075, align 4, !tbaa !5
  %8077 = call ptr @s2n_strerror(i32 noundef %8076, ptr noundef @.str.4)
  %8078 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8079 = load i32, ptr %8078, align 4, !tbaa !5
  %8080 = call ptr @s2n_strerror_debug(i32 noundef %8079, ptr noundef @.str.4)
  %8081 = call ptr @__errno_location() #12
  %8082 = load i32, ptr %8081, align 4, !tbaa !5
  %8083 = call ptr @strerror(i32 noundef %8082) #11
  %8084 = call ptr @__errno_location() #12
  %8085 = load i32, ptr %8084, align 4, !tbaa !5
  %8086 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8073, ptr noundef @.str.5, i32 noundef %8074, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 400, ptr noundef %8077, ptr noundef %8080, ptr noundef %8083, i32 noundef %8085) #11
  br label %8087

8087:                                             ; preds = %8070, %8053
  call void @llvm.lifetime.end.p0(i64 4, ptr %186) #11
  br label %8088

8088:                                             ; preds = %8087
  br label %8089

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

8090:                                             ; No predecessors!
  br label %8091

8091:                                             ; preds = %8090
  br label %8092

8092:                                             ; preds = %8091, %8033
  br label %8093

8093:                                             ; preds = %8092
  br label %8094

8094:                                             ; preds = %8093
  br label %8095

8095:                                             ; preds = %8094
  %8096 = load i32, ptr @test_count, align 4, !tbaa !5
  %8097 = add nsw i32 %8096, 1
  store i32 %8097, ptr @test_count, align 4, !tbaa !5
  %8098 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8099 = load i32, ptr %8098, align 4, !tbaa !5
  %8100 = call ptr @s2n_strerror_debug(i32 noundef %8099, ptr noundef @.str.4)
  %8101 = icmp eq ptr %8100, null
  br i1 %8101, label %8102, label %8155

8102:                                             ; preds = %8095
  br label %8103

8103:                                             ; preds = %8102
  br label %8104

8104:                                             ; preds = %8103
  call void @llvm.lifetime.start.p0(i64 4, ptr %187) #11
  %8105 = call ptr @__errno_location() #12
  %8106 = load i32, ptr %8105, align 4, !tbaa !5
  store i32 %8106, ptr %187, align 4, !tbaa !5
  %8107 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8108 = call i32 @s2n_print_stacktrace(ptr noundef %8107)
  %8109 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8110 = trunc i8 %8109 to i1
  br i1 %8110, label %8111, label %8133

8111:                                             ; preds = %8104
  %8112 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8113 = call i32 @fileno(ptr noundef %8112) #11
  %8114 = call i32 @isatty(i32 noundef %8113) #11
  %8115 = icmp ne i32 %8114, 0
  br i1 %8115, label %8116, label %8133

8116:                                             ; preds = %8111
  %8117 = load i32, ptr %187, align 4, !tbaa !5
  %8118 = call ptr @__errno_location() #12
  store i32 %8117, ptr %8118, align 4, !tbaa !5
  %8119 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8120 = load i32, ptr @test_count, align 4, !tbaa !5
  %8121 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8122 = load i32, ptr %8121, align 4, !tbaa !5
  %8123 = call ptr @s2n_strerror(i32 noundef %8122, ptr noundef @.str.4)
  %8124 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8125 = load i32, ptr %8124, align 4, !tbaa !5
  %8126 = call ptr @s2n_strerror_debug(i32 noundef %8125, ptr noundef @.str.4)
  %8127 = call ptr @__errno_location() #12
  %8128 = load i32, ptr %8127, align 4, !tbaa !5
  %8129 = call ptr @strerror(i32 noundef %8128) #11
  %8130 = call ptr @__errno_location() #12
  %8131 = load i32, ptr %8130, align 4, !tbaa !5
  %8132 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8119, ptr noundef @.str.2, i32 noundef %8120, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 400, ptr noundef %8123, ptr noundef %8126, ptr noundef %8129, i32 noundef %8131) #11
  br label %8150

8133:                                             ; preds = %8111, %8104
  %8134 = load i32, ptr %187, align 4, !tbaa !5
  %8135 = call ptr @__errno_location() #12
  store i32 %8134, ptr %8135, align 4, !tbaa !5
  %8136 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8137 = load i32, ptr @test_count, align 4, !tbaa !5
  %8138 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8139 = load i32, ptr %8138, align 4, !tbaa !5
  %8140 = call ptr @s2n_strerror(i32 noundef %8139, ptr noundef @.str.4)
  %8141 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8142 = load i32, ptr %8141, align 4, !tbaa !5
  %8143 = call ptr @s2n_strerror_debug(i32 noundef %8142, ptr noundef @.str.4)
  %8144 = call ptr @__errno_location() #12
  %8145 = load i32, ptr %8144, align 4, !tbaa !5
  %8146 = call ptr @strerror(i32 noundef %8145) #11
  %8147 = call ptr @__errno_location() #12
  %8148 = load i32, ptr %8147, align 4, !tbaa !5
  %8149 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8136, ptr noundef @.str.5, i32 noundef %8137, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 400, ptr noundef %8140, ptr noundef %8143, ptr noundef %8146, i32 noundef %8148) #11
  br label %8150

8150:                                             ; preds = %8133, %8116
  call void @llvm.lifetime.end.p0(i64 4, ptr %187) #11
  br label %8151

8151:                                             ; preds = %8150
  br label %8152

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

8153:                                             ; No predecessors!
  br label %8154

8154:                                             ; preds = %8153
  br label %8155

8155:                                             ; preds = %8154, %8095
  br label %8156

8156:                                             ; preds = %8155
  br label %8157

8157:                                             ; preds = %8156
  br label %8158

8158:                                             ; preds = %8157
  br label %8159

8159:                                             ; preds = %8158
  br label %8160

8160:                                             ; preds = %8159
  %8161 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %8161, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %8162 = call ptr @__errno_location() #12
  store i32 0, ptr %8162, align 4, !tbaa !5
  br label %8163

8163:                                             ; preds = %8160
  br label %8164

8164:                                             ; preds = %8163
  br label %8165

8165:                                             ; preds = %8164
  br label %8166

8166:                                             ; preds = %8165
  br label %8167

8167:                                             ; preds = %8166
  %8168 = load i32, ptr @test_count, align 4, !tbaa !5
  %8169 = add nsw i32 %8168, 1
  store i32 %8169, ptr @test_count, align 4, !tbaa !5
  %8170 = load ptr, ptr %181, align 8, !tbaa !9
  %8171 = getelementptr inbounds %struct.s2n_connection, ptr %8170, i32 0, i32 39
  %8172 = call i32 @s2n_stuffer_skip_read(ptr noundef %8171, i32 noundef 1)
  %8173 = icmp eq i32 %8172, -1
  br i1 %8173, label %8174, label %8227

8174:                                             ; preds = %8167
  br label %8175

8175:                                             ; preds = %8174
  br label %8176

8176:                                             ; preds = %8175
  call void @llvm.lifetime.start.p0(i64 4, ptr %188) #11
  %8177 = call ptr @__errno_location() #12
  %8178 = load i32, ptr %8177, align 4, !tbaa !5
  store i32 %8178, ptr %188, align 4, !tbaa !5
  %8179 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8180 = call i32 @s2n_print_stacktrace(ptr noundef %8179)
  %8181 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8182 = trunc i8 %8181 to i1
  br i1 %8182, label %8183, label %8205

8183:                                             ; preds = %8176
  %8184 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8185 = call i32 @fileno(ptr noundef %8184) #11
  %8186 = call i32 @isatty(i32 noundef %8185) #11
  %8187 = icmp ne i32 %8186, 0
  br i1 %8187, label %8188, label %8205

8188:                                             ; preds = %8183
  %8189 = load i32, ptr %188, align 4, !tbaa !5
  %8190 = call ptr @__errno_location() #12
  store i32 %8189, ptr %8190, align 4, !tbaa !5
  %8191 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8192 = load i32, ptr @test_count, align 4, !tbaa !5
  %8193 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8194 = load i32, ptr %8193, align 4, !tbaa !5
  %8195 = call ptr @s2n_strerror(i32 noundef %8194, ptr noundef @.str.4)
  %8196 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8197 = load i32, ptr %8196, align 4, !tbaa !5
  %8198 = call ptr @s2n_strerror_debug(i32 noundef %8197, ptr noundef @.str.4)
  %8199 = call ptr @__errno_location() #12
  %8200 = load i32, ptr %8199, align 4, !tbaa !5
  %8201 = call ptr @strerror(i32 noundef %8200) #11
  %8202 = call ptr @__errno_location() #12
  %8203 = load i32, ptr %8202, align 4, !tbaa !5
  %8204 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8191, ptr noundef @.str.2, i32 noundef %8192, ptr noundef @.str.68, ptr noundef @.str.1, i32 noundef 402, ptr noundef %8195, ptr noundef %8198, ptr noundef %8201, i32 noundef %8203) #11
  br label %8222

8205:                                             ; preds = %8183, %8176
  %8206 = load i32, ptr %188, align 4, !tbaa !5
  %8207 = call ptr @__errno_location() #12
  store i32 %8206, ptr %8207, align 4, !tbaa !5
  %8208 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8209 = load i32, ptr @test_count, align 4, !tbaa !5
  %8210 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8211 = load i32, ptr %8210, align 4, !tbaa !5
  %8212 = call ptr @s2n_strerror(i32 noundef %8211, ptr noundef @.str.4)
  %8213 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8214 = load i32, ptr %8213, align 4, !tbaa !5
  %8215 = call ptr @s2n_strerror_debug(i32 noundef %8214, ptr noundef @.str.4)
  %8216 = call ptr @__errno_location() #12
  %8217 = load i32, ptr %8216, align 4, !tbaa !5
  %8218 = call ptr @strerror(i32 noundef %8217) #11
  %8219 = call ptr @__errno_location() #12
  %8220 = load i32, ptr %8219, align 4, !tbaa !5
  %8221 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8208, ptr noundef @.str.5, i32 noundef %8209, ptr noundef @.str.68, ptr noundef @.str.1, i32 noundef 402, ptr noundef %8212, ptr noundef %8215, ptr noundef %8218, i32 noundef %8220) #11
  br label %8222

8222:                                             ; preds = %8205, %8188
  call void @llvm.lifetime.end.p0(i64 4, ptr %188) #11
  br label %8223

8223:                                             ; preds = %8222
  br label %8224

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

8225:                                             ; No predecessors!
  br label %8226

8226:                                             ; preds = %8225
  br label %8227

8227:                                             ; preds = %8226, %8167
  br label %8228

8228:                                             ; preds = %8227
  br label %8229

8229:                                             ; preds = %8228
  br label %8230

8230:                                             ; preds = %8229
  %8231 = load i32, ptr @test_count, align 4, !tbaa !5
  %8232 = add nsw i32 %8231, 1
  store i32 %8232, ptr @test_count, align 4, !tbaa !5
  %8233 = load ptr, ptr %181, align 8, !tbaa !9
  %8234 = call i32 @s2n_connection_ktls_enable_recv(ptr noundef %8233)
  %8235 = icmp eq i32 %8234, -1
  br i1 %8235, label %8236, label %8289

8236:                                             ; preds = %8230
  br label %8237

8237:                                             ; preds = %8236
  br label %8238

8238:                                             ; preds = %8237
  call void @llvm.lifetime.start.p0(i64 4, ptr %189) #11
  %8239 = call ptr @__errno_location() #12
  %8240 = load i32, ptr %8239, align 4, !tbaa !5
  store i32 %8240, ptr %189, align 4, !tbaa !5
  %8241 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8242 = call i32 @s2n_print_stacktrace(ptr noundef %8241)
  %8243 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8244 = trunc i8 %8243 to i1
  br i1 %8244, label %8245, label %8267

8245:                                             ; preds = %8238
  %8246 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8247 = call i32 @fileno(ptr noundef %8246) #11
  %8248 = call i32 @isatty(i32 noundef %8247) #11
  %8249 = icmp ne i32 %8248, 0
  br i1 %8249, label %8250, label %8267

8250:                                             ; preds = %8245
  %8251 = load i32, ptr %189, align 4, !tbaa !5
  %8252 = call ptr @__errno_location() #12
  store i32 %8251, ptr %8252, align 4, !tbaa !5
  %8253 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8254 = load i32, ptr @test_count, align 4, !tbaa !5
  %8255 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8256 = load i32, ptr %8255, align 4, !tbaa !5
  %8257 = call ptr @s2n_strerror(i32 noundef %8256, ptr noundef @.str.4)
  %8258 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8259 = load i32, ptr %8258, align 4, !tbaa !5
  %8260 = call ptr @s2n_strerror_debug(i32 noundef %8259, ptr noundef @.str.4)
  %8261 = call ptr @__errno_location() #12
  %8262 = load i32, ptr %8261, align 4, !tbaa !5
  %8263 = call ptr @strerror(i32 noundef %8262) #11
  %8264 = call ptr @__errno_location() #12
  %8265 = load i32, ptr %8264, align 4, !tbaa !5
  %8266 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8253, ptr noundef @.str.2, i32 noundef %8254, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 403, ptr noundef %8257, ptr noundef %8260, ptr noundef %8263, i32 noundef %8265) #11
  br label %8284

8267:                                             ; preds = %8245, %8238
  %8268 = load i32, ptr %189, align 4, !tbaa !5
  %8269 = call ptr @__errno_location() #12
  store i32 %8268, ptr %8269, align 4, !tbaa !5
  %8270 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8271 = load i32, ptr @test_count, align 4, !tbaa !5
  %8272 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8273 = load i32, ptr %8272, align 4, !tbaa !5
  %8274 = call ptr @s2n_strerror(i32 noundef %8273, ptr noundef @.str.4)
  %8275 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8276 = load i32, ptr %8275, align 4, !tbaa !5
  %8277 = call ptr @s2n_strerror_debug(i32 noundef %8276, ptr noundef @.str.4)
  %8278 = call ptr @__errno_location() #12
  %8279 = load i32, ptr %8278, align 4, !tbaa !5
  %8280 = call ptr @strerror(i32 noundef %8279) #11
  %8281 = call ptr @__errno_location() #12
  %8282 = load i32, ptr %8281, align 4, !tbaa !5
  %8283 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8270, ptr noundef @.str.5, i32 noundef %8271, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 403, ptr noundef %8274, ptr noundef %8277, ptr noundef %8280, i32 noundef %8282) #11
  br label %8284

8284:                                             ; preds = %8267, %8250
  call void @llvm.lifetime.end.p0(i64 4, ptr %189) #11
  br label %8285

8285:                                             ; preds = %8284
  br label %8286

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

8287:                                             ; No predecessors!
  br label %8288

8288:                                             ; preds = %8287
  br label %8289

8289:                                             ; preds = %8288, %8230
  br label %8290

8290:                                             ; preds = %8289
  br label %8291

8291:                                             ; preds = %8290
  %8292 = call i32 @s2n_connection_ptr_free(ptr noundef %181)
  %8293 = getelementptr inbounds %struct.s2n_result, ptr %190, i32 0, i32 0
  store i32 %8292, ptr %8293, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %181) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %191) #11
  %8294 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %8294, ptr %191, align 8, !tbaa !9
  br label %8295

8295:                                             ; preds = %8291
  %8296 = load i32, ptr @test_count, align 4, !tbaa !5
  %8297 = add nsw i32 %8296, 1
  store i32 %8297, ptr @test_count, align 4, !tbaa !5
  %8298 = load ptr, ptr %191, align 8, !tbaa !9
  %8299 = call i32 @s2n_test_configure_connection_for_ktls(ptr noundef %8298)
  %8300 = getelementptr inbounds %struct.s2n_result, ptr %192, i32 0, i32 0
  store i32 %8299, ptr %8300, align 4
  %8301 = getelementptr inbounds %struct.s2n_result, ptr %192, i32 0, i32 0
  %8302 = load i32, ptr %8301, align 4
  %8303 = call zeroext i1 @s2n_result_is_ok(i32 %8302)
  br i1 %8303, label %8357, label %8304

8304:                                             ; preds = %8295
  br label %8305

8305:                                             ; preds = %8304
  br label %8306

8306:                                             ; preds = %8305
  call void @llvm.lifetime.start.p0(i64 4, ptr %193) #11
  %8307 = call ptr @__errno_location() #12
  %8308 = load i32, ptr %8307, align 4, !tbaa !5
  store i32 %8308, ptr %193, align 4, !tbaa !5
  %8309 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8310 = call i32 @s2n_print_stacktrace(ptr noundef %8309)
  %8311 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8312 = trunc i8 %8311 to i1
  br i1 %8312, label %8313, label %8335

8313:                                             ; preds = %8306
  %8314 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8315 = call i32 @fileno(ptr noundef %8314) #11
  %8316 = call i32 @isatty(i32 noundef %8315) #11
  %8317 = icmp ne i32 %8316, 0
  br i1 %8317, label %8318, label %8335

8318:                                             ; preds = %8313
  %8319 = load i32, ptr %193, align 4, !tbaa !5
  %8320 = call ptr @__errno_location() #12
  store i32 %8319, ptr %8320, align 4, !tbaa !5
  %8321 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8322 = load i32, ptr @test_count, align 4, !tbaa !5
  %8323 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8324 = load i32, ptr %8323, align 4, !tbaa !5
  %8325 = call ptr @s2n_strerror(i32 noundef %8324, ptr noundef @.str.4)
  %8326 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8327 = load i32, ptr %8326, align 4, !tbaa !5
  %8328 = call ptr @s2n_strerror_debug(i32 noundef %8327, ptr noundef @.str.4)
  %8329 = call ptr @__errno_location() #12
  %8330 = load i32, ptr %8329, align 4, !tbaa !5
  %8331 = call ptr @strerror(i32 noundef %8330) #11
  %8332 = call ptr @__errno_location() #12
  %8333 = load i32, ptr %8332, align 4, !tbaa !5
  %8334 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8321, ptr noundef @.str.2, i32 noundef %8322, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 410, ptr noundef %8325, ptr noundef %8328, ptr noundef %8331, i32 noundef %8333) #11
  br label %8352

8335:                                             ; preds = %8313, %8306
  %8336 = load i32, ptr %193, align 4, !tbaa !5
  %8337 = call ptr @__errno_location() #12
  store i32 %8336, ptr %8337, align 4, !tbaa !5
  %8338 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8339 = load i32, ptr @test_count, align 4, !tbaa !5
  %8340 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8341 = load i32, ptr %8340, align 4, !tbaa !5
  %8342 = call ptr @s2n_strerror(i32 noundef %8341, ptr noundef @.str.4)
  %8343 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8344 = load i32, ptr %8343, align 4, !tbaa !5
  %8345 = call ptr @s2n_strerror_debug(i32 noundef %8344, ptr noundef @.str.4)
  %8346 = call ptr @__errno_location() #12
  %8347 = load i32, ptr %8346, align 4, !tbaa !5
  %8348 = call ptr @strerror(i32 noundef %8347) #11
  %8349 = call ptr @__errno_location() #12
  %8350 = load i32, ptr %8349, align 4, !tbaa !5
  %8351 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8338, ptr noundef @.str.5, i32 noundef %8339, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 410, ptr noundef %8342, ptr noundef %8345, ptr noundef %8348, i32 noundef %8350) #11
  br label %8352

8352:                                             ; preds = %8335, %8318
  call void @llvm.lifetime.end.p0(i64 4, ptr %193) #11
  br label %8353

8353:                                             ; preds = %8352
  br label %8354

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

8355:                                             ; No predecessors!
  br label %8356

8356:                                             ; preds = %8355
  br label %8357

8357:                                             ; preds = %8356, %8295
  br label %8358

8358:                                             ; preds = %8357
  br label %8359

8359:                                             ; preds = %8358
  %8360 = load ptr, ptr %191, align 8, !tbaa !9
  %8361 = load i32, ptr %8360, align 8
  %8362 = and i32 %8361, -257
  %8363 = or i32 %8362, 0
  store i32 %8363, ptr %8360, align 8
  br label %8364

8364:                                             ; preds = %8359
  br label %8365

8365:                                             ; preds = %8364
  br label %8366

8366:                                             ; preds = %8365
  %8367 = load i32, ptr @test_count, align 4, !tbaa !5
  %8368 = add nsw i32 %8367, 1
  store i32 %8368, ptr @test_count, align 4, !tbaa !5
  %8369 = load ptr, ptr %191, align 8, !tbaa !9
  %8370 = call i32 @s2n_connection_ktls_enable_send(ptr noundef %8369)
  %8371 = icmp eq i32 %8370, -1
  br i1 %8371, label %8425, label %8372

8372:                                             ; preds = %8366
  br label %8373

8373:                                             ; preds = %8372
  br label %8374

8374:                                             ; preds = %8373
  call void @llvm.lifetime.start.p0(i64 4, ptr %194) #11
  %8375 = call ptr @__errno_location() #12
  %8376 = load i32, ptr %8375, align 4, !tbaa !5
  store i32 %8376, ptr %194, align 4, !tbaa !5
  %8377 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8378 = call i32 @s2n_print_stacktrace(ptr noundef %8377)
  %8379 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8380 = trunc i8 %8379 to i1
  br i1 %8380, label %8381, label %8403

8381:                                             ; preds = %8374
  %8382 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8383 = call i32 @fileno(ptr noundef %8382) #11
  %8384 = call i32 @isatty(i32 noundef %8383) #11
  %8385 = icmp ne i32 %8384, 0
  br i1 %8385, label %8386, label %8403

8386:                                             ; preds = %8381
  %8387 = load i32, ptr %194, align 4, !tbaa !5
  %8388 = call ptr @__errno_location() #12
  store i32 %8387, ptr %8388, align 4, !tbaa !5
  %8389 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8390 = load i32, ptr @test_count, align 4, !tbaa !5
  %8391 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8392 = load i32, ptr %8391, align 4, !tbaa !5
  %8393 = call ptr @s2n_strerror(i32 noundef %8392, ptr noundef @.str.4)
  %8394 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8395 = load i32, ptr %8394, align 4, !tbaa !5
  %8396 = call ptr @s2n_strerror_debug(i32 noundef %8395, ptr noundef @.str.4)
  %8397 = call ptr @__errno_location() #12
  %8398 = load i32, ptr %8397, align 4, !tbaa !5
  %8399 = call ptr @strerror(i32 noundef %8398) #11
  %8400 = call ptr @__errno_location() #12
  %8401 = load i32, ptr %8400, align 4, !tbaa !5
  %8402 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8389, ptr noundef @.str.2, i32 noundef %8390, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 414, ptr noundef %8393, ptr noundef %8396, ptr noundef %8399, i32 noundef %8401) #11
  br label %8420

8403:                                             ; preds = %8381, %8374
  %8404 = load i32, ptr %194, align 4, !tbaa !5
  %8405 = call ptr @__errno_location() #12
  store i32 %8404, ptr %8405, align 4, !tbaa !5
  %8406 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8407 = load i32, ptr @test_count, align 4, !tbaa !5
  %8408 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8409 = load i32, ptr %8408, align 4, !tbaa !5
  %8410 = call ptr @s2n_strerror(i32 noundef %8409, ptr noundef @.str.4)
  %8411 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8412 = load i32, ptr %8411, align 4, !tbaa !5
  %8413 = call ptr @s2n_strerror_debug(i32 noundef %8412, ptr noundef @.str.4)
  %8414 = call ptr @__errno_location() #12
  %8415 = load i32, ptr %8414, align 4, !tbaa !5
  %8416 = call ptr @strerror(i32 noundef %8415) #11
  %8417 = call ptr @__errno_location() #12
  %8418 = load i32, ptr %8417, align 4, !tbaa !5
  %8419 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8406, ptr noundef @.str.5, i32 noundef %8407, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 414, ptr noundef %8410, ptr noundef %8413, ptr noundef %8416, i32 noundef %8418) #11
  br label %8420

8420:                                             ; preds = %8403, %8386
  call void @llvm.lifetime.end.p0(i64 4, ptr %194) #11
  br label %8421

8421:                                             ; preds = %8420
  br label %8422

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

8423:                                             ; No predecessors!
  br label %8424

8424:                                             ; preds = %8423
  br label %8425

8425:                                             ; preds = %8424, %8366
  br label %8426

8426:                                             ; preds = %8425
  br label %8427

8427:                                             ; preds = %8426
  br label %8428

8428:                                             ; preds = %8427
  %8429 = load i32, ptr @test_count, align 4, !tbaa !5
  %8430 = add nsw i32 %8429, 1
  store i32 %8430, ptr @test_count, align 4, !tbaa !5
  %8431 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8432 = load i32, ptr %8431, align 4, !tbaa !5
  %8433 = icmp eq i32 %8432, 469762125
  br i1 %8433, label %8487, label %8434

8434:                                             ; preds = %8428
  br label %8435

8435:                                             ; preds = %8434
  br label %8436

8436:                                             ; preds = %8435
  call void @llvm.lifetime.start.p0(i64 4, ptr %195) #11
  %8437 = call ptr @__errno_location() #12
  %8438 = load i32, ptr %8437, align 4, !tbaa !5
  store i32 %8438, ptr %195, align 4, !tbaa !5
  %8439 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8440 = call i32 @s2n_print_stacktrace(ptr noundef %8439)
  %8441 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8442 = trunc i8 %8441 to i1
  br i1 %8442, label %8443, label %8465

8443:                                             ; preds = %8436
  %8444 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8445 = call i32 @fileno(ptr noundef %8444) #11
  %8446 = call i32 @isatty(i32 noundef %8445) #11
  %8447 = icmp ne i32 %8446, 0
  br i1 %8447, label %8448, label %8465

8448:                                             ; preds = %8443
  %8449 = load i32, ptr %195, align 4, !tbaa !5
  %8450 = call ptr @__errno_location() #12
  store i32 %8449, ptr %8450, align 4, !tbaa !5
  %8451 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8452 = load i32, ptr @test_count, align 4, !tbaa !5
  %8453 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8454 = load i32, ptr %8453, align 4, !tbaa !5
  %8455 = call ptr @s2n_strerror(i32 noundef %8454, ptr noundef @.str.4)
  %8456 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8457 = load i32, ptr %8456, align 4, !tbaa !5
  %8458 = call ptr @s2n_strerror_debug(i32 noundef %8457, ptr noundef @.str.4)
  %8459 = call ptr @__errno_location() #12
  %8460 = load i32, ptr %8459, align 4, !tbaa !5
  %8461 = call ptr @strerror(i32 noundef %8460) #11
  %8462 = call ptr @__errno_location() #12
  %8463 = load i32, ptr %8462, align 4, !tbaa !5
  %8464 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8451, ptr noundef @.str.2, i32 noundef %8452, ptr noundef @.str.69, ptr noundef @.str.1, i32 noundef 414, ptr noundef %8455, ptr noundef %8458, ptr noundef %8461, i32 noundef %8463) #11
  br label %8482

8465:                                             ; preds = %8443, %8436
  %8466 = load i32, ptr %195, align 4, !tbaa !5
  %8467 = call ptr @__errno_location() #12
  store i32 %8466, ptr %8467, align 4, !tbaa !5
  %8468 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8469 = load i32, ptr @test_count, align 4, !tbaa !5
  %8470 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8471 = load i32, ptr %8470, align 4, !tbaa !5
  %8472 = call ptr @s2n_strerror(i32 noundef %8471, ptr noundef @.str.4)
  %8473 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8474 = load i32, ptr %8473, align 4, !tbaa !5
  %8475 = call ptr @s2n_strerror_debug(i32 noundef %8474, ptr noundef @.str.4)
  %8476 = call ptr @__errno_location() #12
  %8477 = load i32, ptr %8476, align 4, !tbaa !5
  %8478 = call ptr @strerror(i32 noundef %8477) #11
  %8479 = call ptr @__errno_location() #12
  %8480 = load i32, ptr %8479, align 4, !tbaa !5
  %8481 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8468, ptr noundef @.str.5, i32 noundef %8469, ptr noundef @.str.69, ptr noundef @.str.1, i32 noundef 414, ptr noundef %8472, ptr noundef %8475, ptr noundef %8478, i32 noundef %8480) #11
  br label %8482

8482:                                             ; preds = %8465, %8448
  call void @llvm.lifetime.end.p0(i64 4, ptr %195) #11
  br label %8483

8483:                                             ; preds = %8482
  br label %8484

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

8485:                                             ; No predecessors!
  br label %8486

8486:                                             ; preds = %8485
  br label %8487

8487:                                             ; preds = %8486, %8428
  br label %8488

8488:                                             ; preds = %8487
  br label %8489

8489:                                             ; preds = %8488
  br label %8490

8490:                                             ; preds = %8489
  %8491 = load i32, ptr @test_count, align 4, !tbaa !5
  %8492 = add nsw i32 %8491, 1
  store i32 %8492, ptr @test_count, align 4, !tbaa !5
  %8493 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8494 = load i32, ptr %8493, align 4, !tbaa !5
  %8495 = call ptr @s2n_strerror_debug(i32 noundef %8494, ptr noundef @.str.4)
  %8496 = icmp eq ptr %8495, null
  br i1 %8496, label %8497, label %8550

8497:                                             ; preds = %8490
  br label %8498

8498:                                             ; preds = %8497
  br label %8499

8499:                                             ; preds = %8498
  call void @llvm.lifetime.start.p0(i64 4, ptr %196) #11
  %8500 = call ptr @__errno_location() #12
  %8501 = load i32, ptr %8500, align 4, !tbaa !5
  store i32 %8501, ptr %196, align 4, !tbaa !5
  %8502 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8503 = call i32 @s2n_print_stacktrace(ptr noundef %8502)
  %8504 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8505 = trunc i8 %8504 to i1
  br i1 %8505, label %8506, label %8528

8506:                                             ; preds = %8499
  %8507 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8508 = call i32 @fileno(ptr noundef %8507) #11
  %8509 = call i32 @isatty(i32 noundef %8508) #11
  %8510 = icmp ne i32 %8509, 0
  br i1 %8510, label %8511, label %8528

8511:                                             ; preds = %8506
  %8512 = load i32, ptr %196, align 4, !tbaa !5
  %8513 = call ptr @__errno_location() #12
  store i32 %8512, ptr %8513, align 4, !tbaa !5
  %8514 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8515 = load i32, ptr @test_count, align 4, !tbaa !5
  %8516 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8517 = load i32, ptr %8516, align 4, !tbaa !5
  %8518 = call ptr @s2n_strerror(i32 noundef %8517, ptr noundef @.str.4)
  %8519 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8520 = load i32, ptr %8519, align 4, !tbaa !5
  %8521 = call ptr @s2n_strerror_debug(i32 noundef %8520, ptr noundef @.str.4)
  %8522 = call ptr @__errno_location() #12
  %8523 = load i32, ptr %8522, align 4, !tbaa !5
  %8524 = call ptr @strerror(i32 noundef %8523) #11
  %8525 = call ptr @__errno_location() #12
  %8526 = load i32, ptr %8525, align 4, !tbaa !5
  %8527 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8514, ptr noundef @.str.2, i32 noundef %8515, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 414, ptr noundef %8518, ptr noundef %8521, ptr noundef %8524, i32 noundef %8526) #11
  br label %8545

8528:                                             ; preds = %8506, %8499
  %8529 = load i32, ptr %196, align 4, !tbaa !5
  %8530 = call ptr @__errno_location() #12
  store i32 %8529, ptr %8530, align 4, !tbaa !5
  %8531 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8532 = load i32, ptr @test_count, align 4, !tbaa !5
  %8533 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8534 = load i32, ptr %8533, align 4, !tbaa !5
  %8535 = call ptr @s2n_strerror(i32 noundef %8534, ptr noundef @.str.4)
  %8536 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8537 = load i32, ptr %8536, align 4, !tbaa !5
  %8538 = call ptr @s2n_strerror_debug(i32 noundef %8537, ptr noundef @.str.4)
  %8539 = call ptr @__errno_location() #12
  %8540 = load i32, ptr %8539, align 4, !tbaa !5
  %8541 = call ptr @strerror(i32 noundef %8540) #11
  %8542 = call ptr @__errno_location() #12
  %8543 = load i32, ptr %8542, align 4, !tbaa !5
  %8544 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8531, ptr noundef @.str.5, i32 noundef %8532, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 414, ptr noundef %8535, ptr noundef %8538, ptr noundef %8541, i32 noundef %8543) #11
  br label %8545

8545:                                             ; preds = %8528, %8511
  call void @llvm.lifetime.end.p0(i64 4, ptr %196) #11
  br label %8546

8546:                                             ; preds = %8545
  br label %8547

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

8548:                                             ; No predecessors!
  br label %8549

8549:                                             ; preds = %8548
  br label %8550

8550:                                             ; preds = %8549, %8490
  br label %8551

8551:                                             ; preds = %8550
  br label %8552

8552:                                             ; preds = %8551
  br label %8553

8553:                                             ; preds = %8552
  br label %8554

8554:                                             ; preds = %8553
  br label %8555

8555:                                             ; preds = %8554
  %8556 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %8556, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %8557 = call ptr @__errno_location() #12
  store i32 0, ptr %8557, align 4, !tbaa !5
  br label %8558

8558:                                             ; preds = %8555
  br label %8559

8559:                                             ; preds = %8558
  br label %8560

8560:                                             ; preds = %8559
  br label %8561

8561:                                             ; preds = %8560
  %8562 = load ptr, ptr %191, align 8, !tbaa !9
  %8563 = load i32, ptr %8562, align 8
  %8564 = and i32 %8563, -257
  %8565 = or i32 %8564, 256
  store i32 %8565, ptr %8562, align 8
  br label %8566

8566:                                             ; preds = %8561
  %8567 = load i32, ptr @test_count, align 4, !tbaa !5
  %8568 = add nsw i32 %8567, 1
  store i32 %8568, ptr @test_count, align 4, !tbaa !5
  %8569 = load ptr, ptr %191, align 8, !tbaa !9
  %8570 = call i32 @s2n_connection_ktls_enable_send(ptr noundef %8569)
  %8571 = icmp eq i32 %8570, -1
  br i1 %8571, label %8572, label %8625

8572:                                             ; preds = %8566
  br label %8573

8573:                                             ; preds = %8572
  br label %8574

8574:                                             ; preds = %8573
  call void @llvm.lifetime.start.p0(i64 4, ptr %197) #11
  %8575 = call ptr @__errno_location() #12
  %8576 = load i32, ptr %8575, align 4, !tbaa !5
  store i32 %8576, ptr %197, align 4, !tbaa !5
  %8577 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8578 = call i32 @s2n_print_stacktrace(ptr noundef %8577)
  %8579 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8580 = trunc i8 %8579 to i1
  br i1 %8580, label %8581, label %8603

8581:                                             ; preds = %8574
  %8582 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8583 = call i32 @fileno(ptr noundef %8582) #11
  %8584 = call i32 @isatty(i32 noundef %8583) #11
  %8585 = icmp ne i32 %8584, 0
  br i1 %8585, label %8586, label %8603

8586:                                             ; preds = %8581
  %8587 = load i32, ptr %197, align 4, !tbaa !5
  %8588 = call ptr @__errno_location() #12
  store i32 %8587, ptr %8588, align 4, !tbaa !5
  %8589 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8590 = load i32, ptr @test_count, align 4, !tbaa !5
  %8591 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8592 = load i32, ptr %8591, align 4, !tbaa !5
  %8593 = call ptr @s2n_strerror(i32 noundef %8592, ptr noundef @.str.4)
  %8594 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8595 = load i32, ptr %8594, align 4, !tbaa !5
  %8596 = call ptr @s2n_strerror_debug(i32 noundef %8595, ptr noundef @.str.4)
  %8597 = call ptr @__errno_location() #12
  %8598 = load i32, ptr %8597, align 4, !tbaa !5
  %8599 = call ptr @strerror(i32 noundef %8598) #11
  %8600 = call ptr @__errno_location() #12
  %8601 = load i32, ptr %8600, align 4, !tbaa !5
  %8602 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8589, ptr noundef @.str.2, i32 noundef %8590, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 418, ptr noundef %8593, ptr noundef %8596, ptr noundef %8599, i32 noundef %8601) #11
  br label %8620

8603:                                             ; preds = %8581, %8574
  %8604 = load i32, ptr %197, align 4, !tbaa !5
  %8605 = call ptr @__errno_location() #12
  store i32 %8604, ptr %8605, align 4, !tbaa !5
  %8606 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8607 = load i32, ptr @test_count, align 4, !tbaa !5
  %8608 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8609 = load i32, ptr %8608, align 4, !tbaa !5
  %8610 = call ptr @s2n_strerror(i32 noundef %8609, ptr noundef @.str.4)
  %8611 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8612 = load i32, ptr %8611, align 4, !tbaa !5
  %8613 = call ptr @s2n_strerror_debug(i32 noundef %8612, ptr noundef @.str.4)
  %8614 = call ptr @__errno_location() #12
  %8615 = load i32, ptr %8614, align 4, !tbaa !5
  %8616 = call ptr @strerror(i32 noundef %8615) #11
  %8617 = call ptr @__errno_location() #12
  %8618 = load i32, ptr %8617, align 4, !tbaa !5
  %8619 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8606, ptr noundef @.str.5, i32 noundef %8607, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 418, ptr noundef %8610, ptr noundef %8613, ptr noundef %8616, i32 noundef %8618) #11
  br label %8620

8620:                                             ; preds = %8603, %8586
  call void @llvm.lifetime.end.p0(i64 4, ptr %197) #11
  br label %8621

8621:                                             ; preds = %8620
  br label %8622

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

8623:                                             ; No predecessors!
  br label %8624

8624:                                             ; preds = %8623
  br label %8625

8625:                                             ; preds = %8624, %8566
  br label %8626

8626:                                             ; preds = %8625
  br label %8627

8627:                                             ; preds = %8626
  %8628 = call i32 @s2n_connection_ptr_free(ptr noundef %191)
  %8629 = getelementptr inbounds %struct.s2n_result, ptr %198, i32 0, i32 0
  store i32 %8628, ptr %8629, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %191) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %199) #11
  %8630 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %8630, ptr %199, align 8, !tbaa !9
  br label %8631

8631:                                             ; preds = %8627
  %8632 = load i32, ptr @test_count, align 4, !tbaa !5
  %8633 = add nsw i32 %8632, 1
  store i32 %8633, ptr @test_count, align 4, !tbaa !5
  %8634 = load ptr, ptr %199, align 8, !tbaa !9
  %8635 = call i32 @s2n_test_configure_connection_for_ktls(ptr noundef %8634)
  %8636 = getelementptr inbounds %struct.s2n_result, ptr %200, i32 0, i32 0
  store i32 %8635, ptr %8636, align 4
  %8637 = getelementptr inbounds %struct.s2n_result, ptr %200, i32 0, i32 0
  %8638 = load i32, ptr %8637, align 4
  %8639 = call zeroext i1 @s2n_result_is_ok(i32 %8638)
  br i1 %8639, label %8693, label %8640

8640:                                             ; preds = %8631
  br label %8641

8641:                                             ; preds = %8640
  br label %8642

8642:                                             ; preds = %8641
  call void @llvm.lifetime.start.p0(i64 4, ptr %201) #11
  %8643 = call ptr @__errno_location() #12
  %8644 = load i32, ptr %8643, align 4, !tbaa !5
  store i32 %8644, ptr %201, align 4, !tbaa !5
  %8645 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8646 = call i32 @s2n_print_stacktrace(ptr noundef %8645)
  %8647 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8648 = trunc i8 %8647 to i1
  br i1 %8648, label %8649, label %8671

8649:                                             ; preds = %8642
  %8650 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8651 = call i32 @fileno(ptr noundef %8650) #11
  %8652 = call i32 @isatty(i32 noundef %8651) #11
  %8653 = icmp ne i32 %8652, 0
  br i1 %8653, label %8654, label %8671

8654:                                             ; preds = %8649
  %8655 = load i32, ptr %201, align 4, !tbaa !5
  %8656 = call ptr @__errno_location() #12
  store i32 %8655, ptr %8656, align 4, !tbaa !5
  %8657 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8658 = load i32, ptr @test_count, align 4, !tbaa !5
  %8659 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8660 = load i32, ptr %8659, align 4, !tbaa !5
  %8661 = call ptr @s2n_strerror(i32 noundef %8660, ptr noundef @.str.4)
  %8662 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8663 = load i32, ptr %8662, align 4, !tbaa !5
  %8664 = call ptr @s2n_strerror_debug(i32 noundef %8663, ptr noundef @.str.4)
  %8665 = call ptr @__errno_location() #12
  %8666 = load i32, ptr %8665, align 4, !tbaa !5
  %8667 = call ptr @strerror(i32 noundef %8666) #11
  %8668 = call ptr @__errno_location() #12
  %8669 = load i32, ptr %8668, align 4, !tbaa !5
  %8670 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8657, ptr noundef @.str.2, i32 noundef %8658, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 425, ptr noundef %8661, ptr noundef %8664, ptr noundef %8667, i32 noundef %8669) #11
  br label %8688

8671:                                             ; preds = %8649, %8642
  %8672 = load i32, ptr %201, align 4, !tbaa !5
  %8673 = call ptr @__errno_location() #12
  store i32 %8672, ptr %8673, align 4, !tbaa !5
  %8674 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8675 = load i32, ptr @test_count, align 4, !tbaa !5
  %8676 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8677 = load i32, ptr %8676, align 4, !tbaa !5
  %8678 = call ptr @s2n_strerror(i32 noundef %8677, ptr noundef @.str.4)
  %8679 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8680 = load i32, ptr %8679, align 4, !tbaa !5
  %8681 = call ptr @s2n_strerror_debug(i32 noundef %8680, ptr noundef @.str.4)
  %8682 = call ptr @__errno_location() #12
  %8683 = load i32, ptr %8682, align 4, !tbaa !5
  %8684 = call ptr @strerror(i32 noundef %8683) #11
  %8685 = call ptr @__errno_location() #12
  %8686 = load i32, ptr %8685, align 4, !tbaa !5
  %8687 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8674, ptr noundef @.str.5, i32 noundef %8675, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 425, ptr noundef %8678, ptr noundef %8681, ptr noundef %8684, i32 noundef %8686) #11
  br label %8688

8688:                                             ; preds = %8671, %8654
  call void @llvm.lifetime.end.p0(i64 4, ptr %201) #11
  br label %8689

8689:                                             ; preds = %8688
  br label %8690

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

8691:                                             ; No predecessors!
  br label %8692

8692:                                             ; preds = %8691
  br label %8693

8693:                                             ; preds = %8692, %8631
  br label %8694

8694:                                             ; preds = %8693
  br label %8695

8695:                                             ; preds = %8694
  %8696 = load ptr, ptr %199, align 8, !tbaa !9
  %8697 = load i32, ptr %8696, align 8
  %8698 = and i32 %8697, -513
  %8699 = or i32 %8698, 0
  store i32 %8699, ptr %8696, align 8
  br label %8700

8700:                                             ; preds = %8695
  br label %8701

8701:                                             ; preds = %8700
  br label %8702

8702:                                             ; preds = %8701
  %8703 = load i32, ptr @test_count, align 4, !tbaa !5
  %8704 = add nsw i32 %8703, 1
  store i32 %8704, ptr @test_count, align 4, !tbaa !5
  %8705 = load ptr, ptr %199, align 8, !tbaa !9
  %8706 = call i32 @s2n_connection_ktls_enable_recv(ptr noundef %8705)
  %8707 = icmp eq i32 %8706, -1
  br i1 %8707, label %8761, label %8708

8708:                                             ; preds = %8702
  br label %8709

8709:                                             ; preds = %8708
  br label %8710

8710:                                             ; preds = %8709
  call void @llvm.lifetime.start.p0(i64 4, ptr %202) #11
  %8711 = call ptr @__errno_location() #12
  %8712 = load i32, ptr %8711, align 4, !tbaa !5
  store i32 %8712, ptr %202, align 4, !tbaa !5
  %8713 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8714 = call i32 @s2n_print_stacktrace(ptr noundef %8713)
  %8715 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8716 = trunc i8 %8715 to i1
  br i1 %8716, label %8717, label %8739

8717:                                             ; preds = %8710
  %8718 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8719 = call i32 @fileno(ptr noundef %8718) #11
  %8720 = call i32 @isatty(i32 noundef %8719) #11
  %8721 = icmp ne i32 %8720, 0
  br i1 %8721, label %8722, label %8739

8722:                                             ; preds = %8717
  %8723 = load i32, ptr %202, align 4, !tbaa !5
  %8724 = call ptr @__errno_location() #12
  store i32 %8723, ptr %8724, align 4, !tbaa !5
  %8725 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8726 = load i32, ptr @test_count, align 4, !tbaa !5
  %8727 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8728 = load i32, ptr %8727, align 4, !tbaa !5
  %8729 = call ptr @s2n_strerror(i32 noundef %8728, ptr noundef @.str.4)
  %8730 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8731 = load i32, ptr %8730, align 4, !tbaa !5
  %8732 = call ptr @s2n_strerror_debug(i32 noundef %8731, ptr noundef @.str.4)
  %8733 = call ptr @__errno_location() #12
  %8734 = load i32, ptr %8733, align 4, !tbaa !5
  %8735 = call ptr @strerror(i32 noundef %8734) #11
  %8736 = call ptr @__errno_location() #12
  %8737 = load i32, ptr %8736, align 4, !tbaa !5
  %8738 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8725, ptr noundef @.str.2, i32 noundef %8726, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 429, ptr noundef %8729, ptr noundef %8732, ptr noundef %8735, i32 noundef %8737) #11
  br label %8756

8739:                                             ; preds = %8717, %8710
  %8740 = load i32, ptr %202, align 4, !tbaa !5
  %8741 = call ptr @__errno_location() #12
  store i32 %8740, ptr %8741, align 4, !tbaa !5
  %8742 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8743 = load i32, ptr @test_count, align 4, !tbaa !5
  %8744 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8745 = load i32, ptr %8744, align 4, !tbaa !5
  %8746 = call ptr @s2n_strerror(i32 noundef %8745, ptr noundef @.str.4)
  %8747 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8748 = load i32, ptr %8747, align 4, !tbaa !5
  %8749 = call ptr @s2n_strerror_debug(i32 noundef %8748, ptr noundef @.str.4)
  %8750 = call ptr @__errno_location() #12
  %8751 = load i32, ptr %8750, align 4, !tbaa !5
  %8752 = call ptr @strerror(i32 noundef %8751) #11
  %8753 = call ptr @__errno_location() #12
  %8754 = load i32, ptr %8753, align 4, !tbaa !5
  %8755 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8742, ptr noundef @.str.5, i32 noundef %8743, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 429, ptr noundef %8746, ptr noundef %8749, ptr noundef %8752, i32 noundef %8754) #11
  br label %8756

8756:                                             ; preds = %8739, %8722
  call void @llvm.lifetime.end.p0(i64 4, ptr %202) #11
  br label %8757

8757:                                             ; preds = %8756
  br label %8758

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

8759:                                             ; No predecessors!
  br label %8760

8760:                                             ; preds = %8759
  br label %8761

8761:                                             ; preds = %8760, %8702
  br label %8762

8762:                                             ; preds = %8761
  br label %8763

8763:                                             ; preds = %8762
  br label %8764

8764:                                             ; preds = %8763
  %8765 = load i32, ptr @test_count, align 4, !tbaa !5
  %8766 = add nsw i32 %8765, 1
  store i32 %8766, ptr @test_count, align 4, !tbaa !5
  %8767 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8768 = load i32, ptr %8767, align 4, !tbaa !5
  %8769 = icmp eq i32 %8768, 469762125
  br i1 %8769, label %8823, label %8770

8770:                                             ; preds = %8764
  br label %8771

8771:                                             ; preds = %8770
  br label %8772

8772:                                             ; preds = %8771
  call void @llvm.lifetime.start.p0(i64 4, ptr %203) #11
  %8773 = call ptr @__errno_location() #12
  %8774 = load i32, ptr %8773, align 4, !tbaa !5
  store i32 %8774, ptr %203, align 4, !tbaa !5
  %8775 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8776 = call i32 @s2n_print_stacktrace(ptr noundef %8775)
  %8777 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8778 = trunc i8 %8777 to i1
  br i1 %8778, label %8779, label %8801

8779:                                             ; preds = %8772
  %8780 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8781 = call i32 @fileno(ptr noundef %8780) #11
  %8782 = call i32 @isatty(i32 noundef %8781) #11
  %8783 = icmp ne i32 %8782, 0
  br i1 %8783, label %8784, label %8801

8784:                                             ; preds = %8779
  %8785 = load i32, ptr %203, align 4, !tbaa !5
  %8786 = call ptr @__errno_location() #12
  store i32 %8785, ptr %8786, align 4, !tbaa !5
  %8787 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8788 = load i32, ptr @test_count, align 4, !tbaa !5
  %8789 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8790 = load i32, ptr %8789, align 4, !tbaa !5
  %8791 = call ptr @s2n_strerror(i32 noundef %8790, ptr noundef @.str.4)
  %8792 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8793 = load i32, ptr %8792, align 4, !tbaa !5
  %8794 = call ptr @s2n_strerror_debug(i32 noundef %8793, ptr noundef @.str.4)
  %8795 = call ptr @__errno_location() #12
  %8796 = load i32, ptr %8795, align 4, !tbaa !5
  %8797 = call ptr @strerror(i32 noundef %8796) #11
  %8798 = call ptr @__errno_location() #12
  %8799 = load i32, ptr %8798, align 4, !tbaa !5
  %8800 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8787, ptr noundef @.str.2, i32 noundef %8788, ptr noundef @.str.69, ptr noundef @.str.1, i32 noundef 429, ptr noundef %8791, ptr noundef %8794, ptr noundef %8797, i32 noundef %8799) #11
  br label %8818

8801:                                             ; preds = %8779, %8772
  %8802 = load i32, ptr %203, align 4, !tbaa !5
  %8803 = call ptr @__errno_location() #12
  store i32 %8802, ptr %8803, align 4, !tbaa !5
  %8804 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8805 = load i32, ptr @test_count, align 4, !tbaa !5
  %8806 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8807 = load i32, ptr %8806, align 4, !tbaa !5
  %8808 = call ptr @s2n_strerror(i32 noundef %8807, ptr noundef @.str.4)
  %8809 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8810 = load i32, ptr %8809, align 4, !tbaa !5
  %8811 = call ptr @s2n_strerror_debug(i32 noundef %8810, ptr noundef @.str.4)
  %8812 = call ptr @__errno_location() #12
  %8813 = load i32, ptr %8812, align 4, !tbaa !5
  %8814 = call ptr @strerror(i32 noundef %8813) #11
  %8815 = call ptr @__errno_location() #12
  %8816 = load i32, ptr %8815, align 4, !tbaa !5
  %8817 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8804, ptr noundef @.str.5, i32 noundef %8805, ptr noundef @.str.69, ptr noundef @.str.1, i32 noundef 429, ptr noundef %8808, ptr noundef %8811, ptr noundef %8814, i32 noundef %8816) #11
  br label %8818

8818:                                             ; preds = %8801, %8784
  call void @llvm.lifetime.end.p0(i64 4, ptr %203) #11
  br label %8819

8819:                                             ; preds = %8818
  br label %8820

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

8821:                                             ; No predecessors!
  br label %8822

8822:                                             ; preds = %8821
  br label %8823

8823:                                             ; preds = %8822, %8764
  br label %8824

8824:                                             ; preds = %8823
  br label %8825

8825:                                             ; preds = %8824
  br label %8826

8826:                                             ; preds = %8825
  %8827 = load i32, ptr @test_count, align 4, !tbaa !5
  %8828 = add nsw i32 %8827, 1
  store i32 %8828, ptr @test_count, align 4, !tbaa !5
  %8829 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8830 = load i32, ptr %8829, align 4, !tbaa !5
  %8831 = call ptr @s2n_strerror_debug(i32 noundef %8830, ptr noundef @.str.4)
  %8832 = icmp eq ptr %8831, null
  br i1 %8832, label %8833, label %8886

8833:                                             ; preds = %8826
  br label %8834

8834:                                             ; preds = %8833
  br label %8835

8835:                                             ; preds = %8834
  call void @llvm.lifetime.start.p0(i64 4, ptr %204) #11
  %8836 = call ptr @__errno_location() #12
  %8837 = load i32, ptr %8836, align 4, !tbaa !5
  store i32 %8837, ptr %204, align 4, !tbaa !5
  %8838 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8839 = call i32 @s2n_print_stacktrace(ptr noundef %8838)
  %8840 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8841 = trunc i8 %8840 to i1
  br i1 %8841, label %8842, label %8864

8842:                                             ; preds = %8835
  %8843 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8844 = call i32 @fileno(ptr noundef %8843) #11
  %8845 = call i32 @isatty(i32 noundef %8844) #11
  %8846 = icmp ne i32 %8845, 0
  br i1 %8846, label %8847, label %8864

8847:                                             ; preds = %8842
  %8848 = load i32, ptr %204, align 4, !tbaa !5
  %8849 = call ptr @__errno_location() #12
  store i32 %8848, ptr %8849, align 4, !tbaa !5
  %8850 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8851 = load i32, ptr @test_count, align 4, !tbaa !5
  %8852 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8853 = load i32, ptr %8852, align 4, !tbaa !5
  %8854 = call ptr @s2n_strerror(i32 noundef %8853, ptr noundef @.str.4)
  %8855 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8856 = load i32, ptr %8855, align 4, !tbaa !5
  %8857 = call ptr @s2n_strerror_debug(i32 noundef %8856, ptr noundef @.str.4)
  %8858 = call ptr @__errno_location() #12
  %8859 = load i32, ptr %8858, align 4, !tbaa !5
  %8860 = call ptr @strerror(i32 noundef %8859) #11
  %8861 = call ptr @__errno_location() #12
  %8862 = load i32, ptr %8861, align 4, !tbaa !5
  %8863 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8850, ptr noundef @.str.2, i32 noundef %8851, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 429, ptr noundef %8854, ptr noundef %8857, ptr noundef %8860, i32 noundef %8862) #11
  br label %8881

8864:                                             ; preds = %8842, %8835
  %8865 = load i32, ptr %204, align 4, !tbaa !5
  %8866 = call ptr @__errno_location() #12
  store i32 %8865, ptr %8866, align 4, !tbaa !5
  %8867 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8868 = load i32, ptr @test_count, align 4, !tbaa !5
  %8869 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8870 = load i32, ptr %8869, align 4, !tbaa !5
  %8871 = call ptr @s2n_strerror(i32 noundef %8870, ptr noundef @.str.4)
  %8872 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8873 = load i32, ptr %8872, align 4, !tbaa !5
  %8874 = call ptr @s2n_strerror_debug(i32 noundef %8873, ptr noundef @.str.4)
  %8875 = call ptr @__errno_location() #12
  %8876 = load i32, ptr %8875, align 4, !tbaa !5
  %8877 = call ptr @strerror(i32 noundef %8876) #11
  %8878 = call ptr @__errno_location() #12
  %8879 = load i32, ptr %8878, align 4, !tbaa !5
  %8880 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8867, ptr noundef @.str.5, i32 noundef %8868, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 429, ptr noundef %8871, ptr noundef %8874, ptr noundef %8877, i32 noundef %8879) #11
  br label %8881

8881:                                             ; preds = %8864, %8847
  call void @llvm.lifetime.end.p0(i64 4, ptr %204) #11
  br label %8882

8882:                                             ; preds = %8881
  br label %8883

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

8884:                                             ; No predecessors!
  br label %8885

8885:                                             ; preds = %8884
  br label %8886

8886:                                             ; preds = %8885, %8826
  br label %8887

8887:                                             ; preds = %8886
  br label %8888

8888:                                             ; preds = %8887
  br label %8889

8889:                                             ; preds = %8888
  br label %8890

8890:                                             ; preds = %8889
  br label %8891

8891:                                             ; preds = %8890
  %8892 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %8892, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %8893 = call ptr @__errno_location() #12
  store i32 0, ptr %8893, align 4, !tbaa !5
  br label %8894

8894:                                             ; preds = %8891
  br label %8895

8895:                                             ; preds = %8894
  br label %8896

8896:                                             ; preds = %8895
  br label %8897

8897:                                             ; preds = %8896
  %8898 = load ptr, ptr %199, align 8, !tbaa !9
  %8899 = load i32, ptr %8898, align 8
  %8900 = and i32 %8899, -513
  %8901 = or i32 %8900, 512
  store i32 %8901, ptr %8898, align 8
  br label %8902

8902:                                             ; preds = %8897
  %8903 = load i32, ptr @test_count, align 4, !tbaa !5
  %8904 = add nsw i32 %8903, 1
  store i32 %8904, ptr @test_count, align 4, !tbaa !5
  %8905 = load ptr, ptr %199, align 8, !tbaa !9
  %8906 = call i32 @s2n_connection_ktls_enable_recv(ptr noundef %8905)
  %8907 = icmp eq i32 %8906, -1
  br i1 %8907, label %8908, label %8961

8908:                                             ; preds = %8902
  br label %8909

8909:                                             ; preds = %8908
  br label %8910

8910:                                             ; preds = %8909
  call void @llvm.lifetime.start.p0(i64 4, ptr %205) #11
  %8911 = call ptr @__errno_location() #12
  %8912 = load i32, ptr %8911, align 4, !tbaa !5
  store i32 %8912, ptr %205, align 4, !tbaa !5
  %8913 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8914 = call i32 @s2n_print_stacktrace(ptr noundef %8913)
  %8915 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8916 = trunc i8 %8915 to i1
  br i1 %8916, label %8917, label %8939

8917:                                             ; preds = %8910
  %8918 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8919 = call i32 @fileno(ptr noundef %8918) #11
  %8920 = call i32 @isatty(i32 noundef %8919) #11
  %8921 = icmp ne i32 %8920, 0
  br i1 %8921, label %8922, label %8939

8922:                                             ; preds = %8917
  %8923 = load i32, ptr %205, align 4, !tbaa !5
  %8924 = call ptr @__errno_location() #12
  store i32 %8923, ptr %8924, align 4, !tbaa !5
  %8925 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8926 = load i32, ptr @test_count, align 4, !tbaa !5
  %8927 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8928 = load i32, ptr %8927, align 4, !tbaa !5
  %8929 = call ptr @s2n_strerror(i32 noundef %8928, ptr noundef @.str.4)
  %8930 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8931 = load i32, ptr %8930, align 4, !tbaa !5
  %8932 = call ptr @s2n_strerror_debug(i32 noundef %8931, ptr noundef @.str.4)
  %8933 = call ptr @__errno_location() #12
  %8934 = load i32, ptr %8933, align 4, !tbaa !5
  %8935 = call ptr @strerror(i32 noundef %8934) #11
  %8936 = call ptr @__errno_location() #12
  %8937 = load i32, ptr %8936, align 4, !tbaa !5
  %8938 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8925, ptr noundef @.str.2, i32 noundef %8926, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 433, ptr noundef %8929, ptr noundef %8932, ptr noundef %8935, i32 noundef %8937) #11
  br label %8956

8939:                                             ; preds = %8917, %8910
  %8940 = load i32, ptr %205, align 4, !tbaa !5
  %8941 = call ptr @__errno_location() #12
  store i32 %8940, ptr %8941, align 4, !tbaa !5
  %8942 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8943 = load i32, ptr @test_count, align 4, !tbaa !5
  %8944 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8945 = load i32, ptr %8944, align 4, !tbaa !5
  %8946 = call ptr @s2n_strerror(i32 noundef %8945, ptr noundef @.str.4)
  %8947 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8948 = load i32, ptr %8947, align 4, !tbaa !5
  %8949 = call ptr @s2n_strerror_debug(i32 noundef %8948, ptr noundef @.str.4)
  %8950 = call ptr @__errno_location() #12
  %8951 = load i32, ptr %8950, align 4, !tbaa !5
  %8952 = call ptr @strerror(i32 noundef %8951) #11
  %8953 = call ptr @__errno_location() #12
  %8954 = load i32, ptr %8953, align 4, !tbaa !5
  %8955 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8942, ptr noundef @.str.5, i32 noundef %8943, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 433, ptr noundef %8946, ptr noundef %8949, ptr noundef %8952, i32 noundef %8954) #11
  br label %8956

8956:                                             ; preds = %8939, %8922
  call void @llvm.lifetime.end.p0(i64 4, ptr %205) #11
  br label %8957

8957:                                             ; preds = %8956
  br label %8958

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

8959:                                             ; No predecessors!
  br label %8960

8960:                                             ; preds = %8959
  br label %8961

8961:                                             ; preds = %8960, %8902
  br label %8962

8962:                                             ; preds = %8961
  br label %8963

8963:                                             ; preds = %8962
  %8964 = call i32 @s2n_connection_ptr_free(ptr noundef %199)
  %8965 = getelementptr inbounds %struct.s2n_result, ptr %206, i32 0, i32 0
  store i32 %8964, ptr %8965, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %199) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %207) #11
  %8966 = call ptr @s2n_config_new()
  store ptr %8966, ptr %207, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %208) #11
  %8967 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %8967, ptr %208, align 8, !tbaa !9
  br label %8968

8968:                                             ; preds = %8963
  %8969 = load i32, ptr @test_count, align 4, !tbaa !5
  %8970 = add nsw i32 %8969, 1
  store i32 %8970, ptr @test_count, align 4, !tbaa !5
  %8971 = load ptr, ptr %208, align 8, !tbaa !9
  %8972 = call i32 @s2n_test_configure_connection_for_ktls(ptr noundef %8971)
  %8973 = getelementptr inbounds %struct.s2n_result, ptr %209, i32 0, i32 0
  store i32 %8972, ptr %8973, align 4
  %8974 = getelementptr inbounds %struct.s2n_result, ptr %209, i32 0, i32 0
  %8975 = load i32, ptr %8974, align 4
  %8976 = call zeroext i1 @s2n_result_is_ok(i32 %8975)
  br i1 %8976, label %9030, label %8977

8977:                                             ; preds = %8968
  br label %8978

8978:                                             ; preds = %8977
  br label %8979

8979:                                             ; preds = %8978
  call void @llvm.lifetime.start.p0(i64 4, ptr %210) #11
  %8980 = call ptr @__errno_location() #12
  %8981 = load i32, ptr %8980, align 4, !tbaa !5
  store i32 %8981, ptr %210, align 4, !tbaa !5
  %8982 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8983 = call i32 @s2n_print_stacktrace(ptr noundef %8982)
  %8984 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8985 = trunc i8 %8984 to i1
  br i1 %8985, label %8986, label %9008

8986:                                             ; preds = %8979
  %8987 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8988 = call i32 @fileno(ptr noundef %8987) #11
  %8989 = call i32 @isatty(i32 noundef %8988) #11
  %8990 = icmp ne i32 %8989, 0
  br i1 %8990, label %8991, label %9008

8991:                                             ; preds = %8986
  %8992 = load i32, ptr %210, align 4, !tbaa !5
  %8993 = call ptr @__errno_location() #12
  store i32 %8992, ptr %8993, align 4, !tbaa !5
  %8994 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8995 = load i32, ptr @test_count, align 4, !tbaa !5
  %8996 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8997 = load i32, ptr %8996, align 4, !tbaa !5
  %8998 = call ptr @s2n_strerror(i32 noundef %8997, ptr noundef @.str.4)
  %8999 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9000 = load i32, ptr %8999, align 4, !tbaa !5
  %9001 = call ptr @s2n_strerror_debug(i32 noundef %9000, ptr noundef @.str.4)
  %9002 = call ptr @__errno_location() #12
  %9003 = load i32, ptr %9002, align 4, !tbaa !5
  %9004 = call ptr @strerror(i32 noundef %9003) #11
  %9005 = call ptr @__errno_location() #12
  %9006 = load i32, ptr %9005, align 4, !tbaa !5
  %9007 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8994, ptr noundef @.str.2, i32 noundef %8995, ptr noundef @.str.70, ptr noundef @.str.1, i32 noundef 442, ptr noundef %8998, ptr noundef %9001, ptr noundef %9004, i32 noundef %9006) #11
  br label %9025

9008:                                             ; preds = %8986, %8979
  %9009 = load i32, ptr %210, align 4, !tbaa !5
  %9010 = call ptr @__errno_location() #12
  store i32 %9009, ptr %9010, align 4, !tbaa !5
  %9011 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9012 = load i32, ptr @test_count, align 4, !tbaa !5
  %9013 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9014 = load i32, ptr %9013, align 4, !tbaa !5
  %9015 = call ptr @s2n_strerror(i32 noundef %9014, ptr noundef @.str.4)
  %9016 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9017 = load i32, ptr %9016, align 4, !tbaa !5
  %9018 = call ptr @s2n_strerror_debug(i32 noundef %9017, ptr noundef @.str.4)
  %9019 = call ptr @__errno_location() #12
  %9020 = load i32, ptr %9019, align 4, !tbaa !5
  %9021 = call ptr @strerror(i32 noundef %9020) #11
  %9022 = call ptr @__errno_location() #12
  %9023 = load i32, ptr %9022, align 4, !tbaa !5
  %9024 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9011, ptr noundef @.str.5, i32 noundef %9012, ptr noundef @.str.70, ptr noundef @.str.1, i32 noundef 442, ptr noundef %9015, ptr noundef %9018, ptr noundef %9021, i32 noundef %9023) #11
  br label %9025

9025:                                             ; preds = %9008, %8991
  call void @llvm.lifetime.end.p0(i64 4, ptr %210) #11
  br label %9026

9026:                                             ; preds = %9025
  br label %9027

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

9028:                                             ; No predecessors!
  br label %9029

9029:                                             ; preds = %9028
  br label %9030

9030:                                             ; preds = %9029, %8968
  br label %9031

9031:                                             ; preds = %9030
  br label %9032

9032:                                             ; preds = %9031
  br label %9033

9033:                                             ; preds = %9032
  %9034 = load i32, ptr @test_count, align 4, !tbaa !5
  %9035 = add nsw i32 %9034, 1
  store i32 %9035, ptr @test_count, align 4, !tbaa !5
  %9036 = load ptr, ptr %208, align 8, !tbaa !9
  %9037 = load ptr, ptr %207, align 8, !tbaa !9
  %9038 = call i32 @s2n_connection_set_config(ptr noundef %9036, ptr noundef %9037)
  %9039 = icmp eq i32 %9038, -1
  br i1 %9039, label %9040, label %9093

9040:                                             ; preds = %9033
  br label %9041

9041:                                             ; preds = %9040
  br label %9042

9042:                                             ; preds = %9041
  call void @llvm.lifetime.start.p0(i64 4, ptr %211) #11
  %9043 = call ptr @__errno_location() #12
  %9044 = load i32, ptr %9043, align 4, !tbaa !5
  store i32 %9044, ptr %211, align 4, !tbaa !5
  %9045 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9046 = call i32 @s2n_print_stacktrace(ptr noundef %9045)
  %9047 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9048 = trunc i8 %9047 to i1
  br i1 %9048, label %9049, label %9071

9049:                                             ; preds = %9042
  %9050 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9051 = call i32 @fileno(ptr noundef %9050) #11
  %9052 = call i32 @isatty(i32 noundef %9051) #11
  %9053 = icmp ne i32 %9052, 0
  br i1 %9053, label %9054, label %9071

9054:                                             ; preds = %9049
  %9055 = load i32, ptr %211, align 4, !tbaa !5
  %9056 = call ptr @__errno_location() #12
  store i32 %9055, ptr %9056, align 4, !tbaa !5
  %9057 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9058 = load i32, ptr @test_count, align 4, !tbaa !5
  %9059 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9060 = load i32, ptr %9059, align 4, !tbaa !5
  %9061 = call ptr @s2n_strerror(i32 noundef %9060, ptr noundef @.str.4)
  %9062 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9063 = load i32, ptr %9062, align 4, !tbaa !5
  %9064 = call ptr @s2n_strerror_debug(i32 noundef %9063, ptr noundef @.str.4)
  %9065 = call ptr @__errno_location() #12
  %9066 = load i32, ptr %9065, align 4, !tbaa !5
  %9067 = call ptr @strerror(i32 noundef %9066) #11
  %9068 = call ptr @__errno_location() #12
  %9069 = load i32, ptr %9068, align 4, !tbaa !5
  %9070 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9057, ptr noundef @.str.2, i32 noundef %9058, ptr noundef @.str.71, ptr noundef @.str.1, i32 noundef 443, ptr noundef %9061, ptr noundef %9064, ptr noundef %9067, i32 noundef %9069) #11
  br label %9088

9071:                                             ; preds = %9049, %9042
  %9072 = load i32, ptr %211, align 4, !tbaa !5
  %9073 = call ptr @__errno_location() #12
  store i32 %9072, ptr %9073, align 4, !tbaa !5
  %9074 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9075 = load i32, ptr @test_count, align 4, !tbaa !5
  %9076 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9077 = load i32, ptr %9076, align 4, !tbaa !5
  %9078 = call ptr @s2n_strerror(i32 noundef %9077, ptr noundef @.str.4)
  %9079 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9080 = load i32, ptr %9079, align 4, !tbaa !5
  %9081 = call ptr @s2n_strerror_debug(i32 noundef %9080, ptr noundef @.str.4)
  %9082 = call ptr @__errno_location() #12
  %9083 = load i32, ptr %9082, align 4, !tbaa !5
  %9084 = call ptr @strerror(i32 noundef %9083) #11
  %9085 = call ptr @__errno_location() #12
  %9086 = load i32, ptr %9085, align 4, !tbaa !5
  %9087 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9074, ptr noundef @.str.5, i32 noundef %9075, ptr noundef @.str.71, ptr noundef @.str.1, i32 noundef 443, ptr noundef %9078, ptr noundef %9081, ptr noundef %9084, i32 noundef %9086) #11
  br label %9088

9088:                                             ; preds = %9071, %9054
  call void @llvm.lifetime.end.p0(i64 4, ptr %211) #11
  br label %9089

9089:                                             ; preds = %9088
  br label %9090

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

9091:                                             ; No predecessors!
  br label %9092

9092:                                             ; preds = %9091
  br label %9093

9093:                                             ; preds = %9092, %9033
  br label %9094

9094:                                             ; preds = %9093
  br label %9095

9095:                                             ; preds = %9094
  call void @llvm.lifetime.start.p0(i64 8, ptr %212) #11
  %9096 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %9096, ptr %212, align 8, !tbaa !9
  br label %9097

9097:                                             ; preds = %9095
  %9098 = load i32, ptr @test_count, align 4, !tbaa !5
  %9099 = add nsw i32 %9098, 1
  store i32 %9099, ptr @test_count, align 4, !tbaa !5
  %9100 = load ptr, ptr %212, align 8, !tbaa !9
  %9101 = call i32 @s2n_test_configure_connection_for_ktls(ptr noundef %9100)
  %9102 = getelementptr inbounds %struct.s2n_result, ptr %213, i32 0, i32 0
  store i32 %9101, ptr %9102, align 4
  %9103 = getelementptr inbounds %struct.s2n_result, ptr %213, i32 0, i32 0
  %9104 = load i32, ptr %9103, align 4
  %9105 = call zeroext i1 @s2n_result_is_ok(i32 %9104)
  br i1 %9105, label %9159, label %9106

9106:                                             ; preds = %9097
  br label %9107

9107:                                             ; preds = %9106
  br label %9108

9108:                                             ; preds = %9107
  call void @llvm.lifetime.start.p0(i64 4, ptr %214) #11
  %9109 = call ptr @__errno_location() #12
  %9110 = load i32, ptr %9109, align 4, !tbaa !5
  store i32 %9110, ptr %214, align 4, !tbaa !5
  %9111 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9112 = call i32 @s2n_print_stacktrace(ptr noundef %9111)
  %9113 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9114 = trunc i8 %9113 to i1
  br i1 %9114, label %9115, label %9137

9115:                                             ; preds = %9108
  %9116 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9117 = call i32 @fileno(ptr noundef %9116) #11
  %9118 = call i32 @isatty(i32 noundef %9117) #11
  %9119 = icmp ne i32 %9118, 0
  br i1 %9119, label %9120, label %9137

9120:                                             ; preds = %9115
  %9121 = load i32, ptr %214, align 4, !tbaa !5
  %9122 = call ptr @__errno_location() #12
  store i32 %9121, ptr %9122, align 4, !tbaa !5
  %9123 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9124 = load i32, ptr @test_count, align 4, !tbaa !5
  %9125 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9126 = load i32, ptr %9125, align 4, !tbaa !5
  %9127 = call ptr @s2n_strerror(i32 noundef %9126, ptr noundef @.str.4)
  %9128 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9129 = load i32, ptr %9128, align 4, !tbaa !5
  %9130 = call ptr @s2n_strerror_debug(i32 noundef %9129, ptr noundef @.str.4)
  %9131 = call ptr @__errno_location() #12
  %9132 = load i32, ptr %9131, align 4, !tbaa !5
  %9133 = call ptr @strerror(i32 noundef %9132) #11
  %9134 = call ptr @__errno_location() #12
  %9135 = load i32, ptr %9134, align 4, !tbaa !5
  %9136 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9123, ptr noundef @.str.2, i32 noundef %9124, ptr noundef @.str.72, ptr noundef @.str.1, i32 noundef 447, ptr noundef %9127, ptr noundef %9130, ptr noundef %9133, i32 noundef %9135) #11
  br label %9154

9137:                                             ; preds = %9115, %9108
  %9138 = load i32, ptr %214, align 4, !tbaa !5
  %9139 = call ptr @__errno_location() #12
  store i32 %9138, ptr %9139, align 4, !tbaa !5
  %9140 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9141 = load i32, ptr @test_count, align 4, !tbaa !5
  %9142 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9143 = load i32, ptr %9142, align 4, !tbaa !5
  %9144 = call ptr @s2n_strerror(i32 noundef %9143, ptr noundef @.str.4)
  %9145 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9146 = load i32, ptr %9145, align 4, !tbaa !5
  %9147 = call ptr @s2n_strerror_debug(i32 noundef %9146, ptr noundef @.str.4)
  %9148 = call ptr @__errno_location() #12
  %9149 = load i32, ptr %9148, align 4, !tbaa !5
  %9150 = call ptr @strerror(i32 noundef %9149) #11
  %9151 = call ptr @__errno_location() #12
  %9152 = load i32, ptr %9151, align 4, !tbaa !5
  %9153 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9140, ptr noundef @.str.5, i32 noundef %9141, ptr noundef @.str.72, ptr noundef @.str.1, i32 noundef 447, ptr noundef %9144, ptr noundef %9147, ptr noundef %9150, i32 noundef %9152) #11
  br label %9154

9154:                                             ; preds = %9137, %9120
  call void @llvm.lifetime.end.p0(i64 4, ptr %214) #11
  br label %9155

9155:                                             ; preds = %9154
  br label %9156

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

9157:                                             ; No predecessors!
  br label %9158

9158:                                             ; preds = %9157
  br label %9159

9159:                                             ; preds = %9158, %9097
  br label %9160

9160:                                             ; preds = %9159
  br label %9161

9161:                                             ; preds = %9160
  br label %9162

9162:                                             ; preds = %9161
  %9163 = load i32, ptr @test_count, align 4, !tbaa !5
  %9164 = add nsw i32 %9163, 1
  store i32 %9164, ptr @test_count, align 4, !tbaa !5
  %9165 = load ptr, ptr %212, align 8, !tbaa !9
  %9166 = load ptr, ptr %207, align 8, !tbaa !9
  %9167 = call i32 @s2n_connection_set_config(ptr noundef %9165, ptr noundef %9166)
  %9168 = icmp eq i32 %9167, -1
  br i1 %9168, label %9169, label %9222

9169:                                             ; preds = %9162
  br label %9170

9170:                                             ; preds = %9169
  br label %9171

9171:                                             ; preds = %9170
  call void @llvm.lifetime.start.p0(i64 4, ptr %215) #11
  %9172 = call ptr @__errno_location() #12
  %9173 = load i32, ptr %9172, align 4, !tbaa !5
  store i32 %9173, ptr %215, align 4, !tbaa !5
  %9174 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9175 = call i32 @s2n_print_stacktrace(ptr noundef %9174)
  %9176 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9177 = trunc i8 %9176 to i1
  br i1 %9177, label %9178, label %9200

9178:                                             ; preds = %9171
  %9179 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9180 = call i32 @fileno(ptr noundef %9179) #11
  %9181 = call i32 @isatty(i32 noundef %9180) #11
  %9182 = icmp ne i32 %9181, 0
  br i1 %9182, label %9183, label %9200

9183:                                             ; preds = %9178
  %9184 = load i32, ptr %215, align 4, !tbaa !5
  %9185 = call ptr @__errno_location() #12
  store i32 %9184, ptr %9185, align 4, !tbaa !5
  %9186 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9187 = load i32, ptr @test_count, align 4, !tbaa !5
  %9188 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9189 = load i32, ptr %9188, align 4, !tbaa !5
  %9190 = call ptr @s2n_strerror(i32 noundef %9189, ptr noundef @.str.4)
  %9191 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9192 = load i32, ptr %9191, align 4, !tbaa !5
  %9193 = call ptr @s2n_strerror_debug(i32 noundef %9192, ptr noundef @.str.4)
  %9194 = call ptr @__errno_location() #12
  %9195 = load i32, ptr %9194, align 4, !tbaa !5
  %9196 = call ptr @strerror(i32 noundef %9195) #11
  %9197 = call ptr @__errno_location() #12
  %9198 = load i32, ptr %9197, align 4, !tbaa !5
  %9199 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9186, ptr noundef @.str.2, i32 noundef %9187, ptr noundef @.str.73, ptr noundef @.str.1, i32 noundef 448, ptr noundef %9190, ptr noundef %9193, ptr noundef %9196, i32 noundef %9198) #11
  br label %9217

9200:                                             ; preds = %9178, %9171
  %9201 = load i32, ptr %215, align 4, !tbaa !5
  %9202 = call ptr @__errno_location() #12
  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.4)
  %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.4)
  %9211 = call ptr @__errno_location() #12
  %9212 = load i32, ptr %9211, align 4, !tbaa !5
  %9213 = call ptr @strerror(i32 noundef %9212) #11
  %9214 = call ptr @__errno_location() #12
  %9215 = load i32, ptr %9214, align 4, !tbaa !5
  %9216 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9203, ptr noundef @.str.5, i32 noundef %9204, ptr noundef @.str.73, ptr noundef @.str.1, i32 noundef 448, ptr noundef %9207, ptr noundef %9210, ptr noundef %9213, i32 noundef %9215) #11
  br label %9217

9217:                                             ; preds = %9200, %9183
  call void @llvm.lifetime.end.p0(i64 4, ptr %215) #11
  br label %9218

9218:                                             ; preds = %9217
  br label %9219

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

9220:                                             ; No predecessors!
  br label %9221

9221:                                             ; preds = %9220
  br label %9222

9222:                                             ; preds = %9221, %9162
  br label %9223

9223:                                             ; preds = %9222
  br label %9224

9224:                                             ; preds = %9223
  br label %9225

9225:                                             ; preds = %9224
  %9226 = load i32, ptr @test_count, align 4, !tbaa !5
  %9227 = add nsw i32 %9226, 1
  store i32 %9227, ptr @test_count, align 4, !tbaa !5
  %9228 = load ptr, ptr %207, align 8, !tbaa !9
  %9229 = call i32 @s2n_config_set_renegotiate_request_cb(ptr noundef %9228, ptr noundef @s2n_test_reneg_cb, ptr noundef null)
  %9230 = icmp eq i32 %9229, -1
  br i1 %9230, label %9231, label %9284

9231:                                             ; preds = %9225
  br label %9232

9232:                                             ; preds = %9231
  br label %9233

9233:                                             ; preds = %9232
  call void @llvm.lifetime.start.p0(i64 4, ptr %216) #11
  %9234 = call ptr @__errno_location() #12
  %9235 = load i32, ptr %9234, align 4, !tbaa !5
  store i32 %9235, ptr %216, align 4, !tbaa !5
  %9236 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9237 = call i32 @s2n_print_stacktrace(ptr noundef %9236)
  %9238 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9239 = trunc i8 %9238 to i1
  br i1 %9239, label %9240, label %9262

9240:                                             ; preds = %9233
  %9241 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9242 = call i32 @fileno(ptr noundef %9241) #11
  %9243 = call i32 @isatty(i32 noundef %9242) #11
  %9244 = icmp ne i32 %9243, 0
  br i1 %9244, label %9245, label %9262

9245:                                             ; preds = %9240
  %9246 = load i32, ptr %216, align 4, !tbaa !5
  %9247 = call ptr @__errno_location() #12
  store i32 %9246, ptr %9247, align 4, !tbaa !5
  %9248 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9249 = load i32, ptr @test_count, align 4, !tbaa !5
  %9250 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9251 = load i32, ptr %9250, align 4, !tbaa !5
  %9252 = call ptr @s2n_strerror(i32 noundef %9251, ptr noundef @.str.4)
  %9253 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9254 = load i32, ptr %9253, align 4, !tbaa !5
  %9255 = call ptr @s2n_strerror_debug(i32 noundef %9254, ptr noundef @.str.4)
  %9256 = call ptr @__errno_location() #12
  %9257 = load i32, ptr %9256, align 4, !tbaa !5
  %9258 = call ptr @strerror(i32 noundef %9257) #11
  %9259 = call ptr @__errno_location() #12
  %9260 = load i32, ptr %9259, align 4, !tbaa !5
  %9261 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9248, ptr noundef @.str.2, i32 noundef %9249, ptr noundef @.str.74, ptr noundef @.str.1, i32 noundef 450, ptr noundef %9252, ptr noundef %9255, ptr noundef %9258, i32 noundef %9260) #11
  br label %9279

9262:                                             ; preds = %9240, %9233
  %9263 = load i32, ptr %216, align 4, !tbaa !5
  %9264 = call ptr @__errno_location() #12
  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.4)
  %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.4)
  %9273 = call ptr @__errno_location() #12
  %9274 = load i32, ptr %9273, align 4, !tbaa !5
  %9275 = call ptr @strerror(i32 noundef %9274) #11
  %9276 = call ptr @__errno_location() #12
  %9277 = load i32, ptr %9276, align 4, !tbaa !5
  %9278 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9265, ptr noundef @.str.5, i32 noundef %9266, ptr noundef @.str.74, ptr noundef @.str.1, i32 noundef 450, ptr noundef %9269, ptr noundef %9272, ptr noundef %9275, i32 noundef %9277) #11
  br label %9279

9279:                                             ; preds = %9262, %9245
  call void @llvm.lifetime.end.p0(i64 4, ptr %216) #11
  br label %9280

9280:                                             ; preds = %9279
  br label %9281

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

9282:                                             ; No predecessors!
  br label %9283

9283:                                             ; preds = %9282
  br label %9284

9284:                                             ; preds = %9283, %9225
  br label %9285

9285:                                             ; preds = %9284
  br label %9286

9286:                                             ; preds = %9285
  br label %9287

9287:                                             ; preds = %9286
  br label %9288

9288:                                             ; preds = %9287
  br label %9289

9289:                                             ; preds = %9288
  %9290 = load i32, ptr @test_count, align 4, !tbaa !5
  %9291 = add nsw i32 %9290, 1
  store i32 %9291, ptr @test_count, align 4, !tbaa !5
  %9292 = load ptr, ptr %208, align 8, !tbaa !9
  %9293 = call i32 @s2n_connection_ktls_enable_recv(ptr noundef %9292)
  %9294 = icmp eq i32 %9293, -1
  br i1 %9294, label %9348, label %9295

9295:                                             ; preds = %9289
  br label %9296

9296:                                             ; preds = %9295
  br label %9297

9297:                                             ; preds = %9296
  call void @llvm.lifetime.start.p0(i64 4, ptr %217) #11
  %9298 = call ptr @__errno_location() #12
  %9299 = load i32, ptr %9298, align 4, !tbaa !5
  store i32 %9299, ptr %217, align 4, !tbaa !5
  %9300 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9301 = call i32 @s2n_print_stacktrace(ptr noundef %9300)
  %9302 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9303 = trunc i8 %9302 to i1
  br i1 %9303, label %9304, label %9326

9304:                                             ; preds = %9297
  %9305 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9306 = call i32 @fileno(ptr noundef %9305) #11
  %9307 = call i32 @isatty(i32 noundef %9306) #11
  %9308 = icmp ne i32 %9307, 0
  br i1 %9308, label %9309, label %9326

9309:                                             ; preds = %9304
  %9310 = load i32, ptr %217, align 4, !tbaa !5
  %9311 = call ptr @__errno_location() #12
  store i32 %9310, ptr %9311, align 4, !tbaa !5
  %9312 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9313 = load i32, ptr @test_count, align 4, !tbaa !5
  %9314 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9315 = load i32, ptr %9314, align 4, !tbaa !5
  %9316 = call ptr @s2n_strerror(i32 noundef %9315, ptr noundef @.str.4)
  %9317 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9318 = load i32, ptr %9317, align 4, !tbaa !5
  %9319 = call ptr @s2n_strerror_debug(i32 noundef %9318, ptr noundef @.str.4)
  %9320 = call ptr @__errno_location() #12
  %9321 = load i32, ptr %9320, align 4, !tbaa !5
  %9322 = call ptr @strerror(i32 noundef %9321) #11
  %9323 = call ptr @__errno_location() #12
  %9324 = load i32, ptr %9323, align 4, !tbaa !5
  %9325 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9312, ptr noundef @.str.2, i32 noundef %9313, ptr noundef @.str.75, ptr noundef @.str.1, i32 noundef 451, ptr noundef %9316, ptr noundef %9319, ptr noundef %9322, i32 noundef %9324) #11
  br label %9343

9326:                                             ; preds = %9304, %9297
  %9327 = load i32, ptr %217, align 4, !tbaa !5
  %9328 = call ptr @__errno_location() #12
  store i32 %9327, ptr %9328, align 4, !tbaa !5
  %9329 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9330 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %9332, ptr noundef @.str.4)
  %9334 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9335 = load i32, ptr %9334, align 4, !tbaa !5
  %9336 = call ptr @s2n_strerror_debug(i32 noundef %9335, ptr noundef @.str.4)
  %9337 = call ptr @__errno_location() #12
  %9338 = load i32, ptr %9337, align 4, !tbaa !5
  %9339 = call ptr @strerror(i32 noundef %9338) #11
  %9340 = call ptr @__errno_location() #12
  %9341 = load i32, ptr %9340, align 4, !tbaa !5
  %9342 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9329, ptr noundef @.str.5, i32 noundef %9330, ptr noundef @.str.75, ptr noundef @.str.1, i32 noundef 451, ptr noundef %9333, ptr noundef %9336, ptr noundef %9339, i32 noundef %9341) #11
  br label %9343

9343:                                             ; preds = %9326, %9309
  call void @llvm.lifetime.end.p0(i64 4, ptr %217) #11
  br label %9344

9344:                                             ; preds = %9343
  br label %9345

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

9346:                                             ; No predecessors!
  br label %9347

9347:                                             ; preds = %9346
  br label %9348

9348:                                             ; preds = %9347, %9289
  br label %9349

9349:                                             ; preds = %9348
  br label %9350

9350:                                             ; preds = %9349
  br label %9351

9351:                                             ; preds = %9350
  %9352 = load i32, ptr @test_count, align 4, !tbaa !5
  %9353 = add nsw i32 %9352, 1
  store i32 %9353, ptr @test_count, align 4, !tbaa !5
  %9354 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9355 = load i32, ptr %9354, align 4, !tbaa !5
  %9356 = icmp eq i32 %9355, 469762130
  br i1 %9356, label %9410, label %9357

9357:                                             ; preds = %9351
  br label %9358

9358:                                             ; preds = %9357
  br label %9359

9359:                                             ; preds = %9358
  call void @llvm.lifetime.start.p0(i64 4, ptr %218) #11
  %9360 = call ptr @__errno_location() #12
  %9361 = load i32, ptr %9360, align 4, !tbaa !5
  store i32 %9361, ptr %218, align 4, !tbaa !5
  %9362 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9363 = call i32 @s2n_print_stacktrace(ptr noundef %9362)
  %9364 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9365 = trunc i8 %9364 to i1
  br i1 %9365, label %9366, label %9388

9366:                                             ; preds = %9359
  %9367 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9368 = call i32 @fileno(ptr noundef %9367) #11
  %9369 = call i32 @isatty(i32 noundef %9368) #11
  %9370 = icmp ne i32 %9369, 0
  br i1 %9370, label %9371, label %9388

9371:                                             ; preds = %9366
  %9372 = load i32, ptr %218, align 4, !tbaa !5
  %9373 = call ptr @__errno_location() #12
  store i32 %9372, ptr %9373, align 4, !tbaa !5
  %9374 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9375 = load i32, ptr @test_count, align 4, !tbaa !5
  %9376 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9377 = load i32, ptr %9376, align 4, !tbaa !5
  %9378 = call ptr @s2n_strerror(i32 noundef %9377, ptr noundef @.str.4)
  %9379 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9380 = load i32, ptr %9379, align 4, !tbaa !5
  %9381 = call ptr @s2n_strerror_debug(i32 noundef %9380, ptr noundef @.str.4)
  %9382 = call ptr @__errno_location() #12
  %9383 = load i32, ptr %9382, align 4, !tbaa !5
  %9384 = call ptr @strerror(i32 noundef %9383) #11
  %9385 = call ptr @__errno_location() #12
  %9386 = load i32, ptr %9385, align 4, !tbaa !5
  %9387 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9374, ptr noundef @.str.2, i32 noundef %9375, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 451, ptr noundef %9378, ptr noundef %9381, ptr noundef %9384, i32 noundef %9386) #11
  br label %9405

9388:                                             ; preds = %9366, %9359
  %9389 = load i32, ptr %218, align 4, !tbaa !5
  %9390 = call ptr @__errno_location() #12
  store i32 %9389, ptr %9390, align 4, !tbaa !5
  %9391 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9392 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %9394, ptr noundef @.str.4)
  %9396 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9397 = load i32, ptr %9396, align 4, !tbaa !5
  %9398 = call ptr @s2n_strerror_debug(i32 noundef %9397, ptr noundef @.str.4)
  %9399 = call ptr @__errno_location() #12
  %9400 = load i32, ptr %9399, align 4, !tbaa !5
  %9401 = call ptr @strerror(i32 noundef %9400) #11
  %9402 = call ptr @__errno_location() #12
  %9403 = load i32, ptr %9402, align 4, !tbaa !5
  %9404 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9391, ptr noundef @.str.5, i32 noundef %9392, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 451, ptr noundef %9395, ptr noundef %9398, ptr noundef %9401, i32 noundef %9403) #11
  br label %9405

9405:                                             ; preds = %9388, %9371
  call void @llvm.lifetime.end.p0(i64 4, ptr %218) #11
  br label %9406

9406:                                             ; preds = %9405
  br label %9407

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

9408:                                             ; No predecessors!
  br label %9409

9409:                                             ; preds = %9408
  br label %9410

9410:                                             ; preds = %9409, %9351
  br label %9411

9411:                                             ; preds = %9410
  br label %9412

9412:                                             ; preds = %9411
  br label %9413

9413:                                             ; preds = %9412
  %9414 = load i32, ptr @test_count, align 4, !tbaa !5
  %9415 = add nsw i32 %9414, 1
  store i32 %9415, ptr @test_count, align 4, !tbaa !5
  %9416 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9417 = load i32, ptr %9416, align 4, !tbaa !5
  %9418 = call ptr @s2n_strerror_debug(i32 noundef %9417, ptr noundef @.str.4)
  %9419 = icmp eq ptr %9418, null
  br i1 %9419, label %9420, label %9473

9420:                                             ; preds = %9413
  br label %9421

9421:                                             ; preds = %9420
  br label %9422

9422:                                             ; preds = %9421
  call void @llvm.lifetime.start.p0(i64 4, ptr %219) #11
  %9423 = call ptr @__errno_location() #12
  %9424 = load i32, ptr %9423, align 4, !tbaa !5
  store i32 %9424, ptr %219, align 4, !tbaa !5
  %9425 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9426 = call i32 @s2n_print_stacktrace(ptr noundef %9425)
  %9427 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9428 = trunc i8 %9427 to i1
  br i1 %9428, label %9429, label %9451

9429:                                             ; preds = %9422
  %9430 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9431 = call i32 @fileno(ptr noundef %9430) #11
  %9432 = call i32 @isatty(i32 noundef %9431) #11
  %9433 = icmp ne i32 %9432, 0
  br i1 %9433, label %9434, label %9451

9434:                                             ; preds = %9429
  %9435 = load i32, ptr %219, align 4, !tbaa !5
  %9436 = call ptr @__errno_location() #12
  store i32 %9435, ptr %9436, align 4, !tbaa !5
  %9437 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9438 = load i32, ptr @test_count, align 4, !tbaa !5
  %9439 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9440 = load i32, ptr %9439, align 4, !tbaa !5
  %9441 = call ptr @s2n_strerror(i32 noundef %9440, ptr noundef @.str.4)
  %9442 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9443 = load i32, ptr %9442, align 4, !tbaa !5
  %9444 = call ptr @s2n_strerror_debug(i32 noundef %9443, ptr noundef @.str.4)
  %9445 = call ptr @__errno_location() #12
  %9446 = load i32, ptr %9445, align 4, !tbaa !5
  %9447 = call ptr @strerror(i32 noundef %9446) #11
  %9448 = call ptr @__errno_location() #12
  %9449 = load i32, ptr %9448, align 4, !tbaa !5
  %9450 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9437, ptr noundef @.str.2, i32 noundef %9438, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 451, ptr noundef %9441, ptr noundef %9444, ptr noundef %9447, i32 noundef %9449) #11
  br label %9468

9451:                                             ; preds = %9429, %9422
  %9452 = load i32, ptr %219, align 4, !tbaa !5
  %9453 = call ptr @__errno_location() #12
  store i32 %9452, ptr %9453, align 4, !tbaa !5
  %9454 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9455 = load i32, ptr @test_count, align 4, !tbaa !5
  %9456 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9457 = load i32, ptr %9456, align 4, !tbaa !5
  %9458 = call ptr @s2n_strerror(i32 noundef %9457, ptr noundef @.str.4)
  %9459 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9460 = load i32, ptr %9459, align 4, !tbaa !5
  %9461 = call ptr @s2n_strerror_debug(i32 noundef %9460, ptr noundef @.str.4)
  %9462 = call ptr @__errno_location() #12
  %9463 = load i32, ptr %9462, align 4, !tbaa !5
  %9464 = call ptr @strerror(i32 noundef %9463) #11
  %9465 = call ptr @__errno_location() #12
  %9466 = load i32, ptr %9465, align 4, !tbaa !5
  %9467 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9454, ptr noundef @.str.5, i32 noundef %9455, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 451, ptr noundef %9458, ptr noundef %9461, ptr noundef %9464, i32 noundef %9466) #11
  br label %9468

9468:                                             ; preds = %9451, %9434
  call void @llvm.lifetime.end.p0(i64 4, ptr %219) #11
  br label %9469

9469:                                             ; preds = %9468
  br label %9470

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

9471:                                             ; No predecessors!
  br label %9472

9472:                                             ; preds = %9471
  br label %9473

9473:                                             ; preds = %9472, %9413
  br label %9474

9474:                                             ; preds = %9473
  br label %9475

9475:                                             ; preds = %9474
  br label %9476

9476:                                             ; preds = %9475
  br label %9477

9477:                                             ; preds = %9476
  br label %9478

9478:                                             ; preds = %9477
  %9479 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %9479, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %9480 = call ptr @__errno_location() #12
  store i32 0, ptr %9480, align 4, !tbaa !5
  br label %9481

9481:                                             ; preds = %9478
  br label %9482

9482:                                             ; preds = %9481
  br label %9483

9483:                                             ; preds = %9482
  br label %9484

9484:                                             ; preds = %9483
  br label %9485

9485:                                             ; preds = %9484
  %9486 = load i32, ptr @test_count, align 4, !tbaa !5
  %9487 = add nsw i32 %9486, 1
  store i32 %9487, ptr @test_count, align 4, !tbaa !5
  %9488 = load ptr, ptr %212, align 8, !tbaa !9
  %9489 = call i32 @s2n_connection_ktls_enable_recv(ptr noundef %9488)
  %9490 = icmp eq i32 %9489, -1
  br i1 %9490, label %9491, label %9544

9491:                                             ; preds = %9485
  br label %9492

9492:                                             ; preds = %9491
  br label %9493

9493:                                             ; preds = %9492
  call void @llvm.lifetime.start.p0(i64 4, ptr %220) #11
  %9494 = call ptr @__errno_location() #12
  %9495 = load i32, ptr %9494, align 4, !tbaa !5
  store i32 %9495, ptr %220, align 4, !tbaa !5
  %9496 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9497 = call i32 @s2n_print_stacktrace(ptr noundef %9496)
  %9498 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9499 = trunc i8 %9498 to i1
  br i1 %9499, label %9500, label %9522

9500:                                             ; preds = %9493
  %9501 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9502 = call i32 @fileno(ptr noundef %9501) #11
  %9503 = call i32 @isatty(i32 noundef %9502) #11
  %9504 = icmp ne i32 %9503, 0
  br i1 %9504, label %9505, label %9522

9505:                                             ; preds = %9500
  %9506 = load i32, ptr %220, align 4, !tbaa !5
  %9507 = call ptr @__errno_location() #12
  store i32 %9506, ptr %9507, align 4, !tbaa !5
  %9508 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9509 = load i32, ptr @test_count, align 4, !tbaa !5
  %9510 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9511 = load i32, ptr %9510, align 4, !tbaa !5
  %9512 = call ptr @s2n_strerror(i32 noundef %9511, ptr noundef @.str.4)
  %9513 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9514 = load i32, ptr %9513, align 4, !tbaa !5
  %9515 = call ptr @s2n_strerror_debug(i32 noundef %9514, ptr noundef @.str.4)
  %9516 = call ptr @__errno_location() #12
  %9517 = load i32, ptr %9516, align 4, !tbaa !5
  %9518 = call ptr @strerror(i32 noundef %9517) #11
  %9519 = call ptr @__errno_location() #12
  %9520 = load i32, ptr %9519, align 4, !tbaa !5
  %9521 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9508, ptr noundef @.str.2, i32 noundef %9509, ptr noundef @.str.77, ptr noundef @.str.1, i32 noundef 452, ptr noundef %9512, ptr noundef %9515, ptr noundef %9518, i32 noundef %9520) #11
  br label %9539

9522:                                             ; preds = %9500, %9493
  %9523 = load i32, ptr %220, align 4, !tbaa !5
  %9524 = call ptr @__errno_location() #12
  store i32 %9523, ptr %9524, align 4, !tbaa !5
  %9525 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9526 = load i32, ptr @test_count, align 4, !tbaa !5
  %9527 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9528 = load i32, ptr %9527, align 4, !tbaa !5
  %9529 = call ptr @s2n_strerror(i32 noundef %9528, ptr noundef @.str.4)
  %9530 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9531 = load i32, ptr %9530, align 4, !tbaa !5
  %9532 = call ptr @s2n_strerror_debug(i32 noundef %9531, ptr noundef @.str.4)
  %9533 = call ptr @__errno_location() #12
  %9534 = load i32, ptr %9533, align 4, !tbaa !5
  %9535 = call ptr @strerror(i32 noundef %9534) #11
  %9536 = call ptr @__errno_location() #12
  %9537 = load i32, ptr %9536, align 4, !tbaa !5
  %9538 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9525, ptr noundef @.str.5, i32 noundef %9526, ptr noundef @.str.77, ptr noundef @.str.1, i32 noundef 452, ptr noundef %9529, ptr noundef %9532, ptr noundef %9535, i32 noundef %9537) #11
  br label %9539

9539:                                             ; preds = %9522, %9505
  call void @llvm.lifetime.end.p0(i64 4, ptr %220) #11
  br label %9540

9540:                                             ; preds = %9539
  br label %9541

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

9542:                                             ; No predecessors!
  br label %9543

9543:                                             ; preds = %9542
  br label %9544

9544:                                             ; preds = %9543, %9485
  br label %9545

9545:                                             ; preds = %9544
  br label %9546

9546:                                             ; preds = %9545
  %9547 = call i32 @s2n_connection_ptr_free(ptr noundef %212)
  %9548 = getelementptr inbounds %struct.s2n_result, ptr %221, i32 0, i32 0
  store i32 %9547, ptr %9548, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %212) #11
  %9549 = call i32 @s2n_connection_ptr_free(ptr noundef %208)
  %9550 = getelementptr inbounds %struct.s2n_result, ptr %222, i32 0, i32 0
  store i32 %9549, ptr %9550, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %208) #11
  %9551 = call i32 @s2n_config_ptr_free(ptr noundef %207)
  %9552 = getelementptr inbounds %struct.s2n_result, ptr %223, i32 0, i32 0
  store i32 %9551, ptr %9552, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %207) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %224) #11
  %9553 = call ptr @s2n_config_new()
  store ptr %9553, ptr %224, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %225) #11
  %9554 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %9554, ptr %225, align 8, !tbaa !9
  br label %9555

9555:                                             ; preds = %9546
  %9556 = load i32, ptr @test_count, align 4, !tbaa !5
  %9557 = add nsw i32 %9556, 1
  store i32 %9557, ptr @test_count, align 4, !tbaa !5
  %9558 = load ptr, ptr %225, align 8, !tbaa !9
  %9559 = call i32 @s2n_test_configure_connection_for_ktls(ptr noundef %9558)
  %9560 = getelementptr inbounds %struct.s2n_result, ptr %226, i32 0, i32 0
  store i32 %9559, ptr %9560, align 4
  %9561 = getelementptr inbounds %struct.s2n_result, ptr %226, i32 0, i32 0
  %9562 = load i32, ptr %9561, align 4
  %9563 = call zeroext i1 @s2n_result_is_ok(i32 %9562)
  br i1 %9563, label %9617, label %9564

9564:                                             ; preds = %9555
  br label %9565

9565:                                             ; preds = %9564
  br label %9566

9566:                                             ; preds = %9565
  call void @llvm.lifetime.start.p0(i64 4, ptr %227) #11
  %9567 = call ptr @__errno_location() #12
  %9568 = load i32, ptr %9567, align 4, !tbaa !5
  store i32 %9568, ptr %227, align 4, !tbaa !5
  %9569 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9570 = call i32 @s2n_print_stacktrace(ptr noundef %9569)
  %9571 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9572 = trunc i8 %9571 to i1
  br i1 %9572, label %9573, label %9595

9573:                                             ; preds = %9566
  %9574 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9575 = call i32 @fileno(ptr noundef %9574) #11
  %9576 = call i32 @isatty(i32 noundef %9575) #11
  %9577 = icmp ne i32 %9576, 0
  br i1 %9577, label %9578, label %9595

9578:                                             ; preds = %9573
  %9579 = load i32, ptr %227, align 4, !tbaa !5
  %9580 = call ptr @__errno_location() #12
  store i32 %9579, ptr %9580, align 4, !tbaa !5
  %9581 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9582 = load i32, ptr @test_count, align 4, !tbaa !5
  %9583 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9584 = load i32, ptr %9583, align 4, !tbaa !5
  %9585 = call ptr @s2n_strerror(i32 noundef %9584, ptr noundef @.str.4)
  %9586 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9587 = load i32, ptr %9586, align 4, !tbaa !5
  %9588 = call ptr @s2n_strerror_debug(i32 noundef %9587, ptr noundef @.str.4)
  %9589 = call ptr @__errno_location() #12
  %9590 = load i32, ptr %9589, align 4, !tbaa !5
  %9591 = call ptr @strerror(i32 noundef %9590) #11
  %9592 = call ptr @__errno_location() #12
  %9593 = load i32, ptr %9592, align 4, !tbaa !5
  %9594 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9581, ptr noundef @.str.2, i32 noundef %9582, ptr noundef @.str.70, ptr noundef @.str.1, i32 noundef 461, ptr noundef %9585, ptr noundef %9588, ptr noundef %9591, i32 noundef %9593) #11
  br label %9612

9595:                                             ; preds = %9573, %9566
  %9596 = load i32, ptr %227, align 4, !tbaa !5
  %9597 = call ptr @__errno_location() #12
  store i32 %9596, ptr %9597, align 4, !tbaa !5
  %9598 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9599 = load i32, ptr @test_count, align 4, !tbaa !5
  %9600 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9601 = load i32, ptr %9600, align 4, !tbaa !5
  %9602 = call ptr @s2n_strerror(i32 noundef %9601, ptr noundef @.str.4)
  %9603 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9604 = load i32, ptr %9603, align 4, !tbaa !5
  %9605 = call ptr @s2n_strerror_debug(i32 noundef %9604, ptr noundef @.str.4)
  %9606 = call ptr @__errno_location() #12
  %9607 = load i32, ptr %9606, align 4, !tbaa !5
  %9608 = call ptr @strerror(i32 noundef %9607) #11
  %9609 = call ptr @__errno_location() #12
  %9610 = load i32, ptr %9609, align 4, !tbaa !5
  %9611 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9598, ptr noundef @.str.5, i32 noundef %9599, ptr noundef @.str.70, ptr noundef @.str.1, i32 noundef 461, ptr noundef %9602, ptr noundef %9605, ptr noundef %9608, i32 noundef %9610) #11
  br label %9612

9612:                                             ; preds = %9595, %9578
  call void @llvm.lifetime.end.p0(i64 4, ptr %227) #11
  br label %9613

9613:                                             ; preds = %9612
  br label %9614

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

9615:                                             ; No predecessors!
  br label %9616

9616:                                             ; preds = %9615
  br label %9617

9617:                                             ; preds = %9616, %9555
  br label %9618

9618:                                             ; preds = %9617
  br label %9619

9619:                                             ; preds = %9618
  br label %9620

9620:                                             ; preds = %9619
  %9621 = load i32, ptr @test_count, align 4, !tbaa !5
  %9622 = add nsw i32 %9621, 1
  store i32 %9622, ptr @test_count, align 4, !tbaa !5
  %9623 = load ptr, ptr %225, align 8, !tbaa !9
  %9624 = load ptr, ptr %224, align 8, !tbaa !9
  %9625 = call i32 @s2n_connection_set_config(ptr noundef %9623, ptr noundef %9624)
  %9626 = icmp eq i32 %9625, -1
  br i1 %9626, label %9627, label %9680

9627:                                             ; preds = %9620
  br label %9628

9628:                                             ; preds = %9627
  br label %9629

9629:                                             ; preds = %9628
  call void @llvm.lifetime.start.p0(i64 4, ptr %228) #11
  %9630 = call ptr @__errno_location() #12
  %9631 = load i32, ptr %9630, align 4, !tbaa !5
  store i32 %9631, ptr %228, align 4, !tbaa !5
  %9632 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9633 = call i32 @s2n_print_stacktrace(ptr noundef %9632)
  %9634 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9635 = trunc i8 %9634 to i1
  br i1 %9635, label %9636, label %9658

9636:                                             ; preds = %9629
  %9637 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9638 = call i32 @fileno(ptr noundef %9637) #11
  %9639 = call i32 @isatty(i32 noundef %9638) #11
  %9640 = icmp ne i32 %9639, 0
  br i1 %9640, label %9641, label %9658

9641:                                             ; preds = %9636
  %9642 = load i32, ptr %228, align 4, !tbaa !5
  %9643 = call ptr @__errno_location() #12
  store i32 %9642, ptr %9643, align 4, !tbaa !5
  %9644 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9645 = load i32, ptr @test_count, align 4, !tbaa !5
  %9646 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9647 = load i32, ptr %9646, align 4, !tbaa !5
  %9648 = call ptr @s2n_strerror(i32 noundef %9647, ptr noundef @.str.4)
  %9649 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9650 = load i32, ptr %9649, align 4, !tbaa !5
  %9651 = call ptr @s2n_strerror_debug(i32 noundef %9650, ptr noundef @.str.4)
  %9652 = call ptr @__errno_location() #12
  %9653 = load i32, ptr %9652, align 4, !tbaa !5
  %9654 = call ptr @strerror(i32 noundef %9653) #11
  %9655 = call ptr @__errno_location() #12
  %9656 = load i32, ptr %9655, align 4, !tbaa !5
  %9657 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9644, ptr noundef @.str.2, i32 noundef %9645, ptr noundef @.str.71, ptr noundef @.str.1, i32 noundef 462, ptr noundef %9648, ptr noundef %9651, ptr noundef %9654, i32 noundef %9656) #11
  br label %9675

9658:                                             ; preds = %9636, %9629
  %9659 = load i32, ptr %228, align 4, !tbaa !5
  %9660 = call ptr @__errno_location() #12
  store i32 %9659, ptr %9660, align 4, !tbaa !5
  %9661 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9662 = load i32, ptr @test_count, align 4, !tbaa !5
  %9663 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9664 = load i32, ptr %9663, align 4, !tbaa !5
  %9665 = call ptr @s2n_strerror(i32 noundef %9664, ptr noundef @.str.4)
  %9666 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9667 = load i32, ptr %9666, align 4, !tbaa !5
  %9668 = call ptr @s2n_strerror_debug(i32 noundef %9667, ptr noundef @.str.4)
  %9669 = call ptr @__errno_location() #12
  %9670 = load i32, ptr %9669, align 4, !tbaa !5
  %9671 = call ptr @strerror(i32 noundef %9670) #11
  %9672 = call ptr @__errno_location() #12
  %9673 = load i32, ptr %9672, align 4, !tbaa !5
  %9674 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9661, ptr noundef @.str.5, i32 noundef %9662, ptr noundef @.str.71, ptr noundef @.str.1, i32 noundef 462, ptr noundef %9665, ptr noundef %9668, ptr noundef %9671, i32 noundef %9673) #11
  br label %9675

9675:                                             ; preds = %9658, %9641
  call void @llvm.lifetime.end.p0(i64 4, ptr %228) #11
  br label %9676

9676:                                             ; preds = %9675
  br label %9677

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

9678:                                             ; No predecessors!
  br label %9679

9679:                                             ; preds = %9678
  br label %9680

9680:                                             ; preds = %9679, %9620
  br label %9681

9681:                                             ; preds = %9680
  br label %9682

9682:                                             ; preds = %9681
  br label %9683

9683:                                             ; preds = %9682
  %9684 = load i32, ptr @test_count, align 4, !tbaa !5
  %9685 = add nsw i32 %9684, 1
  store i32 %9685, ptr @test_count, align 4, !tbaa !5
  %9686 = load ptr, ptr %224, align 8, !tbaa !9
  %9687 = call i32 @s2n_config_set_serialization_version(ptr noundef %9686, i32 noundef 1)
  %9688 = icmp eq i32 %9687, -1
  br i1 %9688, label %9689, label %9742

9689:                                             ; preds = %9683
  br label %9690

9690:                                             ; preds = %9689
  br label %9691

9691:                                             ; preds = %9690
  call void @llvm.lifetime.start.p0(i64 4, ptr %229) #11
  %9692 = call ptr @__errno_location() #12
  %9693 = load i32, ptr %9692, align 4, !tbaa !5
  store i32 %9693, ptr %229, align 4, !tbaa !5
  %9694 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9695 = call i32 @s2n_print_stacktrace(ptr noundef %9694)
  %9696 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9697 = trunc i8 %9696 to i1
  br i1 %9697, label %9698, label %9720

9698:                                             ; preds = %9691
  %9699 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9700 = call i32 @fileno(ptr noundef %9699) #11
  %9701 = call i32 @isatty(i32 noundef %9700) #11
  %9702 = icmp ne i32 %9701, 0
  br i1 %9702, label %9703, label %9720

9703:                                             ; preds = %9698
  %9704 = load i32, ptr %229, align 4, !tbaa !5
  %9705 = call ptr @__errno_location() #12
  store i32 %9704, ptr %9705, align 4, !tbaa !5
  %9706 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9707 = load i32, ptr @test_count, align 4, !tbaa !5
  %9708 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9709 = load i32, ptr %9708, align 4, !tbaa !5
  %9710 = call ptr @s2n_strerror(i32 noundef %9709, ptr noundef @.str.4)
  %9711 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9712 = load i32, ptr %9711, align 4, !tbaa !5
  %9713 = call ptr @s2n_strerror_debug(i32 noundef %9712, ptr noundef @.str.4)
  %9714 = call ptr @__errno_location() #12
  %9715 = load i32, ptr %9714, align 4, !tbaa !5
  %9716 = call ptr @strerror(i32 noundef %9715) #11
  %9717 = call ptr @__errno_location() #12
  %9718 = load i32, ptr %9717, align 4, !tbaa !5
  %9719 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9706, ptr noundef @.str.2, i32 noundef %9707, ptr noundef @.str.78, ptr noundef @.str.1, i32 noundef 464, ptr noundef %9710, ptr noundef %9713, ptr noundef %9716, i32 noundef %9718) #11
  br label %9737

9720:                                             ; preds = %9698, %9691
  %9721 = load i32, ptr %229, align 4, !tbaa !5
  %9722 = call ptr @__errno_location() #12
  store i32 %9721, ptr %9722, align 4, !tbaa !5
  %9723 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9724 = load i32, ptr @test_count, align 4, !tbaa !5
  %9725 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9726 = load i32, ptr %9725, align 4, !tbaa !5
  %9727 = call ptr @s2n_strerror(i32 noundef %9726, ptr noundef @.str.4)
  %9728 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9729 = load i32, ptr %9728, align 4, !tbaa !5
  %9730 = call ptr @s2n_strerror_debug(i32 noundef %9729, ptr noundef @.str.4)
  %9731 = call ptr @__errno_location() #12
  %9732 = load i32, ptr %9731, align 4, !tbaa !5
  %9733 = call ptr @strerror(i32 noundef %9732) #11
  %9734 = call ptr @__errno_location() #12
  %9735 = load i32, ptr %9734, align 4, !tbaa !5
  %9736 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9723, ptr noundef @.str.5, i32 noundef %9724, ptr noundef @.str.78, ptr noundef @.str.1, i32 noundef 464, ptr noundef %9727, ptr noundef %9730, ptr noundef %9733, i32 noundef %9735) #11
  br label %9737

9737:                                             ; preds = %9720, %9703
  call void @llvm.lifetime.end.p0(i64 4, ptr %229) #11
  br label %9738

9738:                                             ; preds = %9737
  br label %9739

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

9740:                                             ; No predecessors!
  br label %9741

9741:                                             ; preds = %9740
  br label %9742

9742:                                             ; preds = %9741, %9683
  br label %9743

9743:                                             ; preds = %9742
  br label %9744

9744:                                             ; preds = %9743
  br label %9745

9745:                                             ; preds = %9744
  br label %9746

9746:                                             ; preds = %9745
  br label %9747

9747:                                             ; preds = %9746
  %9748 = load i32, ptr @test_count, align 4, !tbaa !5
  %9749 = add nsw i32 %9748, 1
  store i32 %9749, ptr @test_count, align 4, !tbaa !5
  %9750 = load ptr, ptr %225, align 8, !tbaa !9
  %9751 = call i32 @s2n_connection_ktls_enable_recv(ptr noundef %9750)
  %9752 = icmp eq i32 %9751, -1
  br i1 %9752, label %9806, label %9753

9753:                                             ; preds = %9747
  br label %9754

9754:                                             ; preds = %9753
  br label %9755

9755:                                             ; preds = %9754
  call void @llvm.lifetime.start.p0(i64 4, ptr %230) #11
  %9756 = call ptr @__errno_location() #12
  %9757 = load i32, ptr %9756, align 4, !tbaa !5
  store i32 %9757, ptr %230, align 4, !tbaa !5
  %9758 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9759 = call i32 @s2n_print_stacktrace(ptr noundef %9758)
  %9760 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9761 = trunc i8 %9760 to i1
  br i1 %9761, label %9762, label %9784

9762:                                             ; preds = %9755
  %9763 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9764 = call i32 @fileno(ptr noundef %9763) #11
  %9765 = call i32 @isatty(i32 noundef %9764) #11
  %9766 = icmp ne i32 %9765, 0
  br i1 %9766, label %9767, label %9784

9767:                                             ; preds = %9762
  %9768 = load i32, ptr %230, align 4, !tbaa !5
  %9769 = call ptr @__errno_location() #12
  store i32 %9768, ptr %9769, align 4, !tbaa !5
  %9770 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9771 = load i32, ptr @test_count, align 4, !tbaa !5
  %9772 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9773 = load i32, ptr %9772, align 4, !tbaa !5
  %9774 = call ptr @s2n_strerror(i32 noundef %9773, ptr noundef @.str.4)
  %9775 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9776 = load i32, ptr %9775, align 4, !tbaa !5
  %9777 = call ptr @s2n_strerror_debug(i32 noundef %9776, ptr noundef @.str.4)
  %9778 = call ptr @__errno_location() #12
  %9779 = load i32, ptr %9778, align 4, !tbaa !5
  %9780 = call ptr @strerror(i32 noundef %9779) #11
  %9781 = call ptr @__errno_location() #12
  %9782 = load i32, ptr %9781, align 4, !tbaa !5
  %9783 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9770, ptr noundef @.str.2, i32 noundef %9771, ptr noundef @.str.75, ptr noundef @.str.1, i32 noundef 465, ptr noundef %9774, ptr noundef %9777, ptr noundef %9780, i32 noundef %9782) #11
  br label %9801

9784:                                             ; preds = %9762, %9755
  %9785 = load i32, ptr %230, align 4, !tbaa !5
  %9786 = call ptr @__errno_location() #12
  store i32 %9785, ptr %9786, align 4, !tbaa !5
  %9787 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9788 = load i32, ptr @test_count, align 4, !tbaa !5
  %9789 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9790 = load i32, ptr %9789, align 4, !tbaa !5
  %9791 = call ptr @s2n_strerror(i32 noundef %9790, ptr noundef @.str.4)
  %9792 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9793 = load i32, ptr %9792, align 4, !tbaa !5
  %9794 = call ptr @s2n_strerror_debug(i32 noundef %9793, ptr noundef @.str.4)
  %9795 = call ptr @__errno_location() #12
  %9796 = load i32, ptr %9795, align 4, !tbaa !5
  %9797 = call ptr @strerror(i32 noundef %9796) #11
  %9798 = call ptr @__errno_location() #12
  %9799 = load i32, ptr %9798, align 4, !tbaa !5
  %9800 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9787, ptr noundef @.str.5, i32 noundef %9788, ptr noundef @.str.75, ptr noundef @.str.1, i32 noundef 465, ptr noundef %9791, ptr noundef %9794, ptr noundef %9797, i32 noundef %9799) #11
  br label %9801

9801:                                             ; preds = %9784, %9767
  call void @llvm.lifetime.end.p0(i64 4, ptr %230) #11
  br label %9802

9802:                                             ; preds = %9801
  br label %9803

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

9804:                                             ; No predecessors!
  br label %9805

9805:                                             ; preds = %9804
  br label %9806

9806:                                             ; preds = %9805, %9747
  br label %9807

9807:                                             ; preds = %9806
  br label %9808

9808:                                             ; preds = %9807
  br label %9809

9809:                                             ; preds = %9808
  %9810 = load i32, ptr @test_count, align 4, !tbaa !5
  %9811 = add nsw i32 %9810, 1
  store i32 %9811, ptr @test_count, align 4, !tbaa !5
  %9812 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9813 = load i32, ptr %9812, align 4, !tbaa !5
  %9814 = icmp eq i32 %9813, 469762127
  br i1 %9814, label %9868, label %9815

9815:                                             ; preds = %9809
  br label %9816

9816:                                             ; preds = %9815
  br label %9817

9817:                                             ; preds = %9816
  call void @llvm.lifetime.start.p0(i64 4, ptr %231) #11
  %9818 = call ptr @__errno_location() #12
  %9819 = load i32, ptr %9818, align 4, !tbaa !5
  store i32 %9819, ptr %231, align 4, !tbaa !5
  %9820 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9821 = call i32 @s2n_print_stacktrace(ptr noundef %9820)
  %9822 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9823 = trunc i8 %9822 to i1
  br i1 %9823, label %9824, label %9846

9824:                                             ; preds = %9817
  %9825 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9826 = call i32 @fileno(ptr noundef %9825) #11
  %9827 = call i32 @isatty(i32 noundef %9826) #11
  %9828 = icmp ne i32 %9827, 0
  br i1 %9828, label %9829, label %9846

9829:                                             ; preds = %9824
  %9830 = load i32, ptr %231, align 4, !tbaa !5
  %9831 = call ptr @__errno_location() #12
  store i32 %9830, ptr %9831, align 4, !tbaa !5
  %9832 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9833 = load i32, ptr @test_count, align 4, !tbaa !5
  %9834 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9835 = load i32, ptr %9834, align 4, !tbaa !5
  %9836 = call ptr @s2n_strerror(i32 noundef %9835, ptr noundef @.str.4)
  %9837 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9838 = load i32, ptr %9837, align 4, !tbaa !5
  %9839 = call ptr @s2n_strerror_debug(i32 noundef %9838, ptr noundef @.str.4)
  %9840 = call ptr @__errno_location() #12
  %9841 = load i32, ptr %9840, align 4, !tbaa !5
  %9842 = call ptr @strerror(i32 noundef %9841) #11
  %9843 = call ptr @__errno_location() #12
  %9844 = load i32, ptr %9843, align 4, !tbaa !5
  %9845 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9832, ptr noundef @.str.2, i32 noundef %9833, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 465, ptr noundef %9836, ptr noundef %9839, ptr noundef %9842, i32 noundef %9844) #11
  br label %9863

9846:                                             ; preds = %9824, %9817
  %9847 = load i32, ptr %231, align 4, !tbaa !5
  %9848 = call ptr @__errno_location() #12
  store i32 %9847, ptr %9848, align 4, !tbaa !5
  %9849 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9850 = load i32, ptr @test_count, align 4, !tbaa !5
  %9851 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9852 = load i32, ptr %9851, align 4, !tbaa !5
  %9853 = call ptr @s2n_strerror(i32 noundef %9852, ptr noundef @.str.4)
  %9854 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9855 = load i32, ptr %9854, align 4, !tbaa !5
  %9856 = call ptr @s2n_strerror_debug(i32 noundef %9855, ptr noundef @.str.4)
  %9857 = call ptr @__errno_location() #12
  %9858 = load i32, ptr %9857, align 4, !tbaa !5
  %9859 = call ptr @strerror(i32 noundef %9858) #11
  %9860 = call ptr @__errno_location() #12
  %9861 = load i32, ptr %9860, align 4, !tbaa !5
  %9862 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9849, ptr noundef @.str.5, i32 noundef %9850, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 465, ptr noundef %9853, ptr noundef %9856, ptr noundef %9859, i32 noundef %9861) #11
  br label %9863

9863:                                             ; preds = %9846, %9829
  call void @llvm.lifetime.end.p0(i64 4, ptr %231) #11
  br label %9864

9864:                                             ; preds = %9863
  br label %9865

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

9866:                                             ; No predecessors!
  br label %9867

9867:                                             ; preds = %9866
  br label %9868

9868:                                             ; preds = %9867, %9809
  br label %9869

9869:                                             ; preds = %9868
  br label %9870

9870:                                             ; preds = %9869
  br label %9871

9871:                                             ; preds = %9870
  %9872 = load i32, ptr @test_count, align 4, !tbaa !5
  %9873 = add nsw i32 %9872, 1
  store i32 %9873, ptr @test_count, align 4, !tbaa !5
  %9874 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9875 = load i32, ptr %9874, align 4, !tbaa !5
  %9876 = call ptr @s2n_strerror_debug(i32 noundef %9875, ptr noundef @.str.4)
  %9877 = icmp eq ptr %9876, null
  br i1 %9877, label %9878, label %9931

9878:                                             ; preds = %9871
  br label %9879

9879:                                             ; preds = %9878
  br label %9880

9880:                                             ; preds = %9879
  call void @llvm.lifetime.start.p0(i64 4, ptr %232) #11
  %9881 = call ptr @__errno_location() #12
  %9882 = load i32, ptr %9881, align 4, !tbaa !5
  store i32 %9882, ptr %232, align 4, !tbaa !5
  %9883 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9884 = call i32 @s2n_print_stacktrace(ptr noundef %9883)
  %9885 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9886 = trunc i8 %9885 to i1
  br i1 %9886, label %9887, label %9909

9887:                                             ; preds = %9880
  %9888 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9889 = call i32 @fileno(ptr noundef %9888) #11
  %9890 = call i32 @isatty(i32 noundef %9889) #11
  %9891 = icmp ne i32 %9890, 0
  br i1 %9891, label %9892, label %9909

9892:                                             ; preds = %9887
  %9893 = load i32, ptr %232, align 4, !tbaa !5
  %9894 = call ptr @__errno_location() #12
  store i32 %9893, ptr %9894, align 4, !tbaa !5
  %9895 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9896 = load i32, ptr @test_count, align 4, !tbaa !5
  %9897 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9898 = load i32, ptr %9897, align 4, !tbaa !5
  %9899 = call ptr @s2n_strerror(i32 noundef %9898, ptr noundef @.str.4)
  %9900 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9901 = load i32, ptr %9900, align 4, !tbaa !5
  %9902 = call ptr @s2n_strerror_debug(i32 noundef %9901, ptr noundef @.str.4)
  %9903 = call ptr @__errno_location() #12
  %9904 = load i32, ptr %9903, align 4, !tbaa !5
  %9905 = call ptr @strerror(i32 noundef %9904) #11
  %9906 = call ptr @__errno_location() #12
  %9907 = load i32, ptr %9906, align 4, !tbaa !5
  %9908 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9895, ptr noundef @.str.2, i32 noundef %9896, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 465, ptr noundef %9899, ptr noundef %9902, ptr noundef %9905, i32 noundef %9907) #11
  br label %9926

9909:                                             ; preds = %9887, %9880
  %9910 = load i32, ptr %232, align 4, !tbaa !5
  %9911 = call ptr @__errno_location() #12
  store i32 %9910, ptr %9911, align 4, !tbaa !5
  %9912 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9913 = load i32, ptr @test_count, align 4, !tbaa !5
  %9914 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9915 = load i32, ptr %9914, align 4, !tbaa !5
  %9916 = call ptr @s2n_strerror(i32 noundef %9915, ptr noundef @.str.4)
  %9917 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9918 = load i32, ptr %9917, align 4, !tbaa !5
  %9919 = call ptr @s2n_strerror_debug(i32 noundef %9918, ptr noundef @.str.4)
  %9920 = call ptr @__errno_location() #12
  %9921 = load i32, ptr %9920, align 4, !tbaa !5
  %9922 = call ptr @strerror(i32 noundef %9921) #11
  %9923 = call ptr @__errno_location() #12
  %9924 = load i32, ptr %9923, align 4, !tbaa !5
  %9925 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9912, ptr noundef @.str.5, i32 noundef %9913, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 465, ptr noundef %9916, ptr noundef %9919, ptr noundef %9922, i32 noundef %9924) #11
  br label %9926

9926:                                             ; preds = %9909, %9892
  call void @llvm.lifetime.end.p0(i64 4, ptr %232) #11
  br label %9927

9927:                                             ; preds = %9926
  br label %9928

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

9929:                                             ; No predecessors!
  br label %9930

9930:                                             ; preds = %9929
  br label %9931

9931:                                             ; preds = %9930, %9871
  br label %9932

9932:                                             ; preds = %9931
  br label %9933

9933:                                             ; preds = %9932
  br label %9934

9934:                                             ; preds = %9933
  br label %9935

9935:                                             ; preds = %9934
  br label %9936

9936:                                             ; preds = %9935
  %9937 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %9937, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %9938 = call ptr @__errno_location() #12
  store i32 0, ptr %9938, align 4, !tbaa !5
  br label %9939

9939:                                             ; preds = %9936
  br label %9940

9940:                                             ; preds = %9939
  br label %9941

9941:                                             ; preds = %9940
  br label %9942

9942:                                             ; preds = %9941
  %9943 = load ptr, ptr %224, align 8, !tbaa !9
  %9944 = getelementptr inbounds %struct.s2n_config, ptr %9943, i32 0, i32 55
  store i32 0, ptr %9944, align 8, !tbaa !70
  br label %9945

9945:                                             ; preds = %9942
  %9946 = load i32, ptr @test_count, align 4, !tbaa !5
  %9947 = add nsw i32 %9946, 1
  store i32 %9947, ptr @test_count, align 4, !tbaa !5
  %9948 = load ptr, ptr %225, align 8, !tbaa !9
  %9949 = call i32 @s2n_connection_ktls_enable_recv(ptr noundef %9948)
  %9950 = icmp eq i32 %9949, -1
  br i1 %9950, label %9951, label %10004

9951:                                             ; preds = %9945
  br label %9952

9952:                                             ; preds = %9951
  br label %9953

9953:                                             ; preds = %9952
  call void @llvm.lifetime.start.p0(i64 4, ptr %233) #11
  %9954 = call ptr @__errno_location() #12
  %9955 = load i32, ptr %9954, align 4, !tbaa !5
  store i32 %9955, ptr %233, align 4, !tbaa !5
  %9956 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9957 = call i32 @s2n_print_stacktrace(ptr noundef %9956)
  %9958 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9959 = trunc i8 %9958 to i1
  br i1 %9959, label %9960, label %9982

9960:                                             ; preds = %9953
  %9961 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9962 = call i32 @fileno(ptr noundef %9961) #11
  %9963 = call i32 @isatty(i32 noundef %9962) #11
  %9964 = icmp ne i32 %9963, 0
  br i1 %9964, label %9965, label %9982

9965:                                             ; preds = %9960
  %9966 = load i32, ptr %233, align 4, !tbaa !5
  %9967 = call ptr @__errno_location() #12
  store i32 %9966, ptr %9967, align 4, !tbaa !5
  %9968 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9969 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %9971, ptr noundef @.str.4)
  %9973 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9974 = load i32, ptr %9973, align 4, !tbaa !5
  %9975 = call ptr @s2n_strerror_debug(i32 noundef %9974, ptr noundef @.str.4)
  %9976 = call ptr @__errno_location() #12
  %9977 = load i32, ptr %9976, align 4, !tbaa !5
  %9978 = call ptr @strerror(i32 noundef %9977) #11
  %9979 = call ptr @__errno_location() #12
  %9980 = load i32, ptr %9979, align 4, !tbaa !5
  %9981 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9968, ptr noundef @.str.2, i32 noundef %9969, ptr noundef @.str.79, ptr noundef @.str.1, i32 noundef 469, ptr noundef %9972, ptr noundef %9975, ptr noundef %9978, i32 noundef %9980) #11
  br label %9999

9982:                                             ; preds = %9960, %9953
  %9983 = load i32, ptr %233, align 4, !tbaa !5
  %9984 = call ptr @__errno_location() #12
  store i32 %9983, ptr %9984, align 4, !tbaa !5
  %9985 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9986 = load i32, ptr @test_count, align 4, !tbaa !5
  %9987 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9988 = load i32, ptr %9987, align 4, !tbaa !5
  %9989 = call ptr @s2n_strerror(i32 noundef %9988, ptr noundef @.str.4)
  %9990 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9991 = load i32, ptr %9990, align 4, !tbaa !5
  %9992 = call ptr @s2n_strerror_debug(i32 noundef %9991, ptr noundef @.str.4)
  %9993 = call ptr @__errno_location() #12
  %9994 = load i32, ptr %9993, align 4, !tbaa !5
  %9995 = call ptr @strerror(i32 noundef %9994) #11
  %9996 = call ptr @__errno_location() #12
  %9997 = load i32, ptr %9996, align 4, !tbaa !5
  %9998 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9985, ptr noundef @.str.5, i32 noundef %9986, ptr noundef @.str.79, ptr noundef @.str.1, i32 noundef 469, ptr noundef %9989, ptr noundef %9992, ptr noundef %9995, i32 noundef %9997) #11
  br label %9999

9999:                                             ; preds = %9982, %9965
  call void @llvm.lifetime.end.p0(i64 4, ptr %233) #11
  br label %10000

10000:                                            ; preds = %9999
  br label %10001

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

10002:                                            ; No predecessors!
  br label %10003

10003:                                            ; preds = %10002
  br label %10004

10004:                                            ; preds = %10003, %9945
  br label %10005

10005:                                            ; preds = %10004
  br label %10006

10006:                                            ; preds = %10005
  %10007 = call i32 @s2n_connection_ptr_free(ptr noundef %225)
  %10008 = getelementptr inbounds %struct.s2n_result, ptr %234, i32 0, i32 0
  store i32 %10007, ptr %10008, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %225) #11
  %10009 = call i32 @s2n_config_ptr_free(ptr noundef %224)
  %10010 = getelementptr inbounds %struct.s2n_result, ptr %235, i32 0, i32 0
  store i32 %10009, ptr %10010, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %224) #11
  call void @llvm.lifetime.start.p0(i64 104, ptr %236) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %236, ptr align 8 @s2n_rsa_with_aes_256_gcm_sha384, i64 104, i1 false), !tbaa.struct !74
  call void @llvm.lifetime.start.p0(i64 24, ptr %237) #11
  %10011 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %236, i32 0, i32 6
  %10012 = load ptr, ptr %10011, align 8, !tbaa !64
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %237, ptr align 8 %10012, i64 24, i1 false), !tbaa.struct !75
  %10013 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %236, i32 0, i32 6
  store ptr %237, ptr %10013, align 8, !tbaa !64
  call void @llvm.lifetime.start.p0(i64 104, ptr %238) #11
  %10014 = getelementptr inbounds %struct.s2n_record_algorithm, ptr %237, i32 0, i32 0
  %10015 = load ptr, ptr %10014, align 8, !tbaa !59
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %238, ptr align 8 %10015, i64 104, i1 false), !tbaa.struct !77
  %10016 = getelementptr inbounds %struct.s2n_record_algorithm, ptr %237, i32 0, i32 0
  store ptr %238, ptr %10016, align 8, !tbaa !59
  %10017 = getelementptr inbounds %struct.s2n_cipher, ptr %238, i32 0, i32 8
  store ptr @s2n_test_setsockopt_set_ktls_info, ptr %10017, align 8, !tbaa !19
  call void @llvm.lifetime.start.p0(i64 936, ptr %239) #11
  call void @llvm.memset.p0.i64(ptr align 8 %239, i8 0, i64 936, i1 false)
  %10018 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %239, i32 0, i32 0
  store ptr %236, ptr %10018, align 8, !tbaa !54
  call void @llvm.lifetime.start.p0(i64 24, ptr %240) #11
  call void @llvm.memset.p0.i64(ptr align 8 %240, i8 0, i64 24, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr %241) #11
  call void @llvm.memset.p0.i64(ptr align 8 %241, i8 0, i64 24, i1 false)
  br label %10019

10019:                                            ; preds = %10006
  %10020 = load i32, ptr @test_count, align 4, !tbaa !5
  %10021 = add nsw i32 %10020, 1
  store i32 %10021, ptr @test_count, align 4, !tbaa !5
  %10022 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %239, i32 0, i32 6
  %10023 = getelementptr inbounds [16 x i8], ptr %10022, i64 0, i64 0
  %10024 = call i32 @s2n_blob_init(ptr noundef %240, ptr noundef %10023, i32 noundef 16)
  %10025 = icmp eq i32 %10024, -1
  br i1 %10025, label %10026, label %10079

10026:                                            ; preds = %10019
  br label %10027

10027:                                            ; preds = %10026
  br label %10028

10028:                                            ; preds = %10027
  call void @llvm.lifetime.start.p0(i64 4, ptr %242) #11
  %10029 = call ptr @__errno_location() #12
  %10030 = load i32, ptr %10029, align 4, !tbaa !5
  store i32 %10030, ptr %242, align 4, !tbaa !5
  %10031 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10032 = call i32 @s2n_print_stacktrace(ptr noundef %10031)
  %10033 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10034 = trunc i8 %10033 to i1
  br i1 %10034, label %10035, label %10057

10035:                                            ; preds = %10028
  %10036 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10037 = call i32 @fileno(ptr noundef %10036) #11
  %10038 = call i32 @isatty(i32 noundef %10037) #11
  %10039 = icmp ne i32 %10038, 0
  br i1 %10039, label %10040, label %10057

10040:                                            ; preds = %10035
  %10041 = load i32, ptr %242, align 4, !tbaa !5
  %10042 = call ptr @__errno_location() #12
  store i32 %10041, ptr %10042, align 4, !tbaa !5
  %10043 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10044 = load i32, ptr @test_count, align 4, !tbaa !5
  %10045 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10046 = load i32, ptr %10045, align 4, !tbaa !5
  %10047 = call ptr @s2n_strerror(i32 noundef %10046, ptr noundef @.str.4)
  %10048 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10049 = load i32, ptr %10048, align 4, !tbaa !5
  %10050 = call ptr @s2n_strerror_debug(i32 noundef %10049, ptr noundef @.str.4)
  %10051 = call ptr @__errno_location() #12
  %10052 = load i32, ptr %10051, align 4, !tbaa !5
  %10053 = call ptr @strerror(i32 noundef %10052) #11
  %10054 = call ptr @__errno_location() #12
  %10055 = load i32, ptr %10054, align 4, !tbaa !5
  %10056 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10043, ptr noundef @.str.2, i32 noundef %10044, ptr noundef @.str.80, ptr noundef @.str.1, i32 noundef 486, ptr noundef %10047, ptr noundef %10050, ptr noundef %10053, i32 noundef %10055) #11
  br label %10074

10057:                                            ; preds = %10035, %10028
  %10058 = load i32, ptr %242, align 4, !tbaa !5
  %10059 = call ptr @__errno_location() #12
  store i32 %10058, ptr %10059, align 4, !tbaa !5
  %10060 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10061 = load i32, ptr @test_count, align 4, !tbaa !5
  %10062 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10063 = load i32, ptr %10062, align 4, !tbaa !5
  %10064 = call ptr @s2n_strerror(i32 noundef %10063, ptr noundef @.str.4)
  %10065 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10066 = load i32, ptr %10065, align 4, !tbaa !5
  %10067 = call ptr @s2n_strerror_debug(i32 noundef %10066, ptr noundef @.str.4)
  %10068 = call ptr @__errno_location() #12
  %10069 = load i32, ptr %10068, align 4, !tbaa !5
  %10070 = call ptr @strerror(i32 noundef %10069) #11
  %10071 = call ptr @__errno_location() #12
  %10072 = load i32, ptr %10071, align 4, !tbaa !5
  %10073 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10060, ptr noundef @.str.5, i32 noundef %10061, ptr noundef @.str.80, ptr noundef @.str.1, i32 noundef 486, ptr noundef %10064, ptr noundef %10067, ptr noundef %10070, i32 noundef %10072) #11
  br label %10074

10074:                                            ; preds = %10057, %10040
  call void @llvm.lifetime.end.p0(i64 4, ptr %242) #11
  br label %10075

10075:                                            ; preds = %10074
  br label %10076

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

10077:                                            ; No predecessors!
  br label %10078

10078:                                            ; preds = %10077
  br label %10079

10079:                                            ; preds = %10078, %10019
  br label %10080

10080:                                            ; preds = %10079
  br label %10081

10081:                                            ; preds = %10080
  br label %10082

10082:                                            ; preds = %10081
  %10083 = load i32, ptr @test_count, align 4, !tbaa !5
  %10084 = add nsw i32 %10083, 1
  store i32 %10084, ptr @test_count, align 4, !tbaa !5
  %10085 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %239, i32 0, i32 5
  %10086 = getelementptr inbounds [16 x i8], ptr %10085, i64 0, i64 0
  %10087 = call i32 @s2n_blob_init(ptr noundef %241, ptr noundef %10086, i32 noundef 16)
  %10088 = icmp eq i32 %10087, -1
  br i1 %10088, label %10089, label %10142

10089:                                            ; preds = %10082
  br label %10090

10090:                                            ; preds = %10089
  br label %10091

10091:                                            ; preds = %10090
  call void @llvm.lifetime.start.p0(i64 4, ptr %243) #11
  %10092 = call ptr @__errno_location() #12
  %10093 = load i32, ptr %10092, align 4, !tbaa !5
  store i32 %10093, ptr %243, align 4, !tbaa !5
  %10094 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10095 = call i32 @s2n_print_stacktrace(ptr noundef %10094)
  %10096 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10097 = trunc i8 %10096 to i1
  br i1 %10097, label %10098, label %10120

10098:                                            ; preds = %10091
  %10099 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10100 = call i32 @fileno(ptr noundef %10099) #11
  %10101 = call i32 @isatty(i32 noundef %10100) #11
  %10102 = icmp ne i32 %10101, 0
  br i1 %10102, label %10103, label %10120

10103:                                            ; preds = %10098
  %10104 = load i32, ptr %243, align 4, !tbaa !5
  %10105 = call ptr @__errno_location() #12
  store i32 %10104, ptr %10105, align 4, !tbaa !5
  %10106 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10107 = load i32, ptr @test_count, align 4, !tbaa !5
  %10108 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10109 = load i32, ptr %10108, align 4, !tbaa !5
  %10110 = call ptr @s2n_strerror(i32 noundef %10109, ptr noundef @.str.4)
  %10111 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10112 = load i32, ptr %10111, align 4, !tbaa !5
  %10113 = call ptr @s2n_strerror_debug(i32 noundef %10112, ptr noundef @.str.4)
  %10114 = call ptr @__errno_location() #12
  %10115 = load i32, ptr %10114, align 4, !tbaa !5
  %10116 = call ptr @strerror(i32 noundef %10115) #11
  %10117 = call ptr @__errno_location() #12
  %10118 = load i32, ptr %10117, align 4, !tbaa !5
  %10119 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10106, ptr noundef @.str.2, i32 noundef %10107, ptr noundef @.str.81, ptr noundef @.str.1, i32 noundef 488, ptr noundef %10110, ptr noundef %10113, ptr noundef %10116, i32 noundef %10118) #11
  br label %10137

10120:                                            ; preds = %10098, %10091
  %10121 = load i32, ptr %243, align 4, !tbaa !5
  %10122 = call ptr @__errno_location() #12
  store i32 %10121, ptr %10122, align 4, !tbaa !5
  %10123 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10124 = load i32, ptr @test_count, align 4, !tbaa !5
  %10125 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10126 = load i32, ptr %10125, align 4, !tbaa !5
  %10127 = call ptr @s2n_strerror(i32 noundef %10126, ptr noundef @.str.4)
  %10128 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10129 = load i32, ptr %10128, align 4, !tbaa !5
  %10130 = call ptr @s2n_strerror_debug(i32 noundef %10129, ptr noundef @.str.4)
  %10131 = call ptr @__errno_location() #12
  %10132 = load i32, ptr %10131, align 4, !tbaa !5
  %10133 = call ptr @strerror(i32 noundef %10132) #11
  %10134 = call ptr @__errno_location() #12
  %10135 = load i32, ptr %10134, align 4, !tbaa !5
  %10136 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10123, ptr noundef @.str.5, i32 noundef %10124, ptr noundef @.str.81, ptr noundef @.str.1, i32 noundef 488, ptr noundef %10127, ptr noundef %10130, ptr noundef %10133, i32 noundef %10135) #11
  br label %10137

10137:                                            ; preds = %10120, %10103
  call void @llvm.lifetime.end.p0(i64 4, ptr %243) #11
  br label %10138

10138:                                            ; preds = %10137
  br label %10139

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

10140:                                            ; No predecessors!
  br label %10141

10141:                                            ; preds = %10140
  br label %10142

10142:                                            ; preds = %10141, %10082
  br label %10143

10143:                                            ; preds = %10142
  br label %10144

10144:                                            ; preds = %10143
  br label %10145

10145:                                            ; preds = %10144
  %10146 = load i32, ptr @test_count, align 4, !tbaa !5
  %10147 = add nsw i32 %10146, 1
  store i32 %10147, ptr @test_count, align 4, !tbaa !5
  %10148 = call i32 @s2n_get_public_random_data(ptr noundef %240)
  %10149 = getelementptr inbounds %struct.s2n_result, ptr %244, i32 0, i32 0
  store i32 %10148, ptr %10149, align 4
  %10150 = getelementptr inbounds %struct.s2n_result, ptr %244, i32 0, i32 0
  %10151 = load i32, ptr %10150, align 4
  %10152 = call zeroext i1 @s2n_result_is_ok(i32 %10151)
  br i1 %10152, label %10206, label %10153

10153:                                            ; preds = %10145
  br label %10154

10154:                                            ; preds = %10153
  br label %10155

10155:                                            ; preds = %10154
  call void @llvm.lifetime.start.p0(i64 4, ptr %245) #11
  %10156 = call ptr @__errno_location() #12
  %10157 = load i32, ptr %10156, align 4, !tbaa !5
  store i32 %10157, ptr %245, align 4, !tbaa !5
  %10158 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10159 = call i32 @s2n_print_stacktrace(ptr noundef %10158)
  %10160 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10161 = trunc i8 %10160 to i1
  br i1 %10161, label %10162, label %10184

10162:                                            ; preds = %10155
  %10163 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10164 = call i32 @fileno(ptr noundef %10163) #11
  %10165 = call i32 @isatty(i32 noundef %10164) #11
  %10166 = icmp ne i32 %10165, 0
  br i1 %10166, label %10167, label %10184

10167:                                            ; preds = %10162
  %10168 = load i32, ptr %245, align 4, !tbaa !5
  %10169 = call ptr @__errno_location() #12
  store i32 %10168, ptr %10169, align 4, !tbaa !5
  %10170 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10171 = load i32, ptr @test_count, align 4, !tbaa !5
  %10172 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10173 = load i32, ptr %10172, align 4, !tbaa !5
  %10174 = call ptr @s2n_strerror(i32 noundef %10173, ptr noundef @.str.4)
  %10175 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10176 = load i32, ptr %10175, align 4, !tbaa !5
  %10177 = call ptr @s2n_strerror_debug(i32 noundef %10176, ptr noundef @.str.4)
  %10178 = call ptr @__errno_location() #12
  %10179 = load i32, ptr %10178, align 4, !tbaa !5
  %10180 = call ptr @strerror(i32 noundef %10179) #11
  %10181 = call ptr @__errno_location() #12
  %10182 = load i32, ptr %10181, align 4, !tbaa !5
  %10183 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10170, ptr noundef @.str.2, i32 noundef %10171, ptr noundef @.str.82, ptr noundef @.str.1, i32 noundef 489, ptr noundef %10174, ptr noundef %10177, ptr noundef %10180, i32 noundef %10182) #11
  br label %10201

10184:                                            ; preds = %10162, %10155
  %10185 = load i32, ptr %245, align 4, !tbaa !5
  %10186 = call ptr @__errno_location() #12
  store i32 %10185, ptr %10186, align 4, !tbaa !5
  %10187 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10188 = load i32, ptr @test_count, align 4, !tbaa !5
  %10189 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10190 = load i32, ptr %10189, align 4, !tbaa !5
  %10191 = call ptr @s2n_strerror(i32 noundef %10190, ptr noundef @.str.4)
  %10192 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10193 = load i32, ptr %10192, align 4, !tbaa !5
  %10194 = call ptr @s2n_strerror_debug(i32 noundef %10193, ptr noundef @.str.4)
  %10195 = call ptr @__errno_location() #12
  %10196 = load i32, ptr %10195, align 4, !tbaa !5
  %10197 = call ptr @strerror(i32 noundef %10196) #11
  %10198 = call ptr @__errno_location() #12
  %10199 = load i32, ptr %10198, align 4, !tbaa !5
  %10200 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10187, ptr noundef @.str.5, i32 noundef %10188, ptr noundef @.str.82, ptr noundef @.str.1, i32 noundef 489, ptr noundef %10191, ptr noundef %10194, ptr noundef %10197, i32 noundef %10199) #11
  br label %10201

10201:                                            ; preds = %10184, %10167
  call void @llvm.lifetime.end.p0(i64 4, ptr %245) #11
  br label %10202

10202:                                            ; preds = %10201
  br label %10203

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

10204:                                            ; No predecessors!
  br label %10205

10205:                                            ; preds = %10204
  br label %10206

10206:                                            ; preds = %10205, %10145
  br label %10207

10207:                                            ; preds = %10206
  br label %10208

10208:                                            ; preds = %10207
  br label %10209

10209:                                            ; preds = %10208
  %10210 = load i32, ptr @test_count, align 4, !tbaa !5
  %10211 = add nsw i32 %10210, 1
  store i32 %10211, ptr @test_count, align 4, !tbaa !5
  %10212 = call i32 @s2n_get_public_random_data(ptr noundef %241)
  %10213 = getelementptr inbounds %struct.s2n_result, ptr %246, i32 0, i32 0
  store i32 %10212, ptr %10213, align 4
  %10214 = getelementptr inbounds %struct.s2n_result, ptr %246, i32 0, i32 0
  %10215 = load i32, ptr %10214, align 4
  %10216 = call zeroext i1 @s2n_result_is_ok(i32 %10215)
  br i1 %10216, label %10270, label %10217

10217:                                            ; preds = %10209
  br label %10218

10218:                                            ; preds = %10217
  br label %10219

10219:                                            ; preds = %10218
  call void @llvm.lifetime.start.p0(i64 4, ptr %247) #11
  %10220 = call ptr @__errno_location() #12
  %10221 = load i32, ptr %10220, align 4, !tbaa !5
  store i32 %10221, ptr %247, align 4, !tbaa !5
  %10222 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10223 = call i32 @s2n_print_stacktrace(ptr noundef %10222)
  %10224 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10225 = trunc i8 %10224 to i1
  br i1 %10225, label %10226, label %10248

10226:                                            ; preds = %10219
  %10227 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10228 = call i32 @fileno(ptr noundef %10227) #11
  %10229 = call i32 @isatty(i32 noundef %10228) #11
  %10230 = icmp ne i32 %10229, 0
  br i1 %10230, label %10231, label %10248

10231:                                            ; preds = %10226
  %10232 = load i32, ptr %247, align 4, !tbaa !5
  %10233 = call ptr @__errno_location() #12
  store i32 %10232, ptr %10233, align 4, !tbaa !5
  %10234 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10235 = load i32, ptr @test_count, align 4, !tbaa !5
  %10236 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10237 = load i32, ptr %10236, align 4, !tbaa !5
  %10238 = call ptr @s2n_strerror(i32 noundef %10237, ptr noundef @.str.4)
  %10239 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10240 = load i32, ptr %10239, align 4, !tbaa !5
  %10241 = call ptr @s2n_strerror_debug(i32 noundef %10240, ptr noundef @.str.4)
  %10242 = call ptr @__errno_location() #12
  %10243 = load i32, ptr %10242, align 4, !tbaa !5
  %10244 = call ptr @strerror(i32 noundef %10243) #11
  %10245 = call ptr @__errno_location() #12
  %10246 = load i32, ptr %10245, align 4, !tbaa !5
  %10247 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10234, ptr noundef @.str.2, i32 noundef %10235, ptr noundef @.str.83, ptr noundef @.str.1, i32 noundef 490, ptr noundef %10238, ptr noundef %10241, ptr noundef %10244, i32 noundef %10246) #11
  br label %10265

10248:                                            ; preds = %10226, %10219
  %10249 = load i32, ptr %247, align 4, !tbaa !5
  %10250 = call ptr @__errno_location() #12
  store i32 %10249, ptr %10250, align 4, !tbaa !5
  %10251 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10252 = load i32, ptr @test_count, align 4, !tbaa !5
  %10253 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10254 = load i32, ptr %10253, align 4, !tbaa !5
  %10255 = call ptr @s2n_strerror(i32 noundef %10254, ptr noundef @.str.4)
  %10256 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10257 = load i32, ptr %10256, align 4, !tbaa !5
  %10258 = call ptr @s2n_strerror_debug(i32 noundef %10257, ptr noundef @.str.4)
  %10259 = call ptr @__errno_location() #12
  %10260 = load i32, ptr %10259, align 4, !tbaa !5
  %10261 = call ptr @strerror(i32 noundef %10260) #11
  %10262 = call ptr @__errno_location() #12
  %10263 = load i32, ptr %10262, align 4, !tbaa !5
  %10264 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10251, ptr noundef @.str.5, i32 noundef %10252, ptr noundef @.str.83, ptr noundef @.str.1, i32 noundef 490, ptr noundef %10255, ptr noundef %10258, ptr noundef %10261, i32 noundef %10263) #11
  br label %10265

10265:                                            ; preds = %10248, %10231
  call void @llvm.lifetime.end.p0(i64 4, ptr %247) #11
  br label %10266

10266:                                            ; preds = %10265
  br label %10267

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

10268:                                            ; No predecessors!
  br label %10269

10269:                                            ; preds = %10268
  br label %10270

10270:                                            ; preds = %10269, %10209
  br label %10271

10271:                                            ; preds = %10270
  br label %10272

10272:                                            ; preds = %10271
  call void @llvm.lifetime.start.p0(i64 24, ptr %248) #11
  call void @llvm.memset.p0.i64(ptr align 8 %248, i8 0, i64 24, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr %249) #11
  call void @llvm.memset.p0.i64(ptr align 8 %249, i8 0, i64 24, i1 false)
  br label %10273

10273:                                            ; preds = %10272
  %10274 = load i32, ptr @test_count, align 4, !tbaa !5
  %10275 = add nsw i32 %10274, 1
  store i32 %10275, ptr @test_count, align 4, !tbaa !5
  %10276 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %239, i32 0, i32 8
  %10277 = getelementptr inbounds [8 x i8], ptr %10276, i64 0, i64 0
  %10278 = call i32 @s2n_blob_init(ptr noundef %248, ptr noundef %10277, i32 noundef 8)
  %10279 = icmp eq i32 %10278, -1
  br i1 %10279, label %10280, label %10333

10280:                                            ; preds = %10273
  br label %10281

10281:                                            ; preds = %10280
  br label %10282

10282:                                            ; preds = %10281
  call void @llvm.lifetime.start.p0(i64 4, ptr %250) #11
  %10283 = call ptr @__errno_location() #12
  %10284 = load i32, ptr %10283, align 4, !tbaa !5
  store i32 %10284, ptr %250, align 4, !tbaa !5
  %10285 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10286 = call i32 @s2n_print_stacktrace(ptr noundef %10285)
  %10287 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10288 = trunc i8 %10287 to i1
  br i1 %10288, label %10289, label %10311

10289:                                            ; preds = %10282
  %10290 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10291 = call i32 @fileno(ptr noundef %10290) #11
  %10292 = call i32 @isatty(i32 noundef %10291) #11
  %10293 = icmp ne i32 %10292, 0
  br i1 %10293, label %10294, label %10311

10294:                                            ; preds = %10289
  %10295 = load i32, ptr %250, align 4, !tbaa !5
  %10296 = call ptr @__errno_location() #12
  store i32 %10295, ptr %10296, align 4, !tbaa !5
  %10297 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10298 = load i32, ptr @test_count, align 4, !tbaa !5
  %10299 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10300 = load i32, ptr %10299, align 4, !tbaa !5
  %10301 = call ptr @s2n_strerror(i32 noundef %10300, ptr noundef @.str.4)
  %10302 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10303 = load i32, ptr %10302, align 4, !tbaa !5
  %10304 = call ptr @s2n_strerror_debug(i32 noundef %10303, ptr noundef @.str.4)
  %10305 = call ptr @__errno_location() #12
  %10306 = load i32, ptr %10305, align 4, !tbaa !5
  %10307 = call ptr @strerror(i32 noundef %10306) #11
  %10308 = call ptr @__errno_location() #12
  %10309 = load i32, ptr %10308, align 4, !tbaa !5
  %10310 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10297, ptr noundef @.str.2, i32 noundef %10298, ptr noundef @.str.84, ptr noundef @.str.1, i32 noundef 494, ptr noundef %10301, ptr noundef %10304, ptr noundef %10307, i32 noundef %10309) #11
  br label %10328

10311:                                            ; preds = %10289, %10282
  %10312 = load i32, ptr %250, align 4, !tbaa !5
  %10313 = call ptr @__errno_location() #12
  store i32 %10312, ptr %10313, align 4, !tbaa !5
  %10314 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10315 = load i32, ptr @test_count, align 4, !tbaa !5
  %10316 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10317 = load i32, ptr %10316, align 4, !tbaa !5
  %10318 = call ptr @s2n_strerror(i32 noundef %10317, ptr noundef @.str.4)
  %10319 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10320 = load i32, ptr %10319, align 4, !tbaa !5
  %10321 = call ptr @s2n_strerror_debug(i32 noundef %10320, ptr noundef @.str.4)
  %10322 = call ptr @__errno_location() #12
  %10323 = load i32, ptr %10322, align 4, !tbaa !5
  %10324 = call ptr @strerror(i32 noundef %10323) #11
  %10325 = call ptr @__errno_location() #12
  %10326 = load i32, ptr %10325, align 4, !tbaa !5
  %10327 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10314, ptr noundef @.str.5, i32 noundef %10315, ptr noundef @.str.84, ptr noundef @.str.1, i32 noundef 494, ptr noundef %10318, ptr noundef %10321, ptr noundef %10324, i32 noundef %10326) #11
  br label %10328

10328:                                            ; preds = %10311, %10294
  call void @llvm.lifetime.end.p0(i64 4, ptr %250) #11
  br label %10329

10329:                                            ; preds = %10328
  br label %10330

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

10331:                                            ; No predecessors!
  br label %10332

10332:                                            ; preds = %10331
  br label %10333

10333:                                            ; preds = %10332, %10273
  br label %10334

10334:                                            ; preds = %10333
  br label %10335

10335:                                            ; preds = %10334
  br label %10336

10336:                                            ; preds = %10335
  %10337 = load i32, ptr @test_count, align 4, !tbaa !5
  %10338 = add nsw i32 %10337, 1
  store i32 %10338, ptr @test_count, align 4, !tbaa !5
  %10339 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %239, i32 0, i32 7
  %10340 = getelementptr inbounds [8 x i8], ptr %10339, i64 0, i64 0
  %10341 = call i32 @s2n_blob_init(ptr noundef %249, ptr noundef %10340, i32 noundef 8)
  %10342 = icmp eq i32 %10341, -1
  br i1 %10342, label %10343, label %10396

10343:                                            ; preds = %10336
  br label %10344

10344:                                            ; preds = %10343
  br label %10345

10345:                                            ; preds = %10344
  call void @llvm.lifetime.start.p0(i64 4, ptr %251) #11
  %10346 = call ptr @__errno_location() #12
  %10347 = load i32, ptr %10346, align 4, !tbaa !5
  store i32 %10347, ptr %251, align 4, !tbaa !5
  %10348 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10349 = call i32 @s2n_print_stacktrace(ptr noundef %10348)
  %10350 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10351 = trunc i8 %10350 to i1
  br i1 %10351, label %10352, label %10374

10352:                                            ; preds = %10345
  %10353 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10354 = call i32 @fileno(ptr noundef %10353) #11
  %10355 = call i32 @isatty(i32 noundef %10354) #11
  %10356 = icmp ne i32 %10355, 0
  br i1 %10356, label %10357, label %10374

10357:                                            ; preds = %10352
  %10358 = load i32, ptr %251, align 4, !tbaa !5
  %10359 = call ptr @__errno_location() #12
  store i32 %10358, ptr %10359, align 4, !tbaa !5
  %10360 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10361 = load i32, ptr @test_count, align 4, !tbaa !5
  %10362 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10363 = load i32, ptr %10362, align 4, !tbaa !5
  %10364 = call ptr @s2n_strerror(i32 noundef %10363, ptr noundef @.str.4)
  %10365 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10366 = load i32, ptr %10365, align 4, !tbaa !5
  %10367 = call ptr @s2n_strerror_debug(i32 noundef %10366, ptr noundef @.str.4)
  %10368 = call ptr @__errno_location() #12
  %10369 = load i32, ptr %10368, align 4, !tbaa !5
  %10370 = call ptr @strerror(i32 noundef %10369) #11
  %10371 = call ptr @__errno_location() #12
  %10372 = load i32, ptr %10371, align 4, !tbaa !5
  %10373 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10360, ptr noundef @.str.2, i32 noundef %10361, ptr noundef @.str.85, ptr noundef @.str.1, i32 noundef 496, ptr noundef %10364, ptr noundef %10367, ptr noundef %10370, i32 noundef %10372) #11
  br label %10391

10374:                                            ; preds = %10352, %10345
  %10375 = load i32, ptr %251, align 4, !tbaa !5
  %10376 = call ptr @__errno_location() #12
  store i32 %10375, ptr %10376, align 4, !tbaa !5
  %10377 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10378 = load i32, ptr @test_count, align 4, !tbaa !5
  %10379 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10380 = load i32, ptr %10379, align 4, !tbaa !5
  %10381 = call ptr @s2n_strerror(i32 noundef %10380, ptr noundef @.str.4)
  %10382 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10383 = load i32, ptr %10382, align 4, !tbaa !5
  %10384 = call ptr @s2n_strerror_debug(i32 noundef %10383, ptr noundef @.str.4)
  %10385 = call ptr @__errno_location() #12
  %10386 = load i32, ptr %10385, align 4, !tbaa !5
  %10387 = call ptr @strerror(i32 noundef %10386) #11
  %10388 = call ptr @__errno_location() #12
  %10389 = load i32, ptr %10388, align 4, !tbaa !5
  %10390 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10377, ptr noundef @.str.5, i32 noundef %10378, ptr noundef @.str.85, ptr noundef @.str.1, i32 noundef 496, ptr noundef %10381, ptr noundef %10384, ptr noundef %10387, i32 noundef %10389) #11
  br label %10391

10391:                                            ; preds = %10374, %10357
  call void @llvm.lifetime.end.p0(i64 4, ptr %251) #11
  br label %10392

10392:                                            ; preds = %10391
  br label %10393

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

10394:                                            ; No predecessors!
  br label %10395

10395:                                            ; preds = %10394
  br label %10396

10396:                                            ; preds = %10395, %10336
  br label %10397

10397:                                            ; preds = %10396
  br label %10398

10398:                                            ; preds = %10397
  br label %10399

10399:                                            ; preds = %10398
  %10400 = load i32, ptr @test_count, align 4, !tbaa !5
  %10401 = add nsw i32 %10400, 1
  store i32 %10401, ptr @test_count, align 4, !tbaa !5
  %10402 = call i32 @s2n_get_public_random_data(ptr noundef %248)
  %10403 = getelementptr inbounds %struct.s2n_result, ptr %252, i32 0, i32 0
  store i32 %10402, ptr %10403, align 4
  %10404 = getelementptr inbounds %struct.s2n_result, ptr %252, i32 0, i32 0
  %10405 = load i32, ptr %10404, align 4
  %10406 = call zeroext i1 @s2n_result_is_ok(i32 %10405)
  br i1 %10406, label %10460, label %10407

10407:                                            ; preds = %10399
  br label %10408

10408:                                            ; preds = %10407
  br label %10409

10409:                                            ; preds = %10408
  call void @llvm.lifetime.start.p0(i64 4, ptr %253) #11
  %10410 = call ptr @__errno_location() #12
  %10411 = load i32, ptr %10410, align 4, !tbaa !5
  store i32 %10411, ptr %253, align 4, !tbaa !5
  %10412 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10413 = call i32 @s2n_print_stacktrace(ptr noundef %10412)
  %10414 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10415 = trunc i8 %10414 to i1
  br i1 %10415, label %10416, label %10438

10416:                                            ; preds = %10409
  %10417 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10418 = call i32 @fileno(ptr noundef %10417) #11
  %10419 = call i32 @isatty(i32 noundef %10418) #11
  %10420 = icmp ne i32 %10419, 0
  br i1 %10420, label %10421, label %10438

10421:                                            ; preds = %10416
  %10422 = load i32, ptr %253, align 4, !tbaa !5
  %10423 = call ptr @__errno_location() #12
  store i32 %10422, ptr %10423, align 4, !tbaa !5
  %10424 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10425 = load i32, ptr @test_count, align 4, !tbaa !5
  %10426 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10427 = load i32, ptr %10426, align 4, !tbaa !5
  %10428 = call ptr @s2n_strerror(i32 noundef %10427, ptr noundef @.str.4)
  %10429 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10430 = load i32, ptr %10429, align 4, !tbaa !5
  %10431 = call ptr @s2n_strerror_debug(i32 noundef %10430, ptr noundef @.str.4)
  %10432 = call ptr @__errno_location() #12
  %10433 = load i32, ptr %10432, align 4, !tbaa !5
  %10434 = call ptr @strerror(i32 noundef %10433) #11
  %10435 = call ptr @__errno_location() #12
  %10436 = load i32, ptr %10435, align 4, !tbaa !5
  %10437 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10424, ptr noundef @.str.2, i32 noundef %10425, ptr noundef @.str.86, ptr noundef @.str.1, i32 noundef 497, ptr noundef %10428, ptr noundef %10431, ptr noundef %10434, i32 noundef %10436) #11
  br label %10455

10438:                                            ; preds = %10416, %10409
  %10439 = load i32, ptr %253, align 4, !tbaa !5
  %10440 = call ptr @__errno_location() #12
  store i32 %10439, ptr %10440, align 4, !tbaa !5
  %10441 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10442 = load i32, ptr @test_count, align 4, !tbaa !5
  %10443 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10444 = load i32, ptr %10443, align 4, !tbaa !5
  %10445 = call ptr @s2n_strerror(i32 noundef %10444, ptr noundef @.str.4)
  %10446 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10447 = load i32, ptr %10446, align 4, !tbaa !5
  %10448 = call ptr @s2n_strerror_debug(i32 noundef %10447, ptr noundef @.str.4)
  %10449 = call ptr @__errno_location() #12
  %10450 = load i32, ptr %10449, align 4, !tbaa !5
  %10451 = call ptr @strerror(i32 noundef %10450) #11
  %10452 = call ptr @__errno_location() #12
  %10453 = load i32, ptr %10452, align 4, !tbaa !5
  %10454 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10441, ptr noundef @.str.5, i32 noundef %10442, ptr noundef @.str.86, ptr noundef @.str.1, i32 noundef 497, ptr noundef %10445, ptr noundef %10448, ptr noundef %10451, i32 noundef %10453) #11
  br label %10455

10455:                                            ; preds = %10438, %10421
  call void @llvm.lifetime.end.p0(i64 4, ptr %253) #11
  br label %10456

10456:                                            ; preds = %10455
  br label %10457

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

10458:                                            ; No predecessors!
  br label %10459

10459:                                            ; preds = %10458
  br label %10460

10460:                                            ; preds = %10459, %10399
  br label %10461

10461:                                            ; preds = %10460
  br label %10462

10462:                                            ; preds = %10461
  br label %10463

10463:                                            ; preds = %10462
  %10464 = load i32, ptr @test_count, align 4, !tbaa !5
  %10465 = add nsw i32 %10464, 1
  store i32 %10465, ptr @test_count, align 4, !tbaa !5
  %10466 = call i32 @s2n_get_public_random_data(ptr noundef %249)
  %10467 = getelementptr inbounds %struct.s2n_result, ptr %254, i32 0, i32 0
  store i32 %10466, ptr %10467, align 4
  %10468 = getelementptr inbounds %struct.s2n_result, ptr %254, i32 0, i32 0
  %10469 = load i32, ptr %10468, align 4
  %10470 = call zeroext i1 @s2n_result_is_ok(i32 %10469)
  br i1 %10470, label %10524, label %10471

10471:                                            ; preds = %10463
  br label %10472

10472:                                            ; preds = %10471
  br label %10473

10473:                                            ; preds = %10472
  call void @llvm.lifetime.start.p0(i64 4, ptr %255) #11
  %10474 = call ptr @__errno_location() #12
  %10475 = load i32, ptr %10474, align 4, !tbaa !5
  store i32 %10475, ptr %255, align 4, !tbaa !5
  %10476 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10477 = call i32 @s2n_print_stacktrace(ptr noundef %10476)
  %10478 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10479 = trunc i8 %10478 to i1
  br i1 %10479, label %10480, label %10502

10480:                                            ; preds = %10473
  %10481 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10482 = call i32 @fileno(ptr noundef %10481) #11
  %10483 = call i32 @isatty(i32 noundef %10482) #11
  %10484 = icmp ne i32 %10483, 0
  br i1 %10484, label %10485, label %10502

10485:                                            ; preds = %10480
  %10486 = load i32, ptr %255, align 4, !tbaa !5
  %10487 = call ptr @__errno_location() #12
  store i32 %10486, ptr %10487, align 4, !tbaa !5
  %10488 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10489 = load i32, ptr @test_count, align 4, !tbaa !5
  %10490 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10491 = load i32, ptr %10490, align 4, !tbaa !5
  %10492 = call ptr @s2n_strerror(i32 noundef %10491, ptr noundef @.str.4)
  %10493 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10494 = load i32, ptr %10493, align 4, !tbaa !5
  %10495 = call ptr @s2n_strerror_debug(i32 noundef %10494, ptr noundef @.str.4)
  %10496 = call ptr @__errno_location() #12
  %10497 = load i32, ptr %10496, align 4, !tbaa !5
  %10498 = call ptr @strerror(i32 noundef %10497) #11
  %10499 = call ptr @__errno_location() #12
  %10500 = load i32, ptr %10499, align 4, !tbaa !5
  %10501 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10488, ptr noundef @.str.2, i32 noundef %10489, ptr noundef @.str.87, ptr noundef @.str.1, i32 noundef 498, ptr noundef %10492, ptr noundef %10495, ptr noundef %10498, i32 noundef %10500) #11
  br label %10519

10502:                                            ; preds = %10480, %10473
  %10503 = load i32, ptr %255, align 4, !tbaa !5
  %10504 = call ptr @__errno_location() #12
  store i32 %10503, ptr %10504, align 4, !tbaa !5
  %10505 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10506 = load i32, ptr @test_count, align 4, !tbaa !5
  %10507 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10508 = load i32, ptr %10507, align 4, !tbaa !5
  %10509 = call ptr @s2n_strerror(i32 noundef %10508, ptr noundef @.str.4)
  %10510 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10511 = load i32, ptr %10510, align 4, !tbaa !5
  %10512 = call ptr @s2n_strerror_debug(i32 noundef %10511, ptr noundef @.str.4)
  %10513 = call ptr @__errno_location() #12
  %10514 = load i32, ptr %10513, align 4, !tbaa !5
  %10515 = call ptr @strerror(i32 noundef %10514) #11
  %10516 = call ptr @__errno_location() #12
  %10517 = load i32, ptr %10516, align 4, !tbaa !5
  %10518 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10505, ptr noundef @.str.5, i32 noundef %10506, ptr noundef @.str.87, ptr noundef @.str.1, i32 noundef 498, ptr noundef %10509, ptr noundef %10512, ptr noundef %10515, i32 noundef %10517) #11
  br label %10519

10519:                                            ; preds = %10502, %10485
  call void @llvm.lifetime.end.p0(i64 4, ptr %255) #11
  br label %10520

10520:                                            ; preds = %10519
  br label %10521

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

10522:                                            ; No predecessors!
  br label %10523

10523:                                            ; preds = %10522
  br label %10524

10524:                                            ; preds = %10523, %10463
  br label %10525

10525:                                            ; preds = %10524
  br label %10526

10526:                                            ; preds = %10525
  call void @llvm.lifetime.start.p0(i64 8, ptr %256) #11
  %10527 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %10527, ptr %256, align 8, !tbaa !9
  br label %10528

10528:                                            ; preds = %10526
  %10529 = load i32, ptr @test_count, align 4, !tbaa !5
  %10530 = add nsw i32 %10529, 1
  store i32 %10530, ptr @test_count, align 4, !tbaa !5
  %10531 = load ptr, ptr %256, align 8, !tbaa !9
  %10532 = call i32 @s2n_test_configure_connection_for_ktls(ptr noundef %10531)
  %10533 = getelementptr inbounds %struct.s2n_result, ptr %257, i32 0, i32 0
  store i32 %10532, ptr %10533, align 4
  %10534 = getelementptr inbounds %struct.s2n_result, ptr %257, i32 0, i32 0
  %10535 = load i32, ptr %10534, align 4
  %10536 = call zeroext i1 @s2n_result_is_ok(i32 %10535)
  br i1 %10536, label %10590, label %10537

10537:                                            ; preds = %10528
  br label %10538

10538:                                            ; preds = %10537
  br label %10539

10539:                                            ; preds = %10538
  call void @llvm.lifetime.start.p0(i64 4, ptr %258) #11
  %10540 = call ptr @__errno_location() #12
  %10541 = load i32, ptr %10540, align 4, !tbaa !5
  store i32 %10541, ptr %258, align 4, !tbaa !5
  %10542 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10543 = call i32 @s2n_print_stacktrace(ptr noundef %10542)
  %10544 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10545 = trunc i8 %10544 to i1
  br i1 %10545, label %10546, label %10568

10546:                                            ; preds = %10539
  %10547 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10548 = call i32 @fileno(ptr noundef %10547) #11
  %10549 = call i32 @isatty(i32 noundef %10548) #11
  %10550 = icmp ne i32 %10549, 0
  br i1 %10550, label %10551, label %10568

10551:                                            ; preds = %10546
  %10552 = load i32, ptr %258, align 4, !tbaa !5
  %10553 = call ptr @__errno_location() #12
  store i32 %10552, ptr %10553, align 4, !tbaa !5
  %10554 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10555 = load i32, ptr @test_count, align 4, !tbaa !5
  %10556 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10557 = load i32, ptr %10556, align 4, !tbaa !5
  %10558 = call ptr @s2n_strerror(i32 noundef %10557, ptr noundef @.str.4)
  %10559 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10560 = load i32, ptr %10559, align 4, !tbaa !5
  %10561 = call ptr @s2n_strerror_debug(i32 noundef %10560, ptr noundef @.str.4)
  %10562 = call ptr @__errno_location() #12
  %10563 = load i32, ptr %10562, align 4, !tbaa !5
  %10564 = call ptr @strerror(i32 noundef %10563) #11
  %10565 = call ptr @__errno_location() #12
  %10566 = load i32, ptr %10565, align 4, !tbaa !5
  %10567 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10554, ptr noundef @.str.2, i32 noundef %10555, ptr noundef @.str.72, ptr noundef @.str.1, i32 noundef 504, ptr noundef %10558, ptr noundef %10561, ptr noundef %10564, i32 noundef %10566) #11
  br label %10585

10568:                                            ; preds = %10546, %10539
  %10569 = load i32, ptr %258, align 4, !tbaa !5
  %10570 = call ptr @__errno_location() #12
  store i32 %10569, ptr %10570, align 4, !tbaa !5
  %10571 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10572 = load i32, 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(i32 noundef %10574, ptr noundef @.str.4)
  %10576 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10577 = load i32, ptr %10576, align 4, !tbaa !5
  %10578 = call ptr @s2n_strerror_debug(i32 noundef %10577, ptr noundef @.str.4)
  %10579 = call ptr @__errno_location() #12
  %10580 = load i32, ptr %10579, align 4, !tbaa !5
  %10581 = call ptr @strerror(i32 noundef %10580) #11
  %10582 = call ptr @__errno_location() #12
  %10583 = load i32, ptr %10582, align 4, !tbaa !5
  %10584 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10571, ptr noundef @.str.5, i32 noundef %10572, ptr noundef @.str.72, ptr noundef @.str.1, i32 noundef 504, ptr noundef %10575, ptr noundef %10578, ptr noundef %10581, i32 noundef %10583) #11
  br label %10585

10585:                                            ; preds = %10568, %10551
  call void @llvm.lifetime.end.p0(i64 4, ptr %258) #11
  br label %10586

10586:                                            ; preds = %10585
  br label %10587

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

10588:                                            ; No predecessors!
  br label %10589

10589:                                            ; preds = %10588
  br label %10590

10590:                                            ; preds = %10589, %10528
  br label %10591

10591:                                            ; preds = %10590
  br label %10592

10592:                                            ; preds = %10591
  br label %10593

10593:                                            ; preds = %10592
  %10594 = load i32, ptr @test_count, align 4, !tbaa !5
  %10595 = add nsw i32 %10594, 1
  store i32 %10595, ptr @test_count, align 4, !tbaa !5
  %10596 = call i32 @s2n_ktls_set_setsockopt_cb(ptr noundef @s2n_test_setsockopt_tls_cb)
  %10597 = getelementptr inbounds %struct.s2n_result, ptr %259, i32 0, i32 0
  store i32 %10596, ptr %10597, align 4
  %10598 = getelementptr inbounds %struct.s2n_result, ptr %259, i32 0, i32 0
  %10599 = load i32, ptr %10598, align 4
  %10600 = call zeroext i1 @s2n_result_is_ok(i32 %10599)
  br i1 %10600, label %10654, label %10601

10601:                                            ; preds = %10593
  br label %10602

10602:                                            ; preds = %10601
  br label %10603

10603:                                            ; preds = %10602
  call void @llvm.lifetime.start.p0(i64 4, ptr %260) #11
  %10604 = call ptr @__errno_location() #12
  %10605 = load i32, ptr %10604, align 4, !tbaa !5
  store i32 %10605, ptr %260, align 4, !tbaa !5
  %10606 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10607 = call i32 @s2n_print_stacktrace(ptr noundef %10606)
  %10608 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10609 = trunc i8 %10608 to i1
  br i1 %10609, label %10610, label %10632

10610:                                            ; preds = %10603
  %10611 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10612 = call i32 @fileno(ptr noundef %10611) #11
  %10613 = call i32 @isatty(i32 noundef %10612) #11
  %10614 = icmp ne i32 %10613, 0
  br i1 %10614, label %10615, label %10632

10615:                                            ; preds = %10610
  %10616 = load i32, ptr %260, align 4, !tbaa !5
  %10617 = call ptr @__errno_location() #12
  store i32 %10616, ptr %10617, align 4, !tbaa !5
  %10618 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10619 = load i32, ptr @test_count, align 4, !tbaa !5
  %10620 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10621 = load i32, ptr %10620, align 4, !tbaa !5
  %10622 = call ptr @s2n_strerror(i32 noundef %10621, ptr noundef @.str.4)
  %10623 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10624 = load i32, ptr %10623, align 4, !tbaa !5
  %10625 = call ptr @s2n_strerror_debug(i32 noundef %10624, ptr noundef @.str.4)
  %10626 = call ptr @__errno_location() #12
  %10627 = load i32, ptr %10626, align 4, !tbaa !5
  %10628 = call ptr @strerror(i32 noundef %10627) #11
  %10629 = call ptr @__errno_location() #12
  %10630 = load i32, ptr %10629, align 4, !tbaa !5
  %10631 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10618, ptr noundef @.str.2, i32 noundef %10619, ptr noundef @.str.88, ptr noundef @.str.1, i32 noundef 505, ptr noundef %10622, ptr noundef %10625, ptr noundef %10628, i32 noundef %10630) #11
  br label %10649

10632:                                            ; preds = %10610, %10603
  %10633 = load i32, ptr %260, align 4, !tbaa !5
  %10634 = call ptr @__errno_location() #12
  store i32 %10633, ptr %10634, align 4, !tbaa !5
  %10635 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10636 = load i32, ptr @test_count, align 4, !tbaa !5
  %10637 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10638 = load i32, ptr %10637, align 4, !tbaa !5
  %10639 = call ptr @s2n_strerror(i32 noundef %10638, ptr noundef @.str.4)
  %10640 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10641 = load i32, ptr %10640, align 4, !tbaa !5
  %10642 = call ptr @s2n_strerror_debug(i32 noundef %10641, ptr noundef @.str.4)
  %10643 = call ptr @__errno_location() #12
  %10644 = load i32, ptr %10643, align 4, !tbaa !5
  %10645 = call ptr @strerror(i32 noundef %10644) #11
  %10646 = call ptr @__errno_location() #12
  %10647 = load i32, ptr %10646, align 4, !tbaa !5
  %10648 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10635, ptr noundef @.str.5, i32 noundef %10636, ptr noundef @.str.88, ptr noundef @.str.1, i32 noundef 505, ptr noundef %10639, ptr noundef %10642, ptr noundef %10645, i32 noundef %10647) #11
  br label %10649

10649:                                            ; preds = %10632, %10615
  call void @llvm.lifetime.end.p0(i64 4, ptr %260) #11
  br label %10650

10650:                                            ; preds = %10649
  br label %10651

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

10652:                                            ; No predecessors!
  br label %10653

10653:                                            ; preds = %10652
  br label %10654

10654:                                            ; preds = %10653, %10593
  br label %10655

10655:                                            ; preds = %10654
  br label %10656

10656:                                            ; preds = %10655
  br label %10657

10657:                                            ; preds = %10656
  %10658 = load i32, ptr @test_count, align 4, !tbaa !5
  %10659 = add nsw i32 %10658, 1
  store i32 %10659, ptr @test_count, align 4, !tbaa !5
  %10660 = load ptr, ptr %256, align 8, !tbaa !9
  %10661 = getelementptr inbounds %struct.s2n_connection, ptr %10660, i32 0, i32 27
  %10662 = call i32 @s2n_crypto_parameters_free(ptr noundef %10661)
  %10663 = getelementptr inbounds %struct.s2n_result, ptr %261, i32 0, i32 0
  store i32 %10662, ptr %10663, align 4
  %10664 = getelementptr inbounds %struct.s2n_result, ptr %261, i32 0, i32 0
  %10665 = load i32, ptr %10664, align 4
  %10666 = call zeroext i1 @s2n_result_is_ok(i32 %10665)
  br i1 %10666, label %10720, label %10667

10667:                                            ; preds = %10657
  br label %10668

10668:                                            ; preds = %10667
  br label %10669

10669:                                            ; preds = %10668
  call void @llvm.lifetime.start.p0(i64 4, ptr %262) #11
  %10670 = call ptr @__errno_location() #12
  %10671 = load i32, ptr %10670, align 4, !tbaa !5
  store i32 %10671, ptr %262, align 4, !tbaa !5
  %10672 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10673 = call i32 @s2n_print_stacktrace(ptr noundef %10672)
  %10674 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10675 = trunc i8 %10674 to i1
  br i1 %10675, label %10676, label %10698

10676:                                            ; preds = %10669
  %10677 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10678 = call i32 @fileno(ptr noundef %10677) #11
  %10679 = call i32 @isatty(i32 noundef %10678) #11
  %10680 = icmp ne i32 %10679, 0
  br i1 %10680, label %10681, label %10698

10681:                                            ; preds = %10676
  %10682 = load i32, ptr %262, align 4, !tbaa !5
  %10683 = call ptr @__errno_location() #12
  store i32 %10682, ptr %10683, align 4, !tbaa !5
  %10684 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10685 = load i32, ptr @test_count, align 4, !tbaa !5
  %10686 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10687 = load i32, ptr %10686, align 4, !tbaa !5
  %10688 = call ptr @s2n_strerror(i32 noundef %10687, ptr noundef @.str.4)
  %10689 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10690 = load i32, ptr %10689, align 4, !tbaa !5
  %10691 = call ptr @s2n_strerror_debug(i32 noundef %10690, ptr noundef @.str.4)
  %10692 = call ptr @__errno_location() #12
  %10693 = load i32, ptr %10692, align 4, !tbaa !5
  %10694 = call ptr @strerror(i32 noundef %10693) #11
  %10695 = call ptr @__errno_location() #12
  %10696 = load i32, ptr %10695, align 4, !tbaa !5
  %10697 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10684, ptr noundef @.str.2, i32 noundef %10685, ptr noundef @.str.89, ptr noundef @.str.1, i32 noundef 506, ptr noundef %10688, ptr noundef %10691, ptr noundef %10694, i32 noundef %10696) #11
  br label %10715

10698:                                            ; preds = %10676, %10669
  %10699 = load i32, ptr %262, align 4, !tbaa !5
  %10700 = call ptr @__errno_location() #12
  store i32 %10699, ptr %10700, align 4, !tbaa !5
  %10701 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10702 = load i32, ptr @test_count, align 4, !tbaa !5
  %10703 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10704 = load i32, ptr %10703, align 4, !tbaa !5
  %10705 = call ptr @s2n_strerror(i32 noundef %10704, ptr noundef @.str.4)
  %10706 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10707 = load i32, ptr %10706, align 4, !tbaa !5
  %10708 = call ptr @s2n_strerror_debug(i32 noundef %10707, ptr noundef @.str.4)
  %10709 = call ptr @__errno_location() #12
  %10710 = load i32, ptr %10709, align 4, !tbaa !5
  %10711 = call ptr @strerror(i32 noundef %10710) #11
  %10712 = call ptr @__errno_location() #12
  %10713 = load i32, ptr %10712, align 4, !tbaa !5
  %10714 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10701, ptr noundef @.str.5, i32 noundef %10702, ptr noundef @.str.89, ptr noundef @.str.1, i32 noundef 506, ptr noundef %10705, ptr noundef %10708, ptr noundef %10711, i32 noundef %10713) #11
  br label %10715

10715:                                            ; preds = %10698, %10681
  call void @llvm.lifetime.end.p0(i64 4, ptr %262) #11
  br label %10716

10716:                                            ; preds = %10715
  br label %10717

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

10718:                                            ; No predecessors!
  br label %10719

10719:                                            ; preds = %10718
  br label %10720

10720:                                            ; preds = %10719, %10657
  br label %10721

10721:                                            ; preds = %10720
  br label %10722

10722:                                            ; preds = %10721
  %10723 = load ptr, ptr %256, align 8, !tbaa !9
  %10724 = getelementptr inbounds %struct.s2n_connection, ptr %10723, i32 0, i32 27
  store ptr %239, ptr %10724, align 8, !tbaa !53
  call void @llvm.lifetime.start.p0(i64 304, ptr %263) #11
  call void @llvm.memset.p0.i64(ptr align 8 %263, i8 0, i64 304, i1 false)
  br label %10725

10725:                                            ; preds = %10722
  %10726 = load i32, ptr @test_count, align 4, !tbaa !5
  %10727 = add nsw i32 %10726, 1
  store i32 %10727, ptr @test_count, align 4, !tbaa !5
  %10728 = load ptr, ptr %256, align 8, !tbaa !9
  %10729 = call i32 @s2n_prf_generate_key_material(ptr noundef %10728, ptr noundef %263)
  %10730 = getelementptr inbounds %struct.s2n_result, ptr %264, i32 0, i32 0
  store i32 %10729, ptr %10730, align 4
  %10731 = getelementptr inbounds %struct.s2n_result, ptr %264, i32 0, i32 0
  %10732 = load i32, ptr %10731, align 4
  %10733 = call zeroext i1 @s2n_result_is_ok(i32 %10732)
  br i1 %10733, label %10787, label %10734

10734:                                            ; preds = %10725
  br label %10735

10735:                                            ; preds = %10734
  br label %10736

10736:                                            ; preds = %10735
  call void @llvm.lifetime.start.p0(i64 4, ptr %265) #11
  %10737 = call ptr @__errno_location() #12
  %10738 = load i32, ptr %10737, align 4, !tbaa !5
  store i32 %10738, ptr %265, align 4, !tbaa !5
  %10739 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10740 = call i32 @s2n_print_stacktrace(ptr noundef %10739)
  %10741 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10742 = trunc i8 %10741 to i1
  br i1 %10742, label %10743, label %10765

10743:                                            ; preds = %10736
  %10744 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10745 = call i32 @fileno(ptr noundef %10744) #11
  %10746 = call i32 @isatty(i32 noundef %10745) #11
  %10747 = icmp ne i32 %10746, 0
  br i1 %10747, label %10748, label %10765

10748:                                            ; preds = %10743
  %10749 = load i32, ptr %265, align 4, !tbaa !5
  %10750 = call ptr @__errno_location() #12
  store i32 %10749, ptr %10750, align 4, !tbaa !5
  %10751 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10752 = load i32, ptr @test_count, align 4, !tbaa !5
  %10753 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10754 = load i32, ptr %10753, align 4, !tbaa !5
  %10755 = call ptr @s2n_strerror(i32 noundef %10754, ptr noundef @.str.4)
  %10756 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10757 = load i32, ptr %10756, align 4, !tbaa !5
  %10758 = call ptr @s2n_strerror_debug(i32 noundef %10757, ptr noundef @.str.4)
  %10759 = call ptr @__errno_location() #12
  %10760 = load i32, ptr %10759, align 4, !tbaa !5
  %10761 = call ptr @strerror(i32 noundef %10760) #11
  %10762 = call ptr @__errno_location() #12
  %10763 = load i32, ptr %10762, align 4, !tbaa !5
  %10764 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10751, ptr noundef @.str.2, i32 noundef %10752, ptr noundef @.str.90, ptr noundef @.str.1, i32 noundef 510, ptr noundef %10755, ptr noundef %10758, ptr noundef %10761, i32 noundef %10763) #11
  br label %10782

10765:                                            ; preds = %10743, %10736
  %10766 = load i32, ptr %265, align 4, !tbaa !5
  %10767 = call ptr @__errno_location() #12
  store i32 %10766, ptr %10767, align 4, !tbaa !5
  %10768 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10769 = load i32, ptr @test_count, align 4, !tbaa !5
  %10770 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10771 = load i32, ptr %10770, align 4, !tbaa !5
  %10772 = call ptr @s2n_strerror(i32 noundef %10771, ptr noundef @.str.4)
  %10773 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10774 = load i32, ptr %10773, align 4, !tbaa !5
  %10775 = call ptr @s2n_strerror_debug(i32 noundef %10774, ptr noundef @.str.4)
  %10776 = call ptr @__errno_location() #12
  %10777 = load i32, ptr %10776, align 4, !tbaa !5
  %10778 = call ptr @strerror(i32 noundef %10777) #11
  %10779 = call ptr @__errno_location() #12
  %10780 = load i32, ptr %10779, align 4, !tbaa !5
  %10781 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10768, ptr noundef @.str.5, i32 noundef %10769, ptr noundef @.str.90, ptr noundef @.str.1, i32 noundef 510, ptr noundef %10772, ptr noundef %10775, ptr noundef %10778, i32 noundef %10780) #11
  br label %10782

10782:                                            ; preds = %10765, %10748
  call void @llvm.lifetime.end.p0(i64 4, ptr %265) #11
  br label %10783

10783:                                            ; preds = %10782
  br label %10784

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

10785:                                            ; No predecessors!
  br label %10786

10786:                                            ; preds = %10785
  br label %10787

10787:                                            ; preds = %10786, %10725
  br label %10788

10788:                                            ; preds = %10787
  br label %10789

10789:                                            ; preds = %10788
  %10790 = getelementptr inbounds %struct.s2n_test_setsockopt_expected_struct, ptr %266, i32 0, i32 0
  store i64 0, ptr %10790, align 8, !tbaa !78
  %10791 = getelementptr inbounds %struct.s2n_test_setsockopt_expected_struct, ptr %266, i32 0, i32 1
  store i32 55, ptr %10791, align 8, !tbaa !81
  %10792 = getelementptr inbounds %struct.s2n_test_setsockopt_expected_struct, ptr %266, i32 0, i32 2
  store i32 0, ptr %10792, align 4, !tbaa !82
  %10793 = getelementptr inbounds %struct.s2n_test_setsockopt_expected_struct, ptr %266, i32 0, i32 3
  %10794 = getelementptr inbounds %struct.s2n_ktls_crypto_info_inputs, ptr %10793, i32 0, i32 0
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %10794, ptr align 8 %241, i64 24, i1 false), !tbaa.struct !17
  %10795 = getelementptr inbounds %struct.s2n_ktls_crypto_info_inputs, ptr %10793, i32 0, i32 1
  %10796 = getelementptr inbounds %struct.s2n_key_material, ptr %263, i32 0, i32 3
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %10795, ptr align 8 %10796, i64 24, i1 false), !tbaa.struct !17
  %10797 = getelementptr inbounds %struct.s2n_ktls_crypto_info_inputs, ptr %10793, i32 0, i32 2
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %10797, ptr align 8 %249, i64 24, i1 false), !tbaa.struct !17
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 @s2n_test_setsockopt_expected, ptr align 8 %266, i64 88, i1 false), !tbaa.struct !83
  br label %10798

10798:                                            ; preds = %10789
  %10799 = load i32, ptr @test_count, align 4, !tbaa !5
  %10800 = add nsw i32 %10799, 1
  store i32 %10800, ptr @test_count, align 4, !tbaa !5
  %10801 = load ptr, ptr %256, align 8, !tbaa !9
  %10802 = call i32 @s2n_connection_ktls_enable_recv(ptr noundef %10801)
  %10803 = icmp eq i32 %10802, -1
  br i1 %10803, label %10804, label %10857

10804:                                            ; preds = %10798
  br label %10805

10805:                                            ; preds = %10804
  br label %10806

10806:                                            ; preds = %10805
  call void @llvm.lifetime.start.p0(i64 4, ptr %267) #11
  %10807 = call ptr @__errno_location() #12
  %10808 = load i32, ptr %10807, align 4, !tbaa !5
  store i32 %10808, ptr %267, align 4, !tbaa !5
  %10809 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10810 = call i32 @s2n_print_stacktrace(ptr noundef %10809)
  %10811 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10812 = trunc i8 %10811 to i1
  br i1 %10812, label %10813, label %10835

10813:                                            ; preds = %10806
  %10814 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10815 = call i32 @fileno(ptr noundef %10814) #11
  %10816 = call i32 @isatty(i32 noundef %10815) #11
  %10817 = icmp ne i32 %10816, 0
  br i1 %10817, label %10818, label %10835

10818:                                            ; preds = %10813
  %10819 = load i32, ptr %267, align 4, !tbaa !5
  %10820 = call ptr @__errno_location() #12
  store i32 %10819, ptr %10820, align 4, !tbaa !5
  %10821 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10822 = load i32, ptr @test_count, align 4, !tbaa !5
  %10823 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10824 = load i32, ptr %10823, align 4, !tbaa !5
  %10825 = call ptr @s2n_strerror(i32 noundef %10824, ptr noundef @.str.4)
  %10826 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10827 = load i32, ptr %10826, align 4, !tbaa !5
  %10828 = call ptr @s2n_strerror_debug(i32 noundef %10827, ptr noundef @.str.4)
  %10829 = call ptr @__errno_location() #12
  %10830 = load i32, ptr %10829, align 4, !tbaa !5
  %10831 = call ptr @strerror(i32 noundef %10830) #11
  %10832 = call ptr @__errno_location() #12
  %10833 = load i32, ptr %10832, align 4, !tbaa !5
  %10834 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10821, ptr noundef @.str.2, i32 noundef %10822, ptr noundef @.str.77, ptr noundef @.str.1, i32 noundef 522, ptr noundef %10825, ptr noundef %10828, ptr noundef %10831, i32 noundef %10833) #11
  br label %10852

10835:                                            ; preds = %10813, %10806
  %10836 = load i32, ptr %267, align 4, !tbaa !5
  %10837 = call ptr @__errno_location() #12
  store i32 %10836, ptr %10837, align 4, !tbaa !5
  %10838 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10839 = load i32, ptr @test_count, align 4, !tbaa !5
  %10840 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10841 = load i32, ptr %10840, align 4, !tbaa !5
  %10842 = call ptr @s2n_strerror(i32 noundef %10841, ptr noundef @.str.4)
  %10843 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10844 = load i32, ptr %10843, align 4, !tbaa !5
  %10845 = call ptr @s2n_strerror_debug(i32 noundef %10844, ptr noundef @.str.4)
  %10846 = call ptr @__errno_location() #12
  %10847 = load i32, ptr %10846, align 4, !tbaa !5
  %10848 = call ptr @strerror(i32 noundef %10847) #11
  %10849 = call ptr @__errno_location() #12
  %10850 = load i32, ptr %10849, align 4, !tbaa !5
  %10851 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10838, ptr noundef @.str.5, i32 noundef %10839, ptr noundef @.str.77, ptr noundef @.str.1, i32 noundef 522, ptr noundef %10842, ptr noundef %10845, ptr noundef %10848, i32 noundef %10850) #11
  br label %10852

10852:                                            ; preds = %10835, %10818
  call void @llvm.lifetime.end.p0(i64 4, ptr %267) #11
  br label %10853

10853:                                            ; preds = %10852
  br label %10854

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

10855:                                            ; No predecessors!
  br label %10856

10856:                                            ; preds = %10855
  br label %10857

10857:                                            ; preds = %10856, %10798
  br label %10858

10858:                                            ; preds = %10857
  br label %10859

10859:                                            ; preds = %10858
  br label %10860

10860:                                            ; preds = %10859
  %10861 = load i32, ptr @test_count, align 4, !tbaa !5
  %10862 = add nsw i32 %10861, 1
  store i32 %10862, ptr @test_count, align 4, !tbaa !5
  %10863 = load i64, ptr @s2n_test_setsockopt_expected, align 8, !tbaa !78
  %10864 = icmp eq i64 %10863, 1
  br i1 %10864, label %10918, label %10865

10865:                                            ; preds = %10860
  br label %10866

10866:                                            ; preds = %10865
  br label %10867

10867:                                            ; preds = %10866
  call void @llvm.lifetime.start.p0(i64 4, ptr %268) #11
  %10868 = call ptr @__errno_location() #12
  %10869 = load i32, ptr %10868, align 4, !tbaa !5
  store i32 %10869, ptr %268, align 4, !tbaa !5
  %10870 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10871 = call i32 @s2n_print_stacktrace(ptr noundef %10870)
  %10872 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10873 = trunc i8 %10872 to i1
  br i1 %10873, label %10874, label %10896

10874:                                            ; preds = %10867
  %10875 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10876 = call i32 @fileno(ptr noundef %10875) #11
  %10877 = call i32 @isatty(i32 noundef %10876) #11
  %10878 = icmp ne i32 %10877, 0
  br i1 %10878, label %10879, label %10896

10879:                                            ; preds = %10874
  %10880 = load i32, ptr %268, align 4, !tbaa !5
  %10881 = call ptr @__errno_location() #12
  store i32 %10880, ptr %10881, align 4, !tbaa !5
  %10882 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10883 = load i32, ptr @test_count, align 4, !tbaa !5
  %10884 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10885 = load i32, ptr %10884, align 4, !tbaa !5
  %10886 = call ptr @s2n_strerror(i32 noundef %10885, ptr noundef @.str.4)
  %10887 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10888 = load i32, ptr %10887, align 4, !tbaa !5
  %10889 = call ptr @s2n_strerror_debug(i32 noundef %10888, ptr noundef @.str.4)
  %10890 = call ptr @__errno_location() #12
  %10891 = load i32, ptr %10890, align 4, !tbaa !5
  %10892 = call ptr @strerror(i32 noundef %10891) #11
  %10893 = call ptr @__errno_location() #12
  %10894 = load i32, ptr %10893, align 4, !tbaa !5
  %10895 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10882, ptr noundef @.str.2, i32 noundef %10883, ptr noundef @.str.91, ptr noundef @.str.1, i32 noundef 523, ptr noundef %10886, ptr noundef %10889, ptr noundef %10892, i32 noundef %10894) #11
  br label %10913

10896:                                            ; preds = %10874, %10867
  %10897 = load i32, ptr %268, align 4, !tbaa !5
  %10898 = call ptr @__errno_location() #12
  store i32 %10897, ptr %10898, align 4, !tbaa !5
  %10899 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10900 = load i32, ptr @test_count, align 4, !tbaa !5
  %10901 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10902 = load i32, ptr %10901, align 4, !tbaa !5
  %10903 = call ptr @s2n_strerror(i32 noundef %10902, ptr noundef @.str.4)
  %10904 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10905 = load i32, ptr %10904, align 4, !tbaa !5
  %10906 = call ptr @s2n_strerror_debug(i32 noundef %10905, ptr noundef @.str.4)
  %10907 = call ptr @__errno_location() #12
  %10908 = load i32, ptr %10907, align 4, !tbaa !5
  %10909 = call ptr @strerror(i32 noundef %10908) #11
  %10910 = call ptr @__errno_location() #12
  %10911 = load i32, ptr %10910, align 4, !tbaa !5
  %10912 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10899, ptr noundef @.str.5, i32 noundef %10900, ptr noundef @.str.91, ptr noundef @.str.1, i32 noundef 523, ptr noundef %10903, ptr noundef %10906, ptr noundef %10909, i32 noundef %10911) #11
  br label %10913

10913:                                            ; preds = %10896, %10879
  call void @llvm.lifetime.end.p0(i64 4, ptr %268) #11
  br label %10914

10914:                                            ; preds = %10913
  br label %10915

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

10916:                                            ; No predecessors!
  br label %10917

10917:                                            ; preds = %10916
  br label %10918

10918:                                            ; preds = %10917, %10860
  br label %10919

10919:                                            ; preds = %10918
  br label %10920

10920:                                            ; preds = %10919
  %10921 = getelementptr inbounds %struct.s2n_test_setsockopt_expected_struct, ptr %269, i32 0, i32 0
  store i64 0, ptr %10921, align 8, !tbaa !78
  %10922 = getelementptr inbounds %struct.s2n_test_setsockopt_expected_struct, ptr %269, i32 0, i32 1
  store i32 66, ptr %10922, align 8, !tbaa !81
  %10923 = getelementptr inbounds %struct.s2n_test_setsockopt_expected_struct, ptr %269, i32 0, i32 2
  store i32 0, ptr %10923, align 4, !tbaa !82
  %10924 = getelementptr inbounds %struct.s2n_test_setsockopt_expected_struct, ptr %269, i32 0, i32 3
  %10925 = getelementptr inbounds %struct.s2n_ktls_crypto_info_inputs, ptr %10924, i32 0, i32 0
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %10925, ptr align 8 %240, i64 24, i1 false), !tbaa.struct !17
  %10926 = getelementptr inbounds %struct.s2n_ktls_crypto_info_inputs, ptr %10924, i32 0, i32 1
  %10927 = getelementptr inbounds %struct.s2n_key_material, ptr %263, i32 0, i32 4
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %10926, ptr align 8 %10927, i64 24, i1 false), !tbaa.struct !17
  %10928 = getelementptr inbounds %struct.s2n_ktls_crypto_info_inputs, ptr %10924, i32 0, i32 2
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %10928, ptr align 8 %248, i64 24, i1 false), !tbaa.struct !17
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 @s2n_test_setsockopt_expected, ptr align 8 %269, i64 88, i1 false), !tbaa.struct !83
  br label %10929

10929:                                            ; preds = %10920
  %10930 = load i32, ptr @test_count, align 4, !tbaa !5
  %10931 = add nsw i32 %10930, 1
  store i32 %10931, ptr @test_count, align 4, !tbaa !5
  %10932 = load ptr, ptr %256, align 8, !tbaa !9
  %10933 = call i32 @s2n_connection_ktls_enable_send(ptr noundef %10932)
  %10934 = icmp eq i32 %10933, -1
  br i1 %10934, label %10935, label %10988

10935:                                            ; preds = %10929
  br label %10936

10936:                                            ; preds = %10935
  br label %10937

10937:                                            ; preds = %10936
  call void @llvm.lifetime.start.p0(i64 4, ptr %270) #11
  %10938 = call ptr @__errno_location() #12
  %10939 = load i32, ptr %10938, align 4, !tbaa !5
  store i32 %10939, ptr %270, align 4, !tbaa !5
  %10940 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10941 = call i32 @s2n_print_stacktrace(ptr noundef %10940)
  %10942 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10943 = trunc i8 %10942 to i1
  br i1 %10943, label %10944, label %10966

10944:                                            ; preds = %10937
  %10945 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10946 = call i32 @fileno(ptr noundef %10945) #11
  %10947 = call i32 @isatty(i32 noundef %10946) #11
  %10948 = icmp ne i32 %10947, 0
  br i1 %10948, label %10949, label %10966

10949:                                            ; preds = %10944
  %10950 = load i32, ptr %270, align 4, !tbaa !5
  %10951 = call ptr @__errno_location() #12
  store i32 %10950, ptr %10951, align 4, !tbaa !5
  %10952 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10953 = load i32, ptr @test_count, align 4, !tbaa !5
  %10954 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10955 = load i32, ptr %10954, align 4, !tbaa !5
  %10956 = call ptr @s2n_strerror(i32 noundef %10955, ptr noundef @.str.4)
  %10957 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10958 = load i32, ptr %10957, align 4, !tbaa !5
  %10959 = call ptr @s2n_strerror_debug(i32 noundef %10958, ptr noundef @.str.4)
  %10960 = call ptr @__errno_location() #12
  %10961 = load i32, ptr %10960, align 4, !tbaa !5
  %10962 = call ptr @strerror(i32 noundef %10961) #11
  %10963 = call ptr @__errno_location() #12
  %10964 = load i32, ptr %10963, align 4, !tbaa !5
  %10965 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10952, ptr noundef @.str.2, i32 noundef %10953, ptr noundef @.str.92, ptr noundef @.str.1, i32 noundef 535, ptr noundef %10956, ptr noundef %10959, ptr noundef %10962, i32 noundef %10964) #11
  br label %10983

10966:                                            ; preds = %10944, %10937
  %10967 = load i32, ptr %270, align 4, !tbaa !5
  %10968 = call ptr @__errno_location() #12
  store i32 %10967, ptr %10968, align 4, !tbaa !5
  %10969 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10970 = load i32, ptr @test_count, align 4, !tbaa !5
  %10971 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10972 = load i32, ptr %10971, align 4, !tbaa !5
  %10973 = call ptr @s2n_strerror(i32 noundef %10972, ptr noundef @.str.4)
  %10974 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10975 = load i32, ptr %10974, align 4, !tbaa !5
  %10976 = call ptr @s2n_strerror_debug(i32 noundef %10975, ptr noundef @.str.4)
  %10977 = call ptr @__errno_location() #12
  %10978 = load i32, ptr %10977, align 4, !tbaa !5
  %10979 = call ptr @strerror(i32 noundef %10978) #11
  %10980 = call ptr @__errno_location() #12
  %10981 = load i32, ptr %10980, align 4, !tbaa !5
  %10982 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10969, ptr noundef @.str.5, i32 noundef %10970, ptr noundef @.str.92, ptr noundef @.str.1, i32 noundef 535, ptr noundef %10973, ptr noundef %10976, ptr noundef %10979, i32 noundef %10981) #11
  br label %10983

10983:                                            ; preds = %10966, %10949
  call void @llvm.lifetime.end.p0(i64 4, ptr %270) #11
  br label %10984

10984:                                            ; preds = %10983
  br label %10985

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

10986:                                            ; No predecessors!
  br label %10987

10987:                                            ; preds = %10986
  br label %10988

10988:                                            ; preds = %10987, %10929
  br label %10989

10989:                                            ; preds = %10988
  br label %10990

10990:                                            ; preds = %10989
  br label %10991

10991:                                            ; preds = %10990
  %10992 = load i32, ptr @test_count, align 4, !tbaa !5
  %10993 = add nsw i32 %10992, 1
  store i32 %10993, ptr @test_count, align 4, !tbaa !5
  %10994 = load i64, ptr @s2n_test_setsockopt_expected, align 8, !tbaa !78
  %10995 = icmp eq i64 %10994, 1
  br i1 %10995, label %11049, label %10996

10996:                                            ; preds = %10991
  br label %10997

10997:                                            ; preds = %10996
  br label %10998

10998:                                            ; preds = %10997
  call void @llvm.lifetime.start.p0(i64 4, ptr %271) #11
  %10999 = call ptr @__errno_location() #12
  %11000 = load i32, ptr %10999, align 4, !tbaa !5
  store i32 %11000, ptr %271, align 4, !tbaa !5
  %11001 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11002 = call i32 @s2n_print_stacktrace(ptr noundef %11001)
  %11003 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11004 = trunc i8 %11003 to i1
  br i1 %11004, label %11005, label %11027

11005:                                            ; preds = %10998
  %11006 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11007 = call i32 @fileno(ptr noundef %11006) #11
  %11008 = call i32 @isatty(i32 noundef %11007) #11
  %11009 = icmp ne i32 %11008, 0
  br i1 %11009, label %11010, label %11027

11010:                                            ; preds = %11005
  %11011 = load i32, ptr %271, align 4, !tbaa !5
  %11012 = call ptr @__errno_location() #12
  store i32 %11011, ptr %11012, align 4, !tbaa !5
  %11013 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11014 = load i32, ptr @test_count, align 4, !tbaa !5
  %11015 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11016 = load i32, ptr %11015, align 4, !tbaa !5
  %11017 = call ptr @s2n_strerror(i32 noundef %11016, ptr noundef @.str.4)
  %11018 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11019 = load i32, ptr %11018, align 4, !tbaa !5
  %11020 = call ptr @s2n_strerror_debug(i32 noundef %11019, ptr noundef @.str.4)
  %11021 = call ptr @__errno_location() #12
  %11022 = load i32, ptr %11021, align 4, !tbaa !5
  %11023 = call ptr @strerror(i32 noundef %11022) #11
  %11024 = call ptr @__errno_location() #12
  %11025 = load i32, ptr %11024, align 4, !tbaa !5
  %11026 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11013, ptr noundef @.str.2, i32 noundef %11014, ptr noundef @.str.91, ptr noundef @.str.1, i32 noundef 536, ptr noundef %11017, ptr noundef %11020, ptr noundef %11023, i32 noundef %11025) #11
  br label %11044

11027:                                            ; preds = %11005, %10998
  %11028 = load i32, ptr %271, align 4, !tbaa !5
  %11029 = call ptr @__errno_location() #12
  store i32 %11028, ptr %11029, align 4, !tbaa !5
  %11030 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11031 = load i32, ptr @test_count, align 4, !tbaa !5
  %11032 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11033 = load i32, ptr %11032, align 4, !tbaa !5
  %11034 = call ptr @s2n_strerror(i32 noundef %11033, ptr noundef @.str.4)
  %11035 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11036 = load i32, ptr %11035, align 4, !tbaa !5
  %11037 = call ptr @s2n_strerror_debug(i32 noundef %11036, ptr noundef @.str.4)
  %11038 = call ptr @__errno_location() #12
  %11039 = load i32, ptr %11038, align 4, !tbaa !5
  %11040 = call ptr @strerror(i32 noundef %11039) #11
  %11041 = call ptr @__errno_location() #12
  %11042 = load i32, ptr %11041, align 4, !tbaa !5
  %11043 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11030, ptr noundef @.str.5, i32 noundef %11031, ptr noundef @.str.91, ptr noundef @.str.1, i32 noundef 536, ptr noundef %11034, ptr noundef %11037, ptr noundef %11040, i32 noundef %11042) #11
  br label %11044

11044:                                            ; preds = %11027, %11010
  call void @llvm.lifetime.end.p0(i64 4, ptr %271) #11
  br label %11045

11045:                                            ; preds = %11044
  br label %11046

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

11047:                                            ; No predecessors!
  br label %11048

11048:                                            ; preds = %11047
  br label %11049

11049:                                            ; preds = %11048, %10991
  br label %11050

11050:                                            ; preds = %11049
  br label %11051

11051:                                            ; preds = %11050
  %11052 = load ptr, ptr %256, align 8, !tbaa !9
  %11053 = getelementptr inbounds %struct.s2n_connection, ptr %11052, i32 0, i32 27
  store ptr null, ptr %11053, align 8, !tbaa !53
  call void @llvm.lifetime.end.p0(i64 304, ptr %263) #11
  %11054 = call i32 @s2n_connection_ptr_free(ptr noundef %256)
  %11055 = getelementptr inbounds %struct.s2n_result, ptr %272, i32 0, i32 0
  store i32 %11054, ptr %11055, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %256) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %273) #11
  %11056 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %11056, ptr %273, align 8, !tbaa !9
  br label %11057

11057:                                            ; preds = %11051
  %11058 = load i32, ptr @test_count, align 4, !tbaa !5
  %11059 = add nsw i32 %11058, 1
  store i32 %11059, ptr @test_count, align 4, !tbaa !5
  %11060 = load ptr, ptr %273, align 8, !tbaa !9
  %11061 = call i32 @s2n_test_configure_connection_for_ktls(ptr noundef %11060)
  %11062 = getelementptr inbounds %struct.s2n_result, ptr %274, i32 0, i32 0
  store i32 %11061, ptr %11062, align 4
  %11063 = getelementptr inbounds %struct.s2n_result, ptr %274, i32 0, i32 0
  %11064 = load i32, ptr %11063, align 4
  %11065 = call zeroext i1 @s2n_result_is_ok(i32 %11064)
  br i1 %11065, label %11119, label %11066

11066:                                            ; preds = %11057
  br label %11067

11067:                                            ; preds = %11066
  br label %11068

11068:                                            ; preds = %11067
  call void @llvm.lifetime.start.p0(i64 4, ptr %275) #11
  %11069 = call ptr @__errno_location() #12
  %11070 = load i32, ptr %11069, align 4, !tbaa !5
  store i32 %11070, ptr %275, align 4, !tbaa !5
  %11071 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11072 = call i32 @s2n_print_stacktrace(ptr noundef %11071)
  %11073 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11074 = trunc i8 %11073 to i1
  br i1 %11074, label %11075, label %11097

11075:                                            ; preds = %11068
  %11076 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11077 = call i32 @fileno(ptr noundef %11076) #11
  %11078 = call i32 @isatty(i32 noundef %11077) #11
  %11079 = icmp ne i32 %11078, 0
  br i1 %11079, label %11080, label %11097

11080:                                            ; preds = %11075
  %11081 = load i32, ptr %275, align 4, !tbaa !5
  %11082 = call ptr @__errno_location() #12
  store i32 %11081, ptr %11082, align 4, !tbaa !5
  %11083 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11084 = load i32, ptr @test_count, align 4, !tbaa !5
  %11085 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11086 = load i32, ptr %11085, align 4, !tbaa !5
  %11087 = call ptr @s2n_strerror(i32 noundef %11086, ptr noundef @.str.4)
  %11088 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11089 = load i32, ptr %11088, align 4, !tbaa !5
  %11090 = call ptr @s2n_strerror_debug(i32 noundef %11089, ptr noundef @.str.4)
  %11091 = call ptr @__errno_location() #12
  %11092 = load i32, ptr %11091, align 4, !tbaa !5
  %11093 = call ptr @strerror(i32 noundef %11092) #11
  %11094 = call ptr @__errno_location() #12
  %11095 = load i32, ptr %11094, align 4, !tbaa !5
  %11096 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11083, ptr noundef @.str.2, i32 noundef %11084, ptr noundef @.str.70, ptr noundef @.str.1, i32 noundef 544, ptr noundef %11087, ptr noundef %11090, ptr noundef %11093, i32 noundef %11095) #11
  br label %11114

11097:                                            ; preds = %11075, %11068
  %11098 = load i32, ptr %275, align 4, !tbaa !5
  %11099 = call ptr @__errno_location() #12
  store i32 %11098, ptr %11099, align 4, !tbaa !5
  %11100 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11101 = load i32, ptr @test_count, align 4, !tbaa !5
  %11102 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11103 = load i32, ptr %11102, align 4, !tbaa !5
  %11104 = call ptr @s2n_strerror(i32 noundef %11103, ptr noundef @.str.4)
  %11105 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11106 = load i32, ptr %11105, align 4, !tbaa !5
  %11107 = call ptr @s2n_strerror_debug(i32 noundef %11106, ptr noundef @.str.4)
  %11108 = call ptr @__errno_location() #12
  %11109 = load i32, ptr %11108, align 4, !tbaa !5
  %11110 = call ptr @strerror(i32 noundef %11109) #11
  %11111 = call ptr @__errno_location() #12
  %11112 = load i32, ptr %11111, align 4, !tbaa !5
  %11113 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11100, ptr noundef @.str.5, i32 noundef %11101, ptr noundef @.str.70, ptr noundef @.str.1, i32 noundef 544, ptr noundef %11104, ptr noundef %11107, ptr noundef %11110, i32 noundef %11112) #11
  br label %11114

11114:                                            ; preds = %11097, %11080
  call void @llvm.lifetime.end.p0(i64 4, ptr %275) #11
  br label %11115

11115:                                            ; preds = %11114
  br label %11116

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

11117:                                            ; No predecessors!
  br label %11118

11118:                                            ; preds = %11117
  br label %11119

11119:                                            ; preds = %11118, %11057
  br label %11120

11120:                                            ; preds = %11119
  br label %11121

11121:                                            ; preds = %11120
  br label %11122

11122:                                            ; preds = %11121
  %11123 = load i32, ptr @test_count, align 4, !tbaa !5
  %11124 = add nsw i32 %11123, 1
  store i32 %11124, ptr @test_count, align 4, !tbaa !5
  %11125 = call i32 @s2n_ktls_set_setsockopt_cb(ptr noundef @s2n_test_setsockopt_tls_cb)
  %11126 = getelementptr inbounds %struct.s2n_result, ptr %276, i32 0, i32 0
  store i32 %11125, ptr %11126, align 4
  %11127 = getelementptr inbounds %struct.s2n_result, ptr %276, i32 0, i32 0
  %11128 = load i32, ptr %11127, align 4
  %11129 = call zeroext i1 @s2n_result_is_ok(i32 %11128)
  br i1 %11129, label %11183, label %11130

11130:                                            ; preds = %11122
  br label %11131

11131:                                            ; preds = %11130
  br label %11132

11132:                                            ; preds = %11131
  call void @llvm.lifetime.start.p0(i64 4, ptr %277) #11
  %11133 = call ptr @__errno_location() #12
  %11134 = load i32, ptr %11133, align 4, !tbaa !5
  store i32 %11134, ptr %277, align 4, !tbaa !5
  %11135 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11136 = call i32 @s2n_print_stacktrace(ptr noundef %11135)
  %11137 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11138 = trunc i8 %11137 to i1
  br i1 %11138, label %11139, label %11161

11139:                                            ; preds = %11132
  %11140 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11141 = call i32 @fileno(ptr noundef %11140) #11
  %11142 = call i32 @isatty(i32 noundef %11141) #11
  %11143 = icmp ne i32 %11142, 0
  br i1 %11143, label %11144, label %11161

11144:                                            ; preds = %11139
  %11145 = load i32, ptr %277, align 4, !tbaa !5
  %11146 = call ptr @__errno_location() #12
  store i32 %11145, ptr %11146, align 4, !tbaa !5
  %11147 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11148 = load i32, ptr @test_count, align 4, !tbaa !5
  %11149 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11150 = load i32, ptr %11149, align 4, !tbaa !5
  %11151 = call ptr @s2n_strerror(i32 noundef %11150, ptr noundef @.str.4)
  %11152 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11153 = load i32, ptr %11152, align 4, !tbaa !5
  %11154 = call ptr @s2n_strerror_debug(i32 noundef %11153, ptr noundef @.str.4)
  %11155 = call ptr @__errno_location() #12
  %11156 = load i32, ptr %11155, align 4, !tbaa !5
  %11157 = call ptr @strerror(i32 noundef %11156) #11
  %11158 = call ptr @__errno_location() #12
  %11159 = load i32, ptr %11158, align 4, !tbaa !5
  %11160 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11147, ptr noundef @.str.2, i32 noundef %11148, ptr noundef @.str.88, ptr noundef @.str.1, i32 noundef 545, ptr noundef %11151, ptr noundef %11154, ptr noundef %11157, i32 noundef %11159) #11
  br label %11178

11161:                                            ; preds = %11139, %11132
  %11162 = load i32, ptr %277, align 4, !tbaa !5
  %11163 = call ptr @__errno_location() #12
  store i32 %11162, ptr %11163, align 4, !tbaa !5
  %11164 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11165 = load i32, ptr @test_count, align 4, !tbaa !5
  %11166 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11167 = load i32, ptr %11166, align 4, !tbaa !5
  %11168 = call ptr @s2n_strerror(i32 noundef %11167, ptr noundef @.str.4)
  %11169 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11170 = load i32, ptr %11169, align 4, !tbaa !5
  %11171 = call ptr @s2n_strerror_debug(i32 noundef %11170, ptr noundef @.str.4)
  %11172 = call ptr @__errno_location() #12
  %11173 = load i32, ptr %11172, align 4, !tbaa !5
  %11174 = call ptr @strerror(i32 noundef %11173) #11
  %11175 = call ptr @__errno_location() #12
  %11176 = load i32, ptr %11175, align 4, !tbaa !5
  %11177 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11164, ptr noundef @.str.5, i32 noundef %11165, ptr noundef @.str.88, ptr noundef @.str.1, i32 noundef 545, ptr noundef %11168, ptr noundef %11171, ptr noundef %11174, i32 noundef %11176) #11
  br label %11178

11178:                                            ; preds = %11161, %11144
  call void @llvm.lifetime.end.p0(i64 4, ptr %277) #11
  br label %11179

11179:                                            ; preds = %11178
  br label %11180

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

11181:                                            ; No predecessors!
  br label %11182

11182:                                            ; preds = %11181
  br label %11183

11183:                                            ; preds = %11182, %11122
  br label %11184

11184:                                            ; preds = %11183
  br label %11185

11185:                                            ; preds = %11184
  br label %11186

11186:                                            ; preds = %11185
  %11187 = load i32, ptr @test_count, align 4, !tbaa !5
  %11188 = add nsw i32 %11187, 1
  store i32 %11188, ptr @test_count, align 4, !tbaa !5
  %11189 = load ptr, ptr %273, align 8, !tbaa !9
  %11190 = getelementptr inbounds %struct.s2n_connection, ptr %11189, i32 0, i32 27
  %11191 = call i32 @s2n_crypto_parameters_free(ptr noundef %11190)
  %11192 = getelementptr inbounds %struct.s2n_result, ptr %278, i32 0, i32 0
  store i32 %11191, ptr %11192, align 4
  %11193 = getelementptr inbounds %struct.s2n_result, ptr %278, i32 0, i32 0
  %11194 = load i32, ptr %11193, align 4
  %11195 = call zeroext i1 @s2n_result_is_ok(i32 %11194)
  br i1 %11195, label %11249, label %11196

11196:                                            ; preds = %11186
  br label %11197

11197:                                            ; preds = %11196
  br label %11198

11198:                                            ; preds = %11197
  call void @llvm.lifetime.start.p0(i64 4, ptr %279) #11
  %11199 = call ptr @__errno_location() #12
  %11200 = load i32, ptr %11199, align 4, !tbaa !5
  store i32 %11200, ptr %279, align 4, !tbaa !5
  %11201 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11202 = call i32 @s2n_print_stacktrace(ptr noundef %11201)
  %11203 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11204 = trunc i8 %11203 to i1
  br i1 %11204, label %11205, label %11227

11205:                                            ; preds = %11198
  %11206 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11207 = call i32 @fileno(ptr noundef %11206) #11
  %11208 = call i32 @isatty(i32 noundef %11207) #11
  %11209 = icmp ne i32 %11208, 0
  br i1 %11209, label %11210, label %11227

11210:                                            ; preds = %11205
  %11211 = load i32, ptr %279, align 4, !tbaa !5
  %11212 = call ptr @__errno_location() #12
  store i32 %11211, ptr %11212, align 4, !tbaa !5
  %11213 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11214 = load i32, ptr @test_count, align 4, !tbaa !5
  %11215 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11216 = load i32, ptr %11215, align 4, !tbaa !5
  %11217 = call ptr @s2n_strerror(i32 noundef %11216, ptr noundef @.str.4)
  %11218 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11219 = load i32, ptr %11218, align 4, !tbaa !5
  %11220 = call ptr @s2n_strerror_debug(i32 noundef %11219, ptr noundef @.str.4)
  %11221 = call ptr @__errno_location() #12
  %11222 = load i32, ptr %11221, align 4, !tbaa !5
  %11223 = call ptr @strerror(i32 noundef %11222) #11
  %11224 = call ptr @__errno_location() #12
  %11225 = load i32, ptr %11224, align 4, !tbaa !5
  %11226 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11213, ptr noundef @.str.2, i32 noundef %11214, ptr noundef @.str.93, ptr noundef @.str.1, i32 noundef 546, ptr noundef %11217, ptr noundef %11220, ptr noundef %11223, i32 noundef %11225) #11
  br label %11244

11227:                                            ; preds = %11205, %11198
  %11228 = load i32, ptr %279, align 4, !tbaa !5
  %11229 = call ptr @__errno_location() #12
  store i32 %11228, ptr %11229, align 4, !tbaa !5
  %11230 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11231 = load i32, ptr @test_count, align 4, !tbaa !5
  %11232 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11233 = load i32, ptr %11232, align 4, !tbaa !5
  %11234 = call ptr @s2n_strerror(i32 noundef %11233, ptr noundef @.str.4)
  %11235 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11236 = load i32, ptr %11235, align 4, !tbaa !5
  %11237 = call ptr @s2n_strerror_debug(i32 noundef %11236, ptr noundef @.str.4)
  %11238 = call ptr @__errno_location() #12
  %11239 = load i32, ptr %11238, align 4, !tbaa !5
  %11240 = call ptr @strerror(i32 noundef %11239) #11
  %11241 = call ptr @__errno_location() #12
  %11242 = load i32, ptr %11241, align 4, !tbaa !5
  %11243 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11230, ptr noundef @.str.5, i32 noundef %11231, ptr noundef @.str.93, ptr noundef @.str.1, i32 noundef 546, ptr noundef %11234, ptr noundef %11237, ptr noundef %11240, i32 noundef %11242) #11
  br label %11244

11244:                                            ; preds = %11227, %11210
  call void @llvm.lifetime.end.p0(i64 4, ptr %279) #11
  br label %11245

11245:                                            ; preds = %11244
  br label %11246

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

11247:                                            ; No predecessors!
  br label %11248

11248:                                            ; preds = %11247
  br label %11249

11249:                                            ; preds = %11248, %11186
  br label %11250

11250:                                            ; preds = %11249
  br label %11251

11251:                                            ; preds = %11250
  %11252 = load ptr, ptr %273, align 8, !tbaa !9
  %11253 = getelementptr inbounds %struct.s2n_connection, ptr %11252, i32 0, i32 27
  store ptr %239, ptr %11253, align 8, !tbaa !53
  call void @llvm.lifetime.start.p0(i64 304, ptr %280) #11
  call void @llvm.memset.p0.i64(ptr align 8 %280, i8 0, i64 304, i1 false)
  br label %11254

11254:                                            ; preds = %11251
  %11255 = load i32, ptr @test_count, align 4, !tbaa !5
  %11256 = add nsw i32 %11255, 1
  store i32 %11256, ptr @test_count, align 4, !tbaa !5
  %11257 = load ptr, ptr %273, align 8, !tbaa !9
  %11258 = call i32 @s2n_prf_generate_key_material(ptr noundef %11257, ptr noundef %280)
  %11259 = getelementptr inbounds %struct.s2n_result, ptr %281, i32 0, i32 0
  store i32 %11258, ptr %11259, align 4
  %11260 = getelementptr inbounds %struct.s2n_result, ptr %281, i32 0, i32 0
  %11261 = load i32, ptr %11260, align 4
  %11262 = call zeroext i1 @s2n_result_is_ok(i32 %11261)
  br i1 %11262, label %11316, label %11263

11263:                                            ; preds = %11254
  br label %11264

11264:                                            ; preds = %11263
  br label %11265

11265:                                            ; preds = %11264
  call void @llvm.lifetime.start.p0(i64 4, ptr %282) #11
  %11266 = call ptr @__errno_location() #12
  %11267 = load i32, ptr %11266, align 4, !tbaa !5
  store i32 %11267, ptr %282, align 4, !tbaa !5
  %11268 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11269 = call i32 @s2n_print_stacktrace(ptr noundef %11268)
  %11270 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11271 = trunc i8 %11270 to i1
  br i1 %11271, label %11272, label %11294

11272:                                            ; preds = %11265
  %11273 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11274 = call i32 @fileno(ptr noundef %11273) #11
  %11275 = call i32 @isatty(i32 noundef %11274) #11
  %11276 = icmp ne i32 %11275, 0
  br i1 %11276, label %11277, label %11294

11277:                                            ; preds = %11272
  %11278 = load i32, ptr %282, align 4, !tbaa !5
  %11279 = call ptr @__errno_location() #12
  store i32 %11278, ptr %11279, align 4, !tbaa !5
  %11280 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11281 = load i32, ptr @test_count, align 4, !tbaa !5
  %11282 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11283 = load i32, ptr %11282, align 4, !tbaa !5
  %11284 = call ptr @s2n_strerror(i32 noundef %11283, ptr noundef @.str.4)
  %11285 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11286 = load i32, ptr %11285, align 4, !tbaa !5
  %11287 = call ptr @s2n_strerror_debug(i32 noundef %11286, ptr noundef @.str.4)
  %11288 = call ptr @__errno_location() #12
  %11289 = load i32, ptr %11288, align 4, !tbaa !5
  %11290 = call ptr @strerror(i32 noundef %11289) #11
  %11291 = call ptr @__errno_location() #12
  %11292 = load i32, ptr %11291, align 4, !tbaa !5
  %11293 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11280, ptr noundef @.str.2, i32 noundef %11281, ptr noundef @.str.94, ptr noundef @.str.1, i32 noundef 550, ptr noundef %11284, ptr noundef %11287, ptr noundef %11290, i32 noundef %11292) #11
  br label %11311

11294:                                            ; preds = %11272, %11265
  %11295 = load i32, ptr %282, align 4, !tbaa !5
  %11296 = call ptr @__errno_location() #12
  store i32 %11295, ptr %11296, align 4, !tbaa !5
  %11297 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11298 = load i32, ptr @test_count, align 4, !tbaa !5
  %11299 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11300 = load i32, ptr %11299, align 4, !tbaa !5
  %11301 = call ptr @s2n_strerror(i32 noundef %11300, ptr noundef @.str.4)
  %11302 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11303 = load i32, ptr %11302, align 4, !tbaa !5
  %11304 = call ptr @s2n_strerror_debug(i32 noundef %11303, ptr noundef @.str.4)
  %11305 = call ptr @__errno_location() #12
  %11306 = load i32, ptr %11305, align 4, !tbaa !5
  %11307 = call ptr @strerror(i32 noundef %11306) #11
  %11308 = call ptr @__errno_location() #12
  %11309 = load i32, ptr %11308, align 4, !tbaa !5
  %11310 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11297, ptr noundef @.str.5, i32 noundef %11298, ptr noundef @.str.94, ptr noundef @.str.1, i32 noundef 550, ptr noundef %11301, ptr noundef %11304, ptr noundef %11307, i32 noundef %11309) #11
  br label %11311

11311:                                            ; preds = %11294, %11277
  call void @llvm.lifetime.end.p0(i64 4, ptr %282) #11
  br label %11312

11312:                                            ; preds = %11311
  br label %11313

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

11314:                                            ; No predecessors!
  br label %11315

11315:                                            ; preds = %11314
  br label %11316

11316:                                            ; preds = %11315, %11254
  br label %11317

11317:                                            ; preds = %11316
  br label %11318

11318:                                            ; preds = %11317
  %11319 = getelementptr inbounds %struct.s2n_test_setsockopt_expected_struct, ptr %283, i32 0, i32 0
  store i64 0, ptr %11319, align 8, !tbaa !78
  %11320 = getelementptr inbounds %struct.s2n_test_setsockopt_expected_struct, ptr %283, i32 0, i32 1
  store i32 55, ptr %11320, align 8, !tbaa !81
  %11321 = getelementptr inbounds %struct.s2n_test_setsockopt_expected_struct, ptr %283, i32 0, i32 2
  store i32 0, ptr %11321, align 4, !tbaa !82
  %11322 = getelementptr inbounds %struct.s2n_test_setsockopt_expected_struct, ptr %283, i32 0, i32 3
  %11323 = getelementptr inbounds %struct.s2n_ktls_crypto_info_inputs, ptr %11322, i32 0, i32 0
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %11323, ptr align 8 %240, i64 24, i1 false), !tbaa.struct !17
  %11324 = getelementptr inbounds %struct.s2n_ktls_crypto_info_inputs, ptr %11322, i32 0, i32 1
  %11325 = getelementptr inbounds %struct.s2n_key_material, ptr %280, i32 0, i32 4
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %11324, ptr align 8 %11325, i64 24, i1 false), !tbaa.struct !17
  %11326 = getelementptr inbounds %struct.s2n_ktls_crypto_info_inputs, ptr %11322, i32 0, i32 2
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %11326, ptr align 8 %248, i64 24, i1 false), !tbaa.struct !17
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 @s2n_test_setsockopt_expected, ptr align 8 %283, i64 88, i1 false), !tbaa.struct !83
  br label %11327

11327:                                            ; preds = %11318
  %11328 = load i32, ptr @test_count, align 4, !tbaa !5
  %11329 = add nsw i32 %11328, 1
  store i32 %11329, ptr @test_count, align 4, !tbaa !5
  %11330 = load ptr, ptr %273, align 8, !tbaa !9
  %11331 = call i32 @s2n_connection_ktls_enable_recv(ptr noundef %11330)
  %11332 = icmp eq i32 %11331, -1
  br i1 %11332, label %11333, label %11386

11333:                                            ; preds = %11327
  br label %11334

11334:                                            ; preds = %11333
  br label %11335

11335:                                            ; preds = %11334
  call void @llvm.lifetime.start.p0(i64 4, ptr %284) #11
  %11336 = call ptr @__errno_location() #12
  %11337 = load i32, ptr %11336, align 4, !tbaa !5
  store i32 %11337, ptr %284, align 4, !tbaa !5
  %11338 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11339 = call i32 @s2n_print_stacktrace(ptr noundef %11338)
  %11340 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11341 = trunc i8 %11340 to i1
  br i1 %11341, label %11342, label %11364

11342:                                            ; preds = %11335
  %11343 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11344 = call i32 @fileno(ptr noundef %11343) #11
  %11345 = call i32 @isatty(i32 noundef %11344) #11
  %11346 = icmp ne i32 %11345, 0
  br i1 %11346, label %11347, label %11364

11347:                                            ; preds = %11342
  %11348 = load i32, ptr %284, align 4, !tbaa !5
  %11349 = call ptr @__errno_location() #12
  store i32 %11348, ptr %11349, align 4, !tbaa !5
  %11350 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11351 = load i32, ptr @test_count, align 4, !tbaa !5
  %11352 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11353 = load i32, ptr %11352, align 4, !tbaa !5
  %11354 = call ptr @s2n_strerror(i32 noundef %11353, ptr noundef @.str.4)
  %11355 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11356 = load i32, ptr %11355, align 4, !tbaa !5
  %11357 = call ptr @s2n_strerror_debug(i32 noundef %11356, ptr noundef @.str.4)
  %11358 = call ptr @__errno_location() #12
  %11359 = load i32, ptr %11358, align 4, !tbaa !5
  %11360 = call ptr @strerror(i32 noundef %11359) #11
  %11361 = call ptr @__errno_location() #12
  %11362 = load i32, ptr %11361, align 4, !tbaa !5
  %11363 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11350, ptr noundef @.str.2, i32 noundef %11351, ptr noundef @.str.79, ptr noundef @.str.1, i32 noundef 562, ptr noundef %11354, ptr noundef %11357, ptr noundef %11360, i32 noundef %11362) #11
  br label %11381

11364:                                            ; preds = %11342, %11335
  %11365 = load i32, ptr %284, align 4, !tbaa !5
  %11366 = call ptr @__errno_location() #12
  store i32 %11365, ptr %11366, align 4, !tbaa !5
  %11367 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11368 = load i32, ptr @test_count, align 4, !tbaa !5
  %11369 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11370 = load i32, ptr %11369, align 4, !tbaa !5
  %11371 = call ptr @s2n_strerror(i32 noundef %11370, ptr noundef @.str.4)
  %11372 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11373 = load i32, ptr %11372, align 4, !tbaa !5
  %11374 = call ptr @s2n_strerror_debug(i32 noundef %11373, ptr noundef @.str.4)
  %11375 = call ptr @__errno_location() #12
  %11376 = load i32, ptr %11375, align 4, !tbaa !5
  %11377 = call ptr @strerror(i32 noundef %11376) #11
  %11378 = call ptr @__errno_location() #12
  %11379 = load i32, ptr %11378, align 4, !tbaa !5
  %11380 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11367, ptr noundef @.str.5, i32 noundef %11368, ptr noundef @.str.79, ptr noundef @.str.1, i32 noundef 562, ptr noundef %11371, ptr noundef %11374, ptr noundef %11377, i32 noundef %11379) #11
  br label %11381

11381:                                            ; preds = %11364, %11347
  call void @llvm.lifetime.end.p0(i64 4, ptr %284) #11
  br label %11382

11382:                                            ; preds = %11381
  br label %11383

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

11384:                                            ; No predecessors!
  br label %11385

11385:                                            ; preds = %11384
  br label %11386

11386:                                            ; preds = %11385, %11327
  br label %11387

11387:                                            ; preds = %11386
  br label %11388

11388:                                            ; preds = %11387
  br label %11389

11389:                                            ; preds = %11388
  %11390 = load i32, ptr @test_count, align 4, !tbaa !5
  %11391 = add nsw i32 %11390, 1
  store i32 %11391, ptr @test_count, align 4, !tbaa !5
  %11392 = load i64, ptr @s2n_test_setsockopt_expected, align 8, !tbaa !78
  %11393 = icmp eq i64 %11392, 1
  br i1 %11393, label %11447, label %11394

11394:                                            ; preds = %11389
  br label %11395

11395:                                            ; preds = %11394
  br label %11396

11396:                                            ; preds = %11395
  call void @llvm.lifetime.start.p0(i64 4, ptr %285) #11
  %11397 = call ptr @__errno_location() #12
  %11398 = load i32, ptr %11397, align 4, !tbaa !5
  store i32 %11398, ptr %285, align 4, !tbaa !5
  %11399 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11400 = call i32 @s2n_print_stacktrace(ptr noundef %11399)
  %11401 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11402 = trunc i8 %11401 to i1
  br i1 %11402, label %11403, label %11425

11403:                                            ; preds = %11396
  %11404 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11405 = call i32 @fileno(ptr noundef %11404) #11
  %11406 = call i32 @isatty(i32 noundef %11405) #11
  %11407 = icmp ne i32 %11406, 0
  br i1 %11407, label %11408, label %11425

11408:                                            ; preds = %11403
  %11409 = load i32, ptr %285, align 4, !tbaa !5
  %11410 = call ptr @__errno_location() #12
  store i32 %11409, ptr %11410, align 4, !tbaa !5
  %11411 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11412 = load i32, ptr @test_count, align 4, !tbaa !5
  %11413 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11414 = load i32, ptr %11413, align 4, !tbaa !5
  %11415 = call ptr @s2n_strerror(i32 noundef %11414, ptr noundef @.str.4)
  %11416 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11417 = load i32, ptr %11416, align 4, !tbaa !5
  %11418 = call ptr @s2n_strerror_debug(i32 noundef %11417, ptr noundef @.str.4)
  %11419 = call ptr @__errno_location() #12
  %11420 = load i32, ptr %11419, align 4, !tbaa !5
  %11421 = call ptr @strerror(i32 noundef %11420) #11
  %11422 = call ptr @__errno_location() #12
  %11423 = load i32, ptr %11422, align 4, !tbaa !5
  %11424 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11411, ptr noundef @.str.2, i32 noundef %11412, ptr noundef @.str.91, ptr noundef @.str.1, i32 noundef 563, ptr noundef %11415, ptr noundef %11418, ptr noundef %11421, i32 noundef %11423) #11
  br label %11442

11425:                                            ; preds = %11403, %11396
  %11426 = load i32, ptr %285, align 4, !tbaa !5
  %11427 = call ptr @__errno_location() #12
  store i32 %11426, ptr %11427, align 4, !tbaa !5
  %11428 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11429 = load i32, ptr @test_count, align 4, !tbaa !5
  %11430 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11431 = load i32, ptr %11430, align 4, !tbaa !5
  %11432 = call ptr @s2n_strerror(i32 noundef %11431, ptr noundef @.str.4)
  %11433 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11434 = load i32, ptr %11433, align 4, !tbaa !5
  %11435 = call ptr @s2n_strerror_debug(i32 noundef %11434, ptr noundef @.str.4)
  %11436 = call ptr @__errno_location() #12
  %11437 = load i32, ptr %11436, align 4, !tbaa !5
  %11438 = call ptr @strerror(i32 noundef %11437) #11
  %11439 = call ptr @__errno_location() #12
  %11440 = load i32, ptr %11439, align 4, !tbaa !5
  %11441 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11428, ptr noundef @.str.5, i32 noundef %11429, ptr noundef @.str.91, ptr noundef @.str.1, i32 noundef 563, ptr noundef %11432, ptr noundef %11435, ptr noundef %11438, i32 noundef %11440) #11
  br label %11442

11442:                                            ; preds = %11425, %11408
  call void @llvm.lifetime.end.p0(i64 4, ptr %285) #11
  br label %11443

11443:                                            ; preds = %11442
  br label %11444

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

11445:                                            ; No predecessors!
  br label %11446

11446:                                            ; preds = %11445
  br label %11447

11447:                                            ; preds = %11446, %11389
  br label %11448

11448:                                            ; preds = %11447
  br label %11449

11449:                                            ; preds = %11448
  %11450 = getelementptr inbounds %struct.s2n_test_setsockopt_expected_struct, ptr %286, i32 0, i32 0
  store i64 0, ptr %11450, align 8, !tbaa !78
  %11451 = getelementptr inbounds %struct.s2n_test_setsockopt_expected_struct, ptr %286, i32 0, i32 1
  store i32 66, ptr %11451, align 8, !tbaa !81
  %11452 = getelementptr inbounds %struct.s2n_test_setsockopt_expected_struct, ptr %286, i32 0, i32 2
  store i32 0, ptr %11452, align 4, !tbaa !82
  %11453 = getelementptr inbounds %struct.s2n_test_setsockopt_expected_struct, ptr %286, i32 0, i32 3
  %11454 = getelementptr inbounds %struct.s2n_ktls_crypto_info_inputs, ptr %11453, i32 0, i32 0
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %11454, ptr align 8 %241, i64 24, i1 false), !tbaa.struct !17
  %11455 = getelementptr inbounds %struct.s2n_ktls_crypto_info_inputs, ptr %11453, i32 0, i32 1
  %11456 = getelementptr inbounds %struct.s2n_key_material, ptr %280, i32 0, i32 3
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %11455, ptr align 8 %11456, i64 24, i1 false), !tbaa.struct !17
  %11457 = getelementptr inbounds %struct.s2n_ktls_crypto_info_inputs, ptr %11453, i32 0, i32 2
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %11457, ptr align 8 %249, i64 24, i1 false), !tbaa.struct !17
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 @s2n_test_setsockopt_expected, ptr align 8 %286, i64 88, i1 false), !tbaa.struct !83
  br label %11458

11458:                                            ; preds = %11449
  %11459 = load i32, ptr @test_count, align 4, !tbaa !5
  %11460 = add nsw i32 %11459, 1
  store i32 %11460, ptr @test_count, align 4, !tbaa !5
  %11461 = load ptr, ptr %273, align 8, !tbaa !9
  %11462 = call i32 @s2n_connection_ktls_enable_send(ptr noundef %11461)
  %11463 = icmp eq i32 %11462, -1
  br i1 %11463, label %11464, label %11517

11464:                                            ; preds = %11458
  br label %11465

11465:                                            ; preds = %11464
  br label %11466

11466:                                            ; preds = %11465
  call void @llvm.lifetime.start.p0(i64 4, ptr %287) #11
  %11467 = call ptr @__errno_location() #12
  %11468 = load i32, ptr %11467, align 4, !tbaa !5
  store i32 %11468, ptr %287, align 4, !tbaa !5
  %11469 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11470 = call i32 @s2n_print_stacktrace(ptr noundef %11469)
  %11471 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11472 = trunc i8 %11471 to i1
  br i1 %11472, label %11473, label %11495

11473:                                            ; preds = %11466
  %11474 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11475 = call i32 @fileno(ptr noundef %11474) #11
  %11476 = call i32 @isatty(i32 noundef %11475) #11
  %11477 = icmp ne i32 %11476, 0
  br i1 %11477, label %11478, label %11495

11478:                                            ; preds = %11473
  %11479 = load i32, ptr %287, align 4, !tbaa !5
  %11480 = call ptr @__errno_location() #12
  store i32 %11479, ptr %11480, align 4, !tbaa !5
  %11481 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11482 = load i32, ptr @test_count, align 4, !tbaa !5
  %11483 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11484 = load i32, ptr %11483, align 4, !tbaa !5
  %11485 = call ptr @s2n_strerror(i32 noundef %11484, ptr noundef @.str.4)
  %11486 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11487 = load i32, ptr %11486, align 4, !tbaa !5
  %11488 = call ptr @s2n_strerror_debug(i32 noundef %11487, ptr noundef @.str.4)
  %11489 = call ptr @__errno_location() #12
  %11490 = load i32, ptr %11489, align 4, !tbaa !5
  %11491 = call ptr @strerror(i32 noundef %11490) #11
  %11492 = call ptr @__errno_location() #12
  %11493 = load i32, ptr %11492, align 4, !tbaa !5
  %11494 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11481, ptr noundef @.str.2, i32 noundef %11482, ptr noundef @.str.95, ptr noundef @.str.1, i32 noundef 575, ptr noundef %11485, ptr noundef %11488, ptr noundef %11491, i32 noundef %11493) #11
  br label %11512

11495:                                            ; preds = %11473, %11466
  %11496 = load i32, ptr %287, align 4, !tbaa !5
  %11497 = call ptr @__errno_location() #12
  store i32 %11496, ptr %11497, align 4, !tbaa !5
  %11498 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11499 = load i32, ptr @test_count, align 4, !tbaa !5
  %11500 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11501 = load i32, ptr %11500, align 4, !tbaa !5
  %11502 = call ptr @s2n_strerror(i32 noundef %11501, ptr noundef @.str.4)
  %11503 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11504 = load i32, ptr %11503, align 4, !tbaa !5
  %11505 = call ptr @s2n_strerror_debug(i32 noundef %11504, ptr noundef @.str.4)
  %11506 = call ptr @__errno_location() #12
  %11507 = load i32, ptr %11506, align 4, !tbaa !5
  %11508 = call ptr @strerror(i32 noundef %11507) #11
  %11509 = call ptr @__errno_location() #12
  %11510 = load i32, ptr %11509, align 4, !tbaa !5
  %11511 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11498, ptr noundef @.str.5, i32 noundef %11499, ptr noundef @.str.95, ptr noundef @.str.1, i32 noundef 575, ptr noundef %11502, ptr noundef %11505, ptr noundef %11508, i32 noundef %11510) #11
  br label %11512

11512:                                            ; preds = %11495, %11478
  call void @llvm.lifetime.end.p0(i64 4, ptr %287) #11
  br label %11513

11513:                                            ; preds = %11512
  br label %11514

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

11515:                                            ; No predecessors!
  br label %11516

11516:                                            ; preds = %11515
  br label %11517

11517:                                            ; preds = %11516, %11458
  br label %11518

11518:                                            ; preds = %11517
  br label %11519

11519:                                            ; preds = %11518
  br label %11520

11520:                                            ; preds = %11519
  %11521 = load i32, ptr @test_count, align 4, !tbaa !5
  %11522 = add nsw i32 %11521, 1
  store i32 %11522, ptr @test_count, align 4, !tbaa !5
  %11523 = load i64, ptr @s2n_test_setsockopt_expected, align 8, !tbaa !78
  %11524 = icmp eq i64 %11523, 1
  br i1 %11524, label %11578, label %11525

11525:                                            ; preds = %11520
  br label %11526

11526:                                            ; preds = %11525
  br label %11527

11527:                                            ; preds = %11526
  call void @llvm.lifetime.start.p0(i64 4, ptr %288) #11
  %11528 = call ptr @__errno_location() #12
  %11529 = load i32, ptr %11528, align 4, !tbaa !5
  store i32 %11529, ptr %288, align 4, !tbaa !5
  %11530 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11531 = call i32 @s2n_print_stacktrace(ptr noundef %11530)
  %11532 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11533 = trunc i8 %11532 to i1
  br i1 %11533, label %11534, label %11556

11534:                                            ; preds = %11527
  %11535 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11536 = call i32 @fileno(ptr noundef %11535) #11
  %11537 = call i32 @isatty(i32 noundef %11536) #11
  %11538 = icmp ne i32 %11537, 0
  br i1 %11538, label %11539, label %11556

11539:                                            ; preds = %11534
  %11540 = load i32, ptr %288, align 4, !tbaa !5
  %11541 = call ptr @__errno_location() #12
  store i32 %11540, ptr %11541, align 4, !tbaa !5
  %11542 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11543 = load i32, ptr @test_count, align 4, !tbaa !5
  %11544 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11545 = load i32, ptr %11544, align 4, !tbaa !5
  %11546 = call ptr @s2n_strerror(i32 noundef %11545, ptr noundef @.str.4)
  %11547 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11548 = load i32, ptr %11547, align 4, !tbaa !5
  %11549 = call ptr @s2n_strerror_debug(i32 noundef %11548, ptr noundef @.str.4)
  %11550 = call ptr @__errno_location() #12
  %11551 = load i32, ptr %11550, align 4, !tbaa !5
  %11552 = call ptr @strerror(i32 noundef %11551) #11
  %11553 = call ptr @__errno_location() #12
  %11554 = load i32, ptr %11553, align 4, !tbaa !5
  %11555 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11542, ptr noundef @.str.2, i32 noundef %11543, ptr noundef @.str.91, ptr noundef @.str.1, i32 noundef 576, ptr noundef %11546, ptr noundef %11549, ptr noundef %11552, i32 noundef %11554) #11
  br label %11573

11556:                                            ; preds = %11534, %11527
  %11557 = load i32, ptr %288, align 4, !tbaa !5
  %11558 = call ptr @__errno_location() #12
  store i32 %11557, ptr %11558, align 4, !tbaa !5
  %11559 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11560 = load i32, ptr @test_count, align 4, !tbaa !5
  %11561 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11562 = load i32, ptr %11561, align 4, !tbaa !5
  %11563 = call ptr @s2n_strerror(i32 noundef %11562, ptr noundef @.str.4)
  %11564 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11565 = load i32, ptr %11564, align 4, !tbaa !5
  %11566 = call ptr @s2n_strerror_debug(i32 noundef %11565, ptr noundef @.str.4)
  %11567 = call ptr @__errno_location() #12
  %11568 = load i32, ptr %11567, align 4, !tbaa !5
  %11569 = call ptr @strerror(i32 noundef %11568) #11
  %11570 = call ptr @__errno_location() #12
  %11571 = load i32, ptr %11570, align 4, !tbaa !5
  %11572 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11559, ptr noundef @.str.5, i32 noundef %11560, ptr noundef @.str.91, ptr noundef @.str.1, i32 noundef 576, ptr noundef %11563, ptr noundef %11566, ptr noundef %11569, i32 noundef %11571) #11
  br label %11573

11573:                                            ; preds = %11556, %11539
  call void @llvm.lifetime.end.p0(i64 4, ptr %288) #11
  br label %11574

11574:                                            ; preds = %11573
  br label %11575

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

11576:                                            ; No predecessors!
  br label %11577

11577:                                            ; preds = %11576
  br label %11578

11578:                                            ; preds = %11577, %11520
  br label %11579

11579:                                            ; preds = %11578
  br label %11580

11580:                                            ; preds = %11579
  %11581 = load ptr, ptr %273, align 8, !tbaa !9
  %11582 = getelementptr inbounds %struct.s2n_connection, ptr %11581, i32 0, i32 27
  store ptr null, ptr %11582, align 8, !tbaa !53
  call void @llvm.lifetime.end.p0(i64 304, ptr %280) #11
  %11583 = call i32 @s2n_connection_ptr_free(ptr noundef %273)
  %11584 = getelementptr inbounds %struct.s2n_result, ptr %289, i32 0, i32 0
  store i32 %11583, ptr %11584, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %273) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %249) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %248) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %241) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %240) #11
  call void @llvm.lifetime.end.p0(i64 936, ptr %239) #11
  call void @llvm.lifetime.end.p0(i64 104, ptr %238) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %237) #11
  call void @llvm.lifetime.end.p0(i64 104, ptr %236) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %290) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %291) #11
  %11585 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %11585, ptr %291, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %292) #11
  %11586 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %11586, ptr %292, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %293) #11
  %11587 = call ptr @s2n_config_new()
  store ptr %11587, ptr %293, align 8, !tbaa !9
  br label %11588

11588:                                            ; preds = %11580
  %11589 = load i32, ptr @test_count, align 4, !tbaa !5
  %11590 = add nsw i32 %11589, 1
  store i32 %11590, ptr @test_count, align 4, !tbaa !5
  %11591 = call i32 @s2n_test_cert_chain_and_key_new(ptr noundef %290, ptr noundef @.str.96, ptr noundef @.str.97)
  %11592 = icmp eq i32 %11591, -1
  br i1 %11592, label %11593, label %11646

11593:                                            ; preds = %11588
  br label %11594

11594:                                            ; preds = %11593
  br label %11595

11595:                                            ; preds = %11594
  call void @llvm.lifetime.start.p0(i64 4, ptr %294) #11
  %11596 = call ptr @__errno_location() #12
  %11597 = load i32, ptr %11596, align 4, !tbaa !5
  store i32 %11597, ptr %294, align 4, !tbaa !5
  %11598 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11599 = call i32 @s2n_print_stacktrace(ptr noundef %11598)
  %11600 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11601 = trunc i8 %11600 to i1
  br i1 %11601, label %11602, label %11624

11602:                                            ; preds = %11595
  %11603 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11604 = call i32 @fileno(ptr noundef %11603) #11
  %11605 = call i32 @isatty(i32 noundef %11604) #11
  %11606 = icmp ne i32 %11605, 0
  br i1 %11606, label %11607, label %11624

11607:                                            ; preds = %11602
  %11608 = load i32, ptr %294, align 4, !tbaa !5
  %11609 = call ptr @__errno_location() #12
  store i32 %11608, ptr %11609, align 4, !tbaa !5
  %11610 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11611 = load i32, ptr @test_count, align 4, !tbaa !5
  %11612 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11613 = load i32, ptr %11612, align 4, !tbaa !5
  %11614 = call ptr @s2n_strerror(i32 noundef %11613, ptr noundef @.str.4)
  %11615 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11616 = load i32, ptr %11615, align 4, !tbaa !5
  %11617 = call ptr @s2n_strerror_debug(i32 noundef %11616, ptr noundef @.str.4)
  %11618 = call ptr @__errno_location() #12
  %11619 = load i32, ptr %11618, align 4, !tbaa !5
  %11620 = call ptr @strerror(i32 noundef %11619) #11
  %11621 = call ptr @__errno_location() #12
  %11622 = load i32, ptr %11621, align 4, !tbaa !5
  %11623 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11610, ptr noundef @.str.2, i32 noundef %11611, ptr noundef @.str.98, ptr noundef @.str.1, i32 noundef 595, ptr noundef %11614, ptr noundef %11617, ptr noundef %11620, i32 noundef %11622) #11
  br label %11641

11624:                                            ; preds = %11602, %11595
  %11625 = load i32, ptr %294, align 4, !tbaa !5
  %11626 = call ptr @__errno_location() #12
  store i32 %11625, ptr %11626, align 4, !tbaa !5
  %11627 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11628 = load i32, ptr @test_count, align 4, !tbaa !5
  %11629 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11630 = load i32, ptr %11629, align 4, !tbaa !5
  %11631 = call ptr @s2n_strerror(i32 noundef %11630, ptr noundef @.str.4)
  %11632 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11633 = load i32, ptr %11632, align 4, !tbaa !5
  %11634 = call ptr @s2n_strerror_debug(i32 noundef %11633, ptr noundef @.str.4)
  %11635 = call ptr @__errno_location() #12
  %11636 = load i32, ptr %11635, align 4, !tbaa !5
  %11637 = call ptr @strerror(i32 noundef %11636) #11
  %11638 = call ptr @__errno_location() #12
  %11639 = load i32, ptr %11638, align 4, !tbaa !5
  %11640 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11627, ptr noundef @.str.5, i32 noundef %11628, ptr noundef @.str.98, ptr noundef @.str.1, i32 noundef 595, ptr noundef %11631, ptr noundef %11634, ptr noundef %11637, i32 noundef %11639) #11
  br label %11641

11641:                                            ; preds = %11624, %11607
  call void @llvm.lifetime.end.p0(i64 4, ptr %294) #11
  br label %11642

11642:                                            ; preds = %11641
  br label %11643

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

11644:                                            ; No predecessors!
  br label %11645

11645:                                            ; preds = %11644
  br label %11646

11646:                                            ; preds = %11645, %11588
  br label %11647

11647:                                            ; preds = %11646
  br label %11648

11648:                                            ; preds = %11647
  br label %11649

11649:                                            ; preds = %11648
  %11650 = load i32, ptr @test_count, align 4, !tbaa !5
  %11651 = add nsw i32 %11650, 1
  store i32 %11651, ptr @test_count, align 4, !tbaa !5
  %11652 = load ptr, ptr %293, align 8, !tbaa !9
  %11653 = load ptr, ptr %290, align 8, !tbaa !9
  %11654 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %11652, ptr noundef %11653)
  %11655 = icmp eq i32 %11654, -1
  br i1 %11655, label %11656, label %11709

11656:                                            ; preds = %11649
  br label %11657

11657:                                            ; preds = %11656
  br label %11658

11658:                                            ; preds = %11657
  call void @llvm.lifetime.start.p0(i64 4, ptr %295) #11
  %11659 = call ptr @__errno_location() #12
  %11660 = load i32, ptr %11659, align 4, !tbaa !5
  store i32 %11660, ptr %295, align 4, !tbaa !5
  %11661 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11662 = call i32 @s2n_print_stacktrace(ptr noundef %11661)
  %11663 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11664 = trunc i8 %11663 to i1
  br i1 %11664, label %11665, label %11687

11665:                                            ; preds = %11658
  %11666 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11667 = call i32 @fileno(ptr noundef %11666) #11
  %11668 = call i32 @isatty(i32 noundef %11667) #11
  %11669 = icmp ne i32 %11668, 0
  br i1 %11669, label %11670, label %11687

11670:                                            ; preds = %11665
  %11671 = load i32, ptr %295, align 4, !tbaa !5
  %11672 = call ptr @__errno_location() #12
  store i32 %11671, ptr %11672, align 4, !tbaa !5
  %11673 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11674 = load i32, ptr @test_count, align 4, !tbaa !5
  %11675 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11676 = load i32, ptr %11675, align 4, !tbaa !5
  %11677 = call ptr @s2n_strerror(i32 noundef %11676, ptr noundef @.str.4)
  %11678 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11679 = load i32, ptr %11678, align 4, !tbaa !5
  %11680 = call ptr @s2n_strerror_debug(i32 noundef %11679, ptr noundef @.str.4)
  %11681 = call ptr @__errno_location() #12
  %11682 = load i32, ptr %11681, align 4, !tbaa !5
  %11683 = call ptr @strerror(i32 noundef %11682) #11
  %11684 = call ptr @__errno_location() #12
  %11685 = load i32, ptr %11684, align 4, !tbaa !5
  %11686 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11673, ptr noundef @.str.2, i32 noundef %11674, ptr noundef @.str.99, ptr noundef @.str.1, i32 noundef 596, ptr noundef %11677, ptr noundef %11680, ptr noundef %11683, i32 noundef %11685) #11
  br label %11704

11687:                                            ; preds = %11665, %11658
  %11688 = load i32, ptr %295, align 4, !tbaa !5
  %11689 = call ptr @__errno_location() #12
  store i32 %11688, ptr %11689, align 4, !tbaa !5
  %11690 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11691 = load i32, ptr @test_count, align 4, !tbaa !5
  %11692 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11693 = load i32, ptr %11692, align 4, !tbaa !5
  %11694 = call ptr @s2n_strerror(i32 noundef %11693, ptr noundef @.str.4)
  %11695 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11696 = load i32, ptr %11695, align 4, !tbaa !5
  %11697 = call ptr @s2n_strerror_debug(i32 noundef %11696, ptr noundef @.str.4)
  %11698 = call ptr @__errno_location() #12
  %11699 = load i32, ptr %11698, align 4, !tbaa !5
  %11700 = call ptr @strerror(i32 noundef %11699) #11
  %11701 = call ptr @__errno_location() #12
  %11702 = load i32, ptr %11701, align 4, !tbaa !5
  %11703 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11690, ptr noundef @.str.5, i32 noundef %11691, ptr noundef @.str.99, ptr noundef @.str.1, i32 noundef 596, ptr noundef %11694, ptr noundef %11697, ptr noundef %11700, i32 noundef %11702) #11
  br label %11704

11704:                                            ; preds = %11687, %11670
  call void @llvm.lifetime.end.p0(i64 4, ptr %295) #11
  br label %11705

11705:                                            ; preds = %11704
  br label %11706

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

11707:                                            ; No predecessors!
  br label %11708

11708:                                            ; preds = %11707
  br label %11709

11709:                                            ; preds = %11708, %11649
  br label %11710

11710:                                            ; preds = %11709
  br label %11711

11711:                                            ; preds = %11710
  br label %11712

11712:                                            ; preds = %11711
  %11713 = load i32, ptr @test_count, align 4, !tbaa !5
  %11714 = add nsw i32 %11713, 1
  store i32 %11714, ptr @test_count, align 4, !tbaa !5
  %11715 = load ptr, ptr %293, align 8, !tbaa !9
  %11716 = call i32 @s2n_config_disable_x509_verification(ptr noundef %11715)
  %11717 = icmp eq i32 %11716, -1
  br i1 %11717, label %11718, label %11771

11718:                                            ; preds = %11712
  br label %11719

11719:                                            ; preds = %11718
  br label %11720

11720:                                            ; preds = %11719
  call void @llvm.lifetime.start.p0(i64 4, ptr %296) #11
  %11721 = call ptr @__errno_location() #12
  %11722 = load i32, ptr %11721, align 4, !tbaa !5
  store i32 %11722, ptr %296, align 4, !tbaa !5
  %11723 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11724 = call i32 @s2n_print_stacktrace(ptr noundef %11723)
  %11725 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11726 = trunc i8 %11725 to i1
  br i1 %11726, label %11727, label %11749

11727:                                            ; preds = %11720
  %11728 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11729 = call i32 @fileno(ptr noundef %11728) #11
  %11730 = call i32 @isatty(i32 noundef %11729) #11
  %11731 = icmp ne i32 %11730, 0
  br i1 %11731, label %11732, label %11749

11732:                                            ; preds = %11727
  %11733 = load i32, ptr %296, align 4, !tbaa !5
  %11734 = call ptr @__errno_location() #12
  store i32 %11733, ptr %11734, align 4, !tbaa !5
  %11735 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11736 = load i32, ptr @test_count, align 4, !tbaa !5
  %11737 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11738 = load i32, ptr %11737, align 4, !tbaa !5
  %11739 = call ptr @s2n_strerror(i32 noundef %11738, ptr noundef @.str.4)
  %11740 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11741 = load i32, ptr %11740, align 4, !tbaa !5
  %11742 = call ptr @s2n_strerror_debug(i32 noundef %11741, ptr noundef @.str.4)
  %11743 = call ptr @__errno_location() #12
  %11744 = load i32, ptr %11743, align 4, !tbaa !5
  %11745 = call ptr @strerror(i32 noundef %11744) #11
  %11746 = call ptr @__errno_location() #12
  %11747 = load i32, ptr %11746, align 4, !tbaa !5
  %11748 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11735, ptr noundef @.str.2, i32 noundef %11736, ptr noundef @.str.100, ptr noundef @.str.1, i32 noundef 597, ptr noundef %11739, ptr noundef %11742, ptr noundef %11745, i32 noundef %11747) #11
  br label %11766

11749:                                            ; preds = %11727, %11720
  %11750 = load i32, ptr %296, align 4, !tbaa !5
  %11751 = call ptr @__errno_location() #12
  store i32 %11750, ptr %11751, align 4, !tbaa !5
  %11752 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11753 = load i32, ptr @test_count, align 4, !tbaa !5
  %11754 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11755 = load i32, ptr %11754, align 4, !tbaa !5
  %11756 = call ptr @s2n_strerror(i32 noundef %11755, ptr noundef @.str.4)
  %11757 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11758 = load i32, ptr %11757, align 4, !tbaa !5
  %11759 = call ptr @s2n_strerror_debug(i32 noundef %11758, ptr noundef @.str.4)
  %11760 = call ptr @__errno_location() #12
  %11761 = load i32, ptr %11760, align 4, !tbaa !5
  %11762 = call ptr @strerror(i32 noundef %11761) #11
  %11763 = call ptr @__errno_location() #12
  %11764 = load i32, ptr %11763, align 4, !tbaa !5
  %11765 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11752, ptr noundef @.str.5, i32 noundef %11753, ptr noundef @.str.100, ptr noundef @.str.1, i32 noundef 597, ptr noundef %11756, ptr noundef %11759, ptr noundef %11762, i32 noundef %11764) #11
  br label %11766

11766:                                            ; preds = %11749, %11732
  call void @llvm.lifetime.end.p0(i64 4, ptr %296) #11
  br label %11767

11767:                                            ; preds = %11766
  br label %11768

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

11769:                                            ; No predecessors!
  br label %11770

11770:                                            ; preds = %11769
  br label %11771

11771:                                            ; preds = %11770, %11712
  br label %11772

11772:                                            ; preds = %11771
  br label %11773

11773:                                            ; preds = %11772
  br label %11774

11774:                                            ; preds = %11773
  %11775 = load i32, ptr @test_count, align 4, !tbaa !5
  %11776 = add nsw i32 %11775, 1
  store i32 %11776, ptr @test_count, align 4, !tbaa !5
  %11777 = load ptr, ptr %293, align 8, !tbaa !9
  %11778 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %11777, ptr noundef @.str.101)
  %11779 = icmp eq i32 %11778, -1
  br i1 %11779, label %11780, label %11833

11780:                                            ; preds = %11774
  br label %11781

11781:                                            ; preds = %11780
  br label %11782

11782:                                            ; preds = %11781
  call void @llvm.lifetime.start.p0(i64 4, ptr %297) #11
  %11783 = call ptr @__errno_location() #12
  %11784 = load i32, ptr %11783, align 4, !tbaa !5
  store i32 %11784, ptr %297, align 4, !tbaa !5
  %11785 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11786 = call i32 @s2n_print_stacktrace(ptr noundef %11785)
  %11787 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11788 = trunc i8 %11787 to i1
  br i1 %11788, label %11789, label %11811

11789:                                            ; preds = %11782
  %11790 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11791 = call i32 @fileno(ptr noundef %11790) #11
  %11792 = call i32 @isatty(i32 noundef %11791) #11
  %11793 = icmp ne i32 %11792, 0
  br i1 %11793, label %11794, label %11811

11794:                                            ; preds = %11789
  %11795 = load i32, ptr %297, align 4, !tbaa !5
  %11796 = call ptr @__errno_location() #12
  store i32 %11795, ptr %11796, align 4, !tbaa !5
  %11797 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11798 = load i32, ptr @test_count, align 4, !tbaa !5
  %11799 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11800 = load i32, ptr %11799, align 4, !tbaa !5
  %11801 = call ptr @s2n_strerror(i32 noundef %11800, ptr noundef @.str.4)
  %11802 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11803 = load i32, ptr %11802, align 4, !tbaa !5
  %11804 = call ptr @s2n_strerror_debug(i32 noundef %11803, ptr noundef @.str.4)
  %11805 = call ptr @__errno_location() #12
  %11806 = load i32, ptr %11805, align 4, !tbaa !5
  %11807 = call ptr @strerror(i32 noundef %11806) #11
  %11808 = call ptr @__errno_location() #12
  %11809 = load i32, ptr %11808, align 4, !tbaa !5
  %11810 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11797, ptr noundef @.str.2, i32 noundef %11798, ptr noundef @.str.102, ptr noundef @.str.1, i32 noundef 598, ptr noundef %11801, ptr noundef %11804, ptr noundef %11807, i32 noundef %11809) #11
  br label %11828

11811:                                            ; preds = %11789, %11782
  %11812 = load i32, ptr %297, align 4, !tbaa !5
  %11813 = call ptr @__errno_location() #12
  store i32 %11812, ptr %11813, align 4, !tbaa !5
  %11814 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11815 = load i32, ptr @test_count, align 4, !tbaa !5
  %11816 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11817 = load i32, ptr %11816, align 4, !tbaa !5
  %11818 = call ptr @s2n_strerror(i32 noundef %11817, ptr noundef @.str.4)
  %11819 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11820 = load i32, ptr %11819, align 4, !tbaa !5
  %11821 = call ptr @s2n_strerror_debug(i32 noundef %11820, ptr noundef @.str.4)
  %11822 = call ptr @__errno_location() #12
  %11823 = load i32, ptr %11822, align 4, !tbaa !5
  %11824 = call ptr @strerror(i32 noundef %11823) #11
  %11825 = call ptr @__errno_location() #12
  %11826 = load i32, ptr %11825, align 4, !tbaa !5
  %11827 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11814, ptr noundef @.str.5, i32 noundef %11815, ptr noundef @.str.102, ptr noundef @.str.1, i32 noundef 598, ptr noundef %11818, ptr noundef %11821, ptr noundef %11824, i32 noundef %11826) #11
  br label %11828

11828:                                            ; preds = %11811, %11794
  call void @llvm.lifetime.end.p0(i64 4, ptr %297) #11
  br label %11829

11829:                                            ; preds = %11828
  br label %11830

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

11831:                                            ; No predecessors!
  br label %11832

11832:                                            ; preds = %11831
  br label %11833

11833:                                            ; preds = %11832, %11774
  br label %11834

11834:                                            ; preds = %11833
  br label %11835

11835:                                            ; preds = %11834
  br label %11836

11836:                                            ; preds = %11835
  %11837 = load i32, ptr @test_count, align 4, !tbaa !5
  %11838 = add nsw i32 %11837, 1
  store i32 %11838, ptr @test_count, align 4, !tbaa !5
  %11839 = call i32 @s2n_ktls_set_setsockopt_cb(ptr noundef @s2n_test_setsockopt_noop)
  %11840 = getelementptr inbounds %struct.s2n_result, ptr %298, i32 0, i32 0
  store i32 %11839, ptr %11840, align 4
  %11841 = getelementptr inbounds %struct.s2n_result, ptr %298, i32 0, i32 0
  %11842 = load i32, ptr %11841, align 4
  %11843 = call zeroext i1 @s2n_result_is_ok(i32 %11842)
  br i1 %11843, label %11897, label %11844

11844:                                            ; preds = %11836
  br label %11845

11845:                                            ; preds = %11844
  br label %11846

11846:                                            ; preds = %11845
  call void @llvm.lifetime.start.p0(i64 4, ptr %299) #11
  %11847 = call ptr @__errno_location() #12
  %11848 = load i32, ptr %11847, align 4, !tbaa !5
  store i32 %11848, ptr %299, align 4, !tbaa !5
  %11849 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11850 = call i32 @s2n_print_stacktrace(ptr noundef %11849)
  %11851 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11852 = trunc i8 %11851 to i1
  br i1 %11852, label %11853, label %11875

11853:                                            ; preds = %11846
  %11854 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11855 = call i32 @fileno(ptr noundef %11854) #11
  %11856 = call i32 @isatty(i32 noundef %11855) #11
  %11857 = icmp ne i32 %11856, 0
  br i1 %11857, label %11858, label %11875

11858:                                            ; preds = %11853
  %11859 = load i32, ptr %299, align 4, !tbaa !5
  %11860 = call ptr @__errno_location() #12
  store i32 %11859, ptr %11860, align 4, !tbaa !5
  %11861 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11862 = load i32, ptr @test_count, align 4, !tbaa !5
  %11863 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11864 = load i32, ptr %11863, align 4, !tbaa !5
  %11865 = call ptr @s2n_strerror(i32 noundef %11864, ptr noundef @.str.4)
  %11866 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11867 = load i32, ptr %11866, align 4, !tbaa !5
  %11868 = call ptr @s2n_strerror_debug(i32 noundef %11867, ptr noundef @.str.4)
  %11869 = call ptr @__errno_location() #12
  %11870 = load i32, ptr %11869, align 4, !tbaa !5
  %11871 = call ptr @strerror(i32 noundef %11870) #11
  %11872 = call ptr @__errno_location() #12
  %11873 = load i32, ptr %11872, align 4, !tbaa !5
  %11874 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11861, ptr noundef @.str.2, i32 noundef %11862, ptr noundef @.str.103, ptr noundef @.str.1, i32 noundef 599, ptr noundef %11865, ptr noundef %11868, ptr noundef %11871, i32 noundef %11873) #11
  br label %11892

11875:                                            ; preds = %11853, %11846
  %11876 = load i32, ptr %299, align 4, !tbaa !5
  %11877 = call ptr @__errno_location() #12
  store i32 %11876, ptr %11877, align 4, !tbaa !5
  %11878 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11879 = load i32, ptr @test_count, align 4, !tbaa !5
  %11880 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11881 = load i32, ptr %11880, align 4, !tbaa !5
  %11882 = call ptr @s2n_strerror(i32 noundef %11881, ptr noundef @.str.4)
  %11883 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11884 = load i32, ptr %11883, align 4, !tbaa !5
  %11885 = call ptr @s2n_strerror_debug(i32 noundef %11884, ptr noundef @.str.4)
  %11886 = call ptr @__errno_location() #12
  %11887 = load i32, ptr %11886, align 4, !tbaa !5
  %11888 = call ptr @strerror(i32 noundef %11887) #11
  %11889 = call ptr @__errno_location() #12
  %11890 = load i32, ptr %11889, align 4, !tbaa !5
  %11891 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11878, ptr noundef @.str.5, i32 noundef %11879, ptr noundef @.str.103, ptr noundef @.str.1, i32 noundef 599, ptr noundef %11882, ptr noundef %11885, ptr noundef %11888, i32 noundef %11890) #11
  br label %11892

11892:                                            ; preds = %11875, %11858
  call void @llvm.lifetime.end.p0(i64 4, ptr %299) #11
  br label %11893

11893:                                            ; preds = %11892
  br label %11894

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

11895:                                            ; No predecessors!
  br label %11896

11896:                                            ; preds = %11895
  br label %11897

11897:                                            ; preds = %11896, %11836
  br label %11898

11898:                                            ; preds = %11897
  br label %11899

11899:                                            ; preds = %11898
  br label %11900

11900:                                            ; preds = %11899
  %11901 = load i32, ptr @test_count, align 4, !tbaa !5
  %11902 = add nsw i32 %11901, 1
  store i32 %11902, ptr @test_count, align 4, !tbaa !5
  %11903 = load ptr, ptr %292, align 8, !tbaa !9
  %11904 = load ptr, ptr %293, align 8, !tbaa !9
  %11905 = call i32 @s2n_connection_set_config(ptr noundef %11903, ptr noundef %11904)
  %11906 = icmp eq i32 %11905, -1
  br i1 %11906, label %11907, label %11960

11907:                                            ; preds = %11900
  br label %11908

11908:                                            ; preds = %11907
  br label %11909

11909:                                            ; preds = %11908
  call void @llvm.lifetime.start.p0(i64 4, ptr %300) #11
  %11910 = call ptr @__errno_location() #12
  %11911 = load i32, ptr %11910, align 4, !tbaa !5
  store i32 %11911, ptr %300, align 4, !tbaa !5
  %11912 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11913 = call i32 @s2n_print_stacktrace(ptr noundef %11912)
  %11914 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11915 = trunc i8 %11914 to i1
  br i1 %11915, label %11916, label %11938

11916:                                            ; preds = %11909
  %11917 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11918 = call i32 @fileno(ptr noundef %11917) #11
  %11919 = call i32 @isatty(i32 noundef %11918) #11
  %11920 = icmp ne i32 %11919, 0
  br i1 %11920, label %11921, label %11938

11921:                                            ; preds = %11916
  %11922 = load i32, ptr %300, align 4, !tbaa !5
  %11923 = call ptr @__errno_location() #12
  store i32 %11922, ptr %11923, align 4, !tbaa !5
  %11924 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11925 = load i32, ptr @test_count, align 4, !tbaa !5
  %11926 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11927 = load i32, ptr %11926, align 4, !tbaa !5
  %11928 = call ptr @s2n_strerror(i32 noundef %11927, ptr noundef @.str.4)
  %11929 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11930 = load i32, ptr %11929, align 4, !tbaa !5
  %11931 = call ptr @s2n_strerror_debug(i32 noundef %11930, ptr noundef @.str.4)
  %11932 = call ptr @__errno_location() #12
  %11933 = load i32, ptr %11932, align 4, !tbaa !5
  %11934 = call ptr @strerror(i32 noundef %11933) #11
  %11935 = call ptr @__errno_location() #12
  %11936 = load i32, ptr %11935, align 4, !tbaa !5
  %11937 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11924, ptr noundef @.str.2, i32 noundef %11925, ptr noundef @.str.104, ptr noundef @.str.1, i32 noundef 600, ptr noundef %11928, ptr noundef %11931, ptr noundef %11934, i32 noundef %11936) #11
  br label %11955

11938:                                            ; preds = %11916, %11909
  %11939 = load i32, ptr %300, align 4, !tbaa !5
  %11940 = call ptr @__errno_location() #12
  store i32 %11939, ptr %11940, align 4, !tbaa !5
  %11941 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11942 = load i32, ptr @test_count, align 4, !tbaa !5
  %11943 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11944 = load i32, ptr %11943, align 4, !tbaa !5
  %11945 = call ptr @s2n_strerror(i32 noundef %11944, ptr noundef @.str.4)
  %11946 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11947 = load i32, ptr %11946, align 4, !tbaa !5
  %11948 = call ptr @s2n_strerror_debug(i32 noundef %11947, ptr noundef @.str.4)
  %11949 = call ptr @__errno_location() #12
  %11950 = load i32, ptr %11949, align 4, !tbaa !5
  %11951 = call ptr @strerror(i32 noundef %11950) #11
  %11952 = call ptr @__errno_location() #12
  %11953 = load i32, ptr %11952, align 4, !tbaa !5
  %11954 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11941, ptr noundef @.str.5, i32 noundef %11942, ptr noundef @.str.104, ptr noundef @.str.1, i32 noundef 600, ptr noundef %11945, ptr noundef %11948, ptr noundef %11951, i32 noundef %11953) #11
  br label %11955

11955:                                            ; preds = %11938, %11921
  call void @llvm.lifetime.end.p0(i64 4, ptr %300) #11
  br label %11956

11956:                                            ; preds = %11955
  br label %11957

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

11958:                                            ; No predecessors!
  br label %11959

11959:                                            ; preds = %11958
  br label %11960

11960:                                            ; preds = %11959, %11900
  br label %11961

11961:                                            ; preds = %11960
  br label %11962

11962:                                            ; preds = %11961
  br label %11963

11963:                                            ; preds = %11962
  %11964 = load i32, ptr @test_count, align 4, !tbaa !5
  %11965 = add nsw i32 %11964, 1
  store i32 %11965, ptr @test_count, align 4, !tbaa !5
  %11966 = load ptr, ptr %291, align 8, !tbaa !9
  %11967 = load ptr, ptr %293, align 8, !tbaa !9
  %11968 = call i32 @s2n_connection_set_config(ptr noundef %11966, ptr noundef %11967)
  %11969 = icmp eq i32 %11968, -1
  br i1 %11969, label %11970, label %12023

11970:                                            ; preds = %11963
  br label %11971

11971:                                            ; preds = %11970
  br label %11972

11972:                                            ; preds = %11971
  call void @llvm.lifetime.start.p0(i64 4, ptr %301) #11
  %11973 = call ptr @__errno_location() #12
  %11974 = load i32, ptr %11973, align 4, !tbaa !5
  store i32 %11974, ptr %301, align 4, !tbaa !5
  %11975 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11976 = call i32 @s2n_print_stacktrace(ptr noundef %11975)
  %11977 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11978 = trunc i8 %11977 to i1
  br i1 %11978, label %11979, label %12001

11979:                                            ; preds = %11972
  %11980 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11981 = call i32 @fileno(ptr noundef %11980) #11
  %11982 = call i32 @isatty(i32 noundef %11981) #11
  %11983 = icmp ne i32 %11982, 0
  br i1 %11983, label %11984, label %12001

11984:                                            ; preds = %11979
  %11985 = load i32, ptr %301, align 4, !tbaa !5
  %11986 = call ptr @__errno_location() #12
  store i32 %11985, ptr %11986, align 4, !tbaa !5
  %11987 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11988 = load i32, ptr @test_count, align 4, !tbaa !5
  %11989 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11990 = load i32, ptr %11989, align 4, !tbaa !5
  %11991 = call ptr @s2n_strerror(i32 noundef %11990, ptr noundef @.str.4)
  %11992 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11993 = load i32, ptr %11992, align 4, !tbaa !5
  %11994 = call ptr @s2n_strerror_debug(i32 noundef %11993, ptr noundef @.str.4)
  %11995 = call ptr @__errno_location() #12
  %11996 = load i32, ptr %11995, align 4, !tbaa !5
  %11997 = call ptr @strerror(i32 noundef %11996) #11
  %11998 = call ptr @__errno_location() #12
  %11999 = load i32, ptr %11998, align 4, !tbaa !5
  %12000 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11987, ptr noundef @.str.2, i32 noundef %11988, ptr noundef @.str.105, ptr noundef @.str.1, i32 noundef 601, ptr noundef %11991, ptr noundef %11994, ptr noundef %11997, i32 noundef %11999) #11
  br label %12018

12001:                                            ; preds = %11979, %11972
  %12002 = load i32, ptr %301, align 4, !tbaa !5
  %12003 = call ptr @__errno_location() #12
  store i32 %12002, ptr %12003, align 4, !tbaa !5
  %12004 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12005 = load i32, ptr @test_count, align 4, !tbaa !5
  %12006 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12007 = load i32, ptr %12006, align 4, !tbaa !5
  %12008 = call ptr @s2n_strerror(i32 noundef %12007, ptr noundef @.str.4)
  %12009 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12010 = load i32, ptr %12009, align 4, !tbaa !5
  %12011 = call ptr @s2n_strerror_debug(i32 noundef %12010, ptr noundef @.str.4)
  %12012 = call ptr @__errno_location() #12
  %12013 = load i32, ptr %12012, align 4, !tbaa !5
  %12014 = call ptr @strerror(i32 noundef %12013) #11
  %12015 = call ptr @__errno_location() #12
  %12016 = load i32, ptr %12015, align 4, !tbaa !5
  %12017 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12004, ptr noundef @.str.5, i32 noundef %12005, ptr noundef @.str.105, ptr noundef @.str.1, i32 noundef 601, ptr noundef %12008, ptr noundef %12011, ptr noundef %12014, i32 noundef %12016) #11
  br label %12018

12018:                                            ; preds = %12001, %11984
  call void @llvm.lifetime.end.p0(i64 4, ptr %301) #11
  br label %12019

12019:                                            ; preds = %12018
  br label %12020

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

12021:                                            ; No predecessors!
  br label %12022

12022:                                            ; preds = %12021
  br label %12023

12023:                                            ; preds = %12022, %11963
  br label %12024

12024:                                            ; preds = %12023
  br label %12025

12025:                                            ; preds = %12024
  call void @llvm.lifetime.start.p0(i64 8, ptr %302) #11
  call void @llvm.memset.p0.i64(ptr align 4 %302, i8 0, i64 8, i1 false)
  br label %12026

12026:                                            ; preds = %12025
  %12027 = load i32, ptr @test_count, align 4, !tbaa !5
  %12028 = add nsw i32 %12027, 1
  store i32 %12028, ptr @test_count, align 4, !tbaa !5
  %12029 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef %302)
  %12030 = icmp eq i32 %12029, -1
  br i1 %12030, label %12031, label %12084

12031:                                            ; preds = %12026
  br label %12032

12032:                                            ; preds = %12031
  br label %12033

12033:                                            ; preds = %12032
  call void @llvm.lifetime.start.p0(i64 4, ptr %303) #11
  %12034 = call ptr @__errno_location() #12
  %12035 = load i32, ptr %12034, align 4, !tbaa !5
  store i32 %12035, ptr %303, align 4, !tbaa !5
  %12036 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12037 = call i32 @s2n_print_stacktrace(ptr noundef %12036)
  %12038 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12039 = trunc i8 %12038 to i1
  br i1 %12039, label %12040, label %12062

12040:                                            ; preds = %12033
  %12041 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12042 = call i32 @fileno(ptr noundef %12041) #11
  %12043 = call i32 @isatty(i32 noundef %12042) #11
  %12044 = icmp ne i32 %12043, 0
  br i1 %12044, label %12045, label %12062

12045:                                            ; preds = %12040
  %12046 = load i32, ptr %303, align 4, !tbaa !5
  %12047 = call ptr @__errno_location() #12
  store i32 %12046, ptr %12047, align 4, !tbaa !5
  %12048 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12049 = load i32, ptr @test_count, align 4, !tbaa !5
  %12050 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12051 = load i32, ptr %12050, align 4, !tbaa !5
  %12052 = call ptr @s2n_strerror(i32 noundef %12051, ptr noundef @.str.4)
  %12053 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12054 = load i32, ptr %12053, align 4, !tbaa !5
  %12055 = call ptr @s2n_strerror_debug(i32 noundef %12054, ptr noundef @.str.4)
  %12056 = call ptr @__errno_location() #12
  %12057 = load i32, ptr %12056, align 4, !tbaa !5
  %12058 = call ptr @strerror(i32 noundef %12057) #11
  %12059 = call ptr @__errno_location() #12
  %12060 = load i32, ptr %12059, align 4, !tbaa !5
  %12061 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12048, ptr noundef @.str.2, i32 noundef %12049, ptr noundef @.str.106, ptr noundef @.str.1, i32 noundef 606, ptr noundef %12052, ptr noundef %12055, ptr noundef %12058, i32 noundef %12060) #11
  br label %12079

12062:                                            ; preds = %12040, %12033
  %12063 = load i32, ptr %303, align 4, !tbaa !5
  %12064 = call ptr @__errno_location() #12
  store i32 %12063, ptr %12064, align 4, !tbaa !5
  %12065 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12066 = load i32, ptr @test_count, align 4, !tbaa !5
  %12067 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12068 = load i32, ptr %12067, align 4, !tbaa !5
  %12069 = call ptr @s2n_strerror(i32 noundef %12068, ptr noundef @.str.4)
  %12070 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12071 = load i32, ptr %12070, align 4, !tbaa !5
  %12072 = call ptr @s2n_strerror_debug(i32 noundef %12071, ptr noundef @.str.4)
  %12073 = call ptr @__errno_location() #12
  %12074 = load i32, ptr %12073, align 4, !tbaa !5
  %12075 = call ptr @strerror(i32 noundef %12074) #11
  %12076 = call ptr @__errno_location() #12
  %12077 = load i32, ptr %12076, align 4, !tbaa !5
  %12078 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12065, ptr noundef @.str.5, i32 noundef %12066, ptr noundef @.str.106, ptr noundef @.str.1, i32 noundef 606, ptr noundef %12069, ptr noundef %12072, ptr noundef %12075, i32 noundef %12077) #11
  br label %12079

12079:                                            ; preds = %12062, %12045
  call void @llvm.lifetime.end.p0(i64 4, ptr %303) #11
  br label %12080

12080:                                            ; preds = %12079
  br label %12081

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

12082:                                            ; No predecessors!
  br label %12083

12083:                                            ; preds = %12082
  br label %12084

12084:                                            ; preds = %12083, %12026
  br label %12085

12085:                                            ; preds = %12084
  br label %12086

12086:                                            ; preds = %12085
  br label %12087

12087:                                            ; preds = %12086
  %12088 = load i32, ptr @test_count, align 4, !tbaa !5
  %12089 = add nsw i32 %12088, 1
  store i32 %12089, ptr @test_count, align 4, !tbaa !5
  %12090 = load ptr, ptr %292, align 8, !tbaa !9
  %12091 = load ptr, ptr %291, align 8, !tbaa !9
  %12092 = call i32 @s2n_connections_set_io_pair(ptr noundef %12090, ptr noundef %12091, ptr noundef %302)
  %12093 = icmp eq i32 %12092, -1
  br i1 %12093, label %12094, label %12147

12094:                                            ; preds = %12087
  br label %12095

12095:                                            ; preds = %12094
  br label %12096

12096:                                            ; preds = %12095
  call void @llvm.lifetime.start.p0(i64 4, ptr %304) #11
  %12097 = call ptr @__errno_location() #12
  %12098 = load i32, ptr %12097, align 4, !tbaa !5
  store i32 %12098, ptr %304, align 4, !tbaa !5
  %12099 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12100 = call i32 @s2n_print_stacktrace(ptr noundef %12099)
  %12101 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12102 = trunc i8 %12101 to i1
  br i1 %12102, label %12103, label %12125

12103:                                            ; preds = %12096
  %12104 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12105 = call i32 @fileno(ptr noundef %12104) #11
  %12106 = call i32 @isatty(i32 noundef %12105) #11
  %12107 = icmp ne i32 %12106, 0
  br i1 %12107, label %12108, label %12125

12108:                                            ; preds = %12103
  %12109 = load i32, ptr %304, align 4, !tbaa !5
  %12110 = call ptr @__errno_location() #12
  store i32 %12109, ptr %12110, align 4, !tbaa !5
  %12111 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12112 = load i32, ptr @test_count, align 4, !tbaa !5
  %12113 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12114 = load i32, ptr %12113, align 4, !tbaa !5
  %12115 = call ptr @s2n_strerror(i32 noundef %12114, ptr noundef @.str.4)
  %12116 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12117 = load i32, ptr %12116, align 4, !tbaa !5
  %12118 = call ptr @s2n_strerror_debug(i32 noundef %12117, ptr noundef @.str.4)
  %12119 = call ptr @__errno_location() #12
  %12120 = load i32, ptr %12119, align 4, !tbaa !5
  %12121 = call ptr @strerror(i32 noundef %12120) #11
  %12122 = call ptr @__errno_location() #12
  %12123 = load i32, ptr %12122, align 4, !tbaa !5
  %12124 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12111, ptr noundef @.str.2, i32 noundef %12112, ptr noundef @.str.107, ptr noundef @.str.1, i32 noundef 607, ptr noundef %12115, ptr noundef %12118, ptr noundef %12121, i32 noundef %12123) #11
  br label %12142

12125:                                            ; preds = %12103, %12096
  %12126 = load i32, ptr %304, align 4, !tbaa !5
  %12127 = call ptr @__errno_location() #12
  store i32 %12126, ptr %12127, align 4, !tbaa !5
  %12128 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12129 = load i32, ptr @test_count, align 4, !tbaa !5
  %12130 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12131 = load i32, ptr %12130, align 4, !tbaa !5
  %12132 = call ptr @s2n_strerror(i32 noundef %12131, ptr noundef @.str.4)
  %12133 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12134 = load i32, ptr %12133, align 4, !tbaa !5
  %12135 = call ptr @s2n_strerror_debug(i32 noundef %12134, ptr noundef @.str.4)
  %12136 = call ptr @__errno_location() #12
  %12137 = load i32, ptr %12136, align 4, !tbaa !5
  %12138 = call ptr @strerror(i32 noundef %12137) #11
  %12139 = call ptr @__errno_location() #12
  %12140 = load i32, ptr %12139, align 4, !tbaa !5
  %12141 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12128, ptr noundef @.str.5, i32 noundef %12129, ptr noundef @.str.107, ptr noundef @.str.1, i32 noundef 607, ptr noundef %12132, ptr noundef %12135, ptr noundef %12138, i32 noundef %12140) #11
  br label %12142

12142:                                            ; preds = %12125, %12108
  call void @llvm.lifetime.end.p0(i64 4, ptr %304) #11
  br label %12143

12143:                                            ; preds = %12142
  br label %12144

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

12145:                                            ; No predecessors!
  br label %12146

12146:                                            ; preds = %12145
  br label %12147

12147:                                            ; preds = %12146, %12087
  br label %12148

12148:                                            ; preds = %12147
  br label %12149

12149:                                            ; preds = %12148
  br label %12150

12150:                                            ; preds = %12149
  %12151 = load i32, ptr @test_count, align 4, !tbaa !5
  %12152 = add nsw i32 %12151, 1
  store i32 %12152, ptr @test_count, align 4, !tbaa !5
  %12153 = load ptr, ptr %291, align 8, !tbaa !9
  %12154 = load ptr, ptr %292, align 8, !tbaa !9
  %12155 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %12153, ptr noundef %12154)
  %12156 = icmp eq i32 %12155, -1
  br i1 %12156, label %12157, label %12210

12157:                                            ; preds = %12150
  br label %12158

12158:                                            ; preds = %12157
  br label %12159

12159:                                            ; preds = %12158
  call void @llvm.lifetime.start.p0(i64 4, ptr %305) #11
  %12160 = call ptr @__errno_location() #12
  %12161 = load i32, ptr %12160, align 4, !tbaa !5
  store i32 %12161, ptr %305, align 4, !tbaa !5
  %12162 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12163 = call i32 @s2n_print_stacktrace(ptr noundef %12162)
  %12164 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12165 = trunc i8 %12164 to i1
  br i1 %12165, label %12166, label %12188

12166:                                            ; preds = %12159
  %12167 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12168 = call i32 @fileno(ptr noundef %12167) #11
  %12169 = call i32 @isatty(i32 noundef %12168) #11
  %12170 = icmp ne i32 %12169, 0
  br i1 %12170, label %12171, label %12188

12171:                                            ; preds = %12166
  %12172 = load i32, ptr %305, align 4, !tbaa !5
  %12173 = call ptr @__errno_location() #12
  store i32 %12172, ptr %12173, align 4, !tbaa !5
  %12174 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12175 = load i32, ptr @test_count, align 4, !tbaa !5
  %12176 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12177 = load i32, ptr %12176, align 4, !tbaa !5
  %12178 = call ptr @s2n_strerror(i32 noundef %12177, ptr noundef @.str.4)
  %12179 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12180 = load i32, ptr %12179, align 4, !tbaa !5
  %12181 = call ptr @s2n_strerror_debug(i32 noundef %12180, ptr noundef @.str.4)
  %12182 = call ptr @__errno_location() #12
  %12183 = load i32, ptr %12182, align 4, !tbaa !5
  %12184 = call ptr @strerror(i32 noundef %12183) #11
  %12185 = call ptr @__errno_location() #12
  %12186 = load i32, ptr %12185, align 4, !tbaa !5
  %12187 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12174, ptr noundef @.str.2, i32 noundef %12175, ptr noundef @.str.108, ptr noundef @.str.1, i32 noundef 608, ptr noundef %12178, ptr noundef %12181, ptr noundef %12184, i32 noundef %12186) #11
  br label %12205

12188:                                            ; preds = %12166, %12159
  %12189 = load i32, ptr %305, align 4, !tbaa !5
  %12190 = call ptr @__errno_location() #12
  store i32 %12189, ptr %12190, align 4, !tbaa !5
  %12191 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12192 = load i32, ptr @test_count, align 4, !tbaa !5
  %12193 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12194 = load i32, ptr %12193, align 4, !tbaa !5
  %12195 = call ptr @s2n_strerror(i32 noundef %12194, ptr noundef @.str.4)
  %12196 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12197 = load i32, ptr %12196, align 4, !tbaa !5
  %12198 = call ptr @s2n_strerror_debug(i32 noundef %12197, ptr noundef @.str.4)
  %12199 = call ptr @__errno_location() #12
  %12200 = load i32, ptr %12199, align 4, !tbaa !5
  %12201 = call ptr @strerror(i32 noundef %12200) #11
  %12202 = call ptr @__errno_location() #12
  %12203 = load i32, ptr %12202, align 4, !tbaa !5
  %12204 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12191, ptr noundef @.str.5, i32 noundef %12192, ptr noundef @.str.108, ptr noundef @.str.1, i32 noundef 608, ptr noundef %12195, ptr noundef %12198, ptr noundef %12201, i32 noundef %12203) #11
  br label %12205

12205:                                            ; preds = %12188, %12171
  call void @llvm.lifetime.end.p0(i64 4, ptr %305) #11
  br label %12206

12206:                                            ; preds = %12205
  br label %12207

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

12208:                                            ; No predecessors!
  br label %12209

12209:                                            ; preds = %12208
  br label %12210

12210:                                            ; preds = %12209, %12150
  br label %12211

12211:                                            ; preds = %12210
  br label %12212

12212:                                            ; preds = %12211
  br label %12213

12213:                                            ; preds = %12212
  %12214 = load i32, ptr @test_count, align 4, !tbaa !5
  %12215 = add nsw i32 %12214, 1
  store i32 %12215, ptr @test_count, align 4, !tbaa !5
  %12216 = load ptr, ptr %291, align 8, !tbaa !9
  %12217 = getelementptr inbounds %struct.s2n_connection, ptr %12216, i32 0, i32 23
  %12218 = load i8, ptr %12217, align 4, !tbaa !52
  %12219 = zext i8 %12218 to i32
  %12220 = icmp eq i32 %12219, 33
  br i1 %12220, label %12274, label %12221

12221:                                            ; preds = %12213
  br label %12222

12222:                                            ; preds = %12221
  br label %12223

12223:                                            ; preds = %12222
  call void @llvm.lifetime.start.p0(i64 4, ptr %306) #11
  %12224 = call ptr @__errno_location() #12
  %12225 = load i32, ptr %12224, align 4, !tbaa !5
  store i32 %12225, ptr %306, align 4, !tbaa !5
  %12226 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12227 = call i32 @s2n_print_stacktrace(ptr noundef %12226)
  %12228 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12229 = trunc i8 %12228 to i1
  br i1 %12229, label %12230, label %12252

12230:                                            ; preds = %12223
  %12231 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12232 = call i32 @fileno(ptr noundef %12231) #11
  %12233 = call i32 @isatty(i32 noundef %12232) #11
  %12234 = icmp ne i32 %12233, 0
  br i1 %12234, label %12235, label %12252

12235:                                            ; preds = %12230
  %12236 = load i32, ptr %306, align 4, !tbaa !5
  %12237 = call ptr @__errno_location() #12
  store i32 %12236, ptr %12237, align 4, !tbaa !5
  %12238 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12239 = load i32, ptr @test_count, align 4, !tbaa !5
  %12240 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12241 = load i32, ptr %12240, align 4, !tbaa !5
  %12242 = call ptr @s2n_strerror(i32 noundef %12241, ptr noundef @.str.4)
  %12243 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12244 = load i32, ptr %12243, align 4, !tbaa !5
  %12245 = call ptr @s2n_strerror_debug(i32 noundef %12244, ptr noundef @.str.4)
  %12246 = call ptr @__errno_location() #12
  %12247 = load i32, ptr %12246, align 4, !tbaa !5
  %12248 = call ptr @strerror(i32 noundef %12247) #11
  %12249 = call ptr @__errno_location() #12
  %12250 = load i32, ptr %12249, align 4, !tbaa !5
  %12251 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12238, ptr noundef @.str.2, i32 noundef %12239, ptr noundef @.str.109, ptr noundef @.str.1, i32 noundef 609, ptr noundef %12242, ptr noundef %12245, ptr noundef %12248, i32 noundef %12250) #11
  br label %12269

12252:                                            ; preds = %12230, %12223
  %12253 = load i32, ptr %306, align 4, !tbaa !5
  %12254 = call ptr @__errno_location() #12
  store i32 %12253, ptr %12254, align 4, !tbaa !5
  %12255 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12256 = load i32, ptr @test_count, align 4, !tbaa !5
  %12257 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12258 = load i32, ptr %12257, align 4, !tbaa !5
  %12259 = call ptr @s2n_strerror(i32 noundef %12258, ptr noundef @.str.4)
  %12260 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12261 = load i32, ptr %12260, align 4, !tbaa !5
  %12262 = call ptr @s2n_strerror_debug(i32 noundef %12261, ptr noundef @.str.4)
  %12263 = call ptr @__errno_location() #12
  %12264 = load i32, ptr %12263, align 4, !tbaa !5
  %12265 = call ptr @strerror(i32 noundef %12264) #11
  %12266 = call ptr @__errno_location() #12
  %12267 = load i32, ptr %12266, align 4, !tbaa !5
  %12268 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12255, ptr noundef @.str.5, i32 noundef %12256, ptr noundef @.str.109, ptr noundef @.str.1, i32 noundef 609, ptr noundef %12259, ptr noundef %12262, ptr noundef %12265, i32 noundef %12267) #11
  br label %12269

12269:                                            ; preds = %12252, %12235
  call void @llvm.lifetime.end.p0(i64 4, ptr %306) #11
  br label %12270

12270:                                            ; preds = %12269
  br label %12271

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

12272:                                            ; No predecessors!
  br label %12273

12273:                                            ; preds = %12272
  br label %12274

12274:                                            ; preds = %12273, %12213
  br label %12275

12275:                                            ; preds = %12274
  br label %12276

12276:                                            ; preds = %12275
  br label %12277

12277:                                            ; preds = %12276
  %12278 = load i32, ptr @test_count, align 4, !tbaa !5
  %12279 = add nsw i32 %12278, 1
  store i32 %12279, ptr @test_count, align 4, !tbaa !5
  %12280 = load ptr, ptr %291, align 8, !tbaa !9
  %12281 = call i32 @s2n_connection_ktls_enable_send(ptr noundef %12280)
  %12282 = icmp eq i32 %12281, -1
  br i1 %12282, label %12283, label %12336

12283:                                            ; preds = %12277
  br label %12284

12284:                                            ; preds = %12283
  br label %12285

12285:                                            ; preds = %12284
  call void @llvm.lifetime.start.p0(i64 4, ptr %307) #11
  %12286 = call ptr @__errno_location() #12
  %12287 = load i32, ptr %12286, align 4, !tbaa !5
  store i32 %12287, ptr %307, align 4, !tbaa !5
  %12288 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12289 = call i32 @s2n_print_stacktrace(ptr noundef %12288)
  %12290 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12291 = trunc i8 %12290 to i1
  br i1 %12291, label %12292, label %12314

12292:                                            ; preds = %12285
  %12293 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12294 = call i32 @fileno(ptr noundef %12293) #11
  %12295 = call i32 @isatty(i32 noundef %12294) #11
  %12296 = icmp ne i32 %12295, 0
  br i1 %12296, label %12297, label %12314

12297:                                            ; preds = %12292
  %12298 = load i32, ptr %307, align 4, !tbaa !5
  %12299 = call ptr @__errno_location() #12
  store i32 %12298, ptr %12299, align 4, !tbaa !5
  %12300 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12301 = load i32, ptr @test_count, align 4, !tbaa !5
  %12302 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12303 = load i32, ptr %12302, align 4, !tbaa !5
  %12304 = call ptr @s2n_strerror(i32 noundef %12303, ptr noundef @.str.4)
  %12305 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12306 = load i32, ptr %12305, align 4, !tbaa !5
  %12307 = call ptr @s2n_strerror_debug(i32 noundef %12306, ptr noundef @.str.4)
  %12308 = call ptr @__errno_location() #12
  %12309 = load i32, ptr %12308, align 4, !tbaa !5
  %12310 = call ptr @strerror(i32 noundef %12309) #11
  %12311 = call ptr @__errno_location() #12
  %12312 = load i32, ptr %12311, align 4, !tbaa !5
  %12313 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12300, ptr noundef @.str.2, i32 noundef %12301, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 612, ptr noundef %12304, ptr noundef %12307, ptr noundef %12310, i32 noundef %12312) #11
  br label %12331

12314:                                            ; preds = %12292, %12285
  %12315 = load i32, ptr %307, align 4, !tbaa !5
  %12316 = call ptr @__errno_location() #12
  store i32 %12315, ptr %12316, align 4, !tbaa !5
  %12317 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12318 = load i32, ptr @test_count, align 4, !tbaa !5
  %12319 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12320 = load i32, ptr %12319, align 4, !tbaa !5
  %12321 = call ptr @s2n_strerror(i32 noundef %12320, ptr noundef @.str.4)
  %12322 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12323 = load i32, ptr %12322, align 4, !tbaa !5
  %12324 = call ptr @s2n_strerror_debug(i32 noundef %12323, ptr noundef @.str.4)
  %12325 = call ptr @__errno_location() #12
  %12326 = load i32, ptr %12325, align 4, !tbaa !5
  %12327 = call ptr @strerror(i32 noundef %12326) #11
  %12328 = call ptr @__errno_location() #12
  %12329 = load i32, ptr %12328, align 4, !tbaa !5
  %12330 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12317, ptr noundef @.str.5, i32 noundef %12318, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 612, ptr noundef %12321, ptr noundef %12324, ptr noundef %12327, i32 noundef %12329) #11
  br label %12331

12331:                                            ; preds = %12314, %12297
  call void @llvm.lifetime.end.p0(i64 4, ptr %307) #11
  br label %12332

12332:                                            ; preds = %12331
  br label %12333

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

12334:                                            ; No predecessors!
  br label %12335

12335:                                            ; preds = %12334
  br label %12336

12336:                                            ; preds = %12335, %12277
  br label %12337

12337:                                            ; preds = %12336
  br label %12338

12338:                                            ; preds = %12337
  br label %12339

12339:                                            ; preds = %12338
  %12340 = load i32, ptr @test_count, align 4, !tbaa !5
  %12341 = add nsw i32 %12340, 1
  store i32 %12341, ptr @test_count, align 4, !tbaa !5
  %12342 = load ptr, ptr %291, align 8, !tbaa !9
  %12343 = load i32, ptr %12342, align 8
  %12344 = lshr i32 %12343, 18
  %12345 = and i32 %12344, 1
  %12346 = icmp ne i32 %12345, 0
  br i1 %12346, label %12400, label %12347

12347:                                            ; preds = %12339
  br label %12348

12348:                                            ; preds = %12347
  br label %12349

12349:                                            ; preds = %12348
  call void @llvm.lifetime.start.p0(i64 4, ptr %308) #11
  %12350 = call ptr @__errno_location() #12
  %12351 = load i32, ptr %12350, align 4, !tbaa !5
  store i32 %12351, ptr %308, align 4, !tbaa !5
  %12352 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12353 = call i32 @s2n_print_stacktrace(ptr noundef %12352)
  %12354 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12355 = trunc i8 %12354 to i1
  br i1 %12355, label %12356, label %12378

12356:                                            ; preds = %12349
  %12357 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12358 = call i32 @fileno(ptr noundef %12357) #11
  %12359 = call i32 @isatty(i32 noundef %12358) #11
  %12360 = icmp ne i32 %12359, 0
  br i1 %12360, label %12361, label %12378

12361:                                            ; preds = %12356
  %12362 = load i32, ptr %308, align 4, !tbaa !5
  %12363 = call ptr @__errno_location() #12
  store i32 %12362, ptr %12363, align 4, !tbaa !5
  %12364 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12365 = load i32, ptr @test_count, align 4, !tbaa !5
  %12366 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12367 = load i32, ptr %12366, align 4, !tbaa !5
  %12368 = call ptr @s2n_strerror(i32 noundef %12367, ptr noundef @.str.4)
  %12369 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12370 = load i32, ptr %12369, align 4, !tbaa !5
  %12371 = call ptr @s2n_strerror_debug(i32 noundef %12370, ptr noundef @.str.4)
  %12372 = call ptr @__errno_location() #12
  %12373 = load i32, ptr %12372, align 4, !tbaa !5
  %12374 = call ptr @strerror(i32 noundef %12373) #11
  %12375 = call ptr @__errno_location() #12
  %12376 = load i32, ptr %12375, align 4, !tbaa !5
  %12377 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12364, ptr noundef @.str.2, i32 noundef %12365, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 613, ptr noundef %12368, ptr noundef %12371, ptr noundef %12374, i32 noundef %12376) #11
  br label %12395

12378:                                            ; preds = %12356, %12349
  %12379 = load i32, ptr %308, align 4, !tbaa !5
  %12380 = call ptr @__errno_location() #12
  store i32 %12379, ptr %12380, align 4, !tbaa !5
  %12381 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12382 = load i32, ptr @test_count, align 4, !tbaa !5
  %12383 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12384 = load i32, ptr %12383, align 4, !tbaa !5
  %12385 = call ptr @s2n_strerror(i32 noundef %12384, ptr noundef @.str.4)
  %12386 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12387 = load i32, ptr %12386, align 4, !tbaa !5
  %12388 = call ptr @s2n_strerror_debug(i32 noundef %12387, ptr noundef @.str.4)
  %12389 = call ptr @__errno_location() #12
  %12390 = load i32, ptr %12389, align 4, !tbaa !5
  %12391 = call ptr @strerror(i32 noundef %12390) #11
  %12392 = call ptr @__errno_location() #12
  %12393 = load i32, ptr %12392, align 4, !tbaa !5
  %12394 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12381, ptr noundef @.str.5, i32 noundef %12382, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 613, ptr noundef %12385, ptr noundef %12388, ptr noundef %12391, i32 noundef %12393) #11
  br label %12395

12395:                                            ; preds = %12378, %12361
  call void @llvm.lifetime.end.p0(i64 4, ptr %308) #11
  br label %12396

12396:                                            ; preds = %12395
  br label %12397

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

12398:                                            ; No predecessors!
  br label %12399

12399:                                            ; preds = %12398
  br label %12400

12400:                                            ; preds = %12399, %12339
  br label %12401

12401:                                            ; preds = %12400
  br label %12402

12402:                                            ; preds = %12401
  br label %12403

12403:                                            ; preds = %12402
  %12404 = load i32, ptr @test_count, align 4, !tbaa !5
  %12405 = add nsw i32 %12404, 1
  store i32 %12405, ptr @test_count, align 4, !tbaa !5
  %12406 = load ptr, ptr %291, align 8, !tbaa !9
  %12407 = getelementptr inbounds %struct.s2n_connection, ptr %12406, i32 0, i32 6
  %12408 = load ptr, ptr %12407, align 8, !tbaa !84
  %12409 = icmp eq ptr %12408, @s2n_socket_write
  br i1 %12409, label %12410, label %12463

12410:                                            ; preds = %12403
  br label %12411

12411:                                            ; preds = %12410
  br label %12412

12412:                                            ; preds = %12411
  call void @llvm.lifetime.start.p0(i64 4, ptr %309) #11
  %12413 = call ptr @__errno_location() #12
  %12414 = load i32, ptr %12413, align 4, !tbaa !5
  store i32 %12414, ptr %309, align 4, !tbaa !5
  %12415 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12416 = call i32 @s2n_print_stacktrace(ptr noundef %12415)
  %12417 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12418 = trunc i8 %12417 to i1
  br i1 %12418, label %12419, label %12441

12419:                                            ; preds = %12412
  %12420 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12421 = call i32 @fileno(ptr noundef %12420) #11
  %12422 = call i32 @isatty(i32 noundef %12421) #11
  %12423 = icmp ne i32 %12422, 0
  br i1 %12423, label %12424, label %12441

12424:                                            ; preds = %12419
  %12425 = load i32, ptr %309, align 4, !tbaa !5
  %12426 = call ptr @__errno_location() #12
  store i32 %12425, ptr %12426, align 4, !tbaa !5
  %12427 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12428 = load i32, ptr @test_count, align 4, !tbaa !5
  %12429 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12430 = load i32, ptr %12429, align 4, !tbaa !5
  %12431 = call ptr @s2n_strerror(i32 noundef %12430, ptr noundef @.str.4)
  %12432 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12433 = load i32, ptr %12432, align 4, !tbaa !5
  %12434 = call ptr @s2n_strerror_debug(i32 noundef %12433, ptr noundef @.str.4)
  %12435 = call ptr @__errno_location() #12
  %12436 = load i32, ptr %12435, align 4, !tbaa !5
  %12437 = call ptr @strerror(i32 noundef %12436) #11
  %12438 = call ptr @__errno_location() #12
  %12439 = load i32, ptr %12438, align 4, !tbaa !5
  %12440 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12427, ptr noundef @.str.2, i32 noundef %12428, ptr noundef @.str.110, ptr noundef @.str.1, i32 noundef 614, ptr noundef %12431, ptr noundef %12434, ptr noundef %12437, i32 noundef %12439) #11
  br label %12458

12441:                                            ; preds = %12419, %12412
  %12442 = load i32, ptr %309, align 4, !tbaa !5
  %12443 = call ptr @__errno_location() #12
  store i32 %12442, ptr %12443, align 4, !tbaa !5
  %12444 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12445 = load i32, ptr @test_count, align 4, !tbaa !5
  %12446 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12447 = load i32, ptr %12446, align 4, !tbaa !5
  %12448 = call ptr @s2n_strerror(i32 noundef %12447, ptr noundef @.str.4)
  %12449 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12450 = load i32, ptr %12449, align 4, !tbaa !5
  %12451 = call ptr @s2n_strerror_debug(i32 noundef %12450, ptr noundef @.str.4)
  %12452 = call ptr @__errno_location() #12
  %12453 = load i32, ptr %12452, align 4, !tbaa !5
  %12454 = call ptr @strerror(i32 noundef %12453) #11
  %12455 = call ptr @__errno_location() #12
  %12456 = load i32, ptr %12455, align 4, !tbaa !5
  %12457 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12444, ptr noundef @.str.5, i32 noundef %12445, ptr noundef @.str.110, ptr noundef @.str.1, i32 noundef 614, ptr noundef %12448, ptr noundef %12451, ptr noundef %12454, i32 noundef %12456) #11
  br label %12458

12458:                                            ; preds = %12441, %12424
  call void @llvm.lifetime.end.p0(i64 4, ptr %309) #11
  br label %12459

12459:                                            ; preds = %12458
  br label %12460

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

12461:                                            ; No predecessors!
  br label %12462

12462:                                            ; preds = %12461
  br label %12463

12463:                                            ; preds = %12462, %12403
  br label %12464

12464:                                            ; preds = %12463
  br label %12465

12465:                                            ; preds = %12464
  br label %12466

12466:                                            ; preds = %12465
  %12467 = load i32, ptr @test_count, align 4, !tbaa !5
  %12468 = add nsw i32 %12467, 1
  store i32 %12468, ptr @test_count, align 4, !tbaa !5
  %12469 = load ptr, ptr %291, align 8, !tbaa !9
  %12470 = call i32 @s2n_connection_ktls_enable_recv(ptr noundef %12469)
  %12471 = icmp eq i32 %12470, -1
  br i1 %12471, label %12472, label %12525

12472:                                            ; preds = %12466
  br label %12473

12473:                                            ; preds = %12472
  br label %12474

12474:                                            ; preds = %12473
  call void @llvm.lifetime.start.p0(i64 4, ptr %310) #11
  %12475 = call ptr @__errno_location() #12
  %12476 = load i32, ptr %12475, align 4, !tbaa !5
  store i32 %12476, ptr %310, align 4, !tbaa !5
  %12477 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12478 = call i32 @s2n_print_stacktrace(ptr noundef %12477)
  %12479 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12480 = trunc i8 %12479 to i1
  br i1 %12480, label %12481, label %12503

12481:                                            ; preds = %12474
  %12482 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12483 = call i32 @fileno(ptr noundef %12482) #11
  %12484 = call i32 @isatty(i32 noundef %12483) #11
  %12485 = icmp ne i32 %12484, 0
  br i1 %12485, label %12486, label %12503

12486:                                            ; preds = %12481
  %12487 = load i32, ptr %310, align 4, !tbaa !5
  %12488 = call ptr @__errno_location() #12
  store i32 %12487, ptr %12488, align 4, !tbaa !5
  %12489 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12490 = load i32, ptr @test_count, align 4, !tbaa !5
  %12491 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12492 = load i32, ptr %12491, align 4, !tbaa !5
  %12493 = call ptr @s2n_strerror(i32 noundef %12492, ptr noundef @.str.4)
  %12494 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12495 = load i32, ptr %12494, align 4, !tbaa !5
  %12496 = call ptr @s2n_strerror_debug(i32 noundef %12495, ptr noundef @.str.4)
  %12497 = call ptr @__errno_location() #12
  %12498 = load i32, ptr %12497, align 4, !tbaa !5
  %12499 = call ptr @strerror(i32 noundef %12498) #11
  %12500 = call ptr @__errno_location() #12
  %12501 = load i32, ptr %12500, align 4, !tbaa !5
  %12502 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12489, ptr noundef @.str.2, i32 noundef %12490, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 617, ptr noundef %12493, ptr noundef %12496, ptr noundef %12499, i32 noundef %12501) #11
  br label %12520

12503:                                            ; preds = %12481, %12474
  %12504 = load i32, ptr %310, align 4, !tbaa !5
  %12505 = call ptr @__errno_location() #12
  store i32 %12504, ptr %12505, align 4, !tbaa !5
  %12506 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12507 = load i32, ptr @test_count, align 4, !tbaa !5
  %12508 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12509 = load i32, ptr %12508, align 4, !tbaa !5
  %12510 = call ptr @s2n_strerror(i32 noundef %12509, ptr noundef @.str.4)
  %12511 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12512 = load i32, ptr %12511, align 4, !tbaa !5
  %12513 = call ptr @s2n_strerror_debug(i32 noundef %12512, ptr noundef @.str.4)
  %12514 = call ptr @__errno_location() #12
  %12515 = load i32, ptr %12514, align 4, !tbaa !5
  %12516 = call ptr @strerror(i32 noundef %12515) #11
  %12517 = call ptr @__errno_location() #12
  %12518 = load i32, ptr %12517, align 4, !tbaa !5
  %12519 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12506, ptr noundef @.str.5, i32 noundef %12507, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 617, ptr noundef %12510, ptr noundef %12513, ptr noundef %12516, i32 noundef %12518) #11
  br label %12520

12520:                                            ; preds = %12503, %12486
  call void @llvm.lifetime.end.p0(i64 4, ptr %310) #11
  br label %12521

12521:                                            ; preds = %12520
  br label %12522

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

12523:                                            ; No predecessors!
  br label %12524

12524:                                            ; preds = %12523
  br label %12525

12525:                                            ; preds = %12524, %12466
  br label %12526

12526:                                            ; preds = %12525
  br label %12527

12527:                                            ; preds = %12526
  br label %12528

12528:                                            ; preds = %12527
  %12529 = load i32, ptr @test_count, align 4, !tbaa !5
  %12530 = add nsw i32 %12529, 1
  store i32 %12530, ptr @test_count, align 4, !tbaa !5
  %12531 = load ptr, ptr %291, align 8, !tbaa !9
  %12532 = load i32, ptr %12531, align 8
  %12533 = lshr i32 %12532, 19
  %12534 = and i32 %12533, 1
  %12535 = icmp ne i32 %12534, 0
  br i1 %12535, label %12589, label %12536

12536:                                            ; preds = %12528
  br label %12537

12537:                                            ; preds = %12536
  br label %12538

12538:                                            ; preds = %12537
  call void @llvm.lifetime.start.p0(i64 4, ptr %311) #11
  %12539 = call ptr @__errno_location() #12
  %12540 = load i32, ptr %12539, align 4, !tbaa !5
  store i32 %12540, ptr %311, align 4, !tbaa !5
  %12541 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12542 = call i32 @s2n_print_stacktrace(ptr noundef %12541)
  %12543 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12544 = trunc i8 %12543 to i1
  br i1 %12544, label %12545, label %12567

12545:                                            ; preds = %12538
  %12546 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12547 = call i32 @fileno(ptr noundef %12546) #11
  %12548 = call i32 @isatty(i32 noundef %12547) #11
  %12549 = icmp ne i32 %12548, 0
  br i1 %12549, label %12550, label %12567

12550:                                            ; preds = %12545
  %12551 = load i32, ptr %311, align 4, !tbaa !5
  %12552 = call ptr @__errno_location() #12
  store i32 %12551, ptr %12552, align 4, !tbaa !5
  %12553 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12554 = load i32, ptr @test_count, align 4, !tbaa !5
  %12555 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12556 = load i32, ptr %12555, align 4, !tbaa !5
  %12557 = call ptr @s2n_strerror(i32 noundef %12556, ptr noundef @.str.4)
  %12558 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12559 = load i32, ptr %12558, align 4, !tbaa !5
  %12560 = call ptr @s2n_strerror_debug(i32 noundef %12559, ptr noundef @.str.4)
  %12561 = call ptr @__errno_location() #12
  %12562 = load i32, ptr %12561, align 4, !tbaa !5
  %12563 = call ptr @strerror(i32 noundef %12562) #11
  %12564 = call ptr @__errno_location() #12
  %12565 = load i32, ptr %12564, align 4, !tbaa !5
  %12566 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12553, ptr noundef @.str.2, i32 noundef %12554, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 618, ptr noundef %12557, ptr noundef %12560, ptr noundef %12563, i32 noundef %12565) #11
  br label %12584

12567:                                            ; preds = %12545, %12538
  %12568 = load i32, ptr %311, align 4, !tbaa !5
  %12569 = call ptr @__errno_location() #12
  store i32 %12568, ptr %12569, align 4, !tbaa !5
  %12570 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12571 = load i32, ptr @test_count, align 4, !tbaa !5
  %12572 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12573 = load i32, ptr %12572, align 4, !tbaa !5
  %12574 = call ptr @s2n_strerror(i32 noundef %12573, ptr noundef @.str.4)
  %12575 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12576 = load i32, ptr %12575, align 4, !tbaa !5
  %12577 = call ptr @s2n_strerror_debug(i32 noundef %12576, ptr noundef @.str.4)
  %12578 = call ptr @__errno_location() #12
  %12579 = load i32, ptr %12578, align 4, !tbaa !5
  %12580 = call ptr @strerror(i32 noundef %12579) #11
  %12581 = call ptr @__errno_location() #12
  %12582 = load i32, ptr %12581, align 4, !tbaa !5
  %12583 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12570, ptr noundef @.str.5, i32 noundef %12571, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 618, ptr noundef %12574, ptr noundef %12577, ptr noundef %12580, i32 noundef %12582) #11
  br label %12584

12584:                                            ; preds = %12567, %12550
  call void @llvm.lifetime.end.p0(i64 4, ptr %311) #11
  br label %12585

12585:                                            ; preds = %12584
  br label %12586

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

12587:                                            ; No predecessors!
  br label %12588

12588:                                            ; preds = %12587
  br label %12589

12589:                                            ; preds = %12588, %12528
  br label %12590

12590:                                            ; preds = %12589
  br label %12591

12591:                                            ; preds = %12590
  br label %12592

12592:                                            ; preds = %12591
  %12593 = load i32, ptr @test_count, align 4, !tbaa !5
  %12594 = add nsw i32 %12593, 1
  store i32 %12594, ptr @test_count, align 4, !tbaa !5
  %12595 = load ptr, ptr %291, align 8, !tbaa !9
  %12596 = getelementptr inbounds %struct.s2n_connection, ptr %12595, i32 0, i32 7
  %12597 = load ptr, ptr %12596, align 8, !tbaa !85
  %12598 = icmp eq ptr %12597, @s2n_socket_read
  br i1 %12598, label %12599, label %12652

12599:                                            ; preds = %12592
  br label %12600

12600:                                            ; preds = %12599
  br label %12601

12601:                                            ; preds = %12600
  call void @llvm.lifetime.start.p0(i64 4, ptr %312) #11
  %12602 = call ptr @__errno_location() #12
  %12603 = load i32, ptr %12602, align 4, !tbaa !5
  store i32 %12603, ptr %312, align 4, !tbaa !5
  %12604 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12605 = call i32 @s2n_print_stacktrace(ptr noundef %12604)
  %12606 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12607 = trunc i8 %12606 to i1
  br i1 %12607, label %12608, label %12630

12608:                                            ; preds = %12601
  %12609 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12610 = call i32 @fileno(ptr noundef %12609) #11
  %12611 = call i32 @isatty(i32 noundef %12610) #11
  %12612 = icmp ne i32 %12611, 0
  br i1 %12612, label %12613, label %12630

12613:                                            ; preds = %12608
  %12614 = load i32, ptr %312, align 4, !tbaa !5
  %12615 = call ptr @__errno_location() #12
  store i32 %12614, ptr %12615, align 4, !tbaa !5
  %12616 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12617 = load i32, ptr @test_count, align 4, !tbaa !5
  %12618 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12619 = load i32, ptr %12618, align 4, !tbaa !5
  %12620 = call ptr @s2n_strerror(i32 noundef %12619, ptr noundef @.str.4)
  %12621 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12622 = load i32, ptr %12621, align 4, !tbaa !5
  %12623 = call ptr @s2n_strerror_debug(i32 noundef %12622, ptr noundef @.str.4)
  %12624 = call ptr @__errno_location() #12
  %12625 = load i32, ptr %12624, align 4, !tbaa !5
  %12626 = call ptr @strerror(i32 noundef %12625) #11
  %12627 = call ptr @__errno_location() #12
  %12628 = load i32, ptr %12627, align 4, !tbaa !5
  %12629 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12616, ptr noundef @.str.2, i32 noundef %12617, ptr noundef @.str.111, ptr noundef @.str.1, i32 noundef 619, ptr noundef %12620, ptr noundef %12623, ptr noundef %12626, i32 noundef %12628) #11
  br label %12647

12630:                                            ; preds = %12608, %12601
  %12631 = load i32, ptr %312, align 4, !tbaa !5
  %12632 = call ptr @__errno_location() #12
  store i32 %12631, ptr %12632, align 4, !tbaa !5
  %12633 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12634 = load i32, ptr @test_count, align 4, !tbaa !5
  %12635 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12636 = load i32, ptr %12635, align 4, !tbaa !5
  %12637 = call ptr @s2n_strerror(i32 noundef %12636, ptr noundef @.str.4)
  %12638 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12639 = load i32, ptr %12638, align 4, !tbaa !5
  %12640 = call ptr @s2n_strerror_debug(i32 noundef %12639, ptr noundef @.str.4)
  %12641 = call ptr @__errno_location() #12
  %12642 = load i32, ptr %12641, align 4, !tbaa !5
  %12643 = call ptr @strerror(i32 noundef %12642) #11
  %12644 = call ptr @__errno_location() #12
  %12645 = load i32, ptr %12644, align 4, !tbaa !5
  %12646 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12633, ptr noundef @.str.5, i32 noundef %12634, ptr noundef @.str.111, ptr noundef @.str.1, i32 noundef 619, ptr noundef %12637, ptr noundef %12640, ptr noundef %12643, i32 noundef %12645) #11
  br label %12647

12647:                                            ; preds = %12630, %12613
  call void @llvm.lifetime.end.p0(i64 4, ptr %312) #11
  br label %12648

12648:                                            ; preds = %12647
  br label %12649

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

12650:                                            ; No predecessors!
  br label %12651

12651:                                            ; preds = %12650
  br label %12652

12652:                                            ; preds = %12651, %12592
  br label %12653

12653:                                            ; preds = %12652
  br label %12654

12654:                                            ; preds = %12653
  %12655 = call i32 @s2n_io_pair_close(ptr noundef %302)
  call void @llvm.lifetime.end.p0(i64 8, ptr %302) #11
  %12656 = call i32 @s2n_config_ptr_free(ptr noundef %293)
  %12657 = getelementptr inbounds %struct.s2n_result, ptr %313, i32 0, i32 0
  store i32 %12656, ptr %12657, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %293) #11
  %12658 = call i32 @s2n_connection_ptr_free(ptr noundef %292)
  %12659 = getelementptr inbounds %struct.s2n_result, ptr %314, i32 0, i32 0
  store i32 %12658, ptr %12659, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %292) #11
  %12660 = call i32 @s2n_connection_ptr_free(ptr noundef %291)
  %12661 = getelementptr inbounds %struct.s2n_result, ptr %315, i32 0, i32 0
  store i32 %12660, ptr %12661, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %291) #11
  %12662 = call i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef %290)
  %12663 = getelementptr inbounds %struct.s2n_result, ptr %316, i32 0, i32 0
  store i32 %12662, ptr %12663, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %290) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %317) #11
  %12664 = call ptr @s2n_config_new()
  store ptr %12664, ptr %317, align 8, !tbaa !9
  br label %12665

12665:                                            ; preds = %12654
  %12666 = load i32, ptr @test_count, align 4, !tbaa !5
  %12667 = add nsw i32 %12666, 1
  store i32 %12667, ptr @test_count, align 4, !tbaa !5
  %12668 = load ptr, ptr %317, align 8, !tbaa !9
  %12669 = icmp eq ptr %12668, null
  br i1 %12669, label %12670, label %12723

12670:                                            ; preds = %12665
  br label %12671

12671:                                            ; preds = %12670
  br label %12672

12672:                                            ; preds = %12671
  call void @llvm.lifetime.start.p0(i64 4, ptr %318) #11
  %12673 = call ptr @__errno_location() #12
  %12674 = load i32, ptr %12673, align 4, !tbaa !5
  store i32 %12674, ptr %318, align 4, !tbaa !5
  %12675 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12676 = call i32 @s2n_print_stacktrace(ptr noundef %12675)
  %12677 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12678 = trunc i8 %12677 to i1
  br i1 %12678, label %12679, label %12701

12679:                                            ; preds = %12672
  %12680 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12681 = call i32 @fileno(ptr noundef %12680) #11
  %12682 = call i32 @isatty(i32 noundef %12681) #11
  %12683 = icmp ne i32 %12682, 0
  br i1 %12683, label %12684, label %12701

12684:                                            ; preds = %12679
  %12685 = load i32, ptr %318, align 4, !tbaa !5
  %12686 = call ptr @__errno_location() #12
  store i32 %12685, ptr %12686, align 4, !tbaa !5
  %12687 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12688 = load i32, ptr @test_count, align 4, !tbaa !5
  %12689 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12690 = load i32, ptr %12689, align 4, !tbaa !5
  %12691 = call ptr @s2n_strerror(i32 noundef %12690, ptr noundef @.str.4)
  %12692 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12693 = load i32, ptr %12692, align 4, !tbaa !5
  %12694 = call ptr @s2n_strerror_debug(i32 noundef %12693, ptr noundef @.str.4)
  %12695 = call ptr @__errno_location() #12
  %12696 = load i32, ptr %12695, align 4, !tbaa !5
  %12697 = call ptr @strerror(i32 noundef %12696) #11
  %12698 = call ptr @__errno_location() #12
  %12699 = load i32, ptr %12698, align 4, !tbaa !5
  %12700 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12687, ptr noundef @.str.2, i32 noundef %12688, ptr noundef @.str.112, ptr noundef @.str.1, i32 noundef 625, ptr noundef %12691, ptr noundef %12694, ptr noundef %12697, i32 noundef %12699) #11
  br label %12718

12701:                                            ; preds = %12679, %12672
  %12702 = load i32, ptr %318, align 4, !tbaa !5
  %12703 = call ptr @__errno_location() #12
  store i32 %12702, ptr %12703, align 4, !tbaa !5
  %12704 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12705 = load i32, ptr @test_count, align 4, !tbaa !5
  %12706 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12707 = load i32, ptr %12706, align 4, !tbaa !5
  %12708 = call ptr @s2n_strerror(i32 noundef %12707, ptr noundef @.str.4)
  %12709 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12710 = load i32, ptr %12709, align 4, !tbaa !5
  %12711 = call ptr @s2n_strerror_debug(i32 noundef %12710, ptr noundef @.str.4)
  %12712 = call ptr @__errno_location() #12
  %12713 = load i32, ptr %12712, align 4, !tbaa !5
  %12714 = call ptr @strerror(i32 noundef %12713) #11
  %12715 = call ptr @__errno_location() #12
  %12716 = load i32, ptr %12715, align 4, !tbaa !5
  %12717 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12704, ptr noundef @.str.5, i32 noundef %12705, ptr noundef @.str.112, ptr noundef @.str.1, i32 noundef 625, ptr noundef %12708, ptr noundef %12711, ptr noundef %12714, i32 noundef %12716) #11
  br label %12718

12718:                                            ; preds = %12701, %12684
  call void @llvm.lifetime.end.p0(i64 4, ptr %318) #11
  br label %12719

12719:                                            ; preds = %12718
  br label %12720

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

12721:                                            ; No predecessors!
  br label %12722

12722:                                            ; preds = %12721
  br label %12723

12723:                                            ; preds = %12722, %12665
  br label %12724

12724:                                            ; preds = %12723
  br label %12725

12725:                                            ; preds = %12724
  br label %12726

12726:                                            ; preds = %12725
  %12727 = load i32, ptr @test_count, align 4, !tbaa !5
  %12728 = add nsw i32 %12727, 1
  store i32 %12728, ptr @test_count, align 4, !tbaa !5
  %12729 = load ptr, ptr %317, align 8, !tbaa !9
  %12730 = load i32, ptr %12729, align 8
  %12731 = lshr i32 %12730, 17
  %12732 = and i32 %12731, 1
  %12733 = icmp ne i32 %12732, 0
  br i1 %12733, label %12734, label %12787

12734:                                            ; preds = %12726
  br label %12735

12735:                                            ; preds = %12734
  br label %12736

12736:                                            ; preds = %12735
  call void @llvm.lifetime.start.p0(i64 4, ptr %319) #11
  %12737 = call ptr @__errno_location() #12
  %12738 = load i32, ptr %12737, align 4, !tbaa !5
  store i32 %12738, ptr %319, align 4, !tbaa !5
  %12739 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12740 = call i32 @s2n_print_stacktrace(ptr noundef %12739)
  %12741 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12742 = trunc i8 %12741 to i1
  br i1 %12742, label %12743, label %12765

12743:                                            ; preds = %12736
  %12744 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12745 = call i32 @fileno(ptr noundef %12744) #11
  %12746 = call i32 @isatty(i32 noundef %12745) #11
  %12747 = icmp ne i32 %12746, 0
  br i1 %12747, label %12748, label %12765

12748:                                            ; preds = %12743
  %12749 = load i32, ptr %319, align 4, !tbaa !5
  %12750 = call ptr @__errno_location() #12
  store i32 %12749, ptr %12750, align 4, !tbaa !5
  %12751 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12752 = load i32, ptr @test_count, align 4, !tbaa !5
  %12753 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12754 = load i32, ptr %12753, align 4, !tbaa !5
  %12755 = call ptr @s2n_strerror(i32 noundef %12754, ptr noundef @.str.4)
  %12756 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12757 = load i32, ptr %12756, align 4, !tbaa !5
  %12758 = call ptr @s2n_strerror_debug(i32 noundef %12757, ptr noundef @.str.4)
  %12759 = call ptr @__errno_location() #12
  %12760 = load i32, ptr %12759, align 4, !tbaa !5
  %12761 = call ptr @strerror(i32 noundef %12760) #11
  %12762 = call ptr @__errno_location() #12
  %12763 = load i32, ptr %12762, align 4, !tbaa !5
  %12764 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12751, ptr noundef @.str.2, i32 noundef %12752, ptr noundef @.str.113, ptr noundef @.str.1, i32 noundef 626, ptr noundef %12755, ptr noundef %12758, ptr noundef %12761, i32 noundef %12763) #11
  br label %12782

12765:                                            ; preds = %12743, %12736
  %12766 = load i32, ptr %319, align 4, !tbaa !5
  %12767 = call ptr @__errno_location() #12
  store i32 %12766, ptr %12767, align 4, !tbaa !5
  %12768 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12769 = load i32, ptr @test_count, align 4, !tbaa !5
  %12770 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12771 = load i32, ptr %12770, align 4, !tbaa !5
  %12772 = call ptr @s2n_strerror(i32 noundef %12771, ptr noundef @.str.4)
  %12773 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12774 = load i32, ptr %12773, align 4, !tbaa !5
  %12775 = call ptr @s2n_strerror_debug(i32 noundef %12774, ptr noundef @.str.4)
  %12776 = call ptr @__errno_location() #12
  %12777 = load i32, ptr %12776, align 4, !tbaa !5
  %12778 = call ptr @strerror(i32 noundef %12777) #11
  %12779 = call ptr @__errno_location() #12
  %12780 = load i32, ptr %12779, align 4, !tbaa !5
  %12781 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12768, ptr noundef @.str.5, i32 noundef %12769, ptr noundef @.str.113, ptr noundef @.str.1, i32 noundef 626, ptr noundef %12772, ptr noundef %12775, ptr noundef %12778, i32 noundef %12780) #11
  br label %12782

12782:                                            ; preds = %12765, %12748
  call void @llvm.lifetime.end.p0(i64 4, ptr %319) #11
  br label %12783

12783:                                            ; preds = %12782
  br label %12784

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

12785:                                            ; No predecessors!
  br label %12786

12786:                                            ; preds = %12785
  br label %12787

12787:                                            ; preds = %12786, %12726
  br label %12788

12788:                                            ; preds = %12787
  br label %12789

12789:                                            ; preds = %12788
  br label %12790

12790:                                            ; preds = %12789
  br label %12791

12791:                                            ; preds = %12790
  br label %12792

12792:                                            ; preds = %12791
  %12793 = load i32, ptr @test_count, align 4, !tbaa !5
  %12794 = add nsw i32 %12793, 1
  store i32 %12794, ptr @test_count, align 4, !tbaa !5
  %12795 = call i32 @s2n_config_ktls_enable_unsafe_tls13(ptr noundef null)
  %12796 = icmp eq i32 %12795, -1
  br i1 %12796, label %12850, label %12797

12797:                                            ; preds = %12792
  br label %12798

12798:                                            ; preds = %12797
  br label %12799

12799:                                            ; preds = %12798
  call void @llvm.lifetime.start.p0(i64 4, ptr %320) #11
  %12800 = call ptr @__errno_location() #12
  %12801 = load i32, ptr %12800, align 4, !tbaa !5
  store i32 %12801, ptr %320, align 4, !tbaa !5
  %12802 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12803 = call i32 @s2n_print_stacktrace(ptr noundef %12802)
  %12804 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12805 = trunc i8 %12804 to i1
  br i1 %12805, label %12806, label %12828

12806:                                            ; preds = %12799
  %12807 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12808 = call i32 @fileno(ptr noundef %12807) #11
  %12809 = call i32 @isatty(i32 noundef %12808) #11
  %12810 = icmp ne i32 %12809, 0
  br i1 %12810, label %12811, label %12828

12811:                                            ; preds = %12806
  %12812 = load i32, ptr %320, align 4, !tbaa !5
  %12813 = call ptr @__errno_location() #12
  store i32 %12812, ptr %12813, align 4, !tbaa !5
  %12814 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12815 = load i32, ptr @test_count, align 4, !tbaa !5
  %12816 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12817 = load i32, ptr %12816, align 4, !tbaa !5
  %12818 = call ptr @s2n_strerror(i32 noundef %12817, ptr noundef @.str.4)
  %12819 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12820 = load i32, ptr %12819, align 4, !tbaa !5
  %12821 = call ptr @s2n_strerror_debug(i32 noundef %12820, ptr noundef @.str.4)
  %12822 = call ptr @__errno_location() #12
  %12823 = load i32, ptr %12822, align 4, !tbaa !5
  %12824 = call ptr @strerror(i32 noundef %12823) #11
  %12825 = call ptr @__errno_location() #12
  %12826 = load i32, ptr %12825, align 4, !tbaa !5
  %12827 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12814, ptr noundef @.str.2, i32 noundef %12815, ptr noundef @.str.114, ptr noundef @.str.1, i32 noundef 631, ptr noundef %12818, ptr noundef %12821, ptr noundef %12824, i32 noundef %12826) #11
  br label %12845

12828:                                            ; preds = %12806, %12799
  %12829 = load i32, ptr %320, align 4, !tbaa !5
  %12830 = call ptr @__errno_location() #12
  store i32 %12829, ptr %12830, align 4, !tbaa !5
  %12831 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12832 = load i32, ptr @test_count, align 4, !tbaa !5
  %12833 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12834 = load i32, ptr %12833, align 4, !tbaa !5
  %12835 = call ptr @s2n_strerror(i32 noundef %12834, ptr noundef @.str.4)
  %12836 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12837 = load i32, ptr %12836, align 4, !tbaa !5
  %12838 = call ptr @s2n_strerror_debug(i32 noundef %12837, ptr noundef @.str.4)
  %12839 = call ptr @__errno_location() #12
  %12840 = load i32, ptr %12839, align 4, !tbaa !5
  %12841 = call ptr @strerror(i32 noundef %12840) #11
  %12842 = call ptr @__errno_location() #12
  %12843 = load i32, ptr %12842, align 4, !tbaa !5
  %12844 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12831, ptr noundef @.str.5, i32 noundef %12832, ptr noundef @.str.114, ptr noundef @.str.1, i32 noundef 631, ptr noundef %12835, ptr noundef %12838, ptr noundef %12841, i32 noundef %12843) #11
  br label %12845

12845:                                            ; preds = %12828, %12811
  call void @llvm.lifetime.end.p0(i64 4, ptr %320) #11
  br label %12846

12846:                                            ; preds = %12845
  br label %12847

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

12848:                                            ; No predecessors!
  br label %12849

12849:                                            ; preds = %12848
  br label %12850

12850:                                            ; preds = %12849, %12792
  br label %12851

12851:                                            ; preds = %12850
  br label %12852

12852:                                            ; preds = %12851
  br label %12853

12853:                                            ; preds = %12852
  %12854 = load i32, ptr @test_count, align 4, !tbaa !5
  %12855 = add nsw i32 %12854, 1
  store i32 %12855, ptr @test_count, align 4, !tbaa !5
  %12856 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12857 = load i32, ptr %12856, align 4, !tbaa !5
  %12858 = icmp eq i32 %12857, 402653193
  br i1 %12858, label %12912, label %12859

12859:                                            ; preds = %12853
  br label %12860

12860:                                            ; preds = %12859
  br label %12861

12861:                                            ; preds = %12860
  call void @llvm.lifetime.start.p0(i64 4, ptr %321) #11
  %12862 = call ptr @__errno_location() #12
  %12863 = load i32, ptr %12862, align 4, !tbaa !5
  store i32 %12863, ptr %321, align 4, !tbaa !5
  %12864 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12865 = call i32 @s2n_print_stacktrace(ptr noundef %12864)
  %12866 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12867 = trunc i8 %12866 to i1
  br i1 %12867, label %12868, label %12890

12868:                                            ; preds = %12861
  %12869 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12870 = call i32 @fileno(ptr noundef %12869) #11
  %12871 = call i32 @isatty(i32 noundef %12870) #11
  %12872 = icmp ne i32 %12871, 0
  br i1 %12872, label %12873, label %12890

12873:                                            ; preds = %12868
  %12874 = load i32, ptr %321, align 4, !tbaa !5
  %12875 = call ptr @__errno_location() #12
  store i32 %12874, ptr %12875, align 4, !tbaa !5
  %12876 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12877 = load i32, ptr @test_count, align 4, !tbaa !5
  %12878 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12879 = load i32, ptr %12878, align 4, !tbaa !5
  %12880 = call ptr @s2n_strerror(i32 noundef %12879, ptr noundef @.str.4)
  %12881 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12882 = load i32, ptr %12881, align 4, !tbaa !5
  %12883 = call ptr @s2n_strerror_debug(i32 noundef %12882, ptr noundef @.str.4)
  %12884 = call ptr @__errno_location() #12
  %12885 = load i32, ptr %12884, align 4, !tbaa !5
  %12886 = call ptr @strerror(i32 noundef %12885) #11
  %12887 = call ptr @__errno_location() #12
  %12888 = load i32, ptr %12887, align 4, !tbaa !5
  %12889 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12876, ptr noundef @.str.2, i32 noundef %12877, ptr noundef @.str.115, ptr noundef @.str.1, i32 noundef 631, ptr noundef %12880, ptr noundef %12883, ptr noundef %12886, i32 noundef %12888) #11
  br label %12907

12890:                                            ; preds = %12868, %12861
  %12891 = load i32, ptr %321, align 4, !tbaa !5
  %12892 = call ptr @__errno_location() #12
  store i32 %12891, ptr %12892, align 4, !tbaa !5
  %12893 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12894 = load i32, ptr @test_count, align 4, !tbaa !5
  %12895 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12896 = load i32, ptr %12895, align 4, !tbaa !5
  %12897 = call ptr @s2n_strerror(i32 noundef %12896, ptr noundef @.str.4)
  %12898 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12899 = load i32, ptr %12898, align 4, !tbaa !5
  %12900 = call ptr @s2n_strerror_debug(i32 noundef %12899, ptr noundef @.str.4)
  %12901 = call ptr @__errno_location() #12
  %12902 = load i32, ptr %12901, align 4, !tbaa !5
  %12903 = call ptr @strerror(i32 noundef %12902) #11
  %12904 = call ptr @__errno_location() #12
  %12905 = load i32, ptr %12904, align 4, !tbaa !5
  %12906 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12893, ptr noundef @.str.5, i32 noundef %12894, ptr noundef @.str.115, ptr noundef @.str.1, i32 noundef 631, ptr noundef %12897, ptr noundef %12900, ptr noundef %12903, i32 noundef %12905) #11
  br label %12907

12907:                                            ; preds = %12890, %12873
  call void @llvm.lifetime.end.p0(i64 4, ptr %321) #11
  br label %12908

12908:                                            ; preds = %12907
  br label %12909

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

12910:                                            ; No predecessors!
  br label %12911

12911:                                            ; preds = %12910
  br label %12912

12912:                                            ; preds = %12911, %12853
  br label %12913

12913:                                            ; preds = %12912
  br label %12914

12914:                                            ; preds = %12913
  br label %12915

12915:                                            ; preds = %12914
  %12916 = load i32, ptr @test_count, align 4, !tbaa !5
  %12917 = add nsw i32 %12916, 1
  store i32 %12917, ptr @test_count, align 4, !tbaa !5
  %12918 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12919 = load i32, ptr %12918, align 4, !tbaa !5
  %12920 = call ptr @s2n_strerror_debug(i32 noundef %12919, ptr noundef @.str.4)
  %12921 = icmp eq ptr %12920, null
  br i1 %12921, label %12922, label %12975

12922:                                            ; preds = %12915
  br label %12923

12923:                                            ; preds = %12922
  br label %12924

12924:                                            ; preds = %12923
  call void @llvm.lifetime.start.p0(i64 4, ptr %322) #11
  %12925 = call ptr @__errno_location() #12
  %12926 = load i32, ptr %12925, align 4, !tbaa !5
  store i32 %12926, ptr %322, align 4, !tbaa !5
  %12927 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12928 = call i32 @s2n_print_stacktrace(ptr noundef %12927)
  %12929 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12930 = trunc i8 %12929 to i1
  br i1 %12930, label %12931, label %12953

12931:                                            ; preds = %12924
  %12932 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12933 = call i32 @fileno(ptr noundef %12932) #11
  %12934 = call i32 @isatty(i32 noundef %12933) #11
  %12935 = icmp ne i32 %12934, 0
  br i1 %12935, label %12936, label %12953

12936:                                            ; preds = %12931
  %12937 = load i32, ptr %322, align 4, !tbaa !5
  %12938 = call ptr @__errno_location() #12
  store i32 %12937, ptr %12938, align 4, !tbaa !5
  %12939 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12940 = load i32, ptr @test_count, align 4, !tbaa !5
  %12941 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12942 = load i32, ptr %12941, align 4, !tbaa !5
  %12943 = call ptr @s2n_strerror(i32 noundef %12942, ptr noundef @.str.4)
  %12944 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12945 = load i32, ptr %12944, align 4, !tbaa !5
  %12946 = call ptr @s2n_strerror_debug(i32 noundef %12945, ptr noundef @.str.4)
  %12947 = call ptr @__errno_location() #12
  %12948 = load i32, ptr %12947, align 4, !tbaa !5
  %12949 = call ptr @strerror(i32 noundef %12948) #11
  %12950 = call ptr @__errno_location() #12
  %12951 = load i32, ptr %12950, align 4, !tbaa !5
  %12952 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12939, ptr noundef @.str.2, i32 noundef %12940, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 631, ptr noundef %12943, ptr noundef %12946, ptr noundef %12949, i32 noundef %12951) #11
  br label %12970

12953:                                            ; preds = %12931, %12924
  %12954 = load i32, ptr %322, align 4, !tbaa !5
  %12955 = call ptr @__errno_location() #12
  store i32 %12954, ptr %12955, align 4, !tbaa !5
  %12956 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12957 = load i32, ptr @test_count, align 4, !tbaa !5
  %12958 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12959 = load i32, ptr %12958, align 4, !tbaa !5
  %12960 = call ptr @s2n_strerror(i32 noundef %12959, ptr noundef @.str.4)
  %12961 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12962 = load i32, ptr %12961, align 4, !tbaa !5
  %12963 = call ptr @s2n_strerror_debug(i32 noundef %12962, ptr noundef @.str.4)
  %12964 = call ptr @__errno_location() #12
  %12965 = load i32, ptr %12964, align 4, !tbaa !5
  %12966 = call ptr @strerror(i32 noundef %12965) #11
  %12967 = call ptr @__errno_location() #12
  %12968 = load i32, ptr %12967, align 4, !tbaa !5
  %12969 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12956, ptr noundef @.str.5, i32 noundef %12957, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 631, ptr noundef %12960, ptr noundef %12963, ptr noundef %12966, i32 noundef %12968) #11
  br label %12970

12970:                                            ; preds = %12953, %12936
  call void @llvm.lifetime.end.p0(i64 4, ptr %322) #11
  br label %12971

12971:                                            ; preds = %12970
  br label %12972

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

12973:                                            ; No predecessors!
  br label %12974

12974:                                            ; preds = %12973
  br label %12975

12975:                                            ; preds = %12974, %12915
  br label %12976

12976:                                            ; preds = %12975
  br label %12977

12977:                                            ; preds = %12976
  br label %12978

12978:                                            ; preds = %12977
  br label %12979

12979:                                            ; preds = %12978
  br label %12980

12980:                                            ; preds = %12979
  %12981 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %12981, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %12982 = call ptr @__errno_location() #12
  store i32 0, ptr %12982, align 4, !tbaa !5
  br label %12983

12983:                                            ; preds = %12980
  br label %12984

12984:                                            ; preds = %12983
  br label %12985

12985:                                            ; preds = %12984
  br label %12986

12986:                                            ; preds = %12985
  br label %12987

12987:                                            ; preds = %12986
  %12988 = load i32, ptr @test_count, align 4, !tbaa !5
  %12989 = add nsw i32 %12988, 1
  store i32 %12989, ptr @test_count, align 4, !tbaa !5
  %12990 = load ptr, ptr %317, align 8, !tbaa !9
  %12991 = call i32 @s2n_config_ktls_enable_unsafe_tls13(ptr noundef %12990)
  %12992 = icmp eq i32 %12991, -1
  br i1 %12992, label %12993, label %13046

12993:                                            ; preds = %12987
  br label %12994

12994:                                            ; preds = %12993
  br label %12995

12995:                                            ; preds = %12994
  call void @llvm.lifetime.start.p0(i64 4, ptr %323) #11
  %12996 = call ptr @__errno_location() #12
  %12997 = load i32, ptr %12996, align 4, !tbaa !5
  store i32 %12997, ptr %323, align 4, !tbaa !5
  %12998 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12999 = call i32 @s2n_print_stacktrace(ptr noundef %12998)
  %13000 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13001 = trunc i8 %13000 to i1
  br i1 %13001, label %13002, label %13024

13002:                                            ; preds = %12995
  %13003 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13004 = call i32 @fileno(ptr noundef %13003) #11
  %13005 = call i32 @isatty(i32 noundef %13004) #11
  %13006 = icmp ne i32 %13005, 0
  br i1 %13006, label %13007, label %13024

13007:                                            ; preds = %13002
  %13008 = load i32, ptr %323, align 4, !tbaa !5
  %13009 = call ptr @__errno_location() #12
  store i32 %13008, ptr %13009, align 4, !tbaa !5
  %13010 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13011 = load i32, ptr @test_count, align 4, !tbaa !5
  %13012 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13013 = load i32, ptr %13012, align 4, !tbaa !5
  %13014 = call ptr @s2n_strerror(i32 noundef %13013, ptr noundef @.str.4)
  %13015 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13016 = load i32, ptr %13015, align 4, !tbaa !5
  %13017 = call ptr @s2n_strerror_debug(i32 noundef %13016, ptr noundef @.str.4)
  %13018 = call ptr @__errno_location() #12
  %13019 = load i32, ptr %13018, align 4, !tbaa !5
  %13020 = call ptr @strerror(i32 noundef %13019) #11
  %13021 = call ptr @__errno_location() #12
  %13022 = load i32, ptr %13021, align 4, !tbaa !5
  %13023 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13010, ptr noundef @.str.2, i32 noundef %13011, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 634, ptr noundef %13014, ptr noundef %13017, ptr noundef %13020, i32 noundef %13022) #11
  br label %13041

13024:                                            ; preds = %13002, %12995
  %13025 = load i32, ptr %323, align 4, !tbaa !5
  %13026 = call ptr @__errno_location() #12
  store i32 %13025, ptr %13026, align 4, !tbaa !5
  %13027 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13028 = load i32, ptr @test_count, align 4, !tbaa !5
  %13029 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13030 = load i32, ptr %13029, align 4, !tbaa !5
  %13031 = call ptr @s2n_strerror(i32 noundef %13030, ptr noundef @.str.4)
  %13032 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13033 = load i32, ptr %13032, align 4, !tbaa !5
  %13034 = call ptr @s2n_strerror_debug(i32 noundef %13033, ptr noundef @.str.4)
  %13035 = call ptr @__errno_location() #12
  %13036 = load i32, ptr %13035, align 4, !tbaa !5
  %13037 = call ptr @strerror(i32 noundef %13036) #11
  %13038 = call ptr @__errno_location() #12
  %13039 = load i32, ptr %13038, align 4, !tbaa !5
  %13040 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13027, ptr noundef @.str.5, i32 noundef %13028, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 634, ptr noundef %13031, ptr noundef %13034, ptr noundef %13037, i32 noundef %13039) #11
  br label %13041

13041:                                            ; preds = %13024, %13007
  call void @llvm.lifetime.end.p0(i64 4, ptr %323) #11
  br label %13042

13042:                                            ; preds = %13041
  br label %13043

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

13044:                                            ; No predecessors!
  br label %13045

13045:                                            ; preds = %13044
  br label %13046

13046:                                            ; preds = %13045, %12987
  br label %13047

13047:                                            ; preds = %13046
  br label %13048

13048:                                            ; preds = %13047
  br label %13049

13049:                                            ; preds = %13048
  %13050 = load i32, ptr @test_count, align 4, !tbaa !5
  %13051 = add nsw i32 %13050, 1
  store i32 %13051, ptr @test_count, align 4, !tbaa !5
  %13052 = load ptr, ptr %317, align 8, !tbaa !9
  %13053 = load i32, ptr %13052, align 8
  %13054 = lshr i32 %13053, 17
  %13055 = and i32 %13054, 1
  %13056 = icmp ne i32 %13055, 0
  br i1 %13056, label %13110, label %13057

13057:                                            ; preds = %13049
  br label %13058

13058:                                            ; preds = %13057
  br label %13059

13059:                                            ; preds = %13058
  call void @llvm.lifetime.start.p0(i64 4, ptr %324) #11
  %13060 = call ptr @__errno_location() #12
  %13061 = load i32, ptr %13060, align 4, !tbaa !5
  store i32 %13061, ptr %324, align 4, !tbaa !5
  %13062 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13063 = call i32 @s2n_print_stacktrace(ptr noundef %13062)
  %13064 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13065 = trunc i8 %13064 to i1
  br i1 %13065, label %13066, label %13088

13066:                                            ; preds = %13059
  %13067 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13068 = call i32 @fileno(ptr noundef %13067) #11
  %13069 = call i32 @isatty(i32 noundef %13068) #11
  %13070 = icmp ne i32 %13069, 0
  br i1 %13070, label %13071, label %13088

13071:                                            ; preds = %13066
  %13072 = load i32, ptr %324, align 4, !tbaa !5
  %13073 = call ptr @__errno_location() #12
  store i32 %13072, ptr %13073, align 4, !tbaa !5
  %13074 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13075 = load i32, ptr @test_count, align 4, !tbaa !5
  %13076 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13077 = load i32, ptr %13076, align 4, !tbaa !5
  %13078 = call ptr @s2n_strerror(i32 noundef %13077, ptr noundef @.str.4)
  %13079 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13080 = load i32, ptr %13079, align 4, !tbaa !5
  %13081 = call ptr @s2n_strerror_debug(i32 noundef %13080, ptr noundef @.str.4)
  %13082 = call ptr @__errno_location() #12
  %13083 = load i32, ptr %13082, align 4, !tbaa !5
  %13084 = call ptr @strerror(i32 noundef %13083) #11
  %13085 = call ptr @__errno_location() #12
  %13086 = load i32, ptr %13085, align 4, !tbaa !5
  %13087 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13074, ptr noundef @.str.2, i32 noundef %13075, ptr noundef @.str.116, ptr noundef @.str.1, i32 noundef 635, ptr noundef %13078, ptr noundef %13081, ptr noundef %13084, i32 noundef %13086) #11
  br label %13105

13088:                                            ; preds = %13066, %13059
  %13089 = load i32, ptr %324, align 4, !tbaa !5
  %13090 = call ptr @__errno_location() #12
  store i32 %13089, ptr %13090, align 4, !tbaa !5
  %13091 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13092 = load i32, ptr @test_count, align 4, !tbaa !5
  %13093 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13094 = load i32, ptr %13093, align 4, !tbaa !5
  %13095 = call ptr @s2n_strerror(i32 noundef %13094, ptr noundef @.str.4)
  %13096 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13097 = load i32, ptr %13096, align 4, !tbaa !5
  %13098 = call ptr @s2n_strerror_debug(i32 noundef %13097, ptr noundef @.str.4)
  %13099 = call ptr @__errno_location() #12
  %13100 = load i32, ptr %13099, align 4, !tbaa !5
  %13101 = call ptr @strerror(i32 noundef %13100) #11
  %13102 = call ptr @__errno_location() #12
  %13103 = load i32, ptr %13102, align 4, !tbaa !5
  %13104 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13091, ptr noundef @.str.5, i32 noundef %13092, ptr noundef @.str.116, ptr noundef @.str.1, i32 noundef 635, ptr noundef %13095, ptr noundef %13098, ptr noundef %13101, i32 noundef %13103) #11
  br label %13105

13105:                                            ; preds = %13088, %13071
  call void @llvm.lifetime.end.p0(i64 4, ptr %324) #11
  br label %13106

13106:                                            ; preds = %13105
  br label %13107

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

13108:                                            ; No predecessors!
  br label %13109

13109:                                            ; preds = %13108
  br label %13110

13110:                                            ; preds = %13109, %13049
  br label %13111

13111:                                            ; preds = %13110
  br label %13112

13112:                                            ; preds = %13111
  br label %13113

13113:                                            ; preds = %13112
  %13114 = load i32, ptr @test_count, align 4, !tbaa !5
  %13115 = add nsw i32 %13114, 1
  store i32 %13115, ptr @test_count, align 4, !tbaa !5
  %13116 = load ptr, ptr %317, align 8, !tbaa !9
  %13117 = call i32 @s2n_config_ktls_enable_unsafe_tls13(ptr noundef %13116)
  %13118 = icmp eq i32 %13117, -1
  br i1 %13118, label %13119, label %13172

13119:                                            ; preds = %13113
  br label %13120

13120:                                            ; preds = %13119
  br label %13121

13121:                                            ; preds = %13120
  call void @llvm.lifetime.start.p0(i64 4, ptr %325) #11
  %13122 = call ptr @__errno_location() #12
  %13123 = load i32, ptr %13122, align 4, !tbaa !5
  store i32 %13123, ptr %325, align 4, !tbaa !5
  %13124 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13125 = call i32 @s2n_print_stacktrace(ptr noundef %13124)
  %13126 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13127 = trunc i8 %13126 to i1
  br i1 %13127, label %13128, label %13150

13128:                                            ; preds = %13121
  %13129 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13130 = call i32 @fileno(ptr noundef %13129) #11
  %13131 = call i32 @isatty(i32 noundef %13130) #11
  %13132 = icmp ne i32 %13131, 0
  br i1 %13132, label %13133, label %13150

13133:                                            ; preds = %13128
  %13134 = load i32, ptr %325, align 4, !tbaa !5
  %13135 = call ptr @__errno_location() #12
  store i32 %13134, ptr %13135, align 4, !tbaa !5
  %13136 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13137 = load i32, ptr @test_count, align 4, !tbaa !5
  %13138 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13139 = load i32, ptr %13138, align 4, !tbaa !5
  %13140 = call ptr @s2n_strerror(i32 noundef %13139, ptr noundef @.str.4)
  %13141 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13142 = load i32, ptr %13141, align 4, !tbaa !5
  %13143 = call ptr @s2n_strerror_debug(i32 noundef %13142, ptr noundef @.str.4)
  %13144 = call ptr @__errno_location() #12
  %13145 = load i32, ptr %13144, align 4, !tbaa !5
  %13146 = call ptr @strerror(i32 noundef %13145) #11
  %13147 = call ptr @__errno_location() #12
  %13148 = load i32, ptr %13147, align 4, !tbaa !5
  %13149 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13136, ptr noundef @.str.2, i32 noundef %13137, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 638, ptr noundef %13140, ptr noundef %13143, ptr noundef %13146, i32 noundef %13148) #11
  br label %13167

13150:                                            ; preds = %13128, %13121
  %13151 = load i32, ptr %325, align 4, !tbaa !5
  %13152 = call ptr @__errno_location() #12
  store i32 %13151, ptr %13152, align 4, !tbaa !5
  %13153 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13154 = load i32, ptr @test_count, align 4, !tbaa !5
  %13155 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13156 = load i32, ptr %13155, align 4, !tbaa !5
  %13157 = call ptr @s2n_strerror(i32 noundef %13156, ptr noundef @.str.4)
  %13158 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13159 = load i32, ptr %13158, align 4, !tbaa !5
  %13160 = call ptr @s2n_strerror_debug(i32 noundef %13159, ptr noundef @.str.4)
  %13161 = call ptr @__errno_location() #12
  %13162 = load i32, ptr %13161, align 4, !tbaa !5
  %13163 = call ptr @strerror(i32 noundef %13162) #11
  %13164 = call ptr @__errno_location() #12
  %13165 = load i32, ptr %13164, align 4, !tbaa !5
  %13166 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13153, ptr noundef @.str.5, i32 noundef %13154, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 638, ptr noundef %13157, ptr noundef %13160, ptr noundef %13163, i32 noundef %13165) #11
  br label %13167

13167:                                            ; preds = %13150, %13133
  call void @llvm.lifetime.end.p0(i64 4, ptr %325) #11
  br label %13168

13168:                                            ; preds = %13167
  br label %13169

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

13170:                                            ; No predecessors!
  br label %13171

13171:                                            ; preds = %13170
  br label %13172

13172:                                            ; preds = %13171, %13113
  br label %13173

13173:                                            ; preds = %13172
  br label %13174

13174:                                            ; preds = %13173
  br label %13175

13175:                                            ; preds = %13174
  %13176 = load i32, ptr @test_count, align 4, !tbaa !5
  %13177 = add nsw i32 %13176, 1
  store i32 %13177, ptr @test_count, align 4, !tbaa !5
  %13178 = load ptr, ptr %317, align 8, !tbaa !9
  %13179 = load i32, ptr %13178, align 8
  %13180 = lshr i32 %13179, 17
  %13181 = and i32 %13180, 1
  %13182 = icmp ne i32 %13181, 0
  br i1 %13182, label %13236, label %13183

13183:                                            ; preds = %13175
  br label %13184

13184:                                            ; preds = %13183
  br label %13185

13185:                                            ; preds = %13184
  call void @llvm.lifetime.start.p0(i64 4, ptr %326) #11
  %13186 = call ptr @__errno_location() #12
  %13187 = load i32, ptr %13186, align 4, !tbaa !5
  store i32 %13187, ptr %326, align 4, !tbaa !5
  %13188 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13189 = call i32 @s2n_print_stacktrace(ptr noundef %13188)
  %13190 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13191 = trunc i8 %13190 to i1
  br i1 %13191, label %13192, label %13214

13192:                                            ; preds = %13185
  %13193 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13194 = call i32 @fileno(ptr noundef %13193) #11
  %13195 = call i32 @isatty(i32 noundef %13194) #11
  %13196 = icmp ne i32 %13195, 0
  br i1 %13196, label %13197, label %13214

13197:                                            ; preds = %13192
  %13198 = load i32, ptr %326, align 4, !tbaa !5
  %13199 = call ptr @__errno_location() #12
  store i32 %13198, ptr %13199, align 4, !tbaa !5
  %13200 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13201 = load i32, ptr @test_count, align 4, !tbaa !5
  %13202 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13203 = load i32, ptr %13202, align 4, !tbaa !5
  %13204 = call ptr @s2n_strerror(i32 noundef %13203, ptr noundef @.str.4)
  %13205 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13206 = load i32, ptr %13205, align 4, !tbaa !5
  %13207 = call ptr @s2n_strerror_debug(i32 noundef %13206, ptr noundef @.str.4)
  %13208 = call ptr @__errno_location() #12
  %13209 = load i32, ptr %13208, align 4, !tbaa !5
  %13210 = call ptr @strerror(i32 noundef %13209) #11
  %13211 = call ptr @__errno_location() #12
  %13212 = load i32, ptr %13211, align 4, !tbaa !5
  %13213 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13200, ptr noundef @.str.2, i32 noundef %13201, ptr noundef @.str.116, ptr noundef @.str.1, i32 noundef 639, ptr noundef %13204, ptr noundef %13207, ptr noundef %13210, i32 noundef %13212) #11
  br label %13231

13214:                                            ; preds = %13192, %13185
  %13215 = load i32, ptr %326, align 4, !tbaa !5
  %13216 = call ptr @__errno_location() #12
  store i32 %13215, ptr %13216, align 4, !tbaa !5
  %13217 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13218 = load i32, ptr @test_count, align 4, !tbaa !5
  %13219 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13220 = load i32, ptr %13219, align 4, !tbaa !5
  %13221 = call ptr @s2n_strerror(i32 noundef %13220, ptr noundef @.str.4)
  %13222 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13223 = load i32, ptr %13222, align 4, !tbaa !5
  %13224 = call ptr @s2n_strerror_debug(i32 noundef %13223, ptr noundef @.str.4)
  %13225 = call ptr @__errno_location() #12
  %13226 = load i32, ptr %13225, align 4, !tbaa !5
  %13227 = call ptr @strerror(i32 noundef %13226) #11
  %13228 = call ptr @__errno_location() #12
  %13229 = load i32, ptr %13228, align 4, !tbaa !5
  %13230 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13217, ptr noundef @.str.5, i32 noundef %13218, ptr noundef @.str.116, ptr noundef @.str.1, i32 noundef 639, ptr noundef %13221, ptr noundef %13224, ptr noundef %13227, i32 noundef %13229) #11
  br label %13231

13231:                                            ; preds = %13214, %13197
  call void @llvm.lifetime.end.p0(i64 4, ptr %326) #11
  br label %13232

13232:                                            ; preds = %13231
  br label %13233

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

13234:                                            ; No predecessors!
  br label %13235

13235:                                            ; preds = %13234
  br label %13236

13236:                                            ; preds = %13235, %13175
  br label %13237

13237:                                            ; preds = %13236
  br label %13238

13238:                                            ; preds = %13237
  %13239 = call i32 @s2n_config_ptr_free(ptr noundef %317)
  %13240 = getelementptr inbounds %struct.s2n_result, ptr %327, i32 0, i32 0
  store i32 %13239, ptr %13240, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %317) #11
  br label %13241

13241:                                            ; preds = %13238
  br label %13242

13242:                                            ; preds = %13241
  %13243 = call i32 @s2n_cleanup()
  %13244 = icmp eq i32 %13243, -1
  br i1 %13244, label %13245, label %13296

13245:                                            ; preds = %13242
  br label %13246

13246:                                            ; preds = %13245
  br label %13247

13247:                                            ; preds = %13246
  call void @llvm.lifetime.start.p0(i64 4, ptr %328) #11
  %13248 = call ptr @__errno_location() #12
  %13249 = load i32, ptr %13248, align 4, !tbaa !5
  store i32 %13249, ptr %328, align 4, !tbaa !5
  %13250 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13251 = call i32 @s2n_print_stacktrace(ptr noundef %13250)
  %13252 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13253 = trunc i8 %13252 to i1
  br i1 %13253, label %13254, label %13276

13254:                                            ; preds = %13247
  %13255 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13256 = call i32 @fileno(ptr noundef %13255) #11
  %13257 = call i32 @isatty(i32 noundef %13256) #11
  %13258 = icmp ne i32 %13257, 0
  br i1 %13258, label %13259, label %13276

13259:                                            ; preds = %13254
  %13260 = load i32, ptr %328, align 4, !tbaa !5
  %13261 = call ptr @__errno_location() #12
  store i32 %13260, ptr %13261, align 4, !tbaa !5
  %13262 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13263 = load i32, ptr @test_count, align 4, !tbaa !5
  %13264 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13265 = load i32, ptr %13264, align 4, !tbaa !5
  %13266 = call ptr @s2n_strerror(i32 noundef %13265, ptr noundef @.str.4)
  %13267 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13268 = load i32, ptr %13267, align 4, !tbaa !5
  %13269 = call ptr @s2n_strerror_debug(i32 noundef %13268, ptr noundef @.str.4)
  %13270 = call ptr @__errno_location() #12
  %13271 = load i32, ptr %13270, align 4, !tbaa !5
  %13272 = call ptr @strerror(i32 noundef %13271) #11
  %13273 = call ptr @__errno_location() #12
  %13274 = load i32, ptr %13273, align 4, !tbaa !5
  %13275 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13262, ptr noundef @.str.2, i32 noundef %13263, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 642, ptr noundef %13266, ptr noundef %13269, ptr noundef %13272, i32 noundef %13274) #11
  br label %13293

13276:                                            ; preds = %13254, %13247
  %13277 = load i32, ptr %328, align 4, !tbaa !5
  %13278 = call ptr @__errno_location() #12
  store i32 %13277, ptr %13278, align 4, !tbaa !5
  %13279 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13280 = load i32, ptr @test_count, align 4, !tbaa !5
  %13281 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13282 = load i32, ptr %13281, align 4, !tbaa !5
  %13283 = call ptr @s2n_strerror(i32 noundef %13282, ptr noundef @.str.4)
  %13284 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13285 = load i32, ptr %13284, align 4, !tbaa !5
  %13286 = call ptr @s2n_strerror_debug(i32 noundef %13285, ptr noundef @.str.4)
  %13287 = call ptr @__errno_location() #12
  %13288 = load i32, ptr %13287, align 4, !tbaa !5
  %13289 = call ptr @strerror(i32 noundef %13288) #11
  %13290 = call ptr @__errno_location() #12
  %13291 = load i32, ptr %13290, align 4, !tbaa !5
  %13292 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13279, ptr noundef @.str.5, i32 noundef %13280, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 642, ptr noundef %13283, ptr noundef %13286, ptr noundef %13289, i32 noundef %13291) #11
  br label %13293

13293:                                            ; preds = %13276, %13259
  call void @llvm.lifetime.end.p0(i64 4, ptr %328) #11
  br label %13294

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

13295:                                            ; No predecessors!
  br label %13296

13296:                                            ; preds = %13295, %13242
  br label %13297

13297:                                            ; preds = %13296
  br label %13298

13298:                                            ; preds = %13297
  br label %13299

13299:                                            ; preds = %13298
  %13300 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %13301 = icmp eq i32 %13300, -1
  br i1 %13301, label %13302, label %13353

13302:                                            ; preds = %13299
  br label %13303

13303:                                            ; preds = %13302
  br label %13304

13304:                                            ; preds = %13303
  call void @llvm.lifetime.start.p0(i64 4, ptr %329) #11
  %13305 = call ptr @__errno_location() #12
  %13306 = load i32, ptr %13305, align 4, !tbaa !5
  store i32 %13306, ptr %329, align 4, !tbaa !5
  %13307 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13308 = call i32 @s2n_print_stacktrace(ptr noundef %13307)
  %13309 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13310 = trunc i8 %13309 to i1
  br i1 %13310, label %13311, label %13333

13311:                                            ; preds = %13304
  %13312 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13313 = call i32 @fileno(ptr noundef %13312) #11
  %13314 = call i32 @isatty(i32 noundef %13313) #11
  %13315 = icmp ne i32 %13314, 0
  br i1 %13315, label %13316, label %13333

13316:                                            ; preds = %13311
  %13317 = load i32, ptr %329, align 4, !tbaa !5
  %13318 = call ptr @__errno_location() #12
  store i32 %13317, ptr %13318, align 4, !tbaa !5
  %13319 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13320 = load i32, ptr @test_count, align 4, !tbaa !5
  %13321 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13322 = load i32, ptr %13321, align 4, !tbaa !5
  %13323 = call ptr @s2n_strerror(i32 noundef %13322, ptr noundef @.str.4)
  %13324 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13325 = load i32, ptr %13324, align 4, !tbaa !5
  %13326 = call ptr @s2n_strerror_debug(i32 noundef %13325, ptr noundef @.str.4)
  %13327 = call ptr @__errno_location() #12
  %13328 = load i32, ptr %13327, align 4, !tbaa !5
  %13329 = call ptr @strerror(i32 noundef %13328) #11
  %13330 = call ptr @__errno_location() #12
  %13331 = load i32, ptr %13330, align 4, !tbaa !5
  %13332 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13319, ptr noundef @.str.2, i32 noundef %13320, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 642, ptr noundef %13323, ptr noundef %13326, ptr noundef %13329, i32 noundef %13331) #11
  br label %13350

13333:                                            ; preds = %13311, %13304
  %13334 = load i32, ptr %329, align 4, !tbaa !5
  %13335 = call ptr @__errno_location() #12
  store i32 %13334, ptr %13335, align 4, !tbaa !5
  %13336 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13337 = load i32, ptr @test_count, align 4, !tbaa !5
  %13338 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13339 = load i32, ptr %13338, align 4, !tbaa !5
  %13340 = call ptr @s2n_strerror(i32 noundef %13339, ptr noundef @.str.4)
  %13341 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13342 = load i32, ptr %13341, align 4, !tbaa !5
  %13343 = call ptr @s2n_strerror_debug(i32 noundef %13342, ptr noundef @.str.4)
  %13344 = call ptr @__errno_location() #12
  %13345 = load i32, ptr %13344, align 4, !tbaa !5
  %13346 = call ptr @strerror(i32 noundef %13345) #11
  %13347 = call ptr @__errno_location() #12
  %13348 = load i32, ptr %13347, align 4, !tbaa !5
  %13349 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13336, ptr noundef @.str.5, i32 noundef %13337, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 642, ptr noundef %13340, ptr noundef %13343, ptr noundef %13346, i32 noundef %13348) #11
  br label %13350

13350:                                            ; preds = %13333, %13316
  call void @llvm.lifetime.end.p0(i64 4, ptr %329) #11
  br label %13351

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

13352:                                            ; No predecessors!
  br label %13353

13353:                                            ; preds = %13352, %13299
  br label %13354

13354:                                            ; preds = %13353
  %13355 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13356 = trunc i8 %13355 to i1
  br i1 %13356, label %13357, label %13373

13357:                                            ; preds = %13354
  %13358 = load ptr, ptr @stdout, align 8, !tbaa !9
  %13359 = call i32 @fileno(ptr noundef %13358) #11
  %13360 = call i32 @isatty(i32 noundef %13359) #11
  %13361 = icmp ne i32 %13360, 0
  br i1 %13361, label %13362, label %13373

13362:                                            ; preds = %13357
  %13363 = load i32, ptr @test_count, align 4, !tbaa !5
  %13364 = icmp ne i32 %13363, 0
  br i1 %13364, label %13365, label %13369

13365:                                            ; preds = %13362
  %13366 = load ptr, ptr @stdout, align 8, !tbaa !9
  %13367 = load i32, ptr @test_count, align 4, !tbaa !5
  %13368 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13366, ptr noundef @.str.15, i32 noundef %13367) #11
  br label %13372

13369:                                            ; preds = %13362
  %13370 = load ptr, ptr @stdout, align 8, !tbaa !9
  %13371 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13370, ptr noundef @.str.16) #11
  br label %13372

13372:                                            ; preds = %13369, %13365
  br label %13384

13373:                                            ; preds = %13357, %13354
  %13374 = load i32, ptr @test_count, align 4, !tbaa !5
  %13375 = icmp ne i32 %13374, 0
  br i1 %13375, label %13376, label %13380

13376:                                            ; preds = %13373
  %13377 = load ptr, ptr @stdout, align 8, !tbaa !9
  %13378 = load i32, ptr @test_count, align 4, !tbaa !5
  %13379 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13377, ptr noundef @.str.17, i32 noundef %13378) #11
  br label %13383

13380:                                            ; preds = %13373
  %13381 = load ptr, ptr @stdout, align 8, !tbaa !9
  %13382 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13381, ptr noundef @.str.18) #11
  br label %13383

13383:                                            ; preds = %13380, %13376
  br label %13384

13384:                                            ; preds = %13383, %13372
  store i32 0, ptr %3, align 4
  br label %13386

13385:                                            ; No predecessors!
  br label %13386

13386:                                            ; preds = %13385, %13384, %1126
  %13387 = load i32, ptr %3, align 4
  ret i32 %13387

13388:                                            ; preds = %1126
  unreachable
}

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

declare i32 @fflush(ptr noundef) #2

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) #2

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

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

declare i32 @s2n_print_stacktrace(ptr noundef) #2

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

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

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

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

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

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

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

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

declare i32 @s2n_enable_atexit() #2

declare i32 @s2n_init() #2

declare zeroext i1 @s2n_ktls_is_supported_on_platform(...) #2

declare ptr @s2n_connection_new(i32 noundef) #2

declare i32 @s2n_connection_ptr_free(ptr noundef) #2

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

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

declare i32 @s2n_connection_ktls_enable_send(ptr noundef) #2

declare void @s2n_debug_info_reset() #2

declare i32 @s2n_connection_ktls_enable_recv(ptr noundef) #2

declare i32 @s2n_cleanup() #2

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

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

declare i32 @s2n_get_public_random_data(ptr noundef) #2

declare i32 @s2n_free(ptr noundef) #2

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

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

; Function Attrs: nounwind willreturn memory(read)
declare i32 @memcmp(ptr noundef, ptr noundef, i64 noundef) #10

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

declare i32 @s2n_ktls_set_setsockopt_cb(ptr noundef) #2

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

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

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

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

declare ptr @s2n_config_new() #2

declare i32 @s2n_config_ptr_free(ptr noundef) #2

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

declare i32 @s2n_config_ktls_enable_unsafe_tls13(ptr noundef) #2

declare i32 @s2n_stuffer_write_uint8(ptr noundef, i8 noundef zeroext) #2

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

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

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

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

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

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

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

declare i32 @s2n_crypto_parameters_free(ptr noundef) #2

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

declare i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef) #2

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

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

declare i32 @s2n_config_disable_x509_verification(ptr noundef) #2

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

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

declare i32 @s2n_io_pair_close(ptr noundef) #2

declare i32 @s2n_io_pair_init_non_blocking(ptr noundef) #2

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

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

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

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

attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #4 = { nounwind willreturn memory(none) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #6 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { 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 #8 = { nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #9 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #10 = { nounwind willreturn memory(read) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #11 = { nounwind }
attributes #12 = { nounwind willreturn memory(none) }
attributes #13 = { noreturn nounwind }
attributes #14 = { nounwind willreturn memory(read) }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"_Bool", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = !{!16, !7, i64 48}
!16 = !{!"s2n_cipher", !6, i64 0, !7, i64 8, !7, i64 48, !10, i64 56, !10, i64 64, !10, i64 72, !10, i64 80, !10, i64 88, !10, i64 96}
!17 = !{i64 0, i64 8, !9, i64 8, i64 4, !5, i64 12, i64 4, !5, i64 16, i64 1, !18}
!18 = !{!7, !7, i64 0}
!19 = !{!16, !10, i64 96}
!20 = !{!21, !6, i64 8}
!21 = !{!"s2n_ktls_crypto_info", !22, i64 0, !7, i64 24}
!22 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!23 = !{!21, !10, i64 0}
!24 = !{!22, !6, i64 8}
!25 = !{!22, !10, i64 0}
!26 = !{!27, !6, i64 2176}
!27 = !{!"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, !28, i64 160, !29, i64 168, !29, 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, !30, i64 240, !10, i64 632, !10, i64 640, !31, i64 648, !36, i64 1144, !39, i64 1688, !10, i64 1752, !7, i64 1760, !6, i64 1764, !7, i64 1768, !42, i64 1776, !42, i64 1816, !42, i64 1856, !42, i64 1896, !6, i64 1936, !29, i64 1944, !7, i64 1952, !42, i64 1960, !7, i64 2000, !7, i64 2001, !7, i64 2002, !12, i64 2003, !43, i64 2004, !43, i64 2008, !44, i64 2016, !41, i64 2208, !6, i64 2212, !41, i64 2216, !29, i64 2224, !7, i64 2232, !29, i64 2240, !29, i64 2248, !29, i64 2256, !43, i64 2264, !43, i64 2268, !7, i64 2272, !7, i64 2528, !6, i64 2784, !22, i64 2792, !6, i64 2816, !22, i64 2824, !22, i64 2848, !22, i64 2872, !46, i64 2896, !48, i64 3704, !10, i64 3760, !10, i64 3768, !7, i64 3776, !6, i64 3780, !22, i64 3784, !6, i64 3808, !50, i64 3816, !7, i64 3848, !42, i64 3992, !22, i64 4032, !22, i64 4056, !12, i64 4080, !12, i64 4081, !12, i64 4082, !41, i64 4084, !41, i64 4086, !6, i64 4088, !6, i64 4092, !22, i64 4096, !6, i64 4120, !51, i64 4128, !43, i64 4176, !7, i64 4180, !7, i64 4181}
!28 = !{!"s2n_timer", !29, i64 0}
!29 = !{!"long", !7, i64 0}
!30 = !{!"s2n_secrets", !7, i64 0, !6, i64 388}
!31 = !{!"s2n_kex_parameters", !32, i64 0, !33, i64 8, !7, i64 24, !33, i64 56, !34, i64 72, !34, i64 184, !7, i64 296, !35, i64 360, !22, i64 448, !22, i64 472}
!32 = !{!"s2n_dh_params", !10, i64 0}
!33 = !{!"s2n_ecc_evp_params", !10, i64 0, !10, i64 8}
!34 = !{!"s2n_kem_group_params", !10, i64 0, !35, i64 8, !33, i64 96}
!35 = !{!"s2n_kem_params", !10, i64 0, !22, i64 8, !22, i64 32, !22, i64 56, !12, i64 80}
!36 = !{!"s2n_handshake_parameters", !37, i64 0, !37, i64 48, !22, i64 96, !6, i64 120, !38, 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}
!37 = !{!"s2n_pkey", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40}
!38 = !{!"s2n_sig_scheme_list", !7, i64 0, !7, i64 256}
!39 = !{!"s2n_psk_parameters", !6, i64 0, !40, i64 8, !41, i64 40, !41, i64 42, !10, i64 48, !6, i64 56}
!40 = !{!"s2n_array", !22, i64 0, !6, i64 24, !6, i64 28}
!41 = !{!"short", !7, i64 0}
!42 = !{!"s2n_stuffer", !22, i64 0, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 36, !6, i64 36}
!43 = !{!"", !6, i64 0}
!44 = !{!"s2n_handshake", !42, 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, !45, i64 176, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 188}
!45 = !{!"s2n_offered_early_data", !10, i64 0}
!46 = !{!"s2n_client_hello", !22, i64 0, !47, i64 24, !22, i64 728, !22, i64 752, !22, 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}
!47 = !{!"", !7, i64 0, !22, i64 672, !41, i64 696}
!48 = !{!"s2n_x509_validator", !10, i64 0, !10, i64 8, !7, i64 16, !7, i64 17, !41, i64 18, !10, i64 24, !6, i64 32, !10, i64 40, !49, i64 48, !12, i64 52}
!49 = !{!"s2n_cert_validation_info", !6, i64 0, !6, i64 0}
!50 = !{!"s2n_ticket_fields", !22, i64 0, !6, i64 24}
!51 = !{!"s2n_post_handshake", !42, i64 0, !7, i64 40}
!52 = !{!27, !7, i64 220}
!53 = !{!27, !10, i64 232}
!54 = !{!55, !10, i64 0}
!55 = !{!"s2n_crypto_parameters", !10, i64 0, !56, i64 8, !56, i64 16, !57, i64 24, !57, i64 456, !7, i64 888, !7, i64 904, !7, i64 920, !7, i64 928}
!56 = !{!"s2n_session_key", !10, i64 0}
!57 = !{!"s2n_hmac_state", !6, i64 0, !41, i64 4, !6, i64 8, !41, i64 12, !7, i64 14, !58, i64 16, !58, i64 72, !58, i64 128, !58, i64 184, !7, i64 240, !7, i64 368}
!58 = !{!"s2n_hash_state", !10, i64 0, !6, i64 8, !7, i64 12, !29, i64 16, !7, i64 24}
!59 = !{!60, !10, i64 0}
!60 = !{!"s2n_record_algorithm", !10, i64 0, !6, i64 8, !6, i64 12, !29, i64 16}
!61 = !{!60, !6, i64 8}
!62 = !{!60, !6, i64 12}
!63 = !{!60, !29, i64 16}
!64 = !{!65, !10, i64 48}
!65 = !{!"s2n_cipher_suite", !6, i64 0, !10, i64 8, !10, i64 16, !7, i64 24, !10, i64 32, !6, i64 40, !10, i64 48, !7, i64 56, !7, i64 72, !10, i64 80, !10, i64 88, !6, i64 96, !7, i64 100}
!66 = !{!27, !6, i64 1804}
!67 = !{!27, !6, i64 1800}
!68 = !{!27, !6, i64 1884}
!69 = !{!27, !6, i64 1880}
!70 = !{!71, !6, i64 440}
!71 = !{!"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, !72, i64 24, !22, 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, !29, i64 144, !10, i64 152, !29, i64 160, !29, 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, !73, i64 304, !41, 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, !22, i64 448}
!72 = !{!"certs_by_type", !7, i64 0}
!73 = !{!"s2n_x509_trust_store", !10, i64 0, !6, i64 8}
!74 = !{i64 0, i64 1, !18, i64 8, i64 8, !9, i64 16, i64 8, !9, i64 24, i64 2, !18, i64 32, i64 8, !9, i64 40, i64 4, !5, i64 48, i64 8, !9, i64 56, i64 16, !18, i64 72, i64 1, !18, i64 80, i64 8, !9, i64 88, i64 8, !9, i64 96, i64 4, !5, i64 100, i64 1, !18}
!75 = !{i64 0, i64 8, !9, i64 8, i64 4, !5, i64 12, i64 4, !5, i64 16, i64 8, !76}
!76 = !{!29, !29, i64 0}
!77 = !{i64 0, i64 4, !5, i64 8, i64 40, !18, i64 48, i64 1, !18, i64 56, i64 8, !9, i64 64, i64 8, !9, i64 72, i64 8, !9, i64 80, i64 8, !9, i64 88, i64 8, !9, i64 96, i64 8, !9}
!78 = !{!79, !29, i64 0}
!79 = !{!"s2n_test_setsockopt_expected_struct", !29, i64 0, !6, i64 8, !6, i64 12, !80, i64 16}
!80 = !{!"s2n_ktls_crypto_info_inputs", !22, i64 0, !22, i64 24, !22, i64 48}
!81 = !{!79, !6, i64 8}
!82 = !{!79, !6, i64 12}
!83 = !{i64 0, i64 8, !76, i64 8, i64 4, !5, i64 12, i64 4, !5, i64 16, i64 8, !9, i64 24, i64 4, !5, i64 28, i64 4, !5, i64 32, i64 1, !18, i64 40, i64 8, !9, i64 48, i64 4, !5, i64 52, i64 4, !5, i64 56, i64 1, !18, i64 64, i64 8, !9, i64 72, i64 4, !5, i64 76, i64 4, !5, i64 80, i64 1, !18}
!84 = !{!27, !10, i64 48}
!85 = !{!27, !10, i64 56}


; 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_cipher = type { i32, %union.anon.0, i8, ptr, ptr, ptr, ptr, ptr, ptr }
%union.anon.0 = type { %struct.s2n_composite_cipher }
%struct.s2n_composite_cipher = type { i8, i8, i8, ptr, ptr, ptr, ptr }
%struct.s2n_cipher_suite = type { i8, ptr, ptr, [2 x i8], ptr, i32, ptr, [2 x ptr], i8, ptr, ptr, i32, i8 }
%struct.s2n_test_setsockopt_expected_struct = type { i64, i32, i32, %struct.s2n_ktls_crypto_info_inputs }
%struct.s2n_ktls_crypto_info_inputs = type { %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_blob }
%struct.s2n_blob = type { ptr, i32, i32, i8 }
%struct.s2n_crypto_parameters = type { ptr, %struct.s2n_session_key, %struct.s2n_session_key, %struct.s2n_hmac_state, %struct.s2n_hmac_state, [16 x i8], [16 x i8], [8 x i8], [8 x i8] }
%struct.s2n_session_key = type { ptr }
%struct.s2n_hmac_state = type { i32, i16, i32, i16, i8, %struct.s2n_hash_state, %struct.s2n_hash_state, %struct.s2n_hash_state, %struct.s2n_hash_state, [128 x i8], [64 x i8] }
%struct.s2n_hash_state = type { ptr, i32, i8, i64, %union.anon }
%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_ktls_crypto_info = type { %struct.s2n_blob, %union.anon.1 }
%union.anon.1 = type { %struct.s2n_ktls_crypto_info_stub }
%struct.s2n_ktls_crypto_info_stub = type { %struct.anon, [1 x i8], [1 x i8], [1 x i8], [1 x i8] }
%struct.anon = type { i8, i8 }
%struct.s2n_record_algorithm = type { ptr, i32, i32, i64 }
%struct.s2n_key_material = type { [160 x i8], %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_blob }
%struct.s2n_test_io_pair = type { i32, i32 }

@s2n_use_color_in_output = external dso_local local_unnamed_addr global i8, align 1
@test_count = external dso_local local_unnamed_addr global i32, align 4
@stdout = external local_unnamed_addr global ptr, align 8
@.str = external hidden unnamed_addr constant [19 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [72 x i8], align 1
@stderr = external local_unnamed_addr global ptr, align 8
@.str.2 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [52 x i8], align 1
@s2n_errno = external thread_local local_unnamed_addr global i32, align 4
@.str.4 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [128 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [137 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [69 x i8], align 1
@s2n_aes128_gcm = external constant %struct.s2n_cipher, align 8
@.str.23 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [82 x i8], align 1
@s2n_aes256_gcm = external local_unnamed_addr constant %struct.s2n_cipher, align 8
@.str.36 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [76 x i8], align 1
@s2n_tls13_aes_128_gcm_sha256 = external global %struct.s2n_cipher_suite, align 8
@.str.54 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [68 x i8], align 1
@s2n_rsa_with_aes_256_gcm_sha384 = external local_unnamed_addr global %struct.s2n_cipher_suite, align 8
@.str.80 = external hidden unnamed_addr constant [130 x i8], align 1
@.str.81 = external hidden unnamed_addr constant [130 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [139 x i8], align 1
@.str.85 = external hidden unnamed_addr constant [139 x i8], align 1
@.str.86 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.88 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.89 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [84 x i8], align 1
@s2n_test_setsockopt_expected = external dso_local local_unnamed_addr global %struct.s2n_test_setsockopt_expected_struct, align 8
@.str.91 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.92 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.93 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.94 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.95 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.96 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.97 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.98 = external hidden unnamed_addr constant [200 x i8], align 1
@.str.99 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.100 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.101 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.102 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.103 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.104 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.105 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.106 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.107 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.108 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.109 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.110 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.111 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.112 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.113 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.114 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.115 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.116 = external hidden unnamed_addr constant [40 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local noundef i32 @main(i32 noundef %0, ptr nocapture noundef readnone %1) local_unnamed_addr #0 {
  %3 = alloca ptr, align 8
  %4 = alloca %struct.s2n_crypto_parameters, align 8
  %5 = alloca %struct.s2n_blob, align 8
  %6 = alloca %struct.s2n_blob, align 8
  %7 = alloca %struct.s2n_blob, align 8
  %8 = alloca %struct.s2n_ktls_crypto_info_inputs, align 8
  %9 = alloca %struct.s2n_ktls_crypto_info, align 8
  %10 = alloca %struct.s2n_blob, align 8
  %11 = alloca %struct.s2n_ktls_crypto_info_inputs, align 8
  %12 = alloca %struct.s2n_ktls_crypto_info, align 8
  %13 = alloca ptr, align 8
  %14 = alloca ptr, align 8
  %15 = alloca ptr, align 8
  %16 = alloca ptr, align 8
  %17 = alloca ptr, align 8
  %18 = alloca ptr, align 8
  %19 = alloca ptr, align 8
  %20 = alloca ptr, align 8
  %21 = alloca ptr, align 8
  %22 = alloca %struct.s2n_cipher, align 8
  %23 = alloca %struct.s2n_record_algorithm, align 8
  %24 = alloca %struct.s2n_cipher_suite, align 8
  %25 = alloca ptr, align 8
  %26 = alloca ptr, align 8
  %27 = alloca i8, align 1
  %28 = alloca ptr, align 8
  %29 = alloca ptr, align 8
  %30 = alloca ptr, align 8
  %31 = alloca ptr, align 8
  %32 = alloca ptr, align 8
  %33 = alloca ptr, align 8
  %34 = alloca ptr, align 8
  %35 = alloca ptr, align 8
  %36 = alloca %struct.s2n_cipher_suite, align 8
  %37 = alloca %struct.s2n_record_algorithm, align 8
  %38 = alloca %struct.s2n_cipher, align 8
  %39 = alloca %struct.s2n_crypto_parameters, align 8
  %40 = alloca %struct.s2n_blob, align 8
  %41 = alloca %struct.s2n_blob, align 8
  %42 = alloca %struct.s2n_blob, align 8
  %43 = alloca %struct.s2n_blob, align 8
  %44 = alloca ptr, align 8
  %45 = alloca %struct.s2n_key_material, align 8
  %46 = alloca ptr, align 8
  %47 = alloca %struct.s2n_key_material, align 8
  %48 = alloca ptr, align 8
  %49 = alloca ptr, align 8
  %50 = alloca ptr, align 8
  %51 = alloca ptr, align 8
  %52 = alloca %struct.s2n_test_io_pair, align 8
  %53 = alloca ptr, align 8
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %54 = load ptr, ptr @stdout, align 8, !tbaa !9
  %55 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %54, ptr noundef nonnull @.str, ptr noundef nonnull @.str.1) #11
  %56 = load ptr, ptr @stdout, align 8, !tbaa !9
  %57 = tail call i32 @fflush(ptr noundef %56)
  %58 = tail call i32 @s2n_in_unit_test_set(i1 noundef zeroext true) #11
  %59 = icmp eq i32 %58, -1
  br i1 %59, label %60, label %84

60:                                               ; preds = %2
  %61 = tail call ptr @__errno_location() #12
  %62 = load i32, ptr %61, align 4, !tbaa !5
  %63 = load ptr, ptr @stderr, align 8, !tbaa !9
  %64 = tail call i32 @s2n_print_stacktrace(ptr noundef %63) #11
  %65 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %66 = trunc nuw i8 %65 to i1
  br i1 %66, label %67, label %71

67:                                               ; preds = %60
  %68 = load ptr, ptr @stderr, align 8, !tbaa !9
  %69 = tail call i32 @fileno(ptr noundef %68) #11
  %70 = tail call i32 @isatty(i32 noundef %69) #11
  %.not729 = icmp eq i32 %70, 0
  br i1 %.not729, label %71, label %72

71:                                               ; preds = %67, %60
  br label %72

72:                                               ; preds = %67, %71
  %.str.5.sink = phi ptr [ @.str.5, %71 ], [ @.str.2, %67 ]
  store i32 %62, ptr %61, align 4, !tbaa !5
  %73 = load ptr, ptr @stderr, align 8, !tbaa !9
  %74 = load i32, ptr @test_count, align 4, !tbaa !5
  %75 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %76 = load i32, ptr %75, align 4, !tbaa !5
  %77 = tail call ptr @s2n_strerror(i32 noundef %76, ptr noundef nonnull @.str.4) #11
  %78 = load i32, ptr %75, align 4, !tbaa !5
  %79 = tail call ptr @s2n_strerror_debug(i32 noundef %78, ptr noundef nonnull @.str.4) #11
  %80 = load i32, ptr %61, align 4, !tbaa !5
  %81 = tail call ptr @strerror(i32 noundef %80) #11
  %82 = load i32, ptr %61, align 4, !tbaa !5
  %83 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %73, ptr noundef nonnull %.str.5.sink, i32 noundef %74, ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.1, i32 noundef 143, ptr noundef %77, ptr noundef %79, ptr noundef %81, i32 noundef %82) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

84:                                               ; preds = %2
  %85 = load i32, ptr @test_count, align 4, !tbaa !5
  %86 = add nsw i32 %85, 1
  store i32 %86, ptr @test_count, align 4, !tbaa !5
  %87 = tail call i32 @s2n_enable_atexit() #11
  %88 = icmp eq i32 %87, -1
  br i1 %88, label %89, label %113

89:                                               ; preds = %84
  %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
  %.not728 = icmp eq i32 %99, 0
  br i1 %.not728, label %100, label %101

100:                                              ; preds = %96, %89
  br label %101

101:                                              ; preds = %96, %100
  %.str.5.sink740 = phi ptr [ @.str.5, %100 ], [ @.str.2, %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.4) #11
  %107 = load i32, ptr %104, align 4, !tbaa !5
  %108 = tail call ptr @s2n_strerror_debug(i32 noundef %107, ptr noundef nonnull @.str.4) #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.5.sink740, i32 noundef %103, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.1, i32 noundef 143, ptr noundef %106, ptr noundef %108, ptr noundef %110, i32 noundef %111) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

113:                                              ; preds = %84
  %114 = tail call i32 @s2n_init() #11
  %115 = icmp eq i32 %114, -1
  br i1 %115, label %116, label %140

116:                                              ; preds = %113
  %117 = tail call ptr @__errno_location() #12
  %118 = load i32, ptr %117, align 4, !tbaa !5
  %119 = load ptr, ptr @stderr, align 8, !tbaa !9
  %120 = tail call i32 @s2n_print_stacktrace(ptr noundef %119) #11
  %121 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %122 = trunc nuw i8 %121 to i1
  br i1 %122, label %123, label %127

123:                                              ; preds = %116
  %124 = load ptr, ptr @stderr, align 8, !tbaa !9
  %125 = tail call i32 @fileno(ptr noundef %124) #11
  %126 = tail call i32 @isatty(i32 noundef %125) #11
  %.not727 = icmp eq i32 %126, 0
  br i1 %.not727, label %127, label %128

127:                                              ; preds = %123, %116
  br label %128

128:                                              ; preds = %123, %127
  %.str.5.sink751 = phi ptr [ @.str.5, %127 ], [ @.str.2, %123 ]
  store i32 %118, ptr %117, align 4, !tbaa !5
  %129 = load ptr, ptr @stderr, align 8, !tbaa !9
  %130 = load i32, ptr @test_count, align 4, !tbaa !5
  %131 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %132 = load i32, ptr %131, align 4, !tbaa !5
  %133 = tail call ptr @s2n_strerror(i32 noundef %132, ptr noundef nonnull @.str.4) #11
  %134 = load i32, ptr %131, align 4, !tbaa !5
  %135 = tail call ptr @s2n_strerror_debug(i32 noundef %134, ptr noundef nonnull @.str.4) #11
  %136 = load i32, ptr %117, align 4, !tbaa !5
  %137 = tail call ptr @strerror(i32 noundef %136) #11
  %138 = load i32, ptr %117, align 4, !tbaa !5
  %139 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %129, ptr noundef nonnull %.str.5.sink751, i32 noundef %130, ptr noundef nonnull @.str.7, ptr noundef nonnull @.str.1, i32 noundef 143, ptr noundef %133, ptr noundef %135, ptr noundef %137, i32 noundef %138) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

140:                                              ; preds = %113
  %141 = tail call zeroext i1 (...) @s2n_ktls_is_supported_on_platform() #11
  br i1 %141, label %411, label %142

142:                                              ; preds = %140
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %3) #11
  %143 = tail call ptr @s2n_connection_new(i32 noundef 0) #11
  store ptr %143, ptr %3, align 8, !tbaa !9
  %144 = load i32, ptr @test_count, align 4, !tbaa !5
  %145 = add nsw i32 %144, 1
  store i32 %145, ptr @test_count, align 4, !tbaa !5
  %146 = tail call i32 @s2n_test_configure_connection_for_ktls(ptr noundef %143)
  %147 = tail call zeroext i1 @s2n_result_is_ok(i32 %146)
  br i1 %147, label %172, label %148

148:                                              ; preds = %142
  %149 = tail call ptr @__errno_location() #12
  %150 = load i32, ptr %149, align 4, !tbaa !5
  %151 = load ptr, ptr @stderr, align 8, !tbaa !9
  %152 = tail call i32 @s2n_print_stacktrace(ptr noundef %151) #11
  %153 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %154 = trunc nuw i8 %153 to i1
  br i1 %154, label %155, label %159

155:                                              ; preds = %148
  %156 = load ptr, ptr @stderr, align 8, !tbaa !9
  %157 = tail call i32 @fileno(ptr noundef %156) #11
  %158 = tail call i32 @isatty(i32 noundef %157) #11
  %.not = icmp eq i32 %158, 0
  br i1 %.not, label %159, label %160

159:                                              ; preds = %155, %148
  br label %160

160:                                              ; preds = %155, %159
  %.str.5.sink762 = phi ptr [ @.str.5, %159 ], [ @.str.2, %155 ]
  store i32 %150, ptr %149, align 4, !tbaa !5
  %161 = load ptr, ptr @stderr, align 8, !tbaa !9
  %162 = load i32, ptr @test_count, align 4, !tbaa !5
  %163 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %164 = load i32, ptr %163, align 4, !tbaa !5
  %165 = tail call ptr @s2n_strerror(i32 noundef %164, ptr noundef nonnull @.str.4) #11
  %166 = load i32, ptr %163, align 4, !tbaa !5
  %167 = tail call ptr @s2n_strerror_debug(i32 noundef %166, ptr noundef nonnull @.str.4) #11
  %168 = load i32, ptr %149, align 4, !tbaa !5
  %169 = tail call ptr @strerror(i32 noundef %168) #11
  %170 = load i32, ptr %149, align 4, !tbaa !5
  %171 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %161, ptr noundef nonnull %.str.5.sink762, i32 noundef %162, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 148, ptr noundef %165, ptr noundef %167, ptr noundef %169, i32 noundef %170) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

172:                                              ; preds = %142
  %173 = load i32, ptr @test_count, align 4, !tbaa !5
  %174 = add nsw i32 %173, 1
  store i32 %174, ptr @test_count, align 4, !tbaa !5
  %175 = tail call i32 @s2n_connection_ktls_enable_send(ptr noundef %143) #11
  %176 = icmp eq i32 %175, -1
  br i1 %176, label %201, label %177

177:                                              ; preds = %172
  %178 = tail call ptr @__errno_location() #12
  %179 = load i32, ptr %178, align 4, !tbaa !5
  %180 = load ptr, ptr @stderr, align 8, !tbaa !9
  %181 = tail call i32 @s2n_print_stacktrace(ptr noundef %180) #11
  %182 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %183 = trunc nuw i8 %182 to i1
  br i1 %183, label %184, label %188

184:                                              ; preds = %177
  %185 = load ptr, ptr @stderr, align 8, !tbaa !9
  %186 = tail call i32 @fileno(ptr noundef %185) #11
  %187 = tail call i32 @isatty(i32 noundef %186) #11
  %.not499 = icmp eq i32 %187, 0
  br i1 %.not499, label %188, label %189

188:                                              ; preds = %184, %177
  br label %189

189:                                              ; preds = %184, %188
  %.str.5.sink773 = phi ptr [ @.str.5, %188 ], [ @.str.2, %184 ]
  store i32 %179, ptr %178, align 4, !tbaa !5
  %190 = load ptr, ptr @stderr, align 8, !tbaa !9
  %191 = load i32, ptr @test_count, align 4, !tbaa !5
  %192 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %193 = load i32, ptr %192, align 4, !tbaa !5
  %194 = tail call ptr @s2n_strerror(i32 noundef %193, ptr noundef nonnull @.str.4) #11
  %195 = load i32, ptr %192, align 4, !tbaa !5
  %196 = tail call ptr @s2n_strerror_debug(i32 noundef %195, ptr noundef nonnull @.str.4) #11
  %197 = load i32, ptr %178, align 4, !tbaa !5
  %198 = tail call ptr @strerror(i32 noundef %197) #11
  %199 = load i32, ptr %178, align 4, !tbaa !5
  %200 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %190, ptr noundef nonnull %.str.5.sink773, i32 noundef %191, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, i32 noundef 150, ptr noundef %194, ptr noundef %196, ptr noundef %198, i32 noundef %199) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

201:                                              ; preds = %172
  %202 = load i32, ptr @test_count, align 4, !tbaa !5
  %203 = add nsw i32 %202, 1
  store i32 %203, ptr @test_count, align 4, !tbaa !5
  %204 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %205 = load i32, ptr %204, align 4, !tbaa !5
  %206 = icmp eq i32 %205, 469762126
  br i1 %206, label %230, label %207

207:                                              ; preds = %201
  %208 = tail call ptr @__errno_location() #12
  %209 = load i32, ptr %208, align 4, !tbaa !5
  %210 = load ptr, ptr @stderr, align 8, !tbaa !9
  %211 = tail call i32 @s2n_print_stacktrace(ptr noundef %210) #11
  %212 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %213 = trunc nuw i8 %212 to i1
  br i1 %213, label %214, label %218

214:                                              ; preds = %207
  %215 = load ptr, ptr @stderr, align 8, !tbaa !9
  %216 = tail call i32 @fileno(ptr noundef %215) #11
  %217 = tail call i32 @isatty(i32 noundef %216) #11
  %.not500 = icmp eq i32 %217, 0
  br i1 %.not500, label %218, label %219

218:                                              ; preds = %214, %207
  br label %219

219:                                              ; preds = %214, %218
  %.str.5.sink784 = phi ptr [ @.str.5, %218 ], [ @.str.2, %214 ]
  store i32 %209, ptr %208, align 4, !tbaa !5
  %220 = load ptr, ptr @stderr, align 8, !tbaa !9
  %221 = load i32, ptr @test_count, align 4, !tbaa !5
  %222 = load i32, ptr %204, align 4, !tbaa !5
  %223 = tail call ptr @s2n_strerror(i32 noundef %222, ptr noundef nonnull @.str.4) #11
  %224 = load i32, ptr %204, align 4, !tbaa !5
  %225 = tail call ptr @s2n_strerror_debug(i32 noundef %224, ptr noundef nonnull @.str.4) #11
  %226 = load i32, ptr %208, align 4, !tbaa !5
  %227 = tail call ptr @strerror(i32 noundef %226) #11
  %228 = load i32, ptr %208, align 4, !tbaa !5
  %229 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %220, ptr noundef nonnull %.str.5.sink784, i32 noundef %221, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 150, ptr noundef %223, ptr noundef %225, ptr noundef %227, i32 noundef %228) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

230:                                              ; preds = %201
  %231 = add nsw i32 %202, 2
  store i32 %231, ptr @test_count, align 4, !tbaa !5
  %232 = tail call ptr @s2n_strerror_debug(i32 noundef 469762126, ptr noundef nonnull @.str.4) #11
  %233 = icmp eq ptr %232, null
  br i1 %233, label %234, label %257

234:                                              ; preds = %230
  %235 = tail call ptr @__errno_location() #12
  %236 = load i32, ptr %235, align 4, !tbaa !5
  %237 = load ptr, ptr @stderr, align 8, !tbaa !9
  %238 = tail call i32 @s2n_print_stacktrace(ptr noundef %237) #11
  %239 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %240 = trunc nuw i8 %239 to i1
  br i1 %240, label %241, label %245

241:                                              ; preds = %234
  %242 = load ptr, ptr @stderr, align 8, !tbaa !9
  %243 = tail call i32 @fileno(ptr noundef %242) #11
  %244 = tail call i32 @isatty(i32 noundef %243) #11
  %.not509 = icmp eq i32 %244, 0
  br i1 %.not509, label %245, label %246

245:                                              ; preds = %241, %234
  br label %246

246:                                              ; preds = %241, %245
  %.str.5.sink793 = phi ptr [ @.str.5, %245 ], [ @.str.2, %241 ]
  store i32 %236, ptr %235, align 4, !tbaa !5
  %247 = load ptr, ptr @stderr, align 8, !tbaa !9
  %248 = load i32, ptr @test_count, align 4, !tbaa !5
  %249 = load i32, ptr %204, align 4, !tbaa !5
  %250 = tail call ptr @s2n_strerror(i32 noundef %249, ptr noundef nonnull @.str.4) #11
  %251 = load i32, ptr %204, align 4, !tbaa !5
  %252 = tail call ptr @s2n_strerror_debug(i32 noundef %251, ptr noundef nonnull @.str.4) #11
  %253 = load i32, ptr %235, align 4, !tbaa !5
  %254 = tail call ptr @strerror(i32 noundef %253) #11
  %255 = load i32, ptr %235, align 4, !tbaa !5
  %256 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %247, ptr noundef nonnull %.str.5.sink793, i32 noundef %248, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 150, ptr noundef %250, ptr noundef %252, ptr noundef %254, i32 noundef %255) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

257:                                              ; preds = %230
  store i32 0, ptr %204, align 4, !tbaa !5
  tail call void @s2n_debug_info_reset() #11
  %258 = tail call ptr @__errno_location() #12
  store i32 0, ptr %258, align 4, !tbaa !5
  %259 = load i32, ptr @test_count, align 4, !tbaa !5
  %260 = add nsw i32 %259, 1
  store i32 %260, ptr @test_count, align 4, !tbaa !5
  %261 = tail call i32 @s2n_connection_ktls_enable_recv(ptr noundef %143) #11
  %262 = icmp eq i32 %261, -1
  br i1 %262, label %285, label %263

263:                                              ; preds = %257
  %264 = load i32, ptr %258, align 4, !tbaa !5
  %265 = load ptr, ptr @stderr, align 8, !tbaa !9
  %266 = tail call i32 @s2n_print_stacktrace(ptr noundef %265) #11
  %267 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %268 = trunc nuw i8 %267 to i1
  br i1 %268, label %269, label %273

269:                                              ; preds = %263
  %270 = load ptr, ptr @stderr, align 8, !tbaa !9
  %271 = tail call i32 @fileno(ptr noundef %270) #11
  %272 = tail call i32 @isatty(i32 noundef %271) #11
  %.not501 = icmp eq i32 %272, 0
  br i1 %.not501, label %273, label %274

273:                                              ; preds = %269, %263
  br label %274

274:                                              ; preds = %269, %273
  %.str.5.sink802 = phi ptr [ @.str.5, %273 ], [ @.str.2, %269 ]
  store i32 %264, ptr %258, align 4, !tbaa !5
  %275 = load ptr, ptr @stderr, align 8, !tbaa !9
  %276 = load i32, ptr @test_count, align 4, !tbaa !5
  %277 = load i32, ptr %204, align 4, !tbaa !5
  %278 = tail call ptr @s2n_strerror(i32 noundef %277, ptr noundef nonnull @.str.4) #11
  %279 = load i32, ptr %204, align 4, !tbaa !5
  %280 = tail call ptr @s2n_strerror_debug(i32 noundef %279, ptr noundef nonnull @.str.4) #11
  %281 = load i32, ptr %258, align 4, !tbaa !5
  %282 = tail call ptr @strerror(i32 noundef %281) #11
  %283 = load i32, ptr %258, align 4, !tbaa !5
  %284 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %275, ptr noundef nonnull %.str.5.sink802, i32 noundef %276, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 151, ptr noundef %278, ptr noundef %280, ptr noundef %282, i32 noundef %283) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

285:                                              ; preds = %257
  %286 = load i32, ptr @test_count, align 4, !tbaa !5
  %287 = add nsw i32 %286, 1
  store i32 %287, ptr @test_count, align 4, !tbaa !5
  %288 = load i32, ptr %204, align 4, !tbaa !5
  %289 = icmp eq i32 %288, 469762126
  br i1 %289, label %312, label %290

290:                                              ; preds = %285
  %291 = load i32, ptr %258, align 4, !tbaa !5
  %292 = load ptr, ptr @stderr, align 8, !tbaa !9
  %293 = tail call i32 @s2n_print_stacktrace(ptr noundef %292) #11
  %294 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %295 = trunc nuw i8 %294 to i1
  br i1 %295, label %296, label %300

296:                                              ; preds = %290
  %297 = load ptr, ptr @stderr, align 8, !tbaa !9
  %298 = tail call i32 @fileno(ptr noundef %297) #11
  %299 = tail call i32 @isatty(i32 noundef %298) #11
  %.not502 = icmp eq i32 %299, 0
  br i1 %.not502, label %300, label %301

300:                                              ; preds = %296, %290
  br label %301

301:                                              ; preds = %296, %300
  %.str.5.sink811 = phi ptr [ @.str.5, %300 ], [ @.str.2, %296 ]
  store i32 %291, ptr %258, align 4, !tbaa !5
  %302 = load ptr, ptr @stderr, align 8, !tbaa !9
  %303 = load i32, ptr @test_count, align 4, !tbaa !5
  %304 = load i32, ptr %204, align 4, !tbaa !5
  %305 = tail call ptr @s2n_strerror(i32 noundef %304, ptr noundef nonnull @.str.4) #11
  %306 = load i32, ptr %204, align 4, !tbaa !5
  %307 = tail call ptr @s2n_strerror_debug(i32 noundef %306, ptr noundef nonnull @.str.4) #11
  %308 = load i32, ptr %258, align 4, !tbaa !5
  %309 = tail call ptr @strerror(i32 noundef %308) #11
  %310 = load i32, ptr %258, align 4, !tbaa !5
  %311 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %302, ptr noundef nonnull %.str.5.sink811, i32 noundef %303, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 151, ptr noundef %305, ptr noundef %307, ptr noundef %309, i32 noundef %310) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

312:                                              ; preds = %285
  %313 = add nsw i32 %286, 2
  store i32 %313, ptr @test_count, align 4, !tbaa !5
  %314 = tail call ptr @s2n_strerror_debug(i32 noundef 469762126, ptr noundef nonnull @.str.4) #11
  %315 = icmp eq ptr %314, null
  br i1 %315, label %316, label %338

316:                                              ; preds = %312
  %317 = load i32, ptr %258, align 4, !tbaa !5
  %318 = load ptr, ptr @stderr, align 8, !tbaa !9
  %319 = tail call i32 @s2n_print_stacktrace(ptr noundef %318) #11
  %320 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %321 = trunc nuw i8 %320 to i1
  br i1 %321, label %322, label %326

322:                                              ; preds = %316
  %323 = load ptr, ptr @stderr, align 8, !tbaa !9
  %324 = tail call i32 @fileno(ptr noundef %323) #11
  %325 = tail call i32 @isatty(i32 noundef %324) #11
  %.not508 = icmp eq i32 %325, 0
  br i1 %.not508, label %326, label %327

326:                                              ; preds = %322, %316
  br label %327

327:                                              ; preds = %322, %326
  %.str.5.sink820 = phi ptr [ @.str.5, %326 ], [ @.str.2, %322 ]
  store i32 %317, ptr %258, align 4, !tbaa !5
  %328 = load ptr, ptr @stderr, align 8, !tbaa !9
  %329 = load i32, ptr @test_count, align 4, !tbaa !5
  %330 = load i32, ptr %204, align 4, !tbaa !5
  %331 = tail call ptr @s2n_strerror(i32 noundef %330, ptr noundef nonnull @.str.4) #11
  %332 = load i32, ptr %204, align 4, !tbaa !5
  %333 = tail call ptr @s2n_strerror_debug(i32 noundef %332, ptr noundef nonnull @.str.4) #11
  %334 = load i32, ptr %258, align 4, !tbaa !5
  %335 = tail call ptr @strerror(i32 noundef %334) #11
  %336 = load i32, ptr %258, align 4, !tbaa !5
  %337 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %328, ptr noundef nonnull %.str.5.sink820, i32 noundef %329, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 151, ptr noundef %331, ptr noundef %333, ptr noundef %335, i32 noundef %336) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

338:                                              ; preds = %312
  store i32 0, ptr %204, align 4, !tbaa !5
  tail call void @s2n_debug_info_reset() #11
  store i32 0, ptr %258, align 4, !tbaa !5
  %339 = tail call i32 @s2n_cleanup() #11
  %340 = icmp eq i32 %339, -1
  br i1 %340, label %341, label %363

341:                                              ; preds = %338
  %342 = load i32, ptr %258, align 4, !tbaa !5
  %343 = load ptr, ptr @stderr, align 8, !tbaa !9
  %344 = tail call i32 @s2n_print_stacktrace(ptr noundef %343) #11
  %345 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %346 = trunc nuw i8 %345 to i1
  br i1 %346, label %347, label %351

347:                                              ; preds = %341
  %348 = load ptr, ptr @stderr, align 8, !tbaa !9
  %349 = tail call i32 @fileno(ptr noundef %348) #11
  %350 = tail call i32 @isatty(i32 noundef %349) #11
  %.not507 = icmp eq i32 %350, 0
  br i1 %.not507, label %351, label %352

351:                                              ; preds = %347, %341
  br label %352

352:                                              ; preds = %347, %351
  %.str.5.sink829 = phi ptr [ @.str.5, %351 ], [ @.str.2, %347 ]
  store i32 %342, ptr %258, align 4, !tbaa !5
  %353 = load ptr, ptr @stderr, align 8, !tbaa !9
  %354 = load i32, ptr @test_count, align 4, !tbaa !5
  %355 = load i32, ptr %204, align 4, !tbaa !5
  %356 = tail call ptr @s2n_strerror(i32 noundef %355, ptr noundef nonnull @.str.4) #11
  %357 = load i32, ptr %204, align 4, !tbaa !5
  %358 = tail call ptr @s2n_strerror_debug(i32 noundef %357, ptr noundef nonnull @.str.4) #11
  %359 = load i32, ptr %258, align 4, !tbaa !5
  %360 = tail call ptr @strerror(i32 noundef %359) #11
  %361 = load i32, ptr %258, align 4, !tbaa !5
  %362 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %353, ptr noundef nonnull %.str.5.sink829, i32 noundef %354, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 153, ptr noundef %356, ptr noundef %358, ptr noundef %360, i32 noundef %361) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

363:                                              ; preds = %338
  %364 = tail call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #11
  %365 = icmp eq i32 %364, -1
  br i1 %365, label %366, label %388

366:                                              ; preds = %363
  %367 = load i32, ptr %258, align 4, !tbaa !5
  %368 = load ptr, ptr @stderr, align 8, !tbaa !9
  %369 = tail 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 = %366
  %373 = load ptr, ptr @stderr, align 8, !tbaa !9
  %374 = tail call i32 @fileno(ptr noundef %373) #11
  %375 = tail call i32 @isatty(i32 noundef %374) #11
  %.not506 = icmp eq i32 %375, 0
  br i1 %.not506, label %376, label %377

376:                                              ; preds = %372, %366
  br label %377

377:                                              ; preds = %372, %376
  %.str.5.sink838 = phi ptr [ @.str.5, %376 ], [ @.str.2, %372 ]
  store i32 %367, ptr %258, 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 %204, align 4, !tbaa !5
  %381 = tail call ptr @s2n_strerror(i32 noundef %380, ptr noundef nonnull @.str.4) #11
  %382 = load i32, ptr %204, align 4, !tbaa !5
  %383 = tail call ptr @s2n_strerror_debug(i32 noundef %382, ptr noundef nonnull @.str.4) #11
  %384 = load i32, ptr %258, align 4, !tbaa !5
  %385 = tail call ptr @strerror(i32 noundef %384) #11
  %386 = load i32, ptr %258, align 4, !tbaa !5
  %387 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %378, ptr noundef nonnull %.str.5.sink838, i32 noundef %379, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 153, ptr noundef %381, ptr noundef %383, ptr noundef %385, i32 noundef %386) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

388:                                              ; preds = %363
  %389 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %390 = trunc nuw i8 %389 to i1
  br i1 %390, label %391, label %402

391:                                              ; preds = %388
  %392 = load ptr, ptr @stdout, align 8, !tbaa !9
  %393 = tail call i32 @fileno(ptr noundef %392) #11
  %394 = tail call i32 @isatty(i32 noundef %393) #11
  %.not503 = icmp eq i32 %394, 0
  br i1 %.not503, label %402, label %395

395:                                              ; preds = %391
  %396 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not505 = icmp eq i32 %396, 0
  %397 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not505, label %400, label %398

398:                                              ; preds = %395
  %399 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %397, ptr noundef nonnull @.str.15, i32 noundef %396) #11
  br label %409

400:                                              ; preds = %395
  %401 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %397, ptr noundef nonnull @.str.16) #11
  br label %409

402:                                              ; preds = %391, %388
  %403 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not504 = icmp eq i32 %403, 0
  %404 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not504, label %407, label %405

405:                                              ; preds = %402
  %406 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %404, ptr noundef nonnull @.str.17, i32 noundef %403) #11
  br label %409

407:                                              ; preds = %402
  %408 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %404, ptr noundef nonnull @.str.18) #11
  br label %409

409:                                              ; preds = %405, %407, %398, %400
  %410 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %3) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3) #11
  br label %5687

411:                                              ; preds = %140
  call void @llvm.lifetime.start.p0(i64 936, ptr nonnull %4) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(936) %4, i8 0, i64 936, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %5) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %5, i8 0, i64 24, i1 false)
  %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 = getelementptr inbounds i8, ptr %4, i64 888
  %415 = call i32 @s2n_blob_init(ptr noundef nonnull %5, ptr noundef nonnull %414, i32 noundef 16) #11
  %416 = icmp eq i32 %415, -1
  br i1 %416, label %417, label %441

417:                                              ; preds = %411
  %418 = tail call ptr @__errno_location() #12
  %419 = load i32, ptr %418, align 4, !tbaa !5
  %420 = load ptr, ptr @stderr, align 8, !tbaa !9
  %421 = call i32 @s2n_print_stacktrace(ptr noundef %420) #11
  %422 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %423 = trunc nuw i8 %422 to i1
  br i1 %423, label %424, label %428

424:                                              ; preds = %417
  %425 = load ptr, ptr @stderr, align 8, !tbaa !9
  %426 = call i32 @fileno(ptr noundef %425) #11
  %427 = call i32 @isatty(i32 noundef %426) #11
  %.not726 = icmp eq i32 %427, 0
  br i1 %.not726, label %428, label %429

428:                                              ; preds = %424, %417
  br label %429

429:                                              ; preds = %424, %428
  %.str.5.sink847 = phi ptr [ @.str.5, %428 ], [ @.str.2, %424 ]
  store i32 %419, ptr %418, align 4, !tbaa !5
  %430 = load ptr, ptr @stderr, align 8, !tbaa !9
  %431 = load i32, ptr @test_count, align 4, !tbaa !5
  %432 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %433 = load i32, ptr %432, align 4, !tbaa !5
  %434 = call ptr @s2n_strerror(i32 noundef %433, ptr noundef nonnull @.str.4) #11
  %435 = load i32, ptr %432, align 4, !tbaa !5
  %436 = call ptr @s2n_strerror_debug(i32 noundef %435, ptr noundef nonnull @.str.4) #11
  %437 = load i32, ptr %418, align 4, !tbaa !5
  %438 = call ptr @strerror(i32 noundef %437) #11
  %439 = load i32, ptr %418, align 4, !tbaa !5
  %440 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %430, ptr noundef nonnull %.str.5.sink847, i32 noundef %431, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 162, ptr noundef %434, ptr noundef %436, ptr noundef %438, i32 noundef %439) #13
  call void @exit(i32 noundef 1) #14
  unreachable

441:                                              ; preds = %411
  %442 = load i32, ptr @test_count, align 4, !tbaa !5
  %443 = add nsw i32 %442, 1
  store i32 %443, ptr @test_count, align 4, !tbaa !5
  %444 = call i32 @s2n_get_public_random_data(ptr noundef nonnull %5) #11
  %445 = call zeroext i1 @s2n_result_is_ok(i32 %444)
  br i1 %445, label %470, label %446

446:                                              ; preds = %441
  %447 = tail call ptr @__errno_location() #12
  %448 = load i32, ptr %447, align 4, !tbaa !5
  %449 = load ptr, ptr @stderr, align 8, !tbaa !9
  %450 = call i32 @s2n_print_stacktrace(ptr noundef %449) #11
  %451 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %452 = trunc nuw i8 %451 to i1
  br i1 %452, label %453, label %457

453:                                              ; preds = %446
  %454 = load ptr, ptr @stderr, align 8, !tbaa !9
  %455 = call i32 @fileno(ptr noundef %454) #11
  %456 = call i32 @isatty(i32 noundef %455) #11
  %.not510 = icmp eq i32 %456, 0
  br i1 %.not510, label %457, label %458

457:                                              ; preds = %453, %446
  br label %458

458:                                              ; preds = %453, %457
  %.str.5.sink858 = phi ptr [ @.str.5, %457 ], [ @.str.2, %453 ]
  store i32 %448, ptr %447, align 4, !tbaa !5
  %459 = load ptr, ptr @stderr, align 8, !tbaa !9
  %460 = load i32, ptr @test_count, align 4, !tbaa !5
  %461 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %462 = load i32, ptr %461, align 4, !tbaa !5
  %463 = call ptr @s2n_strerror(i32 noundef %462, ptr noundef nonnull @.str.4) #11
  %464 = load i32, ptr %461, align 4, !tbaa !5
  %465 = call ptr @s2n_strerror_debug(i32 noundef %464, ptr noundef nonnull @.str.4) #11
  %466 = load i32, ptr %447, align 4, !tbaa !5
  %467 = call ptr @strerror(i32 noundef %466) #11
  %468 = load i32, ptr %447, align 4, !tbaa !5
  %469 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %459, ptr noundef nonnull %.str.5.sink858, i32 noundef %460, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 163, ptr noundef %463, ptr noundef %465, ptr noundef %467, i32 noundef %468) #13
  call void @exit(i32 noundef 1) #14
  unreachable

470:                                              ; preds = %441
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %6) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %6, i8 0, i64 24, i1 false)
  %471 = load i32, ptr @test_count, align 4, !tbaa !5
  %472 = add nsw i32 %471, 1
  store i32 %472, ptr @test_count, align 4, !tbaa !5
  %473 = getelementptr inbounds i8, ptr %4, i64 920
  %474 = call i32 @s2n_blob_init(ptr noundef nonnull %6, ptr noundef nonnull %473, i32 noundef 8) #11
  %475 = icmp eq i32 %474, -1
  br i1 %475, label %476, label %500

476:                                              ; preds = %470
  %477 = tail call ptr @__errno_location() #12
  %478 = load i32, ptr %477, align 4, !tbaa !5
  %479 = load ptr, ptr @stderr, align 8, !tbaa !9
  %480 = call i32 @s2n_print_stacktrace(ptr noundef %479) #11
  %481 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %482 = trunc nuw i8 %481 to i1
  br i1 %482, label %483, label %487

483:                                              ; preds = %476
  %484 = load ptr, ptr @stderr, align 8, !tbaa !9
  %485 = call i32 @fileno(ptr noundef %484) #11
  %486 = call i32 @isatty(i32 noundef %485) #11
  %.not725 = icmp eq i32 %486, 0
  br i1 %.not725, label %487, label %488

487:                                              ; preds = %483, %476
  br label %488

488:                                              ; preds = %483, %487
  %.str.5.sink869 = phi ptr [ @.str.5, %487 ], [ @.str.2, %483 ]
  store i32 %478, ptr %477, align 4, !tbaa !5
  %489 = load ptr, ptr @stderr, align 8, !tbaa !9
  %490 = load i32, ptr @test_count, align 4, !tbaa !5
  %491 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %492 = load i32, ptr %491, align 4, !tbaa !5
  %493 = call ptr @s2n_strerror(i32 noundef %492, ptr noundef nonnull @.str.4) #11
  %494 = load i32, ptr %491, align 4, !tbaa !5
  %495 = call ptr @s2n_strerror_debug(i32 noundef %494, ptr noundef nonnull @.str.4) #11
  %496 = load i32, ptr %477, align 4, !tbaa !5
  %497 = call ptr @strerror(i32 noundef %496) #11
  %498 = load i32, ptr %477, align 4, !tbaa !5
  %499 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %489, ptr noundef nonnull %.str.5.sink869, i32 noundef %490, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 167, ptr noundef %493, ptr noundef %495, ptr noundef %497, i32 noundef %498) #13
  call void @exit(i32 noundef 1) #14
  unreachable

500:                                              ; preds = %470
  %501 = load i32, ptr @test_count, align 4, !tbaa !5
  %502 = add nsw i32 %501, 1
  store i32 %502, ptr @test_count, align 4, !tbaa !5
  %503 = call i32 @s2n_get_public_random_data(ptr noundef nonnull %6) #11
  %504 = call zeroext i1 @s2n_result_is_ok(i32 %503)
  br i1 %504, label %529, label %505

505:                                              ; preds = %500
  %506 = tail call ptr @__errno_location() #12
  %507 = load i32, ptr %506, align 4, !tbaa !5
  %508 = load ptr, ptr @stderr, align 8, !tbaa !9
  %509 = call i32 @s2n_print_stacktrace(ptr noundef %508) #11
  %510 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %511 = trunc nuw i8 %510 to i1
  br i1 %511, label %512, label %516

512:                                              ; preds = %505
  %513 = load ptr, ptr @stderr, align 8, !tbaa !9
  %514 = call i32 @fileno(ptr noundef %513) #11
  %515 = call i32 @isatty(i32 noundef %514) #11
  %.not511 = icmp eq i32 %515, 0
  br i1 %.not511, label %516, label %517

516:                                              ; preds = %512, %505
  br label %517

517:                                              ; preds = %512, %516
  %.str.5.sink880 = phi ptr [ @.str.5, %516 ], [ @.str.2, %512 ]
  store i32 %507, ptr %506, align 4, !tbaa !5
  %518 = load ptr, ptr @stderr, align 8, !tbaa !9
  %519 = load i32, ptr @test_count, align 4, !tbaa !5
  %520 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %521 = load i32, ptr %520, align 4, !tbaa !5
  %522 = call ptr @s2n_strerror(i32 noundef %521, ptr noundef nonnull @.str.4) #11
  %523 = load i32, ptr %520, align 4, !tbaa !5
  %524 = call ptr @s2n_strerror_debug(i32 noundef %523, ptr noundef nonnull @.str.4) #11
  %525 = load i32, ptr %506, align 4, !tbaa !5
  %526 = call ptr @strerror(i32 noundef %525) #11
  %527 = load i32, ptr %506, align 4, !tbaa !5
  %528 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %518, ptr noundef nonnull %.str.5.sink880, i32 noundef %519, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 168, ptr noundef %522, ptr noundef %524, ptr noundef %526, i32 noundef %527) #13
  call void @exit(i32 noundef 1) #14
  unreachable

529:                                              ; preds = %500
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %7) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %7, i8 0, i64 24, i1 false)
  %530 = load i32, ptr @test_count, align 4, !tbaa !5
  %531 = add nsw i32 %530, 1
  store i32 %531, ptr @test_count, align 4, !tbaa !5
  %532 = load i8, ptr getelementptr inbounds (i8, ptr @s2n_aes128_gcm, i64 48), align 8, !tbaa !15
  %533 = zext i8 %532 to i32
  %534 = call i32 @s2n_alloc(ptr noundef nonnull %7, i32 noundef %533) #11
  %535 = icmp eq i32 %534, -1
  br i1 %535, label %536, label %560

536:                                              ; preds = %529
  %537 = tail call ptr @__errno_location() #12
  %538 = load i32, ptr %537, align 4, !tbaa !5
  %539 = load ptr, ptr @stderr, align 8, !tbaa !9
  %540 = call i32 @s2n_print_stacktrace(ptr noundef %539) #11
  %541 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %542 = trunc nuw i8 %541 to i1
  br i1 %542, label %543, label %547

543:                                              ; preds = %536
  %544 = load ptr, ptr @stderr, align 8, !tbaa !9
  %545 = call i32 @fileno(ptr noundef %544) #11
  %546 = call i32 @isatty(i32 noundef %545) #11
  %.not724 = icmp eq i32 %546, 0
  br i1 %.not724, label %547, label %548

547:                                              ; preds = %543, %536
  br label %548

548:                                              ; preds = %543, %547
  %.str.5.sink891 = phi ptr [ @.str.5, %547 ], [ @.str.2, %543 ]
  store i32 %538, ptr %537, align 4, !tbaa !5
  %549 = load ptr, ptr @stderr, align 8, !tbaa !9
  %550 = load i32, ptr @test_count, align 4, !tbaa !5
  %551 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %552 = load i32, ptr %551, align 4, !tbaa !5
  %553 = call ptr @s2n_strerror(i32 noundef %552, ptr noundef nonnull @.str.4) #11
  %554 = load i32, ptr %551, align 4, !tbaa !5
  %555 = call ptr @s2n_strerror_debug(i32 noundef %554, ptr noundef nonnull @.str.4) #11
  %556 = load i32, ptr %537, align 4, !tbaa !5
  %557 = call ptr @strerror(i32 noundef %556) #11
  %558 = load i32, ptr %537, align 4, !tbaa !5
  %559 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %549, ptr noundef nonnull %.str.5.sink891, i32 noundef %550, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 173, ptr noundef %553, ptr noundef %555, ptr noundef %557, i32 noundef %558) #13
  call void @exit(i32 noundef 1) #14
  unreachable

560:                                              ; preds = %529
  %561 = load i32, ptr @test_count, align 4, !tbaa !5
  %562 = add nsw i32 %561, 1
  store i32 %562, ptr @test_count, align 4, !tbaa !5
  %563 = call i32 @s2n_get_public_random_data(ptr noundef nonnull %7) #11
  %564 = call zeroext i1 @s2n_result_is_ok(i32 %563)
  br i1 %564, label %589, label %565

565:                                              ; preds = %560
  %566 = tail call ptr @__errno_location() #12
  %567 = load i32, ptr %566, align 4, !tbaa !5
  %568 = load ptr, ptr @stderr, align 8, !tbaa !9
  %569 = call i32 @s2n_print_stacktrace(ptr noundef %568) #11
  %570 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %571 = trunc nuw i8 %570 to i1
  br i1 %571, label %572, label %576

572:                                              ; preds = %565
  %573 = load ptr, ptr @stderr, align 8, !tbaa !9
  %574 = call i32 @fileno(ptr noundef %573) #11
  %575 = call i32 @isatty(i32 noundef %574) #11
  %.not512 = icmp eq i32 %575, 0
  br i1 %.not512, label %576, label %577

576:                                              ; preds = %572, %565
  br label %577

577:                                              ; preds = %572, %576
  %.str.5.sink902 = phi ptr [ @.str.5, %576 ], [ @.str.2, %572 ]
  store i32 %567, ptr %566, align 4, !tbaa !5
  %578 = load ptr, ptr @stderr, align 8, !tbaa !9
  %579 = load i32, ptr @test_count, align 4, !tbaa !5
  %580 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %581 = load i32, ptr %580, align 4, !tbaa !5
  %582 = call ptr @s2n_strerror(i32 noundef %581, ptr noundef nonnull @.str.4) #11
  %583 = load i32, ptr %580, align 4, !tbaa !5
  %584 = call ptr @s2n_strerror_debug(i32 noundef %583, ptr noundef nonnull @.str.4) #11
  %585 = load i32, ptr %566, align 4, !tbaa !5
  %586 = call ptr @strerror(i32 noundef %585) #11
  %587 = load i32, ptr %566, align 4, !tbaa !5
  %588 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %578, ptr noundef nonnull %.str.5.sink902, i32 noundef %579, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 174, ptr noundef %582, ptr noundef %584, ptr noundef %586, i32 noundef %587) #13
  call void @exit(i32 noundef 1) #14
  unreachable

589:                                              ; preds = %560
  call void @llvm.lifetime.start.p0(i64 72, ptr nonnull %8) #11
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %8, ptr noundef nonnull align 8 dereferenceable(24) %5, i64 24, i1 false), !tbaa.struct !17
  %590 = getelementptr inbounds i8, ptr %8, i64 24
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %590, ptr noundef nonnull align 8 dereferenceable(24) %7, i64 24, i1 false), !tbaa.struct !17
  %591 = getelementptr inbounds i8, ptr %8, i64 48
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %591, ptr noundef nonnull align 8 dereferenceable(24) %6, i64 24, i1 false), !tbaa.struct !17
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %9) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %9, i8 0, i64 32, i1 false)
  %592 = load i32, ptr @test_count, align 4, !tbaa !5
  %593 = add nsw i32 %592, 1
  store i32 %593, ptr @test_count, align 4, !tbaa !5
  %594 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_aes128_gcm, i64 96), align 8, !tbaa !19
  %595 = call i32 %594(ptr noundef nonnull %8, ptr noundef nonnull %9) #11
  %596 = call zeroext i1 @s2n_result_is_ok(i32 %595)
  br i1 %596, label %621, label %597

597:                                              ; preds = %589
  %598 = tail call ptr @__errno_location() #12
  %599 = load i32, ptr %598, align 4, !tbaa !5
  %600 = load ptr, ptr @stderr, align 8, !tbaa !9
  %601 = call i32 @s2n_print_stacktrace(ptr noundef %600) #11
  %602 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %603 = trunc nuw i8 %602 to i1
  br i1 %603, label %604, label %608

604:                                              ; preds = %597
  %605 = load ptr, ptr @stderr, align 8, !tbaa !9
  %606 = call i32 @fileno(ptr noundef %605) #11
  %607 = call i32 @isatty(i32 noundef %606) #11
  %.not513 = icmp eq i32 %607, 0
  br i1 %.not513, label %608, label %609

608:                                              ; preds = %604, %597
  br label %609

609:                                              ; preds = %604, %608
  %.str.5.sink913 = phi ptr [ @.str.5, %608 ], [ @.str.2, %604 ]
  store i32 %599, ptr %598, align 4, !tbaa !5
  %610 = load ptr, ptr @stderr, align 8, !tbaa !9
  %611 = load i32, ptr @test_count, align 4, !tbaa !5
  %612 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %613 = load i32, ptr %612, align 4, !tbaa !5
  %614 = call ptr @s2n_strerror(i32 noundef %613, ptr noundef nonnull @.str.4) #11
  %615 = load i32, ptr %612, align 4, !tbaa !5
  %616 = call ptr @s2n_strerror_debug(i32 noundef %615, ptr noundef nonnull @.str.4) #11
  %617 = load i32, ptr %598, align 4, !tbaa !5
  %618 = call ptr @strerror(i32 noundef %617) #11
  %619 = load i32, ptr %598, align 4, !tbaa !5
  %620 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %610, ptr noundef nonnull %.str.5.sink913, i32 noundef %611, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 183, ptr noundef %614, ptr noundef %616, ptr noundef %618, i32 noundef %619) #13
  call void @exit(i32 noundef 1) #14
  unreachable

621:                                              ; preds = %589
  %622 = load i32, ptr @test_count, align 4, !tbaa !5
  %623 = add nsw i32 %622, 1
  store i32 %623, ptr @test_count, align 4, !tbaa !5
  %624 = getelementptr inbounds i8, ptr %9, i64 8
  %625 = load i32, ptr %624, align 8, !tbaa !20
  %626 = icmp eq i32 %625, 6
  br i1 %626, label %651, label %627

627:                                              ; preds = %621
  %628 = tail call ptr @__errno_location() #12
  %629 = load i32, ptr %628, align 4, !tbaa !5
  %630 = load ptr, ptr @stderr, align 8, !tbaa !9
  %631 = call i32 @s2n_print_stacktrace(ptr noundef %630) #11
  %632 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %633 = trunc nuw i8 %632 to i1
  br i1 %633, label %634, label %638

634:                                              ; preds = %627
  %635 = load ptr, ptr @stderr, align 8, !tbaa !9
  %636 = call i32 @fileno(ptr noundef %635) #11
  %637 = call i32 @isatty(i32 noundef %636) #11
  %.not514 = icmp eq i32 %637, 0
  br i1 %.not514, label %638, label %639

638:                                              ; preds = %634, %627
  br label %639

639:                                              ; preds = %634, %638
  %.str.5.sink924 = phi ptr [ @.str.5, %638 ], [ @.str.2, %634 ]
  store i32 %629, ptr %628, align 4, !tbaa !5
  %640 = load ptr, ptr @stderr, align 8, !tbaa !9
  %641 = load i32, ptr @test_count, align 4, !tbaa !5
  %642 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %643 = load i32, ptr %642, align 4, !tbaa !5
  %644 = call ptr @s2n_strerror(i32 noundef %643, ptr noundef nonnull @.str.4) #11
  %645 = load i32, ptr %642, align 4, !tbaa !5
  %646 = call ptr @s2n_strerror_debug(i32 noundef %645, ptr noundef nonnull @.str.4) #11
  %647 = load i32, ptr %628, align 4, !tbaa !5
  %648 = call ptr @strerror(i32 noundef %647) #11
  %649 = load i32, ptr %628, align 4, !tbaa !5
  %650 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %640, ptr noundef nonnull %.str.5.sink924, i32 noundef %641, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 184, ptr noundef %644, ptr noundef %646, ptr noundef %648, i32 noundef %649) #13
  call void @exit(i32 noundef 1) #14
  unreachable

651:                                              ; preds = %621
  %652 = add nsw i32 %622, 2
  store i32 %652, ptr @test_count, align 4, !tbaa !5
  %653 = load ptr, ptr %9, align 8, !tbaa !23
  %654 = getelementptr inbounds i8, ptr %9, i64 24
  %655 = icmp eq ptr %653, %654
  br i1 %655, label %680, label %656

656:                                              ; preds = %651
  %657 = tail call ptr @__errno_location() #12
  %658 = load i32, ptr %657, align 4, !tbaa !5
  %659 = load ptr, ptr @stderr, align 8, !tbaa !9
  %660 = call i32 @s2n_print_stacktrace(ptr noundef %659) #11
  %661 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %662 = trunc nuw i8 %661 to i1
  br i1 %662, label %663, label %667

663:                                              ; preds = %656
  %664 = load ptr, ptr @stderr, align 8, !tbaa !9
  %665 = call i32 @fileno(ptr noundef %664) #11
  %666 = call i32 @isatty(i32 noundef %665) #11
  %.not515 = icmp eq i32 %666, 0
  br i1 %.not515, label %667, label %668

667:                                              ; preds = %663, %656
  br label %668

668:                                              ; preds = %663, %667
  %.str.5.sink935 = phi ptr [ @.str.5, %667 ], [ @.str.2, %663 ]
  store i32 %658, ptr %657, align 4, !tbaa !5
  %669 = load ptr, ptr @stderr, align 8, !tbaa !9
  %670 = load i32, ptr @test_count, align 4, !tbaa !5
  %671 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %672 = load i32, ptr %671, align 4, !tbaa !5
  %673 = call ptr @s2n_strerror(i32 noundef %672, ptr noundef nonnull @.str.4) #11
  %674 = load i32, ptr %671, align 4, !tbaa !5
  %675 = call ptr @s2n_strerror_debug(i32 noundef %674, ptr noundef nonnull @.str.4) #11
  %676 = load i32, ptr %657, align 4, !tbaa !5
  %677 = call ptr @strerror(i32 noundef %676) #11
  %678 = load i32, ptr %657, align 4, !tbaa !5
  %679 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %669, ptr noundef nonnull %.str.5.sink935, i32 noundef %670, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 185, ptr noundef %673, ptr noundef %675, ptr noundef %677, i32 noundef %678) #13
  call void @exit(i32 noundef 1) #14
  unreachable

680:                                              ; preds = %651
  %681 = add nsw i32 %622, 3
  store i32 %681, ptr @test_count, align 4, !tbaa !5
  %682 = getelementptr inbounds i8, ptr %7, i64 8
  %683 = load i32, ptr %682, align 8, !tbaa !24
  %684 = icmp eq i32 %683, 1
  br i1 %684, label %709, label %685

685:                                              ; preds = %680
  %686 = tail call ptr @__errno_location() #12
  %687 = load i32, ptr %686, align 4, !tbaa !5
  %688 = load ptr, ptr @stderr, align 8, !tbaa !9
  %689 = call i32 @s2n_print_stacktrace(ptr noundef %688) #11
  %690 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %691 = trunc nuw i8 %690 to i1
  br i1 %691, label %692, label %696

692:                                              ; preds = %685
  %693 = load ptr, ptr @stderr, align 8, !tbaa !9
  %694 = call i32 @fileno(ptr noundef %693) #11
  %695 = call i32 @isatty(i32 noundef %694) #11
  %.not516 = icmp eq i32 %695, 0
  br i1 %.not516, label %696, label %697

696:                                              ; preds = %692, %685
  br label %697

697:                                              ; preds = %692, %696
  %.str.5.sink946 = phi ptr [ @.str.5, %696 ], [ @.str.2, %692 ]
  store i32 %687, ptr %686, align 4, !tbaa !5
  %698 = load ptr, ptr @stderr, align 8, !tbaa !9
  %699 = load i32, ptr @test_count, align 4, !tbaa !5
  %700 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %701 = load i32, ptr %700, align 4, !tbaa !5
  %702 = call ptr @s2n_strerror(i32 noundef %701, ptr noundef nonnull @.str.4) #11
  %703 = load i32, ptr %700, align 4, !tbaa !5
  %704 = call ptr @s2n_strerror_debug(i32 noundef %703, ptr noundef nonnull @.str.4) #11
  %705 = load i32, ptr %686, align 4, !tbaa !5
  %706 = call ptr @strerror(i32 noundef %705) #11
  %707 = load i32, ptr %686, align 4, !tbaa !5
  %708 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %698, ptr noundef nonnull %.str.5.sink946, i32 noundef %699, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 189, ptr noundef %702, ptr noundef %704, ptr noundef %706, i32 noundef %707) #13
  call void @exit(i32 noundef 1) #14
  unreachable

709:                                              ; preds = %680
  %710 = add nsw i32 %622, 4
  store i32 %710, ptr @test_count, align 4, !tbaa !5
  %711 = load ptr, ptr %7, align 8, !tbaa !25
  %712 = getelementptr inbounds i8, ptr %653, i64 3
  %lhsc = load i8, ptr %711, align 1
  %rhsc = load i8, ptr %712, align 1
  %713 = icmp eq i8 %lhsc, %rhsc
  br i1 %713, label %738, label %714

714:                                              ; preds = %709
  %715 = tail call ptr @__errno_location() #12
  %716 = load i32, ptr %715, align 4, !tbaa !5
  %717 = load ptr, ptr @stderr, align 8, !tbaa !9
  %718 = call i32 @s2n_print_stacktrace(ptr noundef %717) #11
  %719 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %720 = trunc nuw i8 %719 to i1
  br i1 %720, label %721, label %725

721:                                              ; preds = %714
  %722 = load ptr, ptr @stderr, align 8, !tbaa !9
  %723 = call i32 @fileno(ptr noundef %722) #11
  %724 = call i32 @isatty(i32 noundef %723) #11
  %.not517 = icmp eq i32 %724, 0
  br i1 %.not517, label %725, label %726

725:                                              ; preds = %721, %714
  br label %726

726:                                              ; preds = %721, %725
  %.str.5.sink957 = phi ptr [ @.str.5, %725 ], [ @.str.2, %721 ]
  store i32 %716, ptr %715, align 4, !tbaa !5
  %727 = load ptr, ptr @stderr, align 8, !tbaa !9
  %728 = load i32, ptr @test_count, align 4, !tbaa !5
  %729 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %730 = load i32, ptr %729, align 4, !tbaa !5
  %731 = call ptr @s2n_strerror(i32 noundef %730, ptr noundef nonnull @.str.4) #11
  %732 = load i32, ptr %729, align 4, !tbaa !5
  %733 = call ptr @s2n_strerror_debug(i32 noundef %732, ptr noundef nonnull @.str.4) #11
  %734 = load i32, ptr %715, align 4, !tbaa !5
  %735 = call ptr @strerror(i32 noundef %734) #11
  %736 = load i32, ptr %715, align 4, !tbaa !5
  %737 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %727, ptr noundef nonnull %.str.5.sink957, i32 noundef %728, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 190, ptr noundef %731, ptr noundef %733, ptr noundef %735, i32 noundef %736) #13
  call void @exit(i32 noundef 1) #14
  unreachable

738:                                              ; preds = %709
  %739 = add nsw i32 %622, 5
  store i32 %739, ptr @test_count, align 4, !tbaa !5
  %740 = getelementptr inbounds i8, ptr %6, i64 8
  %741 = load i32, ptr %740, align 8, !tbaa !24
  %.not518 = icmp eq i32 %741, 0
  br i1 %.not518, label %742, label %766

742:                                              ; preds = %738
  %743 = tail call ptr @__errno_location() #12
  %744 = load i32, ptr %743, align 4, !tbaa !5
  %745 = load ptr, ptr @stderr, align 8, !tbaa !9
  %746 = call i32 @s2n_print_stacktrace(ptr noundef %745) #11
  %747 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %748 = trunc nuw i8 %747 to i1
  br i1 %748, label %749, label %753

749:                                              ; preds = %742
  %750 = load ptr, ptr @stderr, align 8, !tbaa !9
  %751 = call i32 @fileno(ptr noundef %750) #11
  %752 = call i32 @isatty(i32 noundef %751) #11
  %.not519 = icmp eq i32 %752, 0
  br i1 %.not519, label %753, label %754

753:                                              ; preds = %749, %742
  br label %754

754:                                              ; preds = %749, %753
  %.str.5.sink968 = phi ptr [ @.str.5, %753 ], [ @.str.2, %749 ]
  store i32 %744, ptr %743, align 4, !tbaa !5
  %755 = load ptr, ptr @stderr, align 8, !tbaa !9
  %756 = load i32, ptr @test_count, align 4, !tbaa !5
  %757 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %758 = load i32, ptr %757, align 4, !tbaa !5
  %759 = call ptr @s2n_strerror(i32 noundef %758, ptr noundef nonnull @.str.4) #11
  %760 = load i32, ptr %757, align 4, !tbaa !5
  %761 = call ptr @s2n_strerror_debug(i32 noundef %760, ptr noundef nonnull @.str.4) #11
  %762 = load i32, ptr %743, align 4, !tbaa !5
  %763 = call ptr @strerror(i32 noundef %762) #11
  %764 = load i32, ptr %743, align 4, !tbaa !5
  %765 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %755, ptr noundef nonnull %.str.5.sink968, i32 noundef %756, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 192, ptr noundef %759, ptr noundef %761, ptr noundef %763, i32 noundef %764) #13
  call void @exit(i32 noundef 1) #14
  unreachable

766:                                              ; preds = %738
  %767 = add nsw i32 %622, 6
  store i32 %767, ptr @test_count, align 4, !tbaa !5
  %768 = load ptr, ptr %6, align 8, !tbaa !25
  %769 = getelementptr inbounds i8, ptr %653, i64 5
  %lhsc520 = load i8, ptr %768, align 1
  %rhsc521 = load i8, ptr %769, align 1
  %770 = icmp eq i8 %lhsc520, %rhsc521
  br i1 %770, label %795, label %771

771:                                              ; preds = %766
  %772 = tail call ptr @__errno_location() #12
  %773 = load i32, ptr %772, align 4, !tbaa !5
  %774 = load ptr, ptr @stderr, align 8, !tbaa !9
  %775 = call i32 @s2n_print_stacktrace(ptr noundef %774) #11
  %776 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %777 = trunc nuw i8 %776 to i1
  br i1 %777, label %778, label %782

778:                                              ; preds = %771
  %779 = load ptr, ptr @stderr, align 8, !tbaa !9
  %780 = call i32 @fileno(ptr noundef %779) #11
  %781 = call i32 @isatty(i32 noundef %780) #11
  %.not522 = icmp eq i32 %781, 0
  br i1 %.not522, label %782, label %783

782:                                              ; preds = %778, %771
  br label %783

783:                                              ; preds = %778, %782
  %.str.5.sink979 = phi ptr [ @.str.5, %782 ], [ @.str.2, %778 ]
  store i32 %773, ptr %772, align 4, !tbaa !5
  %784 = load ptr, ptr @stderr, align 8, !tbaa !9
  %785 = load i32, ptr @test_count, align 4, !tbaa !5
  %786 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %787 = load i32, ptr %786, align 4, !tbaa !5
  %788 = call ptr @s2n_strerror(i32 noundef %787, ptr noundef nonnull @.str.4) #11
  %789 = load i32, ptr %786, align 4, !tbaa !5
  %790 = call ptr @s2n_strerror_debug(i32 noundef %789, ptr noundef nonnull @.str.4) #11
  %791 = load i32, ptr %772, align 4, !tbaa !5
  %792 = call ptr @strerror(i32 noundef %791) #11
  %793 = load i32, ptr %772, align 4, !tbaa !5
  %794 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %784, ptr noundef nonnull %.str.5.sink979, i32 noundef %785, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 193, ptr noundef %788, ptr noundef %790, ptr noundef %792, i32 noundef %793) #13
  call void @exit(i32 noundef 1) #14
  unreachable

795:                                              ; preds = %766
  %796 = add nsw i32 %622, 7
  store i32 %796, ptr @test_count, align 4, !tbaa !5
  %797 = getelementptr inbounds i8, ptr %5, i64 8
  %798 = load i32, ptr %797, align 8, !tbaa !24
  %.not523 = icmp eq i32 %798, 0
  br i1 %.not523, label %799, label %823

799:                                              ; preds = %795
  %800 = tail call ptr @__errno_location() #12
  %801 = load i32, ptr %800, align 4, !tbaa !5
  %802 = load ptr, ptr @stderr, align 8, !tbaa !9
  %803 = call i32 @s2n_print_stacktrace(ptr noundef %802) #11
  %804 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %805 = trunc nuw i8 %804 to i1
  br i1 %805, label %806, label %810

806:                                              ; preds = %799
  %807 = load ptr, ptr @stderr, align 8, !tbaa !9
  %808 = call i32 @fileno(ptr noundef %807) #11
  %809 = call i32 @isatty(i32 noundef %808) #11
  %.not524 = icmp eq i32 %809, 0
  br i1 %.not524, label %810, label %811

810:                                              ; preds = %806, %799
  br label %811

811:                                              ; preds = %806, %810
  %.str.5.sink990 = phi ptr [ @.str.5, %810 ], [ @.str.2, %806 ]
  store i32 %801, ptr %800, align 4, !tbaa !5
  %812 = load ptr, ptr @stderr, align 8, !tbaa !9
  %813 = load i32, ptr @test_count, align 4, !tbaa !5
  %814 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %815 = load i32, ptr %814, align 4, !tbaa !5
  %816 = call ptr @s2n_strerror(i32 noundef %815, ptr noundef nonnull @.str.4) #11
  %817 = load i32, ptr %814, align 4, !tbaa !5
  %818 = call ptr @s2n_strerror_debug(i32 noundef %817, ptr noundef nonnull @.str.4) #11
  %819 = load i32, ptr %800, align 4, !tbaa !5
  %820 = call ptr @strerror(i32 noundef %819) #11
  %821 = load i32, ptr %800, align 4, !tbaa !5
  %822 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %812, ptr noundef nonnull %.str.5.sink990, i32 noundef %813, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 195, ptr noundef %816, ptr noundef %818, ptr noundef %820, i32 noundef %821) #13
  call void @exit(i32 noundef 1) #14
  unreachable

823:                                              ; preds = %795
  %824 = add nsw i32 %622, 8
  store i32 %824, ptr @test_count, align 4, !tbaa !5
  %825 = load ptr, ptr %5, align 8, !tbaa !25
  %826 = getelementptr inbounds i8, ptr %653, i64 4
  %lhsc525 = load i8, ptr %825, align 1
  %rhsc526 = load i8, ptr %826, align 1
  %827 = icmp eq i8 %lhsc525, %rhsc526
  br i1 %827, label %852, label %828

828:                                              ; preds = %823
  %829 = tail call ptr @__errno_location() #12
  %830 = load i32, ptr %829, align 4, !tbaa !5
  %831 = load ptr, ptr @stderr, align 8, !tbaa !9
  %832 = call i32 @s2n_print_stacktrace(ptr noundef %831) #11
  %833 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %834 = trunc nuw i8 %833 to i1
  br i1 %834, label %835, label %839

835:                                              ; preds = %828
  %836 = load ptr, ptr @stderr, align 8, !tbaa !9
  %837 = call i32 @fileno(ptr noundef %836) #11
  %838 = call i32 @isatty(i32 noundef %837) #11
  %.not527 = icmp eq i32 %838, 0
  br i1 %.not527, label %839, label %840

839:                                              ; preds = %835, %828
  br label %840

840:                                              ; preds = %835, %839
  %.str.5.sink1001 = phi ptr [ @.str.5, %839 ], [ @.str.2, %835 ]
  store i32 %830, ptr %829, align 4, !tbaa !5
  %841 = load ptr, ptr @stderr, align 8, !tbaa !9
  %842 = load i32, ptr @test_count, align 4, !tbaa !5
  %843 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %844 = load i32, ptr %843, align 4, !tbaa !5
  %845 = call ptr @s2n_strerror(i32 noundef %844, ptr noundef nonnull @.str.4) #11
  %846 = load i32, ptr %843, align 4, !tbaa !5
  %847 = call ptr @s2n_strerror_debug(i32 noundef %846, ptr noundef nonnull @.str.4) #11
  %848 = load i32, ptr %829, align 4, !tbaa !5
  %849 = call ptr @strerror(i32 noundef %848) #11
  %850 = load i32, ptr %829, align 4, !tbaa !5
  %851 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %841, ptr noundef nonnull %.str.5.sink1001, i32 noundef %842, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 196, ptr noundef %845, ptr noundef %847, ptr noundef %849, i32 noundef %850) #13
  call void @exit(i32 noundef 1) #14
  unreachable

852:                                              ; preds = %823
  %853 = add nsw i32 %622, 10
  store i32 %853, ptr @test_count, align 4, !tbaa !5
  %854 = getelementptr inbounds i8, ptr %653, i64 2
  %lhsc530 = load i8, ptr %768, align 1
  %rhsc531 = load i8, ptr %854, align 1
  %855 = icmp eq i8 %lhsc530, %rhsc531
  br i1 %855, label %880, label %856

856:                                              ; preds = %852
  %857 = tail call ptr @__errno_location() #12
  %858 = load i32, ptr %857, align 4, !tbaa !5
  %859 = load ptr, ptr @stderr, align 8, !tbaa !9
  %860 = call i32 @s2n_print_stacktrace(ptr noundef %859) #11
  %861 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %862 = trunc nuw i8 %861 to i1
  br i1 %862, label %863, label %867

863:                                              ; preds = %856
  %864 = load ptr, ptr @stderr, align 8, !tbaa !9
  %865 = call i32 @fileno(ptr noundef %864) #11
  %866 = call i32 @isatty(i32 noundef %865) #11
  %.not532 = icmp eq i32 %866, 0
  br i1 %.not532, label %867, label %868

867:                                              ; preds = %863, %856
  br label %868

868:                                              ; preds = %863, %867
  %.str.5.sink1012 = phi ptr [ @.str.5, %867 ], [ @.str.2, %863 ]
  store i32 %858, ptr %857, align 4, !tbaa !5
  %869 = load ptr, ptr @stderr, align 8, !tbaa !9
  %870 = load i32, ptr @test_count, align 4, !tbaa !5
  %871 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %872 = load i32, ptr %871, align 4, !tbaa !5
  %873 = call ptr @s2n_strerror(i32 noundef %872, ptr noundef nonnull @.str.4) #11
  %874 = load i32, ptr %871, align 4, !tbaa !5
  %875 = call ptr @s2n_strerror_debug(i32 noundef %874, ptr noundef nonnull @.str.4) #11
  %876 = load i32, ptr %857, align 4, !tbaa !5
  %877 = call ptr @strerror(i32 noundef %876) #11
  %878 = load i32, ptr %857, align 4, !tbaa !5
  %879 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %869, ptr noundef nonnull %.str.5.sink1012, i32 noundef %870, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 199, ptr noundef %873, ptr noundef %875, ptr noundef %877, i32 noundef %878) #13
  call void @exit(i32 noundef 1) #14
  unreachable

880:                                              ; preds = %852
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #11
  call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %8) #11
  %881 = call i32 @s2n_free(ptr noundef nonnull %7) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %7) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %10) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %10, i8 0, i64 24, i1 false)
  %882 = load i32, ptr @test_count, align 4, !tbaa !5
  %883 = add nsw i32 %882, 1
  store i32 %883, ptr @test_count, align 4, !tbaa !5
  %884 = load i8, ptr getelementptr inbounds (i8, ptr @s2n_aes256_gcm, i64 48), align 8, !tbaa !15
  %885 = zext i8 %884 to i32
  %886 = call i32 @s2n_alloc(ptr noundef nonnull %10, i32 noundef %885) #11
  %887 = icmp eq i32 %886, -1
  br i1 %887, label %888, label %912

888:                                              ; preds = %880
  %889 = tail call ptr @__errno_location() #12
  %890 = load i32, ptr %889, align 4, !tbaa !5
  %891 = load ptr, ptr @stderr, align 8, !tbaa !9
  %892 = call i32 @s2n_print_stacktrace(ptr noundef %891) #11
  %893 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %894 = trunc nuw i8 %893 to i1
  br i1 %894, label %895, label %899

895:                                              ; preds = %888
  %896 = load ptr, ptr @stderr, align 8, !tbaa !9
  %897 = call i32 @fileno(ptr noundef %896) #11
  %898 = call i32 @isatty(i32 noundef %897) #11
  %.not723 = icmp eq i32 %898, 0
  br i1 %.not723, label %899, label %900

899:                                              ; preds = %895, %888
  br label %900

900:                                              ; preds = %895, %899
  %.str.5.sink1023 = phi ptr [ @.str.5, %899 ], [ @.str.2, %895 ]
  store i32 %890, ptr %889, align 4, !tbaa !5
  %901 = load ptr, ptr @stderr, align 8, !tbaa !9
  %902 = load i32, ptr @test_count, align 4, !tbaa !5
  %903 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %904 = load i32, ptr %903, align 4, !tbaa !5
  %905 = call ptr @s2n_strerror(i32 noundef %904, ptr noundef nonnull @.str.4) #11
  %906 = load i32, ptr %903, align 4, !tbaa !5
  %907 = call ptr @s2n_strerror_debug(i32 noundef %906, ptr noundef nonnull @.str.4) #11
  %908 = load i32, ptr %889, align 4, !tbaa !5
  %909 = call ptr @strerror(i32 noundef %908) #11
  %910 = load i32, ptr %889, align 4, !tbaa !5
  %911 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %901, ptr noundef nonnull %.str.5.sink1023, i32 noundef %902, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 205, ptr noundef %905, ptr noundef %907, ptr noundef %909, i32 noundef %910) #13
  call void @exit(i32 noundef 1) #14
  unreachable

912:                                              ; preds = %880
  %913 = load i32, ptr @test_count, align 4, !tbaa !5
  %914 = add nsw i32 %913, 1
  store i32 %914, ptr @test_count, align 4, !tbaa !5
  %915 = call i32 @s2n_get_public_random_data(ptr noundef nonnull %10) #11
  %916 = call zeroext i1 @s2n_result_is_ok(i32 %915)
  br i1 %916, label %941, label %917

917:                                              ; preds = %912
  %918 = tail call ptr @__errno_location() #12
  %919 = load i32, ptr %918, align 4, !tbaa !5
  %920 = load ptr, ptr @stderr, align 8, !tbaa !9
  %921 = call i32 @s2n_print_stacktrace(ptr noundef %920) #11
  %922 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %923 = trunc nuw i8 %922 to i1
  br i1 %923, label %924, label %928

924:                                              ; preds = %917
  %925 = load ptr, ptr @stderr, align 8, !tbaa !9
  %926 = call i32 @fileno(ptr noundef %925) #11
  %927 = call i32 @isatty(i32 noundef %926) #11
  %.not533 = icmp eq i32 %927, 0
  br i1 %.not533, label %928, label %929

928:                                              ; preds = %924, %917
  br label %929

929:                                              ; preds = %924, %928
  %.str.5.sink1034 = phi ptr [ @.str.5, %928 ], [ @.str.2, %924 ]
  store i32 %919, ptr %918, align 4, !tbaa !5
  %930 = load ptr, ptr @stderr, align 8, !tbaa !9
  %931 = load i32, ptr @test_count, align 4, !tbaa !5
  %932 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %933 = load i32, ptr %932, align 4, !tbaa !5
  %934 = call ptr @s2n_strerror(i32 noundef %933, ptr noundef nonnull @.str.4) #11
  %935 = load i32, ptr %932, align 4, !tbaa !5
  %936 = call ptr @s2n_strerror_debug(i32 noundef %935, ptr noundef nonnull @.str.4) #11
  %937 = load i32, ptr %918, align 4, !tbaa !5
  %938 = call ptr @strerror(i32 noundef %937) #11
  %939 = load i32, ptr %918, align 4, !tbaa !5
  %940 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %930, ptr noundef nonnull %.str.5.sink1034, i32 noundef %931, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 206, ptr noundef %934, ptr noundef %936, ptr noundef %938, i32 noundef %939) #13
  call void @exit(i32 noundef 1) #14
  unreachable

941:                                              ; preds = %912
  call void @llvm.lifetime.start.p0(i64 72, ptr nonnull %11) #11
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %11, ptr noundef nonnull align 8 dereferenceable(24) %5, i64 24, i1 false), !tbaa.struct !17
  %942 = getelementptr inbounds i8, ptr %11, i64 24
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %942, ptr noundef nonnull align 8 dereferenceable(24) %10, i64 24, i1 false), !tbaa.struct !17
  %943 = getelementptr inbounds i8, ptr %11, i64 48
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %943, ptr noundef nonnull align 8 dereferenceable(24) %6, i64 24, i1 false), !tbaa.struct !17
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %12) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %12, i8 0, i64 32, i1 false)
  %944 = load i32, ptr @test_count, align 4, !tbaa !5
  %945 = add nsw i32 %944, 1
  store i32 %945, ptr @test_count, align 4, !tbaa !5
  %946 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_aes256_gcm, i64 96), align 8, !tbaa !19
  %947 = call i32 %946(ptr noundef nonnull %11, ptr noundef nonnull %12) #11
  %948 = call zeroext i1 @s2n_result_is_ok(i32 %947)
  br i1 %948, label %973, label %949

949:                                              ; preds = %941
  %950 = tail call ptr @__errno_location() #12
  %951 = load i32, ptr %950, align 4, !tbaa !5
  %952 = load ptr, ptr @stderr, align 8, !tbaa !9
  %953 = call i32 @s2n_print_stacktrace(ptr noundef %952) #11
  %954 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %955 = trunc nuw i8 %954 to i1
  br i1 %955, label %956, label %960

956:                                              ; preds = %949
  %957 = load ptr, ptr @stderr, align 8, !tbaa !9
  %958 = call i32 @fileno(ptr noundef %957) #11
  %959 = call i32 @isatty(i32 noundef %958) #11
  %.not534 = icmp eq i32 %959, 0
  br i1 %.not534, label %960, label %961

960:                                              ; preds = %956, %949
  br label %961

961:                                              ; preds = %956, %960
  %.str.5.sink1045 = phi ptr [ @.str.5, %960 ], [ @.str.2, %956 ]
  store i32 %951, ptr %950, align 4, !tbaa !5
  %962 = load ptr, ptr @stderr, align 8, !tbaa !9
  %963 = load i32, ptr @test_count, align 4, !tbaa !5
  %964 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %965 = load i32, ptr %964, align 4, !tbaa !5
  %966 = call ptr @s2n_strerror(i32 noundef %965, ptr noundef nonnull @.str.4) #11
  %967 = load i32, ptr %964, align 4, !tbaa !5
  %968 = call ptr @s2n_strerror_debug(i32 noundef %967, ptr noundef nonnull @.str.4) #11
  %969 = load i32, ptr %950, align 4, !tbaa !5
  %970 = call ptr @strerror(i32 noundef %969) #11
  %971 = load i32, ptr %950, align 4, !tbaa !5
  %972 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %962, ptr noundef nonnull %.str.5.sink1045, i32 noundef %963, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 215, ptr noundef %966, ptr noundef %968, ptr noundef %970, i32 noundef %971) #13
  call void @exit(i32 noundef 1) #14
  unreachable

973:                                              ; preds = %941
  %974 = load i32, ptr @test_count, align 4, !tbaa !5
  %975 = add nsw i32 %974, 1
  store i32 %975, ptr @test_count, align 4, !tbaa !5
  %976 = getelementptr inbounds i8, ptr %12, i64 8
  %977 = load i32, ptr %976, align 8, !tbaa !20
  %978 = icmp eq i32 %977, 6
  br i1 %978, label %1003, label %979

979:                                              ; preds = %973
  %980 = tail call ptr @__errno_location() #12
  %981 = load i32, ptr %980, align 4, !tbaa !5
  %982 = load ptr, ptr @stderr, align 8, !tbaa !9
  %983 = call i32 @s2n_print_stacktrace(ptr noundef %982) #11
  %984 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %985 = trunc nuw i8 %984 to i1
  br i1 %985, label %986, label %990

986:                                              ; preds = %979
  %987 = load ptr, ptr @stderr, align 8, !tbaa !9
  %988 = call i32 @fileno(ptr noundef %987) #11
  %989 = call i32 @isatty(i32 noundef %988) #11
  %.not535 = icmp eq i32 %989, 0
  br i1 %.not535, label %990, label %991

990:                                              ; preds = %986, %979
  br label %991

991:                                              ; preds = %986, %990
  %.str.5.sink1056 = phi ptr [ @.str.5, %990 ], [ @.str.2, %986 ]
  store i32 %981, ptr %980, align 4, !tbaa !5
  %992 = load ptr, ptr @stderr, align 8, !tbaa !9
  %993 = load i32, ptr @test_count, align 4, !tbaa !5
  %994 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %995 = load i32, ptr %994, align 4, !tbaa !5
  %996 = call ptr @s2n_strerror(i32 noundef %995, ptr noundef nonnull @.str.4) #11
  %997 = load i32, ptr %994, align 4, !tbaa !5
  %998 = call ptr @s2n_strerror_debug(i32 noundef %997, ptr noundef nonnull @.str.4) #11
  %999 = load i32, ptr %980, align 4, !tbaa !5
  %1000 = call ptr @strerror(i32 noundef %999) #11
  %1001 = load i32, ptr %980, align 4, !tbaa !5
  %1002 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %992, ptr noundef nonnull %.str.5.sink1056, i32 noundef %993, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.1, i32 noundef 216, ptr noundef %996, ptr noundef %998, ptr noundef %1000, i32 noundef %1001) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1003:                                             ; preds = %973
  %1004 = add nsw i32 %974, 2
  store i32 %1004, ptr @test_count, align 4, !tbaa !5
  %1005 = load ptr, ptr %12, align 8, !tbaa !23
  %1006 = getelementptr inbounds i8, ptr %12, i64 24
  %1007 = icmp eq ptr %1005, %1006
  br i1 %1007, label %1032, label %1008

1008:                                             ; preds = %1003
  %1009 = tail call ptr @__errno_location() #12
  %1010 = load i32, ptr %1009, align 4, !tbaa !5
  %1011 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1012 = call i32 @s2n_print_stacktrace(ptr noundef %1011) #11
  %1013 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1014 = trunc nuw i8 %1013 to i1
  br i1 %1014, label %1015, label %1019

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

1019:                                             ; preds = %1015, %1008
  br label %1020

1020:                                             ; preds = %1015, %1019
  %.str.5.sink1067 = phi ptr [ @.str.5, %1019 ], [ @.str.2, %1015 ]
  store i32 %1010, ptr %1009, align 4, !tbaa !5
  %1021 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1022 = load i32, ptr @test_count, align 4, !tbaa !5
  %1023 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1024 = load i32, ptr %1023, align 4, !tbaa !5
  %1025 = call ptr @s2n_strerror(i32 noundef %1024, ptr noundef nonnull @.str.4) #11
  %1026 = load i32, ptr %1023, align 4, !tbaa !5
  %1027 = call ptr @s2n_strerror_debug(i32 noundef %1026, ptr noundef nonnull @.str.4) #11
  %1028 = load i32, ptr %1009, align 4, !tbaa !5
  %1029 = call ptr @strerror(i32 noundef %1028) #11
  %1030 = load i32, ptr %1009, align 4, !tbaa !5
  %1031 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1021, ptr noundef nonnull %.str.5.sink1067, i32 noundef %1022, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 217, ptr noundef %1025, ptr noundef %1027, ptr noundef %1029, i32 noundef %1030) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1032:                                             ; preds = %1003
  %1033 = add nsw i32 %974, 3
  store i32 %1033, ptr @test_count, align 4, !tbaa !5
  %1034 = getelementptr inbounds i8, ptr %10, i64 8
  %1035 = load i32, ptr %1034, align 8, !tbaa !24
  %1036 = icmp eq i32 %1035, 1
  br i1 %1036, label %1061, label %1037

1037:                                             ; preds = %1032
  %1038 = tail call ptr @__errno_location() #12
  %1039 = load i32, ptr %1038, align 4, !tbaa !5
  %1040 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1041 = call i32 @s2n_print_stacktrace(ptr noundef %1040) #11
  %1042 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1043 = trunc nuw i8 %1042 to i1
  br i1 %1043, label %1044, label %1048

1044:                                             ; preds = %1037
  %1045 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1046 = call i32 @fileno(ptr noundef %1045) #11
  %1047 = call i32 @isatty(i32 noundef %1046) #11
  %.not537 = icmp eq i32 %1047, 0
  br i1 %.not537, label %1048, label %1049

1048:                                             ; preds = %1044, %1037
  br label %1049

1049:                                             ; preds = %1044, %1048
  %.str.5.sink1078 = phi ptr [ @.str.5, %1048 ], [ @.str.2, %1044 ]
  store i32 %1039, ptr %1038, align 4, !tbaa !5
  %1050 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1051 = load i32, ptr @test_count, align 4, !tbaa !5
  %1052 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1053 = load i32, ptr %1052, align 4, !tbaa !5
  %1054 = call ptr @s2n_strerror(i32 noundef %1053, ptr noundef nonnull @.str.4) #11
  %1055 = load i32, ptr %1052, align 4, !tbaa !5
  %1056 = call ptr @s2n_strerror_debug(i32 noundef %1055, ptr noundef nonnull @.str.4) #11
  %1057 = load i32, ptr %1038, align 4, !tbaa !5
  %1058 = call ptr @strerror(i32 noundef %1057) #11
  %1059 = load i32, ptr %1038, align 4, !tbaa !5
  %1060 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1050, ptr noundef nonnull %.str.5.sink1078, i32 noundef %1051, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 221, ptr noundef %1054, ptr noundef %1056, ptr noundef %1058, i32 noundef %1059) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1061:                                             ; preds = %1032
  %1062 = add nsw i32 %974, 4
  store i32 %1062, ptr @test_count, align 4, !tbaa !5
  %1063 = load ptr, ptr %10, align 8, !tbaa !25
  %1064 = getelementptr inbounds i8, ptr %1005, i64 3
  %lhsc538 = load i8, ptr %1063, align 1
  %rhsc539 = load i8, ptr %1064, align 1
  %1065 = icmp eq i8 %lhsc538, %rhsc539
  br i1 %1065, label %1090, label %1066

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
  %.not540 = icmp eq i32 %1076, 0
  br i1 %.not540, label %1077, label %1078

1077:                                             ; preds = %1073, %1066
  br label %1078

1078:                                             ; preds = %1073, %1077
  %.str.5.sink1089 = phi ptr [ @.str.5, %1077 ], [ @.str.2, %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 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1082 = load i32, ptr %1081, align 4, !tbaa !5
  %1083 = call ptr @s2n_strerror(i32 noundef %1082, ptr noundef nonnull @.str.4) #11
  %1084 = load i32, ptr %1081, align 4, !tbaa !5
  %1085 = call ptr @s2n_strerror_debug(i32 noundef %1084, ptr noundef nonnull @.str.4) #11
  %1086 = load i32, ptr %1067, align 4, !tbaa !5
  %1087 = call ptr @strerror(i32 noundef %1086) #11
  %1088 = load i32, ptr %1067, align 4, !tbaa !5
  %1089 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1079, ptr noundef nonnull %.str.5.sink1089, i32 noundef %1080, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 222, ptr noundef %1083, ptr noundef %1085, ptr noundef %1087, i32 noundef %1088) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1090:                                             ; preds = %1061
  %1091 = add nsw i32 %974, 5
  store i32 %1091, ptr @test_count, align 4, !tbaa !5
  %1092 = load i32, ptr %740, align 8, !tbaa !24
  %.not541 = icmp eq i32 %1092, 0
  br i1 %.not541, label %1093, label %1117

1093:                                             ; preds = %1090
  %1094 = tail call ptr @__errno_location() #12
  %1095 = load i32, ptr %1094, align 4, !tbaa !5
  %1096 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1097 = call i32 @s2n_print_stacktrace(ptr noundef %1096) #11
  %1098 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1099 = trunc nuw i8 %1098 to i1
  br i1 %1099, label %1100, label %1104

1100:                                             ; preds = %1093
  %1101 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1102 = call i32 @fileno(ptr noundef %1101) #11
  %1103 = call i32 @isatty(i32 noundef %1102) #11
  %.not542 = icmp eq i32 %1103, 0
  br i1 %.not542, label %1104, label %1105

1104:                                             ; preds = %1100, %1093
  br label %1105

1105:                                             ; preds = %1100, %1104
  %.str.5.sink1100 = phi ptr [ @.str.5, %1104 ], [ @.str.2, %1100 ]
  store i32 %1095, ptr %1094, align 4, !tbaa !5
  %1106 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1107 = load i32, ptr @test_count, align 4, !tbaa !5
  %1108 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1109 = load i32, ptr %1108, align 4, !tbaa !5
  %1110 = call ptr @s2n_strerror(i32 noundef %1109, ptr noundef nonnull @.str.4) #11
  %1111 = load i32, ptr %1108, align 4, !tbaa !5
  %1112 = call ptr @s2n_strerror_debug(i32 noundef %1111, ptr noundef nonnull @.str.4) #11
  %1113 = load i32, ptr %1094, align 4, !tbaa !5
  %1114 = call ptr @strerror(i32 noundef %1113) #11
  %1115 = load i32, ptr %1094, align 4, !tbaa !5
  %1116 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1106, ptr noundef nonnull %.str.5.sink1100, i32 noundef %1107, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 224, ptr noundef %1110, ptr noundef %1112, ptr noundef %1114, i32 noundef %1115) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1117:                                             ; preds = %1090
  %1118 = add nsw i32 %974, 6
  store i32 %1118, ptr @test_count, align 4, !tbaa !5
  %1119 = load ptr, ptr %6, align 8, !tbaa !25
  %1120 = getelementptr inbounds i8, ptr %1005, i64 5
  %lhsc543 = load i8, ptr %1119, align 1
  %rhsc544 = load i8, ptr %1120, align 1
  %1121 = icmp eq i8 %lhsc543, %rhsc544
  br i1 %1121, label %1146, label %1122

1122:                                             ; preds = %1117
  %1123 = tail call ptr @__errno_location() #12
  %1124 = load i32, ptr %1123, align 4, !tbaa !5
  %1125 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1126 = call i32 @s2n_print_stacktrace(ptr noundef %1125) #11
  %1127 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1128 = trunc nuw i8 %1127 to i1
  br i1 %1128, label %1129, label %1133

1129:                                             ; preds = %1122
  %1130 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1131 = call i32 @fileno(ptr noundef %1130) #11
  %1132 = call i32 @isatty(i32 noundef %1131) #11
  %.not545 = icmp eq i32 %1132, 0
  br i1 %.not545, label %1133, label %1134

1133:                                             ; preds = %1129, %1122
  br label %1134

1134:                                             ; preds = %1129, %1133
  %.str.5.sink1111 = phi ptr [ @.str.5, %1133 ], [ @.str.2, %1129 ]
  store i32 %1124, ptr %1123, 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 nonnull @.str.4) #11
  %1140 = load i32, ptr %1137, align 4, !tbaa !5
  %1141 = call ptr @s2n_strerror_debug(i32 noundef %1140, ptr noundef nonnull @.str.4) #11
  %1142 = load i32, ptr %1123, align 4, !tbaa !5
  %1143 = call ptr @strerror(i32 noundef %1142) #11
  %1144 = load i32, ptr %1123, align 4, !tbaa !5
  %1145 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1135, ptr noundef nonnull %.str.5.sink1111, i32 noundef %1136, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 225, ptr noundef %1139, ptr noundef %1141, ptr noundef %1143, i32 noundef %1144) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1146:                                             ; preds = %1117
  %1147 = add nsw i32 %974, 7
  store i32 %1147, ptr @test_count, align 4, !tbaa !5
  %1148 = load i32, ptr %797, align 8, !tbaa !24
  %.not546 = icmp eq i32 %1148, 0
  br i1 %.not546, label %1149, label %1173

1149:                                             ; preds = %1146
  %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
  %.not547 = icmp eq i32 %1159, 0
  br i1 %.not547, label %1160, label %1161

1160:                                             ; preds = %1156, %1149
  br label %1161

1161:                                             ; preds = %1156, %1160
  %.str.5.sink1122 = phi ptr [ @.str.5, %1160 ], [ @.str.2, %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 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1165 = load i32, ptr %1164, align 4, !tbaa !5
  %1166 = call ptr @s2n_strerror(i32 noundef %1165, ptr noundef nonnull @.str.4) #11
  %1167 = load i32, ptr %1164, align 4, !tbaa !5
  %1168 = call ptr @s2n_strerror_debug(i32 noundef %1167, ptr noundef nonnull @.str.4) #11
  %1169 = load i32, ptr %1150, align 4, !tbaa !5
  %1170 = call ptr @strerror(i32 noundef %1169) #11
  %1171 = load i32, ptr %1150, align 4, !tbaa !5
  %1172 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1162, ptr noundef nonnull %.str.5.sink1122, i32 noundef %1163, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 227, ptr noundef %1166, ptr noundef %1168, ptr noundef %1170, i32 noundef %1171) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1173:                                             ; preds = %1146
  %1174 = add nsw i32 %974, 8
  store i32 %1174, ptr @test_count, align 4, !tbaa !5
  %1175 = load ptr, ptr %5, align 8, !tbaa !25
  %1176 = getelementptr inbounds i8, ptr %1005, i64 4
  %lhsc548 = load i8, ptr %1175, align 1
  %rhsc549 = load i8, ptr %1176, align 1
  %1177 = icmp eq i8 %lhsc548, %rhsc549
  br i1 %1177, label %1202, label %1178

1178:                                             ; preds = %1173
  %1179 = tail call ptr @__errno_location() #12
  %1180 = load i32, ptr %1179, align 4, !tbaa !5
  %1181 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1182 = call i32 @s2n_print_stacktrace(ptr noundef %1181) #11
  %1183 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1184 = trunc nuw i8 %1183 to i1
  br i1 %1184, label %1185, label %1189

1185:                                             ; preds = %1178
  %1186 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1187 = call i32 @fileno(ptr noundef %1186) #11
  %1188 = call i32 @isatty(i32 noundef %1187) #11
  %.not550 = icmp eq i32 %1188, 0
  br i1 %.not550, label %1189, label %1190

1189:                                             ; preds = %1185, %1178
  br label %1190

1190:                                             ; preds = %1185, %1189
  %.str.5.sink1133 = phi ptr [ @.str.5, %1189 ], [ @.str.2, %1185 ]
  store i32 %1180, ptr %1179, align 4, !tbaa !5
  %1191 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1192 = load i32, ptr @test_count, align 4, !tbaa !5
  %1193 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1194 = load i32, ptr %1193, align 4, !tbaa !5
  %1195 = call ptr @s2n_strerror(i32 noundef %1194, ptr noundef nonnull @.str.4) #11
  %1196 = load i32, ptr %1193, align 4, !tbaa !5
  %1197 = call ptr @s2n_strerror_debug(i32 noundef %1196, ptr noundef nonnull @.str.4) #11
  %1198 = load i32, ptr %1179, align 4, !tbaa !5
  %1199 = call ptr @strerror(i32 noundef %1198) #11
  %1200 = load i32, ptr %1179, align 4, !tbaa !5
  %1201 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1191, ptr noundef nonnull %.str.5.sink1133, i32 noundef %1192, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 228, ptr noundef %1195, ptr noundef %1197, ptr noundef %1199, i32 noundef %1200) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1202:                                             ; preds = %1173
  %1203 = add nsw i32 %974, 10
  store i32 %1203, ptr @test_count, align 4, !tbaa !5
  %1204 = getelementptr inbounds i8, ptr %1005, i64 2
  %lhsc553 = load i8, ptr %1119, align 1
  %rhsc554 = load i8, ptr %1204, align 1
  %1205 = icmp eq i8 %lhsc553, %rhsc554
  br i1 %1205, label %1230, label %1206

1206:                                             ; preds = %1202
  %1207 = tail call ptr @__errno_location() #12
  %1208 = load i32, ptr %1207, align 4, !tbaa !5
  %1209 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1210 = call i32 @s2n_print_stacktrace(ptr noundef %1209) #11
  %1211 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1212 = trunc nuw i8 %1211 to i1
  br i1 %1212, label %1213, label %1217

1213:                                             ; preds = %1206
  %1214 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1215 = call i32 @fileno(ptr noundef %1214) #11
  %1216 = call i32 @isatty(i32 noundef %1215) #11
  %.not555 = icmp eq i32 %1216, 0
  br i1 %.not555, label %1217, label %1218

1217:                                             ; preds = %1213, %1206
  br label %1218

1218:                                             ; preds = %1213, %1217
  %.str.5.sink1144 = phi ptr [ @.str.5, %1217 ], [ @.str.2, %1213 ]
  store i32 %1208, ptr %1207, align 4, !tbaa !5
  %1219 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1220 = load i32, ptr @test_count, align 4, !tbaa !5
  %1221 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1222 = load i32, ptr %1221, align 4, !tbaa !5
  %1223 = call ptr @s2n_strerror(i32 noundef %1222, ptr noundef nonnull @.str.4) #11
  %1224 = load i32, ptr %1221, align 4, !tbaa !5
  %1225 = call ptr @s2n_strerror_debug(i32 noundef %1224, ptr noundef nonnull @.str.4) #11
  %1226 = load i32, ptr %1207, align 4, !tbaa !5
  %1227 = call ptr @strerror(i32 noundef %1226) #11
  %1228 = load i32, ptr %1207, align 4, !tbaa !5
  %1229 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1219, ptr noundef nonnull %.str.5.sink1144, i32 noundef %1220, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 231, ptr noundef %1223, ptr noundef %1225, ptr noundef %1227, i32 noundef %1228) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1230:                                             ; preds = %1202
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #11
  call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %11) #11
  %1231 = call i32 @s2n_free(ptr noundef nonnull %10) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %10) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %6) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %5) #11
  call void @llvm.lifetime.end.p0(i64 936, ptr nonnull %4) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #11
  %1232 = call ptr @s2n_connection_new(i32 noundef 0) #11
  store ptr %1232, ptr %13, align 8, !tbaa !9
  %1233 = load i32, ptr @test_count, align 4, !tbaa !5
  %1234 = add nsw i32 %1233, 1
  store i32 %1234, ptr @test_count, align 4, !tbaa !5
  %1235 = call i32 @s2n_test_configure_connection_for_ktls(ptr noundef %1232)
  %1236 = call zeroext i1 @s2n_result_is_ok(i32 %1235)
  br i1 %1236, label %1261, label %1237

1237:                                             ; preds = %1230
  %1238 = tail call ptr @__errno_location() #12
  %1239 = load i32, ptr %1238, align 4, !tbaa !5
  %1240 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1241 = call i32 @s2n_print_stacktrace(ptr noundef %1240) #11
  %1242 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1243 = trunc nuw i8 %1242 to i1
  br i1 %1243, label %1244, label %1248

1244:                                             ; preds = %1237
  %1245 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1246 = call i32 @fileno(ptr noundef %1245) #11
  %1247 = call i32 @isatty(i32 noundef %1246) #11
  %.not556 = icmp eq i32 %1247, 0
  br i1 %.not556, label %1248, label %1249

1248:                                             ; preds = %1244, %1237
  br label %1249

1249:                                             ; preds = %1244, %1248
  %.str.5.sink1155 = phi ptr [ @.str.5, %1248 ], [ @.str.2, %1244 ]
  store i32 %1239, ptr %1238, align 4, !tbaa !5
  %1250 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1251 = load i32, ptr @test_count, align 4, !tbaa !5
  %1252 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1253 = load i32, ptr %1252, align 4, !tbaa !5
  %1254 = call ptr @s2n_strerror(i32 noundef %1253, ptr noundef nonnull @.str.4) #11
  %1255 = load i32, ptr %1252, align 4, !tbaa !5
  %1256 = call ptr @s2n_strerror_debug(i32 noundef %1255, ptr noundef nonnull @.str.4) #11
  %1257 = load i32, ptr %1238, align 4, !tbaa !5
  %1258 = call ptr @strerror(i32 noundef %1257) #11
  %1259 = load i32, ptr %1238, align 4, !tbaa !5
  %1260 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1250, ptr noundef nonnull %.str.5.sink1155, i32 noundef %1251, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 241, ptr noundef %1254, ptr noundef %1256, ptr noundef %1258, i32 noundef %1259) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1261:                                             ; preds = %1230
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %14) #11
  store ptr null, ptr %14, align 8, !tbaa !9
  %1262 = load i32, ptr @test_count, align 4, !tbaa !5
  %1263 = add nsw i32 %1262, 1
  store i32 %1263, ptr @test_count, align 4, !tbaa !5
  %1264 = load ptr, ptr %13, align 8, !tbaa !9
  %1265 = call i32 @s2n_connection_get_secure_cipher(ptr noundef %1264, ptr noundef nonnull %14) #11
  %1266 = call zeroext i1 @s2n_result_is_ok(i32 %1265)
  br i1 %1266, label %1291, label %1267

1267:                                             ; preds = %1261
  %1268 = tail call ptr @__errno_location() #12
  %1269 = load i32, ptr %1268, align 4, !tbaa !5
  %1270 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1271 = call i32 @s2n_print_stacktrace(ptr noundef %1270) #11
  %1272 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1273 = trunc nuw i8 %1272 to i1
  br i1 %1273, label %1274, label %1278

1274:                                             ; preds = %1267
  %1275 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1276 = call i32 @fileno(ptr noundef %1275) #11
  %1277 = call i32 @isatty(i32 noundef %1276) #11
  %.not557 = icmp eq i32 %1277, 0
  br i1 %.not557, label %1278, label %1279

1278:                                             ; preds = %1274, %1267
  br label %1279

1279:                                             ; preds = %1274, %1278
  %.str.5.sink1166 = phi ptr [ @.str.5, %1278 ], [ @.str.2, %1274 ]
  store i32 %1269, ptr %1268, align 4, !tbaa !5
  %1280 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1281 = load i32, ptr @test_count, align 4, !tbaa !5
  %1282 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1283 = load i32, ptr %1282, align 4, !tbaa !5
  %1284 = call ptr @s2n_strerror(i32 noundef %1283, ptr noundef nonnull @.str.4) #11
  %1285 = load i32, ptr %1282, align 4, !tbaa !5
  %1286 = call ptr @s2n_strerror_debug(i32 noundef %1285, ptr noundef nonnull @.str.4) #11
  %1287 = load i32, ptr %1268, align 4, !tbaa !5
  %1288 = call ptr @strerror(i32 noundef %1287) #11
  %1289 = load i32, ptr %1268, align 4, !tbaa !5
  %1290 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1280, ptr noundef nonnull %.str.5.sink1166, i32 noundef %1281, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.1, i32 noundef 244, ptr noundef %1284, ptr noundef %1286, ptr noundef %1288, i32 noundef %1289) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1291:                                             ; preds = %1261
  %1292 = load i32, ptr @test_count, align 4, !tbaa !5
  %1293 = add nsw i32 %1292, 1
  store i32 %1293, ptr @test_count, align 4, !tbaa !5
  %1294 = load ptr, ptr %14, align 8, !tbaa !9
  %1295 = icmp eq ptr %1294, @s2n_aes128_gcm
  br i1 %1295, label %1320, label %1296

1296:                                             ; preds = %1291
  %1297 = tail call ptr @__errno_location() #12
  %1298 = load i32, ptr %1297, align 4, !tbaa !5
  %1299 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1300 = call i32 @s2n_print_stacktrace(ptr noundef %1299) #11
  %1301 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1302 = trunc nuw i8 %1301 to i1
  br i1 %1302, label %1303, label %1307

1303:                                             ; preds = %1296
  %1304 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1305 = call i32 @fileno(ptr noundef %1304) #11
  %1306 = call i32 @isatty(i32 noundef %1305) #11
  %.not558 = icmp eq i32 %1306, 0
  br i1 %.not558, label %1307, label %1308

1307:                                             ; preds = %1303, %1296
  br label %1308

1308:                                             ; preds = %1303, %1307
  %.str.5.sink1177 = phi ptr [ @.str.5, %1307 ], [ @.str.2, %1303 ]
  store i32 %1298, ptr %1297, align 4, !tbaa !5
  %1309 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1310 = load i32, ptr @test_count, align 4, !tbaa !5
  %1311 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1312 = load i32, ptr %1311, align 4, !tbaa !5
  %1313 = call ptr @s2n_strerror(i32 noundef %1312, ptr noundef nonnull @.str.4) #11
  %1314 = load i32, ptr %1311, align 4, !tbaa !5
  %1315 = call ptr @s2n_strerror_debug(i32 noundef %1314, ptr noundef nonnull @.str.4) #11
  %1316 = load i32, ptr %1297, align 4, !tbaa !5
  %1317 = call ptr @strerror(i32 noundef %1316) #11
  %1318 = load i32, ptr %1297, align 4, !tbaa !5
  %1319 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1309, ptr noundef nonnull %.str.5.sink1177, i32 noundef %1310, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.1, i32 noundef 245, ptr noundef %1313, ptr noundef %1315, ptr noundef %1317, i32 noundef %1318) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1320:                                             ; preds = %1291
  %1321 = add nsw i32 %1292, 2
  store i32 %1321, ptr @test_count, align 4, !tbaa !5
  %1322 = call i32 @s2n_ktls_set_setsockopt_cb(ptr noundef nonnull @s2n_test_setsockopt_aes128_tx) #11
  %1323 = call zeroext i1 @s2n_result_is_ok(i32 %1322)
  br i1 %1323, label %1348, label %1324

1324:                                             ; preds = %1320
  %1325 = tail call ptr @__errno_location() #12
  %1326 = load i32, ptr %1325, align 4, !tbaa !5
  %1327 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1328 = call i32 @s2n_print_stacktrace(ptr noundef %1327) #11
  %1329 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1330 = trunc nuw i8 %1329 to i1
  br i1 %1330, label %1331, label %1335

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

1335:                                             ; preds = %1331, %1324
  br label %1336

1336:                                             ; preds = %1331, %1335
  %.str.5.sink1188 = phi ptr [ @.str.5, %1335 ], [ @.str.2, %1331 ]
  store i32 %1326, ptr %1325, align 4, !tbaa !5
  %1337 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1338 = load i32, ptr @test_count, align 4, !tbaa !5
  %1339 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1340 = load i32, ptr %1339, align 4, !tbaa !5
  %1341 = call ptr @s2n_strerror(i32 noundef %1340, ptr noundef nonnull @.str.4) #11
  %1342 = load i32, ptr %1339, align 4, !tbaa !5
  %1343 = call ptr @s2n_strerror_debug(i32 noundef %1342, ptr noundef nonnull @.str.4) #11
  %1344 = load i32, ptr %1325, align 4, !tbaa !5
  %1345 = call ptr @strerror(i32 noundef %1344) #11
  %1346 = load i32, ptr %1325, align 4, !tbaa !5
  %1347 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1337, ptr noundef nonnull %.str.5.sink1188, i32 noundef %1338, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 247, ptr noundef %1341, ptr noundef %1343, ptr noundef %1345, i32 noundef %1346) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1348:                                             ; preds = %1320
  %1349 = load i32, ptr @test_count, align 4, !tbaa !5
  %1350 = add nsw i32 %1349, 1
  store i32 %1350, ptr @test_count, align 4, !tbaa !5
  %1351 = load ptr, ptr %13, align 8, !tbaa !9
  %1352 = call i32 @s2n_connection_ktls_enable_send(ptr noundef %1351) #11
  %1353 = icmp eq i32 %1352, -1
  br i1 %1353, label %1354, label %1378

1354:                                             ; preds = %1348
  %1355 = tail call ptr @__errno_location() #12
  %1356 = load i32, ptr %1355, align 4, !tbaa !5
  %1357 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1358 = call i32 @s2n_print_stacktrace(ptr noundef %1357) #11
  %1359 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1360 = trunc nuw i8 %1359 to i1
  br i1 %1360, label %1361, label %1365

1361:                                             ; preds = %1354
  %1362 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1363 = call i32 @fileno(ptr noundef %1362) #11
  %1364 = call i32 @isatty(i32 noundef %1363) #11
  %.not722 = icmp eq i32 %1364, 0
  br i1 %.not722, label %1365, label %1366

1365:                                             ; preds = %1361, %1354
  br label %1366

1366:                                             ; preds = %1361, %1365
  %.str.5.sink1199 = phi ptr [ @.str.5, %1365 ], [ @.str.2, %1361 ]
  store i32 %1356, ptr %1355, align 4, !tbaa !5
  %1367 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1368 = load i32, ptr @test_count, align 4, !tbaa !5
  %1369 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1370 = load i32, ptr %1369, align 4, !tbaa !5
  %1371 = call ptr @s2n_strerror(i32 noundef %1370, ptr noundef nonnull @.str.4) #11
  %1372 = load i32, ptr %1369, align 4, !tbaa !5
  %1373 = call ptr @s2n_strerror_debug(i32 noundef %1372, ptr noundef nonnull @.str.4) #11
  %1374 = load i32, ptr %1355, align 4, !tbaa !5
  %1375 = call ptr @strerror(i32 noundef %1374) #11
  %1376 = load i32, ptr %1355, align 4, !tbaa !5
  %1377 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1367, ptr noundef nonnull %.str.5.sink1199, i32 noundef %1368, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 248, ptr noundef %1371, ptr noundef %1373, ptr noundef %1375, i32 noundef %1376) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1378:                                             ; preds = %1348
  %1379 = load i32, ptr @test_count, align 4, !tbaa !5
  %1380 = add nsw i32 %1379, 1
  store i32 %1380, ptr @test_count, align 4, !tbaa !5
  %1381 = load ptr, ptr %13, align 8, !tbaa !9
  %1382 = load i32, ptr %1381, align 8
  %1383 = and i32 %1382, 262144
  %.not560 = icmp eq i32 %1383, 0
  br i1 %.not560, label %1384, label %1408

1384:                                             ; preds = %1378
  %1385 = tail call ptr @__errno_location() #12
  %1386 = load i32, ptr %1385, align 4, !tbaa !5
  %1387 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1388 = call i32 @s2n_print_stacktrace(ptr noundef %1387) #11
  %1389 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1390 = trunc nuw i8 %1389 to i1
  br i1 %1390, label %1391, label %1395

1391:                                             ; preds = %1384
  %1392 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1393 = call i32 @fileno(ptr noundef %1392) #11
  %1394 = call i32 @isatty(i32 noundef %1393) #11
  %.not561 = icmp eq i32 %1394, 0
  br i1 %.not561, label %1395, label %1396

1395:                                             ; preds = %1391, %1384
  br label %1396

1396:                                             ; preds = %1391, %1395
  %.str.5.sink1210 = phi ptr [ @.str.5, %1395 ], [ @.str.2, %1391 ]
  store i32 %1386, ptr %1385, align 4, !tbaa !5
  %1397 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1398 = load i32, ptr @test_count, align 4, !tbaa !5
  %1399 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1400 = load i32, ptr %1399, align 4, !tbaa !5
  %1401 = call ptr @s2n_strerror(i32 noundef %1400, ptr noundef nonnull @.str.4) #11
  %1402 = load i32, ptr %1399, align 4, !tbaa !5
  %1403 = call ptr @s2n_strerror_debug(i32 noundef %1402, ptr noundef nonnull @.str.4) #11
  %1404 = load i32, ptr %1385, align 4, !tbaa !5
  %1405 = call ptr @strerror(i32 noundef %1404) #11
  %1406 = load i32, ptr %1385, align 4, !tbaa !5
  %1407 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1397, ptr noundef nonnull %.str.5.sink1210, i32 noundef %1398, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.1, i32 noundef 249, ptr noundef %1401, ptr noundef %1403, ptr noundef %1405, i32 noundef %1406) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1408:                                             ; preds = %1378
  %1409 = add nsw i32 %1379, 2
  store i32 %1409, ptr @test_count, align 4, !tbaa !5
  %1410 = call i32 @s2n_ktls_set_setsockopt_cb(ptr noundef nonnull @s2n_test_setsockopt_aes128_rx) #11
  %1411 = call zeroext i1 @s2n_result_is_ok(i32 %1410)
  br i1 %1411, label %1436, label %1412

1412:                                             ; preds = %1408
  %1413 = tail call ptr @__errno_location() #12
  %1414 = load i32, ptr %1413, align 4, !tbaa !5
  %1415 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1416 = call i32 @s2n_print_stacktrace(ptr noundef %1415) #11
  %1417 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1418 = trunc nuw i8 %1417 to i1
  br i1 %1418, label %1419, label %1423

1419:                                             ; preds = %1412
  %1420 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1421 = call i32 @fileno(ptr noundef %1420) #11
  %1422 = call i32 @isatty(i32 noundef %1421) #11
  %.not562 = icmp eq i32 %1422, 0
  br i1 %.not562, label %1423, label %1424

1423:                                             ; preds = %1419, %1412
  br label %1424

1424:                                             ; preds = %1419, %1423
  %.str.5.sink1221 = phi ptr [ @.str.5, %1423 ], [ @.str.2, %1419 ]
  store i32 %1414, ptr %1413, align 4, !tbaa !5
  %1425 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1426 = load i32, ptr @test_count, align 4, !tbaa !5
  %1427 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1428 = load i32, ptr %1427, align 4, !tbaa !5
  %1429 = call ptr @s2n_strerror(i32 noundef %1428, ptr noundef nonnull @.str.4) #11
  %1430 = load i32, ptr %1427, align 4, !tbaa !5
  %1431 = call ptr @s2n_strerror_debug(i32 noundef %1430, ptr noundef nonnull @.str.4) #11
  %1432 = load i32, ptr %1413, align 4, !tbaa !5
  %1433 = call ptr @strerror(i32 noundef %1432) #11
  %1434 = load i32, ptr %1413, align 4, !tbaa !5
  %1435 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1425, ptr noundef nonnull %.str.5.sink1221, i32 noundef %1426, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.1, i32 noundef 251, ptr noundef %1429, ptr noundef %1431, ptr noundef %1433, i32 noundef %1434) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1436:                                             ; preds = %1408
  %1437 = load i32, ptr @test_count, align 4, !tbaa !5
  %1438 = add nsw i32 %1437, 1
  store i32 %1438, ptr @test_count, align 4, !tbaa !5
  %1439 = load ptr, ptr %13, align 8, !tbaa !9
  %1440 = call i32 @s2n_connection_ktls_enable_recv(ptr noundef %1439) #11
  %1441 = icmp eq i32 %1440, -1
  br i1 %1441, label %1442, label %1466

1442:                                             ; preds = %1436
  %1443 = tail call ptr @__errno_location() #12
  %1444 = load i32, ptr %1443, align 4, !tbaa !5
  %1445 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1446 = call i32 @s2n_print_stacktrace(ptr noundef %1445) #11
  %1447 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1448 = trunc nuw i8 %1447 to i1
  br i1 %1448, label %1449, label %1453

1449:                                             ; preds = %1442
  %1450 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1451 = call i32 @fileno(ptr noundef %1450) #11
  %1452 = call i32 @isatty(i32 noundef %1451) #11
  %.not721 = icmp eq i32 %1452, 0
  br i1 %.not721, label %1453, label %1454

1453:                                             ; preds = %1449, %1442
  br label %1454

1454:                                             ; preds = %1449, %1453
  %.str.5.sink1232 = phi ptr [ @.str.5, %1453 ], [ @.str.2, %1449 ]
  store i32 %1444, ptr %1443, align 4, !tbaa !5
  %1455 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1456 = load i32, ptr @test_count, align 4, !tbaa !5
  %1457 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1458 = load i32, ptr %1457, align 4, !tbaa !5
  %1459 = call ptr @s2n_strerror(i32 noundef %1458, ptr noundef nonnull @.str.4) #11
  %1460 = load i32, ptr %1457, align 4, !tbaa !5
  %1461 = call ptr @s2n_strerror_debug(i32 noundef %1460, ptr noundef nonnull @.str.4) #11
  %1462 = load i32, ptr %1443, align 4, !tbaa !5
  %1463 = call ptr @strerror(i32 noundef %1462) #11
  %1464 = load i32, ptr %1443, align 4, !tbaa !5
  %1465 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1455, ptr noundef nonnull %.str.5.sink1232, i32 noundef %1456, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.1, i32 noundef 252, ptr noundef %1459, ptr noundef %1461, ptr noundef %1463, i32 noundef %1464) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1466:                                             ; preds = %1436
  %1467 = load i32, ptr @test_count, align 4, !tbaa !5
  %1468 = add nsw i32 %1467, 1
  store i32 %1468, ptr @test_count, align 4, !tbaa !5
  %1469 = load ptr, ptr %13, align 8, !tbaa !9
  %1470 = load i32, ptr %1469, align 8
  %1471 = and i32 %1470, 524288
  %.not563 = icmp eq i32 %1471, 0
  br i1 %.not563, label %1472, label %1496

1472:                                             ; preds = %1466
  %1473 = tail call ptr @__errno_location() #12
  %1474 = load i32, ptr %1473, align 4, !tbaa !5
  %1475 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1476 = call i32 @s2n_print_stacktrace(ptr noundef %1475) #11
  %1477 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1478 = trunc nuw i8 %1477 to i1
  br i1 %1478, label %1479, label %1483

1479:                                             ; preds = %1472
  %1480 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1481 = call i32 @fileno(ptr noundef %1480) #11
  %1482 = call i32 @isatty(i32 noundef %1481) #11
  %.not564 = icmp eq i32 %1482, 0
  br i1 %.not564, label %1483, label %1484

1483:                                             ; preds = %1479, %1472
  br label %1484

1484:                                             ; preds = %1479, %1483
  %.str.5.sink1243 = phi ptr [ @.str.5, %1483 ], [ @.str.2, %1479 ]
  store i32 %1474, ptr %1473, align 4, !tbaa !5
  %1485 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1486 = load i32, ptr @test_count, align 4, !tbaa !5
  %1487 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1488 = load i32, ptr %1487, align 4, !tbaa !5
  %1489 = call ptr @s2n_strerror(i32 noundef %1488, ptr noundef nonnull @.str.4) #11
  %1490 = load i32, ptr %1487, align 4, !tbaa !5
  %1491 = call ptr @s2n_strerror_debug(i32 noundef %1490, ptr noundef nonnull @.str.4) #11
  %1492 = load i32, ptr %1473, align 4, !tbaa !5
  %1493 = call ptr @strerror(i32 noundef %1492) #11
  %1494 = load i32, ptr %1473, align 4, !tbaa !5
  %1495 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1485, ptr noundef nonnull %.str.5.sink1243, i32 noundef %1486, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.1, i32 noundef 253, ptr noundef %1489, ptr noundef %1491, ptr noundef %1493, i32 noundef %1494) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1496:                                             ; preds = %1466
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #11
  %1497 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %13) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #11
  %1498 = call ptr @s2n_connection_new(i32 noundef 0) #11
  store ptr %1498, ptr %15, align 8, !tbaa !9
  %1499 = load i32, ptr @test_count, align 4, !tbaa !5
  %1500 = add nsw i32 %1499, 1
  store i32 %1500, ptr @test_count, align 4, !tbaa !5
  %1501 = call i32 @s2n_test_configure_connection_for_ktls(ptr noundef %1498)
  %1502 = call zeroext i1 @s2n_result_is_ok(i32 %1501)
  br i1 %1502, label %1527, label %1503

1503:                                             ; preds = %1496
  %1504 = tail call ptr @__errno_location() #12
  %1505 = load i32, ptr %1504, align 4, !tbaa !5
  %1506 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1507 = call i32 @s2n_print_stacktrace(ptr noundef %1506) #11
  %1508 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1509 = trunc nuw i8 %1508 to i1
  br i1 %1509, label %1510, label %1514

1510:                                             ; preds = %1503
  %1511 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1512 = call i32 @fileno(ptr noundef %1511) #11
  %1513 = call i32 @isatty(i32 noundef %1512) #11
  %.not565 = icmp eq i32 %1513, 0
  br i1 %.not565, label %1514, label %1515

1514:                                             ; preds = %1510, %1503
  br label %1515

1515:                                             ; preds = %1510, %1514
  %.str.5.sink1254 = phi ptr [ @.str.5, %1514 ], [ @.str.2, %1510 ]
  store i32 %1505, ptr %1504, align 4, !tbaa !5
  %1516 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1517 = load i32, ptr @test_count, align 4, !tbaa !5
  %1518 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1519 = load i32, ptr %1518, align 4, !tbaa !5
  %1520 = call ptr @s2n_strerror(i32 noundef %1519, ptr noundef nonnull @.str.4) #11
  %1521 = load i32, ptr %1518, align 4, !tbaa !5
  %1522 = call ptr @s2n_strerror_debug(i32 noundef %1521, ptr noundef nonnull @.str.4) #11
  %1523 = load i32, ptr %1504, align 4, !tbaa !5
  %1524 = call ptr @strerror(i32 noundef %1523) #11
  %1525 = load i32, ptr %1504, align 4, !tbaa !5
  %1526 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1516, ptr noundef nonnull %.str.5.sink1254, i32 noundef %1517, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 260, ptr noundef %1520, ptr noundef %1522, ptr noundef %1524, i32 noundef %1525) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1527:                                             ; preds = %1496
  %1528 = load i32, ptr @test_count, align 4, !tbaa !5
  %1529 = add nsw i32 %1528, 1
  store i32 %1529, ptr @test_count, align 4, !tbaa !5
  %1530 = call i32 @s2n_ktls_set_setsockopt_cb(ptr noundef nonnull @s2n_test_setsockopt_tcp_error) #11
  %1531 = call zeroext i1 @s2n_result_is_ok(i32 %1530)
  br i1 %1531, label %1556, label %1532

1532:                                             ; preds = %1527
  %1533 = tail call ptr @__errno_location() #12
  %1534 = load i32, ptr %1533, align 4, !tbaa !5
  %1535 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1536 = call i32 @s2n_print_stacktrace(ptr noundef %1535) #11
  %1537 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1538 = trunc nuw i8 %1537 to i1
  br i1 %1538, label %1539, label %1543

1539:                                             ; preds = %1532
  %1540 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1541 = call i32 @fileno(ptr noundef %1540) #11
  %1542 = call i32 @isatty(i32 noundef %1541) #11
  %.not566 = icmp eq i32 %1542, 0
  br i1 %.not566, label %1543, label %1544

1543:                                             ; preds = %1539, %1532
  br label %1544

1544:                                             ; preds = %1539, %1543
  %.str.5.sink1265 = phi ptr [ @.str.5, %1543 ], [ @.str.2, %1539 ]
  store i32 %1534, ptr %1533, align 4, !tbaa !5
  %1545 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1546 = load i32, ptr @test_count, align 4, !tbaa !5
  %1547 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1548 = load i32, ptr %1547, align 4, !tbaa !5
  %1549 = call ptr @s2n_strerror(i32 noundef %1548, ptr noundef nonnull @.str.4) #11
  %1550 = load i32, ptr %1547, align 4, !tbaa !5
  %1551 = call ptr @s2n_strerror_debug(i32 noundef %1550, ptr noundef nonnull @.str.4) #11
  %1552 = load i32, ptr %1533, align 4, !tbaa !5
  %1553 = call ptr @strerror(i32 noundef %1552) #11
  %1554 = load i32, ptr %1533, align 4, !tbaa !5
  %1555 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1545, ptr noundef nonnull %.str.5.sink1265, i32 noundef %1546, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.1, i32 noundef 261, ptr noundef %1549, ptr noundef %1551, ptr noundef %1553, i32 noundef %1554) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1556:                                             ; preds = %1527
  %1557 = load i32, ptr @test_count, align 4, !tbaa !5
  %1558 = add nsw i32 %1557, 1
  store i32 %1558, ptr @test_count, align 4, !tbaa !5
  %1559 = load ptr, ptr %15, align 8, !tbaa !9
  %1560 = call i32 @s2n_connection_ktls_enable_send(ptr noundef %1559) #11
  %1561 = icmp eq i32 %1560, -1
  br i1 %1561, label %1562, label %1586

1562:                                             ; preds = %1556
  %1563 = tail call ptr @__errno_location() #12
  %1564 = load i32, ptr %1563, align 4, !tbaa !5
  %1565 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1566 = call i32 @s2n_print_stacktrace(ptr noundef %1565) #11
  %1567 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1568 = trunc nuw i8 %1567 to i1
  br i1 %1568, label %1569, label %1573

1569:                                             ; preds = %1562
  %1570 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1571 = call i32 @fileno(ptr noundef %1570) #11
  %1572 = call i32 @isatty(i32 noundef %1571) #11
  %.not720 = icmp eq i32 %1572, 0
  br i1 %.not720, label %1573, label %1574

1573:                                             ; preds = %1569, %1562
  br label %1574

1574:                                             ; preds = %1569, %1573
  %.str.5.sink1276 = phi ptr [ @.str.5, %1573 ], [ @.str.2, %1569 ]
  store i32 %1564, ptr %1563, align 4, !tbaa !5
  %1575 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1576 = load i32, ptr @test_count, align 4, !tbaa !5
  %1577 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1578 = load i32, ptr %1577, align 4, !tbaa !5
  %1579 = call ptr @s2n_strerror(i32 noundef %1578, ptr noundef nonnull @.str.4) #11
  %1580 = load i32, ptr %1577, align 4, !tbaa !5
  %1581 = call ptr @s2n_strerror_debug(i32 noundef %1580, ptr noundef nonnull @.str.4) #11
  %1582 = load i32, ptr %1563, align 4, !tbaa !5
  %1583 = call ptr @strerror(i32 noundef %1582) #11
  %1584 = load i32, ptr %1563, align 4, !tbaa !5
  %1585 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1575, ptr noundef nonnull %.str.5.sink1276, i32 noundef %1576, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 264, ptr noundef %1579, ptr noundef %1581, ptr noundef %1583, i32 noundef %1584) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1586:                                             ; preds = %1556
  %1587 = load i32, ptr @test_count, align 4, !tbaa !5
  %1588 = add nsw i32 %1587, 1
  store i32 %1588, ptr @test_count, align 4, !tbaa !5
  %1589 = load ptr, ptr %15, align 8, !tbaa !9
  %1590 = call i32 @s2n_connection_ktls_enable_recv(ptr noundef %1589) #11
  %1591 = icmp eq i32 %1590, -1
  br i1 %1591, label %1592, label %1616

1592:                                             ; preds = %1586
  %1593 = tail call ptr @__errno_location() #12
  %1594 = load i32, ptr %1593, align 4, !tbaa !5
  %1595 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1596 = call i32 @s2n_print_stacktrace(ptr noundef %1595) #11
  %1597 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1598 = trunc nuw i8 %1597 to i1
  br i1 %1598, label %1599, label %1603

1599:                                             ; preds = %1592
  %1600 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1601 = call i32 @fileno(ptr noundef %1600) #11
  %1602 = call i32 @isatty(i32 noundef %1601) #11
  %.not719 = icmp eq i32 %1602, 0
  br i1 %.not719, label %1603, label %1604

1603:                                             ; preds = %1599, %1592
  br label %1604

1604:                                             ; preds = %1599, %1603
  %.str.5.sink1287 = phi ptr [ @.str.5, %1603 ], [ @.str.2, %1599 ]
  store i32 %1594, ptr %1593, align 4, !tbaa !5
  %1605 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1606 = load i32, ptr @test_count, align 4, !tbaa !5
  %1607 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1608 = load i32, ptr %1607, align 4, !tbaa !5
  %1609 = call ptr @s2n_strerror(i32 noundef %1608, ptr noundef nonnull @.str.4) #11
  %1610 = load i32, ptr %1607, align 4, !tbaa !5
  %1611 = call ptr @s2n_strerror_debug(i32 noundef %1610, ptr noundef nonnull @.str.4) #11
  %1612 = load i32, ptr %1593, align 4, !tbaa !5
  %1613 = call ptr @strerror(i32 noundef %1612) #11
  %1614 = load i32, ptr %1593, align 4, !tbaa !5
  %1615 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1605, ptr noundef nonnull %.str.5.sink1287, i32 noundef %1606, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.1, i32 noundef 265, ptr noundef %1609, ptr noundef %1611, ptr noundef %1613, i32 noundef %1614) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1616:                                             ; preds = %1586
  %1617 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %15) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %16) #11
  %1618 = call ptr @s2n_connection_new(i32 noundef 0) #11
  store ptr %1618, ptr %16, align 8, !tbaa !9
  %1619 = load i32, ptr @test_count, align 4, !tbaa !5
  %1620 = add nsw i32 %1619, 1
  store i32 %1620, ptr @test_count, align 4, !tbaa !5
  %1621 = call i32 @s2n_test_configure_connection_for_ktls(ptr noundef %1618)
  %1622 = call zeroext i1 @s2n_result_is_ok(i32 %1621)
  br i1 %1622, label %1647, label %1623

1623:                                             ; preds = %1616
  %1624 = tail call ptr @__errno_location() #12
  %1625 = load i32, ptr %1624, align 4, !tbaa !5
  %1626 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1627 = call i32 @s2n_print_stacktrace(ptr noundef %1626) #11
  %1628 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1629 = trunc nuw i8 %1628 to i1
  br i1 %1629, label %1630, label %1634

1630:                                             ; preds = %1623
  %1631 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1632 = call i32 @fileno(ptr noundef %1631) #11
  %1633 = call i32 @isatty(i32 noundef %1632) #11
  %.not567 = icmp eq i32 %1633, 0
  br i1 %.not567, label %1634, label %1635

1634:                                             ; preds = %1630, %1623
  br label %1635

1635:                                             ; preds = %1630, %1634
  %.str.5.sink1298 = phi ptr [ @.str.5, %1634 ], [ @.str.2, %1630 ]
  store i32 %1625, ptr %1624, align 4, !tbaa !5
  %1636 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1637 = load i32, ptr @test_count, align 4, !tbaa !5
  %1638 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1639 = load i32, ptr %1638, align 4, !tbaa !5
  %1640 = call ptr @s2n_strerror(i32 noundef %1639, ptr noundef nonnull @.str.4) #11
  %1641 = load i32, ptr %1638, align 4, !tbaa !5
  %1642 = call ptr @s2n_strerror_debug(i32 noundef %1641, ptr noundef nonnull @.str.4) #11
  %1643 = load i32, ptr %1624, align 4, !tbaa !5
  %1644 = call ptr @strerror(i32 noundef %1643) #11
  %1645 = load i32, ptr %1624, align 4, !tbaa !5
  %1646 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1636, ptr noundef nonnull %.str.5.sink1298, i32 noundef %1637, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 272, ptr noundef %1640, ptr noundef %1642, ptr noundef %1644, i32 noundef %1645) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1647:                                             ; preds = %1616
  %1648 = load i32, ptr @test_count, align 4, !tbaa !5
  %1649 = add nsw i32 %1648, 1
  store i32 %1649, ptr @test_count, align 4, !tbaa !5
  %1650 = call i32 @s2n_ktls_set_setsockopt_cb(ptr noundef nonnull @s2n_test_setsockopt_tls_error) #11
  %1651 = call zeroext i1 @s2n_result_is_ok(i32 %1650)
  br i1 %1651, label %1676, label %1652

1652:                                             ; preds = %1647
  %1653 = tail call ptr @__errno_location() #12
  %1654 = load i32, ptr %1653, align 4, !tbaa !5
  %1655 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1656 = call i32 @s2n_print_stacktrace(ptr noundef %1655) #11
  %1657 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1658 = trunc nuw i8 %1657 to i1
  br i1 %1658, label %1659, label %1663

1659:                                             ; preds = %1652
  %1660 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1661 = call i32 @fileno(ptr noundef %1660) #11
  %1662 = call i32 @isatty(i32 noundef %1661) #11
  %.not568 = icmp eq i32 %1662, 0
  br i1 %.not568, label %1663, label %1664

1663:                                             ; preds = %1659, %1652
  br label %1664

1664:                                             ; preds = %1659, %1663
  %.str.5.sink1309 = phi ptr [ @.str.5, %1663 ], [ @.str.2, %1659 ]
  store i32 %1654, ptr %1653, align 4, !tbaa !5
  %1665 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1666 = load i32, ptr @test_count, align 4, !tbaa !5
  %1667 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1668 = load i32, ptr %1667, align 4, !tbaa !5
  %1669 = call ptr @s2n_strerror(i32 noundef %1668, ptr noundef nonnull @.str.4) #11
  %1670 = load i32, ptr %1667, align 4, !tbaa !5
  %1671 = call ptr @s2n_strerror_debug(i32 noundef %1670, ptr noundef nonnull @.str.4) #11
  %1672 = load i32, ptr %1653, align 4, !tbaa !5
  %1673 = call ptr @strerror(i32 noundef %1672) #11
  %1674 = load i32, ptr %1653, align 4, !tbaa !5
  %1675 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1665, ptr noundef nonnull %.str.5.sink1309, i32 noundef %1666, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.1, i32 noundef 273, ptr noundef %1669, ptr noundef %1671, ptr noundef %1673, i32 noundef %1674) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1676:                                             ; preds = %1647
  %1677 = load i32, ptr @test_count, align 4, !tbaa !5
  %1678 = add nsw i32 %1677, 1
  store i32 %1678, ptr @test_count, align 4, !tbaa !5
  %1679 = load ptr, ptr %16, align 8, !tbaa !9
  %1680 = call i32 @s2n_connection_ktls_enable_send(ptr noundef %1679) #11
  %1681 = icmp eq i32 %1680, -1
  br i1 %1681, label %1706, label %1682

1682:                                             ; preds = %1676
  %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
  %.not569 = icmp eq i32 %1692, 0
  br i1 %.not569, label %1693, label %1694

1693:                                             ; preds = %1689, %1682
  br label %1694

1694:                                             ; preds = %1689, %1693
  %.str.5.sink1320 = phi ptr [ @.str.5, %1693 ], [ @.str.2, %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 = 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 nonnull @.str.4) #11
  %1700 = load i32, ptr %1697, align 4, !tbaa !5
  %1701 = call ptr @s2n_strerror_debug(i32 noundef %1700, ptr noundef nonnull @.str.4) #11
  %1702 = load i32, ptr %1683, align 4, !tbaa !5
  %1703 = call ptr @strerror(i32 noundef %1702) #11
  %1704 = load i32, ptr %1683, align 4, !tbaa !5
  %1705 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1695, ptr noundef nonnull %.str.5.sink1320, i32 noundef %1696, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, i32 noundef 277, ptr noundef %1699, ptr noundef %1701, ptr noundef %1703, i32 noundef %1704) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1706:                                             ; preds = %1676
  %1707 = load i32, ptr @test_count, align 4, !tbaa !5
  %1708 = add nsw i32 %1707, 1
  store i32 %1708, ptr @test_count, align 4, !tbaa !5
  %1709 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1710 = load i32, ptr %1709, align 4, !tbaa !5
  %1711 = icmp eq i32 %1710, 469762128
  br i1 %1711, label %1735, label %1712

1712:                                             ; preds = %1706
  %1713 = tail call ptr @__errno_location() #12
  %1714 = load i32, ptr %1713, align 4, !tbaa !5
  %1715 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1716 = call i32 @s2n_print_stacktrace(ptr noundef %1715) #11
  %1717 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1718 = trunc nuw i8 %1717 to i1
  br i1 %1718, label %1719, label %1723

1719:                                             ; preds = %1712
  %1720 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1721 = call i32 @fileno(ptr noundef %1720) #11
  %1722 = call i32 @isatty(i32 noundef %1721) #11
  %.not570 = icmp eq i32 %1722, 0
  br i1 %.not570, label %1723, label %1724

1723:                                             ; preds = %1719, %1712
  br label %1724

1724:                                             ; preds = %1719, %1723
  %.str.5.sink1331 = phi ptr [ @.str.5, %1723 ], [ @.str.2, %1719 ]
  store i32 %1714, ptr %1713, align 4, !tbaa !5
  %1725 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1726 = load i32, ptr @test_count, align 4, !tbaa !5
  %1727 = load i32, ptr %1709, align 4, !tbaa !5
  %1728 = call ptr @s2n_strerror(i32 noundef %1727, ptr noundef nonnull @.str.4) #11
  %1729 = load i32, ptr %1709, align 4, !tbaa !5
  %1730 = call ptr @s2n_strerror_debug(i32 noundef %1729, ptr noundef nonnull @.str.4) #11
  %1731 = load i32, ptr %1713, align 4, !tbaa !5
  %1732 = call ptr @strerror(i32 noundef %1731) #11
  %1733 = load i32, ptr %1713, align 4, !tbaa !5
  %1734 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1725, ptr noundef nonnull %.str.5.sink1331, i32 noundef %1726, ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.1, i32 noundef 277, ptr noundef %1728, ptr noundef %1730, ptr noundef %1732, i32 noundef %1733) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1735:                                             ; preds = %1706
  %1736 = add nsw i32 %1707, 2
  store i32 %1736, ptr @test_count, align 4, !tbaa !5
  %1737 = call ptr @s2n_strerror_debug(i32 noundef 469762128, ptr noundef nonnull @.str.4) #11
  %1738 = icmp eq ptr %1737, null
  br i1 %1738, label %1739, label %1762

1739:                                             ; preds = %1735
  %1740 = tail call ptr @__errno_location() #12
  %1741 = load i32, ptr %1740, align 4, !tbaa !5
  %1742 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1743 = call i32 @s2n_print_stacktrace(ptr noundef %1742) #11
  %1744 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1745 = trunc nuw i8 %1744 to i1
  br i1 %1745, label %1746, label %1750

1746:                                             ; preds = %1739
  %1747 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1748 = call i32 @fileno(ptr noundef %1747) #11
  %1749 = call i32 @isatty(i32 noundef %1748) #11
  %.not718 = icmp eq i32 %1749, 0
  br i1 %.not718, label %1750, label %1751

1750:                                             ; preds = %1746, %1739
  br label %1751

1751:                                             ; preds = %1746, %1750
  %.str.5.sink1340 = phi ptr [ @.str.5, %1750 ], [ @.str.2, %1746 ]
  store i32 %1741, ptr %1740, align 4, !tbaa !5
  %1752 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1753 = load i32, ptr @test_count, align 4, !tbaa !5
  %1754 = load i32, ptr %1709, align 4, !tbaa !5
  %1755 = call ptr @s2n_strerror(i32 noundef %1754, ptr noundef nonnull @.str.4) #11
  %1756 = load i32, ptr %1709, align 4, !tbaa !5
  %1757 = call ptr @s2n_strerror_debug(i32 noundef %1756, ptr noundef nonnull @.str.4) #11
  %1758 = load i32, ptr %1740, align 4, !tbaa !5
  %1759 = call ptr @strerror(i32 noundef %1758) #11
  %1760 = load i32, ptr %1740, align 4, !tbaa !5
  %1761 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1752, ptr noundef nonnull %.str.5.sink1340, i32 noundef %1753, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 277, ptr noundef %1755, ptr noundef %1757, ptr noundef %1759, i32 noundef %1760) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1762:                                             ; preds = %1735
  store i32 0, ptr %1709, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  %1763 = tail call ptr @__errno_location() #12
  store i32 0, ptr %1763, align 4, !tbaa !5
  %1764 = load i32, ptr @test_count, align 4, !tbaa !5
  %1765 = add nsw i32 %1764, 1
  store i32 %1765, ptr @test_count, align 4, !tbaa !5
  %1766 = load ptr, ptr %16, align 8, !tbaa !9
  %1767 = call i32 @s2n_connection_ktls_enable_recv(ptr noundef %1766) #11
  %1768 = icmp eq i32 %1767, -1
  br i1 %1768, label %1791, label %1769

1769:                                             ; preds = %1762
  %1770 = load i32, ptr %1763, align 4, !tbaa !5
  %1771 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1772 = call i32 @s2n_print_stacktrace(ptr noundef %1771) #11
  %1773 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1774 = trunc nuw i8 %1773 to i1
  br i1 %1774, label %1775, label %1779

1775:                                             ; preds = %1769
  %1776 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1777 = call i32 @fileno(ptr noundef %1776) #11
  %1778 = call i32 @isatty(i32 noundef %1777) #11
  %.not571 = icmp eq i32 %1778, 0
  br i1 %.not571, label %1779, label %1780

1779:                                             ; preds = %1775, %1769
  br label %1780

1780:                                             ; preds = %1775, %1779
  %.str.5.sink1349 = phi ptr [ @.str.5, %1779 ], [ @.str.2, %1775 ]
  store i32 %1770, ptr %1763, align 4, !tbaa !5
  %1781 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1782 = load i32, ptr @test_count, align 4, !tbaa !5
  %1783 = load i32, ptr %1709, align 4, !tbaa !5
  %1784 = call ptr @s2n_strerror(i32 noundef %1783, ptr noundef nonnull @.str.4) #11
  %1785 = load i32, ptr %1709, align 4, !tbaa !5
  %1786 = call ptr @s2n_strerror_debug(i32 noundef %1785, ptr noundef nonnull @.str.4) #11
  %1787 = load i32, ptr %1763, align 4, !tbaa !5
  %1788 = call ptr @strerror(i32 noundef %1787) #11
  %1789 = load i32, ptr %1763, align 4, !tbaa !5
  %1790 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1781, ptr noundef nonnull %.str.5.sink1349, i32 noundef %1782, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 279, ptr noundef %1784, ptr noundef %1786, ptr noundef %1788, i32 noundef %1789) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1791:                                             ; preds = %1762
  %1792 = load i32, ptr @test_count, align 4, !tbaa !5
  %1793 = add nsw i32 %1792, 1
  store i32 %1793, ptr @test_count, align 4, !tbaa !5
  %1794 = load i32, ptr %1709, align 4, !tbaa !5
  %1795 = icmp eq i32 %1794, 469762128
  br i1 %1795, label %1818, label %1796

1796:                                             ; preds = %1791
  %1797 = load i32, ptr %1763, align 4, !tbaa !5
  %1798 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1799 = call i32 @s2n_print_stacktrace(ptr noundef %1798) #11
  %1800 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1801 = trunc nuw i8 %1800 to i1
  br i1 %1801, label %1802, label %1806

1802:                                             ; preds = %1796
  %1803 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1804 = call i32 @fileno(ptr noundef %1803) #11
  %1805 = call i32 @isatty(i32 noundef %1804) #11
  %.not572 = icmp eq i32 %1805, 0
  br i1 %.not572, label %1806, label %1807

1806:                                             ; preds = %1802, %1796
  br label %1807

1807:                                             ; preds = %1802, %1806
  %.str.5.sink1358 = phi ptr [ @.str.5, %1806 ], [ @.str.2, %1802 ]
  store i32 %1797, ptr %1763, align 4, !tbaa !5
  %1808 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1809 = load i32, ptr @test_count, align 4, !tbaa !5
  %1810 = load i32, ptr %1709, align 4, !tbaa !5
  %1811 = call ptr @s2n_strerror(i32 noundef %1810, ptr noundef nonnull @.str.4) #11
  %1812 = load i32, ptr %1709, align 4, !tbaa !5
  %1813 = call ptr @s2n_strerror_debug(i32 noundef %1812, ptr noundef nonnull @.str.4) #11
  %1814 = load i32, ptr %1763, align 4, !tbaa !5
  %1815 = call ptr @strerror(i32 noundef %1814) #11
  %1816 = load i32, ptr %1763, align 4, !tbaa !5
  %1817 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1808, ptr noundef nonnull %.str.5.sink1358, i32 noundef %1809, ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.1, i32 noundef 279, ptr noundef %1811, ptr noundef %1813, ptr noundef %1815, i32 noundef %1816) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1818:                                             ; preds = %1791
  %1819 = add nsw i32 %1792, 2
  store i32 %1819, ptr @test_count, align 4, !tbaa !5
  %1820 = call ptr @s2n_strerror_debug(i32 noundef 469762128, ptr noundef nonnull @.str.4) #11
  %1821 = icmp eq ptr %1820, null
  br i1 %1821, label %1822, label %1844

1822:                                             ; preds = %1818
  %1823 = load i32, ptr %1763, align 4, !tbaa !5
  %1824 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1825 = call i32 @s2n_print_stacktrace(ptr noundef %1824) #11
  %1826 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1827 = trunc nuw i8 %1826 to i1
  br i1 %1827, label %1828, label %1832

1828:                                             ; preds = %1822
  %1829 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1830 = call i32 @fileno(ptr noundef %1829) #11
  %1831 = call i32 @isatty(i32 noundef %1830) #11
  %.not717 = icmp eq i32 %1831, 0
  br i1 %.not717, label %1832, label %1833

1832:                                             ; preds = %1828, %1822
  br label %1833

1833:                                             ; preds = %1828, %1832
  %.str.5.sink1367 = phi ptr [ @.str.5, %1832 ], [ @.str.2, %1828 ]
  store i32 %1823, ptr %1763, align 4, !tbaa !5
  %1834 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1835 = load i32, ptr @test_count, align 4, !tbaa !5
  %1836 = load i32, ptr %1709, align 4, !tbaa !5
  %1837 = call ptr @s2n_strerror(i32 noundef %1836, ptr noundef nonnull @.str.4) #11
  %1838 = load i32, ptr %1709, align 4, !tbaa !5
  %1839 = call ptr @s2n_strerror_debug(i32 noundef %1838, ptr noundef nonnull @.str.4) #11
  %1840 = load i32, ptr %1763, align 4, !tbaa !5
  %1841 = call ptr @strerror(i32 noundef %1840) #11
  %1842 = load i32, ptr %1763, align 4, !tbaa !5
  %1843 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1834, ptr noundef nonnull %.str.5.sink1367, i32 noundef %1835, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 279, ptr noundef %1837, ptr noundef %1839, ptr noundef %1841, i32 noundef %1842) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1844:                                             ; preds = %1818
  store i32 0, ptr %1709, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %1763, align 4, !tbaa !5
  %1845 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %16) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %17) #11
  %1846 = call ptr @s2n_connection_new(i32 noundef 0) #11
  store ptr %1846, ptr %17, align 8, !tbaa !9
  %1847 = load i32, ptr @test_count, align 4, !tbaa !5
  %1848 = add nsw i32 %1847, 1
  store i32 %1848, ptr @test_count, align 4, !tbaa !5
  %1849 = call i32 @s2n_test_configure_connection_for_ktls(ptr noundef %1846)
  %1850 = call zeroext i1 @s2n_result_is_ok(i32 %1849)
  br i1 %1850, label %1873, label %1851

1851:                                             ; preds = %1844
  %1852 = load i32, ptr %1763, align 4, !tbaa !5
  %1853 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1854 = call i32 @s2n_print_stacktrace(ptr noundef %1853) #11
  %1855 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1856 = trunc nuw i8 %1855 to i1
  br i1 %1856, label %1857, label %1861

1857:                                             ; preds = %1851
  %1858 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1859 = call i32 @fileno(ptr noundef %1858) #11
  %1860 = call i32 @isatty(i32 noundef %1859) #11
  %.not573 = icmp eq i32 %1860, 0
  br i1 %.not573, label %1861, label %1862

1861:                                             ; preds = %1857, %1851
  br label %1862

1862:                                             ; preds = %1857, %1861
  %.str.5.sink1376 = phi ptr [ @.str.5, %1861 ], [ @.str.2, %1857 ]
  store i32 %1852, ptr %1763, align 4, !tbaa !5
  %1863 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1864 = load i32, ptr @test_count, align 4, !tbaa !5
  %1865 = load i32, ptr %1709, align 4, !tbaa !5
  %1866 = call ptr @s2n_strerror(i32 noundef %1865, ptr noundef nonnull @.str.4) #11
  %1867 = load i32, ptr %1709, align 4, !tbaa !5
  %1868 = call ptr @s2n_strerror_debug(i32 noundef %1867, ptr noundef nonnull @.str.4) #11
  %1869 = load i32, ptr %1763, align 4, !tbaa !5
  %1870 = call ptr @strerror(i32 noundef %1869) #11
  %1871 = load i32, ptr %1763, align 4, !tbaa !5
  %1872 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1863, ptr noundef nonnull %.str.5.sink1376, i32 noundef %1864, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 286, ptr noundef %1866, ptr noundef %1868, ptr noundef %1870, i32 noundef %1871) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1873:                                             ; preds = %1844
  %1874 = load ptr, ptr %17, align 8, !tbaa !9
  %1875 = load i32, ptr %1874, align 8
  %1876 = or i32 %1875, 262144
  store i32 %1876, ptr %1874, align 8
  %1877 = load i32, ptr @test_count, align 4, !tbaa !5
  %1878 = add nsw i32 %1877, 1
  store i32 %1878, ptr @test_count, align 4, !tbaa !5
  %1879 = load ptr, ptr %17, align 8, !tbaa !9
  %1880 = call i32 @s2n_connection_ktls_enable_send(ptr noundef %1879) #11
  %1881 = icmp eq i32 %1880, -1
  br i1 %1881, label %1882, label %1904

1882:                                             ; preds = %1873
  %1883 = load i32, ptr %1763, align 4, !tbaa !5
  %1884 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1885 = call i32 @s2n_print_stacktrace(ptr noundef %1884) #11
  %1886 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1887 = trunc nuw i8 %1886 to i1
  br i1 %1887, label %1888, label %1892

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

1892:                                             ; preds = %1888, %1882
  br label %1893

1893:                                             ; preds = %1888, %1892
  %.str.5.sink1385 = phi ptr [ @.str.5, %1892 ], [ @.str.2, %1888 ]
  store i32 %1883, ptr %1763, align 4, !tbaa !5
  %1894 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1895 = load i32, ptr @test_count, align 4, !tbaa !5
  %1896 = load i32, ptr %1709, align 4, !tbaa !5
  %1897 = call ptr @s2n_strerror(i32 noundef %1896, ptr noundef nonnull @.str.4) #11
  %1898 = load i32, ptr %1709, align 4, !tbaa !5
  %1899 = call ptr @s2n_strerror_debug(i32 noundef %1898, ptr noundef nonnull @.str.4) #11
  %1900 = load i32, ptr %1763, align 4, !tbaa !5
  %1901 = call ptr @strerror(i32 noundef %1900) #11
  %1902 = load i32, ptr %1763, align 4, !tbaa !5
  %1903 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1894, ptr noundef nonnull %.str.5.sink1385, i32 noundef %1895, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 289, ptr noundef %1897, ptr noundef %1899, ptr noundef %1901, i32 noundef %1902) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1904:                                             ; preds = %1873
  %1905 = load ptr, ptr %17, align 8, !tbaa !9
  %1906 = load i32, ptr %1905, align 8
  %1907 = or i32 %1906, 524288
  store i32 %1907, ptr %1905, align 8
  %1908 = load i32, ptr @test_count, align 4, !tbaa !5
  %1909 = add nsw i32 %1908, 1
  store i32 %1909, ptr @test_count, align 4, !tbaa !5
  %1910 = load ptr, ptr %17, align 8, !tbaa !9
  %1911 = call i32 @s2n_connection_ktls_enable_recv(ptr noundef %1910) #11
  %1912 = icmp eq i32 %1911, -1
  br i1 %1912, label %1913, label %1935

1913:                                             ; preds = %1904
  %1914 = load i32, ptr %1763, align 4, !tbaa !5
  %1915 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1916 = call i32 @s2n_print_stacktrace(ptr noundef %1915) #11
  %1917 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1918 = trunc nuw i8 %1917 to i1
  br i1 %1918, label %1919, label %1923

1919:                                             ; preds = %1913
  %1920 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1921 = call i32 @fileno(ptr noundef %1920) #11
  %1922 = call i32 @isatty(i32 noundef %1921) #11
  %.not715 = icmp eq i32 %1922, 0
  br i1 %.not715, label %1923, label %1924

1923:                                             ; preds = %1919, %1913
  br label %1924

1924:                                             ; preds = %1919, %1923
  %.str.5.sink1394 = phi ptr [ @.str.5, %1923 ], [ @.str.2, %1919 ]
  store i32 %1914, ptr %1763, align 4, !tbaa !5
  %1925 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1926 = load i32, ptr @test_count, align 4, !tbaa !5
  %1927 = load i32, ptr %1709, align 4, !tbaa !5
  %1928 = call ptr @s2n_strerror(i32 noundef %1927, ptr noundef nonnull @.str.4) #11
  %1929 = load i32, ptr %1709, align 4, !tbaa !5
  %1930 = call ptr @s2n_strerror_debug(i32 noundef %1929, ptr noundef nonnull @.str.4) #11
  %1931 = load i32, ptr %1763, align 4, !tbaa !5
  %1932 = call ptr @strerror(i32 noundef %1931) #11
  %1933 = load i32, ptr %1763, align 4, !tbaa !5
  %1934 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1925, ptr noundef nonnull %.str.5.sink1394, i32 noundef %1926, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.1, i32 noundef 292, ptr noundef %1928, ptr noundef %1930, ptr noundef %1932, i32 noundef %1933) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1935:                                             ; preds = %1904
  %1936 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %17) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #11
  %1937 = call ptr @s2n_connection_new(i32 noundef 0) #11
  store ptr %1937, ptr %18, align 8, !tbaa !9
  %1938 = load i32, ptr @test_count, align 4, !tbaa !5
  %1939 = add nsw i32 %1938, 1
  store i32 %1939, ptr @test_count, align 4, !tbaa !5
  %1940 = call i32 @s2n_test_configure_connection_for_ktls(ptr noundef %1937)
  %1941 = call zeroext i1 @s2n_result_is_ok(i32 %1940)
  br i1 %1941, label %1964, label %1942

1942:                                             ; preds = %1935
  %1943 = load i32, ptr %1763, align 4, !tbaa !5
  %1944 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1945 = call i32 @s2n_print_stacktrace(ptr noundef %1944) #11
  %1946 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1947 = trunc nuw i8 %1946 to i1
  br i1 %1947, label %1948, label %1952

1948:                                             ; preds = %1942
  %1949 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1950 = call i32 @fileno(ptr noundef %1949) #11
  %1951 = call i32 @isatty(i32 noundef %1950) #11
  %.not574 = icmp eq i32 %1951, 0
  br i1 %.not574, label %1952, label %1953

1952:                                             ; preds = %1948, %1942
  br label %1953

1953:                                             ; preds = %1948, %1952
  %.str.5.sink1403 = phi ptr [ @.str.5, %1952 ], [ @.str.2, %1948 ]
  store i32 %1943, ptr %1763, align 4, !tbaa !5
  %1954 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1955 = load i32, ptr @test_count, align 4, !tbaa !5
  %1956 = load i32, ptr %1709, align 4, !tbaa !5
  %1957 = call ptr @s2n_strerror(i32 noundef %1956, ptr noundef nonnull @.str.4) #11
  %1958 = load i32, ptr %1709, align 4, !tbaa !5
  %1959 = call ptr @s2n_strerror_debug(i32 noundef %1958, ptr noundef nonnull @.str.4) #11
  %1960 = load i32, ptr %1763, align 4, !tbaa !5
  %1961 = call ptr @strerror(i32 noundef %1960) #11
  %1962 = load i32, ptr %1763, align 4, !tbaa !5
  %1963 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1954, ptr noundef nonnull %.str.5.sink1403, i32 noundef %1955, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 299, ptr noundef %1957, ptr noundef %1959, ptr noundef %1961, i32 noundef %1962) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1964:                                             ; preds = %1935
  %1965 = load ptr, ptr %18, align 8, !tbaa !9
  %1966 = getelementptr inbounds i8, ptr %1965, i64 2176
  store i32 0, ptr %1966, align 8, !tbaa !26
  %1967 = load i32, ptr @test_count, align 4, !tbaa !5
  %1968 = add nsw i32 %1967, 1
  store i32 %1968, ptr @test_count, align 4, !tbaa !5
  %1969 = call i32 @s2n_connection_ktls_enable_send(ptr noundef %1965) #11
  %1970 = icmp eq i32 %1969, -1
  br i1 %1970, label %1993, label %1971

1971:                                             ; preds = %1964
  %1972 = load i32, ptr %1763, align 4, !tbaa !5
  %1973 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1974 = call i32 @s2n_print_stacktrace(ptr noundef %1973) #11
  %1975 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1976 = trunc nuw i8 %1975 to i1
  br i1 %1976, label %1977, label %1981

1977:                                             ; preds = %1971
  %1978 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1979 = call i32 @fileno(ptr noundef %1978) #11
  %1980 = call i32 @isatty(i32 noundef %1979) #11
  %.not575 = icmp eq i32 %1980, 0
  br i1 %.not575, label %1981, label %1982

1981:                                             ; preds = %1977, %1971
  br label %1982

1982:                                             ; preds = %1977, %1981
  %.str.5.sink1412 = phi ptr [ @.str.5, %1981 ], [ @.str.2, %1977 ]
  store i32 %1972, ptr %1763, align 4, !tbaa !5
  %1983 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1984 = load i32, ptr @test_count, align 4, !tbaa !5
  %1985 = load i32, ptr %1709, align 4, !tbaa !5
  %1986 = call ptr @s2n_strerror(i32 noundef %1985, ptr noundef nonnull @.str.4) #11
  %1987 = load i32, ptr %1709, align 4, !tbaa !5
  %1988 = call ptr @s2n_strerror_debug(i32 noundef %1987, ptr noundef nonnull @.str.4) #11
  %1989 = load i32, ptr %1763, align 4, !tbaa !5
  %1990 = call ptr @strerror(i32 noundef %1989) #11
  %1991 = load i32, ptr %1763, align 4, !tbaa !5
  %1992 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1983, ptr noundef nonnull %.str.5.sink1412, i32 noundef %1984, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, i32 noundef 302, ptr noundef %1986, ptr noundef %1988, ptr noundef %1990, i32 noundef %1991) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1993:                                             ; preds = %1964
  %1994 = load i32, ptr @test_count, align 4, !tbaa !5
  %1995 = add nsw i32 %1994, 1
  store i32 %1995, ptr @test_count, align 4, !tbaa !5
  %1996 = load i32, ptr %1709, align 4, !tbaa !5
  %1997 = icmp eq i32 %1996, 469762124
  br i1 %1997, label %2020, label %1998

1998:                                             ; preds = %1993
  %1999 = load i32, ptr %1763, align 4, !tbaa !5
  %2000 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2001 = call i32 @s2n_print_stacktrace(ptr noundef %2000) #11
  %2002 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2003 = trunc nuw i8 %2002 to i1
  br i1 %2003, label %2004, label %2008

2004:                                             ; preds = %1998
  %2005 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2006 = call i32 @fileno(ptr noundef %2005) #11
  %2007 = call i32 @isatty(i32 noundef %2006) #11
  %.not576 = icmp eq i32 %2007, 0
  br i1 %.not576, label %2008, label %2009

2008:                                             ; preds = %2004, %1998
  br label %2009

2009:                                             ; preds = %2004, %2008
  %.str.5.sink1421 = phi ptr [ @.str.5, %2008 ], [ @.str.2, %2004 ]
  store i32 %1999, ptr %1763, align 4, !tbaa !5
  %2010 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2011 = load i32, ptr @test_count, align 4, !tbaa !5
  %2012 = load i32, ptr %1709, align 4, !tbaa !5
  %2013 = call ptr @s2n_strerror(i32 noundef %2012, ptr noundef nonnull @.str.4) #11
  %2014 = load i32, ptr %1709, align 4, !tbaa !5
  %2015 = call ptr @s2n_strerror_debug(i32 noundef %2014, ptr noundef nonnull @.str.4) #11
  %2016 = load i32, ptr %1763, align 4, !tbaa !5
  %2017 = call ptr @strerror(i32 noundef %2016) #11
  %2018 = load i32, ptr %1763, align 4, !tbaa !5
  %2019 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2010, ptr noundef nonnull %.str.5.sink1421, i32 noundef %2011, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.1, i32 noundef 302, ptr noundef %2013, ptr noundef %2015, ptr noundef %2017, i32 noundef %2018) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2020:                                             ; preds = %1993
  %2021 = add nsw i32 %1994, 2
  store i32 %2021, ptr @test_count, align 4, !tbaa !5
  %2022 = call ptr @s2n_strerror_debug(i32 noundef 469762124, ptr noundef nonnull @.str.4) #11
  %2023 = icmp eq ptr %2022, null
  br i1 %2023, label %2024, label %2046

2024:                                             ; preds = %2020
  %2025 = load i32, ptr %1763, align 4, !tbaa !5
  %2026 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2027 = call i32 @s2n_print_stacktrace(ptr noundef %2026) #11
  %2028 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2029 = trunc nuw i8 %2028 to i1
  br i1 %2029, label %2030, label %2034

2030:                                             ; preds = %2024
  %2031 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2032 = call i32 @fileno(ptr noundef %2031) #11
  %2033 = call i32 @isatty(i32 noundef %2032) #11
  %.not714 = icmp eq i32 %2033, 0
  br i1 %.not714, label %2034, label %2035

2034:                                             ; preds = %2030, %2024
  br label %2035

2035:                                             ; preds = %2030, %2034
  %.str.5.sink1430 = phi ptr [ @.str.5, %2034 ], [ @.str.2, %2030 ]
  store i32 %2025, ptr %1763, align 4, !tbaa !5
  %2036 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2037 = load i32, ptr @test_count, align 4, !tbaa !5
  %2038 = load i32, ptr %1709, align 4, !tbaa !5
  %2039 = call ptr @s2n_strerror(i32 noundef %2038, ptr noundef nonnull @.str.4) #11
  %2040 = load i32, ptr %1709, align 4, !tbaa !5
  %2041 = call ptr @s2n_strerror_debug(i32 noundef %2040, ptr noundef nonnull @.str.4) #11
  %2042 = load i32, ptr %1763, align 4, !tbaa !5
  %2043 = call ptr @strerror(i32 noundef %2042) #11
  %2044 = load i32, ptr %1763, align 4, !tbaa !5
  %2045 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2036, ptr noundef nonnull %.str.5.sink1430, i32 noundef %2037, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 302, ptr noundef %2039, ptr noundef %2041, ptr noundef %2043, i32 noundef %2044) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2046:                                             ; preds = %2020
  store i32 0, ptr %1709, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %1763, align 4, !tbaa !5
  %2047 = load i32, ptr @test_count, align 4, !tbaa !5
  %2048 = add nsw i32 %2047, 1
  store i32 %2048, ptr @test_count, align 4, !tbaa !5
  %2049 = load ptr, ptr %18, align 8, !tbaa !9
  %2050 = call i32 @s2n_connection_ktls_enable_recv(ptr noundef %2049) #11
  %2051 = icmp eq i32 %2050, -1
  br i1 %2051, label %2074, label %2052

2052:                                             ; preds = %2046
  %2053 = load i32, ptr %1763, align 4, !tbaa !5
  %2054 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2055 = call i32 @s2n_print_stacktrace(ptr noundef %2054) #11
  %2056 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2057 = trunc nuw i8 %2056 to i1
  br i1 %2057, label %2058, label %2062

2058:                                             ; preds = %2052
  %2059 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2060 = call i32 @fileno(ptr noundef %2059) #11
  %2061 = call i32 @isatty(i32 noundef %2060) #11
  %.not577 = icmp eq i32 %2061, 0
  br i1 %.not577, label %2062, label %2063

2062:                                             ; preds = %2058, %2052
  br label %2063

2063:                                             ; preds = %2058, %2062
  %.str.5.sink1439 = phi ptr [ @.str.5, %2062 ], [ @.str.2, %2058 ]
  store i32 %2053, ptr %1763, align 4, !tbaa !5
  %2064 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2065 = load i32, ptr @test_count, align 4, !tbaa !5
  %2066 = load i32, ptr %1709, align 4, !tbaa !5
  %2067 = call ptr @s2n_strerror(i32 noundef %2066, ptr noundef nonnull @.str.4) #11
  %2068 = load i32, ptr %1709, align 4, !tbaa !5
  %2069 = call ptr @s2n_strerror_debug(i32 noundef %2068, ptr noundef nonnull @.str.4) #11
  %2070 = load i32, ptr %1763, align 4, !tbaa !5
  %2071 = call ptr @strerror(i32 noundef %2070) #11
  %2072 = load i32, ptr %1763, align 4, !tbaa !5
  %2073 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2064, ptr noundef nonnull %.str.5.sink1439, i32 noundef %2065, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 303, ptr noundef %2067, ptr noundef %2069, ptr noundef %2071, i32 noundef %2072) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2074:                                             ; preds = %2046
  %2075 = load i32, ptr @test_count, align 4, !tbaa !5
  %2076 = add nsw i32 %2075, 1
  store i32 %2076, ptr @test_count, align 4, !tbaa !5
  %2077 = load i32, ptr %1709, align 4, !tbaa !5
  %2078 = icmp eq i32 %2077, 469762124
  br i1 %2078, label %2101, label %2079

2079:                                             ; preds = %2074
  %2080 = load i32, ptr %1763, align 4, !tbaa !5
  %2081 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2082 = call i32 @s2n_print_stacktrace(ptr noundef %2081) #11
  %2083 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2084 = trunc nuw i8 %2083 to i1
  br i1 %2084, label %2085, label %2089

2085:                                             ; preds = %2079
  %2086 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2087 = call i32 @fileno(ptr noundef %2086) #11
  %2088 = call i32 @isatty(i32 noundef %2087) #11
  %.not578 = icmp eq i32 %2088, 0
  br i1 %.not578, label %2089, label %2090

2089:                                             ; preds = %2085, %2079
  br label %2090

2090:                                             ; preds = %2085, %2089
  %.str.5.sink1448 = phi ptr [ @.str.5, %2089 ], [ @.str.2, %2085 ]
  store i32 %2080, ptr %1763, align 4, !tbaa !5
  %2091 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2092 = load i32, ptr @test_count, align 4, !tbaa !5
  %2093 = load i32, ptr %1709, align 4, !tbaa !5
  %2094 = call ptr @s2n_strerror(i32 noundef %2093, ptr noundef nonnull @.str.4) #11
  %2095 = load i32, ptr %1709, align 4, !tbaa !5
  %2096 = call ptr @s2n_strerror_debug(i32 noundef %2095, ptr noundef nonnull @.str.4) #11
  %2097 = load i32, ptr %1763, align 4, !tbaa !5
  %2098 = call ptr @strerror(i32 noundef %2097) #11
  %2099 = load i32, ptr %1763, align 4, !tbaa !5
  %2100 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2091, ptr noundef nonnull %.str.5.sink1448, i32 noundef %2092, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.1, i32 noundef 303, ptr noundef %2094, ptr noundef %2096, ptr noundef %2098, i32 noundef %2099) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2101:                                             ; preds = %2074
  %2102 = add nsw i32 %2075, 2
  store i32 %2102, ptr @test_count, align 4, !tbaa !5
  %2103 = call ptr @s2n_strerror_debug(i32 noundef 469762124, ptr noundef nonnull @.str.4) #11
  %2104 = icmp eq ptr %2103, null
  br i1 %2104, label %2105, label %2127

2105:                                             ; preds = %2101
  %2106 = load i32, ptr %1763, align 4, !tbaa !5
  %2107 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2108 = call i32 @s2n_print_stacktrace(ptr noundef %2107) #11
  %2109 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2110 = trunc nuw i8 %2109 to i1
  br i1 %2110, label %2111, label %2115

2111:                                             ; preds = %2105
  %2112 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2113 = call i32 @fileno(ptr noundef %2112) #11
  %2114 = call i32 @isatty(i32 noundef %2113) #11
  %.not713 = icmp eq i32 %2114, 0
  br i1 %.not713, label %2115, label %2116

2115:                                             ; preds = %2111, %2105
  br label %2116

2116:                                             ; preds = %2111, %2115
  %.str.5.sink1457 = phi ptr [ @.str.5, %2115 ], [ @.str.2, %2111 ]
  store i32 %2106, ptr %1763, align 4, !tbaa !5
  %2117 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2118 = load i32, ptr @test_count, align 4, !tbaa !5
  %2119 = load i32, ptr %1709, align 4, !tbaa !5
  %2120 = call ptr @s2n_strerror(i32 noundef %2119, ptr noundef nonnull @.str.4) #11
  %2121 = load i32, ptr %1709, align 4, !tbaa !5
  %2122 = call ptr @s2n_strerror_debug(i32 noundef %2121, ptr noundef nonnull @.str.4) #11
  %2123 = load i32, ptr %1763, align 4, !tbaa !5
  %2124 = call ptr @strerror(i32 noundef %2123) #11
  %2125 = load i32, ptr %1763, align 4, !tbaa !5
  %2126 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2117, ptr noundef nonnull %.str.5.sink1457, i32 noundef %2118, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 303, ptr noundef %2120, ptr noundef %2122, ptr noundef %2124, i32 noundef %2125) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2127:                                             ; preds = %2101
  store i32 0, ptr %1709, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %1763, align 4, !tbaa !5
  %2128 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %18) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %19) #11
  %2129 = call ptr @s2n_config_new() #11
  store ptr %2129, ptr %19, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %20) #11
  %2130 = call ptr @s2n_connection_new(i32 noundef 0) #11
  store ptr %2130, ptr %20, align 8, !tbaa !9
  %2131 = load i32, ptr @test_count, align 4, !tbaa !5
  %2132 = add nsw i32 %2131, 1
  store i32 %2132, ptr @test_count, align 4, !tbaa !5
  %2133 = load ptr, ptr %19, align 8, !tbaa !9
  %2134 = call i32 @s2n_connection_set_config(ptr noundef %2130, ptr noundef %2133) #11
  %2135 = icmp eq i32 %2134, -1
  br i1 %2135, label %2136, label %2158

2136:                                             ; preds = %2127
  %2137 = load i32, ptr %1763, align 4, !tbaa !5
  %2138 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2139 = call i32 @s2n_print_stacktrace(ptr noundef %2138) #11
  %2140 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2141 = trunc nuw i8 %2140 to i1
  br i1 %2141, label %2142, label %2146

2142:                                             ; preds = %2136
  %2143 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2144 = call i32 @fileno(ptr noundef %2143) #11
  %2145 = call i32 @isatty(i32 noundef %2144) #11
  %.not712 = icmp eq i32 %2145, 0
  br i1 %.not712, label %2146, label %2147

2146:                                             ; preds = %2142, %2136
  br label %2147

2147:                                             ; preds = %2142, %2146
  %.str.5.sink1466 = phi ptr [ @.str.5, %2146 ], [ @.str.2, %2142 ]
  store i32 %2137, ptr %1763, align 4, !tbaa !5
  %2148 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2149 = load i32, ptr @test_count, align 4, !tbaa !5
  %2150 = load i32, ptr %1709, align 4, !tbaa !5
  %2151 = call ptr @s2n_strerror(i32 noundef %2150, ptr noundef nonnull @.str.4) #11
  %2152 = load i32, ptr %1709, align 4, !tbaa !5
  %2153 = call ptr @s2n_strerror_debug(i32 noundef %2152, ptr noundef nonnull @.str.4) #11
  %2154 = load i32, ptr %1763, align 4, !tbaa !5
  %2155 = call ptr @strerror(i32 noundef %2154) #11
  %2156 = load i32, ptr %1763, align 4, !tbaa !5
  %2157 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2148, ptr noundef nonnull %.str.5.sink1466, i32 noundef %2149, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 311, ptr noundef %2151, ptr noundef %2153, ptr noundef %2155, i32 noundef %2156) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2158:                                             ; preds = %2127
  %2159 = load i32, ptr @test_count, align 4, !tbaa !5
  %2160 = add nsw i32 %2159, 1
  store i32 %2160, ptr @test_count, align 4, !tbaa !5
  %2161 = load ptr, ptr %20, align 8, !tbaa !9
  %2162 = call i32 @s2n_test_configure_connection_for_ktls(ptr noundef %2161)
  %2163 = call zeroext i1 @s2n_result_is_ok(i32 %2162)
  br i1 %2163, label %2186, label %2164

2164:                                             ; preds = %2158
  %2165 = load i32, ptr %1763, align 4, !tbaa !5
  %2166 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2167 = call i32 @s2n_print_stacktrace(ptr noundef %2166) #11
  %2168 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2169 = trunc nuw i8 %2168 to i1
  br i1 %2169, label %2170, label %2174

2170:                                             ; preds = %2164
  %2171 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2172 = call i32 @fileno(ptr noundef %2171) #11
  %2173 = call i32 @isatty(i32 noundef %2172) #11
  %.not579 = icmp eq i32 %2173, 0
  br i1 %.not579, label %2174, label %2175

2174:                                             ; preds = %2170, %2164
  br label %2175

2175:                                             ; preds = %2170, %2174
  %.str.5.sink1475 = phi ptr [ @.str.5, %2174 ], [ @.str.2, %2170 ]
  store i32 %2165, ptr %1763, align 4, !tbaa !5
  %2176 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2177 = load i32, ptr @test_count, align 4, !tbaa !5
  %2178 = load i32, ptr %1709, align 4, !tbaa !5
  %2179 = call ptr @s2n_strerror(i32 noundef %2178, ptr noundef nonnull @.str.4) #11
  %2180 = load i32, ptr %1709, align 4, !tbaa !5
  %2181 = call ptr @s2n_strerror_debug(i32 noundef %2180, ptr noundef nonnull @.str.4) #11
  %2182 = load i32, ptr %1763, align 4, !tbaa !5
  %2183 = call ptr @strerror(i32 noundef %2182) #11
  %2184 = load i32, ptr %1763, align 4, !tbaa !5
  %2185 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2176, ptr noundef nonnull %.str.5.sink1475, i32 noundef %2177, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.1, i32 noundef 312, ptr noundef %2179, ptr noundef %2181, ptr noundef %2183, i32 noundef %2184) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2186:                                             ; preds = %2158
  %2187 = load ptr, ptr %20, align 8, !tbaa !9
  %2188 = getelementptr inbounds i8, ptr %2187, i64 220
  store i8 34, ptr %2188, align 4, !tbaa !52
  %2189 = getelementptr inbounds i8, ptr %2187, i64 232
  %2190 = load ptr, ptr %2189, align 8, !tbaa !53
  store ptr @s2n_tls13_aes_128_gcm_sha256, ptr %2190, align 8, !tbaa !54
  %2191 = load i32, ptr @test_count, align 4, !tbaa !5
  %2192 = add nsw i32 %2191, 1
  store i32 %2192, ptr @test_count, align 4, !tbaa !5
  %2193 = load ptr, ptr %20, align 8, !tbaa !9
  %2194 = call i32 @s2n_connection_ktls_enable_send(ptr noundef %2193) #11
  %2195 = icmp eq i32 %2194, -1
  br i1 %2195, label %2218, label %2196

2196:                                             ; preds = %2186
  %2197 = load i32, ptr %1763, align 4, !tbaa !5
  %2198 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2199 = call i32 @s2n_print_stacktrace(ptr noundef %2198) #11
  %2200 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2201 = trunc nuw i8 %2200 to i1
  br i1 %2201, label %2202, label %2206

2202:                                             ; preds = %2196
  %2203 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2204 = call i32 @fileno(ptr noundef %2203) #11
  %2205 = call i32 @isatty(i32 noundef %2204) #11
  %.not580 = icmp eq i32 %2205, 0
  br i1 %.not580, label %2206, label %2207

2206:                                             ; preds = %2202, %2196
  br label %2207

2207:                                             ; preds = %2202, %2206
  %.str.5.sink1484 = phi ptr [ @.str.5, %2206 ], [ @.str.2, %2202 ]
  store i32 %2197, ptr %1763, align 4, !tbaa !5
  %2208 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2209 = load i32, ptr @test_count, align 4, !tbaa !5
  %2210 = load i32, ptr %1709, align 4, !tbaa !5
  %2211 = call ptr @s2n_strerror(i32 noundef %2210, ptr noundef nonnull @.str.4) #11
  %2212 = load i32, ptr %1709, align 4, !tbaa !5
  %2213 = call ptr @s2n_strerror_debug(i32 noundef %2212, ptr noundef nonnull @.str.4) #11
  %2214 = load i32, ptr %1763, align 4, !tbaa !5
  %2215 = call ptr @strerror(i32 noundef %2214) #11
  %2216 = load i32, ptr %1763, align 4, !tbaa !5
  %2217 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2208, ptr noundef nonnull %.str.5.sink1484, i32 noundef %2209, ptr noundef nonnull @.str.54, ptr noundef nonnull @.str.1, i32 noundef 319, ptr noundef %2211, ptr noundef %2213, ptr noundef %2215, i32 noundef %2216) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2218:                                             ; preds = %2186
  %2219 = load i32, ptr @test_count, align 4, !tbaa !5
  %2220 = add nsw i32 %2219, 1
  store i32 %2220, ptr @test_count, align 4, !tbaa !5
  %2221 = load i32, ptr %1709, align 4, !tbaa !5
  %2222 = icmp eq i32 %2221, 469762127
  br i1 %2222, label %2245, label %2223

2223:                                             ; preds = %2218
  %2224 = load i32, ptr %1763, align 4, !tbaa !5
  %2225 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2226 = call i32 @s2n_print_stacktrace(ptr noundef %2225) #11
  %2227 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2228 = trunc nuw i8 %2227 to i1
  br i1 %2228, label %2229, label %2233

2229:                                             ; preds = %2223
  %2230 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2231 = call i32 @fileno(ptr noundef %2230) #11
  %2232 = call i32 @isatty(i32 noundef %2231) #11
  %.not581 = icmp eq i32 %2232, 0
  br i1 %.not581, label %2233, label %2234

2233:                                             ; preds = %2229, %2223
  br label %2234

2234:                                             ; preds = %2229, %2233
  %.str.5.sink1493 = phi ptr [ @.str.5, %2233 ], [ @.str.2, %2229 ]
  store i32 %2224, ptr %1763, align 4, !tbaa !5
  %2235 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2236 = load i32, ptr @test_count, align 4, !tbaa !5
  %2237 = load i32, ptr %1709, align 4, !tbaa !5
  %2238 = call ptr @s2n_strerror(i32 noundef %2237, ptr noundef nonnull @.str.4) #11
  %2239 = load i32, ptr %1709, align 4, !tbaa !5
  %2240 = call ptr @s2n_strerror_debug(i32 noundef %2239, ptr noundef nonnull @.str.4) #11
  %2241 = load i32, ptr %1763, align 4, !tbaa !5
  %2242 = call ptr @strerror(i32 noundef %2241) #11
  %2243 = load i32, ptr %1763, align 4, !tbaa !5
  %2244 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2235, ptr noundef nonnull %.str.5.sink1493, i32 noundef %2236, ptr noundef nonnull @.str.55, ptr noundef nonnull @.str.1, i32 noundef 319, ptr noundef %2238, ptr noundef %2240, ptr noundef %2242, i32 noundef %2243) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2245:                                             ; preds = %2218
  %2246 = add nsw i32 %2219, 2
  store i32 %2246, ptr @test_count, align 4, !tbaa !5
  %2247 = call ptr @s2n_strerror_debug(i32 noundef 469762127, ptr noundef nonnull @.str.4) #11
  %2248 = icmp eq ptr %2247, null
  br i1 %2248, label %2249, label %2271

2249:                                             ; preds = %2245
  %2250 = load i32, ptr %1763, align 4, !tbaa !5
  %2251 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2252 = call i32 @s2n_print_stacktrace(ptr noundef %2251) #11
  %2253 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2254 = trunc nuw i8 %2253 to i1
  br i1 %2254, label %2255, label %2259

2255:                                             ; preds = %2249
  %2256 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2257 = call i32 @fileno(ptr noundef %2256) #11
  %2258 = call i32 @isatty(i32 noundef %2257) #11
  %.not711 = icmp eq i32 %2258, 0
  br i1 %.not711, label %2259, label %2260

2259:                                             ; preds = %2255, %2249
  br label %2260

2260:                                             ; preds = %2255, %2259
  %.str.5.sink1502 = phi ptr [ @.str.5, %2259 ], [ @.str.2, %2255 ]
  store i32 %2250, ptr %1763, align 4, !tbaa !5
  %2261 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2262 = load i32, ptr @test_count, align 4, !tbaa !5
  %2263 = load i32, ptr %1709, align 4, !tbaa !5
  %2264 = call ptr @s2n_strerror(i32 noundef %2263, ptr noundef nonnull @.str.4) #11
  %2265 = load i32, ptr %1709, align 4, !tbaa !5
  %2266 = call ptr @s2n_strerror_debug(i32 noundef %2265, ptr noundef nonnull @.str.4) #11
  %2267 = load i32, ptr %1763, align 4, !tbaa !5
  %2268 = call ptr @strerror(i32 noundef %2267) #11
  %2269 = load i32, ptr %1763, align 4, !tbaa !5
  %2270 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2261, ptr noundef nonnull %.str.5.sink1502, i32 noundef %2262, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 319, ptr noundef %2264, ptr noundef %2266, ptr noundef %2268, i32 noundef %2269) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2271:                                             ; preds = %2245
  store i32 0, ptr %1709, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %1763, align 4, !tbaa !5
  %2272 = load i32, ptr @test_count, align 4, !tbaa !5
  %2273 = add nsw i32 %2272, 1
  store i32 %2273, ptr @test_count, align 4, !tbaa !5
  %2274 = load ptr, ptr %19, align 8, !tbaa !9
  %2275 = call i32 @s2n_config_ktls_enable_unsafe_tls13(ptr noundef %2274) #11
  %2276 = icmp eq i32 %2275, -1
  br i1 %2276, label %2277, label %2299

2277:                                             ; preds = %2271
  %2278 = load i32, ptr %1763, align 4, !tbaa !5
  %2279 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2280 = call i32 @s2n_print_stacktrace(ptr noundef %2279) #11
  %2281 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2282 = trunc nuw i8 %2281 to i1
  br i1 %2282, label %2283, label %2287

2283:                                             ; preds = %2277
  %2284 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2285 = call i32 @fileno(ptr noundef %2284) #11
  %2286 = call i32 @isatty(i32 noundef %2285) #11
  %.not710 = icmp eq i32 %2286, 0
  br i1 %.not710, label %2287, label %2288

2287:                                             ; preds = %2283, %2277
  br label %2288

2288:                                             ; preds = %2283, %2287
  %.str.5.sink1511 = phi ptr [ @.str.5, %2287 ], [ @.str.2, %2283 ]
  store i32 %2278, ptr %1763, align 4, !tbaa !5
  %2289 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2290 = load i32, ptr @test_count, align 4, !tbaa !5
  %2291 = load i32, ptr %1709, align 4, !tbaa !5
  %2292 = call ptr @s2n_strerror(i32 noundef %2291, ptr noundef nonnull @.str.4) #11
  %2293 = load i32, ptr %1709, align 4, !tbaa !5
  %2294 = call ptr @s2n_strerror_debug(i32 noundef %2293, ptr noundef nonnull @.str.4) #11
  %2295 = load i32, ptr %1763, align 4, !tbaa !5
  %2296 = call ptr @strerror(i32 noundef %2295) #11
  %2297 = load i32, ptr %1763, align 4, !tbaa !5
  %2298 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2289, ptr noundef nonnull %.str.5.sink1511, i32 noundef %2290, ptr noundef nonnull @.str.56, ptr noundef nonnull @.str.1, i32 noundef 322, ptr noundef %2292, ptr noundef %2294, ptr noundef %2296, i32 noundef %2297) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2299:                                             ; preds = %2271
  %2300 = load i32, ptr @test_count, align 4, !tbaa !5
  %2301 = add nsw i32 %2300, 1
  store i32 %2301, ptr @test_count, align 4, !tbaa !5
  %2302 = load ptr, ptr %20, align 8, !tbaa !9
  %2303 = call i32 @s2n_connection_ktls_enable_send(ptr noundef %2302) #11
  %2304 = icmp eq i32 %2303, -1
  br i1 %2304, label %2305, label %2327

2305:                                             ; preds = %2299
  %2306 = load i32, ptr %1763, align 4, !tbaa !5
  %2307 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2308 = call i32 @s2n_print_stacktrace(ptr noundef %2307) #11
  %2309 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2310 = trunc nuw i8 %2309 to i1
  br i1 %2310, label %2311, label %2315

2311:                                             ; preds = %2305
  %2312 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2313 = call i32 @fileno(ptr noundef %2312) #11
  %2314 = call i32 @isatty(i32 noundef %2313) #11
  %.not709 = icmp eq i32 %2314, 0
  br i1 %.not709, label %2315, label %2316

2315:                                             ; preds = %2311, %2305
  br label %2316

2316:                                             ; preds = %2311, %2315
  %.str.5.sink1520 = phi ptr [ @.str.5, %2315 ], [ @.str.2, %2311 ]
  store i32 %2306, ptr %1763, align 4, !tbaa !5
  %2317 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2318 = load i32, ptr @test_count, align 4, !tbaa !5
  %2319 = load i32, ptr %1709, align 4, !tbaa !5
  %2320 = call ptr @s2n_strerror(i32 noundef %2319, ptr noundef nonnull @.str.4) #11
  %2321 = load i32, ptr %1709, align 4, !tbaa !5
  %2322 = call ptr @s2n_strerror_debug(i32 noundef %2321, ptr noundef nonnull @.str.4) #11
  %2323 = load i32, ptr %1763, align 4, !tbaa !5
  %2324 = call ptr @strerror(i32 noundef %2323) #11
  %2325 = load i32, ptr %1763, align 4, !tbaa !5
  %2326 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2317, ptr noundef nonnull %.str.5.sink1520, i32 noundef %2318, ptr noundef nonnull @.str.57, ptr noundef nonnull @.str.1, i32 noundef 323, ptr noundef %2320, ptr noundef %2322, ptr noundef %2324, i32 noundef %2325) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2327:                                             ; preds = %2299
  %2328 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %20) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #11
  %2329 = call i32 @s2n_config_ptr_free(ptr noundef nonnull %19) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #11
  %2330 = call ptr @s2n_connection_new(i32 noundef 0) #11
  store ptr %2330, ptr %21, align 8, !tbaa !9
  %2331 = load i32, ptr @test_count, align 4, !tbaa !5
  %2332 = add nsw i32 %2331, 1
  store i32 %2332, ptr @test_count, align 4, !tbaa !5
  %2333 = call i32 @s2n_test_configure_connection_for_ktls(ptr noundef %2330)
  %2334 = call zeroext i1 @s2n_result_is_ok(i32 %2333)
  br i1 %2334, label %2357, label %2335

2335:                                             ; preds = %2327
  %2336 = load i32, ptr %1763, align 4, !tbaa !5
  %2337 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2338 = call i32 @s2n_print_stacktrace(ptr noundef %2337) #11
  %2339 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2340 = trunc nuw i8 %2339 to i1
  br i1 %2340, label %2341, label %2345

2341:                                             ; preds = %2335
  %2342 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2343 = call i32 @fileno(ptr noundef %2342) #11
  %2344 = call i32 @isatty(i32 noundef %2343) #11
  %.not582 = icmp eq i32 %2344, 0
  br i1 %.not582, label %2345, label %2346

2345:                                             ; preds = %2341, %2335
  br label %2346

2346:                                             ; preds = %2341, %2345
  %.str.5.sink1529 = phi ptr [ @.str.5, %2345 ], [ @.str.2, %2341 ]
  store i32 %2336, ptr %1763, align 4, !tbaa !5
  %2347 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2348 = load i32, ptr @test_count, align 4, !tbaa !5
  %2349 = load i32, ptr %1709, align 4, !tbaa !5
  %2350 = call ptr @s2n_strerror(i32 noundef %2349, ptr noundef nonnull @.str.4) #11
  %2351 = load i32, ptr %1709, align 4, !tbaa !5
  %2352 = call ptr @s2n_strerror_debug(i32 noundef %2351, ptr noundef nonnull @.str.4) #11
  %2353 = load i32, ptr %1763, align 4, !tbaa !5
  %2354 = call ptr @strerror(i32 noundef %2353) #11
  %2355 = load i32, ptr %1763, align 4, !tbaa !5
  %2356 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2347, ptr noundef nonnull %.str.5.sink1529, i32 noundef %2348, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 330, ptr noundef %2350, ptr noundef %2352, ptr noundef %2354, i32 noundef %2355) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2357:                                             ; preds = %2327
  %2358 = load ptr, ptr %21, align 8, !tbaa !9
  %2359 = getelementptr inbounds i8, ptr %2358, i64 220
  store i8 35, ptr %2359, align 4, !tbaa !52
  %2360 = load i32, ptr @test_count, align 4, !tbaa !5
  %2361 = add nsw i32 %2360, 1
  store i32 %2361, ptr @test_count, align 4, !tbaa !5
  %2362 = call i32 @s2n_connection_ktls_enable_send(ptr noundef %2358) #11
  %2363 = icmp eq i32 %2362, -1
  br i1 %2363, label %2386, label %2364

2364:                                             ; preds = %2357
  %2365 = load i32, ptr %1763, align 4, !tbaa !5
  %2366 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2367 = call i32 @s2n_print_stacktrace(ptr noundef %2366) #11
  %2368 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2369 = trunc nuw i8 %2368 to i1
  br i1 %2369, label %2370, label %2374

2370:                                             ; preds = %2364
  %2371 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2372 = call i32 @fileno(ptr noundef %2371) #11
  %2373 = call i32 @isatty(i32 noundef %2372) #11
  %.not583 = icmp eq i32 %2373, 0
  br i1 %.not583, label %2374, label %2375

2374:                                             ; preds = %2370, %2364
  br label %2375

2375:                                             ; preds = %2370, %2374
  %.str.5.sink1538 = phi ptr [ @.str.5, %2374 ], [ @.str.2, %2370 ]
  store i32 %2365, ptr %1763, align 4, !tbaa !5
  %2376 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2377 = load i32, ptr @test_count, align 4, !tbaa !5
  %2378 = load i32, ptr %1709, align 4, !tbaa !5
  %2379 = call ptr @s2n_strerror(i32 noundef %2378, ptr noundef nonnull @.str.4) #11
  %2380 = load i32, ptr %1709, align 4, !tbaa !5
  %2381 = call ptr @s2n_strerror_debug(i32 noundef %2380, ptr noundef nonnull @.str.4) #11
  %2382 = load i32, ptr %1763, align 4, !tbaa !5
  %2383 = call ptr @strerror(i32 noundef %2382) #11
  %2384 = load i32, ptr %1763, align 4, !tbaa !5
  %2385 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2376, ptr noundef nonnull %.str.5.sink1538, i32 noundef %2377, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, i32 noundef 333, ptr noundef %2379, ptr noundef %2381, ptr noundef %2383, i32 noundef %2384) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2386:                                             ; preds = %2357
  %2387 = load i32, ptr @test_count, align 4, !tbaa !5
  %2388 = add nsw i32 %2387, 1
  store i32 %2388, ptr @test_count, align 4, !tbaa !5
  %2389 = load i32, ptr %1709, align 4, !tbaa !5
  %2390 = icmp eq i32 %2389, 469762127
  br i1 %2390, label %2413, label %2391

2391:                                             ; preds = %2386
  %2392 = load i32, ptr %1763, align 4, !tbaa !5
  %2393 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2394 = call i32 @s2n_print_stacktrace(ptr noundef %2393) #11
  %2395 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2396 = trunc nuw i8 %2395 to i1
  br i1 %2396, label %2397, label %2401

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

2401:                                             ; preds = %2397, %2391
  br label %2402

2402:                                             ; preds = %2397, %2401
  %.str.5.sink1547 = phi ptr [ @.str.5, %2401 ], [ @.str.2, %2397 ]
  store i32 %2392, ptr %1763, align 4, !tbaa !5
  %2403 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2404 = load i32, ptr @test_count, align 4, !tbaa !5
  %2405 = load i32, ptr %1709, align 4, !tbaa !5
  %2406 = call ptr @s2n_strerror(i32 noundef %2405, ptr noundef nonnull @.str.4) #11
  %2407 = load i32, ptr %1709, align 4, !tbaa !5
  %2408 = call ptr @s2n_strerror_debug(i32 noundef %2407, ptr noundef nonnull @.str.4) #11
  %2409 = load i32, ptr %1763, align 4, !tbaa !5
  %2410 = call ptr @strerror(i32 noundef %2409) #11
  %2411 = load i32, ptr %1763, align 4, !tbaa !5
  %2412 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2403, ptr noundef nonnull %.str.5.sink1547, i32 noundef %2404, ptr noundef nonnull @.str.55, ptr noundef nonnull @.str.1, i32 noundef 333, ptr noundef %2406, ptr noundef %2408, ptr noundef %2410, i32 noundef %2411) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2413:                                             ; preds = %2386
  %2414 = add nsw i32 %2387, 2
  store i32 %2414, ptr @test_count, align 4, !tbaa !5
  %2415 = call ptr @s2n_strerror_debug(i32 noundef 469762127, ptr noundef nonnull @.str.4) #11
  %2416 = icmp eq ptr %2415, null
  br i1 %2416, label %2417, label %2439

2417:                                             ; preds = %2413
  %2418 = load i32, ptr %1763, align 4, !tbaa !5
  %2419 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2420 = call i32 @s2n_print_stacktrace(ptr noundef %2419) #11
  %2421 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2422 = trunc nuw i8 %2421 to i1
  br i1 %2422, label %2423, label %2427

2423:                                             ; preds = %2417
  %2424 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2425 = call i32 @fileno(ptr noundef %2424) #11
  %2426 = call i32 @isatty(i32 noundef %2425) #11
  %.not708 = icmp eq i32 %2426, 0
  br i1 %.not708, label %2427, label %2428

2427:                                             ; preds = %2423, %2417
  br label %2428

2428:                                             ; preds = %2423, %2427
  %.str.5.sink1556 = phi ptr [ @.str.5, %2427 ], [ @.str.2, %2423 ]
  store i32 %2418, ptr %1763, align 4, !tbaa !5
  %2429 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2430 = load i32, ptr @test_count, align 4, !tbaa !5
  %2431 = load i32, ptr %1709, align 4, !tbaa !5
  %2432 = call ptr @s2n_strerror(i32 noundef %2431, ptr noundef nonnull @.str.4) #11
  %2433 = load i32, ptr %1709, align 4, !tbaa !5
  %2434 = call ptr @s2n_strerror_debug(i32 noundef %2433, ptr noundef nonnull @.str.4) #11
  %2435 = load i32, ptr %1763, align 4, !tbaa !5
  %2436 = call ptr @strerror(i32 noundef %2435) #11
  %2437 = load i32, ptr %1763, align 4, !tbaa !5
  %2438 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2429, ptr noundef nonnull %.str.5.sink1556, i32 noundef %2430, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 333, ptr noundef %2432, ptr noundef %2434, ptr noundef %2436, i32 noundef %2437) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2439:                                             ; preds = %2413
  store i32 0, ptr %1709, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %1763, align 4, !tbaa !5
  %2440 = load ptr, ptr %21, align 8, !tbaa !9
  %2441 = getelementptr inbounds i8, ptr %2440, i64 220
  store i8 32, ptr %2441, align 4, !tbaa !52
  %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_connection_ktls_enable_send(ptr noundef %2440) #11
  %2445 = icmp eq i32 %2444, -1
  br i1 %2445, label %2468, label %2446

2446:                                             ; preds = %2439
  %2447 = load i32, ptr %1763, 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
  %.not585 = icmp eq i32 %2455, 0
  br i1 %.not585, label %2456, label %2457

2456:                                             ; preds = %2452, %2446
  br label %2457

2457:                                             ; preds = %2452, %2456
  %.str.5.sink1565 = phi ptr [ @.str.5, %2456 ], [ @.str.2, %2452 ]
  store i32 %2447, ptr %1763, 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 %1709, align 4, !tbaa !5
  %2461 = call ptr @s2n_strerror(i32 noundef %2460, ptr noundef nonnull @.str.4) #11
  %2462 = load i32, ptr %1709, align 4, !tbaa !5
  %2463 = call ptr @s2n_strerror_debug(i32 noundef %2462, ptr noundef nonnull @.str.4) #11
  %2464 = load i32, ptr %1763, align 4, !tbaa !5
  %2465 = call ptr @strerror(i32 noundef %2464) #11
  %2466 = load i32, ptr %1763, align 4, !tbaa !5
  %2467 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2458, ptr noundef nonnull %.str.5.sink1565, i32 noundef %2459, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, i32 noundef 336, ptr noundef %2461, ptr noundef %2463, ptr noundef %2465, i32 noundef %2466) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2468:                                             ; preds = %2439
  %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 = load i32, ptr %1709, align 4, !tbaa !5
  %2472 = icmp eq i32 %2471, 469762127
  br i1 %2472, label %2495, label %2473

2473:                                             ; preds = %2468
  %2474 = load i32, ptr %1763, 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
  %.not586 = icmp eq i32 %2482, 0
  br i1 %.not586, label %2483, label %2484

2483:                                             ; preds = %2479, %2473
  br label %2484

2484:                                             ; preds = %2479, %2483
  %.str.5.sink1574 = phi ptr [ @.str.5, %2483 ], [ @.str.2, %2479 ]
  store i32 %2474, ptr %1763, 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 %1709, align 4, !tbaa !5
  %2488 = call ptr @s2n_strerror(i32 noundef %2487, ptr noundef nonnull @.str.4) #11
  %2489 = load i32, ptr %1709, align 4, !tbaa !5
  %2490 = call ptr @s2n_strerror_debug(i32 noundef %2489, ptr noundef nonnull @.str.4) #11
  %2491 = load i32, ptr %1763, align 4, !tbaa !5
  %2492 = call ptr @strerror(i32 noundef %2491) #11
  %2493 = load i32, ptr %1763, align 4, !tbaa !5
  %2494 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2485, ptr noundef nonnull %.str.5.sink1574, i32 noundef %2486, ptr noundef nonnull @.str.55, ptr noundef nonnull @.str.1, i32 noundef 336, 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 = add nsw i32 %2469, 2
  store i32 %2496, ptr @test_count, align 4, !tbaa !5
  %2497 = call ptr @s2n_strerror_debug(i32 noundef 469762127, ptr noundef nonnull @.str.4) #11
  %2498 = icmp eq ptr %2497, null
  br i1 %2498, label %2499, label %2521

2499:                                             ; preds = %2495
  %2500 = load i32, ptr %1763, align 4, !tbaa !5
  %2501 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2502 = call i32 @s2n_print_stacktrace(ptr noundef %2501) #11
  %2503 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2504 = trunc nuw i8 %2503 to i1
  br i1 %2504, label %2505, label %2509

2505:                                             ; preds = %2499
  %2506 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2507 = call i32 @fileno(ptr noundef %2506) #11
  %2508 = call i32 @isatty(i32 noundef %2507) #11
  %.not707 = icmp eq i32 %2508, 0
  br i1 %.not707, label %2509, label %2510

2509:                                             ; preds = %2505, %2499
  br label %2510

2510:                                             ; preds = %2505, %2509
  %.str.5.sink1583 = phi ptr [ @.str.5, %2509 ], [ @.str.2, %2505 ]
  store i32 %2500, ptr %1763, align 4, !tbaa !5
  %2511 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2512 = load i32, ptr @test_count, align 4, !tbaa !5
  %2513 = load i32, ptr %1709, align 4, !tbaa !5
  %2514 = call ptr @s2n_strerror(i32 noundef %2513, ptr noundef nonnull @.str.4) #11
  %2515 = load i32, ptr %1709, align 4, !tbaa !5
  %2516 = call ptr @s2n_strerror_debug(i32 noundef %2515, ptr noundef nonnull @.str.4) #11
  %2517 = load i32, ptr %1763, align 4, !tbaa !5
  %2518 = call ptr @strerror(i32 noundef %2517) #11
  %2519 = load i32, ptr %1763, align 4, !tbaa !5
  %2520 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2511, ptr noundef nonnull %.str.5.sink1583, i32 noundef %2512, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 336, ptr noundef %2514, ptr noundef %2516, ptr noundef %2518, i32 noundef %2519) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2521:                                             ; preds = %2495
  store i32 0, ptr %1709, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %1763, align 4, !tbaa !5
  %2522 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %21) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #11
  call void @llvm.lifetime.start.p0(i64 104, ptr nonnull %22) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(104) %22, i8 0, i64 104, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %23) #11
  store ptr %22, ptr %23, align 8, !tbaa !59
  %2523 = getelementptr inbounds i8, ptr %23, i64 8
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %2523, i8 0, i64 16, i1 false)
  call void @llvm.lifetime.start.p0(i64 104, ptr nonnull %24) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(104) %24, i8 0, i64 104, i1 false)
  %2524 = getelementptr inbounds i8, ptr %24, i64 48
  store ptr %23, ptr %2524, align 8, !tbaa !61
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %25) #11
  %2525 = call ptr @s2n_connection_new(i32 noundef 0) #11
  store ptr %2525, ptr %25, align 8, !tbaa !9
  %2526 = load i32, ptr @test_count, align 4, !tbaa !5
  %2527 = add nsw i32 %2526, 1
  store i32 %2527, ptr @test_count, align 4, !tbaa !5
  %2528 = call i32 @s2n_test_configure_connection_for_ktls(ptr noundef %2525)
  %2529 = call zeroext i1 @s2n_result_is_ok(i32 %2528)
  br i1 %2529, label %2552, label %2530

2530:                                             ; preds = %2521
  %2531 = load i32, ptr %1763, align 4, !tbaa !5
  %2532 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2533 = call i32 @s2n_print_stacktrace(ptr noundef %2532) #11
  %2534 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2535 = trunc nuw i8 %2534 to i1
  br i1 %2535, label %2536, label %2540

2536:                                             ; preds = %2530
  %2537 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2538 = call i32 @fileno(ptr noundef %2537) #11
  %2539 = call i32 @isatty(i32 noundef %2538) #11
  %.not587 = icmp eq i32 %2539, 0
  br i1 %.not587, label %2540, label %2541

2540:                                             ; preds = %2536, %2530
  br label %2541

2541:                                             ; preds = %2536, %2540
  %.str.5.sink1592 = phi ptr [ @.str.5, %2540 ], [ @.str.2, %2536 ]
  store i32 %2531, ptr %1763, align 4, !tbaa !5
  %2542 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2543 = load i32, ptr @test_count, align 4, !tbaa !5
  %2544 = load i32, ptr %1709, align 4, !tbaa !5
  %2545 = call ptr @s2n_strerror(i32 noundef %2544, ptr noundef nonnull @.str.4) #11
  %2546 = load i32, ptr %1709, align 4, !tbaa !5
  %2547 = call ptr @s2n_strerror_debug(i32 noundef %2546, ptr noundef nonnull @.str.4) #11
  %2548 = load i32, ptr %1763, align 4, !tbaa !5
  %2549 = call ptr @strerror(i32 noundef %2548) #11
  %2550 = load i32, ptr %1763, align 4, !tbaa !5
  %2551 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2542, ptr noundef nonnull %.str.5.sink1592, i32 noundef %2543, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 354, ptr noundef %2545, ptr noundef %2547, ptr noundef %2549, i32 noundef %2550) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2552:                                             ; preds = %2521
  %2553 = load ptr, ptr %25, align 8, !tbaa !9
  %2554 = getelementptr inbounds i8, ptr %2553, i64 232
  %2555 = load ptr, ptr %2554, align 8, !tbaa !53
  store ptr %24, ptr %2555, align 8, !tbaa !54
  %2556 = load i32, ptr @test_count, align 4, !tbaa !5
  %2557 = add nsw i32 %2556, 1
  store i32 %2557, ptr @test_count, align 4, !tbaa !5
  %2558 = load ptr, ptr %25, align 8, !tbaa !9
  %2559 = call i32 @s2n_connection_ktls_enable_send(ptr noundef %2558) #11
  %2560 = icmp eq i32 %2559, -1
  br i1 %2560, label %2583, label %2561

2561:                                             ; preds = %2552
  %2562 = load i32, ptr %1763, align 4, !tbaa !5
  %2563 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2564 = call i32 @s2n_print_stacktrace(ptr noundef %2563) #11
  %2565 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2566 = trunc nuw i8 %2565 to i1
  br i1 %2566, label %2567, label %2571

2567:                                             ; preds = %2561
  %2568 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2569 = call i32 @fileno(ptr noundef %2568) #11
  %2570 = call i32 @isatty(i32 noundef %2569) #11
  %.not588 = icmp eq i32 %2570, 0
  br i1 %.not588, label %2571, label %2572

2571:                                             ; preds = %2567, %2561
  br label %2572

2572:                                             ; preds = %2567, %2571
  %.str.5.sink1601 = phi ptr [ @.str.5, %2571 ], [ @.str.2, %2567 ]
  store i32 %2562, ptr %1763, align 4, !tbaa !5
  %2573 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2574 = load i32, ptr @test_count, align 4, !tbaa !5
  %2575 = load i32, ptr %1709, align 4, !tbaa !5
  %2576 = call ptr @s2n_strerror(i32 noundef %2575, ptr noundef nonnull @.str.4) #11
  %2577 = load i32, ptr %1709, align 4, !tbaa !5
  %2578 = call ptr @s2n_strerror_debug(i32 noundef %2577, ptr noundef nonnull @.str.4) #11
  %2579 = load i32, ptr %1763, align 4, !tbaa !5
  %2580 = call ptr @strerror(i32 noundef %2579) #11
  %2581 = load i32, ptr %1763, align 4, !tbaa !5
  %2582 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2573, ptr noundef nonnull %.str.5.sink1601, i32 noundef %2574, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, i32 noundef 357, ptr noundef %2576, ptr noundef %2578, ptr noundef %2580, i32 noundef %2581) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2583:                                             ; preds = %2552
  %2584 = load i32, ptr @test_count, align 4, !tbaa !5
  %2585 = add nsw i32 %2584, 1
  store i32 %2585, ptr @test_count, align 4, !tbaa !5
  %2586 = load i32, ptr %1709, align 4, !tbaa !5
  %2587 = icmp eq i32 %2586, 469762127
  br i1 %2587, label %2610, label %2588

2588:                                             ; preds = %2583
  %2589 = load i32, ptr %1763, align 4, !tbaa !5
  %2590 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2591 = call i32 @s2n_print_stacktrace(ptr noundef %2590) #11
  %2592 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2593 = trunc nuw i8 %2592 to i1
  br i1 %2593, label %2594, label %2598

2594:                                             ; preds = %2588
  %2595 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2596 = call i32 @fileno(ptr noundef %2595) #11
  %2597 = call i32 @isatty(i32 noundef %2596) #11
  %.not589 = icmp eq i32 %2597, 0
  br i1 %.not589, label %2598, label %2599

2598:                                             ; preds = %2594, %2588
  br label %2599

2599:                                             ; preds = %2594, %2598
  %.str.5.sink1610 = phi ptr [ @.str.5, %2598 ], [ @.str.2, %2594 ]
  store i32 %2589, ptr %1763, align 4, !tbaa !5
  %2600 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2601 = load i32, ptr @test_count, align 4, !tbaa !5
  %2602 = load i32, ptr %1709, align 4, !tbaa !5
  %2603 = call ptr @s2n_strerror(i32 noundef %2602, ptr noundef nonnull @.str.4) #11
  %2604 = load i32, ptr %1709, align 4, !tbaa !5
  %2605 = call ptr @s2n_strerror_debug(i32 noundef %2604, ptr noundef nonnull @.str.4) #11
  %2606 = load i32, ptr %1763, align 4, !tbaa !5
  %2607 = call ptr @strerror(i32 noundef %2606) #11
  %2608 = load i32, ptr %1763, align 4, !tbaa !5
  %2609 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2600, ptr noundef nonnull %.str.5.sink1610, i32 noundef %2601, ptr noundef nonnull @.str.55, ptr noundef nonnull @.str.1, i32 noundef 357, ptr noundef %2603, ptr noundef %2605, ptr noundef %2607, i32 noundef %2608) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2610:                                             ; preds = %2583
  %2611 = add nsw i32 %2584, 2
  store i32 %2611, ptr @test_count, align 4, !tbaa !5
  %2612 = call ptr @s2n_strerror_debug(i32 noundef 469762127, ptr noundef nonnull @.str.4) #11
  %2613 = icmp eq ptr %2612, null
  br i1 %2613, label %2614, label %2636

2614:                                             ; preds = %2610
  %2615 = load i32, ptr %1763, align 4, !tbaa !5
  %2616 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2617 = call i32 @s2n_print_stacktrace(ptr noundef %2616) #11
  %2618 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2619 = trunc nuw i8 %2618 to i1
  br i1 %2619, label %2620, label %2624

2620:                                             ; preds = %2614
  %2621 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2622 = call i32 @fileno(ptr noundef %2621) #11
  %2623 = call i32 @isatty(i32 noundef %2622) #11
  %.not706 = icmp eq i32 %2623, 0
  br i1 %.not706, label %2624, label %2625

2624:                                             ; preds = %2620, %2614
  br label %2625

2625:                                             ; preds = %2620, %2624
  %.str.5.sink1619 = phi ptr [ @.str.5, %2624 ], [ @.str.2, %2620 ]
  store i32 %2615, ptr %1763, align 4, !tbaa !5
  %2626 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2627 = load i32, ptr @test_count, align 4, !tbaa !5
  %2628 = load i32, ptr %1709, align 4, !tbaa !5
  %2629 = call ptr @s2n_strerror(i32 noundef %2628, ptr noundef nonnull @.str.4) #11
  %2630 = load i32, ptr %1709, align 4, !tbaa !5
  %2631 = call ptr @s2n_strerror_debug(i32 noundef %2630, ptr noundef nonnull @.str.4) #11
  %2632 = load i32, ptr %1763, align 4, !tbaa !5
  %2633 = call ptr @strerror(i32 noundef %2632) #11
  %2634 = load i32, ptr %1763, align 4, !tbaa !5
  %2635 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2626, ptr noundef nonnull %.str.5.sink1619, i32 noundef %2627, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 357, ptr noundef %2629, ptr noundef %2631, ptr noundef %2633, i32 noundef %2634) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2636:                                             ; preds = %2610
  store i32 0, ptr %1709, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %1763, align 4, !tbaa !5
  %2637 = load i32, ptr @test_count, align 4, !tbaa !5
  %2638 = add nsw i32 %2637, 1
  store i32 %2638, ptr @test_count, align 4, !tbaa !5
  %2639 = load ptr, ptr %25, align 8, !tbaa !9
  %2640 = call i32 @s2n_connection_ktls_enable_recv(ptr noundef %2639) #11
  %2641 = icmp eq i32 %2640, -1
  br i1 %2641, label %2664, label %2642

2642:                                             ; preds = %2636
  %2643 = load i32, ptr %1763, align 4, !tbaa !5
  %2644 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2645 = call i32 @s2n_print_stacktrace(ptr noundef %2644) #11
  %2646 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2647 = trunc nuw i8 %2646 to i1
  br i1 %2647, label %2648, label %2652

2648:                                             ; preds = %2642
  %2649 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2650 = call i32 @fileno(ptr noundef %2649) #11
  %2651 = call i32 @isatty(i32 noundef %2650) #11
  %.not590 = icmp eq i32 %2651, 0
  br i1 %.not590, label %2652, label %2653

2652:                                             ; preds = %2648, %2642
  br label %2653

2653:                                             ; preds = %2648, %2652
  %.str.5.sink1628 = phi ptr [ @.str.5, %2652 ], [ @.str.2, %2648 ]
  store i32 %2643, ptr %1763, align 4, !tbaa !5
  %2654 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2655 = load i32, ptr @test_count, align 4, !tbaa !5
  %2656 = load i32, ptr %1709, align 4, !tbaa !5
  %2657 = call ptr @s2n_strerror(i32 noundef %2656, ptr noundef nonnull @.str.4) #11
  %2658 = load i32, ptr %1709, align 4, !tbaa !5
  %2659 = call ptr @s2n_strerror_debug(i32 noundef %2658, ptr noundef nonnull @.str.4) #11
  %2660 = load i32, ptr %1763, align 4, !tbaa !5
  %2661 = call ptr @strerror(i32 noundef %2660) #11
  %2662 = load i32, ptr %1763, align 4, !tbaa !5
  %2663 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2654, ptr noundef nonnull %.str.5.sink1628, i32 noundef %2655, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 358, ptr noundef %2657, ptr noundef %2659, ptr noundef %2661, i32 noundef %2662) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2664:                                             ; preds = %2636
  %2665 = load i32, ptr @test_count, align 4, !tbaa !5
  %2666 = add nsw i32 %2665, 1
  store i32 %2666, ptr @test_count, align 4, !tbaa !5
  %2667 = load i32, ptr %1709, align 4, !tbaa !5
  %2668 = icmp eq i32 %2667, 469762127
  br i1 %2668, label %2691, label %2669

2669:                                             ; preds = %2664
  %2670 = load i32, ptr %1763, align 4, !tbaa !5
  %2671 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2672 = call i32 @s2n_print_stacktrace(ptr noundef %2671) #11
  %2673 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2674 = trunc nuw i8 %2673 to i1
  br i1 %2674, label %2675, label %2679

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

2679:                                             ; preds = %2675, %2669
  br label %2680

2680:                                             ; preds = %2675, %2679
  %.str.5.sink1637 = phi ptr [ @.str.5, %2679 ], [ @.str.2, %2675 ]
  store i32 %2670, ptr %1763, align 4, !tbaa !5
  %2681 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2682 = load i32, ptr @test_count, align 4, !tbaa !5
  %2683 = load i32, ptr %1709, align 4, !tbaa !5
  %2684 = call ptr @s2n_strerror(i32 noundef %2683, ptr noundef nonnull @.str.4) #11
  %2685 = load i32, ptr %1709, align 4, !tbaa !5
  %2686 = call ptr @s2n_strerror_debug(i32 noundef %2685, ptr noundef nonnull @.str.4) #11
  %2687 = load i32, ptr %1763, align 4, !tbaa !5
  %2688 = call ptr @strerror(i32 noundef %2687) #11
  %2689 = load i32, ptr %1763, align 4, !tbaa !5
  %2690 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2681, ptr noundef nonnull %.str.5.sink1637, i32 noundef %2682, ptr noundef nonnull @.str.55, ptr noundef nonnull @.str.1, i32 noundef 358, ptr noundef %2684, ptr noundef %2686, ptr noundef %2688, i32 noundef %2689) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2691:                                             ; preds = %2664
  %2692 = add nsw i32 %2665, 2
  store i32 %2692, ptr @test_count, align 4, !tbaa !5
  %2693 = call ptr @s2n_strerror_debug(i32 noundef 469762127, ptr noundef nonnull @.str.4) #11
  %2694 = icmp eq ptr %2693, null
  br i1 %2694, label %2695, label %2717

2695:                                             ; preds = %2691
  %2696 = load i32, ptr %1763, align 4, !tbaa !5
  %2697 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2698 = call i32 @s2n_print_stacktrace(ptr noundef %2697) #11
  %2699 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2700 = trunc nuw i8 %2699 to i1
  br i1 %2700, label %2701, label %2705

2701:                                             ; preds = %2695
  %2702 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2703 = call i32 @fileno(ptr noundef %2702) #11
  %2704 = call i32 @isatty(i32 noundef %2703) #11
  %.not705 = icmp eq i32 %2704, 0
  br i1 %.not705, label %2705, label %2706

2705:                                             ; preds = %2701, %2695
  br label %2706

2706:                                             ; preds = %2701, %2705
  %.str.5.sink1646 = phi ptr [ @.str.5, %2705 ], [ @.str.2, %2701 ]
  store i32 %2696, ptr %1763, align 4, !tbaa !5
  %2707 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2708 = load i32, ptr @test_count, align 4, !tbaa !5
  %2709 = load i32, ptr %1709, align 4, !tbaa !5
  %2710 = call ptr @s2n_strerror(i32 noundef %2709, ptr noundef nonnull @.str.4) #11
  %2711 = load i32, ptr %1709, align 4, !tbaa !5
  %2712 = call ptr @s2n_strerror_debug(i32 noundef %2711, ptr noundef nonnull @.str.4) #11
  %2713 = load i32, ptr %1763, align 4, !tbaa !5
  %2714 = call ptr @strerror(i32 noundef %2713) #11
  %2715 = load i32, ptr %1763, align 4, !tbaa !5
  %2716 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2707, ptr noundef nonnull %.str.5.sink1646, i32 noundef %2708, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 358, ptr noundef %2710, ptr noundef %2712, ptr noundef %2714, i32 noundef %2715) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2717:                                             ; preds = %2691
  store i32 0, ptr %1709, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %1763, align 4, !tbaa !5
  %2718 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %25) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #11
  call void @llvm.lifetime.end.p0(i64 104, ptr nonnull %24) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %23) #11
  call void @llvm.lifetime.end.p0(i64 104, ptr nonnull %22) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %26) #11
  %2719 = call ptr @s2n_connection_new(i32 noundef 0) #11
  store ptr %2719, ptr %26, align 8, !tbaa !9
  %2720 = load i32, ptr @test_count, align 4, !tbaa !5
  %2721 = add nsw i32 %2720, 1
  store i32 %2721, ptr @test_count, align 4, !tbaa !5
  %2722 = call i32 @s2n_test_configure_connection_for_ktls(ptr noundef %2719)
  %2723 = call zeroext i1 @s2n_result_is_ok(i32 %2722)
  br i1 %2723, label %2746, label %2724

2724:                                             ; preds = %2717
  %2725 = load i32, ptr %1763, align 4, !tbaa !5
  %2726 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2727 = call i32 @s2n_print_stacktrace(ptr noundef %2726) #11
  %2728 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2729 = trunc nuw i8 %2728 to i1
  br i1 %2729, label %2730, label %2734

2730:                                             ; preds = %2724
  %2731 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2732 = call i32 @fileno(ptr noundef %2731) #11
  %2733 = call i32 @isatty(i32 noundef %2732) #11
  %.not592 = icmp eq i32 %2733, 0
  br i1 %.not592, label %2734, label %2735

2734:                                             ; preds = %2730, %2724
  br label %2735

2735:                                             ; preds = %2730, %2734
  %.str.5.sink1655 = phi ptr [ @.str.5, %2734 ], [ @.str.2, %2730 ]
  store i32 %2725, ptr %1763, align 4, !tbaa !5
  %2736 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2737 = load i32, ptr @test_count, align 4, !tbaa !5
  %2738 = load i32, ptr %1709, align 4, !tbaa !5
  %2739 = call ptr @s2n_strerror(i32 noundef %2738, ptr noundef nonnull @.str.4) #11
  %2740 = load i32, ptr %1709, align 4, !tbaa !5
  %2741 = call ptr @s2n_strerror_debug(i32 noundef %2740, ptr noundef nonnull @.str.4) #11
  %2742 = load i32, ptr %1763, align 4, !tbaa !5
  %2743 = call ptr @strerror(i32 noundef %2742) #11
  %2744 = load i32, ptr %1763, align 4, !tbaa !5
  %2745 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2736, ptr noundef nonnull %.str.5.sink1655, i32 noundef %2737, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 365, ptr noundef %2739, ptr noundef %2741, ptr noundef %2743, i32 noundef %2744) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2746:                                             ; preds = %2717
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %27) #11
  store i8 0, ptr %27, align 1, !tbaa !18
  %2747 = load i32, ptr @test_count, align 4, !tbaa !5
  %2748 = add nsw i32 %2747, 1
  store i32 %2748, ptr @test_count, align 4, !tbaa !5
  %2749 = load ptr, ptr %26, align 8, !tbaa !9
  %2750 = getelementptr inbounds i8, ptr %2749, i64 1896
  %2751 = call i32 @s2n_stuffer_write_uint8(ptr noundef nonnull %2750, i8 noundef zeroext 8) #11
  %2752 = icmp eq i32 %2751, -1
  br i1 %2752, label %2753, label %2775

2753:                                             ; preds = %2746
  %2754 = load i32, ptr %1763, align 4, !tbaa !5
  %2755 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2756 = call i32 @s2n_print_stacktrace(ptr noundef %2755) #11
  %2757 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2758 = trunc nuw i8 %2757 to i1
  br i1 %2758, label %2759, label %2763

2759:                                             ; preds = %2753
  %2760 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2761 = call i32 @fileno(ptr noundef %2760) #11
  %2762 = call i32 @isatty(i32 noundef %2761) #11
  %.not704 = icmp eq i32 %2762, 0
  br i1 %.not704, label %2763, label %2764

2763:                                             ; preds = %2759, %2753
  br label %2764

2764:                                             ; preds = %2759, %2763
  %.str.5.sink1664 = phi ptr [ @.str.5, %2763 ], [ @.str.2, %2759 ]
  store i32 %2754, ptr %1763, align 4, !tbaa !5
  %2765 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2766 = load i32, ptr @test_count, align 4, !tbaa !5
  %2767 = load i32, ptr %1709, align 4, !tbaa !5
  %2768 = call ptr @s2n_strerror(i32 noundef %2767, ptr noundef nonnull @.str.4) #11
  %2769 = load i32, ptr %1709, align 4, !tbaa !5
  %2770 = call ptr @s2n_strerror_debug(i32 noundef %2769, ptr noundef nonnull @.str.4) #11
  %2771 = load i32, ptr %1763, align 4, !tbaa !5
  %2772 = call ptr @strerror(i32 noundef %2771) #11
  %2773 = load i32, ptr %1763, align 4, !tbaa !5
  %2774 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2765, ptr noundef nonnull %.str.5.sink1664, i32 noundef %2766, ptr noundef nonnull @.str.58, ptr noundef nonnull @.str.1, i32 noundef 370, ptr noundef %2768, ptr noundef %2770, ptr noundef %2772, i32 noundef %2773) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2775:                                             ; preds = %2746
  %2776 = load i32, ptr @test_count, align 4, !tbaa !5
  %2777 = add nsw i32 %2776, 1
  store i32 %2777, ptr @test_count, align 4, !tbaa !5
  %2778 = load ptr, ptr %26, align 8, !tbaa !9
  %2779 = call i32 @s2n_connection_ktls_enable_send(ptr noundef %2778) #11
  %2780 = icmp eq i32 %2779, -1
  br i1 %2780, label %2803, label %2781

2781:                                             ; preds = %2775
  %2782 = load i32, ptr %1763, align 4, !tbaa !5
  %2783 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2784 = call i32 @s2n_print_stacktrace(ptr noundef %2783) #11
  %2785 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2786 = trunc nuw i8 %2785 to i1
  br i1 %2786, label %2787, label %2791

2787:                                             ; preds = %2781
  %2788 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2789 = call i32 @fileno(ptr noundef %2788) #11
  %2790 = call i32 @isatty(i32 noundef %2789) #11
  %.not593 = icmp eq i32 %2790, 0
  br i1 %.not593, label %2791, label %2792

2791:                                             ; preds = %2787, %2781
  br label %2792

2792:                                             ; preds = %2787, %2791
  %.str.5.sink1673 = phi ptr [ @.str.5, %2791 ], [ @.str.2, %2787 ]
  store i32 %2782, ptr %1763, align 4, !tbaa !5
  %2793 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2794 = load i32, ptr @test_count, align 4, !tbaa !5
  %2795 = load i32, ptr %1709, align 4, !tbaa !5
  %2796 = call ptr @s2n_strerror(i32 noundef %2795, ptr noundef nonnull @.str.4) #11
  %2797 = load i32, ptr %1709, align 4, !tbaa !5
  %2798 = call ptr @s2n_strerror_debug(i32 noundef %2797, ptr noundef nonnull @.str.4) #11
  %2799 = load i32, ptr %1763, align 4, !tbaa !5
  %2800 = call ptr @strerror(i32 noundef %2799) #11
  %2801 = load i32, ptr %1763, align 4, !tbaa !5
  %2802 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2793, ptr noundef nonnull %.str.5.sink1673, i32 noundef %2794, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, i32 noundef 371, ptr noundef %2796, ptr noundef %2798, ptr noundef %2800, i32 noundef %2801) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2803:                                             ; preds = %2775
  %2804 = load i32, ptr @test_count, align 4, !tbaa !5
  %2805 = add nsw i32 %2804, 1
  store i32 %2805, ptr @test_count, align 4, !tbaa !5
  %2806 = load i32, ptr %1709, align 4, !tbaa !5
  %2807 = icmp eq i32 %2806, 335544392
  br i1 %2807, label %2830, label %2808

2808:                                             ; preds = %2803
  %2809 = load i32, ptr %1763, align 4, !tbaa !5
  %2810 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2811 = call i32 @s2n_print_stacktrace(ptr noundef %2810) #11
  %2812 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2813 = trunc nuw i8 %2812 to i1
  br i1 %2813, label %2814, label %2818

2814:                                             ; preds = %2808
  %2815 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2816 = call i32 @fileno(ptr noundef %2815) #11
  %2817 = call i32 @isatty(i32 noundef %2816) #11
  %.not594 = icmp eq i32 %2817, 0
  br i1 %.not594, label %2818, label %2819

2818:                                             ; preds = %2814, %2808
  br label %2819

2819:                                             ; preds = %2814, %2818
  %.str.5.sink1682 = phi ptr [ @.str.5, %2818 ], [ @.str.2, %2814 ]
  store i32 %2809, ptr %1763, align 4, !tbaa !5
  %2820 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2821 = load i32, ptr @test_count, align 4, !tbaa !5
  %2822 = load i32, ptr %1709, align 4, !tbaa !5
  %2823 = call ptr @s2n_strerror(i32 noundef %2822, ptr noundef nonnull @.str.4) #11
  %2824 = load i32, ptr %1709, align 4, !tbaa !5
  %2825 = call ptr @s2n_strerror_debug(i32 noundef %2824, ptr noundef nonnull @.str.4) #11
  %2826 = load i32, ptr %1763, align 4, !tbaa !5
  %2827 = call ptr @strerror(i32 noundef %2826) #11
  %2828 = load i32, ptr %1763, align 4, !tbaa !5
  %2829 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2820, ptr noundef nonnull %.str.5.sink1682, i32 noundef %2821, ptr noundef nonnull @.str.59, ptr noundef nonnull @.str.1, i32 noundef 371, ptr noundef %2823, ptr noundef %2825, ptr noundef %2827, i32 noundef %2828) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2830:                                             ; preds = %2803
  %2831 = add nsw i32 %2804, 2
  store i32 %2831, ptr @test_count, align 4, !tbaa !5
  %2832 = call ptr @s2n_strerror_debug(i32 noundef 335544392, ptr noundef nonnull @.str.4) #11
  %2833 = icmp eq ptr %2832, null
  br i1 %2833, label %2834, label %2856

2834:                                             ; preds = %2830
  %2835 = load i32, ptr %1763, align 4, !tbaa !5
  %2836 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2837 = call i32 @s2n_print_stacktrace(ptr noundef %2836) #11
  %2838 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2839 = trunc nuw i8 %2838 to i1
  br i1 %2839, label %2840, label %2844

2840:                                             ; preds = %2834
  %2841 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2842 = call i32 @fileno(ptr noundef %2841) #11
  %2843 = call i32 @isatty(i32 noundef %2842) #11
  %.not703 = icmp eq i32 %2843, 0
  br i1 %.not703, label %2844, label %2845

2844:                                             ; preds = %2840, %2834
  br label %2845

2845:                                             ; preds = %2840, %2844
  %.str.5.sink1691 = phi ptr [ @.str.5, %2844 ], [ @.str.2, %2840 ]
  store i32 %2835, ptr %1763, align 4, !tbaa !5
  %2846 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2847 = load i32, ptr @test_count, align 4, !tbaa !5
  %2848 = load i32, ptr %1709, align 4, !tbaa !5
  %2849 = call ptr @s2n_strerror(i32 noundef %2848, ptr noundef nonnull @.str.4) #11
  %2850 = load i32, ptr %1709, align 4, !tbaa !5
  %2851 = call ptr @s2n_strerror_debug(i32 noundef %2850, ptr noundef nonnull @.str.4) #11
  %2852 = load i32, ptr %1763, align 4, !tbaa !5
  %2853 = call ptr @strerror(i32 noundef %2852) #11
  %2854 = load i32, ptr %1763, align 4, !tbaa !5
  %2855 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2846, ptr noundef nonnull %.str.5.sink1691, i32 noundef %2847, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 371, ptr noundef %2849, ptr noundef %2851, ptr noundef %2853, i32 noundef %2854) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2856:                                             ; preds = %2830
  store i32 0, ptr %1709, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %1763, align 4, !tbaa !5
  %2857 = load i32, ptr @test_count, align 4, !tbaa !5
  %2858 = add nsw i32 %2857, 1
  store i32 %2858, ptr @test_count, align 4, !tbaa !5
  %2859 = load ptr, ptr %26, align 8, !tbaa !9
  %2860 = getelementptr inbounds i8, ptr %2859, i64 1896
  %2861 = call i32 @s2n_stuffer_read_uint8(ptr noundef nonnull %2860, ptr noundef nonnull %27) #11
  %2862 = icmp eq i32 %2861, -1
  br i1 %2862, label %2863, label %2885

2863:                                             ; preds = %2856
  %2864 = load i32, ptr %1763, align 4, !tbaa !5
  %2865 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2866 = call i32 @s2n_print_stacktrace(ptr noundef %2865) #11
  %2867 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2868 = trunc nuw i8 %2867 to i1
  br i1 %2868, label %2869, label %2873

2869:                                             ; preds = %2863
  %2870 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2871 = call i32 @fileno(ptr noundef %2870) #11
  %2872 = call i32 @isatty(i32 noundef %2871) #11
  %.not702 = icmp eq i32 %2872, 0
  br i1 %.not702, label %2873, label %2874

2873:                                             ; preds = %2869, %2863
  br label %2874

2874:                                             ; preds = %2869, %2873
  %.str.5.sink1700 = phi ptr [ @.str.5, %2873 ], [ @.str.2, %2869 ]
  store i32 %2864, ptr %1763, align 4, !tbaa !5
  %2875 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2876 = load i32, ptr @test_count, align 4, !tbaa !5
  %2877 = load i32, ptr %1709, align 4, !tbaa !5
  %2878 = call ptr @s2n_strerror(i32 noundef %2877, ptr noundef nonnull @.str.4) #11
  %2879 = load i32, ptr %1709, align 4, !tbaa !5
  %2880 = call ptr @s2n_strerror_debug(i32 noundef %2879, ptr noundef nonnull @.str.4) #11
  %2881 = load i32, ptr %1763, align 4, !tbaa !5
  %2882 = call ptr @strerror(i32 noundef %2881) #11
  %2883 = load i32, ptr %1763, align 4, !tbaa !5
  %2884 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2875, ptr noundef nonnull %.str.5.sink1700, i32 noundef %2876, ptr noundef nonnull @.str.60, ptr noundef nonnull @.str.1, i32 noundef 373, ptr noundef %2878, ptr noundef %2880, ptr noundef %2882, i32 noundef %2883) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2885:                                             ; preds = %2856
  %2886 = load i32, ptr @test_count, align 4, !tbaa !5
  %2887 = add nsw i32 %2886, 1
  store i32 %2887, ptr @test_count, align 4, !tbaa !5
  %2888 = load ptr, ptr %26, align 8, !tbaa !9
  %2889 = call i32 @s2n_connection_ktls_enable_send(ptr noundef %2888) #11
  %2890 = icmp eq i32 %2889, -1
  br i1 %2890, label %2891, label %2913

2891:                                             ; preds = %2885
  %2892 = load i32, ptr %1763, align 4, !tbaa !5
  %2893 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2894 = call i32 @s2n_print_stacktrace(ptr noundef %2893) #11
  %2895 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2896 = trunc nuw i8 %2895 to i1
  br i1 %2896, label %2897, label %2901

2897:                                             ; preds = %2891
  %2898 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2899 = call i32 @fileno(ptr noundef %2898) #11
  %2900 = call i32 @isatty(i32 noundef %2899) #11
  %.not701 = icmp eq i32 %2900, 0
  br i1 %.not701, label %2901, label %2902

2901:                                             ; preds = %2897, %2891
  br label %2902

2902:                                             ; preds = %2897, %2901
  %.str.5.sink1709 = phi ptr [ @.str.5, %2901 ], [ @.str.2, %2897 ]
  store i32 %2892, ptr %1763, align 4, !tbaa !5
  %2903 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2904 = load i32, ptr @test_count, align 4, !tbaa !5
  %2905 = load i32, ptr %1709, align 4, !tbaa !5
  %2906 = call ptr @s2n_strerror(i32 noundef %2905, ptr noundef nonnull @.str.4) #11
  %2907 = load i32, ptr %1709, align 4, !tbaa !5
  %2908 = call ptr @s2n_strerror_debug(i32 noundef %2907, ptr noundef nonnull @.str.4) #11
  %2909 = load i32, ptr %1763, align 4, !tbaa !5
  %2910 = call ptr @strerror(i32 noundef %2909) #11
  %2911 = load i32, ptr %1763, align 4, !tbaa !5
  %2912 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2903, ptr noundef nonnull %.str.5.sink1709, i32 noundef %2904, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 374, ptr noundef %2906, ptr noundef %2908, ptr noundef %2910, i32 noundef %2911) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2913:                                             ; preds = %2885
  %2914 = load i32, ptr @test_count, align 4, !tbaa !5
  %2915 = add nsw i32 %2914, 1
  store i32 %2915, ptr @test_count, align 4, !tbaa !5
  %2916 = load ptr, ptr %26, align 8, !tbaa !9
  %2917 = getelementptr inbounds i8, ptr %2916, i64 1776
  %2918 = call i32 @s2n_stuffer_write_uint8(ptr noundef nonnull %2917, i8 noundef zeroext 8) #11
  %2919 = icmp eq i32 %2918, -1
  br i1 %2919, label %2920, label %2942

2920:                                             ; preds = %2913
  %2921 = load i32, ptr %1763, align 4, !tbaa !5
  %2922 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2923 = call i32 @s2n_print_stacktrace(ptr noundef %2922) #11
  %2924 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2925 = trunc nuw i8 %2924 to i1
  br i1 %2925, label %2926, label %2930

2926:                                             ; preds = %2920
  %2927 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2928 = call i32 @fileno(ptr noundef %2927) #11
  %2929 = call i32 @isatty(i32 noundef %2928) #11
  %.not700 = icmp eq i32 %2929, 0
  br i1 %.not700, label %2930, label %2931

2930:                                             ; preds = %2926, %2920
  br label %2931

2931:                                             ; preds = %2926, %2930
  %.str.5.sink1718 = phi ptr [ @.str.5, %2930 ], [ @.str.2, %2926 ]
  store i32 %2921, ptr %1763, align 4, !tbaa !5
  %2932 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2933 = load i32, ptr @test_count, align 4, !tbaa !5
  %2934 = load i32, ptr %1709, align 4, !tbaa !5
  %2935 = call ptr @s2n_strerror(i32 noundef %2934, ptr noundef nonnull @.str.4) #11
  %2936 = load i32, ptr %1709, align 4, !tbaa !5
  %2937 = call ptr @s2n_strerror_debug(i32 noundef %2936, ptr noundef nonnull @.str.4) #11
  %2938 = load i32, ptr %1763, align 4, !tbaa !5
  %2939 = call ptr @strerror(i32 noundef %2938) #11
  %2940 = load i32, ptr %1763, align 4, !tbaa !5
  %2941 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2932, ptr noundef nonnull %.str.5.sink1718, i32 noundef %2933, ptr noundef nonnull @.str.61, ptr noundef nonnull @.str.1, i32 noundef 377, ptr noundef %2935, ptr noundef %2937, ptr noundef %2939, i32 noundef %2940) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2942:                                             ; preds = %2913
  %2943 = load i32, ptr @test_count, align 4, !tbaa !5
  %2944 = add nsw i32 %2943, 1
  store i32 %2944, ptr @test_count, align 4, !tbaa !5
  %2945 = load ptr, ptr %26, align 8, !tbaa !9
  %2946 = call i32 @s2n_connection_ktls_enable_recv(ptr noundef %2945) #11
  %2947 = icmp eq i32 %2946, -1
  br i1 %2947, label %2970, label %2948

2948:                                             ; preds = %2942
  %2949 = load i32, ptr %1763, align 4, !tbaa !5
  %2950 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2951 = call i32 @s2n_print_stacktrace(ptr noundef %2950) #11
  %2952 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2953 = trunc nuw i8 %2952 to i1
  br i1 %2953, label %2954, label %2958

2954:                                             ; preds = %2948
  %2955 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2956 = call i32 @fileno(ptr noundef %2955) #11
  %2957 = call i32 @isatty(i32 noundef %2956) #11
  %.not595 = icmp eq i32 %2957, 0
  br i1 %.not595, label %2958, label %2959

2958:                                             ; preds = %2954, %2948
  br label %2959

2959:                                             ; preds = %2954, %2958
  %.str.5.sink1727 = phi ptr [ @.str.5, %2958 ], [ @.str.2, %2954 ]
  store i32 %2949, ptr %1763, align 4, !tbaa !5
  %2960 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2961 = load i32, ptr @test_count, align 4, !tbaa !5
  %2962 = load i32, ptr %1709, align 4, !tbaa !5
  %2963 = call ptr @s2n_strerror(i32 noundef %2962, ptr noundef nonnull @.str.4) #11
  %2964 = load i32, ptr %1709, align 4, !tbaa !5
  %2965 = call ptr @s2n_strerror_debug(i32 noundef %2964, ptr noundef nonnull @.str.4) #11
  %2966 = load i32, ptr %1763, align 4, !tbaa !5
  %2967 = call ptr @strerror(i32 noundef %2966) #11
  %2968 = load i32, ptr %1763, align 4, !tbaa !5
  %2969 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2960, ptr noundef nonnull %.str.5.sink1727, i32 noundef %2961, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 378, ptr noundef %2963, ptr noundef %2965, ptr noundef %2967, i32 noundef %2968) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2970:                                             ; preds = %2942
  %2971 = load i32, ptr @test_count, align 4, !tbaa !5
  %2972 = add nsw i32 %2971, 1
  store i32 %2972, ptr @test_count, align 4, !tbaa !5
  %2973 = load i32, ptr %1709, align 4, !tbaa !5
  %2974 = icmp eq i32 %2973, 335544392
  br i1 %2974, label %2997, label %2975

2975:                                             ; preds = %2970
  %2976 = load i32, ptr %1763, align 4, !tbaa !5
  %2977 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2978 = call i32 @s2n_print_stacktrace(ptr noundef %2977) #11
  %2979 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2980 = trunc nuw i8 %2979 to i1
  br i1 %2980, label %2981, label %2985

2981:                                             ; preds = %2975
  %2982 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2983 = call i32 @fileno(ptr noundef %2982) #11
  %2984 = call i32 @isatty(i32 noundef %2983) #11
  %.not596 = icmp eq i32 %2984, 0
  br i1 %.not596, label %2985, label %2986

2985:                                             ; preds = %2981, %2975
  br label %2986

2986:                                             ; preds = %2981, %2985
  %.str.5.sink1736 = phi ptr [ @.str.5, %2985 ], [ @.str.2, %2981 ]
  store i32 %2976, ptr %1763, align 4, !tbaa !5
  %2987 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2988 = load i32, ptr @test_count, align 4, !tbaa !5
  %2989 = load i32, ptr %1709, align 4, !tbaa !5
  %2990 = call ptr @s2n_strerror(i32 noundef %2989, ptr noundef nonnull @.str.4) #11
  %2991 = load i32, ptr %1709, align 4, !tbaa !5
  %2992 = call ptr @s2n_strerror_debug(i32 noundef %2991, ptr noundef nonnull @.str.4) #11
  %2993 = load i32, ptr %1763, align 4, !tbaa !5
  %2994 = call ptr @strerror(i32 noundef %2993) #11
  %2995 = load i32, ptr %1763, align 4, !tbaa !5
  %2996 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2987, ptr noundef nonnull %.str.5.sink1736, i32 noundef %2988, ptr noundef nonnull @.str.59, ptr noundef nonnull @.str.1, i32 noundef 378, ptr noundef %2990, ptr noundef %2992, ptr noundef %2994, i32 noundef %2995) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2997:                                             ; preds = %2970
  %2998 = add nsw i32 %2971, 2
  store i32 %2998, ptr @test_count, align 4, !tbaa !5
  %2999 = call ptr @s2n_strerror_debug(i32 noundef 335544392, ptr noundef nonnull @.str.4) #11
  %3000 = icmp eq ptr %2999, null
  br i1 %3000, label %3001, label %3023

3001:                                             ; preds = %2997
  %3002 = load i32, ptr %1763, align 4, !tbaa !5
  %3003 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3004 = call i32 @s2n_print_stacktrace(ptr noundef %3003) #11
  %3005 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3006 = trunc nuw i8 %3005 to i1
  br i1 %3006, label %3007, label %3011

3007:                                             ; preds = %3001
  %3008 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3009 = call i32 @fileno(ptr noundef %3008) #11
  %3010 = call i32 @isatty(i32 noundef %3009) #11
  %.not699 = icmp eq i32 %3010, 0
  br i1 %.not699, label %3011, label %3012

3011:                                             ; preds = %3007, %3001
  br label %3012

3012:                                             ; preds = %3007, %3011
  %.str.5.sink1745 = phi ptr [ @.str.5, %3011 ], [ @.str.2, %3007 ]
  store i32 %3002, ptr %1763, align 4, !tbaa !5
  %3013 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3014 = load i32, ptr @test_count, align 4, !tbaa !5
  %3015 = load i32, ptr %1709, align 4, !tbaa !5
  %3016 = call ptr @s2n_strerror(i32 noundef %3015, ptr noundef nonnull @.str.4) #11
  %3017 = load i32, ptr %1709, align 4, !tbaa !5
  %3018 = call ptr @s2n_strerror_debug(i32 noundef %3017, ptr noundef nonnull @.str.4) #11
  %3019 = load i32, ptr %1763, align 4, !tbaa !5
  %3020 = call ptr @strerror(i32 noundef %3019) #11
  %3021 = load i32, ptr %1763, align 4, !tbaa !5
  %3022 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3013, ptr noundef nonnull %.str.5.sink1745, i32 noundef %3014, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 378, ptr noundef %3016, ptr noundef %3018, ptr noundef %3020, i32 noundef %3021) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3023:                                             ; preds = %2997
  store i32 0, ptr %1709, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %1763, align 4, !tbaa !5
  %3024 = load i32, ptr @test_count, align 4, !tbaa !5
  %3025 = add nsw i32 %3024, 1
  store i32 %3025, ptr @test_count, align 4, !tbaa !5
  %3026 = load ptr, ptr %26, align 8, !tbaa !9
  %3027 = getelementptr inbounds i8, ptr %3026, i64 1776
  %3028 = call i32 @s2n_stuffer_read_uint8(ptr noundef nonnull %3027, ptr noundef nonnull %27) #11
  %3029 = icmp eq i32 %3028, -1
  br i1 %3029, label %3030, label %3052

3030:                                             ; preds = %3023
  %3031 = load i32, ptr %1763, align 4, !tbaa !5
  %3032 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3033 = call i32 @s2n_print_stacktrace(ptr noundef %3032) #11
  %3034 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3035 = trunc nuw i8 %3034 to i1
  br i1 %3035, label %3036, label %3040

3036:                                             ; preds = %3030
  %3037 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3038 = call i32 @fileno(ptr noundef %3037) #11
  %3039 = call i32 @isatty(i32 noundef %3038) #11
  %.not698 = icmp eq i32 %3039, 0
  br i1 %.not698, label %3040, label %3041

3040:                                             ; preds = %3036, %3030
  br label %3041

3041:                                             ; preds = %3036, %3040
  %.str.5.sink1754 = phi ptr [ @.str.5, %3040 ], [ @.str.2, %3036 ]
  store i32 %3031, ptr %1763, align 4, !tbaa !5
  %3042 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3043 = load i32, ptr @test_count, align 4, !tbaa !5
  %3044 = load i32, ptr %1709, align 4, !tbaa !5
  %3045 = call ptr @s2n_strerror(i32 noundef %3044, ptr noundef nonnull @.str.4) #11
  %3046 = load i32, ptr %1709, align 4, !tbaa !5
  %3047 = call ptr @s2n_strerror_debug(i32 noundef %3046, ptr noundef nonnull @.str.4) #11
  %3048 = load i32, ptr %1763, align 4, !tbaa !5
  %3049 = call ptr @strerror(i32 noundef %3048) #11
  %3050 = load i32, ptr %1763, align 4, !tbaa !5
  %3051 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3042, ptr noundef nonnull %.str.5.sink1754, i32 noundef %3043, ptr noundef nonnull @.str.62, ptr noundef nonnull @.str.1, i32 noundef 379, ptr noundef %3045, ptr noundef %3047, ptr noundef %3049, i32 noundef %3050) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3052:                                             ; preds = %3023
  %3053 = load i32, ptr @test_count, align 4, !tbaa !5
  %3054 = add nsw i32 %3053, 1
  store i32 %3054, ptr @test_count, align 4, !tbaa !5
  %3055 = load ptr, ptr %26, align 8, !tbaa !9
  %3056 = getelementptr inbounds i8, ptr %3055, i64 1856
  %3057 = call i32 @s2n_stuffer_write_uint8(ptr noundef nonnull %3056, i8 noundef zeroext 8) #11
  %3058 = icmp eq i32 %3057, -1
  br i1 %3058, label %3059, label %3081

3059:                                             ; preds = %3052
  %3060 = load i32, ptr %1763, align 4, !tbaa !5
  %3061 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3062 = call i32 @s2n_print_stacktrace(ptr noundef %3061) #11
  %3063 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3064 = trunc nuw i8 %3063 to i1
  br i1 %3064, label %3065, label %3069

3065:                                             ; preds = %3059
  %3066 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3067 = call i32 @fileno(ptr noundef %3066) #11
  %3068 = call i32 @isatty(i32 noundef %3067) #11
  %.not697 = icmp eq i32 %3068, 0
  br i1 %.not697, label %3069, label %3070

3069:                                             ; preds = %3065, %3059
  br label %3070

3070:                                             ; preds = %3065, %3069
  %.str.5.sink1763 = phi ptr [ @.str.5, %3069 ], [ @.str.2, %3065 ]
  store i32 %3060, ptr %1763, align 4, !tbaa !5
  %3071 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3072 = load i32, ptr @test_count, align 4, !tbaa !5
  %3073 = load i32, ptr %1709, align 4, !tbaa !5
  %3074 = call ptr @s2n_strerror(i32 noundef %3073, ptr noundef nonnull @.str.4) #11
  %3075 = load i32, ptr %1709, align 4, !tbaa !5
  %3076 = call ptr @s2n_strerror_debug(i32 noundef %3075, ptr noundef nonnull @.str.4) #11
  %3077 = load i32, ptr %1763, align 4, !tbaa !5
  %3078 = call ptr @strerror(i32 noundef %3077) #11
  %3079 = load i32, ptr %1763, align 4, !tbaa !5
  %3080 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3071, ptr noundef nonnull %.str.5.sink1763, i32 noundef %3072, ptr noundef nonnull @.str.63, ptr noundef nonnull @.str.1, i32 noundef 381, ptr noundef %3074, ptr noundef %3076, ptr noundef %3078, i32 noundef %3079) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3081:                                             ; preds = %3052
  %3082 = load i32, ptr @test_count, align 4, !tbaa !5
  %3083 = add nsw i32 %3082, 1
  store i32 %3083, ptr @test_count, align 4, !tbaa !5
  %3084 = load ptr, ptr %26, align 8, !tbaa !9
  %3085 = call i32 @s2n_connection_ktls_enable_recv(ptr noundef %3084) #11
  %3086 = icmp eq i32 %3085, -1
  br i1 %3086, label %3109, label %3087

3087:                                             ; preds = %3081
  %3088 = load i32, ptr %1763, align 4, !tbaa !5
  %3089 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3090 = call i32 @s2n_print_stacktrace(ptr noundef %3089) #11
  %3091 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3092 = trunc nuw i8 %3091 to i1
  br i1 %3092, label %3093, label %3097

3093:                                             ; preds = %3087
  %3094 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3095 = call i32 @fileno(ptr noundef %3094) #11
  %3096 = call i32 @isatty(i32 noundef %3095) #11
  %.not597 = icmp eq i32 %3096, 0
  br i1 %.not597, label %3097, label %3098

3097:                                             ; preds = %3093, %3087
  br label %3098

3098:                                             ; preds = %3093, %3097
  %.str.5.sink1772 = phi ptr [ @.str.5, %3097 ], [ @.str.2, %3093 ]
  store i32 %3088, ptr %1763, align 4, !tbaa !5
  %3099 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3100 = load i32, ptr @test_count, align 4, !tbaa !5
  %3101 = load i32, ptr %1709, align 4, !tbaa !5
  %3102 = call ptr @s2n_strerror(i32 noundef %3101, ptr noundef nonnull @.str.4) #11
  %3103 = load i32, ptr %1709, align 4, !tbaa !5
  %3104 = call ptr @s2n_strerror_debug(i32 noundef %3103, ptr noundef nonnull @.str.4) #11
  %3105 = load i32, ptr %1763, align 4, !tbaa !5
  %3106 = call ptr @strerror(i32 noundef %3105) #11
  %3107 = load i32, ptr %1763, align 4, !tbaa !5
  %3108 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3099, ptr noundef nonnull %.str.5.sink1772, i32 noundef %3100, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 382, ptr noundef %3102, ptr noundef %3104, ptr noundef %3106, i32 noundef %3107) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3109:                                             ; preds = %3081
  %3110 = load i32, ptr @test_count, align 4, !tbaa !5
  %3111 = add nsw i32 %3110, 1
  store i32 %3111, ptr @test_count, align 4, !tbaa !5
  %3112 = load i32, ptr %1709, align 4, !tbaa !5
  %3113 = icmp eq i32 %3112, 335544392
  br i1 %3113, label %3136, label %3114

3114:                                             ; preds = %3109
  %3115 = load i32, ptr %1763, align 4, !tbaa !5
  %3116 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3117 = call i32 @s2n_print_stacktrace(ptr noundef %3116) #11
  %3118 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3119 = trunc nuw i8 %3118 to i1
  br i1 %3119, label %3120, label %3124

3120:                                             ; preds = %3114
  %3121 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3122 = call i32 @fileno(ptr noundef %3121) #11
  %3123 = call i32 @isatty(i32 noundef %3122) #11
  %.not598 = icmp eq i32 %3123, 0
  br i1 %.not598, label %3124, label %3125

3124:                                             ; preds = %3120, %3114
  br label %3125

3125:                                             ; preds = %3120, %3124
  %.str.5.sink1781 = phi ptr [ @.str.5, %3124 ], [ @.str.2, %3120 ]
  store i32 %3115, ptr %1763, align 4, !tbaa !5
  %3126 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3127 = load i32, ptr @test_count, align 4, !tbaa !5
  %3128 = load i32, ptr %1709, align 4, !tbaa !5
  %3129 = call ptr @s2n_strerror(i32 noundef %3128, ptr noundef nonnull @.str.4) #11
  %3130 = load i32, ptr %1709, align 4, !tbaa !5
  %3131 = call ptr @s2n_strerror_debug(i32 noundef %3130, ptr noundef nonnull @.str.4) #11
  %3132 = load i32, ptr %1763, align 4, !tbaa !5
  %3133 = call ptr @strerror(i32 noundef %3132) #11
  %3134 = load i32, ptr %1763, align 4, !tbaa !5
  %3135 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3126, ptr noundef nonnull %.str.5.sink1781, i32 noundef %3127, ptr noundef nonnull @.str.59, ptr noundef nonnull @.str.1, i32 noundef 382, ptr noundef %3129, ptr noundef %3131, ptr noundef %3133, i32 noundef %3134) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3136:                                             ; preds = %3109
  %3137 = add nsw i32 %3110, 2
  store i32 %3137, ptr @test_count, align 4, !tbaa !5
  %3138 = call ptr @s2n_strerror_debug(i32 noundef 335544392, ptr noundef nonnull @.str.4) #11
  %3139 = icmp eq ptr %3138, null
  br i1 %3139, label %3140, label %3162

3140:                                             ; preds = %3136
  %3141 = load i32, ptr %1763, align 4, !tbaa !5
  %3142 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3143 = call i32 @s2n_print_stacktrace(ptr noundef %3142) #11
  %3144 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3145 = trunc nuw i8 %3144 to i1
  br i1 %3145, label %3146, label %3150

3146:                                             ; preds = %3140
  %3147 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3148 = call i32 @fileno(ptr noundef %3147) #11
  %3149 = call i32 @isatty(i32 noundef %3148) #11
  %.not696 = icmp eq i32 %3149, 0
  br i1 %.not696, label %3150, label %3151

3150:                                             ; preds = %3146, %3140
  br label %3151

3151:                                             ; preds = %3146, %3150
  %.str.5.sink1790 = phi ptr [ @.str.5, %3150 ], [ @.str.2, %3146 ]
  store i32 %3141, ptr %1763, align 4, !tbaa !5
  %3152 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3153 = load i32, ptr @test_count, align 4, !tbaa !5
  %3154 = load i32, ptr %1709, align 4, !tbaa !5
  %3155 = call ptr @s2n_strerror(i32 noundef %3154, ptr noundef nonnull @.str.4) #11
  %3156 = load i32, ptr %1709, align 4, !tbaa !5
  %3157 = call ptr @s2n_strerror_debug(i32 noundef %3156, ptr noundef nonnull @.str.4) #11
  %3158 = load i32, ptr %1763, align 4, !tbaa !5
  %3159 = call ptr @strerror(i32 noundef %3158) #11
  %3160 = load i32, ptr %1763, align 4, !tbaa !5
  %3161 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3152, ptr noundef nonnull %.str.5.sink1790, i32 noundef %3153, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 382, ptr noundef %3155, ptr noundef %3157, ptr noundef %3159, i32 noundef %3160) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3162:                                             ; preds = %3136
  store i32 0, ptr %1709, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %1763, align 4, !tbaa !5
  %3163 = load i32, ptr @test_count, align 4, !tbaa !5
  %3164 = add nsw i32 %3163, 1
  store i32 %3164, ptr @test_count, align 4, !tbaa !5
  %3165 = load ptr, ptr %26, align 8, !tbaa !9
  %3166 = getelementptr inbounds i8, ptr %3165, i64 1856
  %3167 = call i32 @s2n_stuffer_read_uint8(ptr noundef nonnull %3166, ptr noundef nonnull %27) #11
  %3168 = icmp eq i32 %3167, -1
  br i1 %3168, label %3169, label %3191

3169:                                             ; preds = %3162
  %3170 = load i32, ptr %1763, align 4, !tbaa !5
  %3171 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3172 = call i32 @s2n_print_stacktrace(ptr noundef %3171) #11
  %3173 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3174 = trunc nuw i8 %3173 to i1
  br i1 %3174, label %3175, label %3179

3175:                                             ; preds = %3169
  %3176 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3177 = call i32 @fileno(ptr noundef %3176) #11
  %3178 = call i32 @isatty(i32 noundef %3177) #11
  %.not695 = icmp eq i32 %3178, 0
  br i1 %.not695, label %3179, label %3180

3179:                                             ; preds = %3175, %3169
  br label %3180

3180:                                             ; preds = %3175, %3179
  %.str.5.sink1799 = phi ptr [ @.str.5, %3179 ], [ @.str.2, %3175 ]
  store i32 %3170, ptr %1763, align 4, !tbaa !5
  %3181 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3182 = load i32, ptr @test_count, align 4, !tbaa !5
  %3183 = load i32, ptr %1709, align 4, !tbaa !5
  %3184 = call ptr @s2n_strerror(i32 noundef %3183, ptr noundef nonnull @.str.4) #11
  %3185 = load i32, ptr %1709, align 4, !tbaa !5
  %3186 = call ptr @s2n_strerror_debug(i32 noundef %3185, ptr noundef nonnull @.str.4) #11
  %3187 = load i32, ptr %1763, align 4, !tbaa !5
  %3188 = call ptr @strerror(i32 noundef %3187) #11
  %3189 = load i32, ptr %1763, align 4, !tbaa !5
  %3190 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3181, ptr noundef nonnull %.str.5.sink1799, i32 noundef %3182, ptr noundef nonnull @.str.64, ptr noundef nonnull @.str.1, i32 noundef 383, ptr noundef %3184, ptr noundef %3186, ptr noundef %3188, i32 noundef %3189) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3191:                                             ; preds = %3162
  %3192 = load i32, ptr @test_count, align 4, !tbaa !5
  %3193 = add nsw i32 %3192, 1
  store i32 %3193, ptr @test_count, align 4, !tbaa !5
  %3194 = load ptr, ptr %26, align 8, !tbaa !9
  %3195 = getelementptr inbounds i8, ptr %3194, i64 1804
  %3196 = load i32, ptr %3195, align 4, !tbaa !63
  %3197 = getelementptr inbounds i8, ptr %3194, i64 1800
  %3198 = load i32, ptr %3197, align 8, !tbaa !64
  %3199 = icmp eq i32 %3196, %3198
  br i1 %3199, label %3222, label %3200

3200:                                             ; preds = %3191
  %3201 = load i32, ptr %1763, align 4, !tbaa !5
  %3202 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3203 = call i32 @s2n_print_stacktrace(ptr noundef %3202) #11
  %3204 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3205 = trunc nuw i8 %3204 to i1
  br i1 %3205, label %3206, label %3210

3206:                                             ; preds = %3200
  %3207 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3208 = call i32 @fileno(ptr noundef %3207) #11
  %3209 = call i32 @isatty(i32 noundef %3208) #11
  %.not599 = icmp eq i32 %3209, 0
  br i1 %.not599, label %3210, label %3211

3210:                                             ; preds = %3206, %3200
  br label %3211

3211:                                             ; preds = %3206, %3210
  %.str.5.sink1808 = phi ptr [ @.str.5, %3210 ], [ @.str.2, %3206 ]
  store i32 %3201, ptr %1763, align 4, !tbaa !5
  %3212 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3213 = load i32, ptr @test_count, align 4, !tbaa !5
  %3214 = load i32, ptr %1709, align 4, !tbaa !5
  %3215 = call ptr @s2n_strerror(i32 noundef %3214, ptr noundef nonnull @.str.4) #11
  %3216 = load i32, ptr %1709, align 4, !tbaa !5
  %3217 = call ptr @s2n_strerror_debug(i32 noundef %3216, ptr noundef nonnull @.str.4) #11
  %3218 = load i32, ptr %1763, align 4, !tbaa !5
  %3219 = call ptr @strerror(i32 noundef %3218) #11
  %3220 = load i32, ptr %1763, align 4, !tbaa !5
  %3221 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3212, ptr noundef nonnull %.str.5.sink1808, i32 noundef %3213, ptr noundef nonnull @.str.65, ptr noundef nonnull @.str.1, i32 noundef 385, ptr noundef %3215, ptr noundef %3217, ptr noundef %3219, i32 noundef %3220) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3222:                                             ; preds = %3191
  %3223 = add nsw i32 %3192, 2
  store i32 %3223, ptr @test_count, align 4, !tbaa !5
  %3224 = getelementptr inbounds i8, ptr %3194, i64 1884
  %3225 = load i32, ptr %3224, align 4, !tbaa !65
  %3226 = getelementptr inbounds i8, ptr %3194, i64 1880
  %3227 = load i32, ptr %3226, align 8, !tbaa !66
  %3228 = icmp eq i32 %3225, %3227
  br i1 %3228, label %3251, label %3229

3229:                                             ; preds = %3222
  %3230 = load i32, ptr %1763, align 4, !tbaa !5
  %3231 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3232 = call i32 @s2n_print_stacktrace(ptr noundef %3231) #11
  %3233 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3234 = trunc nuw i8 %3233 to i1
  br i1 %3234, label %3235, label %3239

3235:                                             ; preds = %3229
  %3236 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3237 = call i32 @fileno(ptr noundef %3236) #11
  %3238 = call i32 @isatty(i32 noundef %3237) #11
  %.not600 = icmp eq i32 %3238, 0
  br i1 %.not600, label %3239, label %3240

3239:                                             ; preds = %3235, %3229
  br label %3240

3240:                                             ; preds = %3235, %3239
  %.str.5.sink1817 = phi ptr [ @.str.5, %3239 ], [ @.str.2, %3235 ]
  store i32 %3230, ptr %1763, align 4, !tbaa !5
  %3241 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3242 = load i32, ptr @test_count, align 4, !tbaa !5
  %3243 = load i32, ptr %1709, align 4, !tbaa !5
  %3244 = call ptr @s2n_strerror(i32 noundef %3243, ptr noundef nonnull @.str.4) #11
  %3245 = load i32, ptr %1709, align 4, !tbaa !5
  %3246 = call ptr @s2n_strerror_debug(i32 noundef %3245, ptr noundef nonnull @.str.4) #11
  %3247 = load i32, ptr %1763, align 4, !tbaa !5
  %3248 = call ptr @strerror(i32 noundef %3247) #11
  %3249 = load i32, ptr %1763, align 4, !tbaa !5
  %3250 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3241, ptr noundef nonnull %.str.5.sink1817, i32 noundef %3242, ptr noundef nonnull @.str.66, ptr noundef nonnull @.str.1, i32 noundef 386, ptr noundef %3244, ptr noundef %3246, ptr noundef %3248, i32 noundef %3249) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3251:                                             ; preds = %3222
  %3252 = add nsw i32 %3192, 3
  store i32 %3252, ptr @test_count, align 4, !tbaa !5
  %3253 = call i32 @s2n_connection_ktls_enable_recv(ptr noundef nonnull %3194) #11
  %3254 = icmp eq i32 %3253, -1
  br i1 %3254, label %3255, label %3277

3255:                                             ; preds = %3251
  %3256 = load i32, ptr %1763, align 4, !tbaa !5
  %3257 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3258 = call i32 @s2n_print_stacktrace(ptr noundef %3257) #11
  %3259 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3260 = trunc nuw i8 %3259 to i1
  br i1 %3260, label %3261, label %3265

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

3265:                                             ; preds = %3261, %3255
  br label %3266

3266:                                             ; preds = %3261, %3265
  %.str.5.sink1826 = phi ptr [ @.str.5, %3265 ], [ @.str.2, %3261 ]
  store i32 %3256, ptr %1763, align 4, !tbaa !5
  %3267 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3268 = load i32, ptr @test_count, align 4, !tbaa !5
  %3269 = load i32, ptr %1709, align 4, !tbaa !5
  %3270 = call ptr @s2n_strerror(i32 noundef %3269, ptr noundef nonnull @.str.4) #11
  %3271 = load i32, ptr %1709, align 4, !tbaa !5
  %3272 = call ptr @s2n_strerror_debug(i32 noundef %3271, ptr noundef nonnull @.str.4) #11
  %3273 = load i32, ptr %1763, align 4, !tbaa !5
  %3274 = call ptr @strerror(i32 noundef %3273) #11
  %3275 = load i32, ptr %1763, align 4, !tbaa !5
  %3276 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3267, ptr noundef nonnull %.str.5.sink1826, i32 noundef %3268, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.1, i32 noundef 387, ptr noundef %3270, ptr noundef %3272, ptr noundef %3274, i32 noundef %3275) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3277:                                             ; preds = %3251
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %27) #11
  %3278 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %26) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %28) #11
  %3279 = call ptr @s2n_connection_new(i32 noundef 0) #11
  store ptr %3279, ptr %28, align 8, !tbaa !9
  %3280 = load i32, ptr @test_count, align 4, !tbaa !5
  %3281 = add nsw i32 %3280, 1
  store i32 %3281, ptr @test_count, align 4, !tbaa !5
  %3282 = call i32 @s2n_test_configure_connection_for_ktls(ptr noundef %3279)
  %3283 = call zeroext i1 @s2n_result_is_ok(i32 %3282)
  br i1 %3283, label %3306, label %3284

3284:                                             ; preds = %3277
  %3285 = load i32, ptr %1763, align 4, !tbaa !5
  %3286 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3287 = call i32 @s2n_print_stacktrace(ptr noundef %3286) #11
  %3288 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3289 = trunc nuw i8 %3288 to i1
  br i1 %3289, label %3290, label %3294

3290:                                             ; preds = %3284
  %3291 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3292 = call i32 @fileno(ptr noundef %3291) #11
  %3293 = call i32 @isatty(i32 noundef %3292) #11
  %.not601 = icmp eq i32 %3293, 0
  br i1 %.not601, label %3294, label %3295

3294:                                             ; preds = %3290, %3284
  br label %3295

3295:                                             ; preds = %3290, %3294
  %.str.5.sink1835 = phi ptr [ @.str.5, %3294 ], [ @.str.2, %3290 ]
  store i32 %3285, ptr %1763, align 4, !tbaa !5
  %3296 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3297 = load i32, ptr @test_count, align 4, !tbaa !5
  %3298 = load i32, ptr %1709, align 4, !tbaa !5
  %3299 = call ptr @s2n_strerror(i32 noundef %3298, ptr noundef nonnull @.str.4) #11
  %3300 = load i32, ptr %1709, align 4, !tbaa !5
  %3301 = call ptr @s2n_strerror_debug(i32 noundef %3300, ptr noundef nonnull @.str.4) #11
  %3302 = load i32, ptr %1763, align 4, !tbaa !5
  %3303 = call ptr @strerror(i32 noundef %3302) #11
  %3304 = load i32, ptr %1763, align 4, !tbaa !5
  %3305 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3296, ptr noundef nonnull %.str.5.sink1835, i32 noundef %3297, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 396, ptr noundef %3299, ptr noundef %3301, ptr noundef %3303, i32 noundef %3304) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3306:                                             ; preds = %3277
  %3307 = load i32, ptr @test_count, align 4, !tbaa !5
  %3308 = add nsw i32 %3307, 1
  store i32 %3308, ptr @test_count, align 4, !tbaa !5
  %3309 = load ptr, ptr %28, align 8, !tbaa !9
  %3310 = getelementptr inbounds i8, ptr %3309, i64 1816
  %3311 = call i32 @s2n_stuffer_write_uint8(ptr noundef nonnull %3310, i8 noundef zeroext 1) #11
  %3312 = icmp eq i32 %3311, -1
  br i1 %3312, label %3313, label %3335

3313:                                             ; preds = %3306
  %3314 = load i32, ptr %1763, align 4, !tbaa !5
  %3315 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3316 = call i32 @s2n_print_stacktrace(ptr noundef %3315) #11
  %3317 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3318 = trunc nuw i8 %3317 to i1
  br i1 %3318, label %3319, label %3323

3319:                                             ; preds = %3313
  %3320 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3321 = call i32 @fileno(ptr noundef %3320) #11
  %3322 = call i32 @isatty(i32 noundef %3321) #11
  %.not693 = icmp eq i32 %3322, 0
  br i1 %.not693, label %3323, label %3324

3323:                                             ; preds = %3319, %3313
  br label %3324

3324:                                             ; preds = %3319, %3323
  %.str.5.sink1844 = phi ptr [ @.str.5, %3323 ], [ @.str.2, %3319 ]
  store i32 %3314, ptr %1763, align 4, !tbaa !5
  %3325 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3326 = load i32, ptr @test_count, align 4, !tbaa !5
  %3327 = load i32, ptr %1709, align 4, !tbaa !5
  %3328 = call ptr @s2n_strerror(i32 noundef %3327, ptr noundef nonnull @.str.4) #11
  %3329 = load i32, ptr %1709, align 4, !tbaa !5
  %3330 = call ptr @s2n_strerror_debug(i32 noundef %3329, ptr noundef nonnull @.str.4) #11
  %3331 = load i32, ptr %1763, align 4, !tbaa !5
  %3332 = call ptr @strerror(i32 noundef %3331) #11
  %3333 = load i32, ptr %1763, align 4, !tbaa !5
  %3334 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3325, ptr noundef nonnull %.str.5.sink1844, i32 noundef %3326, ptr noundef nonnull @.str.67, ptr noundef nonnull @.str.1, i32 noundef 398, ptr noundef %3328, ptr noundef %3330, ptr noundef %3332, i32 noundef %3333) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3335:                                             ; preds = %3306
  %3336 = load i32, ptr @test_count, align 4, !tbaa !5
  %3337 = add nsw i32 %3336, 1
  store i32 %3337, ptr @test_count, align 4, !tbaa !5
  %3338 = load ptr, ptr %28, align 8, !tbaa !9
  %3339 = call i32 @s2n_connection_ktls_enable_recv(ptr noundef %3338) #11
  %3340 = icmp eq i32 %3339, -1
  br i1 %3340, label %3363, label %3341

3341:                                             ; preds = %3335
  %3342 = load i32, ptr %1763, align 4, !tbaa !5
  %3343 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3344 = call i32 @s2n_print_stacktrace(ptr noundef %3343) #11
  %3345 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3346 = trunc nuw i8 %3345 to i1
  br i1 %3346, label %3347, label %3351

3347:                                             ; preds = %3341
  %3348 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3349 = call i32 @fileno(ptr noundef %3348) #11
  %3350 = call i32 @isatty(i32 noundef %3349) #11
  %.not602 = icmp eq i32 %3350, 0
  br i1 %.not602, label %3351, label %3352

3351:                                             ; preds = %3347, %3341
  br label %3352

3352:                                             ; preds = %3347, %3351
  %.str.5.sink1853 = phi ptr [ @.str.5, %3351 ], [ @.str.2, %3347 ]
  store i32 %3342, ptr %1763, align 4, !tbaa !5
  %3353 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3354 = load i32, ptr @test_count, align 4, !tbaa !5
  %3355 = load i32, ptr %1709, align 4, !tbaa !5
  %3356 = call ptr @s2n_strerror(i32 noundef %3355, ptr noundef nonnull @.str.4) #11
  %3357 = load i32, ptr %1709, align 4, !tbaa !5
  %3358 = call ptr @s2n_strerror_debug(i32 noundef %3357, ptr noundef nonnull @.str.4) #11
  %3359 = load i32, ptr %1763, align 4, !tbaa !5
  %3360 = call ptr @strerror(i32 noundef %3359) #11
  %3361 = load i32, ptr %1763, align 4, !tbaa !5
  %3362 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3353, ptr noundef nonnull %.str.5.sink1853, i32 noundef %3354, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 400, ptr noundef %3356, ptr noundef %3358, ptr noundef %3360, i32 noundef %3361) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3363:                                             ; preds = %3335
  %3364 = load i32, ptr @test_count, align 4, !tbaa !5
  %3365 = add nsw i32 %3364, 1
  store i32 %3365, ptr @test_count, align 4, !tbaa !5
  %3366 = load i32, ptr %1709, align 4, !tbaa !5
  %3367 = icmp eq i32 %3366, 469762127
  br i1 %3367, label %3390, label %3368

3368:                                             ; preds = %3363
  %3369 = load i32, ptr %1763, align 4, !tbaa !5
  %3370 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3371 = call i32 @s2n_print_stacktrace(ptr noundef %3370) #11
  %3372 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3373 = trunc nuw i8 %3372 to i1
  br i1 %3373, label %3374, label %3378

3374:                                             ; preds = %3368
  %3375 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3376 = call i32 @fileno(ptr noundef %3375) #11
  %3377 = call i32 @isatty(i32 noundef %3376) #11
  %.not603 = icmp eq i32 %3377, 0
  br i1 %.not603, label %3378, label %3379

3378:                                             ; preds = %3374, %3368
  br label %3379

3379:                                             ; preds = %3374, %3378
  %.str.5.sink1862 = phi ptr [ @.str.5, %3378 ], [ @.str.2, %3374 ]
  store i32 %3369, ptr %1763, align 4, !tbaa !5
  %3380 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3381 = load i32, ptr @test_count, align 4, !tbaa !5
  %3382 = load i32, ptr %1709, align 4, !tbaa !5
  %3383 = call ptr @s2n_strerror(i32 noundef %3382, ptr noundef nonnull @.str.4) #11
  %3384 = load i32, ptr %1709, align 4, !tbaa !5
  %3385 = call ptr @s2n_strerror_debug(i32 noundef %3384, ptr noundef nonnull @.str.4) #11
  %3386 = load i32, ptr %1763, align 4, !tbaa !5
  %3387 = call ptr @strerror(i32 noundef %3386) #11
  %3388 = load i32, ptr %1763, align 4, !tbaa !5
  %3389 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3380, ptr noundef nonnull %.str.5.sink1862, i32 noundef %3381, ptr noundef nonnull @.str.55, ptr noundef nonnull @.str.1, i32 noundef 400, ptr noundef %3383, ptr noundef %3385, ptr noundef %3387, i32 noundef %3388) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3390:                                             ; preds = %3363
  %3391 = add nsw i32 %3364, 2
  store i32 %3391, ptr @test_count, align 4, !tbaa !5
  %3392 = call ptr @s2n_strerror_debug(i32 noundef 469762127, ptr noundef nonnull @.str.4) #11
  %3393 = icmp eq ptr %3392, null
  br i1 %3393, label %3394, label %3416

3394:                                             ; preds = %3390
  %3395 = load i32, ptr %1763, align 4, !tbaa !5
  %3396 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3397 = call i32 @s2n_print_stacktrace(ptr noundef %3396) #11
  %3398 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3399 = trunc nuw i8 %3398 to i1
  br i1 %3399, label %3400, label %3404

3400:                                             ; preds = %3394
  %3401 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3402 = call i32 @fileno(ptr noundef %3401) #11
  %3403 = call i32 @isatty(i32 noundef %3402) #11
  %.not692 = icmp eq i32 %3403, 0
  br i1 %.not692, label %3404, label %3405

3404:                                             ; preds = %3400, %3394
  br label %3405

3405:                                             ; preds = %3400, %3404
  %.str.5.sink1871 = phi ptr [ @.str.5, %3404 ], [ @.str.2, %3400 ]
  store i32 %3395, ptr %1763, align 4, !tbaa !5
  %3406 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3407 = load i32, ptr @test_count, align 4, !tbaa !5
  %3408 = load i32, ptr %1709, align 4, !tbaa !5
  %3409 = call ptr @s2n_strerror(i32 noundef %3408, ptr noundef nonnull @.str.4) #11
  %3410 = load i32, ptr %1709, align 4, !tbaa !5
  %3411 = call ptr @s2n_strerror_debug(i32 noundef %3410, ptr noundef nonnull @.str.4) #11
  %3412 = load i32, ptr %1763, align 4, !tbaa !5
  %3413 = call ptr @strerror(i32 noundef %3412) #11
  %3414 = load i32, ptr %1763, align 4, !tbaa !5
  %3415 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3406, ptr noundef nonnull %.str.5.sink1871, i32 noundef %3407, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 400, ptr noundef %3409, ptr noundef %3411, ptr noundef %3413, i32 noundef %3414) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3416:                                             ; preds = %3390
  store i32 0, ptr %1709, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %1763, align 4, !tbaa !5
  %3417 = load i32, ptr @test_count, align 4, !tbaa !5
  %3418 = add nsw i32 %3417, 1
  store i32 %3418, ptr @test_count, align 4, !tbaa !5
  %3419 = load ptr, ptr %28, align 8, !tbaa !9
  %3420 = getelementptr inbounds i8, ptr %3419, i64 1816
  %3421 = call i32 @s2n_stuffer_skip_read(ptr noundef nonnull %3420, i32 noundef 1) #11
  %3422 = icmp eq i32 %3421, -1
  br i1 %3422, label %3423, label %3445

3423:                                             ; preds = %3416
  %3424 = load i32, ptr %1763, align 4, !tbaa !5
  %3425 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3426 = call i32 @s2n_print_stacktrace(ptr noundef %3425) #11
  %3427 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3428 = trunc nuw i8 %3427 to i1
  br i1 %3428, label %3429, label %3433

3429:                                             ; preds = %3423
  %3430 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3431 = call i32 @fileno(ptr noundef %3430) #11
  %3432 = call i32 @isatty(i32 noundef %3431) #11
  %.not691 = icmp eq i32 %3432, 0
  br i1 %.not691, label %3433, label %3434

3433:                                             ; preds = %3429, %3423
  br label %3434

3434:                                             ; preds = %3429, %3433
  %.str.5.sink1880 = phi ptr [ @.str.5, %3433 ], [ @.str.2, %3429 ]
  store i32 %3424, ptr %1763, align 4, !tbaa !5
  %3435 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3436 = load i32, ptr @test_count, align 4, !tbaa !5
  %3437 = load i32, ptr %1709, align 4, !tbaa !5
  %3438 = call ptr @s2n_strerror(i32 noundef %3437, ptr noundef nonnull @.str.4) #11
  %3439 = load i32, ptr %1709, align 4, !tbaa !5
  %3440 = call ptr @s2n_strerror_debug(i32 noundef %3439, ptr noundef nonnull @.str.4) #11
  %3441 = load i32, ptr %1763, align 4, !tbaa !5
  %3442 = call ptr @strerror(i32 noundef %3441) #11
  %3443 = load i32, ptr %1763, align 4, !tbaa !5
  %3444 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3435, ptr noundef nonnull %.str.5.sink1880, i32 noundef %3436, ptr noundef nonnull @.str.68, ptr noundef nonnull @.str.1, i32 noundef 402, ptr noundef %3438, ptr noundef %3440, ptr noundef %3442, i32 noundef %3443) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3445:                                             ; preds = %3416
  %3446 = load i32, ptr @test_count, align 4, !tbaa !5
  %3447 = add nsw i32 %3446, 1
  store i32 %3447, ptr @test_count, align 4, !tbaa !5
  %3448 = load ptr, ptr %28, align 8, !tbaa !9
  %3449 = call i32 @s2n_connection_ktls_enable_recv(ptr noundef %3448) #11
  %3450 = icmp eq i32 %3449, -1
  br i1 %3450, label %3451, label %3473

3451:                                             ; preds = %3445
  %3452 = load i32, ptr %1763, align 4, !tbaa !5
  %3453 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3454 = call i32 @s2n_print_stacktrace(ptr noundef %3453) #11
  %3455 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3456 = trunc nuw i8 %3455 to i1
  br i1 %3456, label %3457, label %3461

3457:                                             ; preds = %3451
  %3458 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3459 = call i32 @fileno(ptr noundef %3458) #11
  %3460 = call i32 @isatty(i32 noundef %3459) #11
  %.not690 = icmp eq i32 %3460, 0
  br i1 %.not690, label %3461, label %3462

3461:                                             ; preds = %3457, %3451
  br label %3462

3462:                                             ; preds = %3457, %3461
  %.str.5.sink1889 = phi ptr [ @.str.5, %3461 ], [ @.str.2, %3457 ]
  store i32 %3452, ptr %1763, align 4, !tbaa !5
  %3463 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3464 = load i32, ptr @test_count, align 4, !tbaa !5
  %3465 = load i32, ptr %1709, align 4, !tbaa !5
  %3466 = call ptr @s2n_strerror(i32 noundef %3465, ptr noundef nonnull @.str.4) #11
  %3467 = load i32, ptr %1709, align 4, !tbaa !5
  %3468 = call ptr @s2n_strerror_debug(i32 noundef %3467, ptr noundef nonnull @.str.4) #11
  %3469 = load i32, ptr %1763, align 4, !tbaa !5
  %3470 = call ptr @strerror(i32 noundef %3469) #11
  %3471 = load i32, ptr %1763, align 4, !tbaa !5
  %3472 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3463, ptr noundef nonnull %.str.5.sink1889, i32 noundef %3464, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.1, i32 noundef 403, ptr noundef %3466, ptr noundef %3468, ptr noundef %3470, i32 noundef %3471) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3473:                                             ; preds = %3445
  %3474 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %28) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %29) #11
  %3475 = call ptr @s2n_connection_new(i32 noundef 0) #11
  store ptr %3475, ptr %29, align 8, !tbaa !9
  %3476 = load i32, ptr @test_count, align 4, !tbaa !5
  %3477 = add nsw i32 %3476, 1
  store i32 %3477, ptr @test_count, align 4, !tbaa !5
  %3478 = call i32 @s2n_test_configure_connection_for_ktls(ptr noundef %3475)
  %3479 = call zeroext i1 @s2n_result_is_ok(i32 %3478)
  br i1 %3479, label %3502, label %3480

3480:                                             ; preds = %3473
  %3481 = load i32, ptr %1763, align 4, !tbaa !5
  %3482 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3483 = call i32 @s2n_print_stacktrace(ptr noundef %3482) #11
  %3484 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3485 = trunc nuw i8 %3484 to i1
  br i1 %3485, label %3486, label %3490

3486:                                             ; preds = %3480
  %3487 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3488 = call i32 @fileno(ptr noundef %3487) #11
  %3489 = call i32 @isatty(i32 noundef %3488) #11
  %.not604 = icmp eq i32 %3489, 0
  br i1 %.not604, label %3490, label %3491

3490:                                             ; preds = %3486, %3480
  br label %3491

3491:                                             ; preds = %3486, %3490
  %.str.5.sink1898 = phi ptr [ @.str.5, %3490 ], [ @.str.2, %3486 ]
  store i32 %3481, ptr %1763, align 4, !tbaa !5
  %3492 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3493 = load i32, ptr @test_count, align 4, !tbaa !5
  %3494 = load i32, ptr %1709, align 4, !tbaa !5
  %3495 = call ptr @s2n_strerror(i32 noundef %3494, ptr noundef nonnull @.str.4) #11
  %3496 = load i32, ptr %1709, align 4, !tbaa !5
  %3497 = call ptr @s2n_strerror_debug(i32 noundef %3496, ptr noundef nonnull @.str.4) #11
  %3498 = load i32, ptr %1763, align 4, !tbaa !5
  %3499 = call ptr @strerror(i32 noundef %3498) #11
  %3500 = load i32, ptr %1763, align 4, !tbaa !5
  %3501 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3492, ptr noundef nonnull %.str.5.sink1898, i32 noundef %3493, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 410, ptr noundef %3495, ptr noundef %3497, ptr noundef %3499, i32 noundef %3500) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3502:                                             ; preds = %3473
  %3503 = load ptr, ptr %29, align 8, !tbaa !9
  %3504 = load i32, ptr %3503, align 8
  %3505 = and i32 %3504, -257
  store i32 %3505, ptr %3503, align 8
  %3506 = load i32, ptr @test_count, align 4, !tbaa !5
  %3507 = add nsw i32 %3506, 1
  store i32 %3507, ptr @test_count, align 4, !tbaa !5
  %3508 = load ptr, ptr %29, align 8, !tbaa !9
  %3509 = call i32 @s2n_connection_ktls_enable_send(ptr noundef %3508) #11
  %3510 = icmp eq i32 %3509, -1
  br i1 %3510, label %3533, label %3511

3511:                                             ; preds = %3502
  %3512 = load i32, ptr %1763, align 4, !tbaa !5
  %3513 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3514 = call i32 @s2n_print_stacktrace(ptr noundef %3513) #11
  %3515 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3516 = trunc nuw i8 %3515 to i1
  br i1 %3516, label %3517, label %3521

3517:                                             ; preds = %3511
  %3518 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3519 = call i32 @fileno(ptr noundef %3518) #11
  %3520 = call i32 @isatty(i32 noundef %3519) #11
  %.not605 = icmp eq i32 %3520, 0
  br i1 %.not605, label %3521, label %3522

3521:                                             ; preds = %3517, %3511
  br label %3522

3522:                                             ; preds = %3517, %3521
  %.str.5.sink1907 = phi ptr [ @.str.5, %3521 ], [ @.str.2, %3517 ]
  store i32 %3512, ptr %1763, align 4, !tbaa !5
  %3523 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3524 = load i32, ptr @test_count, align 4, !tbaa !5
  %3525 = load i32, ptr %1709, align 4, !tbaa !5
  %3526 = call ptr @s2n_strerror(i32 noundef %3525, ptr noundef nonnull @.str.4) #11
  %3527 = load i32, ptr %1709, align 4, !tbaa !5
  %3528 = call ptr @s2n_strerror_debug(i32 noundef %3527, ptr noundef nonnull @.str.4) #11
  %3529 = load i32, ptr %1763, align 4, !tbaa !5
  %3530 = call ptr @strerror(i32 noundef %3529) #11
  %3531 = load i32, ptr %1763, align 4, !tbaa !5
  %3532 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3523, ptr noundef nonnull %.str.5.sink1907, i32 noundef %3524, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, i32 noundef 414, ptr noundef %3526, ptr noundef %3528, ptr noundef %3530, i32 noundef %3531) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3533:                                             ; preds = %3502
  %3534 = load i32, ptr @test_count, align 4, !tbaa !5
  %3535 = add nsw i32 %3534, 1
  store i32 %3535, ptr @test_count, align 4, !tbaa !5
  %3536 = load i32, ptr %1709, align 4, !tbaa !5
  %3537 = icmp eq i32 %3536, 469762125
  br i1 %3537, label %3560, label %3538

3538:                                             ; preds = %3533
  %3539 = load i32, ptr %1763, align 4, !tbaa !5
  %3540 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3541 = call i32 @s2n_print_stacktrace(ptr noundef %3540) #11
  %3542 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3543 = trunc nuw i8 %3542 to i1
  br i1 %3543, label %3544, label %3548

3544:                                             ; preds = %3538
  %3545 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3546 = call i32 @fileno(ptr noundef %3545) #11
  %3547 = call i32 @isatty(i32 noundef %3546) #11
  %.not606 = icmp eq i32 %3547, 0
  br i1 %.not606, label %3548, label %3549

3548:                                             ; preds = %3544, %3538
  br label %3549

3549:                                             ; preds = %3544, %3548
  %.str.5.sink1916 = phi ptr [ @.str.5, %3548 ], [ @.str.2, %3544 ]
  store i32 %3539, ptr %1763, align 4, !tbaa !5
  %3550 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3551 = load i32, ptr @test_count, align 4, !tbaa !5
  %3552 = load i32, ptr %1709, align 4, !tbaa !5
  %3553 = call ptr @s2n_strerror(i32 noundef %3552, ptr noundef nonnull @.str.4) #11
  %3554 = load i32, ptr %1709, align 4, !tbaa !5
  %3555 = call ptr @s2n_strerror_debug(i32 noundef %3554, ptr noundef nonnull @.str.4) #11
  %3556 = load i32, ptr %1763, align 4, !tbaa !5
  %3557 = call ptr @strerror(i32 noundef %3556) #11
  %3558 = load i32, ptr %1763, align 4, !tbaa !5
  %3559 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3550, ptr noundef nonnull %.str.5.sink1916, i32 noundef %3551, ptr noundef nonnull @.str.69, ptr noundef nonnull @.str.1, i32 noundef 414, ptr noundef %3553, ptr noundef %3555, ptr noundef %3557, i32 noundef %3558) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3560:                                             ; preds = %3533
  %3561 = add nsw i32 %3534, 2
  store i32 %3561, ptr @test_count, align 4, !tbaa !5
  %3562 = call ptr @s2n_strerror_debug(i32 noundef 469762125, ptr noundef nonnull @.str.4) #11
  %3563 = icmp eq ptr %3562, null
  br i1 %3563, label %3564, label %3586

3564:                                             ; preds = %3560
  %3565 = load i32, ptr %1763, align 4, !tbaa !5
  %3566 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3567 = call i32 @s2n_print_stacktrace(ptr noundef %3566) #11
  %3568 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3569 = trunc nuw i8 %3568 to i1
  br i1 %3569, label %3570, label %3574

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

3574:                                             ; preds = %3570, %3564
  br label %3575

3575:                                             ; preds = %3570, %3574
  %.str.5.sink1925 = phi ptr [ @.str.5, %3574 ], [ @.str.2, %3570 ]
  store i32 %3565, ptr %1763, align 4, !tbaa !5
  %3576 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3577 = load i32, ptr @test_count, align 4, !tbaa !5
  %3578 = load i32, ptr %1709, align 4, !tbaa !5
  %3579 = call ptr @s2n_strerror(i32 noundef %3578, ptr noundef nonnull @.str.4) #11
  %3580 = load i32, ptr %1709, align 4, !tbaa !5
  %3581 = call ptr @s2n_strerror_debug(i32 noundef %3580, ptr noundef nonnull @.str.4) #11
  %3582 = load i32, ptr %1763, align 4, !tbaa !5
  %3583 = call ptr @strerror(i32 noundef %3582) #11
  %3584 = load i32, ptr %1763, align 4, !tbaa !5
  %3585 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3576, ptr noundef nonnull %.str.5.sink1925, i32 noundef %3577, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 414, ptr noundef %3579, ptr noundef %3581, ptr noundef %3583, i32 noundef %3584) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3586:                                             ; preds = %3560
  store i32 0, ptr %1709, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %1763, align 4, !tbaa !5
  %3587 = load ptr, ptr %29, align 8, !tbaa !9
  %3588 = load i32, ptr %3587, align 8
  %3589 = or i32 %3588, 256
  store i32 %3589, ptr %3587, align 8
  %3590 = load i32, ptr @test_count, align 4, !tbaa !5
  %3591 = add nsw i32 %3590, 1
  store i32 %3591, ptr @test_count, align 4, !tbaa !5
  %3592 = load ptr, ptr %29, align 8, !tbaa !9
  %3593 = call i32 @s2n_connection_ktls_enable_send(ptr noundef %3592) #11
  %3594 = icmp eq i32 %3593, -1
  br i1 %3594, label %3595, label %3617

3595:                                             ; preds = %3586
  %3596 = load i32, ptr %1763, align 4, !tbaa !5
  %3597 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3598 = call i32 @s2n_print_stacktrace(ptr noundef %3597) #11
  %3599 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3600 = trunc nuw i8 %3599 to i1
  br i1 %3600, label %3601, label %3605

3601:                                             ; preds = %3595
  %3602 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3603 = call i32 @fileno(ptr noundef %3602) #11
  %3604 = call i32 @isatty(i32 noundef %3603) #11
  %.not688 = icmp eq i32 %3604, 0
  br i1 %.not688, label %3605, label %3606

3605:                                             ; preds = %3601, %3595
  br label %3606

3606:                                             ; preds = %3601, %3605
  %.str.5.sink1934 = phi ptr [ @.str.5, %3605 ], [ @.str.2, %3601 ]
  store i32 %3596, ptr %1763, align 4, !tbaa !5
  %3607 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3608 = load i32, ptr @test_count, align 4, !tbaa !5
  %3609 = load i32, ptr %1709, align 4, !tbaa !5
  %3610 = call ptr @s2n_strerror(i32 noundef %3609, ptr noundef nonnull @.str.4) #11
  %3611 = load i32, ptr %1709, align 4, !tbaa !5
  %3612 = call ptr @s2n_strerror_debug(i32 noundef %3611, ptr noundef nonnull @.str.4) #11
  %3613 = load i32, ptr %1763, align 4, !tbaa !5
  %3614 = call ptr @strerror(i32 noundef %3613) #11
  %3615 = load i32, ptr %1763, align 4, !tbaa !5
  %3616 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3607, ptr noundef nonnull %.str.5.sink1934, i32 noundef %3608, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 418, ptr noundef %3610, ptr noundef %3612, ptr noundef %3614, i32 noundef %3615) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3617:                                             ; preds = %3586
  %3618 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %29) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %30) #11
  %3619 = call ptr @s2n_connection_new(i32 noundef 0) #11
  store ptr %3619, ptr %30, align 8, !tbaa !9
  %3620 = load i32, ptr @test_count, align 4, !tbaa !5
  %3621 = add nsw i32 %3620, 1
  store i32 %3621, ptr @test_count, align 4, !tbaa !5
  %3622 = call i32 @s2n_test_configure_connection_for_ktls(ptr noundef %3619)
  %3623 = call zeroext i1 @s2n_result_is_ok(i32 %3622)
  br i1 %3623, label %3646, label %3624

3624:                                             ; preds = %3617
  %3625 = load i32, ptr %1763, align 4, !tbaa !5
  %3626 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3627 = call i32 @s2n_print_stacktrace(ptr noundef %3626) #11
  %3628 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3629 = trunc nuw i8 %3628 to i1
  br i1 %3629, label %3630, label %3634

3630:                                             ; preds = %3624
  %3631 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3632 = call i32 @fileno(ptr noundef %3631) #11
  %3633 = call i32 @isatty(i32 noundef %3632) #11
  %.not607 = icmp eq i32 %3633, 0
  br i1 %.not607, label %3634, label %3635

3634:                                             ; preds = %3630, %3624
  br label %3635

3635:                                             ; preds = %3630, %3634
  %.str.5.sink1943 = phi ptr [ @.str.5, %3634 ], [ @.str.2, %3630 ]
  store i32 %3625, ptr %1763, align 4, !tbaa !5
  %3636 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3637 = load i32, ptr @test_count, align 4, !tbaa !5
  %3638 = load i32, ptr %1709, align 4, !tbaa !5
  %3639 = call ptr @s2n_strerror(i32 noundef %3638, ptr noundef nonnull @.str.4) #11
  %3640 = load i32, ptr %1709, align 4, !tbaa !5
  %3641 = call ptr @s2n_strerror_debug(i32 noundef %3640, ptr noundef nonnull @.str.4) #11
  %3642 = load i32, ptr %1763, align 4, !tbaa !5
  %3643 = call ptr @strerror(i32 noundef %3642) #11
  %3644 = load i32, ptr %1763, align 4, !tbaa !5
  %3645 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3636, ptr noundef nonnull %.str.5.sink1943, i32 noundef %3637, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 425, ptr noundef %3639, ptr noundef %3641, ptr noundef %3643, i32 noundef %3644) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3646:                                             ; preds = %3617
  %3647 = load ptr, ptr %30, align 8, !tbaa !9
  %3648 = load i32, ptr %3647, align 8
  %3649 = and i32 %3648, -513
  store i32 %3649, ptr %3647, align 8
  %3650 = load i32, ptr @test_count, align 4, !tbaa !5
  %3651 = add nsw i32 %3650, 1
  store i32 %3651, ptr @test_count, align 4, !tbaa !5
  %3652 = load ptr, ptr %30, align 8, !tbaa !9
  %3653 = call i32 @s2n_connection_ktls_enable_recv(ptr noundef %3652) #11
  %3654 = icmp eq i32 %3653, -1
  br i1 %3654, label %3677, label %3655

3655:                                             ; preds = %3646
  %3656 = load i32, ptr %1763, align 4, !tbaa !5
  %3657 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3658 = call i32 @s2n_print_stacktrace(ptr noundef %3657) #11
  %3659 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3660 = trunc nuw i8 %3659 to i1
  br i1 %3660, label %3661, label %3665

3661:                                             ; preds = %3655
  %3662 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3663 = call i32 @fileno(ptr noundef %3662) #11
  %3664 = call i32 @isatty(i32 noundef %3663) #11
  %.not608 = icmp eq i32 %3664, 0
  br i1 %.not608, label %3665, label %3666

3665:                                             ; preds = %3661, %3655
  br label %3666

3666:                                             ; preds = %3661, %3665
  %.str.5.sink1952 = phi ptr [ @.str.5, %3665 ], [ @.str.2, %3661 ]
  store i32 %3656, ptr %1763, align 4, !tbaa !5
  %3667 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3668 = load i32, ptr @test_count, align 4, !tbaa !5
  %3669 = load i32, ptr %1709, align 4, !tbaa !5
  %3670 = call ptr @s2n_strerror(i32 noundef %3669, ptr noundef nonnull @.str.4) #11
  %3671 = load i32, ptr %1709, align 4, !tbaa !5
  %3672 = call ptr @s2n_strerror_debug(i32 noundef %3671, ptr noundef nonnull @.str.4) #11
  %3673 = load i32, ptr %1763, align 4, !tbaa !5
  %3674 = call ptr @strerror(i32 noundef %3673) #11
  %3675 = load i32, ptr %1763, align 4, !tbaa !5
  %3676 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3667, ptr noundef nonnull %.str.5.sink1952, i32 noundef %3668, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 429, ptr noundef %3670, ptr noundef %3672, ptr noundef %3674, i32 noundef %3675) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3677:                                             ; preds = %3646
  %3678 = load i32, ptr @test_count, align 4, !tbaa !5
  %3679 = add nsw i32 %3678, 1
  store i32 %3679, ptr @test_count, align 4, !tbaa !5
  %3680 = load i32, ptr %1709, align 4, !tbaa !5
  %3681 = icmp eq i32 %3680, 469762125
  br i1 %3681, label %3704, label %3682

3682:                                             ; preds = %3677
  %3683 = load i32, ptr %1763, align 4, !tbaa !5
  %3684 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3685 = call i32 @s2n_print_stacktrace(ptr noundef %3684) #11
  %3686 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3687 = trunc nuw i8 %3686 to i1
  br i1 %3687, label %3688, label %3692

3688:                                             ; preds = %3682
  %3689 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3690 = call i32 @fileno(ptr noundef %3689) #11
  %3691 = call i32 @isatty(i32 noundef %3690) #11
  %.not609 = icmp eq i32 %3691, 0
  br i1 %.not609, label %3692, label %3693

3692:                                             ; preds = %3688, %3682
  br label %3693

3693:                                             ; preds = %3688, %3692
  %.str.5.sink1961 = phi ptr [ @.str.5, %3692 ], [ @.str.2, %3688 ]
  store i32 %3683, ptr %1763, align 4, !tbaa !5
  %3694 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3695 = load i32, ptr @test_count, align 4, !tbaa !5
  %3696 = load i32, ptr %1709, align 4, !tbaa !5
  %3697 = call ptr @s2n_strerror(i32 noundef %3696, ptr noundef nonnull @.str.4) #11
  %3698 = load i32, ptr %1709, align 4, !tbaa !5
  %3699 = call ptr @s2n_strerror_debug(i32 noundef %3698, ptr noundef nonnull @.str.4) #11
  %3700 = load i32, ptr %1763, align 4, !tbaa !5
  %3701 = call ptr @strerror(i32 noundef %3700) #11
  %3702 = load i32, ptr %1763, align 4, !tbaa !5
  %3703 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3694, ptr noundef nonnull %.str.5.sink1961, i32 noundef %3695, ptr noundef nonnull @.str.69, ptr noundef nonnull @.str.1, i32 noundef 429, ptr noundef %3697, ptr noundef %3699, ptr noundef %3701, i32 noundef %3702) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3704:                                             ; preds = %3677
  %3705 = add nsw i32 %3678, 2
  store i32 %3705, ptr @test_count, align 4, !tbaa !5
  %3706 = call ptr @s2n_strerror_debug(i32 noundef 469762125, ptr noundef nonnull @.str.4) #11
  %3707 = icmp eq ptr %3706, null
  br i1 %3707, label %3708, label %3730

3708:                                             ; preds = %3704
  %3709 = load i32, ptr %1763, align 4, !tbaa !5
  %3710 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3711 = call i32 @s2n_print_stacktrace(ptr noundef %3710) #11
  %3712 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3713 = trunc nuw i8 %3712 to i1
  br i1 %3713, label %3714, label %3718

3714:                                             ; preds = %3708
  %3715 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3716 = call i32 @fileno(ptr noundef %3715) #11
  %3717 = call i32 @isatty(i32 noundef %3716) #11
  %.not687 = icmp eq i32 %3717, 0
  br i1 %.not687, label %3718, label %3719

3718:                                             ; preds = %3714, %3708
  br label %3719

3719:                                             ; preds = %3714, %3718
  %.str.5.sink1970 = phi ptr [ @.str.5, %3718 ], [ @.str.2, %3714 ]
  store i32 %3709, ptr %1763, align 4, !tbaa !5
  %3720 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3721 = load i32, ptr @test_count, align 4, !tbaa !5
  %3722 = load i32, ptr %1709, align 4, !tbaa !5
  %3723 = call ptr @s2n_strerror(i32 noundef %3722, ptr noundef nonnull @.str.4) #11
  %3724 = load i32, ptr %1709, align 4, !tbaa !5
  %3725 = call ptr @s2n_strerror_debug(i32 noundef %3724, ptr noundef nonnull @.str.4) #11
  %3726 = load i32, ptr %1763, align 4, !tbaa !5
  %3727 = call ptr @strerror(i32 noundef %3726) #11
  %3728 = load i32, ptr %1763, align 4, !tbaa !5
  %3729 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3720, ptr noundef nonnull %.str.5.sink1970, i32 noundef %3721, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 429, ptr noundef %3723, ptr noundef %3725, ptr noundef %3727, i32 noundef %3728) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3730:                                             ; preds = %3704
  store i32 0, ptr %1709, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %1763, align 4, !tbaa !5
  %3731 = load ptr, ptr %30, align 8, !tbaa !9
  %3732 = load i32, ptr %3731, align 8
  %3733 = or i32 %3732, 512
  store i32 %3733, ptr %3731, align 8
  %3734 = load i32, ptr @test_count, align 4, !tbaa !5
  %3735 = add nsw i32 %3734, 1
  store i32 %3735, ptr @test_count, align 4, !tbaa !5
  %3736 = load ptr, ptr %30, align 8, !tbaa !9
  %3737 = call i32 @s2n_connection_ktls_enable_recv(ptr noundef %3736) #11
  %3738 = icmp eq i32 %3737, -1
  br i1 %3738, label %3739, label %3761

3739:                                             ; preds = %3730
  %3740 = load i32, ptr %1763, align 4, !tbaa !5
  %3741 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3742 = call i32 @s2n_print_stacktrace(ptr noundef %3741) #11
  %3743 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3744 = trunc nuw i8 %3743 to i1
  br i1 %3744, label %3745, label %3749

3745:                                             ; preds = %3739
  %3746 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3747 = call i32 @fileno(ptr noundef %3746) #11
  %3748 = call i32 @isatty(i32 noundef %3747) #11
  %.not686 = icmp eq i32 %3748, 0
  br i1 %.not686, label %3749, label %3750

3749:                                             ; preds = %3745, %3739
  br label %3750

3750:                                             ; preds = %3745, %3749
  %.str.5.sink1979 = phi ptr [ @.str.5, %3749 ], [ @.str.2, %3745 ]
  store i32 %3740, ptr %1763, align 4, !tbaa !5
  %3751 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3752 = load i32, ptr @test_count, align 4, !tbaa !5
  %3753 = load i32, ptr %1709, align 4, !tbaa !5
  %3754 = call ptr @s2n_strerror(i32 noundef %3753, ptr noundef nonnull @.str.4) #11
  %3755 = load i32, ptr %1709, align 4, !tbaa !5
  %3756 = call ptr @s2n_strerror_debug(i32 noundef %3755, ptr noundef nonnull @.str.4) #11
  %3757 = load i32, ptr %1763, align 4, !tbaa !5
  %3758 = call ptr @strerror(i32 noundef %3757) #11
  %3759 = load i32, ptr %1763, align 4, !tbaa !5
  %3760 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3751, ptr noundef nonnull %.str.5.sink1979, i32 noundef %3752, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.1, i32 noundef 433, ptr noundef %3754, ptr noundef %3756, ptr noundef %3758, i32 noundef %3759) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3761:                                             ; preds = %3730
  %3762 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %30) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %31) #11
  %3763 = call ptr @s2n_config_new() #11
  store ptr %3763, ptr %31, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %32) #11
  %3764 = call ptr @s2n_connection_new(i32 noundef 1) #11
  store ptr %3764, ptr %32, align 8, !tbaa !9
  %3765 = load i32, ptr @test_count, align 4, !tbaa !5
  %3766 = add nsw i32 %3765, 1
  store i32 %3766, ptr @test_count, align 4, !tbaa !5
  %3767 = call i32 @s2n_test_configure_connection_for_ktls(ptr noundef %3764)
  %3768 = call zeroext i1 @s2n_result_is_ok(i32 %3767)
  br i1 %3768, label %3791, label %3769

3769:                                             ; preds = %3761
  %3770 = load i32, ptr %1763, align 4, !tbaa !5
  %3771 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3772 = call i32 @s2n_print_stacktrace(ptr noundef %3771) #11
  %3773 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3774 = trunc nuw i8 %3773 to i1
  br i1 %3774, label %3775, label %3779

3775:                                             ; preds = %3769
  %3776 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3777 = call i32 @fileno(ptr noundef %3776) #11
  %3778 = call i32 @isatty(i32 noundef %3777) #11
  %.not610 = icmp eq i32 %3778, 0
  br i1 %.not610, label %3779, label %3780

3779:                                             ; preds = %3775, %3769
  br label %3780

3780:                                             ; preds = %3775, %3779
  %.str.5.sink1988 = phi ptr [ @.str.5, %3779 ], [ @.str.2, %3775 ]
  store i32 %3770, ptr %1763, align 4, !tbaa !5
  %3781 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3782 = load i32, ptr @test_count, align 4, !tbaa !5
  %3783 = load i32, ptr %1709, align 4, !tbaa !5
  %3784 = call ptr @s2n_strerror(i32 noundef %3783, ptr noundef nonnull @.str.4) #11
  %3785 = load i32, ptr %1709, align 4, !tbaa !5
  %3786 = call ptr @s2n_strerror_debug(i32 noundef %3785, ptr noundef nonnull @.str.4) #11
  %3787 = load i32, ptr %1763, align 4, !tbaa !5
  %3788 = call ptr @strerror(i32 noundef %3787) #11
  %3789 = load i32, ptr %1763, align 4, !tbaa !5
  %3790 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3781, ptr noundef nonnull %.str.5.sink1988, i32 noundef %3782, ptr noundef nonnull @.str.70, ptr noundef nonnull @.str.1, i32 noundef 442, ptr noundef %3784, ptr noundef %3786, ptr noundef %3788, i32 noundef %3789) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3791:                                             ; preds = %3761
  %3792 = load i32, ptr @test_count, align 4, !tbaa !5
  %3793 = add nsw i32 %3792, 1
  store i32 %3793, ptr @test_count, align 4, !tbaa !5
  %3794 = load ptr, ptr %32, align 8, !tbaa !9
  %3795 = load ptr, ptr %31, align 8, !tbaa !9
  %3796 = call i32 @s2n_connection_set_config(ptr noundef %3794, ptr noundef %3795) #11
  %3797 = icmp eq i32 %3796, -1
  br i1 %3797, label %3798, label %3820

3798:                                             ; preds = %3791
  %3799 = load i32, ptr %1763, align 4, !tbaa !5
  %3800 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3801 = call i32 @s2n_print_stacktrace(ptr noundef %3800) #11
  %3802 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3803 = trunc nuw i8 %3802 to i1
  br i1 %3803, label %3804, label %3808

3804:                                             ; preds = %3798
  %3805 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3806 = call i32 @fileno(ptr noundef %3805) #11
  %3807 = call i32 @isatty(i32 noundef %3806) #11
  %.not685 = icmp eq i32 %3807, 0
  br i1 %.not685, label %3808, label %3809

3808:                                             ; preds = %3804, %3798
  br label %3809

3809:                                             ; preds = %3804, %3808
  %.str.5.sink1997 = phi ptr [ @.str.5, %3808 ], [ @.str.2, %3804 ]
  store i32 %3799, ptr %1763, align 4, !tbaa !5
  %3810 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3811 = load i32, ptr @test_count, align 4, !tbaa !5
  %3812 = load i32, ptr %1709, align 4, !tbaa !5
  %3813 = call ptr @s2n_strerror(i32 noundef %3812, ptr noundef nonnull @.str.4) #11
  %3814 = load i32, ptr %1709, align 4, !tbaa !5
  %3815 = call ptr @s2n_strerror_debug(i32 noundef %3814, ptr noundef nonnull @.str.4) #11
  %3816 = load i32, ptr %1763, align 4, !tbaa !5
  %3817 = call ptr @strerror(i32 noundef %3816) #11
  %3818 = load i32, ptr %1763, align 4, !tbaa !5
  %3819 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3810, ptr noundef nonnull %.str.5.sink1997, i32 noundef %3811, ptr noundef nonnull @.str.71, ptr noundef nonnull @.str.1, i32 noundef 443, ptr noundef %3813, ptr noundef %3815, ptr noundef %3817, i32 noundef %3818) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3820:                                             ; preds = %3791
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %33) #11
  %3821 = call ptr @s2n_connection_new(i32 noundef 0) #11
  store ptr %3821, ptr %33, align 8, !tbaa !9
  %3822 = load i32, ptr @test_count, align 4, !tbaa !5
  %3823 = add nsw i32 %3822, 1
  store i32 %3823, ptr @test_count, align 4, !tbaa !5
  %3824 = call i32 @s2n_test_configure_connection_for_ktls(ptr noundef %3821)
  %3825 = call zeroext i1 @s2n_result_is_ok(i32 %3824)
  br i1 %3825, label %3848, label %3826

3826:                                             ; preds = %3820
  %3827 = load i32, ptr %1763, align 4, !tbaa !5
  %3828 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3829 = call i32 @s2n_print_stacktrace(ptr noundef %3828) #11
  %3830 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3831 = trunc nuw i8 %3830 to i1
  br i1 %3831, label %3832, label %3836

3832:                                             ; preds = %3826
  %3833 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3834 = call i32 @fileno(ptr noundef %3833) #11
  %3835 = call i32 @isatty(i32 noundef %3834) #11
  %.not611 = icmp eq i32 %3835, 0
  br i1 %.not611, label %3836, label %3837

3836:                                             ; preds = %3832, %3826
  br label %3837

3837:                                             ; preds = %3832, %3836
  %.str.5.sink2006 = phi ptr [ @.str.5, %3836 ], [ @.str.2, %3832 ]
  store i32 %3827, ptr %1763, align 4, !tbaa !5
  %3838 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3839 = load i32, ptr @test_count, align 4, !tbaa !5
  %3840 = load i32, ptr %1709, align 4, !tbaa !5
  %3841 = call ptr @s2n_strerror(i32 noundef %3840, ptr noundef nonnull @.str.4) #11
  %3842 = load i32, ptr %1709, align 4, !tbaa !5
  %3843 = call ptr @s2n_strerror_debug(i32 noundef %3842, ptr noundef nonnull @.str.4) #11
  %3844 = load i32, ptr %1763, align 4, !tbaa !5
  %3845 = call ptr @strerror(i32 noundef %3844) #11
  %3846 = load i32, ptr %1763, align 4, !tbaa !5
  %3847 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3838, ptr noundef nonnull %.str.5.sink2006, i32 noundef %3839, ptr noundef nonnull @.str.72, ptr noundef nonnull @.str.1, i32 noundef 447, ptr noundef %3841, ptr noundef %3843, ptr noundef %3845, i32 noundef %3846) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3848:                                             ; preds = %3820
  %3849 = load i32, ptr @test_count, align 4, !tbaa !5
  %3850 = add nsw i32 %3849, 1
  store i32 %3850, ptr @test_count, align 4, !tbaa !5
  %3851 = load ptr, ptr %33, align 8, !tbaa !9
  %3852 = load ptr, ptr %31, align 8, !tbaa !9
  %3853 = call i32 @s2n_connection_set_config(ptr noundef %3851, ptr noundef %3852) #11
  %3854 = icmp eq i32 %3853, -1
  br i1 %3854, label %3855, label %3877

3855:                                             ; preds = %3848
  %3856 = load i32, ptr %1763, align 4, !tbaa !5
  %3857 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3858 = call i32 @s2n_print_stacktrace(ptr noundef %3857) #11
  %3859 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3860 = trunc nuw i8 %3859 to i1
  br i1 %3860, label %3861, label %3865

3861:                                             ; preds = %3855
  %3862 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3863 = call i32 @fileno(ptr noundef %3862) #11
  %3864 = call i32 @isatty(i32 noundef %3863) #11
  %.not684 = icmp eq i32 %3864, 0
  br i1 %.not684, label %3865, label %3866

3865:                                             ; preds = %3861, %3855
  br label %3866

3866:                                             ; preds = %3861, %3865
  %.str.5.sink2015 = phi ptr [ @.str.5, %3865 ], [ @.str.2, %3861 ]
  store i32 %3856, ptr %1763, align 4, !tbaa !5
  %3867 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3868 = load i32, ptr @test_count, align 4, !tbaa !5
  %3869 = load i32, ptr %1709, align 4, !tbaa !5
  %3870 = call ptr @s2n_strerror(i32 noundef %3869, ptr noundef nonnull @.str.4) #11
  %3871 = load i32, ptr %1709, align 4, !tbaa !5
  %3872 = call ptr @s2n_strerror_debug(i32 noundef %3871, ptr noundef nonnull @.str.4) #11
  %3873 = load i32, ptr %1763, align 4, !tbaa !5
  %3874 = call ptr @strerror(i32 noundef %3873) #11
  %3875 = load i32, ptr %1763, align 4, !tbaa !5
  %3876 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3867, ptr noundef nonnull %.str.5.sink2015, i32 noundef %3868, ptr noundef nonnull @.str.73, ptr noundef nonnull @.str.1, i32 noundef 448, ptr noundef %3870, ptr noundef %3872, ptr noundef %3874, i32 noundef %3875) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3877:                                             ; preds = %3848
  %3878 = load i32, ptr @test_count, align 4, !tbaa !5
  %3879 = add nsw i32 %3878, 1
  store i32 %3879, ptr @test_count, align 4, !tbaa !5
  %3880 = load ptr, ptr %31, align 8, !tbaa !9
  %3881 = call i32 @s2n_config_set_renegotiate_request_cb(ptr noundef %3880, ptr noundef nonnull @s2n_test_reneg_cb, ptr noundef null) #11
  %3882 = icmp eq i32 %3881, -1
  br i1 %3882, label %3883, label %3905

3883:                                             ; preds = %3877
  %3884 = load i32, ptr %1763, align 4, !tbaa !5
  %3885 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3886 = call i32 @s2n_print_stacktrace(ptr noundef %3885) #11
  %3887 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3888 = trunc nuw i8 %3887 to i1
  br i1 %3888, label %3889, label %3893

3889:                                             ; preds = %3883
  %3890 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3891 = call i32 @fileno(ptr noundef %3890) #11
  %3892 = call i32 @isatty(i32 noundef %3891) #11
  %.not683 = icmp eq i32 %3892, 0
  br i1 %.not683, label %3893, label %3894

3893:                                             ; preds = %3889, %3883
  br label %3894

3894:                                             ; preds = %3889, %3893
  %.str.5.sink2024 = phi ptr [ @.str.5, %3893 ], [ @.str.2, %3889 ]
  store i32 %3884, ptr %1763, align 4, !tbaa !5
  %3895 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3896 = load i32, ptr @test_count, align 4, !tbaa !5
  %3897 = load i32, ptr %1709, align 4, !tbaa !5
  %3898 = call ptr @s2n_strerror(i32 noundef %3897, ptr noundef nonnull @.str.4) #11
  %3899 = load i32, ptr %1709, align 4, !tbaa !5
  %3900 = call ptr @s2n_strerror_debug(i32 noundef %3899, ptr noundef nonnull @.str.4) #11
  %3901 = load i32, ptr %1763, align 4, !tbaa !5
  %3902 = call ptr @strerror(i32 noundef %3901) #11
  %3903 = load i32, ptr %1763, align 4, !tbaa !5
  %3904 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3895, ptr noundef nonnull %.str.5.sink2024, i32 noundef %3896, ptr noundef nonnull @.str.74, ptr noundef nonnull @.str.1, i32 noundef 450, ptr noundef %3898, ptr noundef %3900, ptr noundef %3902, i32 noundef %3903) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3905:                                             ; preds = %3877
  %3906 = load i32, ptr @test_count, align 4, !tbaa !5
  %3907 = add nsw i32 %3906, 1
  store i32 %3907, ptr @test_count, align 4, !tbaa !5
  %3908 = load ptr, ptr %32, align 8, !tbaa !9
  %3909 = call i32 @s2n_connection_ktls_enable_recv(ptr noundef %3908) #11
  %3910 = icmp eq i32 %3909, -1
  br i1 %3910, label %3933, label %3911

3911:                                             ; preds = %3905
  %3912 = load i32, ptr %1763, align 4, !tbaa !5
  %3913 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3914 = call i32 @s2n_print_stacktrace(ptr noundef %3913) #11
  %3915 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3916 = trunc nuw i8 %3915 to i1
  br i1 %3916, label %3917, label %3921

3917:                                             ; preds = %3911
  %3918 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3919 = call i32 @fileno(ptr noundef %3918) #11
  %3920 = call i32 @isatty(i32 noundef %3919) #11
  %.not612 = icmp eq i32 %3920, 0
  br i1 %.not612, label %3921, label %3922

3921:                                             ; preds = %3917, %3911
  br label %3922

3922:                                             ; preds = %3917, %3921
  %.str.5.sink2033 = phi ptr [ @.str.5, %3921 ], [ @.str.2, %3917 ]
  store i32 %3912, ptr %1763, align 4, !tbaa !5
  %3923 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3924 = load i32, ptr @test_count, align 4, !tbaa !5
  %3925 = load i32, ptr %1709, align 4, !tbaa !5
  %3926 = call ptr @s2n_strerror(i32 noundef %3925, ptr noundef nonnull @.str.4) #11
  %3927 = load i32, ptr %1709, align 4, !tbaa !5
  %3928 = call ptr @s2n_strerror_debug(i32 noundef %3927, ptr noundef nonnull @.str.4) #11
  %3929 = load i32, ptr %1763, align 4, !tbaa !5
  %3930 = call ptr @strerror(i32 noundef %3929) #11
  %3931 = load i32, ptr %1763, align 4, !tbaa !5
  %3932 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3923, ptr noundef nonnull %.str.5.sink2033, i32 noundef %3924, ptr noundef nonnull @.str.75, ptr noundef nonnull @.str.1, i32 noundef 451, ptr noundef %3926, ptr noundef %3928, ptr noundef %3930, i32 noundef %3931) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3933:                                             ; preds = %3905
  %3934 = load i32, ptr @test_count, align 4, !tbaa !5
  %3935 = add nsw i32 %3934, 1
  store i32 %3935, ptr @test_count, align 4, !tbaa !5
  %3936 = load i32, ptr %1709, align 4, !tbaa !5
  %3937 = icmp eq i32 %3936, 469762130
  br i1 %3937, label %3960, label %3938

3938:                                             ; preds = %3933
  %3939 = load i32, ptr %1763, align 4, !tbaa !5
  %3940 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3941 = call i32 @s2n_print_stacktrace(ptr noundef %3940) #11
  %3942 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3943 = trunc nuw i8 %3942 to i1
  br i1 %3943, label %3944, label %3948

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

3948:                                             ; preds = %3944, %3938
  br label %3949

3949:                                             ; preds = %3944, %3948
  %.str.5.sink2042 = phi ptr [ @.str.5, %3948 ], [ @.str.2, %3944 ]
  store i32 %3939, ptr %1763, align 4, !tbaa !5
  %3950 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3951 = load i32, ptr @test_count, align 4, !tbaa !5
  %3952 = load i32, ptr %1709, align 4, !tbaa !5
  %3953 = call ptr @s2n_strerror(i32 noundef %3952, ptr noundef nonnull @.str.4) #11
  %3954 = load i32, ptr %1709, align 4, !tbaa !5
  %3955 = call ptr @s2n_strerror_debug(i32 noundef %3954, ptr noundef nonnull @.str.4) #11
  %3956 = load i32, ptr %1763, align 4, !tbaa !5
  %3957 = call ptr @strerror(i32 noundef %3956) #11
  %3958 = load i32, ptr %1763, align 4, !tbaa !5
  %3959 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3950, ptr noundef nonnull %.str.5.sink2042, i32 noundef %3951, ptr noundef nonnull @.str.76, ptr noundef nonnull @.str.1, i32 noundef 451, ptr noundef %3953, ptr noundef %3955, ptr noundef %3957, i32 noundef %3958) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3960:                                             ; preds = %3933
  %3961 = add nsw i32 %3934, 2
  store i32 %3961, ptr @test_count, align 4, !tbaa !5
  %3962 = call ptr @s2n_strerror_debug(i32 noundef 469762130, ptr noundef nonnull @.str.4) #11
  %3963 = icmp eq ptr %3962, null
  br i1 %3963, label %3964, label %3986

3964:                                             ; preds = %3960
  %3965 = load i32, ptr %1763, align 4, !tbaa !5
  %3966 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3967 = call i32 @s2n_print_stacktrace(ptr noundef %3966) #11
  %3968 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3969 = trunc nuw i8 %3968 to i1
  br i1 %3969, label %3970, label %3974

3970:                                             ; preds = %3964
  %3971 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3972 = call i32 @fileno(ptr noundef %3971) #11
  %3973 = call i32 @isatty(i32 noundef %3972) #11
  %.not682 = icmp eq i32 %3973, 0
  br i1 %.not682, label %3974, label %3975

3974:                                             ; preds = %3970, %3964
  br label %3975

3975:                                             ; preds = %3970, %3974
  %.str.5.sink2051 = phi ptr [ @.str.5, %3974 ], [ @.str.2, %3970 ]
  store i32 %3965, ptr %1763, align 4, !tbaa !5
  %3976 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3977 = load i32, ptr @test_count, align 4, !tbaa !5
  %3978 = load i32, ptr %1709, align 4, !tbaa !5
  %3979 = call ptr @s2n_strerror(i32 noundef %3978, ptr noundef nonnull @.str.4) #11
  %3980 = load i32, ptr %1709, align 4, !tbaa !5
  %3981 = call ptr @s2n_strerror_debug(i32 noundef %3980, ptr noundef nonnull @.str.4) #11
  %3982 = load i32, ptr %1763, align 4, !tbaa !5
  %3983 = call ptr @strerror(i32 noundef %3982) #11
  %3984 = load i32, ptr %1763, align 4, !tbaa !5
  %3985 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3976, ptr noundef nonnull %.str.5.sink2051, i32 noundef %3977, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 451, ptr noundef %3979, ptr noundef %3981, ptr noundef %3983, i32 noundef %3984) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3986:                                             ; preds = %3960
  store i32 0, ptr %1709, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %1763, align 4, !tbaa !5
  %3987 = load i32, ptr @test_count, align 4, !tbaa !5
  %3988 = add nsw i32 %3987, 1
  store i32 %3988, ptr @test_count, align 4, !tbaa !5
  %3989 = load ptr, ptr %33, align 8, !tbaa !9
  %3990 = call i32 @s2n_connection_ktls_enable_recv(ptr noundef %3989) #11
  %3991 = icmp eq i32 %3990, -1
  br i1 %3991, label %3992, label %4014

3992:                                             ; preds = %3986
  %3993 = load i32, ptr %1763, align 4, !tbaa !5
  %3994 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3995 = call i32 @s2n_print_stacktrace(ptr noundef %3994) #11
  %3996 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3997 = trunc nuw i8 %3996 to i1
  br i1 %3997, label %3998, label %4002

3998:                                             ; preds = %3992
  %3999 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4000 = call i32 @fileno(ptr noundef %3999) #11
  %4001 = call i32 @isatty(i32 noundef %4000) #11
  %.not681 = icmp eq i32 %4001, 0
  br i1 %.not681, label %4002, label %4003

4002:                                             ; preds = %3998, %3992
  br label %4003

4003:                                             ; preds = %3998, %4002
  %.str.5.sink2060 = phi ptr [ @.str.5, %4002 ], [ @.str.2, %3998 ]
  store i32 %3993, ptr %1763, align 4, !tbaa !5
  %4004 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4005 = load i32, ptr @test_count, align 4, !tbaa !5
  %4006 = load i32, ptr %1709, align 4, !tbaa !5
  %4007 = call ptr @s2n_strerror(i32 noundef %4006, ptr noundef nonnull @.str.4) #11
  %4008 = load i32, ptr %1709, align 4, !tbaa !5
  %4009 = call ptr @s2n_strerror_debug(i32 noundef %4008, ptr noundef nonnull @.str.4) #11
  %4010 = load i32, ptr %1763, align 4, !tbaa !5
  %4011 = call ptr @strerror(i32 noundef %4010) #11
  %4012 = load i32, ptr %1763, align 4, !tbaa !5
  %4013 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4004, ptr noundef nonnull %.str.5.sink2060, i32 noundef %4005, ptr noundef nonnull @.str.77, ptr noundef nonnull @.str.1, i32 noundef 452, ptr noundef %4007, ptr noundef %4009, ptr noundef %4011, i32 noundef %4012) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4014:                                             ; preds = %3986
  %4015 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %33) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #11
  %4016 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %32) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %32) #11
  %4017 = call i32 @s2n_config_ptr_free(ptr noundef nonnull %31) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %34) #11
  %4018 = call ptr @s2n_config_new() #11
  store ptr %4018, ptr %34, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %35) #11
  %4019 = call ptr @s2n_connection_new(i32 noundef 1) #11
  store ptr %4019, ptr %35, align 8, !tbaa !9
  %4020 = load i32, ptr @test_count, align 4, !tbaa !5
  %4021 = add nsw i32 %4020, 1
  store i32 %4021, ptr @test_count, align 4, !tbaa !5
  %4022 = call i32 @s2n_test_configure_connection_for_ktls(ptr noundef %4019)
  %4023 = call zeroext i1 @s2n_result_is_ok(i32 %4022)
  br i1 %4023, label %4046, label %4024

4024:                                             ; preds = %4014
  %4025 = load i32, ptr %1763, 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
  %.not614 = icmp eq i32 %4033, 0
  br i1 %.not614, label %4034, label %4035

4034:                                             ; preds = %4030, %4024
  br label %4035

4035:                                             ; preds = %4030, %4034
  %.str.5.sink2069 = phi ptr [ @.str.5, %4034 ], [ @.str.2, %4030 ]
  store i32 %4025, ptr %1763, 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 %1709, align 4, !tbaa !5
  %4039 = call ptr @s2n_strerror(i32 noundef %4038, ptr noundef nonnull @.str.4) #11
  %4040 = load i32, ptr %1709, align 4, !tbaa !5
  %4041 = call ptr @s2n_strerror_debug(i32 noundef %4040, ptr noundef nonnull @.str.4) #11
  %4042 = load i32, ptr %1763, align 4, !tbaa !5
  %4043 = call ptr @strerror(i32 noundef %4042) #11
  %4044 = load i32, ptr %1763, align 4, !tbaa !5
  %4045 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4036, ptr noundef nonnull %.str.5.sink2069, i32 noundef %4037, ptr noundef nonnull @.str.70, ptr noundef nonnull @.str.1, i32 noundef 461, ptr noundef %4039, ptr noundef %4041, ptr noundef %4043, i32 noundef %4044) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4046:                                             ; preds = %4014
  %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 = load ptr, ptr %35, align 8, !tbaa !9
  %4050 = load ptr, ptr %34, align 8, !tbaa !9
  %4051 = call i32 @s2n_connection_set_config(ptr noundef %4049, ptr noundef %4050) #11
  %4052 = icmp eq i32 %4051, -1
  br i1 %4052, label %4053, label %4075

4053:                                             ; preds = %4046
  %4054 = load i32, ptr %1763, align 4, !tbaa !5
  %4055 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4056 = call i32 @s2n_print_stacktrace(ptr noundef %4055) #11
  %4057 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4058 = trunc nuw i8 %4057 to i1
  br i1 %4058, label %4059, label %4063

4059:                                             ; preds = %4053
  %4060 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4061 = call i32 @fileno(ptr noundef %4060) #11
  %4062 = call i32 @isatty(i32 noundef %4061) #11
  %.not680 = icmp eq i32 %4062, 0
  br i1 %.not680, label %4063, label %4064

4063:                                             ; preds = %4059, %4053
  br label %4064

4064:                                             ; preds = %4059, %4063
  %.str.5.sink2078 = phi ptr [ @.str.5, %4063 ], [ @.str.2, %4059 ]
  store i32 %4054, ptr %1763, align 4, !tbaa !5
  %4065 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4066 = load i32, ptr @test_count, align 4, !tbaa !5
  %4067 = load i32, ptr %1709, align 4, !tbaa !5
  %4068 = call ptr @s2n_strerror(i32 noundef %4067, ptr noundef nonnull @.str.4) #11
  %4069 = load i32, ptr %1709, align 4, !tbaa !5
  %4070 = call ptr @s2n_strerror_debug(i32 noundef %4069, ptr noundef nonnull @.str.4) #11
  %4071 = load i32, ptr %1763, align 4, !tbaa !5
  %4072 = call ptr @strerror(i32 noundef %4071) #11
  %4073 = load i32, ptr %1763, align 4, !tbaa !5
  %4074 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4065, ptr noundef nonnull %.str.5.sink2078, i32 noundef %4066, ptr noundef nonnull @.str.71, ptr noundef nonnull @.str.1, i32 noundef 462, ptr noundef %4068, ptr noundef %4070, ptr noundef %4072, i32 noundef %4073) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4075:                                             ; preds = %4046
  %4076 = load i32, ptr @test_count, align 4, !tbaa !5
  %4077 = add nsw i32 %4076, 1
  store i32 %4077, ptr @test_count, align 4, !tbaa !5
  %4078 = load ptr, ptr %34, align 8, !tbaa !9
  %4079 = call i32 @s2n_config_set_serialization_version(ptr noundef %4078, i32 noundef 1) #11
  %4080 = icmp eq i32 %4079, -1
  br i1 %4080, label %4081, label %4103

4081:                                             ; preds = %4075
  %4082 = load i32, ptr %1763, align 4, !tbaa !5
  %4083 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4084 = call i32 @s2n_print_stacktrace(ptr noundef %4083) #11
  %4085 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4086 = trunc nuw i8 %4085 to i1
  br i1 %4086, label %4087, label %4091

4087:                                             ; preds = %4081
  %4088 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4089 = call i32 @fileno(ptr noundef %4088) #11
  %4090 = call i32 @isatty(i32 noundef %4089) #11
  %.not679 = icmp eq i32 %4090, 0
  br i1 %.not679, label %4091, label %4092

4091:                                             ; preds = %4087, %4081
  br label %4092

4092:                                             ; preds = %4087, %4091
  %.str.5.sink2087 = phi ptr [ @.str.5, %4091 ], [ @.str.2, %4087 ]
  store i32 %4082, ptr %1763, align 4, !tbaa !5
  %4093 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4094 = load i32, ptr @test_count, align 4, !tbaa !5
  %4095 = load i32, ptr %1709, align 4, !tbaa !5
  %4096 = call ptr @s2n_strerror(i32 noundef %4095, ptr noundef nonnull @.str.4) #11
  %4097 = load i32, ptr %1709, align 4, !tbaa !5
  %4098 = call ptr @s2n_strerror_debug(i32 noundef %4097, ptr noundef nonnull @.str.4) #11
  %4099 = load i32, ptr %1763, align 4, !tbaa !5
  %4100 = call ptr @strerror(i32 noundef %4099) #11
  %4101 = load i32, ptr %1763, align 4, !tbaa !5
  %4102 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4093, ptr noundef nonnull %.str.5.sink2087, i32 noundef %4094, ptr noundef nonnull @.str.78, ptr noundef nonnull @.str.1, i32 noundef 464, ptr noundef %4096, ptr noundef %4098, ptr noundef %4100, i32 noundef %4101) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4103:                                             ; preds = %4075
  %4104 = load i32, ptr @test_count, align 4, !tbaa !5
  %4105 = add nsw i32 %4104, 1
  store i32 %4105, ptr @test_count, align 4, !tbaa !5
  %4106 = load ptr, ptr %35, align 8, !tbaa !9
  %4107 = call i32 @s2n_connection_ktls_enable_recv(ptr noundef %4106) #11
  %4108 = icmp eq i32 %4107, -1
  br i1 %4108, label %4131, label %4109

4109:                                             ; preds = %4103
  %4110 = load i32, ptr %1763, align 4, !tbaa !5
  %4111 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4112 = call i32 @s2n_print_stacktrace(ptr noundef %4111) #11
  %4113 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4114 = trunc nuw i8 %4113 to i1
  br i1 %4114, label %4115, label %4119

4115:                                             ; preds = %4109
  %4116 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4117 = call i32 @fileno(ptr noundef %4116) #11
  %4118 = call i32 @isatty(i32 noundef %4117) #11
  %.not615 = icmp eq i32 %4118, 0
  br i1 %.not615, label %4119, label %4120

4119:                                             ; preds = %4115, %4109
  br label %4120

4120:                                             ; preds = %4115, %4119
  %.str.5.sink2096 = phi ptr [ @.str.5, %4119 ], [ @.str.2, %4115 ]
  store i32 %4110, ptr %1763, align 4, !tbaa !5
  %4121 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4122 = load i32, ptr @test_count, align 4, !tbaa !5
  %4123 = load i32, ptr %1709, align 4, !tbaa !5
  %4124 = call ptr @s2n_strerror(i32 noundef %4123, ptr noundef nonnull @.str.4) #11
  %4125 = load i32, ptr %1709, align 4, !tbaa !5
  %4126 = call ptr @s2n_strerror_debug(i32 noundef %4125, ptr noundef nonnull @.str.4) #11
  %4127 = load i32, ptr %1763, align 4, !tbaa !5
  %4128 = call ptr @strerror(i32 noundef %4127) #11
  %4129 = load i32, ptr %1763, align 4, !tbaa !5
  %4130 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4121, ptr noundef nonnull %.str.5.sink2096, i32 noundef %4122, ptr noundef nonnull @.str.75, ptr noundef nonnull @.str.1, i32 noundef 465, ptr noundef %4124, ptr noundef %4126, ptr noundef %4128, i32 noundef %4129) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4131:                                             ; preds = %4103
  %4132 = load i32, ptr @test_count, align 4, !tbaa !5
  %4133 = add nsw i32 %4132, 1
  store i32 %4133, ptr @test_count, align 4, !tbaa !5
  %4134 = load i32, ptr %1709, align 4, !tbaa !5
  %4135 = icmp eq i32 %4134, 469762127
  br i1 %4135, label %4158, label %4136

4136:                                             ; preds = %4131
  %4137 = load i32, ptr %1763, align 4, !tbaa !5
  %4138 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4139 = call i32 @s2n_print_stacktrace(ptr noundef %4138) #11
  %4140 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4141 = trunc nuw i8 %4140 to i1
  br i1 %4141, label %4142, label %4146

4142:                                             ; preds = %4136
  %4143 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4144 = call i32 @fileno(ptr noundef %4143) #11
  %4145 = call i32 @isatty(i32 noundef %4144) #11
  %.not616 = icmp eq i32 %4145, 0
  br i1 %.not616, label %4146, label %4147

4146:                                             ; preds = %4142, %4136
  br label %4147

4147:                                             ; preds = %4142, %4146
  %.str.5.sink2105 = phi ptr [ @.str.5, %4146 ], [ @.str.2, %4142 ]
  store i32 %4137, ptr %1763, align 4, !tbaa !5
  %4148 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4149 = load i32, ptr @test_count, align 4, !tbaa !5
  %4150 = load i32, ptr %1709, align 4, !tbaa !5
  %4151 = call ptr @s2n_strerror(i32 noundef %4150, ptr noundef nonnull @.str.4) #11
  %4152 = load i32, ptr %1709, align 4, !tbaa !5
  %4153 = call ptr @s2n_strerror_debug(i32 noundef %4152, ptr noundef nonnull @.str.4) #11
  %4154 = load i32, ptr %1763, align 4, !tbaa !5
  %4155 = call ptr @strerror(i32 noundef %4154) #11
  %4156 = load i32, ptr %1763, align 4, !tbaa !5
  %4157 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4148, ptr noundef nonnull %.str.5.sink2105, i32 noundef %4149, ptr noundef nonnull @.str.55, ptr noundef nonnull @.str.1, i32 noundef 465, ptr noundef %4151, ptr noundef %4153, ptr noundef %4155, i32 noundef %4156) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4158:                                             ; preds = %4131
  %4159 = add nsw i32 %4132, 2
  store i32 %4159, ptr @test_count, align 4, !tbaa !5
  %4160 = call ptr @s2n_strerror_debug(i32 noundef 469762127, ptr noundef nonnull @.str.4) #11
  %4161 = icmp eq ptr %4160, null
  br i1 %4161, label %4162, label %4184

4162:                                             ; preds = %4158
  %4163 = load i32, ptr %1763, align 4, !tbaa !5
  %4164 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4165 = call i32 @s2n_print_stacktrace(ptr noundef %4164) #11
  %4166 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4167 = trunc nuw i8 %4166 to i1
  br i1 %4167, label %4168, label %4172

4168:                                             ; preds = %4162
  %4169 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4170 = call i32 @fileno(ptr noundef %4169) #11
  %4171 = call i32 @isatty(i32 noundef %4170) #11
  %.not678 = icmp eq i32 %4171, 0
  br i1 %.not678, label %4172, label %4173

4172:                                             ; preds = %4168, %4162
  br label %4173

4173:                                             ; preds = %4168, %4172
  %.str.5.sink2114 = phi ptr [ @.str.5, %4172 ], [ @.str.2, %4168 ]
  store i32 %4163, ptr %1763, align 4, !tbaa !5
  %4174 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4175 = load i32, ptr @test_count, align 4, !tbaa !5
  %4176 = load i32, ptr %1709, align 4, !tbaa !5
  %4177 = call ptr @s2n_strerror(i32 noundef %4176, ptr noundef nonnull @.str.4) #11
  %4178 = load i32, ptr %1709, align 4, !tbaa !5
  %4179 = call ptr @s2n_strerror_debug(i32 noundef %4178, ptr noundef nonnull @.str.4) #11
  %4180 = load i32, ptr %1763, align 4, !tbaa !5
  %4181 = call ptr @strerror(i32 noundef %4180) #11
  %4182 = load i32, ptr %1763, align 4, !tbaa !5
  %4183 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4174, ptr noundef nonnull %.str.5.sink2114, i32 noundef %4175, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 465, ptr noundef %4177, ptr noundef %4179, ptr noundef %4181, i32 noundef %4182) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4184:                                             ; preds = %4158
  store i32 0, ptr %1709, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %1763, align 4, !tbaa !5
  %4185 = load ptr, ptr %34, align 8, !tbaa !9
  %4186 = getelementptr inbounds i8, ptr %4185, i64 440
  store i32 0, ptr %4186, align 8, !tbaa !67
  %4187 = load i32, ptr @test_count, align 4, !tbaa !5
  %4188 = add nsw i32 %4187, 1
  store i32 %4188, ptr @test_count, align 4, !tbaa !5
  %4189 = load ptr, ptr %35, align 8, !tbaa !9
  %4190 = call i32 @s2n_connection_ktls_enable_recv(ptr noundef %4189) #11
  %4191 = icmp eq i32 %4190, -1
  br i1 %4191, label %4192, label %4214

4192:                                             ; preds = %4184
  %4193 = load i32, ptr %1763, align 4, !tbaa !5
  %4194 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4195 = call i32 @s2n_print_stacktrace(ptr noundef %4194) #11
  %4196 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4197 = trunc nuw i8 %4196 to i1
  br i1 %4197, label %4198, label %4202

4198:                                             ; preds = %4192
  %4199 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4200 = call i32 @fileno(ptr noundef %4199) #11
  %4201 = call i32 @isatty(i32 noundef %4200) #11
  %.not677 = icmp eq i32 %4201, 0
  br i1 %.not677, label %4202, label %4203

4202:                                             ; preds = %4198, %4192
  br label %4203

4203:                                             ; preds = %4198, %4202
  %.str.5.sink2123 = phi ptr [ @.str.5, %4202 ], [ @.str.2, %4198 ]
  store i32 %4193, ptr %1763, align 4, !tbaa !5
  %4204 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4205 = load i32, ptr @test_count, align 4, !tbaa !5
  %4206 = load i32, ptr %1709, align 4, !tbaa !5
  %4207 = call ptr @s2n_strerror(i32 noundef %4206, ptr noundef nonnull @.str.4) #11
  %4208 = load i32, ptr %1709, align 4, !tbaa !5
  %4209 = call ptr @s2n_strerror_debug(i32 noundef %4208, ptr noundef nonnull @.str.4) #11
  %4210 = load i32, ptr %1763, align 4, !tbaa !5
  %4211 = call ptr @strerror(i32 noundef %4210) #11
  %4212 = load i32, ptr %1763, align 4, !tbaa !5
  %4213 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4204, ptr noundef nonnull %.str.5.sink2123, i32 noundef %4205, ptr noundef nonnull @.str.79, ptr noundef nonnull @.str.1, i32 noundef 469, ptr noundef %4207, ptr noundef %4209, ptr noundef %4211, i32 noundef %4212) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4214:                                             ; preds = %4184
  %4215 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %35) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %35) #11
  %4216 = call i32 @s2n_config_ptr_free(ptr noundef nonnull %34) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %34) #11
  call void @llvm.lifetime.start.p0(i64 104, ptr nonnull %36) #11
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(104) %36, ptr noundef nonnull align 8 dereferenceable(104) @s2n_rsa_with_aes_256_gcm_sha384, i64 104, i1 false), !tbaa.struct !71
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %37) #11
  %4217 = getelementptr inbounds i8, ptr %36, i64 48
  %4218 = load ptr, ptr %4217, align 8, !tbaa !61
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %37, ptr noundef nonnull align 8 dereferenceable(24) %4218, i64 24, i1 false), !tbaa.struct !72
  store ptr %37, ptr %4217, align 8, !tbaa !61
  call void @llvm.lifetime.start.p0(i64 104, ptr nonnull %38) #11
  %4219 = load ptr, ptr %37, align 8, !tbaa !59
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(104) %38, ptr noundef nonnull align 8 dereferenceable(104) %4219, i64 96, i1 false), !tbaa.struct !74
  store ptr %38, ptr %37, align 8, !tbaa !59
  %4220 = getelementptr inbounds i8, ptr %38, i64 96
  store ptr @s2n_test_setsockopt_set_ktls_info, ptr %4220, align 8, !tbaa !19
  call void @llvm.lifetime.start.p0(i64 936, ptr nonnull %39) #11
  %4221 = getelementptr inbounds i8, ptr %39, i64 8
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(936) %4221, i8 0, i64 928, i1 false)
  store ptr %36, ptr %39, align 8, !tbaa !54
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %40) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %40, i8 0, i64 24, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %41) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %41, i8 0, i64 24, i1 false)
  %4222 = load i32, ptr @test_count, align 4, !tbaa !5
  %4223 = add nsw i32 %4222, 1
  store i32 %4223, ptr @test_count, align 4, !tbaa !5
  %4224 = getelementptr inbounds i8, ptr %39, i64 904
  %4225 = call i32 @s2n_blob_init(ptr noundef nonnull %40, ptr noundef nonnull %4224, i32 noundef 16) #11
  %4226 = icmp eq i32 %4225, -1
  br i1 %4226, label %4227, label %4249

4227:                                             ; preds = %4214
  %4228 = load i32, ptr %1763, align 4, !tbaa !5
  %4229 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4230 = call i32 @s2n_print_stacktrace(ptr noundef %4229) #11
  %4231 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4232 = trunc nuw i8 %4231 to i1
  br i1 %4232, label %4233, label %4237

4233:                                             ; preds = %4227
  %4234 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4235 = call i32 @fileno(ptr noundef %4234) #11
  %4236 = call i32 @isatty(i32 noundef %4235) #11
  %.not676 = icmp eq i32 %4236, 0
  br i1 %.not676, label %4237, label %4238

4237:                                             ; preds = %4233, %4227
  br label %4238

4238:                                             ; preds = %4233, %4237
  %.str.5.sink2132 = phi ptr [ @.str.5, %4237 ], [ @.str.2, %4233 ]
  store i32 %4228, ptr %1763, align 4, !tbaa !5
  %4239 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4240 = load i32, ptr @test_count, align 4, !tbaa !5
  %4241 = load i32, ptr %1709, align 4, !tbaa !5
  %4242 = call ptr @s2n_strerror(i32 noundef %4241, ptr noundef nonnull @.str.4) #11
  %4243 = load i32, ptr %1709, align 4, !tbaa !5
  %4244 = call ptr @s2n_strerror_debug(i32 noundef %4243, ptr noundef nonnull @.str.4) #11
  %4245 = load i32, ptr %1763, align 4, !tbaa !5
  %4246 = call ptr @strerror(i32 noundef %4245) #11
  %4247 = load i32, ptr %1763, align 4, !tbaa !5
  %4248 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4239, ptr noundef nonnull %.str.5.sink2132, i32 noundef %4240, ptr noundef nonnull @.str.80, ptr noundef nonnull @.str.1, i32 noundef 486, ptr noundef %4242, ptr noundef %4244, ptr noundef %4246, i32 noundef %4247) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4249:                                             ; preds = %4214
  %4250 = load i32, ptr @test_count, align 4, !tbaa !5
  %4251 = add nsw i32 %4250, 1
  store i32 %4251, ptr @test_count, align 4, !tbaa !5
  %4252 = getelementptr inbounds i8, ptr %39, i64 888
  %4253 = call i32 @s2n_blob_init(ptr noundef nonnull %41, ptr noundef nonnull %4252, i32 noundef 16) #11
  %4254 = icmp eq i32 %4253, -1
  br i1 %4254, label %4255, label %4277

4255:                                             ; preds = %4249
  %4256 = load i32, ptr %1763, align 4, !tbaa !5
  %4257 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4258 = call i32 @s2n_print_stacktrace(ptr noundef %4257) #11
  %4259 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4260 = trunc nuw i8 %4259 to i1
  br i1 %4260, label %4261, label %4265

4261:                                             ; preds = %4255
  %4262 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4263 = call i32 @fileno(ptr noundef %4262) #11
  %4264 = call i32 @isatty(i32 noundef %4263) #11
  %.not675 = icmp eq i32 %4264, 0
  br i1 %.not675, label %4265, label %4266

4265:                                             ; preds = %4261, %4255
  br label %4266

4266:                                             ; preds = %4261, %4265
  %.str.5.sink2141 = phi ptr [ @.str.5, %4265 ], [ @.str.2, %4261 ]
  store i32 %4256, ptr %1763, align 4, !tbaa !5
  %4267 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4268 = load i32, ptr @test_count, align 4, !tbaa !5
  %4269 = load i32, ptr %1709, align 4, !tbaa !5
  %4270 = call ptr @s2n_strerror(i32 noundef %4269, ptr noundef nonnull @.str.4) #11
  %4271 = load i32, ptr %1709, align 4, !tbaa !5
  %4272 = call ptr @s2n_strerror_debug(i32 noundef %4271, ptr noundef nonnull @.str.4) #11
  %4273 = load i32, ptr %1763, align 4, !tbaa !5
  %4274 = call ptr @strerror(i32 noundef %4273) #11
  %4275 = load i32, ptr %1763, align 4, !tbaa !5
  %4276 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4267, ptr noundef nonnull %.str.5.sink2141, i32 noundef %4268, ptr noundef nonnull @.str.81, ptr noundef nonnull @.str.1, i32 noundef 488, ptr noundef %4270, ptr noundef %4272, ptr noundef %4274, i32 noundef %4275) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4277:                                             ; preds = %4249
  %4278 = load i32, ptr @test_count, align 4, !tbaa !5
  %4279 = add nsw i32 %4278, 1
  store i32 %4279, ptr @test_count, align 4, !tbaa !5
  %4280 = call i32 @s2n_get_public_random_data(ptr noundef nonnull %40) #11
  %4281 = call zeroext i1 @s2n_result_is_ok(i32 %4280)
  br i1 %4281, label %4304, label %4282

4282:                                             ; preds = %4277
  %4283 = load i32, ptr %1763, align 4, !tbaa !5
  %4284 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4285 = call i32 @s2n_print_stacktrace(ptr noundef %4284) #11
  %4286 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4287 = trunc nuw i8 %4286 to i1
  br i1 %4287, label %4288, label %4292

4288:                                             ; preds = %4282
  %4289 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4290 = call i32 @fileno(ptr noundef %4289) #11
  %4291 = call i32 @isatty(i32 noundef %4290) #11
  %.not617 = icmp eq i32 %4291, 0
  br i1 %.not617, label %4292, label %4293

4292:                                             ; preds = %4288, %4282
  br label %4293

4293:                                             ; preds = %4288, %4292
  %.str.5.sink2150 = phi ptr [ @.str.5, %4292 ], [ @.str.2, %4288 ]
  store i32 %4283, ptr %1763, align 4, !tbaa !5
  %4294 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4295 = load i32, ptr @test_count, align 4, !tbaa !5
  %4296 = load i32, ptr %1709, align 4, !tbaa !5
  %4297 = call ptr @s2n_strerror(i32 noundef %4296, ptr noundef nonnull @.str.4) #11
  %4298 = load i32, ptr %1709, align 4, !tbaa !5
  %4299 = call ptr @s2n_strerror_debug(i32 noundef %4298, ptr noundef nonnull @.str.4) #11
  %4300 = load i32, ptr %1763, align 4, !tbaa !5
  %4301 = call ptr @strerror(i32 noundef %4300) #11
  %4302 = load i32, ptr %1763, align 4, !tbaa !5
  %4303 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4294, ptr noundef nonnull %.str.5.sink2150, i32 noundef %4295, ptr noundef nonnull @.str.82, ptr noundef nonnull @.str.1, i32 noundef 489, ptr noundef %4297, ptr noundef %4299, ptr noundef %4301, i32 noundef %4302) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4304:                                             ; preds = %4277
  %4305 = load i32, ptr @test_count, align 4, !tbaa !5
  %4306 = add nsw i32 %4305, 1
  store i32 %4306, ptr @test_count, align 4, !tbaa !5
  %4307 = call i32 @s2n_get_public_random_data(ptr noundef nonnull %41) #11
  %4308 = call zeroext i1 @s2n_result_is_ok(i32 %4307)
  br i1 %4308, label %4331, label %4309

4309:                                             ; preds = %4304
  %4310 = load i32, ptr %1763, align 4, !tbaa !5
  %4311 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4312 = call i32 @s2n_print_stacktrace(ptr noundef %4311) #11
  %4313 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4314 = trunc nuw i8 %4313 to i1
  br i1 %4314, label %4315, label %4319

4315:                                             ; preds = %4309
  %4316 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4317 = call i32 @fileno(ptr noundef %4316) #11
  %4318 = call i32 @isatty(i32 noundef %4317) #11
  %.not618 = icmp eq i32 %4318, 0
  br i1 %.not618, label %4319, label %4320

4319:                                             ; preds = %4315, %4309
  br label %4320

4320:                                             ; preds = %4315, %4319
  %.str.5.sink2159 = phi ptr [ @.str.5, %4319 ], [ @.str.2, %4315 ]
  store i32 %4310, ptr %1763, align 4, !tbaa !5
  %4321 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4322 = load i32, ptr @test_count, align 4, !tbaa !5
  %4323 = load i32, ptr %1709, align 4, !tbaa !5
  %4324 = call ptr @s2n_strerror(i32 noundef %4323, ptr noundef nonnull @.str.4) #11
  %4325 = load i32, ptr %1709, align 4, !tbaa !5
  %4326 = call ptr @s2n_strerror_debug(i32 noundef %4325, ptr noundef nonnull @.str.4) #11
  %4327 = load i32, ptr %1763, align 4, !tbaa !5
  %4328 = call ptr @strerror(i32 noundef %4327) #11
  %4329 = load i32, ptr %1763, align 4, !tbaa !5
  %4330 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4321, ptr noundef nonnull %.str.5.sink2159, i32 noundef %4322, ptr noundef nonnull @.str.83, ptr noundef nonnull @.str.1, i32 noundef 490, ptr noundef %4324, ptr noundef %4326, ptr noundef %4328, i32 noundef %4329) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4331:                                             ; preds = %4304
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %42) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %42, i8 0, i64 24, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %43) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %43, i8 0, i64 24, i1 false)
  %4332 = load i32, ptr @test_count, align 4, !tbaa !5
  %4333 = add nsw i32 %4332, 1
  store i32 %4333, ptr @test_count, align 4, !tbaa !5
  %4334 = getelementptr inbounds i8, ptr %39, i64 928
  %4335 = call i32 @s2n_blob_init(ptr noundef nonnull %42, ptr noundef nonnull %4334, i32 noundef 8) #11
  %4336 = icmp eq i32 %4335, -1
  br i1 %4336, label %4337, label %4359

4337:                                             ; preds = %4331
  %4338 = load i32, ptr %1763, align 4, !tbaa !5
  %4339 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4340 = call i32 @s2n_print_stacktrace(ptr noundef %4339) #11
  %4341 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4342 = trunc nuw i8 %4341 to i1
  br i1 %4342, label %4343, label %4347

4343:                                             ; preds = %4337
  %4344 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4345 = call i32 @fileno(ptr noundef %4344) #11
  %4346 = call i32 @isatty(i32 noundef %4345) #11
  %.not674 = icmp eq i32 %4346, 0
  br i1 %.not674, label %4347, label %4348

4347:                                             ; preds = %4343, %4337
  br label %4348

4348:                                             ; preds = %4343, %4347
  %.str.5.sink2168 = phi ptr [ @.str.5, %4347 ], [ @.str.2, %4343 ]
  store i32 %4338, ptr %1763, align 4, !tbaa !5
  %4349 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4350 = load i32, ptr @test_count, align 4, !tbaa !5
  %4351 = load i32, ptr %1709, align 4, !tbaa !5
  %4352 = call ptr @s2n_strerror(i32 noundef %4351, ptr noundef nonnull @.str.4) #11
  %4353 = load i32, ptr %1709, align 4, !tbaa !5
  %4354 = call ptr @s2n_strerror_debug(i32 noundef %4353, ptr noundef nonnull @.str.4) #11
  %4355 = load i32, ptr %1763, align 4, !tbaa !5
  %4356 = call ptr @strerror(i32 noundef %4355) #11
  %4357 = load i32, ptr %1763, align 4, !tbaa !5
  %4358 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4349, ptr noundef nonnull %.str.5.sink2168, i32 noundef %4350, ptr noundef nonnull @.str.84, ptr noundef nonnull @.str.1, i32 noundef 494, ptr noundef %4352, ptr noundef %4354, ptr noundef %4356, i32 noundef %4357) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4359:                                             ; preds = %4331
  %4360 = load i32, ptr @test_count, align 4, !tbaa !5
  %4361 = add nsw i32 %4360, 1
  store i32 %4361, ptr @test_count, align 4, !tbaa !5
  %4362 = getelementptr inbounds i8, ptr %39, i64 920
  %4363 = call i32 @s2n_blob_init(ptr noundef nonnull %43, ptr noundef nonnull %4362, i32 noundef 8) #11
  %4364 = icmp eq i32 %4363, -1
  br i1 %4364, label %4365, label %4387

4365:                                             ; preds = %4359
  %4366 = load i32, ptr %1763, align 4, !tbaa !5
  %4367 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4368 = call i32 @s2n_print_stacktrace(ptr noundef %4367) #11
  %4369 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4370 = trunc nuw i8 %4369 to i1
  br i1 %4370, label %4371, label %4375

4371:                                             ; preds = %4365
  %4372 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4373 = call i32 @fileno(ptr noundef %4372) #11
  %4374 = call i32 @isatty(i32 noundef %4373) #11
  %.not673 = icmp eq i32 %4374, 0
  br i1 %.not673, label %4375, label %4376

4375:                                             ; preds = %4371, %4365
  br label %4376

4376:                                             ; preds = %4371, %4375
  %.str.5.sink2177 = phi ptr [ @.str.5, %4375 ], [ @.str.2, %4371 ]
  store i32 %4366, ptr %1763, align 4, !tbaa !5
  %4377 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4378 = load i32, ptr @test_count, align 4, !tbaa !5
  %4379 = load i32, ptr %1709, align 4, !tbaa !5
  %4380 = call ptr @s2n_strerror(i32 noundef %4379, ptr noundef nonnull @.str.4) #11
  %4381 = load i32, ptr %1709, align 4, !tbaa !5
  %4382 = call ptr @s2n_strerror_debug(i32 noundef %4381, ptr noundef nonnull @.str.4) #11
  %4383 = load i32, ptr %1763, align 4, !tbaa !5
  %4384 = call ptr @strerror(i32 noundef %4383) #11
  %4385 = load i32, ptr %1763, align 4, !tbaa !5
  %4386 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4377, ptr noundef nonnull %.str.5.sink2177, i32 noundef %4378, ptr noundef nonnull @.str.85, ptr noundef nonnull @.str.1, i32 noundef 496, ptr noundef %4380, ptr noundef %4382, ptr noundef %4384, i32 noundef %4385) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4387:                                             ; preds = %4359
  %4388 = load i32, ptr @test_count, align 4, !tbaa !5
  %4389 = add nsw i32 %4388, 1
  store i32 %4389, ptr @test_count, align 4, !tbaa !5
  %4390 = call i32 @s2n_get_public_random_data(ptr noundef nonnull %42) #11
  %4391 = call zeroext i1 @s2n_result_is_ok(i32 %4390)
  br i1 %4391, label %4414, label %4392

4392:                                             ; preds = %4387
  %4393 = load i32, ptr %1763, align 4, !tbaa !5
  %4394 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4395 = call i32 @s2n_print_stacktrace(ptr noundef %4394) #11
  %4396 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4397 = trunc nuw i8 %4396 to i1
  br i1 %4397, label %4398, label %4402

4398:                                             ; preds = %4392
  %4399 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4400 = call i32 @fileno(ptr noundef %4399) #11
  %4401 = call i32 @isatty(i32 noundef %4400) #11
  %.not619 = icmp eq i32 %4401, 0
  br i1 %.not619, label %4402, label %4403

4402:                                             ; preds = %4398, %4392
  br label %4403

4403:                                             ; preds = %4398, %4402
  %.str.5.sink2186 = phi ptr [ @.str.5, %4402 ], [ @.str.2, %4398 ]
  store i32 %4393, ptr %1763, align 4, !tbaa !5
  %4404 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4405 = load i32, ptr @test_count, align 4, !tbaa !5
  %4406 = load i32, ptr %1709, align 4, !tbaa !5
  %4407 = call ptr @s2n_strerror(i32 noundef %4406, ptr noundef nonnull @.str.4) #11
  %4408 = load i32, ptr %1709, align 4, !tbaa !5
  %4409 = call ptr @s2n_strerror_debug(i32 noundef %4408, ptr noundef nonnull @.str.4) #11
  %4410 = load i32, ptr %1763, align 4, !tbaa !5
  %4411 = call ptr @strerror(i32 noundef %4410) #11
  %4412 = load i32, ptr %1763, align 4, !tbaa !5
  %4413 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4404, ptr noundef nonnull %.str.5.sink2186, i32 noundef %4405, ptr noundef nonnull @.str.86, ptr noundef nonnull @.str.1, i32 noundef 497, ptr noundef %4407, ptr noundef %4409, ptr noundef %4411, i32 noundef %4412) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4414:                                             ; preds = %4387
  %4415 = load i32, ptr @test_count, align 4, !tbaa !5
  %4416 = add nsw i32 %4415, 1
  store i32 %4416, ptr @test_count, align 4, !tbaa !5
  %4417 = call i32 @s2n_get_public_random_data(ptr noundef nonnull %43) #11
  %4418 = call zeroext i1 @s2n_result_is_ok(i32 %4417)
  br i1 %4418, label %4441, label %4419

4419:                                             ; preds = %4414
  %4420 = load i32, ptr %1763, align 4, !tbaa !5
  %4421 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4422 = call i32 @s2n_print_stacktrace(ptr noundef %4421) #11
  %4423 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4424 = trunc nuw i8 %4423 to i1
  br i1 %4424, label %4425, label %4429

4425:                                             ; preds = %4419
  %4426 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4427 = call i32 @fileno(ptr noundef %4426) #11
  %4428 = call i32 @isatty(i32 noundef %4427) #11
  %.not620 = icmp eq i32 %4428, 0
  br i1 %.not620, label %4429, label %4430

4429:                                             ; preds = %4425, %4419
  br label %4430

4430:                                             ; preds = %4425, %4429
  %.str.5.sink2195 = phi ptr [ @.str.5, %4429 ], [ @.str.2, %4425 ]
  store i32 %4420, ptr %1763, align 4, !tbaa !5
  %4431 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4432 = load i32, ptr @test_count, align 4, !tbaa !5
  %4433 = load i32, ptr %1709, align 4, !tbaa !5
  %4434 = call ptr @s2n_strerror(i32 noundef %4433, ptr noundef nonnull @.str.4) #11
  %4435 = load i32, ptr %1709, align 4, !tbaa !5
  %4436 = call ptr @s2n_strerror_debug(i32 noundef %4435, ptr noundef nonnull @.str.4) #11
  %4437 = load i32, ptr %1763, align 4, !tbaa !5
  %4438 = call ptr @strerror(i32 noundef %4437) #11
  %4439 = load i32, ptr %1763, align 4, !tbaa !5
  %4440 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4431, ptr noundef nonnull %.str.5.sink2195, i32 noundef %4432, ptr noundef nonnull @.str.87, ptr noundef nonnull @.str.1, i32 noundef 498, ptr noundef %4434, ptr noundef %4436, ptr noundef %4438, i32 noundef %4439) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4441:                                             ; preds = %4414
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %44) #11
  %4442 = call ptr @s2n_connection_new(i32 noundef 0) #11
  store ptr %4442, ptr %44, align 8, !tbaa !9
  %4443 = load i32, ptr @test_count, align 4, !tbaa !5
  %4444 = add nsw i32 %4443, 1
  store i32 %4444, ptr @test_count, align 4, !tbaa !5
  %4445 = call i32 @s2n_test_configure_connection_for_ktls(ptr noundef %4442)
  %4446 = call zeroext i1 @s2n_result_is_ok(i32 %4445)
  br i1 %4446, label %4469, label %4447

4447:                                             ; preds = %4441
  %4448 = load i32, ptr %1763, align 4, !tbaa !5
  %4449 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4450 = call i32 @s2n_print_stacktrace(ptr noundef %4449) #11
  %4451 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4452 = trunc nuw i8 %4451 to i1
  br i1 %4452, label %4453, label %4457

4453:                                             ; preds = %4447
  %4454 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4455 = call i32 @fileno(ptr noundef %4454) #11
  %4456 = call i32 @isatty(i32 noundef %4455) #11
  %.not621 = icmp eq i32 %4456, 0
  br i1 %.not621, label %4457, label %4458

4457:                                             ; preds = %4453, %4447
  br label %4458

4458:                                             ; preds = %4453, %4457
  %.str.5.sink2204 = phi ptr [ @.str.5, %4457 ], [ @.str.2, %4453 ]
  store i32 %4448, ptr %1763, align 4, !tbaa !5
  %4459 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4460 = load i32, ptr @test_count, align 4, !tbaa !5
  %4461 = load i32, ptr %1709, align 4, !tbaa !5
  %4462 = call ptr @s2n_strerror(i32 noundef %4461, ptr noundef nonnull @.str.4) #11
  %4463 = load i32, ptr %1709, align 4, !tbaa !5
  %4464 = call ptr @s2n_strerror_debug(i32 noundef %4463, ptr noundef nonnull @.str.4) #11
  %4465 = load i32, ptr %1763, align 4, !tbaa !5
  %4466 = call ptr @strerror(i32 noundef %4465) #11
  %4467 = load i32, ptr %1763, align 4, !tbaa !5
  %4468 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4459, ptr noundef nonnull %.str.5.sink2204, i32 noundef %4460, ptr noundef nonnull @.str.72, ptr noundef nonnull @.str.1, i32 noundef 504, ptr noundef %4462, ptr noundef %4464, ptr noundef %4466, i32 noundef %4467) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4469:                                             ; preds = %4441
  %4470 = load i32, ptr @test_count, align 4, !tbaa !5
  %4471 = add nsw i32 %4470, 1
  store i32 %4471, ptr @test_count, align 4, !tbaa !5
  %4472 = call i32 @s2n_ktls_set_setsockopt_cb(ptr noundef nonnull @s2n_test_setsockopt_tls_cb) #11
  %4473 = call zeroext i1 @s2n_result_is_ok(i32 %4472)
  br i1 %4473, label %4496, label %4474

4474:                                             ; preds = %4469
  %4475 = load i32, ptr %1763, align 4, !tbaa !5
  %4476 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4477 = call i32 @s2n_print_stacktrace(ptr noundef %4476) #11
  %4478 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4479 = trunc nuw i8 %4478 to i1
  br i1 %4479, label %4480, label %4484

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

4484:                                             ; preds = %4480, %4474
  br label %4485

4485:                                             ; preds = %4480, %4484
  %.str.5.sink2213 = phi ptr [ @.str.5, %4484 ], [ @.str.2, %4480 ]
  store i32 %4475, ptr %1763, align 4, !tbaa !5
  %4486 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4487 = load i32, ptr @test_count, align 4, !tbaa !5
  %4488 = load i32, ptr %1709, align 4, !tbaa !5
  %4489 = call ptr @s2n_strerror(i32 noundef %4488, ptr noundef nonnull @.str.4) #11
  %4490 = load i32, ptr %1709, align 4, !tbaa !5
  %4491 = call ptr @s2n_strerror_debug(i32 noundef %4490, ptr noundef nonnull @.str.4) #11
  %4492 = load i32, ptr %1763, align 4, !tbaa !5
  %4493 = call ptr @strerror(i32 noundef %4492) #11
  %4494 = load i32, ptr %1763, align 4, !tbaa !5
  %4495 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4486, ptr noundef nonnull %.str.5.sink2213, i32 noundef %4487, ptr noundef nonnull @.str.88, ptr noundef nonnull @.str.1, i32 noundef 505, ptr noundef %4489, ptr noundef %4491, ptr noundef %4493, i32 noundef %4494) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4496:                                             ; preds = %4469
  %4497 = load i32, ptr @test_count, align 4, !tbaa !5
  %4498 = add nsw i32 %4497, 1
  store i32 %4498, ptr @test_count, align 4, !tbaa !5
  %4499 = load ptr, ptr %44, align 8, !tbaa !9
  %4500 = getelementptr inbounds i8, ptr %4499, i64 232
  %4501 = call i32 @s2n_crypto_parameters_free(ptr noundef nonnull %4500) #11
  %4502 = call zeroext i1 @s2n_result_is_ok(i32 %4501)
  br i1 %4502, label %4525, label %4503

4503:                                             ; preds = %4496
  %4504 = load i32, ptr %1763, align 4, !tbaa !5
  %4505 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4506 = call i32 @s2n_print_stacktrace(ptr noundef %4505) #11
  %4507 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4508 = trunc nuw i8 %4507 to i1
  br i1 %4508, label %4509, label %4513

4509:                                             ; preds = %4503
  %4510 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4511 = call i32 @fileno(ptr noundef %4510) #11
  %4512 = call i32 @isatty(i32 noundef %4511) #11
  %.not623 = icmp eq i32 %4512, 0
  br i1 %.not623, label %4513, label %4514

4513:                                             ; preds = %4509, %4503
  br label %4514

4514:                                             ; preds = %4509, %4513
  %.str.5.sink2222 = phi ptr [ @.str.5, %4513 ], [ @.str.2, %4509 ]
  store i32 %4504, ptr %1763, align 4, !tbaa !5
  %4515 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4516 = load i32, ptr @test_count, align 4, !tbaa !5
  %4517 = load i32, ptr %1709, align 4, !tbaa !5
  %4518 = call ptr @s2n_strerror(i32 noundef %4517, ptr noundef nonnull @.str.4) #11
  %4519 = load i32, ptr %1709, align 4, !tbaa !5
  %4520 = call ptr @s2n_strerror_debug(i32 noundef %4519, ptr noundef nonnull @.str.4) #11
  %4521 = load i32, ptr %1763, align 4, !tbaa !5
  %4522 = call ptr @strerror(i32 noundef %4521) #11
  %4523 = load i32, ptr %1763, align 4, !tbaa !5
  %4524 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4515, ptr noundef nonnull %.str.5.sink2222, i32 noundef %4516, ptr noundef nonnull @.str.89, ptr noundef nonnull @.str.1, i32 noundef 506, ptr noundef %4518, ptr noundef %4520, ptr noundef %4522, i32 noundef %4523) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4525:                                             ; preds = %4496
  %4526 = load ptr, ptr %44, align 8, !tbaa !9
  %4527 = getelementptr inbounds i8, ptr %4526, i64 232
  store ptr %39, ptr %4527, align 8, !tbaa !53
  call void @llvm.lifetime.start.p0(i64 304, ptr nonnull %45) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(304) %45, i8 0, i64 304, i1 false)
  %4528 = load i32, ptr @test_count, align 4, !tbaa !5
  %4529 = add nsw i32 %4528, 1
  store i32 %4529, ptr @test_count, align 4, !tbaa !5
  %4530 = call i32 @s2n_prf_generate_key_material(ptr noundef %4526, ptr noundef nonnull %45) #11
  %4531 = call zeroext i1 @s2n_result_is_ok(i32 %4530)
  br i1 %4531, label %4554, label %4532

4532:                                             ; preds = %4525
  %4533 = load i32, ptr %1763, align 4, !tbaa !5
  %4534 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4535 = call i32 @s2n_print_stacktrace(ptr noundef %4534) #11
  %4536 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4537 = trunc nuw i8 %4536 to i1
  br i1 %4537, label %4538, label %4542

4538:                                             ; preds = %4532
  %4539 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4540 = call i32 @fileno(ptr noundef %4539) #11
  %4541 = call i32 @isatty(i32 noundef %4540) #11
  %.not624 = icmp eq i32 %4541, 0
  br i1 %.not624, label %4542, label %4543

4542:                                             ; preds = %4538, %4532
  br label %4543

4543:                                             ; preds = %4538, %4542
  %.str.5.sink2231 = phi ptr [ @.str.5, %4542 ], [ @.str.2, %4538 ]
  store i32 %4533, ptr %1763, align 4, !tbaa !5
  %4544 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4545 = load i32, ptr @test_count, align 4, !tbaa !5
  %4546 = load i32, ptr %1709, align 4, !tbaa !5
  %4547 = call ptr @s2n_strerror(i32 noundef %4546, ptr noundef nonnull @.str.4) #11
  %4548 = load i32, ptr %1709, align 4, !tbaa !5
  %4549 = call ptr @s2n_strerror_debug(i32 noundef %4548, ptr noundef nonnull @.str.4) #11
  %4550 = load i32, ptr %1763, align 4, !tbaa !5
  %4551 = call ptr @strerror(i32 noundef %4550) #11
  %4552 = load i32, ptr %1763, align 4, !tbaa !5
  %4553 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4544, ptr noundef nonnull %.str.5.sink2231, i32 noundef %4545, ptr noundef nonnull @.str.90, ptr noundef nonnull @.str.1, i32 noundef 510, ptr noundef %4547, ptr noundef %4549, ptr noundef %4551, i32 noundef %4552) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4554:                                             ; preds = %4525
  %4555 = getelementptr inbounds i8, ptr %45, i64 208
  store i64 0, ptr @s2n_test_setsockopt_expected, align 8, !tbaa !73
  store i32 55, ptr getelementptr inbounds (i8, ptr @s2n_test_setsockopt_expected, i64 8), align 8, !tbaa !5
  store i32 0, ptr getelementptr inbounds (i8, ptr @s2n_test_setsockopt_expected, i64 12), align 4, !tbaa !5
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) getelementptr inbounds (i8, ptr @s2n_test_setsockopt_expected, i64 16), ptr noundef nonnull align 8 dereferenceable(24) %41, i64 24, i1 false)
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) getelementptr inbounds (i8, ptr @s2n_test_setsockopt_expected, i64 40), ptr noundef nonnull align 8 dereferenceable(24) %4555, i64 24, i1 false)
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) getelementptr inbounds (i8, ptr @s2n_test_setsockopt_expected, i64 64), ptr noundef nonnull align 8 dereferenceable(24) %43, i64 24, i1 false)
  %4556 = load i32, ptr @test_count, align 4, !tbaa !5
  %4557 = add nsw i32 %4556, 1
  store i32 %4557, ptr @test_count, align 4, !tbaa !5
  %4558 = load ptr, ptr %44, align 8, !tbaa !9
  %4559 = call i32 @s2n_connection_ktls_enable_recv(ptr noundef %4558) #11
  %4560 = icmp eq i32 %4559, -1
  br i1 %4560, label %4561, label %4583

4561:                                             ; preds = %4554
  %4562 = load i32, ptr %1763, align 4, !tbaa !5
  %4563 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4564 = call i32 @s2n_print_stacktrace(ptr noundef %4563) #11
  %4565 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4566 = trunc nuw i8 %4565 to i1
  br i1 %4566, label %4567, label %4571

4567:                                             ; preds = %4561
  %4568 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4569 = call i32 @fileno(ptr noundef %4568) #11
  %4570 = call i32 @isatty(i32 noundef %4569) #11
  %.not672 = icmp eq i32 %4570, 0
  br i1 %.not672, label %4571, label %4572

4571:                                             ; preds = %4567, %4561
  br label %4572

4572:                                             ; preds = %4567, %4571
  %.str.5.sink2240 = phi ptr [ @.str.5, %4571 ], [ @.str.2, %4567 ]
  store i32 %4562, ptr %1763, align 4, !tbaa !5
  %4573 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4574 = load i32, ptr @test_count, align 4, !tbaa !5
  %4575 = load i32, ptr %1709, align 4, !tbaa !5
  %4576 = call ptr @s2n_strerror(i32 noundef %4575, ptr noundef nonnull @.str.4) #11
  %4577 = load i32, ptr %1709, align 4, !tbaa !5
  %4578 = call ptr @s2n_strerror_debug(i32 noundef %4577, ptr noundef nonnull @.str.4) #11
  %4579 = load i32, ptr %1763, align 4, !tbaa !5
  %4580 = call ptr @strerror(i32 noundef %4579) #11
  %4581 = load i32, ptr %1763, align 4, !tbaa !5
  %4582 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4573, ptr noundef nonnull %.str.5.sink2240, i32 noundef %4574, ptr noundef nonnull @.str.77, ptr noundef nonnull @.str.1, i32 noundef 522, ptr noundef %4576, ptr noundef %4578, ptr noundef %4580, i32 noundef %4581) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4583:                                             ; preds = %4554
  %4584 = load i32, ptr @test_count, align 4, !tbaa !5
  %4585 = add nsw i32 %4584, 1
  store i32 %4585, ptr @test_count, align 4, !tbaa !5
  %4586 = load i64, ptr @s2n_test_setsockopt_expected, align 8, !tbaa !75
  %4587 = icmp eq i64 %4586, 1
  br i1 %4587, label %4610, label %4588

4588:                                             ; preds = %4583
  %4589 = load i32, ptr %1763, align 4, !tbaa !5
  %4590 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4591 = call i32 @s2n_print_stacktrace(ptr noundef %4590) #11
  %4592 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4593 = trunc nuw i8 %4592 to i1
  br i1 %4593, label %4594, label %4598

4594:                                             ; preds = %4588
  %4595 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4596 = call i32 @fileno(ptr noundef %4595) #11
  %4597 = call i32 @isatty(i32 noundef %4596) #11
  %.not625 = icmp eq i32 %4597, 0
  br i1 %.not625, label %4598, label %4599

4598:                                             ; preds = %4594, %4588
  br label %4599

4599:                                             ; preds = %4594, %4598
  %.str.5.sink2249 = phi ptr [ @.str.5, %4598 ], [ @.str.2, %4594 ]
  store i32 %4589, ptr %1763, align 4, !tbaa !5
  %4600 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4601 = load i32, ptr @test_count, align 4, !tbaa !5
  %4602 = load i32, ptr %1709, align 4, !tbaa !5
  %4603 = call ptr @s2n_strerror(i32 noundef %4602, ptr noundef nonnull @.str.4) #11
  %4604 = load i32, ptr %1709, align 4, !tbaa !5
  %4605 = call ptr @s2n_strerror_debug(i32 noundef %4604, ptr noundef nonnull @.str.4) #11
  %4606 = load i32, ptr %1763, align 4, !tbaa !5
  %4607 = call ptr @strerror(i32 noundef %4606) #11
  %4608 = load i32, ptr %1763, align 4, !tbaa !5
  %4609 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4600, ptr noundef nonnull %.str.5.sink2249, i32 noundef %4601, ptr noundef nonnull @.str.91, ptr noundef nonnull @.str.1, i32 noundef 523, ptr noundef %4603, ptr noundef %4605, ptr noundef %4607, i32 noundef %4608) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4610:                                             ; preds = %4583
  %4611 = getelementptr inbounds i8, ptr %45, i64 232
  store i64 0, ptr @s2n_test_setsockopt_expected, align 8, !tbaa !73
  store i32 66, ptr getelementptr inbounds (i8, ptr @s2n_test_setsockopt_expected, i64 8), align 8, !tbaa !5
  store i32 0, ptr getelementptr inbounds (i8, ptr @s2n_test_setsockopt_expected, i64 12), align 4, !tbaa !5
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) getelementptr inbounds (i8, ptr @s2n_test_setsockopt_expected, i64 16), ptr noundef nonnull align 8 dereferenceable(24) %40, i64 24, i1 false)
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) getelementptr inbounds (i8, ptr @s2n_test_setsockopt_expected, i64 40), ptr noundef nonnull align 8 dereferenceable(24) %4611, i64 24, i1 false)
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) getelementptr inbounds (i8, ptr @s2n_test_setsockopt_expected, i64 64), ptr noundef nonnull align 8 dereferenceable(24) %42, i64 24, i1 false)
  %4612 = add nsw i32 %4584, 2
  store i32 %4612, ptr @test_count, align 4, !tbaa !5
  %4613 = load ptr, ptr %44, align 8, !tbaa !9
  %4614 = call i32 @s2n_connection_ktls_enable_send(ptr noundef %4613) #11
  %4615 = icmp eq i32 %4614, -1
  br i1 %4615, label %4616, label %4638

4616:                                             ; preds = %4610
  %4617 = load i32, ptr %1763, align 4, !tbaa !5
  %4618 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4619 = call i32 @s2n_print_stacktrace(ptr noundef %4618) #11
  %4620 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4621 = trunc nuw i8 %4620 to i1
  br i1 %4621, label %4622, label %4626

4622:                                             ; preds = %4616
  %4623 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4624 = call i32 @fileno(ptr noundef %4623) #11
  %4625 = call i32 @isatty(i32 noundef %4624) #11
  %.not671 = icmp eq i32 %4625, 0
  br i1 %.not671, label %4626, label %4627

4626:                                             ; preds = %4622, %4616
  br label %4627

4627:                                             ; preds = %4622, %4626
  %.str.5.sink2258 = phi ptr [ @.str.5, %4626 ], [ @.str.2, %4622 ]
  store i32 %4617, ptr %1763, align 4, !tbaa !5
  %4628 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4629 = load i32, ptr @test_count, align 4, !tbaa !5
  %4630 = load i32, ptr %1709, align 4, !tbaa !5
  %4631 = call ptr @s2n_strerror(i32 noundef %4630, ptr noundef nonnull @.str.4) #11
  %4632 = load i32, ptr %1709, align 4, !tbaa !5
  %4633 = call ptr @s2n_strerror_debug(i32 noundef %4632, ptr noundef nonnull @.str.4) #11
  %4634 = load i32, ptr %1763, align 4, !tbaa !5
  %4635 = call ptr @strerror(i32 noundef %4634) #11
  %4636 = load i32, ptr %1763, align 4, !tbaa !5
  %4637 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4628, ptr noundef nonnull %.str.5.sink2258, i32 noundef %4629, ptr noundef nonnull @.str.92, ptr noundef nonnull @.str.1, i32 noundef 535, ptr noundef %4631, ptr noundef %4633, ptr noundef %4635, i32 noundef %4636) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4638:                                             ; preds = %4610
  %4639 = load i32, ptr @test_count, align 4, !tbaa !5
  %4640 = add nsw i32 %4639, 1
  store i32 %4640, ptr @test_count, align 4, !tbaa !5
  %4641 = load i64, ptr @s2n_test_setsockopt_expected, align 8, !tbaa !75
  %4642 = icmp eq i64 %4641, 1
  br i1 %4642, label %4665, label %4643

4643:                                             ; preds = %4638
  %4644 = load i32, ptr %1763, align 4, !tbaa !5
  %4645 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4646 = call i32 @s2n_print_stacktrace(ptr noundef %4645) #11
  %4647 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4648 = trunc nuw i8 %4647 to i1
  br i1 %4648, label %4649, label %4653

4649:                                             ; preds = %4643
  %4650 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4651 = call i32 @fileno(ptr noundef %4650) #11
  %4652 = call i32 @isatty(i32 noundef %4651) #11
  %.not626 = icmp eq i32 %4652, 0
  br i1 %.not626, label %4653, label %4654

4653:                                             ; preds = %4649, %4643
  br label %4654

4654:                                             ; preds = %4649, %4653
  %.str.5.sink2267 = phi ptr [ @.str.5, %4653 ], [ @.str.2, %4649 ]
  store i32 %4644, ptr %1763, align 4, !tbaa !5
  %4655 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4656 = load i32, ptr @test_count, align 4, !tbaa !5
  %4657 = load i32, ptr %1709, align 4, !tbaa !5
  %4658 = call ptr @s2n_strerror(i32 noundef %4657, ptr noundef nonnull @.str.4) #11
  %4659 = load i32, ptr %1709, align 4, !tbaa !5
  %4660 = call ptr @s2n_strerror_debug(i32 noundef %4659, ptr noundef nonnull @.str.4) #11
  %4661 = load i32, ptr %1763, align 4, !tbaa !5
  %4662 = call ptr @strerror(i32 noundef %4661) #11
  %4663 = load i32, ptr %1763, align 4, !tbaa !5
  %4664 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4655, ptr noundef nonnull %.str.5.sink2267, i32 noundef %4656, ptr noundef nonnull @.str.91, ptr noundef nonnull @.str.1, i32 noundef 536, ptr noundef %4658, ptr noundef %4660, ptr noundef %4662, i32 noundef %4663) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4665:                                             ; preds = %4638
  %4666 = load ptr, ptr %44, align 8, !tbaa !9
  %4667 = getelementptr inbounds i8, ptr %4666, i64 232
  store ptr null, ptr %4667, align 8, !tbaa !53
  call void @llvm.lifetime.end.p0(i64 304, ptr nonnull %45) #11
  %4668 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %44) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %44) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %46) #11
  %4669 = call ptr @s2n_connection_new(i32 noundef 1) #11
  store ptr %4669, ptr %46, align 8, !tbaa !9
  %4670 = load i32, ptr @test_count, align 4, !tbaa !5
  %4671 = add nsw i32 %4670, 1
  store i32 %4671, ptr @test_count, align 4, !tbaa !5
  %4672 = call i32 @s2n_test_configure_connection_for_ktls(ptr noundef %4669)
  %4673 = call zeroext i1 @s2n_result_is_ok(i32 %4672)
  br i1 %4673, label %4696, label %4674

4674:                                             ; preds = %4665
  %4675 = load i32, ptr %1763, align 4, !tbaa !5
  %4676 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4677 = call i32 @s2n_print_stacktrace(ptr noundef %4676) #11
  %4678 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4679 = trunc nuw i8 %4678 to i1
  br i1 %4679, label %4680, label %4684

4680:                                             ; preds = %4674
  %4681 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4682 = call i32 @fileno(ptr noundef %4681) #11
  %4683 = call i32 @isatty(i32 noundef %4682) #11
  %.not627 = icmp eq i32 %4683, 0
  br i1 %.not627, label %4684, label %4685

4684:                                             ; preds = %4680, %4674
  br label %4685

4685:                                             ; preds = %4680, %4684
  %.str.5.sink2276 = phi ptr [ @.str.5, %4684 ], [ @.str.2, %4680 ]
  store i32 %4675, ptr %1763, align 4, !tbaa !5
  %4686 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4687 = load i32, ptr @test_count, align 4, !tbaa !5
  %4688 = load i32, ptr %1709, align 4, !tbaa !5
  %4689 = call ptr @s2n_strerror(i32 noundef %4688, ptr noundef nonnull @.str.4) #11
  %4690 = load i32, ptr %1709, align 4, !tbaa !5
  %4691 = call ptr @s2n_strerror_debug(i32 noundef %4690, ptr noundef nonnull @.str.4) #11
  %4692 = load i32, ptr %1763, align 4, !tbaa !5
  %4693 = call ptr @strerror(i32 noundef %4692) #11
  %4694 = load i32, ptr %1763, align 4, !tbaa !5
  %4695 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4686, ptr noundef nonnull %.str.5.sink2276, i32 noundef %4687, ptr noundef nonnull @.str.70, ptr noundef nonnull @.str.1, i32 noundef 544, ptr noundef %4689, ptr noundef %4691, ptr noundef %4693, i32 noundef %4694) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4696:                                             ; preds = %4665
  %4697 = load i32, ptr @test_count, align 4, !tbaa !5
  %4698 = add nsw i32 %4697, 1
  store i32 %4698, ptr @test_count, align 4, !tbaa !5
  %4699 = call i32 @s2n_ktls_set_setsockopt_cb(ptr noundef nonnull @s2n_test_setsockopt_tls_cb) #11
  %4700 = call zeroext i1 @s2n_result_is_ok(i32 %4699)
  br i1 %4700, label %4723, label %4701

4701:                                             ; preds = %4696
  %4702 = load i32, ptr %1763, align 4, !tbaa !5
  %4703 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4704 = call i32 @s2n_print_stacktrace(ptr noundef %4703) #11
  %4705 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4706 = trunc nuw i8 %4705 to i1
  br i1 %4706, label %4707, label %4711

4707:                                             ; preds = %4701
  %4708 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4709 = call i32 @fileno(ptr noundef %4708) #11
  %4710 = call i32 @isatty(i32 noundef %4709) #11
  %.not628 = icmp eq i32 %4710, 0
  br i1 %.not628, label %4711, label %4712

4711:                                             ; preds = %4707, %4701
  br label %4712

4712:                                             ; preds = %4707, %4711
  %.str.5.sink2285 = phi ptr [ @.str.5, %4711 ], [ @.str.2, %4707 ]
  store i32 %4702, ptr %1763, align 4, !tbaa !5
  %4713 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4714 = load i32, ptr @test_count, align 4, !tbaa !5
  %4715 = load i32, ptr %1709, align 4, !tbaa !5
  %4716 = call ptr @s2n_strerror(i32 noundef %4715, ptr noundef nonnull @.str.4) #11
  %4717 = load i32, ptr %1709, align 4, !tbaa !5
  %4718 = call ptr @s2n_strerror_debug(i32 noundef %4717, ptr noundef nonnull @.str.4) #11
  %4719 = load i32, ptr %1763, align 4, !tbaa !5
  %4720 = call ptr @strerror(i32 noundef %4719) #11
  %4721 = load i32, ptr %1763, align 4, !tbaa !5
  %4722 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4713, ptr noundef nonnull %.str.5.sink2285, i32 noundef %4714, ptr noundef nonnull @.str.88, ptr noundef nonnull @.str.1, i32 noundef 545, ptr noundef %4716, ptr noundef %4718, ptr noundef %4720, i32 noundef %4721) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4723:                                             ; preds = %4696
  %4724 = load i32, ptr @test_count, align 4, !tbaa !5
  %4725 = add nsw i32 %4724, 1
  store i32 %4725, ptr @test_count, align 4, !tbaa !5
  %4726 = load ptr, ptr %46, align 8, !tbaa !9
  %4727 = getelementptr inbounds i8, ptr %4726, i64 232
  %4728 = call i32 @s2n_crypto_parameters_free(ptr noundef nonnull %4727) #11
  %4729 = call zeroext i1 @s2n_result_is_ok(i32 %4728)
  br i1 %4729, label %4752, label %4730

4730:                                             ; preds = %4723
  %4731 = load i32, ptr %1763, align 4, !tbaa !5
  %4732 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4733 = call i32 @s2n_print_stacktrace(ptr noundef %4732) #11
  %4734 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4735 = trunc nuw i8 %4734 to i1
  br i1 %4735, label %4736, label %4740

4736:                                             ; preds = %4730
  %4737 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4738 = call i32 @fileno(ptr noundef %4737) #11
  %4739 = call i32 @isatty(i32 noundef %4738) #11
  %.not629 = icmp eq i32 %4739, 0
  br i1 %.not629, label %4740, label %4741

4740:                                             ; preds = %4736, %4730
  br label %4741

4741:                                             ; preds = %4736, %4740
  %.str.5.sink2294 = phi ptr [ @.str.5, %4740 ], [ @.str.2, %4736 ]
  store i32 %4731, ptr %1763, align 4, !tbaa !5
  %4742 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4743 = load i32, ptr @test_count, align 4, !tbaa !5
  %4744 = load i32, ptr %1709, align 4, !tbaa !5
  %4745 = call ptr @s2n_strerror(i32 noundef %4744, ptr noundef nonnull @.str.4) #11
  %4746 = load i32, ptr %1709, align 4, !tbaa !5
  %4747 = call ptr @s2n_strerror_debug(i32 noundef %4746, ptr noundef nonnull @.str.4) #11
  %4748 = load i32, ptr %1763, align 4, !tbaa !5
  %4749 = call ptr @strerror(i32 noundef %4748) #11
  %4750 = load i32, ptr %1763, align 4, !tbaa !5
  %4751 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4742, ptr noundef nonnull %.str.5.sink2294, i32 noundef %4743, ptr noundef nonnull @.str.93, ptr noundef nonnull @.str.1, i32 noundef 546, ptr noundef %4745, ptr noundef %4747, ptr noundef %4749, i32 noundef %4750) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4752:                                             ; preds = %4723
  %4753 = load ptr, ptr %46, align 8, !tbaa !9
  %4754 = getelementptr inbounds i8, ptr %4753, i64 232
  store ptr %39, ptr %4754, align 8, !tbaa !53
  call void @llvm.lifetime.start.p0(i64 304, ptr nonnull %47) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(304) %47, i8 0, i64 304, i1 false)
  %4755 = load i32, ptr @test_count, align 4, !tbaa !5
  %4756 = add nsw i32 %4755, 1
  store i32 %4756, ptr @test_count, align 4, !tbaa !5
  %4757 = call i32 @s2n_prf_generate_key_material(ptr noundef %4753, ptr noundef nonnull %47) #11
  %4758 = call zeroext i1 @s2n_result_is_ok(i32 %4757)
  br i1 %4758, label %4781, label %4759

4759:                                             ; preds = %4752
  %4760 = load i32, ptr %1763, align 4, !tbaa !5
  %4761 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4762 = call i32 @s2n_print_stacktrace(ptr noundef %4761) #11
  %4763 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4764 = trunc nuw i8 %4763 to i1
  br i1 %4764, label %4765, label %4769

4765:                                             ; preds = %4759
  %4766 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4767 = call i32 @fileno(ptr noundef %4766) #11
  %4768 = call i32 @isatty(i32 noundef %4767) #11
  %.not630 = icmp eq i32 %4768, 0
  br i1 %.not630, label %4769, label %4770

4769:                                             ; preds = %4765, %4759
  br label %4770

4770:                                             ; preds = %4765, %4769
  %.str.5.sink2303 = phi ptr [ @.str.5, %4769 ], [ @.str.2, %4765 ]
  store i32 %4760, ptr %1763, align 4, !tbaa !5
  %4771 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4772 = load i32, ptr @test_count, align 4, !tbaa !5
  %4773 = load i32, ptr %1709, align 4, !tbaa !5
  %4774 = call ptr @s2n_strerror(i32 noundef %4773, ptr noundef nonnull @.str.4) #11
  %4775 = load i32, ptr %1709, align 4, !tbaa !5
  %4776 = call ptr @s2n_strerror_debug(i32 noundef %4775, ptr noundef nonnull @.str.4) #11
  %4777 = load i32, ptr %1763, align 4, !tbaa !5
  %4778 = call ptr @strerror(i32 noundef %4777) #11
  %4779 = load i32, ptr %1763, align 4, !tbaa !5
  %4780 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4771, ptr noundef nonnull %.str.5.sink2303, i32 noundef %4772, ptr noundef nonnull @.str.94, ptr noundef nonnull @.str.1, i32 noundef 550, ptr noundef %4774, ptr noundef %4776, ptr noundef %4778, i32 noundef %4779) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4781:                                             ; preds = %4752
  %4782 = getelementptr inbounds i8, ptr %47, i64 232
  store i64 0, ptr @s2n_test_setsockopt_expected, align 8, !tbaa !73
  store i32 55, ptr getelementptr inbounds (i8, ptr @s2n_test_setsockopt_expected, i64 8), align 8, !tbaa !5
  store i32 0, ptr getelementptr inbounds (i8, ptr @s2n_test_setsockopt_expected, i64 12), align 4, !tbaa !5
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) getelementptr inbounds (i8, ptr @s2n_test_setsockopt_expected, i64 16), ptr noundef nonnull align 8 dereferenceable(24) %40, i64 24, i1 false)
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) getelementptr inbounds (i8, ptr @s2n_test_setsockopt_expected, i64 40), ptr noundef nonnull align 8 dereferenceable(24) %4782, i64 24, i1 false)
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) getelementptr inbounds (i8, ptr @s2n_test_setsockopt_expected, i64 64), ptr noundef nonnull align 8 dereferenceable(24) %42, i64 24, i1 false)
  %4783 = load i32, ptr @test_count, align 4, !tbaa !5
  %4784 = add nsw i32 %4783, 1
  store i32 %4784, ptr @test_count, align 4, !tbaa !5
  %4785 = load ptr, ptr %46, align 8, !tbaa !9
  %4786 = call i32 @s2n_connection_ktls_enable_recv(ptr noundef %4785) #11
  %4787 = icmp eq i32 %4786, -1
  br i1 %4787, label %4788, label %4810

4788:                                             ; preds = %4781
  %4789 = load i32, ptr %1763, align 4, !tbaa !5
  %4790 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4791 = call i32 @s2n_print_stacktrace(ptr noundef %4790) #11
  %4792 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4793 = trunc nuw i8 %4792 to i1
  br i1 %4793, label %4794, label %4798

4794:                                             ; preds = %4788
  %4795 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4796 = call i32 @fileno(ptr noundef %4795) #11
  %4797 = call i32 @isatty(i32 noundef %4796) #11
  %.not670 = icmp eq i32 %4797, 0
  br i1 %.not670, label %4798, label %4799

4798:                                             ; preds = %4794, %4788
  br label %4799

4799:                                             ; preds = %4794, %4798
  %.str.5.sink2312 = phi ptr [ @.str.5, %4798 ], [ @.str.2, %4794 ]
  store i32 %4789, ptr %1763, align 4, !tbaa !5
  %4800 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4801 = load i32, ptr @test_count, align 4, !tbaa !5
  %4802 = load i32, ptr %1709, align 4, !tbaa !5
  %4803 = call ptr @s2n_strerror(i32 noundef %4802, ptr noundef nonnull @.str.4) #11
  %4804 = load i32, ptr %1709, align 4, !tbaa !5
  %4805 = call ptr @s2n_strerror_debug(i32 noundef %4804, ptr noundef nonnull @.str.4) #11
  %4806 = load i32, ptr %1763, align 4, !tbaa !5
  %4807 = call ptr @strerror(i32 noundef %4806) #11
  %4808 = load i32, ptr %1763, align 4, !tbaa !5
  %4809 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4800, ptr noundef nonnull %.str.5.sink2312, i32 noundef %4801, ptr noundef nonnull @.str.79, ptr noundef nonnull @.str.1, i32 noundef 562, ptr noundef %4803, ptr noundef %4805, ptr noundef %4807, i32 noundef %4808) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4810:                                             ; preds = %4781
  %4811 = load i32, ptr @test_count, align 4, !tbaa !5
  %4812 = add nsw i32 %4811, 1
  store i32 %4812, ptr @test_count, align 4, !tbaa !5
  %4813 = load i64, ptr @s2n_test_setsockopt_expected, align 8, !tbaa !75
  %4814 = icmp eq i64 %4813, 1
  br i1 %4814, label %4837, label %4815

4815:                                             ; preds = %4810
  %4816 = load i32, ptr %1763, align 4, !tbaa !5
  %4817 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4818 = call i32 @s2n_print_stacktrace(ptr noundef %4817) #11
  %4819 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4820 = trunc nuw i8 %4819 to i1
  br i1 %4820, label %4821, label %4825

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

4825:                                             ; preds = %4821, %4815
  br label %4826

4826:                                             ; preds = %4821, %4825
  %.str.5.sink2321 = phi ptr [ @.str.5, %4825 ], [ @.str.2, %4821 ]
  store i32 %4816, ptr %1763, align 4, !tbaa !5
  %4827 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4828 = load i32, ptr @test_count, align 4, !tbaa !5
  %4829 = load i32, ptr %1709, align 4, !tbaa !5
  %4830 = call ptr @s2n_strerror(i32 noundef %4829, ptr noundef nonnull @.str.4) #11
  %4831 = load i32, ptr %1709, align 4, !tbaa !5
  %4832 = call ptr @s2n_strerror_debug(i32 noundef %4831, ptr noundef nonnull @.str.4) #11
  %4833 = load i32, ptr %1763, align 4, !tbaa !5
  %4834 = call ptr @strerror(i32 noundef %4833) #11
  %4835 = load i32, ptr %1763, align 4, !tbaa !5
  %4836 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4827, ptr noundef nonnull %.str.5.sink2321, i32 noundef %4828, ptr noundef nonnull @.str.91, ptr noundef nonnull @.str.1, i32 noundef 563, ptr noundef %4830, ptr noundef %4832, ptr noundef %4834, i32 noundef %4835) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4837:                                             ; preds = %4810
  %4838 = getelementptr inbounds i8, ptr %47, i64 208
  store i64 0, ptr @s2n_test_setsockopt_expected, align 8, !tbaa !73
  store i32 66, ptr getelementptr inbounds (i8, ptr @s2n_test_setsockopt_expected, i64 8), align 8, !tbaa !5
  store i32 0, ptr getelementptr inbounds (i8, ptr @s2n_test_setsockopt_expected, i64 12), align 4, !tbaa !5
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) getelementptr inbounds (i8, ptr @s2n_test_setsockopt_expected, i64 16), ptr noundef nonnull align 8 dereferenceable(24) %41, i64 24, i1 false)
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) getelementptr inbounds (i8, ptr @s2n_test_setsockopt_expected, i64 40), ptr noundef nonnull align 8 dereferenceable(24) %4838, i64 24, i1 false)
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) getelementptr inbounds (i8, ptr @s2n_test_setsockopt_expected, i64 64), ptr noundef nonnull align 8 dereferenceable(24) %43, i64 24, i1 false)
  %4839 = add nsw i32 %4811, 2
  store i32 %4839, ptr @test_count, align 4, !tbaa !5
  %4840 = load ptr, ptr %46, align 8, !tbaa !9
  %4841 = call i32 @s2n_connection_ktls_enable_send(ptr noundef %4840) #11
  %4842 = icmp eq i32 %4841, -1
  br i1 %4842, label %4843, label %4865

4843:                                             ; preds = %4837
  %4844 = load i32, ptr %1763, align 4, !tbaa !5
  %4845 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4846 = call i32 @s2n_print_stacktrace(ptr noundef %4845) #11
  %4847 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4848 = trunc nuw i8 %4847 to i1
  br i1 %4848, label %4849, label %4853

4849:                                             ; preds = %4843
  %4850 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4851 = call i32 @fileno(ptr noundef %4850) #11
  %4852 = call i32 @isatty(i32 noundef %4851) #11
  %.not669 = icmp eq i32 %4852, 0
  br i1 %.not669, label %4853, label %4854

4853:                                             ; preds = %4849, %4843
  br label %4854

4854:                                             ; preds = %4849, %4853
  %.str.5.sink2330 = phi ptr [ @.str.5, %4853 ], [ @.str.2, %4849 ]
  store i32 %4844, ptr %1763, align 4, !tbaa !5
  %4855 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4856 = load i32, ptr @test_count, align 4, !tbaa !5
  %4857 = load i32, ptr %1709, align 4, !tbaa !5
  %4858 = call ptr @s2n_strerror(i32 noundef %4857, ptr noundef nonnull @.str.4) #11
  %4859 = load i32, ptr %1709, align 4, !tbaa !5
  %4860 = call ptr @s2n_strerror_debug(i32 noundef %4859, ptr noundef nonnull @.str.4) #11
  %4861 = load i32, ptr %1763, align 4, !tbaa !5
  %4862 = call ptr @strerror(i32 noundef %4861) #11
  %4863 = load i32, ptr %1763, align 4, !tbaa !5
  %4864 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4855, ptr noundef nonnull %.str.5.sink2330, i32 noundef %4856, ptr noundef nonnull @.str.95, ptr noundef nonnull @.str.1, i32 noundef 575, ptr noundef %4858, ptr noundef %4860, ptr noundef %4862, i32 noundef %4863) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4865:                                             ; preds = %4837
  %4866 = load i32, ptr @test_count, align 4, !tbaa !5
  %4867 = add nsw i32 %4866, 1
  store i32 %4867, ptr @test_count, align 4, !tbaa !5
  %4868 = load i64, ptr @s2n_test_setsockopt_expected, align 8, !tbaa !75
  %4869 = icmp eq i64 %4868, 1
  br i1 %4869, label %4892, label %4870

4870:                                             ; preds = %4865
  %4871 = load i32, ptr %1763, align 4, !tbaa !5
  %4872 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4873 = call i32 @s2n_print_stacktrace(ptr noundef %4872) #11
  %4874 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4875 = trunc nuw i8 %4874 to i1
  br i1 %4875, label %4876, label %4880

4876:                                             ; preds = %4870
  %4877 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4878 = call i32 @fileno(ptr noundef %4877) #11
  %4879 = call i32 @isatty(i32 noundef %4878) #11
  %.not632 = icmp eq i32 %4879, 0
  br i1 %.not632, label %4880, label %4881

4880:                                             ; preds = %4876, %4870
  br label %4881

4881:                                             ; preds = %4876, %4880
  %.str.5.sink2339 = phi ptr [ @.str.5, %4880 ], [ @.str.2, %4876 ]
  store i32 %4871, ptr %1763, align 4, !tbaa !5
  %4882 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4883 = load i32, ptr @test_count, align 4, !tbaa !5
  %4884 = load i32, ptr %1709, align 4, !tbaa !5
  %4885 = call ptr @s2n_strerror(i32 noundef %4884, ptr noundef nonnull @.str.4) #11
  %4886 = load i32, ptr %1709, align 4, !tbaa !5
  %4887 = call ptr @s2n_strerror_debug(i32 noundef %4886, ptr noundef nonnull @.str.4) #11
  %4888 = load i32, ptr %1763, align 4, !tbaa !5
  %4889 = call ptr @strerror(i32 noundef %4888) #11
  %4890 = load i32, ptr %1763, align 4, !tbaa !5
  %4891 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4882, ptr noundef nonnull %.str.5.sink2339, i32 noundef %4883, ptr noundef nonnull @.str.91, ptr noundef nonnull @.str.1, i32 noundef 576, ptr noundef %4885, ptr noundef %4887, ptr noundef %4889, i32 noundef %4890) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4892:                                             ; preds = %4865
  %4893 = load ptr, ptr %46, align 8, !tbaa !9
  %4894 = getelementptr inbounds i8, ptr %4893, i64 232
  store ptr null, ptr %4894, align 8, !tbaa !53
  call void @llvm.lifetime.end.p0(i64 304, ptr nonnull %47) #11
  %4895 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %46) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %46) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %43) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %42) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %41) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %40) #11
  call void @llvm.lifetime.end.p0(i64 936, ptr nonnull %39) #11
  call void @llvm.lifetime.end.p0(i64 104, ptr nonnull %38) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %37) #11
  call void @llvm.lifetime.end.p0(i64 104, ptr nonnull %36) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %48) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %49) #11
  %4896 = call ptr @s2n_connection_new(i32 noundef 0) #11
  store ptr %4896, ptr %49, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %50) #11
  %4897 = call ptr @s2n_connection_new(i32 noundef 1) #11
  store ptr %4897, ptr %50, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %51) #11
  %4898 = call ptr @s2n_config_new() #11
  store ptr %4898, ptr %51, align 8, !tbaa !9
  %4899 = load i32, ptr @test_count, align 4, !tbaa !5
  %4900 = add nsw i32 %4899, 1
  store i32 %4900, ptr @test_count, align 4, !tbaa !5
  %4901 = call i32 @s2n_test_cert_chain_and_key_new(ptr noundef nonnull %48, ptr noundef nonnull @.str.96, ptr noundef nonnull @.str.97) #11
  %4902 = icmp eq i32 %4901, -1
  br i1 %4902, label %4903, label %4925

4903:                                             ; preds = %4892
  %4904 = load i32, ptr %1763, align 4, !tbaa !5
  %4905 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4906 = call i32 @s2n_print_stacktrace(ptr noundef %4905) #11
  %4907 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4908 = trunc nuw i8 %4907 to i1
  br i1 %4908, label %4909, label %4913

4909:                                             ; preds = %4903
  %4910 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4911 = call i32 @fileno(ptr noundef %4910) #11
  %4912 = call i32 @isatty(i32 noundef %4911) #11
  %.not668 = icmp eq i32 %4912, 0
  br i1 %.not668, label %4913, label %4914

4913:                                             ; preds = %4909, %4903
  br label %4914

4914:                                             ; preds = %4909, %4913
  %.str.5.sink2348 = phi ptr [ @.str.5, %4913 ], [ @.str.2, %4909 ]
  store i32 %4904, ptr %1763, align 4, !tbaa !5
  %4915 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4916 = load i32, ptr @test_count, align 4, !tbaa !5
  %4917 = load i32, ptr %1709, align 4, !tbaa !5
  %4918 = call ptr @s2n_strerror(i32 noundef %4917, ptr noundef nonnull @.str.4) #11
  %4919 = load i32, ptr %1709, align 4, !tbaa !5
  %4920 = call ptr @s2n_strerror_debug(i32 noundef %4919, ptr noundef nonnull @.str.4) #11
  %4921 = load i32, ptr %1763, align 4, !tbaa !5
  %4922 = call ptr @strerror(i32 noundef %4921) #11
  %4923 = load i32, ptr %1763, align 4, !tbaa !5
  %4924 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4915, ptr noundef nonnull %.str.5.sink2348, i32 noundef %4916, ptr noundef nonnull @.str.98, ptr noundef nonnull @.str.1, i32 noundef 595, ptr noundef %4918, ptr noundef %4920, ptr noundef %4922, i32 noundef %4923) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4925:                                             ; preds = %4892
  %4926 = load i32, ptr @test_count, align 4, !tbaa !5
  %4927 = add nsw i32 %4926, 1
  store i32 %4927, ptr @test_count, align 4, !tbaa !5
  %4928 = load ptr, ptr %51, align 8, !tbaa !9
  %4929 = load ptr, ptr %48, align 8, !tbaa !9
  %4930 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %4928, ptr noundef %4929) #11
  %4931 = icmp eq i32 %4930, -1
  br i1 %4931, label %4932, label %4954

4932:                                             ; preds = %4925
  %4933 = load i32, ptr %1763, align 4, !tbaa !5
  %4934 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4935 = call i32 @s2n_print_stacktrace(ptr noundef %4934) #11
  %4936 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4937 = trunc nuw i8 %4936 to i1
  br i1 %4937, label %4938, label %4942

4938:                                             ; preds = %4932
  %4939 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4940 = call i32 @fileno(ptr noundef %4939) #11
  %4941 = call i32 @isatty(i32 noundef %4940) #11
  %.not667 = icmp eq i32 %4941, 0
  br i1 %.not667, label %4942, label %4943

4942:                                             ; preds = %4938, %4932
  br label %4943

4943:                                             ; preds = %4938, %4942
  %.str.5.sink2357 = phi ptr [ @.str.5, %4942 ], [ @.str.2, %4938 ]
  store i32 %4933, ptr %1763, align 4, !tbaa !5
  %4944 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4945 = load i32, ptr @test_count, align 4, !tbaa !5
  %4946 = load i32, ptr %1709, align 4, !tbaa !5
  %4947 = call ptr @s2n_strerror(i32 noundef %4946, ptr noundef nonnull @.str.4) #11
  %4948 = load i32, ptr %1709, align 4, !tbaa !5
  %4949 = call ptr @s2n_strerror_debug(i32 noundef %4948, ptr noundef nonnull @.str.4) #11
  %4950 = load i32, ptr %1763, align 4, !tbaa !5
  %4951 = call ptr @strerror(i32 noundef %4950) #11
  %4952 = load i32, ptr %1763, align 4, !tbaa !5
  %4953 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4944, ptr noundef nonnull %.str.5.sink2357, i32 noundef %4945, ptr noundef nonnull @.str.99, ptr noundef nonnull @.str.1, i32 noundef 596, ptr noundef %4947, ptr noundef %4949, ptr noundef %4951, i32 noundef %4952) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4954:                                             ; preds = %4925
  %4955 = load i32, ptr @test_count, align 4, !tbaa !5
  %4956 = add nsw i32 %4955, 1
  store i32 %4956, ptr @test_count, align 4, !tbaa !5
  %4957 = load ptr, ptr %51, align 8, !tbaa !9
  %4958 = call i32 @s2n_config_disable_x509_verification(ptr noundef %4957) #11
  %4959 = icmp eq i32 %4958, -1
  br i1 %4959, label %4960, label %4982

4960:                                             ; preds = %4954
  %4961 = load i32, ptr %1763, align 4, !tbaa !5
  %4962 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4963 = call i32 @s2n_print_stacktrace(ptr noundef %4962) #11
  %4964 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4965 = trunc nuw i8 %4964 to i1
  br i1 %4965, label %4966, label %4970

4966:                                             ; preds = %4960
  %4967 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4968 = call i32 @fileno(ptr noundef %4967) #11
  %4969 = call i32 @isatty(i32 noundef %4968) #11
  %.not666 = icmp eq i32 %4969, 0
  br i1 %.not666, label %4970, label %4971

4970:                                             ; preds = %4966, %4960
  br label %4971

4971:                                             ; preds = %4966, %4970
  %.str.5.sink2366 = phi ptr [ @.str.5, %4970 ], [ @.str.2, %4966 ]
  store i32 %4961, ptr %1763, align 4, !tbaa !5
  %4972 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4973 = load i32, ptr @test_count, align 4, !tbaa !5
  %4974 = load i32, ptr %1709, align 4, !tbaa !5
  %4975 = call ptr @s2n_strerror(i32 noundef %4974, ptr noundef nonnull @.str.4) #11
  %4976 = load i32, ptr %1709, align 4, !tbaa !5
  %4977 = call ptr @s2n_strerror_debug(i32 noundef %4976, ptr noundef nonnull @.str.4) #11
  %4978 = load i32, ptr %1763, align 4, !tbaa !5
  %4979 = call ptr @strerror(i32 noundef %4978) #11
  %4980 = load i32, ptr %1763, align 4, !tbaa !5
  %4981 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4972, ptr noundef nonnull %.str.5.sink2366, i32 noundef %4973, ptr noundef nonnull @.str.100, ptr noundef nonnull @.str.1, i32 noundef 597, ptr noundef %4975, ptr noundef %4977, ptr noundef %4979, i32 noundef %4980) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4982:                                             ; preds = %4954
  %4983 = load i32, ptr @test_count, align 4, !tbaa !5
  %4984 = add nsw i32 %4983, 1
  store i32 %4984, ptr @test_count, align 4, !tbaa !5
  %4985 = load ptr, ptr %51, align 8, !tbaa !9
  %4986 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %4985, ptr noundef nonnull @.str.101) #11
  %4987 = icmp eq i32 %4986, -1
  br i1 %4987, label %4988, label %5010

4988:                                             ; preds = %4982
  %4989 = load i32, ptr %1763, align 4, !tbaa !5
  %4990 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4991 = call i32 @s2n_print_stacktrace(ptr noundef %4990) #11
  %4992 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4993 = trunc nuw i8 %4992 to i1
  br i1 %4993, label %4994, label %4998

4994:                                             ; preds = %4988
  %4995 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4996 = call i32 @fileno(ptr noundef %4995) #11
  %4997 = call i32 @isatty(i32 noundef %4996) #11
  %.not665 = icmp eq i32 %4997, 0
  br i1 %.not665, label %4998, label %4999

4998:                                             ; preds = %4994, %4988
  br label %4999

4999:                                             ; preds = %4994, %4998
  %.str.5.sink2375 = phi ptr [ @.str.5, %4998 ], [ @.str.2, %4994 ]
  store i32 %4989, ptr %1763, align 4, !tbaa !5
  %5000 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5001 = load i32, ptr @test_count, align 4, !tbaa !5
  %5002 = load i32, ptr %1709, align 4, !tbaa !5
  %5003 = call ptr @s2n_strerror(i32 noundef %5002, ptr noundef nonnull @.str.4) #11
  %5004 = load i32, ptr %1709, align 4, !tbaa !5
  %5005 = call ptr @s2n_strerror_debug(i32 noundef %5004, ptr noundef nonnull @.str.4) #11
  %5006 = load i32, ptr %1763, align 4, !tbaa !5
  %5007 = call ptr @strerror(i32 noundef %5006) #11
  %5008 = load i32, ptr %1763, align 4, !tbaa !5
  %5009 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5000, ptr noundef nonnull %.str.5.sink2375, i32 noundef %5001, ptr noundef nonnull @.str.102, ptr noundef nonnull @.str.1, i32 noundef 598, ptr noundef %5003, ptr noundef %5005, ptr noundef %5007, i32 noundef %5008) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5010:                                             ; preds = %4982
  %5011 = load i32, ptr @test_count, align 4, !tbaa !5
  %5012 = add nsw i32 %5011, 1
  store i32 %5012, ptr @test_count, align 4, !tbaa !5
  %5013 = call i32 @s2n_ktls_set_setsockopt_cb(ptr noundef nonnull @s2n_test_setsockopt_noop) #11
  %5014 = call zeroext i1 @s2n_result_is_ok(i32 %5013)
  br i1 %5014, label %5037, label %5015

5015:                                             ; preds = %5010
  %5016 = load i32, ptr %1763, align 4, !tbaa !5
  %5017 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5018 = call i32 @s2n_print_stacktrace(ptr noundef %5017) #11
  %5019 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5020 = trunc nuw i8 %5019 to i1
  br i1 %5020, label %5021, label %5025

5021:                                             ; preds = %5015
  %5022 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5023 = call i32 @fileno(ptr noundef %5022) #11
  %5024 = call i32 @isatty(i32 noundef %5023) #11
  %.not633 = icmp eq i32 %5024, 0
  br i1 %.not633, label %5025, label %5026

5025:                                             ; preds = %5021, %5015
  br label %5026

5026:                                             ; preds = %5021, %5025
  %.str.5.sink2384 = phi ptr [ @.str.5, %5025 ], [ @.str.2, %5021 ]
  store i32 %5016, ptr %1763, align 4, !tbaa !5
  %5027 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5028 = load i32, ptr @test_count, align 4, !tbaa !5
  %5029 = load i32, ptr %1709, align 4, !tbaa !5
  %5030 = call ptr @s2n_strerror(i32 noundef %5029, ptr noundef nonnull @.str.4) #11
  %5031 = load i32, ptr %1709, align 4, !tbaa !5
  %5032 = call ptr @s2n_strerror_debug(i32 noundef %5031, ptr noundef nonnull @.str.4) #11
  %5033 = load i32, ptr %1763, align 4, !tbaa !5
  %5034 = call ptr @strerror(i32 noundef %5033) #11
  %5035 = load i32, ptr %1763, align 4, !tbaa !5
  %5036 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5027, ptr noundef nonnull %.str.5.sink2384, i32 noundef %5028, ptr noundef nonnull @.str.103, ptr noundef nonnull @.str.1, i32 noundef 599, ptr noundef %5030, ptr noundef %5032, ptr noundef %5034, i32 noundef %5035) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5037:                                             ; preds = %5010
  %5038 = load i32, ptr @test_count, align 4, !tbaa !5
  %5039 = add nsw i32 %5038, 1
  store i32 %5039, ptr @test_count, align 4, !tbaa !5
  %5040 = load ptr, ptr %50, align 8, !tbaa !9
  %5041 = load ptr, ptr %51, align 8, !tbaa !9
  %5042 = call i32 @s2n_connection_set_config(ptr noundef %5040, ptr noundef %5041) #11
  %5043 = icmp eq i32 %5042, -1
  br i1 %5043, label %5044, label %5066

5044:                                             ; preds = %5037
  %5045 = load i32, ptr %1763, align 4, !tbaa !5
  %5046 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5047 = call i32 @s2n_print_stacktrace(ptr noundef %5046) #11
  %5048 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5049 = trunc nuw i8 %5048 to i1
  br i1 %5049, label %5050, label %5054

5050:                                             ; preds = %5044
  %5051 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5052 = call i32 @fileno(ptr noundef %5051) #11
  %5053 = call i32 @isatty(i32 noundef %5052) #11
  %.not664 = icmp eq i32 %5053, 0
  br i1 %.not664, label %5054, label %5055

5054:                                             ; preds = %5050, %5044
  br label %5055

5055:                                             ; preds = %5050, %5054
  %.str.5.sink2393 = phi ptr [ @.str.5, %5054 ], [ @.str.2, %5050 ]
  store i32 %5045, ptr %1763, align 4, !tbaa !5
  %5056 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5057 = load i32, ptr @test_count, align 4, !tbaa !5
  %5058 = load i32, ptr %1709, align 4, !tbaa !5
  %5059 = call ptr @s2n_strerror(i32 noundef %5058, ptr noundef nonnull @.str.4) #11
  %5060 = load i32, ptr %1709, align 4, !tbaa !5
  %5061 = call ptr @s2n_strerror_debug(i32 noundef %5060, ptr noundef nonnull @.str.4) #11
  %5062 = load i32, ptr %1763, align 4, !tbaa !5
  %5063 = call ptr @strerror(i32 noundef %5062) #11
  %5064 = load i32, ptr %1763, align 4, !tbaa !5
  %5065 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5056, ptr noundef nonnull %.str.5.sink2393, i32 noundef %5057, ptr noundef nonnull @.str.104, ptr noundef nonnull @.str.1, i32 noundef 600, ptr noundef %5059, ptr noundef %5061, ptr noundef %5063, i32 noundef %5064) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5066:                                             ; preds = %5037
  %5067 = load i32, ptr @test_count, align 4, !tbaa !5
  %5068 = add nsw i32 %5067, 1
  store i32 %5068, ptr @test_count, align 4, !tbaa !5
  %5069 = load ptr, ptr %49, align 8, !tbaa !9
  %5070 = load ptr, ptr %51, align 8, !tbaa !9
  %5071 = call i32 @s2n_connection_set_config(ptr noundef %5069, ptr noundef %5070) #11
  %5072 = icmp eq i32 %5071, -1
  br i1 %5072, label %5073, label %5095

5073:                                             ; preds = %5066
  %5074 = load i32, ptr %1763, align 4, !tbaa !5
  %5075 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5076 = call i32 @s2n_print_stacktrace(ptr noundef %5075) #11
  %5077 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5078 = trunc nuw i8 %5077 to i1
  br i1 %5078, label %5079, label %5083

5079:                                             ; preds = %5073
  %5080 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5081 = call i32 @fileno(ptr noundef %5080) #11
  %5082 = call i32 @isatty(i32 noundef %5081) #11
  %.not663 = icmp eq i32 %5082, 0
  br i1 %.not663, label %5083, label %5084

5083:                                             ; preds = %5079, %5073
  br label %5084

5084:                                             ; preds = %5079, %5083
  %.str.5.sink2402 = phi ptr [ @.str.5, %5083 ], [ @.str.2, %5079 ]
  store i32 %5074, ptr %1763, align 4, !tbaa !5
  %5085 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5086 = load i32, ptr @test_count, align 4, !tbaa !5
  %5087 = load i32, ptr %1709, align 4, !tbaa !5
  %5088 = call ptr @s2n_strerror(i32 noundef %5087, ptr noundef nonnull @.str.4) #11
  %5089 = load i32, ptr %1709, align 4, !tbaa !5
  %5090 = call ptr @s2n_strerror_debug(i32 noundef %5089, ptr noundef nonnull @.str.4) #11
  %5091 = load i32, ptr %1763, align 4, !tbaa !5
  %5092 = call ptr @strerror(i32 noundef %5091) #11
  %5093 = load i32, ptr %1763, align 4, !tbaa !5
  %5094 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5085, ptr noundef nonnull %.str.5.sink2402, i32 noundef %5086, ptr noundef nonnull @.str.105, ptr noundef nonnull @.str.1, i32 noundef 601, ptr noundef %5088, ptr noundef %5090, ptr noundef %5092, i32 noundef %5093) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5095:                                             ; preds = %5066
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %52) #11
  store i64 0, ptr %52, align 8
  %5096 = load i32, ptr @test_count, align 4, !tbaa !5
  %5097 = add nsw i32 %5096, 1
  store i32 %5097, ptr @test_count, align 4, !tbaa !5
  %5098 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef nonnull %52) #11
  %5099 = icmp eq i32 %5098, -1
  br i1 %5099, label %5100, label %5122

5100:                                             ; preds = %5095
  %5101 = load i32, ptr %1763, align 4, !tbaa !5
  %5102 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5103 = call i32 @s2n_print_stacktrace(ptr noundef %5102) #11
  %5104 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5105 = trunc nuw i8 %5104 to i1
  br i1 %5105, label %5106, label %5110

5106:                                             ; preds = %5100
  %5107 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5108 = call i32 @fileno(ptr noundef %5107) #11
  %5109 = call i32 @isatty(i32 noundef %5108) #11
  %.not662 = icmp eq i32 %5109, 0
  br i1 %.not662, label %5110, label %5111

5110:                                             ; preds = %5106, %5100
  br label %5111

5111:                                             ; preds = %5106, %5110
  %.str.5.sink2411 = phi ptr [ @.str.5, %5110 ], [ @.str.2, %5106 ]
  store i32 %5101, ptr %1763, align 4, !tbaa !5
  %5112 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5113 = load i32, ptr @test_count, align 4, !tbaa !5
  %5114 = load i32, ptr %1709, align 4, !tbaa !5
  %5115 = call ptr @s2n_strerror(i32 noundef %5114, ptr noundef nonnull @.str.4) #11
  %5116 = load i32, ptr %1709, align 4, !tbaa !5
  %5117 = call ptr @s2n_strerror_debug(i32 noundef %5116, ptr noundef nonnull @.str.4) #11
  %5118 = load i32, ptr %1763, align 4, !tbaa !5
  %5119 = call ptr @strerror(i32 noundef %5118) #11
  %5120 = load i32, ptr %1763, align 4, !tbaa !5
  %5121 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5112, ptr noundef nonnull %.str.5.sink2411, i32 noundef %5113, ptr noundef nonnull @.str.106, ptr noundef nonnull @.str.1, i32 noundef 606, ptr noundef %5115, ptr noundef %5117, ptr noundef %5119, i32 noundef %5120) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5122:                                             ; preds = %5095
  %5123 = load i32, ptr @test_count, align 4, !tbaa !5
  %5124 = add nsw i32 %5123, 1
  store i32 %5124, ptr @test_count, align 4, !tbaa !5
  %5125 = load ptr, ptr %50, align 8, !tbaa !9
  %5126 = load ptr, ptr %49, align 8, !tbaa !9
  %5127 = call i32 @s2n_connections_set_io_pair(ptr noundef %5125, ptr noundef %5126, ptr noundef nonnull %52) #11
  %5128 = icmp eq i32 %5127, -1
  br i1 %5128, label %5129, label %5151

5129:                                             ; preds = %5122
  %5130 = load i32, ptr %1763, align 4, !tbaa !5
  %5131 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5132 = call i32 @s2n_print_stacktrace(ptr noundef %5131) #11
  %5133 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5134 = trunc nuw i8 %5133 to i1
  br i1 %5134, label %5135, label %5139

5135:                                             ; preds = %5129
  %5136 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5137 = call i32 @fileno(ptr noundef %5136) #11
  %5138 = call i32 @isatty(i32 noundef %5137) #11
  %.not661 = icmp eq i32 %5138, 0
  br i1 %.not661, label %5139, label %5140

5139:                                             ; preds = %5135, %5129
  br label %5140

5140:                                             ; preds = %5135, %5139
  %.str.5.sink2420 = phi ptr [ @.str.5, %5139 ], [ @.str.2, %5135 ]
  store i32 %5130, ptr %1763, align 4, !tbaa !5
  %5141 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5142 = load i32, ptr @test_count, align 4, !tbaa !5
  %5143 = load i32, ptr %1709, align 4, !tbaa !5
  %5144 = call ptr @s2n_strerror(i32 noundef %5143, ptr noundef nonnull @.str.4) #11
  %5145 = load i32, ptr %1709, align 4, !tbaa !5
  %5146 = call ptr @s2n_strerror_debug(i32 noundef %5145, ptr noundef nonnull @.str.4) #11
  %5147 = load i32, ptr %1763, align 4, !tbaa !5
  %5148 = call ptr @strerror(i32 noundef %5147) #11
  %5149 = load i32, ptr %1763, align 4, !tbaa !5
  %5150 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5141, ptr noundef nonnull %.str.5.sink2420, i32 noundef %5142, ptr noundef nonnull @.str.107, ptr noundef nonnull @.str.1, i32 noundef 607, ptr noundef %5144, ptr noundef %5146, ptr noundef %5148, i32 noundef %5149) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5151:                                             ; preds = %5122
  %5152 = load i32, ptr @test_count, align 4, !tbaa !5
  %5153 = add nsw i32 %5152, 1
  store i32 %5153, ptr @test_count, align 4, !tbaa !5
  %5154 = load ptr, ptr %49, align 8, !tbaa !9
  %5155 = load ptr, ptr %50, align 8, !tbaa !9
  %5156 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %5154, ptr noundef %5155) #11
  %5157 = icmp eq i32 %5156, -1
  br i1 %5157, label %5158, label %5180

5158:                                             ; preds = %5151
  %5159 = load i32, ptr %1763, align 4, !tbaa !5
  %5160 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5161 = call i32 @s2n_print_stacktrace(ptr noundef %5160) #11
  %5162 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5163 = trunc nuw i8 %5162 to i1
  br i1 %5163, label %5164, label %5168

5164:                                             ; preds = %5158
  %5165 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5166 = call i32 @fileno(ptr noundef %5165) #11
  %5167 = call i32 @isatty(i32 noundef %5166) #11
  %.not660 = icmp eq i32 %5167, 0
  br i1 %.not660, label %5168, label %5169

5168:                                             ; preds = %5164, %5158
  br label %5169

5169:                                             ; preds = %5164, %5168
  %.str.5.sink2429 = phi ptr [ @.str.5, %5168 ], [ @.str.2, %5164 ]
  store i32 %5159, ptr %1763, align 4, !tbaa !5
  %5170 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5171 = load i32, ptr @test_count, align 4, !tbaa !5
  %5172 = load i32, ptr %1709, align 4, !tbaa !5
  %5173 = call ptr @s2n_strerror(i32 noundef %5172, ptr noundef nonnull @.str.4) #11
  %5174 = load i32, ptr %1709, align 4, !tbaa !5
  %5175 = call ptr @s2n_strerror_debug(i32 noundef %5174, ptr noundef nonnull @.str.4) #11
  %5176 = load i32, ptr %1763, align 4, !tbaa !5
  %5177 = call ptr @strerror(i32 noundef %5176) #11
  %5178 = load i32, ptr %1763, align 4, !tbaa !5
  %5179 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5170, ptr noundef nonnull %.str.5.sink2429, i32 noundef %5171, ptr noundef nonnull @.str.108, ptr noundef nonnull @.str.1, i32 noundef 608, ptr noundef %5173, ptr noundef %5175, ptr noundef %5177, i32 noundef %5178) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5180:                                             ; preds = %5151
  %5181 = load i32, ptr @test_count, align 4, !tbaa !5
  %5182 = add nsw i32 %5181, 1
  store i32 %5182, ptr @test_count, align 4, !tbaa !5
  %5183 = load ptr, ptr %49, align 8, !tbaa !9
  %5184 = getelementptr inbounds i8, ptr %5183, i64 220
  %5185 = load i8, ptr %5184, align 4, !tbaa !52
  %5186 = icmp eq i8 %5185, 33
  br i1 %5186, label %5209, label %5187

5187:                                             ; preds = %5180
  %5188 = load i32, ptr %1763, align 4, !tbaa !5
  %5189 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5190 = call i32 @s2n_print_stacktrace(ptr noundef %5189) #11
  %5191 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5192 = trunc nuw i8 %5191 to i1
  br i1 %5192, label %5193, label %5197

5193:                                             ; preds = %5187
  %5194 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5195 = call i32 @fileno(ptr noundef %5194) #11
  %5196 = call i32 @isatty(i32 noundef %5195) #11
  %.not634 = icmp eq i32 %5196, 0
  br i1 %.not634, label %5197, label %5198

5197:                                             ; preds = %5193, %5187
  br label %5198

5198:                                             ; preds = %5193, %5197
  %.str.5.sink2438 = phi ptr [ @.str.5, %5197 ], [ @.str.2, %5193 ]
  store i32 %5188, ptr %1763, align 4, !tbaa !5
  %5199 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5200 = load i32, ptr @test_count, align 4, !tbaa !5
  %5201 = load i32, ptr %1709, align 4, !tbaa !5
  %5202 = call ptr @s2n_strerror(i32 noundef %5201, ptr noundef nonnull @.str.4) #11
  %5203 = load i32, ptr %1709, align 4, !tbaa !5
  %5204 = call ptr @s2n_strerror_debug(i32 noundef %5203, ptr noundef nonnull @.str.4) #11
  %5205 = load i32, ptr %1763, align 4, !tbaa !5
  %5206 = call ptr @strerror(i32 noundef %5205) #11
  %5207 = load i32, ptr %1763, align 4, !tbaa !5
  %5208 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5199, ptr noundef nonnull %.str.5.sink2438, i32 noundef %5200, ptr noundef nonnull @.str.109, ptr noundef nonnull @.str.1, i32 noundef 609, ptr noundef %5202, ptr noundef %5204, ptr noundef %5206, i32 noundef %5207) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5209:                                             ; preds = %5180
  %5210 = add nsw i32 %5181, 2
  store i32 %5210, ptr @test_count, align 4, !tbaa !5
  %5211 = call i32 @s2n_connection_ktls_enable_send(ptr noundef nonnull %5183) #11
  %5212 = icmp eq i32 %5211, -1
  br i1 %5212, label %5213, label %5235

5213:                                             ; preds = %5209
  %5214 = load i32, ptr %1763, align 4, !tbaa !5
  %5215 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5216 = call i32 @s2n_print_stacktrace(ptr noundef %5215) #11
  %5217 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5218 = trunc nuw i8 %5217 to i1
  br i1 %5218, label %5219, label %5223

5219:                                             ; preds = %5213
  %5220 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5221 = call i32 @fileno(ptr noundef %5220) #11
  %5222 = call i32 @isatty(i32 noundef %5221) #11
  %.not659 = icmp eq i32 %5222, 0
  br i1 %.not659, label %5223, label %5224

5223:                                             ; preds = %5219, %5213
  br label %5224

5224:                                             ; preds = %5219, %5223
  %.str.5.sink2447 = phi ptr [ @.str.5, %5223 ], [ @.str.2, %5219 ]
  store i32 %5214, ptr %1763, align 4, !tbaa !5
  %5225 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5226 = load i32, ptr @test_count, align 4, !tbaa !5
  %5227 = load i32, ptr %1709, align 4, !tbaa !5
  %5228 = call ptr @s2n_strerror(i32 noundef %5227, ptr noundef nonnull @.str.4) #11
  %5229 = load i32, ptr %1709, align 4, !tbaa !5
  %5230 = call ptr @s2n_strerror_debug(i32 noundef %5229, ptr noundef nonnull @.str.4) #11
  %5231 = load i32, ptr %1763, align 4, !tbaa !5
  %5232 = call ptr @strerror(i32 noundef %5231) #11
  %5233 = load i32, ptr %1763, align 4, !tbaa !5
  %5234 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5225, ptr noundef nonnull %.str.5.sink2447, i32 noundef %5226, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 612, ptr noundef %5228, ptr noundef %5230, ptr noundef %5232, i32 noundef %5233) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5235:                                             ; preds = %5209
  %5236 = load i32, ptr @test_count, align 4, !tbaa !5
  %5237 = add nsw i32 %5236, 1
  store i32 %5237, ptr @test_count, align 4, !tbaa !5
  %5238 = load ptr, ptr %49, align 8, !tbaa !9
  %5239 = load i32, ptr %5238, align 8
  %5240 = and i32 %5239, 262144
  %.not635 = icmp eq i32 %5240, 0
  br i1 %.not635, label %5241, label %5263

5241:                                             ; preds = %5235
  %5242 = load i32, ptr %1763, align 4, !tbaa !5
  %5243 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5244 = call i32 @s2n_print_stacktrace(ptr noundef %5243) #11
  %5245 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5246 = trunc nuw i8 %5245 to i1
  br i1 %5246, label %5247, label %5251

5247:                                             ; preds = %5241
  %5248 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5249 = call i32 @fileno(ptr noundef %5248) #11
  %5250 = call i32 @isatty(i32 noundef %5249) #11
  %.not636 = icmp eq i32 %5250, 0
  br i1 %.not636, label %5251, label %5252

5251:                                             ; preds = %5247, %5241
  br label %5252

5252:                                             ; preds = %5247, %5251
  %.str.5.sink2456 = phi ptr [ @.str.5, %5251 ], [ @.str.2, %5247 ]
  store i32 %5242, ptr %1763, align 4, !tbaa !5
  %5253 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5254 = load i32, ptr @test_count, align 4, !tbaa !5
  %5255 = load i32, ptr %1709, align 4, !tbaa !5
  %5256 = call ptr @s2n_strerror(i32 noundef %5255, ptr noundef nonnull @.str.4) #11
  %5257 = load i32, ptr %1709, align 4, !tbaa !5
  %5258 = call ptr @s2n_strerror_debug(i32 noundef %5257, ptr noundef nonnull @.str.4) #11
  %5259 = load i32, ptr %1763, align 4, !tbaa !5
  %5260 = call ptr @strerror(i32 noundef %5259) #11
  %5261 = load i32, ptr %1763, align 4, !tbaa !5
  %5262 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5253, ptr noundef nonnull %.str.5.sink2456, i32 noundef %5254, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.1, i32 noundef 613, ptr noundef %5256, ptr noundef %5258, ptr noundef %5260, i32 noundef %5261) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5263:                                             ; preds = %5235
  %5264 = add nsw i32 %5236, 2
  store i32 %5264, ptr @test_count, align 4, !tbaa !5
  %5265 = getelementptr inbounds i8, ptr %5238, i64 48
  %5266 = load ptr, ptr %5265, align 8, !tbaa !78
  %5267 = icmp eq ptr %5266, @s2n_socket_write
  br i1 %5267, label %5268, label %5290

5268:                                             ; preds = %5263
  %5269 = load i32, ptr %1763, align 4, !tbaa !5
  %5270 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5271 = call i32 @s2n_print_stacktrace(ptr noundef %5270) #11
  %5272 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5273 = trunc nuw i8 %5272 to i1
  br i1 %5273, label %5274, label %5278

5274:                                             ; preds = %5268
  %5275 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5276 = call i32 @fileno(ptr noundef %5275) #11
  %5277 = call i32 @isatty(i32 noundef %5276) #11
  %.not658 = icmp eq i32 %5277, 0
  br i1 %.not658, label %5278, label %5279

5278:                                             ; preds = %5274, %5268
  br label %5279

5279:                                             ; preds = %5274, %5278
  %.str.5.sink2465 = phi ptr [ @.str.5, %5278 ], [ @.str.2, %5274 ]
  store i32 %5269, ptr %1763, align 4, !tbaa !5
  %5280 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5281 = load i32, ptr @test_count, align 4, !tbaa !5
  %5282 = load i32, ptr %1709, align 4, !tbaa !5
  %5283 = call ptr @s2n_strerror(i32 noundef %5282, ptr noundef nonnull @.str.4) #11
  %5284 = load i32, ptr %1709, align 4, !tbaa !5
  %5285 = call ptr @s2n_strerror_debug(i32 noundef %5284, ptr noundef nonnull @.str.4) #11
  %5286 = load i32, ptr %1763, align 4, !tbaa !5
  %5287 = call ptr @strerror(i32 noundef %5286) #11
  %5288 = load i32, ptr %1763, align 4, !tbaa !5
  %5289 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5280, ptr noundef nonnull %.str.5.sink2465, i32 noundef %5281, ptr noundef nonnull @.str.110, ptr noundef nonnull @.str.1, i32 noundef 614, ptr noundef %5283, ptr noundef %5285, ptr noundef %5287, i32 noundef %5288) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5290:                                             ; preds = %5263
  %5291 = add nsw i32 %5236, 3
  store i32 %5291, ptr @test_count, align 4, !tbaa !5
  %5292 = call i32 @s2n_connection_ktls_enable_recv(ptr noundef nonnull %5238) #11
  %5293 = icmp eq i32 %5292, -1
  br i1 %5293, label %5294, label %5316

5294:                                             ; preds = %5290
  %5295 = load i32, ptr %1763, align 4, !tbaa !5
  %5296 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5297 = call i32 @s2n_print_stacktrace(ptr noundef %5296) #11
  %5298 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5299 = trunc nuw i8 %5298 to i1
  br i1 %5299, label %5300, label %5304

5300:                                             ; preds = %5294
  %5301 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5302 = call i32 @fileno(ptr noundef %5301) #11
  %5303 = call i32 @isatty(i32 noundef %5302) #11
  %.not657 = icmp eq i32 %5303, 0
  br i1 %.not657, label %5304, label %5305

5304:                                             ; preds = %5300, %5294
  br label %5305

5305:                                             ; preds = %5300, %5304
  %.str.5.sink2474 = phi ptr [ @.str.5, %5304 ], [ @.str.2, %5300 ]
  store i32 %5295, ptr %1763, align 4, !tbaa !5
  %5306 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5307 = load i32, ptr @test_count, align 4, !tbaa !5
  %5308 = load i32, ptr %1709, align 4, !tbaa !5
  %5309 = call ptr @s2n_strerror(i32 noundef %5308, ptr noundef nonnull @.str.4) #11
  %5310 = load i32, ptr %1709, align 4, !tbaa !5
  %5311 = call ptr @s2n_strerror_debug(i32 noundef %5310, ptr noundef nonnull @.str.4) #11
  %5312 = load i32, ptr %1763, align 4, !tbaa !5
  %5313 = call ptr @strerror(i32 noundef %5312) #11
  %5314 = load i32, ptr %1763, align 4, !tbaa !5
  %5315 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5306, ptr noundef nonnull %.str.5.sink2474, i32 noundef %5307, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.1, i32 noundef 617, ptr noundef %5309, ptr noundef %5311, ptr noundef %5313, i32 noundef %5314) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5316:                                             ; preds = %5290
  %5317 = load i32, ptr @test_count, align 4, !tbaa !5
  %5318 = add nsw i32 %5317, 1
  store i32 %5318, ptr @test_count, align 4, !tbaa !5
  %5319 = load ptr, ptr %49, align 8, !tbaa !9
  %5320 = load i32, ptr %5319, align 8
  %5321 = and i32 %5320, 524288
  %.not637 = icmp eq i32 %5321, 0
  br i1 %.not637, label %5322, label %5344

5322:                                             ; preds = %5316
  %5323 = load i32, ptr %1763, align 4, !tbaa !5
  %5324 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5325 = call i32 @s2n_print_stacktrace(ptr noundef %5324) #11
  %5326 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5327 = trunc nuw i8 %5326 to i1
  br i1 %5327, label %5328, label %5332

5328:                                             ; preds = %5322
  %5329 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5330 = call i32 @fileno(ptr noundef %5329) #11
  %5331 = call i32 @isatty(i32 noundef %5330) #11
  %.not638 = icmp eq i32 %5331, 0
  br i1 %.not638, label %5332, label %5333

5332:                                             ; preds = %5328, %5322
  br label %5333

5333:                                             ; preds = %5328, %5332
  %.str.5.sink2483 = phi ptr [ @.str.5, %5332 ], [ @.str.2, %5328 ]
  store i32 %5323, ptr %1763, align 4, !tbaa !5
  %5334 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5335 = load i32, ptr @test_count, align 4, !tbaa !5
  %5336 = load i32, ptr %1709, align 4, !tbaa !5
  %5337 = call ptr @s2n_strerror(i32 noundef %5336, ptr noundef nonnull @.str.4) #11
  %5338 = load i32, ptr %1709, align 4, !tbaa !5
  %5339 = call ptr @s2n_strerror_debug(i32 noundef %5338, ptr noundef nonnull @.str.4) #11
  %5340 = load i32, ptr %1763, align 4, !tbaa !5
  %5341 = call ptr @strerror(i32 noundef %5340) #11
  %5342 = load i32, ptr %1763, align 4, !tbaa !5
  %5343 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5334, ptr noundef nonnull %.str.5.sink2483, i32 noundef %5335, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.1, i32 noundef 618, ptr noundef %5337, ptr noundef %5339, ptr noundef %5341, i32 noundef %5342) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5344:                                             ; preds = %5316
  %5345 = add nsw i32 %5317, 2
  store i32 %5345, ptr @test_count, align 4, !tbaa !5
  %5346 = getelementptr inbounds i8, ptr %5319, i64 56
  %5347 = load ptr, ptr %5346, align 8, !tbaa !79
  %5348 = icmp eq ptr %5347, @s2n_socket_read
  br i1 %5348, label %5349, label %5371

5349:                                             ; preds = %5344
  %5350 = load i32, ptr %1763, align 4, !tbaa !5
  %5351 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5352 = call i32 @s2n_print_stacktrace(ptr noundef %5351) #11
  %5353 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5354 = trunc nuw i8 %5353 to i1
  br i1 %5354, label %5355, label %5359

5355:                                             ; preds = %5349
  %5356 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5357 = call i32 @fileno(ptr noundef %5356) #11
  %5358 = call i32 @isatty(i32 noundef %5357) #11
  %.not656 = icmp eq i32 %5358, 0
  br i1 %.not656, label %5359, label %5360

5359:                                             ; preds = %5355, %5349
  br label %5360

5360:                                             ; preds = %5355, %5359
  %.str.5.sink2492 = phi ptr [ @.str.5, %5359 ], [ @.str.2, %5355 ]
  store i32 %5350, ptr %1763, align 4, !tbaa !5
  %5361 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5362 = load i32, ptr @test_count, align 4, !tbaa !5
  %5363 = load i32, ptr %1709, align 4, !tbaa !5
  %5364 = call ptr @s2n_strerror(i32 noundef %5363, ptr noundef nonnull @.str.4) #11
  %5365 = load i32, ptr %1709, align 4, !tbaa !5
  %5366 = call ptr @s2n_strerror_debug(i32 noundef %5365, ptr noundef nonnull @.str.4) #11
  %5367 = load i32, ptr %1763, align 4, !tbaa !5
  %5368 = call ptr @strerror(i32 noundef %5367) #11
  %5369 = load i32, ptr %1763, align 4, !tbaa !5
  %5370 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5361, ptr noundef nonnull %.str.5.sink2492, i32 noundef %5362, ptr noundef nonnull @.str.111, ptr noundef nonnull @.str.1, i32 noundef 619, ptr noundef %5364, ptr noundef %5366, ptr noundef %5368, i32 noundef %5369) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5371:                                             ; preds = %5344
  %5372 = call i32 @s2n_io_pair_close(ptr noundef nonnull %52) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %52) #11
  %5373 = call i32 @s2n_config_ptr_free(ptr noundef nonnull %51) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %51) #11
  %5374 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %50) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %50) #11
  %5375 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %49) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %49) #11
  %5376 = call i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef nonnull %48) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %48) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %53) #11
  %5377 = call ptr @s2n_config_new() #11
  store ptr %5377, ptr %53, align 8, !tbaa !9
  %5378 = load i32, ptr @test_count, align 4, !tbaa !5
  %5379 = add nsw i32 %5378, 1
  store i32 %5379, ptr @test_count, align 4, !tbaa !5
  %5380 = icmp eq ptr %5377, null
  br i1 %5380, label %5381, label %5403

5381:                                             ; preds = %5371
  %5382 = load i32, ptr %1763, align 4, !tbaa !5
  %5383 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5384 = call i32 @s2n_print_stacktrace(ptr noundef %5383) #11
  %5385 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5386 = trunc nuw i8 %5385 to i1
  br i1 %5386, label %5387, label %5391

5387:                                             ; preds = %5381
  %5388 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5389 = call i32 @fileno(ptr noundef %5388) #11
  %5390 = call i32 @isatty(i32 noundef %5389) #11
  %.not655 = icmp eq i32 %5390, 0
  br i1 %.not655, label %5391, label %5392

5391:                                             ; preds = %5387, %5381
  br label %5392

5392:                                             ; preds = %5387, %5391
  %.str.5.sink2501 = phi ptr [ @.str.5, %5391 ], [ @.str.2, %5387 ]
  store i32 %5382, ptr %1763, align 4, !tbaa !5
  %5393 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5394 = load i32, ptr @test_count, align 4, !tbaa !5
  %5395 = load i32, ptr %1709, align 4, !tbaa !5
  %5396 = call ptr @s2n_strerror(i32 noundef %5395, ptr noundef nonnull @.str.4) #11
  %5397 = load i32, ptr %1709, align 4, !tbaa !5
  %5398 = call ptr @s2n_strerror_debug(i32 noundef %5397, ptr noundef nonnull @.str.4) #11
  %5399 = load i32, ptr %1763, align 4, !tbaa !5
  %5400 = call ptr @strerror(i32 noundef %5399) #11
  %5401 = load i32, ptr %1763, align 4, !tbaa !5
  %5402 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5393, ptr noundef nonnull %.str.5.sink2501, i32 noundef %5394, ptr noundef nonnull @.str.112, ptr noundef nonnull @.str.1, i32 noundef 625, ptr noundef %5396, ptr noundef %5398, ptr noundef %5400, i32 noundef %5401) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5403:                                             ; preds = %5371
  %5404 = add nsw i32 %5378, 2
  store i32 %5404, ptr @test_count, align 4, !tbaa !5
  %5405 = load i32, ptr %5377, align 8
  %5406 = and i32 %5405, 131072
  %.not639 = icmp eq i32 %5406, 0
  br i1 %.not639, label %5429, label %5407

5407:                                             ; preds = %5403
  %5408 = load i32, ptr %1763, align 4, !tbaa !5
  %5409 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5410 = call i32 @s2n_print_stacktrace(ptr noundef %5409) #11
  %5411 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5412 = trunc nuw i8 %5411 to i1
  br i1 %5412, label %5413, label %5417

5413:                                             ; preds = %5407
  %5414 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5415 = call i32 @fileno(ptr noundef %5414) #11
  %5416 = call i32 @isatty(i32 noundef %5415) #11
  %.not654 = icmp eq i32 %5416, 0
  br i1 %.not654, label %5417, label %5418

5417:                                             ; preds = %5413, %5407
  br label %5418

5418:                                             ; preds = %5413, %5417
  %.str.5.sink2510 = phi ptr [ @.str.5, %5417 ], [ @.str.2, %5413 ]
  store i32 %5408, ptr %1763, align 4, !tbaa !5
  %5419 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5420 = load i32, ptr @test_count, align 4, !tbaa !5
  %5421 = load i32, ptr %1709, align 4, !tbaa !5
  %5422 = call ptr @s2n_strerror(i32 noundef %5421, ptr noundef nonnull @.str.4) #11
  %5423 = load i32, ptr %1709, align 4, !tbaa !5
  %5424 = call ptr @s2n_strerror_debug(i32 noundef %5423, ptr noundef nonnull @.str.4) #11
  %5425 = load i32, ptr %1763, align 4, !tbaa !5
  %5426 = call ptr @strerror(i32 noundef %5425) #11
  %5427 = load i32, ptr %1763, align 4, !tbaa !5
  %5428 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5419, ptr noundef nonnull %.str.5.sink2510, i32 noundef %5420, ptr noundef nonnull @.str.113, ptr noundef nonnull @.str.1, i32 noundef 626, ptr noundef %5422, ptr noundef %5424, ptr noundef %5426, i32 noundef %5427) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5429:                                             ; preds = %5403
  %5430 = add nsw i32 %5378, 3
  store i32 %5430, ptr @test_count, align 4, !tbaa !5
  %5431 = call i32 @s2n_config_ktls_enable_unsafe_tls13(ptr noundef null) #11
  %5432 = icmp eq i32 %5431, -1
  br i1 %5432, label %5455, label %5433

5433:                                             ; preds = %5429
  %5434 = load i32, ptr %1763, align 4, !tbaa !5
  %5435 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5436 = call i32 @s2n_print_stacktrace(ptr noundef %5435) #11
  %5437 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5438 = trunc nuw i8 %5437 to i1
  br i1 %5438, label %5439, label %5443

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

5443:                                             ; preds = %5439, %5433
  br label %5444

5444:                                             ; preds = %5439, %5443
  %.str.5.sink2519 = phi ptr [ @.str.5, %5443 ], [ @.str.2, %5439 ]
  store i32 %5434, ptr %1763, align 4, !tbaa !5
  %5445 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5446 = load i32, ptr @test_count, align 4, !tbaa !5
  %5447 = load i32, ptr %1709, align 4, !tbaa !5
  %5448 = call ptr @s2n_strerror(i32 noundef %5447, ptr noundef nonnull @.str.4) #11
  %5449 = load i32, ptr %1709, align 4, !tbaa !5
  %5450 = call ptr @s2n_strerror_debug(i32 noundef %5449, ptr noundef nonnull @.str.4) #11
  %5451 = load i32, ptr %1763, align 4, !tbaa !5
  %5452 = call ptr @strerror(i32 noundef %5451) #11
  %5453 = load i32, ptr %1763, align 4, !tbaa !5
  %5454 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5445, ptr noundef nonnull %.str.5.sink2519, i32 noundef %5446, ptr noundef nonnull @.str.114, ptr noundef nonnull @.str.1, i32 noundef 631, ptr noundef %5448, ptr noundef %5450, ptr noundef %5452, i32 noundef %5453) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5455:                                             ; preds = %5429
  %5456 = load i32, ptr @test_count, align 4, !tbaa !5
  %5457 = add nsw i32 %5456, 1
  store i32 %5457, ptr @test_count, align 4, !tbaa !5
  %5458 = load i32, ptr %1709, align 4, !tbaa !5
  %5459 = icmp eq i32 %5458, 402653193
  br i1 %5459, label %5482, label %5460

5460:                                             ; preds = %5455
  %5461 = load i32, ptr %1763, align 4, !tbaa !5
  %5462 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5463 = call i32 @s2n_print_stacktrace(ptr noundef %5462) #11
  %5464 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5465 = trunc nuw i8 %5464 to i1
  br i1 %5465, label %5466, label %5470

5466:                                             ; preds = %5460
  %5467 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5468 = call i32 @fileno(ptr noundef %5467) #11
  %5469 = call i32 @isatty(i32 noundef %5468) #11
  %.not641 = icmp eq i32 %5469, 0
  br i1 %.not641, label %5470, label %5471

5470:                                             ; preds = %5466, %5460
  br label %5471

5471:                                             ; preds = %5466, %5470
  %.str.5.sink2528 = phi ptr [ @.str.5, %5470 ], [ @.str.2, %5466 ]
  store i32 %5461, ptr %1763, align 4, !tbaa !5
  %5472 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5473 = load i32, ptr @test_count, align 4, !tbaa !5
  %5474 = load i32, ptr %1709, align 4, !tbaa !5
  %5475 = call ptr @s2n_strerror(i32 noundef %5474, ptr noundef nonnull @.str.4) #11
  %5476 = load i32, ptr %1709, align 4, !tbaa !5
  %5477 = call ptr @s2n_strerror_debug(i32 noundef %5476, ptr noundef nonnull @.str.4) #11
  %5478 = load i32, ptr %1763, align 4, !tbaa !5
  %5479 = call ptr @strerror(i32 noundef %5478) #11
  %5480 = load i32, ptr %1763, align 4, !tbaa !5
  %5481 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5472, ptr noundef nonnull %.str.5.sink2528, i32 noundef %5473, ptr noundef nonnull @.str.115, ptr noundef nonnull @.str.1, i32 noundef 631, ptr noundef %5475, ptr noundef %5477, ptr noundef %5479, i32 noundef %5480) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5482:                                             ; preds = %5455
  %5483 = add nsw i32 %5456, 2
  store i32 %5483, ptr @test_count, align 4, !tbaa !5
  %5484 = call ptr @s2n_strerror_debug(i32 noundef 402653193, ptr noundef nonnull @.str.4) #11
  %5485 = icmp eq ptr %5484, null
  br i1 %5485, label %5486, label %5508

5486:                                             ; preds = %5482
  %5487 = load i32, ptr %1763, align 4, !tbaa !5
  %5488 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5489 = call i32 @s2n_print_stacktrace(ptr noundef %5488) #11
  %5490 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5491 = trunc nuw i8 %5490 to i1
  br i1 %5491, label %5492, label %5496

5492:                                             ; preds = %5486
  %5493 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5494 = call i32 @fileno(ptr noundef %5493) #11
  %5495 = call i32 @isatty(i32 noundef %5494) #11
  %.not653 = icmp eq i32 %5495, 0
  br i1 %.not653, label %5496, label %5497

5496:                                             ; preds = %5492, %5486
  br label %5497

5497:                                             ; preds = %5492, %5496
  %.str.5.sink2537 = phi ptr [ @.str.5, %5496 ], [ @.str.2, %5492 ]
  store i32 %5487, ptr %1763, align 4, !tbaa !5
  %5498 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5499 = load i32, ptr @test_count, align 4, !tbaa !5
  %5500 = load i32, ptr %1709, align 4, !tbaa !5
  %5501 = call ptr @s2n_strerror(i32 noundef %5500, ptr noundef nonnull @.str.4) #11
  %5502 = load i32, ptr %1709, align 4, !tbaa !5
  %5503 = call ptr @s2n_strerror_debug(i32 noundef %5502, ptr noundef nonnull @.str.4) #11
  %5504 = load i32, ptr %1763, align 4, !tbaa !5
  %5505 = call ptr @strerror(i32 noundef %5504) #11
  %5506 = load i32, ptr %1763, align 4, !tbaa !5
  %5507 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5498, ptr noundef nonnull %.str.5.sink2537, i32 noundef %5499, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 631, ptr noundef %5501, ptr noundef %5503, ptr noundef %5505, i32 noundef %5506) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5508:                                             ; preds = %5482
  store i32 0, ptr %1709, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %1763, align 4, !tbaa !5
  %5509 = load i32, ptr @test_count, align 4, !tbaa !5
  %5510 = add nsw i32 %5509, 1
  store i32 %5510, ptr @test_count, align 4, !tbaa !5
  %5511 = call i32 @s2n_config_ktls_enable_unsafe_tls13(ptr noundef nonnull %5377) #11
  %5512 = icmp eq i32 %5511, -1
  br i1 %5512, label %5513, label %5535

5513:                                             ; preds = %5508
  %5514 = load i32, ptr %1763, align 4, !tbaa !5
  %5515 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5516 = call i32 @s2n_print_stacktrace(ptr noundef %5515) #11
  %5517 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5518 = trunc nuw i8 %5517 to i1
  br i1 %5518, label %5519, label %5523

5519:                                             ; preds = %5513
  %5520 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5521 = call i32 @fileno(ptr noundef %5520) #11
  %5522 = call i32 @isatty(i32 noundef %5521) #11
  %.not652 = icmp eq i32 %5522, 0
  br i1 %.not652, label %5523, label %5524

5523:                                             ; preds = %5519, %5513
  br label %5524

5524:                                             ; preds = %5519, %5523
  %.str.5.sink2546 = phi ptr [ @.str.5, %5523 ], [ @.str.2, %5519 ]
  store i32 %5514, ptr %1763, align 4, !tbaa !5
  %5525 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5526 = load i32, ptr @test_count, align 4, !tbaa !5
  %5527 = load i32, ptr %1709, align 4, !tbaa !5
  %5528 = call ptr @s2n_strerror(i32 noundef %5527, ptr noundef nonnull @.str.4) #11
  %5529 = load i32, ptr %1709, align 4, !tbaa !5
  %5530 = call ptr @s2n_strerror_debug(i32 noundef %5529, ptr noundef nonnull @.str.4) #11
  %5531 = load i32, ptr %1763, align 4, !tbaa !5
  %5532 = call ptr @strerror(i32 noundef %5531) #11
  %5533 = load i32, ptr %1763, align 4, !tbaa !5
  %5534 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5525, ptr noundef nonnull %.str.5.sink2546, i32 noundef %5526, ptr noundef nonnull @.str.56, ptr noundef nonnull @.str.1, i32 noundef 634, ptr noundef %5528, ptr noundef %5530, ptr noundef %5532, i32 noundef %5533) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5535:                                             ; preds = %5508
  %5536 = load i32, ptr @test_count, align 4, !tbaa !5
  %5537 = add nsw i32 %5536, 1
  store i32 %5537, ptr @test_count, align 4, !tbaa !5
  %5538 = load i32, ptr %5377, align 8
  %5539 = and i32 %5538, 131072
  %.not642 = icmp eq i32 %5539, 0
  br i1 %.not642, label %5540, label %5562

5540:                                             ; preds = %5535
  %5541 = load i32, ptr %1763, align 4, !tbaa !5
  %5542 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5543 = call i32 @s2n_print_stacktrace(ptr noundef %5542) #11
  %5544 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5545 = trunc nuw i8 %5544 to i1
  br i1 %5545, label %5546, label %5550

5546:                                             ; preds = %5540
  %5547 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5548 = call i32 @fileno(ptr noundef %5547) #11
  %5549 = call i32 @isatty(i32 noundef %5548) #11
  %.not643 = icmp eq i32 %5549, 0
  br i1 %.not643, label %5550, label %5551

5550:                                             ; preds = %5546, %5540
  br label %5551

5551:                                             ; preds = %5546, %5550
  %.str.5.sink2555 = phi ptr [ @.str.5, %5550 ], [ @.str.2, %5546 ]
  store i32 %5541, ptr %1763, align 4, !tbaa !5
  %5552 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5553 = load i32, ptr @test_count, align 4, !tbaa !5
  %5554 = load i32, ptr %1709, align 4, !tbaa !5
  %5555 = call ptr @s2n_strerror(i32 noundef %5554, ptr noundef nonnull @.str.4) #11
  %5556 = load i32, ptr %1709, align 4, !tbaa !5
  %5557 = call ptr @s2n_strerror_debug(i32 noundef %5556, ptr noundef nonnull @.str.4) #11
  %5558 = load i32, ptr %1763, align 4, !tbaa !5
  %5559 = call ptr @strerror(i32 noundef %5558) #11
  %5560 = load i32, ptr %1763, align 4, !tbaa !5
  %5561 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5552, ptr noundef nonnull %.str.5.sink2555, i32 noundef %5553, ptr noundef nonnull @.str.116, ptr noundef nonnull @.str.1, i32 noundef 635, ptr noundef %5555, ptr noundef %5557, ptr noundef %5559, i32 noundef %5560) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5562:                                             ; preds = %5535
  %5563 = add nsw i32 %5536, 2
  store i32 %5563, ptr @test_count, align 4, !tbaa !5
  %5564 = call i32 @s2n_config_ktls_enable_unsafe_tls13(ptr noundef nonnull %5377) #11
  %5565 = icmp eq i32 %5564, -1
  br i1 %5565, label %5566, label %5588

5566:                                             ; preds = %5562
  %5567 = load i32, ptr %1763, align 4, !tbaa !5
  %5568 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5569 = call i32 @s2n_print_stacktrace(ptr noundef %5568) #11
  %5570 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5571 = trunc nuw i8 %5570 to i1
  br i1 %5571, label %5572, label %5576

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

5576:                                             ; preds = %5572, %5566
  br label %5577

5577:                                             ; preds = %5572, %5576
  %.str.5.sink2564 = phi ptr [ @.str.5, %5576 ], [ @.str.2, %5572 ]
  store i32 %5567, ptr %1763, align 4, !tbaa !5
  %5578 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5579 = load i32, ptr @test_count, align 4, !tbaa !5
  %5580 = load i32, ptr %1709, align 4, !tbaa !5
  %5581 = call ptr @s2n_strerror(i32 noundef %5580, ptr noundef nonnull @.str.4) #11
  %5582 = load i32, ptr %1709, align 4, !tbaa !5
  %5583 = call ptr @s2n_strerror_debug(i32 noundef %5582, ptr noundef nonnull @.str.4) #11
  %5584 = load i32, ptr %1763, align 4, !tbaa !5
  %5585 = call ptr @strerror(i32 noundef %5584) #11
  %5586 = load i32, ptr %1763, align 4, !tbaa !5
  %5587 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5578, ptr noundef nonnull %.str.5.sink2564, i32 noundef %5579, ptr noundef nonnull @.str.56, ptr noundef nonnull @.str.1, i32 noundef 638, ptr noundef %5581, ptr noundef %5583, ptr noundef %5585, i32 noundef %5586) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5588:                                             ; preds = %5562
  %5589 = load i32, ptr @test_count, align 4, !tbaa !5
  %5590 = add nsw i32 %5589, 1
  store i32 %5590, ptr @test_count, align 4, !tbaa !5
  %5591 = load i32, ptr %5377, align 8
  %5592 = and i32 %5591, 131072
  %.not644 = icmp eq i32 %5592, 0
  br i1 %.not644, label %5593, label %5615

5593:                                             ; preds = %5588
  %5594 = load i32, ptr %1763, align 4, !tbaa !5
  %5595 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5596 = call i32 @s2n_print_stacktrace(ptr noundef %5595) #11
  %5597 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5598 = trunc nuw i8 %5597 to i1
  br i1 %5598, label %5599, label %5603

5599:                                             ; preds = %5593
  %5600 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5601 = call i32 @fileno(ptr noundef %5600) #11
  %5602 = call i32 @isatty(i32 noundef %5601) #11
  %.not645 = icmp eq i32 %5602, 0
  br i1 %.not645, label %5603, label %5604

5603:                                             ; preds = %5599, %5593
  br label %5604

5604:                                             ; preds = %5599, %5603
  %.str.5.sink2573 = phi ptr [ @.str.5, %5603 ], [ @.str.2, %5599 ]
  store i32 %5594, ptr %1763, align 4, !tbaa !5
  %5605 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5606 = load i32, ptr @test_count, align 4, !tbaa !5
  %5607 = load i32, ptr %1709, align 4, !tbaa !5
  %5608 = call ptr @s2n_strerror(i32 noundef %5607, ptr noundef nonnull @.str.4) #11
  %5609 = load i32, ptr %1709, align 4, !tbaa !5
  %5610 = call ptr @s2n_strerror_debug(i32 noundef %5609, ptr noundef nonnull @.str.4) #11
  %5611 = load i32, ptr %1763, align 4, !tbaa !5
  %5612 = call ptr @strerror(i32 noundef %5611) #11
  %5613 = load i32, ptr %1763, align 4, !tbaa !5
  %5614 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5605, ptr noundef nonnull %.str.5.sink2573, i32 noundef %5606, ptr noundef nonnull @.str.116, ptr noundef nonnull @.str.1, i32 noundef 639, ptr noundef %5608, ptr noundef %5610, ptr noundef %5612, i32 noundef %5613) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5615:                                             ; preds = %5588
  %5616 = call i32 @s2n_config_ptr_free(ptr noundef nonnull %53) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %53) #11
  %5617 = call i32 @s2n_cleanup() #11
  %5618 = icmp eq i32 %5617, -1
  br i1 %5618, label %5619, label %5641

5619:                                             ; preds = %5615
  %5620 = load i32, ptr %1763, align 4, !tbaa !5
  %5621 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5622 = call i32 @s2n_print_stacktrace(ptr noundef %5621) #11
  %5623 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5624 = trunc nuw i8 %5623 to i1
  br i1 %5624, label %5625, label %5629

5625:                                             ; preds = %5619
  %5626 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5627 = call i32 @fileno(ptr noundef %5626) #11
  %5628 = call i32 @isatty(i32 noundef %5627) #11
  %.not650 = icmp eq i32 %5628, 0
  br i1 %.not650, label %5629, label %5630

5629:                                             ; preds = %5625, %5619
  br label %5630

5630:                                             ; preds = %5625, %5629
  %.str.5.sink2582 = phi ptr [ @.str.5, %5629 ], [ @.str.2, %5625 ]
  store i32 %5620, ptr %1763, align 4, !tbaa !5
  %5631 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5632 = load i32, ptr @test_count, align 4, !tbaa !5
  %5633 = load i32, ptr %1709, align 4, !tbaa !5
  %5634 = call ptr @s2n_strerror(i32 noundef %5633, ptr noundef nonnull @.str.4) #11
  %5635 = load i32, ptr %1709, align 4, !tbaa !5
  %5636 = call ptr @s2n_strerror_debug(i32 noundef %5635, ptr noundef nonnull @.str.4) #11
  %5637 = load i32, ptr %1763, align 4, !tbaa !5
  %5638 = call ptr @strerror(i32 noundef %5637) #11
  %5639 = load i32, ptr %1763, align 4, !tbaa !5
  %5640 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5631, ptr noundef nonnull %.str.5.sink2582, i32 noundef %5632, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 642, ptr noundef %5634, ptr noundef %5636, ptr noundef %5638, i32 noundef %5639) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5641:                                             ; preds = %5615
  %5642 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #11
  %5643 = icmp eq i32 %5642, -1
  br i1 %5643, label %5644, label %5666

5644:                                             ; preds = %5641
  %5645 = load i32, ptr %1763, align 4, !tbaa !5
  %5646 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5647 = call i32 @s2n_print_stacktrace(ptr noundef %5646) #11
  %5648 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5649 = trunc nuw i8 %5648 to i1
  br i1 %5649, label %5650, label %5654

5650:                                             ; preds = %5644
  %5651 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5652 = call i32 @fileno(ptr noundef %5651) #11
  %5653 = call i32 @isatty(i32 noundef %5652) #11
  %.not649 = icmp eq i32 %5653, 0
  br i1 %.not649, label %5654, label %5655

5654:                                             ; preds = %5650, %5644
  br label %5655

5655:                                             ; preds = %5650, %5654
  %.str.5.sink2591 = phi ptr [ @.str.5, %5654 ], [ @.str.2, %5650 ]
  store i32 %5645, ptr %1763, align 4, !tbaa !5
  %5656 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5657 = load i32, ptr @test_count, align 4, !tbaa !5
  %5658 = load i32, ptr %1709, align 4, !tbaa !5
  %5659 = call ptr @s2n_strerror(i32 noundef %5658, ptr noundef nonnull @.str.4) #11
  %5660 = load i32, ptr %1709, align 4, !tbaa !5
  %5661 = call ptr @s2n_strerror_debug(i32 noundef %5660, ptr noundef nonnull @.str.4) #11
  %5662 = load i32, ptr %1763, align 4, !tbaa !5
  %5663 = call ptr @strerror(i32 noundef %5662) #11
  %5664 = load i32, ptr %1763, align 4, !tbaa !5
  %5665 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5656, ptr noundef nonnull %.str.5.sink2591, i32 noundef %5657, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 642, ptr noundef %5659, ptr noundef %5661, ptr noundef %5663, i32 noundef %5664) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5666:                                             ; preds = %5641
  %5667 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5668 = trunc nuw i8 %5667 to i1
  br i1 %5668, label %5669, label %5680

5669:                                             ; preds = %5666
  %5670 = load ptr, ptr @stdout, align 8, !tbaa !9
  %5671 = call i32 @fileno(ptr noundef %5670) #11
  %5672 = call i32 @isatty(i32 noundef %5671) #11
  %.not646 = icmp eq i32 %5672, 0
  br i1 %.not646, label %5680, label %5673

5673:                                             ; preds = %5669
  %5674 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not648 = icmp eq i32 %5674, 0
  %5675 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not648, label %5678, label %5676

5676:                                             ; preds = %5673
  %5677 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5675, ptr noundef nonnull @.str.15, i32 noundef %5674) #11
  br label %5687

5678:                                             ; preds = %5673
  %5679 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5675, ptr noundef nonnull @.str.16) #11
  br label %5687

5680:                                             ; preds = %5669, %5666
  %5681 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not647 = icmp eq i32 %5681, 0
  %5682 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not647, label %5685, label %5683

5683:                                             ; preds = %5680
  %5684 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5682, ptr noundef nonnull @.str.17, i32 noundef %5681) #11
  br label %5687

5685:                                             ; preds = %5680
  %5686 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5682, ptr noundef nonnull @.str.18) #11
  br label %5687

5687:                                             ; preds = %5678, %5676, %5685, %5683, %409
  ret i32 0
}

; Function Attrs: nofree nounwind
declare noundef i32 @fprintf(ptr nocapture noundef, ptr nocapture noundef readonly, ...) local_unnamed_addr #1

; Function Attrs: nofree nounwind
declare noundef i32 @fflush(ptr nocapture noundef) local_unnamed_addr #1

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) local_unnamed_addr #2

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

; Function Attrs: mustprogress nofree nosync nounwind willreturn memory(none)
declare ptr @__errno_location() local_unnamed_addr #4

declare i32 @s2n_print_stacktrace(ptr noundef) local_unnamed_addr #2

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

; Function Attrs: nofree nounwind
declare noundef i32 @fileno(ptr nocapture noundef) local_unnamed_addr #1

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

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

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

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

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

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

declare i32 @s2n_enable_atexit() local_unnamed_addr #2

declare i32 @s2n_init() local_unnamed_addr #2

declare zeroext i1 @s2n_ktls_is_supported_on_platform(...) local_unnamed_addr #2

declare ptr @s2n_connection_new(i32 noundef) local_unnamed_addr #2

declare i32 @s2n_connection_ptr_free(ptr noundef) local_unnamed_addr #2

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

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

declare i32 @s2n_connection_ktls_enable_send(ptr noundef) local_unnamed_addr #2

declare void @s2n_debug_info_reset() local_unnamed_addr #2

declare i32 @s2n_connection_ktls_enable_recv(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_cleanup() local_unnamed_addr #2

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

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

declare i32 @s2n_get_public_random_data(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_alloc(ptr noundef, i32 noundef) local_unnamed_addr #2

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

declare i32 @s2n_connection_get_secure_cipher(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_ktls_set_setsockopt_cb(ptr noundef) local_unnamed_addr #2

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

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

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

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

declare ptr @s2n_config_new() local_unnamed_addr #2

declare i32 @s2n_config_ptr_free(ptr noundef) local_unnamed_addr #2

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

declare i32 @s2n_config_ktls_enable_unsafe_tls13(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_write_uint8(ptr noundef, i8 noundef zeroext) local_unnamed_addr #2

declare i32 @s2n_stuffer_read_uint8(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_skip_read(ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @s2n_config_set_renegotiate_request_cb(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

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

declare i32 @s2n_config_set_serialization_version(ptr noundef, i32 noundef) local_unnamed_addr #2

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

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

declare i32 @s2n_crypto_parameters_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_prf_generate_key_material(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef) local_unnamed_addr #2

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

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

declare i32 @s2n_config_disable_x509_verification(ptr noundef) local_unnamed_addr #2

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

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

declare i32 @s2n_io_pair_close(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_io_pair_init_non_blocking(ptr noundef) local_unnamed_addr #2

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

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

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

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

attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { nofree nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #4 = { mustprogress nofree nosync nounwind willreturn memory(none) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #7 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { 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 #9 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #10 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) }
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, !7, i64 48}
!16 = !{!"s2n_cipher", !6, i64 0, !7, i64 8, !7, i64 48, !10, i64 56, !10, i64 64, !10, i64 72, !10, i64 80, !10, i64 88, !10, i64 96}
!17 = !{i64 0, i64 8, !9, i64 8, i64 4, !5, i64 12, i64 4, !5, i64 16, i64 1, !18}
!18 = !{!7, !7, i64 0}
!19 = !{!16, !10, i64 96}
!20 = !{!21, !6, i64 8}
!21 = !{!"s2n_ktls_crypto_info", !22, i64 0, !7, i64 24}
!22 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!23 = !{!21, !10, i64 0}
!24 = !{!22, !6, i64 8}
!25 = !{!22, !10, i64 0}
!26 = !{!27, !6, i64 2176}
!27 = !{!"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, !28, i64 160, !29, i64 168, !29, 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, !30, i64 240, !10, i64 632, !10, i64 640, !31, i64 648, !36, i64 1144, !39, i64 1688, !10, i64 1752, !7, i64 1760, !6, i64 1764, !7, i64 1768, !42, i64 1776, !42, i64 1816, !42, i64 1856, !42, i64 1896, !6, i64 1936, !29, i64 1944, !7, i64 1952, !42, i64 1960, !7, i64 2000, !7, i64 2001, !7, i64 2002, !12, i64 2003, !43, i64 2004, !43, i64 2008, !44, i64 2016, !41, i64 2208, !6, i64 2212, !41, i64 2216, !29, i64 2224, !7, i64 2232, !29, i64 2240, !29, i64 2248, !29, i64 2256, !43, i64 2264, !43, i64 2268, !7, i64 2272, !7, i64 2528, !6, i64 2784, !22, i64 2792, !6, i64 2816, !22, i64 2824, !22, i64 2848, !22, i64 2872, !46, i64 2896, !48, i64 3704, !10, i64 3760, !10, i64 3768, !7, i64 3776, !6, i64 3780, !22, i64 3784, !6, i64 3808, !50, i64 3816, !7, i64 3848, !42, i64 3992, !22, i64 4032, !22, i64 4056, !12, i64 4080, !12, i64 4081, !12, i64 4082, !41, i64 4084, !41, i64 4086, !6, i64 4088, !6, i64 4092, !22, i64 4096, !6, i64 4120, !51, i64 4128, !43, i64 4176, !7, i64 4180, !7, i64 4181}
!28 = !{!"s2n_timer", !29, i64 0}
!29 = !{!"long", !7, i64 0}
!30 = !{!"s2n_secrets", !7, i64 0, !6, i64 388}
!31 = !{!"s2n_kex_parameters", !32, i64 0, !33, i64 8, !7, i64 24, !33, i64 56, !34, i64 72, !34, i64 184, !7, i64 296, !35, i64 360, !22, i64 448, !22, i64 472}
!32 = !{!"s2n_dh_params", !10, i64 0}
!33 = !{!"s2n_ecc_evp_params", !10, i64 0, !10, i64 8}
!34 = !{!"s2n_kem_group_params", !10, i64 0, !35, i64 8, !33, i64 96}
!35 = !{!"s2n_kem_params", !10, i64 0, !22, i64 8, !22, i64 32, !22, i64 56, !12, i64 80}
!36 = !{!"s2n_handshake_parameters", !37, i64 0, !37, i64 48, !22, i64 96, !6, i64 120, !38, 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}
!37 = !{!"s2n_pkey", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40}
!38 = !{!"s2n_sig_scheme_list", !7, i64 0, !7, i64 256}
!39 = !{!"s2n_psk_parameters", !6, i64 0, !40, i64 8, !41, i64 40, !41, i64 42, !10, i64 48, !6, i64 56}
!40 = !{!"s2n_array", !22, i64 0, !6, i64 24, !6, i64 28}
!41 = !{!"short", !7, i64 0}
!42 = !{!"s2n_stuffer", !22, i64 0, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 36, !6, i64 36}
!43 = !{!"", !6, i64 0}
!44 = !{!"s2n_handshake", !42, 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, !45, i64 176, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 188}
!45 = !{!"s2n_offered_early_data", !10, i64 0}
!46 = !{!"s2n_client_hello", !22, i64 0, !47, i64 24, !22, i64 728, !22, i64 752, !22, 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}
!47 = !{!"", !7, i64 0, !22, i64 672, !41, i64 696}
!48 = !{!"s2n_x509_validator", !10, i64 0, !10, i64 8, !7, i64 16, !7, i64 17, !41, i64 18, !10, i64 24, !6, i64 32, !10, i64 40, !49, i64 48, !12, i64 52}
!49 = !{!"s2n_cert_validation_info", !6, i64 0, !6, i64 0}
!50 = !{!"s2n_ticket_fields", !22, i64 0, !6, i64 24}
!51 = !{!"s2n_post_handshake", !42, i64 0, !7, i64 40}
!52 = !{!27, !7, i64 220}
!53 = !{!27, !10, i64 232}
!54 = !{!55, !10, i64 0}
!55 = !{!"s2n_crypto_parameters", !10, i64 0, !56, i64 8, !56, i64 16, !57, i64 24, !57, i64 456, !7, i64 888, !7, i64 904, !7, i64 920, !7, i64 928}
!56 = !{!"s2n_session_key", !10, i64 0}
!57 = !{!"s2n_hmac_state", !6, i64 0, !41, i64 4, !6, i64 8, !41, i64 12, !7, i64 14, !58, i64 16, !58, i64 72, !58, i64 128, !58, i64 184, !7, i64 240, !7, i64 368}
!58 = !{!"s2n_hash_state", !10, i64 0, !6, i64 8, !7, i64 12, !29, i64 16, !7, i64 24}
!59 = !{!60, !10, i64 0}
!60 = !{!"s2n_record_algorithm", !10, i64 0, !6, i64 8, !6, i64 12, !29, i64 16}
!61 = !{!62, !10, i64 48}
!62 = !{!"s2n_cipher_suite", !6, i64 0, !10, i64 8, !10, i64 16, !7, i64 24, !10, i64 32, !6, i64 40, !10, i64 48, !7, i64 56, !7, i64 72, !10, i64 80, !10, i64 88, !6, i64 96, !7, i64 100}
!63 = !{!27, !6, i64 1804}
!64 = !{!27, !6, i64 1800}
!65 = !{!27, !6, i64 1884}
!66 = !{!27, !6, i64 1880}
!67 = !{!68, !6, i64 440}
!68 = !{!"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, !69, i64 24, !22, 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, !29, i64 144, !10, i64 152, !29, i64 160, !29, 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, !70, i64 304, !41, 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, !22, i64 448}
!69 = !{!"certs_by_type", !7, i64 0}
!70 = !{!"s2n_x509_trust_store", !10, i64 0, !6, i64 8}
!71 = !{i64 0, i64 1, !18, i64 8, i64 8, !9, i64 16, i64 8, !9, i64 24, i64 2, !18, i64 32, i64 8, !9, i64 40, i64 4, !5, i64 48, i64 8, !9, i64 56, i64 16, !18, i64 72, i64 1, !18, i64 80, i64 8, !9, i64 88, i64 8, !9, i64 96, i64 4, !5, i64 100, i64 1, !18}
!72 = !{i64 0, i64 8, !9, i64 8, i64 4, !5, i64 12, i64 4, !5, i64 16, i64 8, !73}
!73 = !{!29, !29, i64 0}
!74 = !{i64 0, i64 4, !5, i64 8, i64 40, !18, i64 48, i64 1, !18, i64 56, i64 8, !9, i64 64, i64 8, !9, i64 72, i64 8, !9, i64 80, i64 8, !9, i64 88, i64 8, !9, i64 96, i64 8, !9}
!75 = !{!76, !29, i64 0}
!76 = !{!"s2n_test_setsockopt_expected_struct", !29, i64 0, !6, i64 8, !6, i64 12, !77, i64 16}
!77 = !{!"s2n_ktls_crypto_info_inputs", !22, i64 0, !22, i64 24, !22, i64 48}
!78 = !{!27, !10, i64 48}
!79 = !{!27, !10, i64 56}


; Effective O3 passes: CorrelatedValuePropagationPass,DSEPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,MemCpyOptPass,PostOrderFunctionAttrsPass,SROAPass,SimplifyCFGPass,TailCallElimPass