; LLVM IR from aws/s2n-tls :: tests/unit (s2n_key_update_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_suite = type { i8, ptr, ptr, [2 x i8], ptr, i32, ptr, [2 x ptr], i8, ptr, ptr, i32, i8 }
%struct.s2n_debug_info = type { ptr, ptr }
%struct.s2n_cipher_preferences = type { i16, ptr, i8 }
%struct.s2n_blob = type { ptr, i32, i32, i8 }
%struct.s2n_result = type { i32 }
%struct.s2n_stuffer = type { %struct.s2n_blob, i32, i32, i32, i8 }
%struct.s2n_record_algorithm = type { ptr, i32, i32, i64 }
%struct.s2n_connection = type { i32, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, [22 x i8], [22 x i8], [22 x i8], i32, i32, %struct.s2n_timer, i64, i64, [32 x i8], i8, i8, i8, i8, i8, i8, i8, ptr, ptr, %struct.s2n_secrets, ptr, ptr, %struct.s2n_kex_parameters, %struct.s2n_handshake_parameters, %struct.s2n_psk_parameters, ptr, i8, i32, [5 x i8], %struct.s2n_stuffer, %struct.s2n_stuffer, %struct.s2n_stuffer, %struct.s2n_stuffer, i32, i64, [2 x i8], %struct.s2n_stuffer, i8, i8, i8, i8, %struct.s2n_atomic_flag, %struct.s2n_atomic_flag, %struct.s2n_handshake, i16, i32, i16, i64, i8, i64, i64, i64, %struct.s2n_atomic_flag, %struct.s2n_atomic_flag, [256 x i8], [256 x i8], i32, %struct.s2n_blob, i32, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_client_hello, %struct.s2n_x509_validator, ptr, ptr, i8, i32, %struct.s2n_blob, i32, %struct.s2n_ticket_fields, [138 x i8], %struct.s2n_stuffer, %struct.s2n_blob, %struct.s2n_blob, i8, i8, i8, i16, i16, i32, i32, %struct.s2n_blob, i32, %struct.s2n_post_handshake, %struct.s2n_atomic_flag, i8, i8 }
%struct.s2n_timer = type { i64 }
%struct.s2n_secrets = type { %union.anon, i32 }
%union.anon = type { %struct.s2n_tls13_secrets }
%struct.s2n_tls13_secrets = type { [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], i32 }
%struct.s2n_kex_parameters = type { %struct.s2n_dh_params, %struct.s2n_ecc_evp_params, [4 x ptr], %struct.s2n_ecc_evp_params, %struct.s2n_kem_group_params, %struct.s2n_kem_group_params, [8 x ptr], %struct.s2n_kem_params, %struct.s2n_blob, %struct.s2n_blob }
%struct.s2n_dh_params = type { ptr }
%struct.s2n_ecc_evp_params = type { ptr, ptr }
%struct.s2n_kem_group_params = type { ptr, %struct.s2n_kem_params, %struct.s2n_ecc_evp_params }
%struct.s2n_kem_params = type { ptr, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_blob, i8 }
%struct.s2n_handshake_parameters = type { %struct.s2n_pkey, %struct.s2n_pkey, %struct.s2n_blob, i32, %struct.s2n_sig_scheme_list, ptr, ptr, ptr, [4 x ptr], [4 x ptr], i8, i8, [32 x i8], [32 x i8] }
%struct.s2n_pkey = type { ptr, ptr, ptr, ptr, ptr, ptr }
%struct.s2n_sig_scheme_list = type { [128 x i16], i8 }
%struct.s2n_psk_parameters = type { i32, %struct.s2n_array, i16, i16, ptr, i32 }
%struct.s2n_array = type { %struct.s2n_blob, i32, i32 }
%struct.s2n_handshake = type { %struct.s2n_stuffer, ptr, [8 x i8], [48 x i8], [48 x i8], i8, i32, i32, i32, i32, %struct.s2n_offered_early_data, i8, i32 }
%struct.s2n_offered_early_data = type { ptr }
%struct.s2n_client_hello = type { %struct.s2n_blob, %struct.s2n_parsed_extensions_list, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_blob, i8, i8, i8 }
%struct.s2n_parsed_extensions_list = type { [21 x %struct.s2n_parsed_extension], %struct.s2n_blob, i16 }
%struct.s2n_parsed_extension = type { %struct.s2n_blob, i16, i16, i8 }
%struct.s2n_x509_validator = type { ptr, ptr, i8, i8, i16, ptr, i32, ptr, %struct.s2n_cert_validation_info, i8 }
%struct.s2n_cert_validation_info = type { i8, [3 x i8] }
%struct.s2n_ticket_fields = type { %struct.s2n_blob, i32 }
%struct.s2n_post_handshake = type { %struct.s2n_stuffer, [4 x i8] }
%struct.s2n_atomic_flag = type { i32 }
%struct.s2n_crypto_parameters = type { ptr, %struct.s2n_session_key, %struct.s2n_session_key, %struct.s2n_hmac_state, %struct.s2n_hmac_state, [16 x i8], [16 x i8], [8 x i8], [8 x i8] }
%struct.s2n_session_key = type { ptr }
%struct.s2n_hmac_state = type { i32, i16, i32, i16, i8, %struct.s2n_hash_state, %struct.s2n_hash_state, %struct.s2n_hash_state, %struct.s2n_hash_state, [128 x i8], [64 x i8] }
%struct.s2n_hash_state = type { ptr, i32, i8, i64, %union.anon.0 }
%union.anon.0 = type { %struct.s2n_hash_evp_digest }
%struct.s2n_hash_evp_digest = type { %struct.s2n_evp_digest, %struct.s2n_evp_digest }
%struct.s2n_evp_digest = type { ptr, ptr }
%struct.s2n_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 [78 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 [56 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [97 x i8], align 1
@s2n_tls13_aes_256_gcm_sha384 = external global %struct.s2n_cipher_suite, align 8
@s2n_tls13_chacha20_poly1305_sha256 = external global %struct.s2n_cipher_suite, align 8
@s2n_ecdhe_ecdsa_with_aes_256_gcm_sha384 = external global %struct.s2n_cipher_suite, align 8
@.str.10 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [102 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [103 x i8], align 1
@_s2n_debug_info = external thread_local global %struct.s2n_debug_info, align 8
@.str.48 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [109 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [107 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.81 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [111 x i8], align 1
@.str.85 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.86 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.88 = external hidden unnamed_addr constant [108 x i8], align 1
@.str.89 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.91 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.92 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.93 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.94 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.95 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.96 = external hidden unnamed_addr constant [114 x i8], align 1
@.str.97 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.98 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.99 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.100 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.101 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.102 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.103 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.104 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.105 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.106 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.107 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.108 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.109 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.110 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.111 = external hidden unnamed_addr constant [64 x i8], align 1
@cipher_preferences_test_all = external constant %struct.s2n_cipher_preferences, align 8
@.str.112 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.113 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.114 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.115 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.116 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.117 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.118 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.119 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.120 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.121 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.122 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.123 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.124 = external hidden unnamed_addr constant [25 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 i32, align 4
  %10 = alloca %struct.s2n_blob, align 8
  %11 = alloca %struct.s2n_result, align 4
  %12 = alloca i32, align 4
  %13 = alloca ptr, align 8
  %14 = alloca i64, align 8
  %15 = alloca ptr, align 8
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca [8 x i8], align 1
  %19 = alloca [5 x i8], align 1
  %20 = alloca %struct.s2n_blob, align 8
  %21 = alloca %struct.s2n_stuffer, align 8
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca i8, align 1
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca i32, align 4
  %30 = alloca i32, align 4
  %31 = alloca i32, align 4
  %32 = alloca i8, align 1
  %33 = alloca i32, align 4
  %34 = alloca i32, align 4
  %35 = alloca i64, align 8
  %36 = alloca %struct.s2n_stuffer, align 8
  %37 = alloca i32, align 4
  %38 = alloca i32, align 4
  %39 = alloca ptr, align 8
  %40 = alloca i32, align 4
  %41 = alloca i32, align 4
  %42 = alloca ptr, align 8
  %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 i8, align 1
  %49 = alloca i32, align 4
  %50 = alloca i32, align 4
  %51 = alloca i32, align 4
  %52 = alloca i32, align 4
  %53 = alloca i32, align 4
  %54 = alloca i64, align 8
  %55 = alloca %struct.s2n_stuffer, align 8
  %56 = alloca i32, align 4
  %57 = alloca i32, align 4
  %58 = alloca ptr, align 8
  %59 = alloca i32, align 4
  %60 = alloca i32, align 4
  %61 = alloca i32, align 4
  %62 = alloca i32, align 4
  %63 = alloca i32, align 4
  %64 = alloca i32, align 4
  %65 = alloca %struct.s2n_stuffer, align 8
  %66 = alloca i32, align 4
  %67 = alloca ptr, align 8
  %68 = alloca i32, align 4
  %69 = alloca i32, align 4
  %70 = alloca i32, align 4
  %71 = alloca i32, align 4
  %72 = alloca i32, align 4
  %73 = alloca i32, align 4
  %74 = alloca i32, align 4
  %75 = alloca i32, align 4
  %76 = alloca i32, align 4
  %77 = alloca i32, align 4
  %78 = alloca i32, align 4
  %79 = alloca i32, align 4
  %80 = alloca i32, align 4
  %81 = alloca i32, align 4
  %82 = alloca i32, align 4
  %83 = alloca %struct.s2n_result, align 4
  %84 = alloca %struct.s2n_stuffer, align 8
  %85 = alloca i32, align 4
  %86 = alloca ptr, align 8
  %87 = alloca i32, align 4
  %88 = alloca i32, align 4
  %89 = alloca i32, align 4
  %90 = alloca i32, align 4
  %91 = alloca i32, align 4
  %92 = alloca i32, align 4
  %93 = alloca %struct.s2n_stuffer, align 8
  %94 = alloca i32, align 4
  %95 = alloca ptr, align 8
  %96 = alloca i32, align 4
  %97 = alloca i32, align 4
  %98 = alloca ptr, align 8
  %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 i32, align 4
  %105 = alloca %struct.s2n_stuffer, align 8
  %106 = alloca i32, align 4
  %107 = alloca ptr, align 8
  %108 = alloca i32, align 4
  %109 = alloca i32, align 4
  %110 = alloca ptr, align 8
  %111 = alloca i32, align 4
  %112 = alloca i32, align 4
  %113 = alloca i32, align 4
  %114 = alloca i32, align 4
  %115 = alloca i32, align 4
  %116 = alloca i32, align 4
  %117 = alloca %struct.s2n_stuffer, align 8
  %118 = alloca i32, align 4
  %119 = alloca ptr, align 8
  %120 = alloca i32, align 4
  %121 = alloca i32, align 4
  %122 = alloca i32, align 4
  %123 = alloca i32, align 4
  %124 = alloca i32, align 4
  %125 = alloca %struct.s2n_result, align 4
  %126 = alloca %struct.s2n_stuffer, align 8
  %127 = alloca i32, align 4
  %128 = alloca ptr, align 8
  %129 = alloca i32, align 4
  %130 = alloca i32, align 4
  %131 = alloca i32, align 4
  %132 = alloca i32, align 4
  %133 = alloca i32, align 4
  %134 = alloca %struct.s2n_result, align 4
  %135 = alloca %struct.s2n_stuffer, align 8
  %136 = alloca i32, align 4
  %137 = alloca ptr, align 8
  %138 = alloca i32, align 4
  %139 = alloca i32, align 4
  %140 = alloca i32, align 4
  %141 = alloca i32, align 4
  %142 = alloca i32, align 4
  %143 = alloca i32, align 4
  %144 = alloca %struct.s2n_result, align 4
  %145 = alloca ptr, align 8
  %146 = alloca i32, align 4
  %147 = alloca i32, align 4
  %148 = alloca ptr, align 8
  %149 = alloca %struct.s2n_stuffer, align 8
  %150 = alloca i32, align 4
  %151 = alloca i32, align 4
  %152 = alloca i32, align 4
  %153 = alloca i32, align 4
  %154 = alloca i32, align 4
  %155 = alloca i32, align 4
  %156 = alloca i32, align 4
  %157 = alloca i32, align 4
  %158 = alloca i32, align 4
  %159 = alloca i32, align 4
  %160 = alloca i32, align 4
  %161 = alloca ptr, align 8
  %162 = alloca i32, align 4
  %163 = alloca i32, align 4
  %164 = alloca ptr, align 8
  %165 = alloca %struct.s2n_stuffer, align 8
  %166 = alloca i32, align 4
  %167 = alloca i32, align 4
  %168 = alloca %struct.s2n_result, 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 ptr, align 8
  %179 = alloca i32, align 4
  %180 = alloca ptr, align 8
  %181 = alloca %struct.s2n_stuffer, align 8
  %182 = alloca i32, align 4
  %183 = alloca i32, align 4
  %184 = alloca %struct.s2n_result, align 4
  %185 = alloca i32, align 4
  %186 = alloca i32, align 4
  %187 = alloca i32, align 4
  %188 = alloca i32, align 4
  %189 = alloca i32, align 4
  %190 = alloca i32, align 4
  %191 = alloca i32, align 4
  %192 = alloca %struct.s2n_result, align 4
  %193 = alloca ptr, align 8
  %194 = alloca i32, align 4
  %195 = alloca i32, align 4
  %196 = alloca ptr, align 8
  %197 = alloca [8 x i8], align 1
  %198 = alloca %struct.s2n_stuffer, align 8
  %199 = alloca i32, align 4
  %200 = alloca i32, align 4
  %201 = alloca i32, align 4
  %202 = alloca i32, align 4
  %203 = alloca i32, align 4
  %204 = alloca i32, align 4
  %205 = alloca i32, align 4
  %206 = alloca i32, align 4
  %207 = alloca i32, align 4
  %208 = alloca i64, align 8
  %209 = alloca i64, align 8
  %210 = alloca ptr, align 8
  %211 = alloca i32, align 4
  %212 = alloca i32, align 4
  %213 = alloca ptr, align 8
  %214 = alloca %struct.s2n_stuffer, align 8
  %215 = alloca i32, align 4
  %216 = alloca i32, align 4
  %217 = alloca %struct.s2n_blob, align 8
  %218 = alloca i32, align 4
  %219 = alloca %struct.s2n_result, align 4
  %220 = alloca i32, align 4
  %221 = alloca i64, align 8
  %222 = alloca i64, align 8
  %223 = alloca i32, align 4
  %224 = alloca i32, align 4
  %225 = alloca i32, align 4
  %226 = alloca i32, align 4
  %227 = alloca %struct.s2n_result, align 4
  %228 = alloca i64, align 8
  %229 = alloca i64, align 8
  %230 = alloca ptr, align 8
  %231 = alloca i32, align 4
  %232 = alloca i32, align 4
  %233 = alloca ptr, align 8
  %234 = alloca %struct.s2n_stuffer, align 8
  %235 = alloca i32, align 4
  %236 = alloca i32, align 4
  %237 = alloca %struct.s2n_blob, align 8
  %238 = alloca i32, align 4
  %239 = alloca %struct.s2n_result, align 4
  %240 = alloca i32, align 4
  %241 = alloca i64, align 8
  %242 = alloca i64, align 8
  %243 = alloca i32, align 4
  %244 = alloca i32, align 4
  %245 = alloca i32, align 4
  %246 = alloca i32, align 4
  %247 = alloca %struct.s2n_result, align 4
  %248 = alloca ptr, align 8
  %249 = alloca i32, align 4
  %250 = alloca i32, align 4
  %251 = alloca i32, align 4
  %252 = alloca i32, align 4
  %253 = alloca %struct.s2n_result, align 4
  %254 = alloca i32, align 4
  %255 = alloca i32, align 4
  %256 = alloca i32, align 4
  %257 = alloca i32, align 4
  %258 = alloca i32, align 4
  %259 = alloca %struct.s2n_result, align 4
  %260 = alloca %struct.s2n_blob, align 8
  %261 = alloca [8 x i8], align 1
  %262 = alloca i32, align 4
  %263 = alloca ptr, align 8
  %264 = alloca i32, align 4
  %265 = alloca %struct.s2n_result, align 4
  %266 = alloca i32, align 4
  %267 = alloca i32, align 4
  %268 = alloca i32, align 4
  %269 = alloca %struct.s2n_result, align 4
  %270 = alloca i32, align 4
  %271 = alloca i32, align 4
  %272 = alloca i32, align 4
  %273 = alloca %struct.s2n_result, align 4
  %274 = alloca i32, align 4
  %275 = alloca i32, align 4
  %276 = alloca i32, align 4
  %277 = alloca %struct.s2n_result, align 4
  %278 = alloca i32, align 4
  %279 = alloca i32, align 4
  %280 = alloca i32, align 4
  %281 = alloca %struct.s2n_result, align 4
  %282 = alloca i32, align 4
  %283 = alloca i32, align 4
  %284 = alloca i32, align 4
  %285 = alloca %struct.s2n_result, align 4
  %286 = alloca i32, align 4
  %287 = alloca i32, align 4
  %288 = alloca i32, align 4
  %289 = alloca %struct.s2n_result, align 4
  %290 = alloca %struct.s2n_blob, align 8
  %291 = alloca [8 x i8], align 1
  %292 = alloca i32, align 4
  %293 = alloca ptr, align 8
  %294 = alloca i32, align 4
  %295 = alloca %struct.s2n_result, align 4
  %296 = alloca i32, align 4
  %297 = alloca i32, align 4
  %298 = alloca i32, align 4
  %299 = alloca %struct.s2n_result, align 4
  %300 = alloca i32, align 4
  %301 = alloca i32, align 4
  %302 = alloca i32, align 4
  %303 = alloca %struct.s2n_result, align 4
  %304 = alloca i32, align 4
  %305 = alloca i32, align 4
  %306 = alloca i32, align 4
  %307 = alloca %struct.s2n_result, align 4
  %308 = alloca i32, align 4
  %309 = alloca i32, align 4
  %310 = alloca i32, align 4
  %311 = alloca %struct.s2n_result, align 4
  %312 = alloca i32, align 4
  %313 = alloca i32, align 4
  %314 = alloca i32, align 4
  %315 = alloca %struct.s2n_result, align 4
  %316 = alloca i64, align 8
  %317 = alloca ptr, align 8
  %318 = alloca i32, align 4
  %319 = alloca i32, align 4
  %320 = alloca i32, align 4
  %321 = alloca %struct.s2n_result, align 4
  %322 = alloca ptr, align 8
  %323 = alloca i32, align 4
  %324 = alloca ptr, align 8
  %325 = alloca %struct.s2n_result, align 4
  %326 = alloca i32, align 4
  %327 = alloca %struct.s2n_stuffer, align 8
  %328 = alloca i32, align 4
  %329 = alloca i32, align 4
  %330 = alloca i32, align 4
  %331 = alloca i32, align 4
  %332 = alloca i32, align 4
  %333 = alloca i32, align 4
  %334 = alloca i32, align 4
  %335 = alloca i32, align 4
  %336 = alloca i32, align 4
  %337 = alloca %struct.s2n_result, align 4
  %338 = alloca %struct.s2n_result, align 4
  %339 = alloca i64, align 8
  %340 = alloca ptr, align 8
  %341 = alloca i32, align 4
  %342 = alloca i32, align 4
  %343 = alloca i32, align 4
  %344 = alloca i32, align 4
  %345 = alloca i32, align 4
  %346 = alloca i32, align 4
  %347 = alloca ptr, align 8
  %348 = alloca i32, align 4
  %349 = alloca i32, align 4
  %350 = alloca i32, align 4
  %351 = alloca %struct.s2n_result, align 4
  %352 = alloca ptr, align 8
  %353 = alloca i32, align 4
  %354 = alloca i32, align 4
  %355 = alloca i32, align 4
  %356 = alloca %struct.s2n_result, align 4
  %357 = alloca i32, align 4
  %358 = 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 %359

359:                                              ; preds = %2
  br label %360

360:                                              ; preds = %359
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %361 = load ptr, ptr @stdout, align 8, !tbaa !9
  %362 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %361, ptr noundef @.str, ptr noundef @.str.1) #11
  %363 = load ptr, ptr @stdout, align 8, !tbaa !9
  %364 = call i32 @fflush(ptr noundef %363)
  br label %365

365:                                              ; preds = %360
  %366 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true)
  %367 = icmp eq i32 %366, -1
  br i1 %367, label %368, label %419

368:                                              ; preds = %365
  br label %369

369:                                              ; preds = %368
  br label %370

370:                                              ; preds = %369
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #11
  %371 = call ptr @__errno_location() #12
  %372 = load i32, ptr %371, align 4, !tbaa !5
  store i32 %372, ptr %6, align 4, !tbaa !5
  %373 = load ptr, ptr @stderr, align 8, !tbaa !9
  %374 = call i32 @s2n_print_stacktrace(ptr noundef %373)
  %375 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %376 = trunc i8 %375 to i1
  br i1 %376, label %377, label %399

377:                                              ; preds = %370
  %378 = load ptr, ptr @stderr, align 8, !tbaa !9
  %379 = call i32 @fileno(ptr noundef %378) #11
  %380 = call i32 @isatty(i32 noundef %379) #11
  %381 = icmp ne i32 %380, 0
  br i1 %381, label %382, label %399

382:                                              ; preds = %377
  %383 = load i32, ptr %6, align 4, !tbaa !5
  %384 = call ptr @__errno_location() #12
  store i32 %383, ptr %384, align 4, !tbaa !5
  %385 = load ptr, ptr @stderr, align 8, !tbaa !9
  %386 = load i32, ptr @test_count, align 4, !tbaa !5
  %387 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %388 = load i32, ptr %387, align 4, !tbaa !5
  %389 = call ptr @s2n_strerror(i32 noundef %388, ptr noundef @.str.4)
  %390 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %391 = load i32, ptr %390, align 4, !tbaa !5
  %392 = call ptr @s2n_strerror_debug(i32 noundef %391, ptr noundef @.str.4)
  %393 = call ptr @__errno_location() #12
  %394 = load i32, ptr %393, align 4, !tbaa !5
  %395 = call ptr @strerror(i32 noundef %394) #11
  %396 = call ptr @__errno_location() #12
  %397 = load i32, ptr %396, align 4, !tbaa !5
  %398 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %385, ptr noundef @.str.2, i32 noundef %386, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 46, ptr noundef %389, ptr noundef %392, ptr noundef %395, i32 noundef %397) #11
  br label %416

399:                                              ; preds = %377, %370
  %400 = load i32, ptr %6, align 4, !tbaa !5
  %401 = call ptr @__errno_location() #12
  store i32 %400, ptr %401, align 4, !tbaa !5
  %402 = load ptr, ptr @stderr, align 8, !tbaa !9
  %403 = load i32, ptr @test_count, align 4, !tbaa !5
  %404 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %405 = load i32, ptr %404, align 4, !tbaa !5
  %406 = call ptr @s2n_strerror(i32 noundef %405, ptr noundef @.str.4)
  %407 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %408 = load i32, ptr %407, align 4, !tbaa !5
  %409 = call ptr @s2n_strerror_debug(i32 noundef %408, ptr noundef @.str.4)
  %410 = call ptr @__errno_location() #12
  %411 = load i32, ptr %410, align 4, !tbaa !5
  %412 = call ptr @strerror(i32 noundef %411) #11
  %413 = call ptr @__errno_location() #12
  %414 = load i32, ptr %413, align 4, !tbaa !5
  %415 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %402, ptr noundef @.str.5, i32 noundef %403, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 46, ptr noundef %406, ptr noundef %409, ptr noundef %412, i32 noundef %414) #11
  br label %416

416:                                              ; preds = %399, %382
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #11
  br label %417

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

418:                                              ; No predecessors!
  br label %419

419:                                              ; preds = %418, %365
  br label %420

420:                                              ; preds = %419
  br label %421

421:                                              ; preds = %420
  %422 = load i32, ptr @test_count, align 4, !tbaa !5
  %423 = add nsw i32 %422, 1
  store i32 %423, ptr @test_count, align 4, !tbaa !5
  %424 = call i32 @s2n_enable_atexit()
  %425 = icmp eq i32 %424, -1
  br i1 %425, label %426, label %477

426:                                              ; preds = %421
  br label %427

427:                                              ; preds = %426
  br label %428

428:                                              ; preds = %427
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #11
  %429 = call ptr @__errno_location() #12
  %430 = load i32, ptr %429, align 4, !tbaa !5
  store i32 %430, ptr %7, align 4, !tbaa !5
  %431 = load ptr, ptr @stderr, align 8, !tbaa !9
  %432 = call i32 @s2n_print_stacktrace(ptr noundef %431)
  %433 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %434 = trunc i8 %433 to i1
  br i1 %434, label %435, label %457

435:                                              ; preds = %428
  %436 = load ptr, ptr @stderr, align 8, !tbaa !9
  %437 = call i32 @fileno(ptr noundef %436) #11
  %438 = call i32 @isatty(i32 noundef %437) #11
  %439 = icmp ne i32 %438, 0
  br i1 %439, label %440, label %457

440:                                              ; preds = %435
  %441 = load i32, ptr %7, align 4, !tbaa !5
  %442 = call ptr @__errno_location() #12
  store i32 %441, ptr %442, align 4, !tbaa !5
  %443 = load ptr, ptr @stderr, align 8, !tbaa !9
  %444 = load i32, ptr @test_count, align 4, !tbaa !5
  %445 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %446 = load i32, ptr %445, align 4, !tbaa !5
  %447 = call ptr @s2n_strerror(i32 noundef %446, ptr noundef @.str.4)
  %448 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %449 = load i32, ptr %448, align 4, !tbaa !5
  %450 = call ptr @s2n_strerror_debug(i32 noundef %449, ptr noundef @.str.4)
  %451 = call ptr @__errno_location() #12
  %452 = load i32, ptr %451, align 4, !tbaa !5
  %453 = call ptr @strerror(i32 noundef %452) #11
  %454 = call ptr @__errno_location() #12
  %455 = load i32, ptr %454, align 4, !tbaa !5
  %456 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %443, ptr noundef @.str.2, i32 noundef %444, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 46, ptr noundef %447, ptr noundef %450, ptr noundef %453, i32 noundef %455) #11
  br label %474

457:                                              ; preds = %435, %428
  %458 = load i32, ptr %7, align 4, !tbaa !5
  %459 = call ptr @__errno_location() #12
  store i32 %458, ptr %459, align 4, !tbaa !5
  %460 = load ptr, ptr @stderr, align 8, !tbaa !9
  %461 = load i32, ptr @test_count, align 4, !tbaa !5
  %462 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %463 = load i32, ptr %462, align 4, !tbaa !5
  %464 = call ptr @s2n_strerror(i32 noundef %463, ptr noundef @.str.4)
  %465 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %466 = load i32, ptr %465, align 4, !tbaa !5
  %467 = call ptr @s2n_strerror_debug(i32 noundef %466, ptr noundef @.str.4)
  %468 = call ptr @__errno_location() #12
  %469 = load i32, ptr %468, align 4, !tbaa !5
  %470 = call ptr @strerror(i32 noundef %469) #11
  %471 = call ptr @__errno_location() #12
  %472 = load i32, ptr %471, align 4, !tbaa !5
  %473 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %460, ptr noundef @.str.5, i32 noundef %461, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 46, ptr noundef %464, ptr noundef %467, ptr noundef %470, i32 noundef %472) #11
  br label %474

474:                                              ; preds = %457, %440
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #11
  br label %475

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

476:                                              ; No predecessors!
  br label %477

477:                                              ; preds = %476, %421
  br label %478

478:                                              ; preds = %477
  br label %479

479:                                              ; preds = %478
  br label %480

480:                                              ; preds = %479
  %481 = call i32 @s2n_init()
  %482 = icmp eq i32 %481, -1
  br i1 %482, label %483, label %534

483:                                              ; preds = %480
  br label %484

484:                                              ; preds = %483
  br label %485

485:                                              ; preds = %484
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #11
  %486 = call ptr @__errno_location() #12
  %487 = load i32, ptr %486, align 4, !tbaa !5
  store i32 %487, ptr %8, align 4, !tbaa !5
  %488 = load ptr, ptr @stderr, align 8, !tbaa !9
  %489 = call i32 @s2n_print_stacktrace(ptr noundef %488)
  %490 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %491 = trunc i8 %490 to i1
  br i1 %491, label %492, label %514

492:                                              ; preds = %485
  %493 = load ptr, ptr @stderr, align 8, !tbaa !9
  %494 = call i32 @fileno(ptr noundef %493) #11
  %495 = call i32 @isatty(i32 noundef %494) #11
  %496 = icmp ne i32 %495, 0
  br i1 %496, label %497, label %514

497:                                              ; preds = %492
  %498 = load i32, ptr %8, align 4, !tbaa !5
  %499 = call ptr @__errno_location() #12
  store i32 %498, ptr %499, align 4, !tbaa !5
  %500 = load ptr, ptr @stderr, align 8, !tbaa !9
  %501 = load i32, ptr @test_count, align 4, !tbaa !5
  %502 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %503 = load i32, ptr %502, align 4, !tbaa !5
  %504 = call ptr @s2n_strerror(i32 noundef %503, ptr noundef @.str.4)
  %505 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %506 = load i32, ptr %505, align 4, !tbaa !5
  %507 = call ptr @s2n_strerror_debug(i32 noundef %506, ptr noundef @.str.4)
  %508 = call ptr @__errno_location() #12
  %509 = load i32, ptr %508, align 4, !tbaa !5
  %510 = call ptr @strerror(i32 noundef %509) #11
  %511 = call ptr @__errno_location() #12
  %512 = load i32, ptr %511, align 4, !tbaa !5
  %513 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %500, ptr noundef @.str.2, i32 noundef %501, ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 46, ptr noundef %504, ptr noundef %507, ptr noundef %510, i32 noundef %512) #11
  br label %531

514:                                              ; preds = %492, %485
  %515 = load i32, ptr %8, align 4, !tbaa !5
  %516 = call ptr @__errno_location() #12
  store i32 %515, ptr %516, align 4, !tbaa !5
  %517 = load ptr, ptr @stderr, align 8, !tbaa !9
  %518 = load i32, ptr @test_count, align 4, !tbaa !5
  %519 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %520 = load i32, ptr %519, align 4, !tbaa !5
  %521 = call ptr @s2n_strerror(i32 noundef %520, ptr noundef @.str.4)
  %522 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %523 = load i32, ptr %522, align 4, !tbaa !5
  %524 = call ptr @s2n_strerror_debug(i32 noundef %523, ptr noundef @.str.4)
  %525 = call ptr @__errno_location() #12
  %526 = load i32, ptr %525, align 4, !tbaa !5
  %527 = call ptr @strerror(i32 noundef %526) #11
  %528 = call ptr @__errno_location() #12
  %529 = load i32, ptr %528, align 4, !tbaa !5
  %530 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %517, ptr noundef @.str.5, i32 noundef %518, ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 46, ptr noundef %521, ptr noundef %524, ptr noundef %527, i32 noundef %529) #11
  br label %531

531:                                              ; preds = %514, %497
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #11
  br label %532

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

533:                                              ; No predecessors!
  br label %534

534:                                              ; preds = %533, %480
  br label %535

535:                                              ; preds = %534
  br label %536

536:                                              ; preds = %535
  br label %537

537:                                              ; preds = %536
  %538 = load i32, ptr @test_count, align 4, !tbaa !5
  %539 = add nsw i32 %538, 1
  store i32 %539, ptr @test_count, align 4, !tbaa !5
  %540 = call i32 (...) @s2n_disable_tls13_in_test()
  %541 = icmp eq i32 %540, -1
  br i1 %541, label %542, label %593

542:                                              ; preds = %537
  br label %543

543:                                              ; preds = %542
  br label %544

544:                                              ; preds = %543
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #11
  %545 = call ptr @__errno_location() #12
  %546 = load i32, ptr %545, align 4, !tbaa !5
  store i32 %546, ptr %9, align 4, !tbaa !5
  %547 = load ptr, ptr @stderr, align 8, !tbaa !9
  %548 = call i32 @s2n_print_stacktrace(ptr noundef %547)
  %549 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %550 = trunc i8 %549 to i1
  br i1 %550, label %551, label %573

551:                                              ; preds = %544
  %552 = load ptr, ptr @stderr, align 8, !tbaa !9
  %553 = call i32 @fileno(ptr noundef %552) #11
  %554 = call i32 @isatty(i32 noundef %553) #11
  %555 = icmp ne i32 %554, 0
  br i1 %555, label %556, label %573

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

573:                                              ; preds = %551, %544
  %574 = load i32, ptr %9, align 4, !tbaa !5
  %575 = call ptr @__errno_location() #12
  store i32 %574, ptr %575, align 4, !tbaa !5
  %576 = load ptr, ptr @stderr, align 8, !tbaa !9
  %577 = load i32, ptr @test_count, align 4, !tbaa !5
  %578 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %579 = load i32, ptr %578, align 4, !tbaa !5
  %580 = call ptr @s2n_strerror(i32 noundef %579, ptr noundef @.str.4)
  %581 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %582 = load i32, ptr %581, align 4, !tbaa !5
  %583 = call ptr @s2n_strerror_debug(i32 noundef %582, ptr noundef @.str.4)
  %584 = call ptr @__errno_location() #12
  %585 = load i32, ptr %584, align 4, !tbaa !5
  %586 = call ptr @strerror(i32 noundef %585) #11
  %587 = call ptr @__errno_location() #12
  %588 = load i32, ptr %587, align 4, !tbaa !5
  %589 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %576, ptr noundef @.str.5, i32 noundef %577, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 47, ptr noundef %580, ptr noundef %583, ptr noundef %586, i32 noundef %588) #11
  br label %590

590:                                              ; preds = %573, %556
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #11
  br label %591

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

592:                                              ; No predecessors!
  br label %593

593:                                              ; preds = %592, %537
  br label %594

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

595:                                              ; preds = %594
  %596 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef %10, ptr noundef @.str.9)
  %597 = getelementptr inbounds %struct.s2n_result, ptr %11, i32 0, i32 0
  store i32 %596, ptr %597, align 4
  %598 = getelementptr inbounds %struct.s2n_result, ptr %11, i32 0, i32 0
  %599 = load i32, ptr %598, align 4
  %600 = call zeroext i1 @s2n_result_is_ok(i32 %599)
  br i1 %600, label %602, label %601

601:                                              ; preds = %595
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %15413

602:                                              ; preds = %595
  br label %603

603:                                              ; preds = %602
  br label %604

604:                                              ; preds = %603
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #11
  store ptr @s2n_tls13_aes_256_gcm_sha384, ptr %13, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #11
  %605 = load ptr, ptr %13, align 8, !tbaa !9
  %606 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %605, i32 0, i32 6
  %607 = load ptr, ptr %606, align 8, !tbaa !15
  %608 = getelementptr inbounds %struct.s2n_record_algorithm, ptr %607, i32 0, i32 3
  %609 = load i64, ptr %608, align 8, !tbaa !17
  store i64 %609, ptr %14, align 8, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #11
  store ptr @s2n_tls13_chacha20_poly1305_sha256, ptr %15, align 8, !tbaa !9
  %610 = load ptr, ptr %15, align 8, !tbaa !9
  %611 = load i8, ptr %610, align 8
  %612 = and i8 %611, 1
  %613 = zext i8 %612 to i32
  %614 = icmp ne i32 %613, 0
  br i1 %614, label %616, label %615

615:                                              ; preds = %604
  store ptr @s2n_ecdhe_ecdsa_with_aes_256_gcm_sha384, ptr %15, align 8, !tbaa !9
  br label %616

616:                                              ; preds = %615, %604
  br label %617

617:                                              ; preds = %616
  %618 = load i32, ptr @test_count, align 4, !tbaa !5
  %619 = add nsw i32 %618, 1
  store i32 %619, ptr @test_count, align 4, !tbaa !5
  %620 = load ptr, ptr %13, align 8, !tbaa !9
  %621 = load i8, ptr %620, align 8
  %622 = and i8 %621, 1
  %623 = zext i8 %622 to i32
  %624 = icmp ne i32 %623, 0
  br i1 %624, label %678, label %625

625:                                              ; preds = %617
  br label %626

626:                                              ; preds = %625
  br label %627

627:                                              ; preds = %626
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #11
  %628 = call ptr @__errno_location() #12
  %629 = load i32, ptr %628, align 4, !tbaa !5
  store i32 %629, ptr %16, align 4, !tbaa !5
  %630 = load ptr, ptr @stderr, align 8, !tbaa !9
  %631 = call i32 @s2n_print_stacktrace(ptr noundef %630)
  %632 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %633 = trunc i8 %632 to i1
  br i1 %633, label %634, label %656

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
  %638 = icmp ne i32 %637, 0
  br i1 %638, label %639, label %656

639:                                              ; preds = %634
  %640 = load i32, ptr %16, align 4, !tbaa !5
  %641 = call ptr @__errno_location() #12
  store i32 %640, ptr %641, align 4, !tbaa !5
  %642 = load ptr, ptr @stderr, align 8, !tbaa !9
  %643 = load i32, ptr @test_count, align 4, !tbaa !5
  %644 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %645 = load i32, ptr %644, align 4, !tbaa !5
  %646 = call ptr @s2n_strerror(i32 noundef %645, ptr noundef @.str.4)
  %647 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %648 = load i32, ptr %647, align 4, !tbaa !5
  %649 = call ptr @s2n_strerror_debug(i32 noundef %648, ptr noundef @.str.4)
  %650 = call ptr @__errno_location() #12
  %651 = load i32, ptr %650, align 4, !tbaa !5
  %652 = call ptr @strerror(i32 noundef %651) #11
  %653 = call ptr @__errno_location() #12
  %654 = load i32, ptr %653, align 4, !tbaa !5
  %655 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %642, ptr noundef @.str.2, i32 noundef %643, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 64, ptr noundef %646, ptr noundef %649, ptr noundef %652, i32 noundef %654) #11
  br label %673

656:                                              ; preds = %634, %627
  %657 = load i32, ptr %16, align 4, !tbaa !5
  %658 = call ptr @__errno_location() #12
  store i32 %657, ptr %658, align 4, !tbaa !5
  %659 = load ptr, ptr @stderr, align 8, !tbaa !9
  %660 = load i32, ptr @test_count, align 4, !tbaa !5
  %661 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %662 = load i32, ptr %661, align 4, !tbaa !5
  %663 = call ptr @s2n_strerror(i32 noundef %662, ptr noundef @.str.4)
  %664 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %665 = load i32, ptr %664, align 4, !tbaa !5
  %666 = call ptr @s2n_strerror_debug(i32 noundef %665, ptr noundef @.str.4)
  %667 = call ptr @__errno_location() #12
  %668 = load i32, ptr %667, align 4, !tbaa !5
  %669 = call ptr @strerror(i32 noundef %668) #11
  %670 = call ptr @__errno_location() #12
  %671 = load i32, ptr %670, align 4, !tbaa !5
  %672 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %659, ptr noundef @.str.5, i32 noundef %660, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 64, ptr noundef %663, ptr noundef %666, ptr noundef %669, i32 noundef %671) #11
  br label %673

673:                                              ; preds = %656, %639
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #11
  br label %674

674:                                              ; preds = %673
  br label %675

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

676:                                              ; No predecessors!
  br label %677

677:                                              ; preds = %676
  br label %678

678:                                              ; preds = %677, %617
  br label %679

679:                                              ; preds = %678
  br label %680

680:                                              ; preds = %679
  br label %681

681:                                              ; preds = %680
  %682 = load i32, ptr @test_count, align 4, !tbaa !5
  %683 = add nsw i32 %682, 1
  store i32 %683, ptr @test_count, align 4, !tbaa !5
  %684 = load ptr, ptr %15, align 8, !tbaa !9
  %685 = load i8, ptr %684, align 8
  %686 = and i8 %685, 1
  %687 = zext i8 %686 to i32
  %688 = icmp ne i32 %687, 0
  br i1 %688, label %742, label %689

689:                                              ; preds = %681
  br label %690

690:                                              ; preds = %689
  br label %691

691:                                              ; preds = %690
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #11
  %692 = call ptr @__errno_location() #12
  %693 = load i32, ptr %692, align 4, !tbaa !5
  store i32 %693, ptr %17, align 4, !tbaa !5
  %694 = load ptr, ptr @stderr, align 8, !tbaa !9
  %695 = call i32 @s2n_print_stacktrace(ptr noundef %694)
  %696 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %697 = trunc i8 %696 to i1
  br i1 %697, label %698, label %720

698:                                              ; preds = %691
  %699 = load ptr, ptr @stderr, align 8, !tbaa !9
  %700 = call i32 @fileno(ptr noundef %699) #11
  %701 = call i32 @isatty(i32 noundef %700) #11
  %702 = icmp ne i32 %701, 0
  br i1 %702, label %703, label %720

703:                                              ; preds = %698
  %704 = load i32, ptr %17, align 4, !tbaa !5
  %705 = call ptr @__errno_location() #12
  store i32 %704, ptr %705, align 4, !tbaa !5
  %706 = load ptr, ptr @stderr, align 8, !tbaa !9
  %707 = load i32, ptr @test_count, align 4, !tbaa !5
  %708 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %709 = load i32, ptr %708, align 4, !tbaa !5
  %710 = call ptr @s2n_strerror(i32 noundef %709, ptr noundef @.str.4)
  %711 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %712 = load i32, ptr %711, align 4, !tbaa !5
  %713 = call ptr @s2n_strerror_debug(i32 noundef %712, ptr noundef @.str.4)
  %714 = call ptr @__errno_location() #12
  %715 = load i32, ptr %714, align 4, !tbaa !5
  %716 = call ptr @strerror(i32 noundef %715) #11
  %717 = call ptr @__errno_location() #12
  %718 = load i32, ptr %717, align 4, !tbaa !5
  %719 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %706, ptr noundef @.str.2, i32 noundef %707, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 65, ptr noundef %710, ptr noundef %713, ptr noundef %716, i32 noundef %718) #11
  br label %737

720:                                              ; preds = %698, %691
  %721 = load i32, ptr %17, align 4, !tbaa !5
  %722 = call ptr @__errno_location() #12
  store i32 %721, ptr %722, align 4, !tbaa !5
  %723 = load ptr, ptr @stderr, align 8, !tbaa !9
  %724 = load i32, ptr @test_count, align 4, !tbaa !5
  %725 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %726 = load i32, ptr %725, align 4, !tbaa !5
  %727 = call ptr @s2n_strerror(i32 noundef %726, ptr noundef @.str.4)
  %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_debug(i32 noundef %729, ptr noundef @.str.4)
  %731 = call ptr @__errno_location() #12
  %732 = load i32, ptr %731, align 4, !tbaa !5
  %733 = call ptr @strerror(i32 noundef %732) #11
  %734 = call ptr @__errno_location() #12
  %735 = load i32, ptr %734, align 4, !tbaa !5
  %736 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %723, ptr noundef @.str.5, i32 noundef %724, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 65, ptr noundef %727, ptr noundef %730, ptr noundef %733, i32 noundef %735) #11
  br label %737

737:                                              ; preds = %720, %703
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #11
  br label %738

738:                                              ; preds = %737
  br label %739

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

740:                                              ; No predecessors!
  br label %741

741:                                              ; preds = %740
  br label %742

742:                                              ; preds = %741, %681
  br label %743

743:                                              ; preds = %742
  br label %744

744:                                              ; preds = %743
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #11
  call void @llvm.memset.p0.i64(ptr align 1 %18, i8 0, i64 8, i1 false)
  call void @llvm.lifetime.start.p0(i64 5, ptr %19) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr %20) #11
  call void @llvm.memset.p0.i64(ptr align 8 %20, i8 0, i64 24, i1 false)
  call void @llvm.lifetime.start.p0(i64 40, ptr %21) #11
  call void @llvm.memset.p0.i64(ptr align 8 %21, i8 0, i64 40, i1 false)
  br label %745

745:                                              ; preds = %744
  %746 = load i32, ptr @test_count, align 4, !tbaa !5
  %747 = add nsw i32 %746, 1
  store i32 %747, ptr @test_count, align 4, !tbaa !5
  %748 = getelementptr inbounds [5 x i8], ptr %19, i64 0, i64 0
  %749 = call i32 @s2n_blob_init(ptr noundef %20, ptr noundef %748, i32 noundef 5)
  %750 = icmp eq i32 %749, -1
  br i1 %750, label %751, label %804

751:                                              ; preds = %745
  br label %752

752:                                              ; preds = %751
  br label %753

753:                                              ; preds = %752
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #11
  %754 = call ptr @__errno_location() #12
  %755 = load i32, ptr %754, align 4, !tbaa !5
  store i32 %755, ptr %22, align 4, !tbaa !5
  %756 = load ptr, ptr @stderr, align 8, !tbaa !9
  %757 = call i32 @s2n_print_stacktrace(ptr noundef %756)
  %758 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %759 = trunc i8 %758 to i1
  br i1 %759, label %760, label %782

760:                                              ; preds = %753
  %761 = load ptr, ptr @stderr, align 8, !tbaa !9
  %762 = call i32 @fileno(ptr noundef %761) #11
  %763 = call i32 @isatty(i32 noundef %762) #11
  %764 = icmp ne i32 %763, 0
  br i1 %764, label %765, label %782

765:                                              ; preds = %760
  %766 = load i32, ptr %22, align 4, !tbaa !5
  %767 = call ptr @__errno_location() #12
  store i32 %766, ptr %767, align 4, !tbaa !5
  %768 = load ptr, ptr @stderr, align 8, !tbaa !9
  %769 = load i32, ptr @test_count, align 4, !tbaa !5
  %770 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %771 = load i32, ptr %770, align 4, !tbaa !5
  %772 = call ptr @s2n_strerror(i32 noundef %771, ptr noundef @.str.4)
  %773 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %774 = load i32, ptr %773, align 4, !tbaa !5
  %775 = call ptr @s2n_strerror_debug(i32 noundef %774, ptr noundef @.str.4)
  %776 = call ptr @__errno_location() #12
  %777 = load i32, ptr %776, align 4, !tbaa !5
  %778 = call ptr @strerror(i32 noundef %777) #11
  %779 = call ptr @__errno_location() #12
  %780 = load i32, ptr %779, align 4, !tbaa !5
  %781 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %768, ptr noundef @.str.2, i32 noundef %769, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 76, ptr noundef %772, ptr noundef %775, ptr noundef %778, i32 noundef %780) #11
  br label %799

782:                                              ; preds = %760, %753
  %783 = load i32, ptr %22, align 4, !tbaa !5
  %784 = call ptr @__errno_location() #12
  store i32 %783, ptr %784, align 4, !tbaa !5
  %785 = load ptr, ptr @stderr, align 8, !tbaa !9
  %786 = load i32, ptr @test_count, align 4, !tbaa !5
  %787 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %788 = load i32, ptr %787, align 4, !tbaa !5
  %789 = call ptr @s2n_strerror(i32 noundef %788, ptr noundef @.str.4)
  %790 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %791 = load i32, ptr %790, align 4, !tbaa !5
  %792 = call ptr @s2n_strerror_debug(i32 noundef %791, ptr noundef @.str.4)
  %793 = call ptr @__errno_location() #12
  %794 = load i32, ptr %793, align 4, !tbaa !5
  %795 = call ptr @strerror(i32 noundef %794) #11
  %796 = call ptr @__errno_location() #12
  %797 = load i32, ptr %796, align 4, !tbaa !5
  %798 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %785, ptr noundef @.str.5, i32 noundef %786, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 76, ptr noundef %789, ptr noundef %792, ptr noundef %795, i32 noundef %797) #11
  br label %799

799:                                              ; preds = %782, %765
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #11
  br label %800

800:                                              ; preds = %799
  br label %801

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

802:                                              ; No predecessors!
  br label %803

803:                                              ; preds = %802
  br label %804

804:                                              ; preds = %803, %745
  br label %805

805:                                              ; preds = %804
  br label %806

806:                                              ; preds = %805
  br label %807

807:                                              ; preds = %806
  %808 = load i32, ptr @test_count, align 4, !tbaa !5
  %809 = add nsw i32 %808, 1
  store i32 %809, ptr @test_count, align 4, !tbaa !5
  %810 = call i32 @s2n_stuffer_init(ptr noundef %21, ptr noundef %20)
  %811 = icmp eq i32 %810, -1
  br i1 %811, label %812, label %865

812:                                              ; preds = %807
  br label %813

813:                                              ; preds = %812
  br label %814

814:                                              ; preds = %813
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #11
  %815 = call ptr @__errno_location() #12
  %816 = load i32, ptr %815, align 4, !tbaa !5
  store i32 %816, ptr %23, align 4, !tbaa !5
  %817 = load ptr, ptr @stderr, align 8, !tbaa !9
  %818 = call i32 @s2n_print_stacktrace(ptr noundef %817)
  %819 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %820 = trunc i8 %819 to i1
  br i1 %820, label %821, label %843

821:                                              ; preds = %814
  %822 = load ptr, ptr @stderr, align 8, !tbaa !9
  %823 = call i32 @fileno(ptr noundef %822) #11
  %824 = call i32 @isatty(i32 noundef %823) #11
  %825 = icmp ne i32 %824, 0
  br i1 %825, label %826, label %843

826:                                              ; preds = %821
  %827 = load i32, ptr %23, align 4, !tbaa !5
  %828 = call ptr @__errno_location() #12
  store i32 %827, ptr %828, align 4, !tbaa !5
  %829 = load ptr, ptr @stderr, align 8, !tbaa !9
  %830 = load i32, ptr @test_count, align 4, !tbaa !5
  %831 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %832 = load i32, ptr %831, align 4, !tbaa !5
  %833 = call ptr @s2n_strerror(i32 noundef %832, ptr noundef @.str.4)
  %834 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %835 = load i32, ptr %834, align 4, !tbaa !5
  %836 = call ptr @s2n_strerror_debug(i32 noundef %835, ptr noundef @.str.4)
  %837 = call ptr @__errno_location() #12
  %838 = load i32, ptr %837, align 4, !tbaa !5
  %839 = call ptr @strerror(i32 noundef %838) #11
  %840 = call ptr @__errno_location() #12
  %841 = load i32, ptr %840, align 4, !tbaa !5
  %842 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %829, ptr noundef @.str.2, i32 noundef %830, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 77, ptr noundef %833, ptr noundef %836, ptr noundef %839, i32 noundef %841) #11
  br label %860

843:                                              ; preds = %821, %814
  %844 = load i32, ptr %23, align 4, !tbaa !5
  %845 = call ptr @__errno_location() #12
  store i32 %844, ptr %845, align 4, !tbaa !5
  %846 = load ptr, ptr @stderr, align 8, !tbaa !9
  %847 = load i32, ptr @test_count, align 4, !tbaa !5
  %848 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %849 = load i32, ptr %848, align 4, !tbaa !5
  %850 = call ptr @s2n_strerror(i32 noundef %849, ptr noundef @.str.4)
  %851 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %852 = load i32, ptr %851, align 4, !tbaa !5
  %853 = call ptr @s2n_strerror_debug(i32 noundef %852, ptr noundef @.str.4)
  %854 = call ptr @__errno_location() #12
  %855 = load i32, ptr %854, align 4, !tbaa !5
  %856 = call ptr @strerror(i32 noundef %855) #11
  %857 = call ptr @__errno_location() #12
  %858 = load i32, ptr %857, align 4, !tbaa !5
  %859 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %846, ptr noundef @.str.5, i32 noundef %847, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 77, ptr noundef %850, ptr noundef %853, ptr noundef %856, i32 noundef %858) #11
  br label %860

860:                                              ; preds = %843, %826
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #11
  br label %861

861:                                              ; preds = %860
  br label %862

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

863:                                              ; No predecessors!
  br label %864

864:                                              ; preds = %863
  br label %865

865:                                              ; preds = %864, %807
  br label %866

866:                                              ; preds = %865
  br label %867

867:                                              ; preds = %866
  br label %868

868:                                              ; preds = %867
  %869 = load i32, ptr @test_count, align 4, !tbaa !5
  %870 = add nsw i32 %869, 1
  store i32 %870, ptr @test_count, align 4, !tbaa !5
  %871 = call i32 @s2n_key_update_write(ptr noundef %20)
  %872 = icmp eq i32 %871, -1
  br i1 %872, label %873, label %926

873:                                              ; preds = %868
  br label %874

874:                                              ; preds = %873
  br label %875

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

882:                                              ; preds = %875
  %883 = load ptr, ptr @stderr, align 8, !tbaa !9
  %884 = call i32 @fileno(ptr noundef %883) #11
  %885 = call i32 @isatty(i32 noundef %884) #11
  %886 = icmp ne i32 %885, 0
  br i1 %886, label %887, label %904

887:                                              ; preds = %882
  %888 = load i32, ptr %24, align 4, !tbaa !5
  %889 = call ptr @__errno_location() #12
  store i32 %888, ptr %889, align 4, !tbaa !5
  %890 = load ptr, ptr @stderr, align 8, !tbaa !9
  %891 = load i32, ptr @test_count, align 4, !tbaa !5
  %892 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %893 = load i32, ptr %892, align 4, !tbaa !5
  %894 = call ptr @s2n_strerror(i32 noundef %893, ptr noundef @.str.4)
  %895 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %896 = load i32, ptr %895, align 4, !tbaa !5
  %897 = call ptr @s2n_strerror_debug(i32 noundef %896, ptr noundef @.str.4)
  %898 = call ptr @__errno_location() #12
  %899 = load i32, ptr %898, align 4, !tbaa !5
  %900 = call ptr @strerror(i32 noundef %899) #11
  %901 = call ptr @__errno_location() #12
  %902 = load i32, ptr %901, align 4, !tbaa !5
  %903 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %890, ptr noundef @.str.2, i32 noundef %891, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 80, ptr noundef %894, ptr noundef %897, ptr noundef %900, i32 noundef %902) #11
  br label %921

904:                                              ; preds = %882, %875
  %905 = load i32, ptr %24, align 4, !tbaa !5
  %906 = call ptr @__errno_location() #12
  store i32 %905, ptr %906, align 4, !tbaa !5
  %907 = load ptr, ptr @stderr, align 8, !tbaa !9
  %908 = load i32, ptr @test_count, align 4, !tbaa !5
  %909 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %910 = load i32, ptr %909, align 4, !tbaa !5
  %911 = call ptr @s2n_strerror(i32 noundef %910, ptr noundef @.str.4)
  %912 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %913 = load i32, ptr %912, align 4, !tbaa !5
  %914 = call ptr @s2n_strerror_debug(i32 noundef %913, ptr noundef @.str.4)
  %915 = call ptr @__errno_location() #12
  %916 = load i32, ptr %915, align 4, !tbaa !5
  %917 = call ptr @strerror(i32 noundef %916) #11
  %918 = call ptr @__errno_location() #12
  %919 = load i32, ptr %918, align 4, !tbaa !5
  %920 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %907, ptr noundef @.str.5, i32 noundef %908, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 80, ptr noundef %911, ptr noundef %914, ptr noundef %917, i32 noundef %919) #11
  br label %921

921:                                              ; preds = %904, %887
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #11
  br label %922

922:                                              ; preds = %921
  br label %923

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

924:                                              ; No predecessors!
  br label %925

925:                                              ; preds = %924
  br label %926

926:                                              ; preds = %925, %868
  br label %927

927:                                              ; preds = %926
  br label %928

928:                                              ; preds = %927
  br label %929

929:                                              ; preds = %928
  %930 = load i32, ptr @test_count, align 4, !tbaa !5
  %931 = add nsw i32 %930, 1
  store i32 %931, ptr @test_count, align 4, !tbaa !5
  %932 = call i32 @s2n_stuffer_skip_write(ptr noundef %21, i32 noundef 5)
  %933 = icmp eq i32 %932, -1
  br i1 %933, label %934, label %987

934:                                              ; preds = %929
  br label %935

935:                                              ; preds = %934
  br label %936

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

943:                                              ; preds = %936
  %944 = load ptr, ptr @stderr, align 8, !tbaa !9
  %945 = call i32 @fileno(ptr noundef %944) #11
  %946 = call i32 @isatty(i32 noundef %945) #11
  %947 = icmp ne i32 %946, 0
  br i1 %947, label %948, label %965

948:                                              ; preds = %943
  %949 = load i32, ptr %25, align 4, !tbaa !5
  %950 = call ptr @__errno_location() #12
  store i32 %949, ptr %950, align 4, !tbaa !5
  %951 = load ptr, ptr @stderr, align 8, !tbaa !9
  %952 = load i32, ptr @test_count, align 4, !tbaa !5
  %953 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %954 = load i32, ptr %953, align 4, !tbaa !5
  %955 = call ptr @s2n_strerror(i32 noundef %954, ptr noundef @.str.4)
  %956 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %957 = load i32, ptr %956, align 4, !tbaa !5
  %958 = call ptr @s2n_strerror_debug(i32 noundef %957, ptr noundef @.str.4)
  %959 = call ptr @__errno_location() #12
  %960 = load i32, ptr %959, align 4, !tbaa !5
  %961 = call ptr @strerror(i32 noundef %960) #11
  %962 = call ptr @__errno_location() #12
  %963 = load i32, ptr %962, align 4, !tbaa !5
  %964 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %951, ptr noundef @.str.2, i32 noundef %952, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 83, ptr noundef %955, ptr noundef %958, ptr noundef %961, i32 noundef %963) #11
  br label %982

965:                                              ; preds = %943, %936
  %966 = load i32, ptr %25, align 4, !tbaa !5
  %967 = call ptr @__errno_location() #12
  store i32 %966, ptr %967, align 4, !tbaa !5
  %968 = load ptr, ptr @stderr, align 8, !tbaa !9
  %969 = load i32, ptr @test_count, align 4, !tbaa !5
  %970 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %971 = load i32, ptr %970, align 4, !tbaa !5
  %972 = call ptr @s2n_strerror(i32 noundef %971, ptr noundef @.str.4)
  %973 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %974 = load i32, ptr %973, align 4, !tbaa !5
  %975 = call ptr @s2n_strerror_debug(i32 noundef %974, ptr noundef @.str.4)
  %976 = call ptr @__errno_location() #12
  %977 = load i32, ptr %976, align 4, !tbaa !5
  %978 = call ptr @strerror(i32 noundef %977) #11
  %979 = call ptr @__errno_location() #12
  %980 = load i32, ptr %979, align 4, !tbaa !5
  %981 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %968, ptr noundef @.str.5, i32 noundef %969, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 83, ptr noundef %972, ptr noundef %975, ptr noundef %978, i32 noundef %980) #11
  br label %982

982:                                              ; preds = %965, %948
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #11
  br label %983

983:                                              ; preds = %982
  br label %984

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

985:                                              ; No predecessors!
  br label %986

986:                                              ; preds = %985
  br label %987

987:                                              ; preds = %986, %929
  br label %988

988:                                              ; preds = %987
  br label %989

989:                                              ; preds = %988
  call void @llvm.lifetime.start.p0(i64 1, ptr %26) #11
  store i8 0, ptr %26, align 1, !tbaa !21
  br label %990

990:                                              ; preds = %989
  %991 = load i32, ptr @test_count, align 4, !tbaa !5
  %992 = add nsw i32 %991, 1
  store i32 %992, ptr @test_count, align 4, !tbaa !5
  %993 = call i32 @s2n_stuffer_read_uint8(ptr noundef %21, ptr noundef %26)
  %994 = icmp eq i32 %993, -1
  br i1 %994, label %995, label %1048

995:                                              ; preds = %990
  br label %996

996:                                              ; preds = %995
  br label %997

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

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

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

1026:                                             ; preds = %1004, %997
  %1027 = load i32, ptr %27, align 4, !tbaa !5
  %1028 = call ptr @__errno_location() #12
  store i32 %1027, ptr %1028, align 4, !tbaa !5
  %1029 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1030 = load i32, ptr @test_count, align 4, !tbaa !5
  %1031 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1032 = load i32, ptr %1031, align 4, !tbaa !5
  %1033 = call ptr @s2n_strerror(i32 noundef %1032, ptr noundef @.str.4)
  %1034 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1035 = load i32, ptr %1034, align 4, !tbaa !5
  %1036 = call ptr @s2n_strerror_debug(i32 noundef %1035, ptr noundef @.str.4)
  %1037 = call ptr @__errno_location() #12
  %1038 = load i32, ptr %1037, align 4, !tbaa !5
  %1039 = call ptr @strerror(i32 noundef %1038) #11
  %1040 = call ptr @__errno_location() #12
  %1041 = load i32, ptr %1040, align 4, !tbaa !5
  %1042 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1029, ptr noundef @.str.5, i32 noundef %1030, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 86, ptr noundef %1033, ptr noundef %1036, ptr noundef %1039, i32 noundef %1041) #11
  br label %1043

1043:                                             ; preds = %1026, %1009
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #11
  br label %1044

1044:                                             ; preds = %1043
  br label %1045

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

1046:                                             ; No predecessors!
  br label %1047

1047:                                             ; preds = %1046
  br label %1048

1048:                                             ; preds = %1047, %990
  br label %1049

1049:                                             ; preds = %1048
  br label %1050

1050:                                             ; preds = %1049
  br label %1051

1051:                                             ; preds = %1050
  %1052 = load i32, ptr @test_count, align 4, !tbaa !5
  %1053 = add nsw i32 %1052, 1
  store i32 %1053, ptr @test_count, align 4, !tbaa !5
  %1054 = load i8, ptr %26, align 1, !tbaa !21
  %1055 = zext i8 %1054 to i32
  %1056 = icmp eq i32 %1055, 24
  br i1 %1056, label %1110, label %1057

1057:                                             ; preds = %1051
  br label %1058

1058:                                             ; preds = %1057
  br label %1059

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

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

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

1088:                                             ; preds = %1066, %1059
  %1089 = load i32, ptr %28, align 4, !tbaa !5
  %1090 = call ptr @__errno_location() #12
  store i32 %1089, ptr %1090, align 4, !tbaa !5
  %1091 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1092 = load i32, ptr @test_count, align 4, !tbaa !5
  %1093 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1094 = load i32, ptr %1093, align 4, !tbaa !5
  %1095 = call ptr @s2n_strerror(i32 noundef %1094, ptr noundef @.str.4)
  %1096 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1097 = load i32, ptr %1096, align 4, !tbaa !5
  %1098 = call ptr @s2n_strerror_debug(i32 noundef %1097, ptr noundef @.str.4)
  %1099 = call ptr @__errno_location() #12
  %1100 = load i32, ptr %1099, align 4, !tbaa !5
  %1101 = call ptr @strerror(i32 noundef %1100) #11
  %1102 = call ptr @__errno_location() #12
  %1103 = load i32, ptr %1102, align 4, !tbaa !5
  %1104 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1091, ptr noundef @.str.5, i32 noundef %1092, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 87, ptr noundef %1095, ptr noundef %1098, ptr noundef %1101, i32 noundef %1103) #11
  br label %1105

1105:                                             ; preds = %1088, %1071
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #11
  br label %1106

1106:                                             ; preds = %1105
  br label %1107

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

1108:                                             ; No predecessors!
  br label %1109

1109:                                             ; preds = %1108
  br label %1110

1110:                                             ; preds = %1109, %1051
  br label %1111

1111:                                             ; preds = %1110
  br label %1112

1112:                                             ; preds = %1111
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #11
  store i32 0, ptr %29, align 4, !tbaa !5
  br label %1113

1113:                                             ; preds = %1112
  %1114 = load i32, ptr @test_count, align 4, !tbaa !5
  %1115 = add nsw i32 %1114, 1
  store i32 %1115, ptr @test_count, align 4, !tbaa !5
  %1116 = call i32 @s2n_stuffer_read_uint24(ptr noundef %21, ptr noundef %29)
  %1117 = icmp eq i32 %1116, -1
  br i1 %1117, label %1118, label %1171

1118:                                             ; preds = %1113
  br label %1119

1119:                                             ; preds = %1118
  br label %1120

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

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

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

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

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

1167:                                             ; preds = %1166
  br label %1168

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

1169:                                             ; No predecessors!
  br label %1170

1170:                                             ; preds = %1169
  br label %1171

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

1172:                                             ; preds = %1171
  br label %1173

1173:                                             ; preds = %1172
  br label %1174

1174:                                             ; preds = %1173
  %1175 = load i32, ptr @test_count, align 4, !tbaa !5
  %1176 = add nsw i32 %1175, 1
  store i32 %1176, ptr @test_count, align 4, !tbaa !5
  %1177 = load i32, ptr %29, align 4, !tbaa !5
  %1178 = icmp eq i32 %1177, 1
  br i1 %1178, label %1232, label %1179

1179:                                             ; preds = %1174
  br label %1180

1180:                                             ; preds = %1179
  br label %1181

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

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

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

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

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

1228:                                             ; preds = %1227
  br label %1229

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

1230:                                             ; No predecessors!
  br label %1231

1231:                                             ; preds = %1230
  br label %1232

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

1233:                                             ; preds = %1232
  br label %1234

1234:                                             ; preds = %1233
  call void @llvm.lifetime.start.p0(i64 1, ptr %32) #11
  store i8 0, ptr %32, align 1, !tbaa !21
  br label %1235

1235:                                             ; preds = %1234
  %1236 = load i32, ptr @test_count, align 4, !tbaa !5
  %1237 = add nsw i32 %1236, 1
  store i32 %1237, ptr @test_count, align 4, !tbaa !5
  %1238 = call i32 @s2n_stuffer_read_uint8(ptr noundef %21, ptr noundef %32)
  %1239 = icmp eq i32 %1238, -1
  br i1 %1239, label %1240, label %1293

1240:                                             ; preds = %1235
  br label %1241

1241:                                             ; preds = %1240
  br label %1242

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

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

1254:                                             ; preds = %1249
  %1255 = load i32, ptr %33, align 4, !tbaa !5
  %1256 = call ptr @__errno_location() #12
  store i32 %1255, ptr %1256, align 4, !tbaa !5
  %1257 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1258 = load i32, ptr @test_count, align 4, !tbaa !5
  %1259 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1260 = load i32, ptr %1259, align 4, !tbaa !5
  %1261 = call ptr @s2n_strerror(i32 noundef %1260, ptr noundef @.str.4)
  %1262 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1263 = load i32, ptr %1262, align 4, !tbaa !5
  %1264 = call ptr @s2n_strerror_debug(i32 noundef %1263, ptr noundef @.str.4)
  %1265 = call ptr @__errno_location() #12
  %1266 = load i32, ptr %1265, align 4, !tbaa !5
  %1267 = call ptr @strerror(i32 noundef %1266) #11
  %1268 = call ptr @__errno_location() #12
  %1269 = load i32, ptr %1268, align 4, !tbaa !5
  %1270 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1257, ptr noundef @.str.2, i32 noundef %1258, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 94, ptr noundef %1261, ptr noundef %1264, ptr noundef %1267, i32 noundef %1269) #11
  br label %1288

1271:                                             ; preds = %1249, %1242
  %1272 = load i32, ptr %33, align 4, !tbaa !5
  %1273 = call ptr @__errno_location() #12
  store i32 %1272, ptr %1273, align 4, !tbaa !5
  %1274 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1275 = load i32, ptr @test_count, align 4, !tbaa !5
  %1276 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1277 = load i32, ptr %1276, align 4, !tbaa !5
  %1278 = call ptr @s2n_strerror(i32 noundef %1277, ptr noundef @.str.4)
  %1279 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1280 = load i32, ptr %1279, align 4, !tbaa !5
  %1281 = call ptr @s2n_strerror_debug(i32 noundef %1280, ptr noundef @.str.4)
  %1282 = call ptr @__errno_location() #12
  %1283 = load i32, ptr %1282, align 4, !tbaa !5
  %1284 = call ptr @strerror(i32 noundef %1283) #11
  %1285 = call ptr @__errno_location() #12
  %1286 = load i32, ptr %1285, align 4, !tbaa !5
  %1287 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1274, ptr noundef @.str.5, i32 noundef %1275, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 94, ptr noundef %1278, ptr noundef %1281, ptr noundef %1284, i32 noundef %1286) #11
  br label %1288

1288:                                             ; preds = %1271, %1254
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #11
  br label %1289

1289:                                             ; preds = %1288
  br label %1290

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

1291:                                             ; No predecessors!
  br label %1292

1292:                                             ; preds = %1291
  br label %1293

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

1294:                                             ; preds = %1293
  br label %1295

1295:                                             ; preds = %1294
  br label %1296

1296:                                             ; preds = %1295
  %1297 = load i32, ptr @test_count, align 4, !tbaa !5
  %1298 = add nsw i32 %1297, 1
  store i32 %1298, ptr @test_count, align 4, !tbaa !5
  %1299 = load i8, ptr %32, align 1, !tbaa !21
  %1300 = zext i8 %1299 to i32
  %1301 = icmp eq i32 %1300, 0
  br i1 %1301, label %1355, label %1302

1302:                                             ; preds = %1296
  br label %1303

1303:                                             ; preds = %1302
  br label %1304

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

1311:                                             ; preds = %1304
  %1312 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1313 = call i32 @fileno(ptr noundef %1312) #11
  %1314 = call i32 @isatty(i32 noundef %1313) #11
  %1315 = icmp ne i32 %1314, 0
  br i1 %1315, label %1316, label %1333

1316:                                             ; preds = %1311
  %1317 = load i32, ptr %34, align 4, !tbaa !5
  %1318 = call ptr @__errno_location() #12
  store i32 %1317, ptr %1318, align 4, !tbaa !5
  %1319 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1320 = load i32, ptr @test_count, align 4, !tbaa !5
  %1321 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1322 = load i32, ptr %1321, align 4, !tbaa !5
  %1323 = call ptr @s2n_strerror(i32 noundef %1322, ptr noundef @.str.4)
  %1324 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1325 = load i32, ptr %1324, align 4, !tbaa !5
  %1326 = call ptr @s2n_strerror_debug(i32 noundef %1325, ptr noundef @.str.4)
  %1327 = call ptr @__errno_location() #12
  %1328 = load i32, ptr %1327, align 4, !tbaa !5
  %1329 = call ptr @strerror(i32 noundef %1328) #11
  %1330 = call ptr @__errno_location() #12
  %1331 = load i32, ptr %1330, align 4, !tbaa !5
  %1332 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1319, ptr noundef @.str.2, i32 noundef %1320, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 95, ptr noundef %1323, ptr noundef %1326, ptr noundef %1329, i32 noundef %1331) #11
  br label %1350

1333:                                             ; preds = %1311, %1304
  %1334 = load i32, ptr %34, align 4, !tbaa !5
  %1335 = call ptr @__errno_location() #12
  store i32 %1334, ptr %1335, align 4, !tbaa !5
  %1336 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1337 = load i32, ptr @test_count, align 4, !tbaa !5
  %1338 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1339 = load i32, ptr %1338, align 4, !tbaa !5
  %1340 = call ptr @s2n_strerror(i32 noundef %1339, ptr noundef @.str.4)
  %1341 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1342 = load i32, ptr %1341, align 4, !tbaa !5
  %1343 = call ptr @s2n_strerror_debug(i32 noundef %1342, ptr noundef @.str.4)
  %1344 = call ptr @__errno_location() #12
  %1345 = load i32, ptr %1344, align 4, !tbaa !5
  %1346 = call ptr @strerror(i32 noundef %1345) #11
  %1347 = call ptr @__errno_location() #12
  %1348 = load i32, ptr %1347, align 4, !tbaa !5
  %1349 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1336, ptr noundef @.str.5, i32 noundef %1337, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 95, ptr noundef %1340, ptr noundef %1343, ptr noundef %1346, i32 noundef %1348) #11
  br label %1350

1350:                                             ; preds = %1333, %1316
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #11
  br label %1351

1351:                                             ; preds = %1350
  br label %1352

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

1353:                                             ; No predecessors!
  br label %1354

1354:                                             ; preds = %1353
  br label %1355

1355:                                             ; preds = %1354, %1296
  br label %1356

1356:                                             ; preds = %1355
  br label %1357

1357:                                             ; preds = %1356
  call void @llvm.lifetime.end.p0(i64 1, ptr %32) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %26) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr %21) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %20) #11
  call void @llvm.lifetime.end.p0(i64 5, ptr %19) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #11
  store i64 10, ptr %35, align 8, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 40, ptr %36) #11
  br label %1358

1358:                                             ; preds = %1357
  %1359 = load i32, ptr @test_count, align 4, !tbaa !5
  %1360 = add nsw i32 %1359, 1
  store i32 %1360, ptr @test_count, align 4, !tbaa !5
  %1361 = call i32 @s2n_stuffer_alloc(ptr noundef %36, i32 noundef 10)
  %1362 = icmp eq i32 %1361, -1
  br i1 %1362, label %1363, label %1416

1363:                                             ; preds = %1358
  br label %1364

1364:                                             ; preds = %1363
  br label %1365

1365:                                             ; preds = %1364
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #11
  %1366 = call ptr @__errno_location() #12
  %1367 = load i32, ptr %1366, align 4, !tbaa !5
  store i32 %1367, ptr %37, align 4, !tbaa !5
  %1368 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1369 = call i32 @s2n_print_stacktrace(ptr noundef %1368)
  %1370 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1371 = trunc i8 %1370 to i1
  br i1 %1371, label %1372, label %1394

1372:                                             ; preds = %1365
  %1373 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1374 = call i32 @fileno(ptr noundef %1373) #11
  %1375 = call i32 @isatty(i32 noundef %1374) #11
  %1376 = icmp ne i32 %1375, 0
  br i1 %1376, label %1377, label %1394

1377:                                             ; preds = %1372
  %1378 = load i32, ptr %37, align 4, !tbaa !5
  %1379 = call ptr @__errno_location() #12
  store i32 %1378, ptr %1379, align 4, !tbaa !5
  %1380 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1381 = load i32, ptr @test_count, align 4, !tbaa !5
  %1382 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1383 = load i32, ptr %1382, align 4, !tbaa !5
  %1384 = call ptr @s2n_strerror(i32 noundef %1383, ptr noundef @.str.4)
  %1385 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1386 = load i32, ptr %1385, align 4, !tbaa !5
  %1387 = call ptr @s2n_strerror_debug(i32 noundef %1386, ptr noundef @.str.4)
  %1388 = call ptr @__errno_location() #12
  %1389 = load i32, ptr %1388, align 4, !tbaa !5
  %1390 = call ptr @strerror(i32 noundef %1389) #11
  %1391 = call ptr @__errno_location() #12
  %1392 = load i32, ptr %1391, align 4, !tbaa !5
  %1393 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1380, ptr noundef @.str.2, i32 noundef %1381, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 111, ptr noundef %1384, ptr noundef %1387, ptr noundef %1390, i32 noundef %1392) #11
  br label %1411

1394:                                             ; preds = %1372, %1365
  %1395 = load i32, ptr %37, align 4, !tbaa !5
  %1396 = call ptr @__errno_location() #12
  store i32 %1395, ptr %1396, 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 @.str.4)
  %1402 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1403 = load i32, ptr %1402, align 4, !tbaa !5
  %1404 = call ptr @s2n_strerror_debug(i32 noundef %1403, ptr noundef @.str.4)
  %1405 = call ptr @__errno_location() #12
  %1406 = load i32, ptr %1405, align 4, !tbaa !5
  %1407 = call ptr @strerror(i32 noundef %1406) #11
  %1408 = call ptr @__errno_location() #12
  %1409 = load i32, ptr %1408, align 4, !tbaa !5
  %1410 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1397, ptr noundef @.str.5, i32 noundef %1398, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 111, ptr noundef %1401, ptr noundef %1404, ptr noundef %1407, i32 noundef %1409) #11
  br label %1411

1411:                                             ; preds = %1394, %1377
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #11
  br label %1412

1412:                                             ; preds = %1411
  br label %1413

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

1414:                                             ; No predecessors!
  br label %1415

1415:                                             ; preds = %1414
  br label %1416

1416:                                             ; preds = %1415, %1358
  br label %1417

1417:                                             ; preds = %1416
  br label %1418

1418:                                             ; preds = %1417
  br label %1419

1419:                                             ; preds = %1418
  %1420 = load i32, ptr @test_count, align 4, !tbaa !5
  %1421 = add nsw i32 %1420, 1
  store i32 %1421, ptr @test_count, align 4, !tbaa !5
  %1422 = call i32 @s2n_stuffer_skip_write(ptr noundef %36, i32 noundef 10)
  %1423 = icmp eq i32 %1422, -1
  br i1 %1423, label %1424, label %1477

1424:                                             ; preds = %1419
  br label %1425

1425:                                             ; preds = %1424
  br label %1426

1426:                                             ; preds = %1425
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #11
  %1427 = call ptr @__errno_location() #12
  %1428 = load i32, ptr %1427, align 4, !tbaa !5
  store i32 %1428, ptr %38, align 4, !tbaa !5
  %1429 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1430 = call i32 @s2n_print_stacktrace(ptr noundef %1429)
  %1431 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1432 = trunc i8 %1431 to i1
  br i1 %1432, label %1433, label %1455

1433:                                             ; preds = %1426
  %1434 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1435 = call i32 @fileno(ptr noundef %1434) #11
  %1436 = call i32 @isatty(i32 noundef %1435) #11
  %1437 = icmp ne i32 %1436, 0
  br i1 %1437, label %1438, label %1455

1438:                                             ; preds = %1433
  %1439 = load i32, ptr %38, align 4, !tbaa !5
  %1440 = call ptr @__errno_location() #12
  store i32 %1439, ptr %1440, align 4, !tbaa !5
  %1441 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1442 = load i32, ptr @test_count, align 4, !tbaa !5
  %1443 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1444 = load i32, ptr %1443, align 4, !tbaa !5
  %1445 = call ptr @s2n_strerror(i32 noundef %1444, ptr noundef @.str.4)
  %1446 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1447 = load i32, ptr %1446, align 4, !tbaa !5
  %1448 = call ptr @s2n_strerror_debug(i32 noundef %1447, ptr noundef @.str.4)
  %1449 = call ptr @__errno_location() #12
  %1450 = load i32, ptr %1449, align 4, !tbaa !5
  %1451 = call ptr @strerror(i32 noundef %1450) #11
  %1452 = call ptr @__errno_location() #12
  %1453 = load i32, ptr %1452, align 4, !tbaa !5
  %1454 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1441, ptr noundef @.str.2, i32 noundef %1442, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 112, ptr noundef %1445, ptr noundef %1448, ptr noundef %1451, i32 noundef %1453) #11
  br label %1472

1455:                                             ; preds = %1433, %1426
  %1456 = load i32, ptr %38, align 4, !tbaa !5
  %1457 = call ptr @__errno_location() #12
  store i32 %1456, ptr %1457, align 4, !tbaa !5
  %1458 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1459 = load i32, ptr @test_count, align 4, !tbaa !5
  %1460 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1461 = load i32, ptr %1460, align 4, !tbaa !5
  %1462 = call ptr @s2n_strerror(i32 noundef %1461, ptr noundef @.str.4)
  %1463 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1464 = load i32, ptr %1463, align 4, !tbaa !5
  %1465 = call ptr @s2n_strerror_debug(i32 noundef %1464, ptr noundef @.str.4)
  %1466 = call ptr @__errno_location() #12
  %1467 = load i32, ptr %1466, align 4, !tbaa !5
  %1468 = call ptr @strerror(i32 noundef %1467) #11
  %1469 = call ptr @__errno_location() #12
  %1470 = load i32, ptr %1469, align 4, !tbaa !5
  %1471 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1458, ptr noundef @.str.5, i32 noundef %1459, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 112, ptr noundef %1462, ptr noundef %1465, ptr noundef %1468, i32 noundef %1470) #11
  br label %1472

1472:                                             ; preds = %1455, %1438
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #11
  br label %1473

1473:                                             ; preds = %1472
  br label %1474

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

1475:                                             ; No predecessors!
  br label %1476

1476:                                             ; preds = %1475
  br label %1477

1477:                                             ; preds = %1476, %1419
  br label %1478

1478:                                             ; preds = %1477
  br label %1479

1479:                                             ; preds = %1478
  call void @llvm.lifetime.start.p0(i64 8, ptr %39) #11
  store ptr null, ptr %39, align 8, !tbaa !9
  br label %1480

1480:                                             ; preds = %1479
  %1481 = load i32, ptr @test_count, align 4, !tbaa !5
  %1482 = add nsw i32 %1481, 1
  store i32 %1482, ptr @test_count, align 4, !tbaa !5
  %1483 = call ptr @s2n_config_new()
  store ptr %1483, ptr %39, align 8, !tbaa !9
  %1484 = icmp eq ptr %1483, null
  br i1 %1484, label %1485, label %1538

1485:                                             ; preds = %1480
  br label %1486

1486:                                             ; preds = %1485
  br label %1487

1487:                                             ; preds = %1486
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #11
  %1488 = call ptr @__errno_location() #12
  %1489 = load i32, ptr %1488, align 4, !tbaa !5
  store i32 %1489, ptr %40, align 4, !tbaa !5
  %1490 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1491 = call i32 @s2n_print_stacktrace(ptr noundef %1490)
  %1492 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1493 = trunc i8 %1492 to i1
  br i1 %1493, label %1494, label %1516

1494:                                             ; preds = %1487
  %1495 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1496 = call i32 @fileno(ptr noundef %1495) #11
  %1497 = call i32 @isatty(i32 noundef %1496) #11
  %1498 = icmp ne i32 %1497, 0
  br i1 %1498, label %1499, label %1516

1499:                                             ; preds = %1494
  %1500 = load i32, ptr %40, align 4, !tbaa !5
  %1501 = call ptr @__errno_location() #12
  store i32 %1500, ptr %1501, align 4, !tbaa !5
  %1502 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1503 = load i32, ptr @test_count, align 4, !tbaa !5
  %1504 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1505 = load i32, ptr %1504, align 4, !tbaa !5
  %1506 = call ptr @s2n_strerror(i32 noundef %1505, ptr noundef @.str.4)
  %1507 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1508 = load i32, ptr %1507, align 4, !tbaa !5
  %1509 = call ptr @s2n_strerror_debug(i32 noundef %1508, ptr noundef @.str.4)
  %1510 = call ptr @__errno_location() #12
  %1511 = load i32, ptr %1510, align 4, !tbaa !5
  %1512 = call ptr @strerror(i32 noundef %1511) #11
  %1513 = call ptr @__errno_location() #12
  %1514 = load i32, ptr %1513, align 4, !tbaa !5
  %1515 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1502, ptr noundef @.str.2, i32 noundef %1503, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 115, ptr noundef %1506, ptr noundef %1509, ptr noundef %1512, i32 noundef %1514) #11
  br label %1533

1516:                                             ; preds = %1494, %1487
  %1517 = load i32, ptr %40, align 4, !tbaa !5
  %1518 = call ptr @__errno_location() #12
  store i32 %1517, ptr %1518, align 4, !tbaa !5
  %1519 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1520 = load i32, ptr @test_count, align 4, !tbaa !5
  %1521 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1522 = load i32, ptr %1521, align 4, !tbaa !5
  %1523 = call ptr @s2n_strerror(i32 noundef %1522, ptr noundef @.str.4)
  %1524 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1525 = load i32, ptr %1524, align 4, !tbaa !5
  %1526 = call ptr @s2n_strerror_debug(i32 noundef %1525, ptr noundef @.str.4)
  %1527 = call ptr @__errno_location() #12
  %1528 = load i32, ptr %1527, align 4, !tbaa !5
  %1529 = call ptr @strerror(i32 noundef %1528) #11
  %1530 = call ptr @__errno_location() #12
  %1531 = load i32, ptr %1530, align 4, !tbaa !5
  %1532 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1519, ptr noundef @.str.5, i32 noundef %1520, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 115, ptr noundef %1523, ptr noundef %1526, ptr noundef %1529, i32 noundef %1531) #11
  br label %1533

1533:                                             ; preds = %1516, %1499
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #11
  br label %1534

1534:                                             ; preds = %1533
  br label %1535

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

1536:                                             ; No predecessors!
  br label %1537

1537:                                             ; preds = %1536
  br label %1538

1538:                                             ; preds = %1537, %1480
  br label %1539

1539:                                             ; preds = %1538
  br label %1540

1540:                                             ; preds = %1539
  br label %1541

1541:                                             ; preds = %1540
  %1542 = load i32, ptr @test_count, align 4, !tbaa !5
  %1543 = add nsw i32 %1542, 1
  store i32 %1543, ptr @test_count, align 4, !tbaa !5
  %1544 = load ptr, ptr %39, align 8, !tbaa !9
  %1545 = call i32 @s2n_config_enable_quic(ptr noundef %1544)
  %1546 = icmp eq i32 %1545, -1
  br i1 %1546, label %1547, label %1600

1547:                                             ; preds = %1541
  br label %1548

1548:                                             ; preds = %1547
  br label %1549

1549:                                             ; preds = %1548
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #11
  %1550 = call ptr @__errno_location() #12
  %1551 = load i32, ptr %1550, align 4, !tbaa !5
  store i32 %1551, ptr %41, align 4, !tbaa !5
  %1552 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1553 = call i32 @s2n_print_stacktrace(ptr noundef %1552)
  %1554 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1555 = trunc i8 %1554 to i1
  br i1 %1555, label %1556, label %1578

1556:                                             ; preds = %1549
  %1557 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1558 = call i32 @fileno(ptr noundef %1557) #11
  %1559 = call i32 @isatty(i32 noundef %1558) #11
  %1560 = icmp ne i32 %1559, 0
  br i1 %1560, label %1561, label %1578

1561:                                             ; preds = %1556
  %1562 = load i32, ptr %41, align 4, !tbaa !5
  %1563 = call ptr @__errno_location() #12
  store i32 %1562, ptr %1563, align 4, !tbaa !5
  %1564 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1565 = load i32, ptr @test_count, align 4, !tbaa !5
  %1566 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1567 = load i32, ptr %1566, align 4, !tbaa !5
  %1568 = call ptr @s2n_strerror(i32 noundef %1567, ptr noundef @.str.4)
  %1569 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1570 = load i32, ptr %1569, align 4, !tbaa !5
  %1571 = call ptr @s2n_strerror_debug(i32 noundef %1570, ptr noundef @.str.4)
  %1572 = call ptr @__errno_location() #12
  %1573 = load i32, ptr %1572, align 4, !tbaa !5
  %1574 = call ptr @strerror(i32 noundef %1573) #11
  %1575 = call ptr @__errno_location() #12
  %1576 = load i32, ptr %1575, align 4, !tbaa !5
  %1577 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1564, ptr noundef @.str.2, i32 noundef %1565, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 116, ptr noundef %1568, ptr noundef %1571, ptr noundef %1574, i32 noundef %1576) #11
  br label %1595

1578:                                             ; preds = %1556, %1549
  %1579 = load i32, ptr %41, align 4, !tbaa !5
  %1580 = call ptr @__errno_location() #12
  store i32 %1579, ptr %1580, align 4, !tbaa !5
  %1581 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1582 = load i32, ptr @test_count, align 4, !tbaa !5
  %1583 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1584 = load i32, ptr %1583, align 4, !tbaa !5
  %1585 = call ptr @s2n_strerror(i32 noundef %1584, ptr noundef @.str.4)
  %1586 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1587 = load i32, ptr %1586, align 4, !tbaa !5
  %1588 = call ptr @s2n_strerror_debug(i32 noundef %1587, ptr noundef @.str.4)
  %1589 = call ptr @__errno_location() #12
  %1590 = load i32, ptr %1589, align 4, !tbaa !5
  %1591 = call ptr @strerror(i32 noundef %1590) #11
  %1592 = call ptr @__errno_location() #12
  %1593 = load i32, ptr %1592, align 4, !tbaa !5
  %1594 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1581, ptr noundef @.str.5, i32 noundef %1582, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 116, ptr noundef %1585, ptr noundef %1588, ptr noundef %1591, i32 noundef %1593) #11
  br label %1595

1595:                                             ; preds = %1578, %1561
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #11
  br label %1596

1596:                                             ; preds = %1595
  br label %1597

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

1598:                                             ; No predecessors!
  br label %1599

1599:                                             ; preds = %1598
  br label %1600

1600:                                             ; preds = %1599, %1541
  br label %1601

1601:                                             ; preds = %1600
  br label %1602

1602:                                             ; preds = %1601
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #11
  store ptr null, ptr %42, align 8, !tbaa !9
  br label %1603

1603:                                             ; preds = %1602
  %1604 = load i32, ptr @test_count, align 4, !tbaa !5
  %1605 = add nsw i32 %1604, 1
  store i32 %1605, ptr @test_count, align 4, !tbaa !5
  %1606 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %1606, ptr %42, align 8, !tbaa !9
  %1607 = icmp eq ptr %1606, null
  br i1 %1607, label %1608, label %1661

1608:                                             ; preds = %1603
  br label %1609

1609:                                             ; preds = %1608
  br label %1610

1610:                                             ; preds = %1609
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #11
  %1611 = call ptr @__errno_location() #12
  %1612 = load i32, ptr %1611, align 4, !tbaa !5
  store i32 %1612, ptr %43, align 4, !tbaa !5
  %1613 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1614 = call i32 @s2n_print_stacktrace(ptr noundef %1613)
  %1615 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1616 = trunc i8 %1615 to i1
  br i1 %1616, label %1617, label %1639

1617:                                             ; preds = %1610
  %1618 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1619 = call i32 @fileno(ptr noundef %1618) #11
  %1620 = call i32 @isatty(i32 noundef %1619) #11
  %1621 = icmp ne i32 %1620, 0
  br i1 %1621, label %1622, label %1639

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

1639:                                             ; preds = %1617, %1610
  %1640 = load i32, ptr %43, align 4, !tbaa !5
  %1641 = call ptr @__errno_location() #12
  store i32 %1640, ptr %1641, align 4, !tbaa !5
  %1642 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1643 = load i32, ptr @test_count, align 4, !tbaa !5
  %1644 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1645 = load i32, ptr %1644, align 4, !tbaa !5
  %1646 = call ptr @s2n_strerror(i32 noundef %1645, ptr noundef @.str.4)
  %1647 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1648 = load i32, ptr %1647, align 4, !tbaa !5
  %1649 = call ptr @s2n_strerror_debug(i32 noundef %1648, ptr noundef @.str.4)
  %1650 = call ptr @__errno_location() #12
  %1651 = load i32, ptr %1650, align 4, !tbaa !5
  %1652 = call ptr @strerror(i32 noundef %1651) #11
  %1653 = call ptr @__errno_location() #12
  %1654 = load i32, ptr %1653, align 4, !tbaa !5
  %1655 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1642, ptr noundef @.str.5, i32 noundef %1643, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 119, ptr noundef %1646, ptr noundef %1649, ptr noundef %1652, i32 noundef %1654) #11
  br label %1656

1656:                                             ; preds = %1639, %1622
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #11
  br label %1657

1657:                                             ; preds = %1656
  br label %1658

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

1659:                                             ; No predecessors!
  br label %1660

1660:                                             ; preds = %1659
  br label %1661

1661:                                             ; preds = %1660, %1603
  br label %1662

1662:                                             ; preds = %1661
  br label %1663

1663:                                             ; preds = %1662
  br label %1664

1664:                                             ; preds = %1663
  %1665 = load i32, ptr @test_count, align 4, !tbaa !5
  %1666 = add nsw i32 %1665, 1
  store i32 %1666, ptr @test_count, align 4, !tbaa !5
  %1667 = load ptr, ptr %42, align 8, !tbaa !9
  %1668 = load ptr, ptr %39, align 8, !tbaa !9
  %1669 = call i32 @s2n_connection_set_config(ptr noundef %1667, ptr noundef %1668)
  %1670 = icmp eq i32 %1669, -1
  br i1 %1670, label %1671, label %1724

1671:                                             ; preds = %1664
  br label %1672

1672:                                             ; preds = %1671
  br label %1673

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

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

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

1702:                                             ; preds = %1680, %1673
  %1703 = load i32, ptr %44, align 4, !tbaa !5
  %1704 = call ptr @__errno_location() #12
  store i32 %1703, ptr %1704, align 4, !tbaa !5
  %1705 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1706 = load i32, ptr @test_count, align 4, !tbaa !5
  %1707 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1708 = load i32, ptr %1707, align 4, !tbaa !5
  %1709 = call ptr @s2n_strerror(i32 noundef %1708, ptr noundef @.str.4)
  %1710 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1711 = load i32, ptr %1710, align 4, !tbaa !5
  %1712 = call ptr @s2n_strerror_debug(i32 noundef %1711, ptr noundef @.str.4)
  %1713 = call ptr @__errno_location() #12
  %1714 = load i32, ptr %1713, align 4, !tbaa !5
  %1715 = call ptr @strerror(i32 noundef %1714) #11
  %1716 = call ptr @__errno_location() #12
  %1717 = load i32, ptr %1716, align 4, !tbaa !5
  %1718 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1705, ptr noundef @.str.5, i32 noundef %1706, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 120, ptr noundef %1709, ptr noundef %1712, ptr noundef %1715, i32 noundef %1717) #11
  br label %1719

1719:                                             ; preds = %1702, %1685
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #11
  br label %1720

1720:                                             ; preds = %1719
  br label %1721

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

1722:                                             ; No predecessors!
  br label %1723

1723:                                             ; preds = %1722
  br label %1724

1724:                                             ; preds = %1723, %1664
  br label %1725

1725:                                             ; preds = %1724
  br label %1726

1726:                                             ; preds = %1725
  br label %1727

1727:                                             ; preds = %1726
  br label %1728

1728:                                             ; preds = %1727
  br label %1729

1729:                                             ; preds = %1728
  %1730 = load i32, ptr @test_count, align 4, !tbaa !5
  %1731 = add nsw i32 %1730, 1
  store i32 %1731, ptr @test_count, align 4, !tbaa !5
  %1732 = load ptr, ptr %42, align 8, !tbaa !9
  %1733 = call i32 @s2n_key_update_recv(ptr noundef %1732, ptr noundef %36)
  %1734 = icmp eq i32 %1733, -1
  br i1 %1734, label %1788, label %1735

1735:                                             ; preds = %1729
  br label %1736

1736:                                             ; preds = %1735
  br label %1737

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

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

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

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

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

1784:                                             ; preds = %1783
  br label %1785

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

1786:                                             ; No predecessors!
  br label %1787

1787:                                             ; preds = %1786
  br label %1788

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

1789:                                             ; preds = %1788
  br label %1790

1790:                                             ; preds = %1789
  br label %1791

1791:                                             ; preds = %1790
  %1792 = load i32, ptr @test_count, align 4, !tbaa !5
  %1793 = add nsw i32 %1792, 1
  store i32 %1793, ptr @test_count, align 4, !tbaa !5
  %1794 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1795 = load i32, ptr %1794, align 4, !tbaa !5
  %1796 = icmp eq i32 %1795, 335544322
  br i1 %1796, label %1850, label %1797

1797:                                             ; preds = %1791
  br label %1798

1798:                                             ; preds = %1797
  br label %1799

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

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

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

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

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

1846:                                             ; preds = %1845
  br label %1847

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

1848:                                             ; No predecessors!
  br label %1849

1849:                                             ; preds = %1848
  br label %1850

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

1851:                                             ; preds = %1850
  br label %1852

1852:                                             ; preds = %1851
  br label %1853

1853:                                             ; preds = %1852
  %1854 = load i32, ptr @test_count, align 4, !tbaa !5
  %1855 = add nsw i32 %1854, 1
  store i32 %1855, ptr @test_count, align 4, !tbaa !5
  %1856 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1857 = load i32, ptr %1856, align 4, !tbaa !5
  %1858 = call ptr @s2n_strerror_debug(i32 noundef %1857, ptr noundef @.str.4)
  %1859 = icmp eq ptr %1858, null
  br i1 %1859, label %1860, label %1913

1860:                                             ; preds = %1853
  br label %1861

1861:                                             ; preds = %1860
  br label %1862

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

1869:                                             ; preds = %1862
  %1870 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1871 = call i32 @fileno(ptr noundef %1870) #11
  %1872 = call i32 @isatty(i32 noundef %1871) #11
  %1873 = icmp ne i32 %1872, 0
  br i1 %1873, label %1874, label %1891

1874:                                             ; preds = %1869
  %1875 = load i32, ptr %47, align 4, !tbaa !5
  %1876 = call ptr @__errno_location() #12
  store i32 %1875, ptr %1876, align 4, !tbaa !5
  %1877 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1878 = load i32, ptr @test_count, align 4, !tbaa !5
  %1879 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1880 = load i32, ptr %1879, align 4, !tbaa !5
  %1881 = call ptr @s2n_strerror(i32 noundef %1880, ptr noundef @.str.4)
  %1882 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1883 = load i32, ptr %1882, align 4, !tbaa !5
  %1884 = call ptr @s2n_strerror_debug(i32 noundef %1883, ptr noundef @.str.4)
  %1885 = call ptr @__errno_location() #12
  %1886 = load i32, ptr %1885, align 4, !tbaa !5
  %1887 = call ptr @strerror(i32 noundef %1886) #11
  %1888 = call ptr @__errno_location() #12
  %1889 = load i32, ptr %1888, align 4, !tbaa !5
  %1890 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1877, ptr noundef @.str.2, i32 noundef %1878, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 123, ptr noundef %1881, ptr noundef %1884, ptr noundef %1887, i32 noundef %1889) #11
  br label %1908

1891:                                             ; preds = %1869, %1862
  %1892 = load i32, ptr %47, align 4, !tbaa !5
  %1893 = call ptr @__errno_location() #12
  store i32 %1892, ptr %1893, align 4, !tbaa !5
  %1894 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1895 = load i32, ptr @test_count, align 4, !tbaa !5
  %1896 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1897 = load i32, ptr %1896, align 4, !tbaa !5
  %1898 = call ptr @s2n_strerror(i32 noundef %1897, ptr noundef @.str.4)
  %1899 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1900 = load i32, ptr %1899, align 4, !tbaa !5
  %1901 = call ptr @s2n_strerror_debug(i32 noundef %1900, ptr noundef @.str.4)
  %1902 = call ptr @__errno_location() #12
  %1903 = load i32, ptr %1902, align 4, !tbaa !5
  %1904 = call ptr @strerror(i32 noundef %1903) #11
  %1905 = call ptr @__errno_location() #12
  %1906 = load i32, ptr %1905, align 4, !tbaa !5
  %1907 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1894, ptr noundef @.str.5, i32 noundef %1895, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 123, ptr noundef %1898, ptr noundef %1901, ptr noundef %1904, i32 noundef %1906) #11
  br label %1908

1908:                                             ; preds = %1891, %1874
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #11
  br label %1909

1909:                                             ; preds = %1908
  br label %1910

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

1911:                                             ; No predecessors!
  br label %1912

1912:                                             ; preds = %1911
  br label %1913

1913:                                             ; preds = %1912, %1853
  br label %1914

1914:                                             ; preds = %1913
  br label %1915

1915:                                             ; preds = %1914
  br label %1916

1916:                                             ; preds = %1915
  br label %1917

1917:                                             ; preds = %1916
  call void @llvm.lifetime.start.p0(i64 1, ptr %48) #11
  store i8 0, ptr %48, align 1, !tbaa !21
  br label %1918

1918:                                             ; preds = %1917
  %1919 = load i32, ptr @test_count, align 4, !tbaa !5
  %1920 = add nsw i32 %1919, 1
  store i32 %1920, ptr @test_count, align 4, !tbaa !5
  %1921 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1922 = load i32, ptr %1921, align 4, !tbaa !5
  %1923 = call i32 @s2n_error_get_alert(i32 noundef %1922, ptr noundef %48)
  %1924 = icmp eq i32 %1923, -1
  br i1 %1924, label %1925, label %1978

1925:                                             ; preds = %1918
  br label %1926

1926:                                             ; preds = %1925
  br label %1927

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

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

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

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

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

1974:                                             ; preds = %1973
  br label %1975

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

1976:                                             ; No predecessors!
  br label %1977

1977:                                             ; preds = %1976
  br label %1978

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

1979:                                             ; preds = %1978
  br label %1980

1980:                                             ; preds = %1979
  br label %1981

1981:                                             ; preds = %1980
  %1982 = load i32, ptr @test_count, align 4, !tbaa !5
  %1983 = add nsw i32 %1982, 1
  store i32 %1983, ptr @test_count, align 4, !tbaa !5
  %1984 = load i8, ptr %48, align 1, !tbaa !21
  %1985 = zext i8 %1984 to i32
  %1986 = icmp eq i32 %1985, 10
  br i1 %1986, label %2040, label %1987

1987:                                             ; preds = %1981
  br label %1988

1988:                                             ; preds = %1987
  br label %1989

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

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

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

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

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

2036:                                             ; preds = %2035
  br label %2037

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

2038:                                             ; No predecessors!
  br label %2039

2039:                                             ; preds = %2038
  br label %2040

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

2041:                                             ; preds = %2040
  br label %2042

2042:                                             ; preds = %2041
  br label %2043

2043:                                             ; preds = %2042
  %2044 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %2044, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %2045 = call ptr @__errno_location() #12
  store i32 0, ptr %2045, align 4, !tbaa !5
  br label %2046

2046:                                             ; preds = %2043
  br label %2047

2047:                                             ; preds = %2046
  call void @llvm.lifetime.end.p0(i64 1, ptr %48) #11
  br label %2048

2048:                                             ; preds = %2047
  br label %2049

2049:                                             ; preds = %2048
  br label %2050

2050:                                             ; preds = %2049
  %2051 = load i32, ptr @test_count, align 4, !tbaa !5
  %2052 = add nsw i32 %2051, 1
  store i32 %2052, ptr @test_count, align 4, !tbaa !5
  %2053 = getelementptr inbounds %struct.s2n_stuffer, ptr %36, i32 0, i32 2
  %2054 = load i32, ptr %2053, align 4, !tbaa !22
  %2055 = getelementptr inbounds %struct.s2n_stuffer, ptr %36, i32 0, i32 1
  %2056 = load i32, ptr %2055, align 8, !tbaa !25
  %2057 = sub i32 %2054, %2056
  %2058 = zext i32 %2057 to i64
  %2059 = icmp eq i64 %2058, 10
  br i1 %2059, label %2113, label %2060

2060:                                             ; preds = %2050
  br label %2061

2061:                                             ; preds = %2060
  br label %2062

2062:                                             ; preds = %2061
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #11
  %2063 = call ptr @__errno_location() #12
  %2064 = load i32, ptr %2063, align 4, !tbaa !5
  store i32 %2064, ptr %51, align 4, !tbaa !5
  %2065 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2066 = call i32 @s2n_print_stacktrace(ptr noundef %2065)
  %2067 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2068 = trunc i8 %2067 to i1
  br i1 %2068, label %2069, label %2091

2069:                                             ; preds = %2062
  %2070 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2071 = call i32 @fileno(ptr noundef %2070) #11
  %2072 = call i32 @isatty(i32 noundef %2071) #11
  %2073 = icmp ne i32 %2072, 0
  br i1 %2073, label %2074, label %2091

2074:                                             ; preds = %2069
  %2075 = load i32, ptr %51, align 4, !tbaa !5
  %2076 = call ptr @__errno_location() #12
  store i32 %2075, ptr %2076, align 4, !tbaa !5
  %2077 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2078 = load i32, ptr @test_count, align 4, !tbaa !5
  %2079 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2080 = load i32, ptr %2079, align 4, !tbaa !5
  %2081 = call ptr @s2n_strerror(i32 noundef %2080, ptr noundef @.str.4)
  %2082 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2083 = load i32, ptr %2082, align 4, !tbaa !5
  %2084 = call ptr @s2n_strerror_debug(i32 noundef %2083, ptr noundef @.str.4)
  %2085 = call ptr @__errno_location() #12
  %2086 = load i32, ptr %2085, align 4, !tbaa !5
  %2087 = call ptr @strerror(i32 noundef %2086) #11
  %2088 = call ptr @__errno_location() #12
  %2089 = load i32, ptr %2088, align 4, !tbaa !5
  %2090 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2077, ptr noundef @.str.2, i32 noundef %2078, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 126, ptr noundef %2081, ptr noundef %2084, ptr noundef %2087, i32 noundef %2089) #11
  br label %2108

2091:                                             ; preds = %2069, %2062
  %2092 = load i32, ptr %51, align 4, !tbaa !5
  %2093 = call ptr @__errno_location() #12
  store i32 %2092, ptr %2093, align 4, !tbaa !5
  %2094 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2095 = load i32, ptr @test_count, align 4, !tbaa !5
  %2096 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2097 = load i32, ptr %2096, align 4, !tbaa !5
  %2098 = call ptr @s2n_strerror(i32 noundef %2097, ptr noundef @.str.4)
  %2099 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2100 = load i32, ptr %2099, align 4, !tbaa !5
  %2101 = call ptr @s2n_strerror_debug(i32 noundef %2100, ptr noundef @.str.4)
  %2102 = call ptr @__errno_location() #12
  %2103 = load i32, ptr %2102, align 4, !tbaa !5
  %2104 = call ptr @strerror(i32 noundef %2103) #11
  %2105 = call ptr @__errno_location() #12
  %2106 = load i32, ptr %2105, align 4, !tbaa !5
  %2107 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2094, ptr noundef @.str.5, i32 noundef %2095, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 126, ptr noundef %2098, ptr noundef %2101, ptr noundef %2104, i32 noundef %2106) #11
  br label %2108

2108:                                             ; preds = %2091, %2074
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #11
  br label %2109

2109:                                             ; preds = %2108
  br label %2110

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

2111:                                             ; No predecessors!
  br label %2112

2112:                                             ; preds = %2111
  br label %2113

2113:                                             ; preds = %2112, %2050
  br label %2114

2114:                                             ; preds = %2113
  br label %2115

2115:                                             ; preds = %2114
  br label %2116

2116:                                             ; preds = %2115
  %2117 = load i32, ptr @test_count, align 4, !tbaa !5
  %2118 = add nsw i32 %2117, 1
  store i32 %2118, ptr @test_count, align 4, !tbaa !5
  %2119 = load ptr, ptr %42, align 8, !tbaa !9
  %2120 = call i32 @s2n_connection_free(ptr noundef %2119)
  %2121 = icmp eq i32 %2120, -1
  br i1 %2121, label %2122, label %2175

2122:                                             ; preds = %2116
  br label %2123

2123:                                             ; preds = %2122
  br label %2124

2124:                                             ; preds = %2123
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #11
  %2125 = call ptr @__errno_location() #12
  %2126 = load i32, ptr %2125, align 4, !tbaa !5
  store i32 %2126, ptr %52, align 4, !tbaa !5
  %2127 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2128 = call i32 @s2n_print_stacktrace(ptr noundef %2127)
  %2129 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2130 = trunc i8 %2129 to i1
  br i1 %2130, label %2131, label %2153

2131:                                             ; preds = %2124
  %2132 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2133 = call i32 @fileno(ptr noundef %2132) #11
  %2134 = call i32 @isatty(i32 noundef %2133) #11
  %2135 = icmp ne i32 %2134, 0
  br i1 %2135, label %2136, label %2153

2136:                                             ; preds = %2131
  %2137 = load i32, ptr %52, align 4, !tbaa !5
  %2138 = call ptr @__errno_location() #12
  store i32 %2137, ptr %2138, align 4, !tbaa !5
  %2139 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2140 = load i32, ptr @test_count, align 4, !tbaa !5
  %2141 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2142 = load i32, ptr %2141, align 4, !tbaa !5
  %2143 = call ptr @s2n_strerror(i32 noundef %2142, ptr noundef @.str.4)
  %2144 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2145 = load i32, ptr %2144, align 4, !tbaa !5
  %2146 = call ptr @s2n_strerror_debug(i32 noundef %2145, ptr noundef @.str.4)
  %2147 = call ptr @__errno_location() #12
  %2148 = load i32, ptr %2147, align 4, !tbaa !5
  %2149 = call ptr @strerror(i32 noundef %2148) #11
  %2150 = call ptr @__errno_location() #12
  %2151 = load i32, ptr %2150, align 4, !tbaa !5
  %2152 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2139, ptr noundef @.str.2, i32 noundef %2140, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 128, ptr noundef %2143, ptr noundef %2146, ptr noundef %2149, i32 noundef %2151) #11
  br label %2170

2153:                                             ; preds = %2131, %2124
  %2154 = load i32, ptr %52, align 4, !tbaa !5
  %2155 = call ptr @__errno_location() #12
  store i32 %2154, ptr %2155, align 4, !tbaa !5
  %2156 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2157 = load i32, ptr @test_count, align 4, !tbaa !5
  %2158 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2159 = load i32, ptr %2158, align 4, !tbaa !5
  %2160 = call ptr @s2n_strerror(i32 noundef %2159, ptr noundef @.str.4)
  %2161 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2162 = load i32, ptr %2161, align 4, !tbaa !5
  %2163 = call ptr @s2n_strerror_debug(i32 noundef %2162, ptr noundef @.str.4)
  %2164 = call ptr @__errno_location() #12
  %2165 = load i32, ptr %2164, align 4, !tbaa !5
  %2166 = call ptr @strerror(i32 noundef %2165) #11
  %2167 = call ptr @__errno_location() #12
  %2168 = load i32, ptr %2167, align 4, !tbaa !5
  %2169 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2156, ptr noundef @.str.5, i32 noundef %2157, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 128, ptr noundef %2160, ptr noundef %2163, ptr noundef %2166, i32 noundef %2168) #11
  br label %2170

2170:                                             ; preds = %2153, %2136
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #11
  br label %2171

2171:                                             ; preds = %2170
  br label %2172

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

2173:                                             ; No predecessors!
  br label %2174

2174:                                             ; preds = %2173
  br label %2175

2175:                                             ; preds = %2174, %2116
  br label %2176

2176:                                             ; preds = %2175
  br label %2177

2177:                                             ; preds = %2176
  br label %2178

2178:                                             ; preds = %2177
  %2179 = load i32, ptr @test_count, align 4, !tbaa !5
  %2180 = add nsw i32 %2179, 1
  store i32 %2180, ptr @test_count, align 4, !tbaa !5
  %2181 = load ptr, ptr %39, align 8, !tbaa !9
  %2182 = call i32 @s2n_config_free(ptr noundef %2181)
  %2183 = icmp eq i32 %2182, -1
  br i1 %2183, label %2184, label %2237

2184:                                             ; preds = %2178
  br label %2185

2185:                                             ; preds = %2184
  br label %2186

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

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

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

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

2232:                                             ; preds = %2215, %2198
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #11
  br label %2233

2233:                                             ; preds = %2232
  br label %2234

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

2235:                                             ; No predecessors!
  br label %2236

2236:                                             ; preds = %2235
  br label %2237

2237:                                             ; preds = %2236, %2178
  br label %2238

2238:                                             ; preds = %2237
  br label %2239

2239:                                             ; preds = %2238
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #11
  %2240 = call i32 @s2n_stuffer_free(ptr noundef %36)
  call void @llvm.lifetime.end.p0(i64 40, ptr %36) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %54) #11
  store i64 10, ptr %54, align 8, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 40, ptr %55) #11
  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 = call i32 @s2n_stuffer_alloc(ptr noundef %55, i32 noundef 10)
  %2245 = icmp eq i32 %2244, -1
  br i1 %2245, label %2246, label %2299

2246:                                             ; preds = %2241
  br label %2247

2247:                                             ; preds = %2246
  br label %2248

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

2255:                                             ; preds = %2248
  %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
  %2259 = icmp ne i32 %2258, 0
  br i1 %2259, label %2260, label %2277

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

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

2294:                                             ; preds = %2277, %2260
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #11
  br label %2295

2295:                                             ; preds = %2294
  br label %2296

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

2297:                                             ; No predecessors!
  br label %2298

2298:                                             ; preds = %2297
  br label %2299

2299:                                             ; preds = %2298, %2241
  br label %2300

2300:                                             ; preds = %2299
  br label %2301

2301:                                             ; preds = %2300
  br label %2302

2302:                                             ; preds = %2301
  %2303 = load i32, ptr @test_count, align 4, !tbaa !5
  %2304 = add nsw i32 %2303, 1
  store i32 %2304, ptr @test_count, align 4, !tbaa !5
  %2305 = call i32 @s2n_stuffer_skip_write(ptr noundef %55, i32 noundef 10)
  %2306 = icmp eq i32 %2305, -1
  br i1 %2306, label %2307, label %2360

2307:                                             ; preds = %2302
  br label %2308

2308:                                             ; preds = %2307
  br label %2309

2309:                                             ; preds = %2308
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #11
  %2310 = call ptr @__errno_location() #12
  %2311 = load i32, ptr %2310, align 4, !tbaa !5
  store i32 %2311, ptr %57, align 4, !tbaa !5
  %2312 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2313 = call i32 @s2n_print_stacktrace(ptr noundef %2312)
  %2314 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2315 = trunc i8 %2314 to i1
  br i1 %2315, label %2316, label %2338

2316:                                             ; preds = %2309
  %2317 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2318 = call i32 @fileno(ptr noundef %2317) #11
  %2319 = call i32 @isatty(i32 noundef %2318) #11
  %2320 = icmp ne i32 %2319, 0
  br i1 %2320, label %2321, label %2338

2321:                                             ; preds = %2316
  %2322 = load i32, ptr %57, align 4, !tbaa !5
  %2323 = call ptr @__errno_location() #12
  store i32 %2322, ptr %2323, align 4, !tbaa !5
  %2324 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2325 = load i32, ptr @test_count, align 4, !tbaa !5
  %2326 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2327 = load i32, ptr %2326, align 4, !tbaa !5
  %2328 = call ptr @s2n_strerror(i32 noundef %2327, ptr noundef @.str.4)
  %2329 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2330 = load i32, ptr %2329, align 4, !tbaa !5
  %2331 = call ptr @s2n_strerror_debug(i32 noundef %2330, ptr noundef @.str.4)
  %2332 = call ptr @__errno_location() #12
  %2333 = load i32, ptr %2332, align 4, !tbaa !5
  %2334 = call ptr @strerror(i32 noundef %2333) #11
  %2335 = call ptr @__errno_location() #12
  %2336 = load i32, ptr %2335, align 4, !tbaa !5
  %2337 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2324, ptr noundef @.str.2, i32 noundef %2325, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 137, ptr noundef %2328, ptr noundef %2331, ptr noundef %2334, i32 noundef %2336) #11
  br label %2355

2338:                                             ; preds = %2316, %2309
  %2339 = load i32, ptr %57, align 4, !tbaa !5
  %2340 = call ptr @__errno_location() #12
  store i32 %2339, ptr %2340, align 4, !tbaa !5
  %2341 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2342 = load i32, ptr @test_count, align 4, !tbaa !5
  %2343 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2344 = load i32, ptr %2343, align 4, !tbaa !5
  %2345 = call ptr @s2n_strerror(i32 noundef %2344, ptr noundef @.str.4)
  %2346 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2347 = load i32, ptr %2346, align 4, !tbaa !5
  %2348 = call ptr @s2n_strerror_debug(i32 noundef %2347, ptr noundef @.str.4)
  %2349 = call ptr @__errno_location() #12
  %2350 = load i32, ptr %2349, align 4, !tbaa !5
  %2351 = call ptr @strerror(i32 noundef %2350) #11
  %2352 = call ptr @__errno_location() #12
  %2353 = load i32, ptr %2352, align 4, !tbaa !5
  %2354 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2341, ptr noundef @.str.5, i32 noundef %2342, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 137, ptr noundef %2345, ptr noundef %2348, ptr noundef %2351, i32 noundef %2353) #11
  br label %2355

2355:                                             ; preds = %2338, %2321
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #11
  br label %2356

2356:                                             ; preds = %2355
  br label %2357

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

2358:                                             ; No predecessors!
  br label %2359

2359:                                             ; preds = %2358
  br label %2360

2360:                                             ; preds = %2359, %2302
  br label %2361

2361:                                             ; preds = %2360
  br label %2362

2362:                                             ; preds = %2361
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #11
  store ptr null, ptr %58, align 8, !tbaa !9
  br label %2363

2363:                                             ; preds = %2362
  %2364 = load i32, ptr @test_count, align 4, !tbaa !5
  %2365 = add nsw i32 %2364, 1
  store i32 %2365, ptr @test_count, align 4, !tbaa !5
  %2366 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %2366, ptr %58, align 8, !tbaa !9
  %2367 = icmp eq ptr %2366, null
  br i1 %2367, label %2368, label %2421

2368:                                             ; preds = %2363
  br label %2369

2369:                                             ; preds = %2368
  br label %2370

2370:                                             ; preds = %2369
  call void @llvm.lifetime.start.p0(i64 4, ptr %59) #11
  %2371 = call ptr @__errno_location() #12
  %2372 = load i32, ptr %2371, align 4, !tbaa !5
  store i32 %2372, ptr %59, align 4, !tbaa !5
  %2373 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2374 = call i32 @s2n_print_stacktrace(ptr noundef %2373)
  %2375 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2376 = trunc i8 %2375 to i1
  br i1 %2376, label %2377, label %2399

2377:                                             ; preds = %2370
  %2378 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2379 = call i32 @fileno(ptr noundef %2378) #11
  %2380 = call i32 @isatty(i32 noundef %2379) #11
  %2381 = icmp ne i32 %2380, 0
  br i1 %2381, label %2382, label %2399

2382:                                             ; preds = %2377
  %2383 = load i32, ptr %59, align 4, !tbaa !5
  %2384 = call ptr @__errno_location() #12
  store i32 %2383, ptr %2384, align 4, !tbaa !5
  %2385 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2386 = load i32, ptr @test_count, align 4, !tbaa !5
  %2387 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2388 = load i32, ptr %2387, align 4, !tbaa !5
  %2389 = call ptr @s2n_strerror(i32 noundef %2388, ptr noundef @.str.4)
  %2390 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2391 = load i32, ptr %2390, align 4, !tbaa !5
  %2392 = call ptr @s2n_strerror_debug(i32 noundef %2391, ptr noundef @.str.4)
  %2393 = call ptr @__errno_location() #12
  %2394 = load i32, ptr %2393, align 4, !tbaa !5
  %2395 = call ptr @strerror(i32 noundef %2394) #11
  %2396 = call ptr @__errno_location() #12
  %2397 = load i32, ptr %2396, align 4, !tbaa !5
  %2398 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2385, ptr noundef @.str.2, i32 noundef %2386, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 140, ptr noundef %2389, ptr noundef %2392, ptr noundef %2395, i32 noundef %2397) #11
  br label %2416

2399:                                             ; preds = %2377, %2370
  %2400 = load i32, ptr %59, align 4, !tbaa !5
  %2401 = call ptr @__errno_location() #12
  store i32 %2400, ptr %2401, align 4, !tbaa !5
  %2402 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2403 = load i32, ptr @test_count, align 4, !tbaa !5
  %2404 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2405 = load i32, ptr %2404, align 4, !tbaa !5
  %2406 = call ptr @s2n_strerror(i32 noundef %2405, ptr noundef @.str.4)
  %2407 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2408 = load i32, ptr %2407, align 4, !tbaa !5
  %2409 = call ptr @s2n_strerror_debug(i32 noundef %2408, ptr noundef @.str.4)
  %2410 = call ptr @__errno_location() #12
  %2411 = load i32, ptr %2410, align 4, !tbaa !5
  %2412 = call ptr @strerror(i32 noundef %2411) #11
  %2413 = call ptr @__errno_location() #12
  %2414 = load i32, ptr %2413, align 4, !tbaa !5
  %2415 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2402, ptr noundef @.str.5, i32 noundef %2403, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 140, ptr noundef %2406, ptr noundef %2409, ptr noundef %2412, i32 noundef %2414) #11
  br label %2416

2416:                                             ; preds = %2399, %2382
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #11
  br label %2417

2417:                                             ; preds = %2416
  br label %2418

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

2419:                                             ; No predecessors!
  br label %2420

2420:                                             ; preds = %2419
  br label %2421

2421:                                             ; preds = %2420, %2363
  br label %2422

2422:                                             ; preds = %2421
  br label %2423

2423:                                             ; preds = %2422
  %2424 = load ptr, ptr %58, align 8, !tbaa !9
  %2425 = getelementptr inbounds %struct.s2n_connection, ptr %2424, i32 0, i32 23
  store i8 33, ptr %2425, align 4, !tbaa !26
  br label %2426

2426:                                             ; preds = %2423
  br label %2427

2427:                                             ; preds = %2426
  br label %2428

2428:                                             ; preds = %2427
  %2429 = load i32, ptr @test_count, align 4, !tbaa !5
  %2430 = add nsw i32 %2429, 1
  store i32 %2430, ptr @test_count, align 4, !tbaa !5
  %2431 = load ptr, ptr %58, align 8, !tbaa !9
  %2432 = call i32 @s2n_key_update_recv(ptr noundef %2431, ptr noundef %55)
  %2433 = icmp eq i32 %2432, -1
  br i1 %2433, label %2487, label %2434

2434:                                             ; preds = %2428
  br label %2435

2435:                                             ; preds = %2434
  br label %2436

2436:                                             ; preds = %2435
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #11
  %2437 = call ptr @__errno_location() #12
  %2438 = load i32, ptr %2437, align 4, !tbaa !5
  store i32 %2438, ptr %60, align 4, !tbaa !5
  %2439 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2440 = call i32 @s2n_print_stacktrace(ptr noundef %2439)
  %2441 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2442 = trunc i8 %2441 to i1
  br i1 %2442, label %2443, label %2465

2443:                                             ; preds = %2436
  %2444 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2445 = call i32 @fileno(ptr noundef %2444) #11
  %2446 = call i32 @isatty(i32 noundef %2445) #11
  %2447 = icmp ne i32 %2446, 0
  br i1 %2447, label %2448, label %2465

2448:                                             ; preds = %2443
  %2449 = load i32, ptr %60, align 4, !tbaa !5
  %2450 = call ptr @__errno_location() #12
  store i32 %2449, ptr %2450, align 4, !tbaa !5
  %2451 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2452 = load i32, ptr @test_count, align 4, !tbaa !5
  %2453 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2454 = load i32, ptr %2453, align 4, !tbaa !5
  %2455 = call ptr @s2n_strerror(i32 noundef %2454, ptr noundef @.str.4)
  %2456 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2457 = load i32, ptr %2456, align 4, !tbaa !5
  %2458 = call ptr @s2n_strerror_debug(i32 noundef %2457, ptr noundef @.str.4)
  %2459 = call ptr @__errno_location() #12
  %2460 = load i32, ptr %2459, align 4, !tbaa !5
  %2461 = call ptr @strerror(i32 noundef %2460) #11
  %2462 = call ptr @__errno_location() #12
  %2463 = load i32, ptr %2462, align 4, !tbaa !5
  %2464 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2451, ptr noundef @.str.2, i32 noundef %2452, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 143, ptr noundef %2455, ptr noundef %2458, ptr noundef %2461, i32 noundef %2463) #11
  br label %2482

2465:                                             ; preds = %2443, %2436
  %2466 = load i32, ptr %60, align 4, !tbaa !5
  %2467 = call ptr @__errno_location() #12
  store i32 %2466, ptr %2467, align 4, !tbaa !5
  %2468 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2469 = load i32, ptr @test_count, align 4, !tbaa !5
  %2470 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2471 = load i32, ptr %2470, align 4, !tbaa !5
  %2472 = call ptr @s2n_strerror(i32 noundef %2471, ptr noundef @.str.4)
  %2473 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2474 = load i32, ptr %2473, align 4, !tbaa !5
  %2475 = call ptr @s2n_strerror_debug(i32 noundef %2474, ptr noundef @.str.4)
  %2476 = call ptr @__errno_location() #12
  %2477 = load i32, ptr %2476, align 4, !tbaa !5
  %2478 = call ptr @strerror(i32 noundef %2477) #11
  %2479 = call ptr @__errno_location() #12
  %2480 = load i32, ptr %2479, align 4, !tbaa !5
  %2481 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2468, ptr noundef @.str.5, i32 noundef %2469, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 143, ptr noundef %2472, ptr noundef %2475, ptr noundef %2478, i32 noundef %2480) #11
  br label %2482

2482:                                             ; preds = %2465, %2448
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #11
  br label %2483

2483:                                             ; preds = %2482
  br label %2484

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

2485:                                             ; No predecessors!
  br label %2486

2486:                                             ; preds = %2485
  br label %2487

2487:                                             ; preds = %2486, %2428
  br label %2488

2488:                                             ; preds = %2487
  br label %2489

2489:                                             ; preds = %2488
  br label %2490

2490:                                             ; preds = %2489
  %2491 = load i32, ptr @test_count, align 4, !tbaa !5
  %2492 = add nsw i32 %2491, 1
  store i32 %2492, ptr @test_count, align 4, !tbaa !5
  %2493 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2494 = load i32, ptr %2493, align 4, !tbaa !5
  %2495 = icmp eq i32 %2494, 335544322
  br i1 %2495, label %2549, label %2496

2496:                                             ; preds = %2490
  br label %2497

2497:                                             ; preds = %2496
  br label %2498

2498:                                             ; preds = %2497
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #11
  %2499 = call ptr @__errno_location() #12
  %2500 = load i32, ptr %2499, align 4, !tbaa !5
  store i32 %2500, ptr %61, align 4, !tbaa !5
  %2501 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2502 = call i32 @s2n_print_stacktrace(ptr noundef %2501)
  %2503 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2504 = trunc i8 %2503 to i1
  br i1 %2504, label %2505, label %2527

2505:                                             ; preds = %2498
  %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
  %2509 = icmp ne i32 %2508, 0
  br i1 %2509, label %2510, label %2527

2510:                                             ; preds = %2505
  %2511 = load i32, ptr %61, align 4, !tbaa !5
  %2512 = call ptr @__errno_location() #12
  store i32 %2511, ptr %2512, align 4, !tbaa !5
  %2513 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2514 = load i32, ptr @test_count, align 4, !tbaa !5
  %2515 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2516 = load i32, ptr %2515, align 4, !tbaa !5
  %2517 = call ptr @s2n_strerror(i32 noundef %2516, ptr noundef @.str.4)
  %2518 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2519 = load i32, ptr %2518, align 4, !tbaa !5
  %2520 = call ptr @s2n_strerror_debug(i32 noundef %2519, ptr noundef @.str.4)
  %2521 = call ptr @__errno_location() #12
  %2522 = load i32, ptr %2521, align 4, !tbaa !5
  %2523 = call ptr @strerror(i32 noundef %2522) #11
  %2524 = call ptr @__errno_location() #12
  %2525 = load i32, ptr %2524, align 4, !tbaa !5
  %2526 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2513, ptr noundef @.str.2, i32 noundef %2514, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 143, ptr noundef %2517, ptr noundef %2520, ptr noundef %2523, i32 noundef %2525) #11
  br label %2544

2527:                                             ; preds = %2505, %2498
  %2528 = load i32, ptr %61, align 4, !tbaa !5
  %2529 = call ptr @__errno_location() #12
  store i32 %2528, ptr %2529, align 4, !tbaa !5
  %2530 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2531 = load i32, ptr @test_count, align 4, !tbaa !5
  %2532 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2533 = load i32, ptr %2532, align 4, !tbaa !5
  %2534 = call ptr @s2n_strerror(i32 noundef %2533, ptr noundef @.str.4)
  %2535 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2536 = load i32, ptr %2535, align 4, !tbaa !5
  %2537 = call ptr @s2n_strerror_debug(i32 noundef %2536, ptr noundef @.str.4)
  %2538 = call ptr @__errno_location() #12
  %2539 = load i32, ptr %2538, align 4, !tbaa !5
  %2540 = call ptr @strerror(i32 noundef %2539) #11
  %2541 = call ptr @__errno_location() #12
  %2542 = load i32, ptr %2541, align 4, !tbaa !5
  %2543 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2530, ptr noundef @.str.5, i32 noundef %2531, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 143, ptr noundef %2534, ptr noundef %2537, ptr noundef %2540, i32 noundef %2542) #11
  br label %2544

2544:                                             ; preds = %2527, %2510
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #11
  br label %2545

2545:                                             ; preds = %2544
  br label %2546

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

2547:                                             ; No predecessors!
  br label %2548

2548:                                             ; preds = %2547
  br label %2549

2549:                                             ; preds = %2548, %2490
  br label %2550

2550:                                             ; preds = %2549
  br label %2551

2551:                                             ; preds = %2550
  br label %2552

2552:                                             ; preds = %2551
  %2553 = load i32, ptr @test_count, align 4, !tbaa !5
  %2554 = add nsw i32 %2553, 1
  store i32 %2554, ptr @test_count, align 4, !tbaa !5
  %2555 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2556 = load i32, ptr %2555, align 4, !tbaa !5
  %2557 = call ptr @s2n_strerror_debug(i32 noundef %2556, ptr noundef @.str.4)
  %2558 = icmp eq ptr %2557, null
  br i1 %2558, label %2559, label %2612

2559:                                             ; preds = %2552
  br label %2560

2560:                                             ; preds = %2559
  br label %2561

2561:                                             ; preds = %2560
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #11
  %2562 = call ptr @__errno_location() #12
  %2563 = load i32, ptr %2562, align 4, !tbaa !5
  store i32 %2563, ptr %62, align 4, !tbaa !5
  %2564 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2565 = call i32 @s2n_print_stacktrace(ptr noundef %2564)
  %2566 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2567 = trunc i8 %2566 to i1
  br i1 %2567, label %2568, label %2590

2568:                                             ; preds = %2561
  %2569 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2570 = call i32 @fileno(ptr noundef %2569) #11
  %2571 = call i32 @isatty(i32 noundef %2570) #11
  %2572 = icmp ne i32 %2571, 0
  br i1 %2572, label %2573, label %2590

2573:                                             ; preds = %2568
  %2574 = load i32, ptr %62, align 4, !tbaa !5
  %2575 = call ptr @__errno_location() #12
  store i32 %2574, ptr %2575, align 4, !tbaa !5
  %2576 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2577 = load i32, ptr @test_count, align 4, !tbaa !5
  %2578 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2579 = load i32, ptr %2578, align 4, !tbaa !5
  %2580 = call ptr @s2n_strerror(i32 noundef %2579, ptr noundef @.str.4)
  %2581 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2582 = load i32, ptr %2581, align 4, !tbaa !5
  %2583 = call ptr @s2n_strerror_debug(i32 noundef %2582, ptr noundef @.str.4)
  %2584 = call ptr @__errno_location() #12
  %2585 = load i32, ptr %2584, align 4, !tbaa !5
  %2586 = call ptr @strerror(i32 noundef %2585) #11
  %2587 = call ptr @__errno_location() #12
  %2588 = load i32, ptr %2587, align 4, !tbaa !5
  %2589 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2576, ptr noundef @.str.2, i32 noundef %2577, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 143, ptr noundef %2580, ptr noundef %2583, ptr noundef %2586, i32 noundef %2588) #11
  br label %2607

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

2607:                                             ; preds = %2590, %2573
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #11
  br label %2608

2608:                                             ; preds = %2607
  br label %2609

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

2610:                                             ; No predecessors!
  br label %2611

2611:                                             ; preds = %2610
  br label %2612

2612:                                             ; preds = %2611, %2552
  br label %2613

2613:                                             ; preds = %2612
  br label %2614

2614:                                             ; preds = %2613
  br label %2615

2615:                                             ; preds = %2614
  br label %2616

2616:                                             ; preds = %2615
  br label %2617

2617:                                             ; preds = %2616
  %2618 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %2618, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %2619 = call ptr @__errno_location() #12
  store i32 0, ptr %2619, align 4, !tbaa !5
  br label %2620

2620:                                             ; preds = %2617
  br label %2621

2621:                                             ; preds = %2620
  br label %2622

2622:                                             ; preds = %2621
  br label %2623

2623:                                             ; preds = %2622
  br label %2624

2624:                                             ; preds = %2623
  %2625 = load i32, ptr @test_count, align 4, !tbaa !5
  %2626 = add nsw i32 %2625, 1
  store i32 %2626, ptr @test_count, align 4, !tbaa !5
  %2627 = getelementptr inbounds %struct.s2n_stuffer, ptr %55, i32 0, i32 2
  %2628 = load i32, ptr %2627, align 4, !tbaa !22
  %2629 = getelementptr inbounds %struct.s2n_stuffer, ptr %55, i32 0, i32 1
  %2630 = load i32, ptr %2629, align 8, !tbaa !25
  %2631 = sub i32 %2628, %2630
  %2632 = zext i32 %2631 to i64
  %2633 = icmp eq i64 %2632, 10
  br i1 %2633, label %2687, label %2634

2634:                                             ; preds = %2624
  br label %2635

2635:                                             ; preds = %2634
  br label %2636

2636:                                             ; preds = %2635
  call void @llvm.lifetime.start.p0(i64 4, ptr %63) #11
  %2637 = call ptr @__errno_location() #12
  %2638 = load i32, ptr %2637, align 4, !tbaa !5
  store i32 %2638, ptr %63, align 4, !tbaa !5
  %2639 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2640 = call i32 @s2n_print_stacktrace(ptr noundef %2639)
  %2641 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2642 = trunc i8 %2641 to i1
  br i1 %2642, label %2643, label %2665

2643:                                             ; preds = %2636
  %2644 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2645 = call i32 @fileno(ptr noundef %2644) #11
  %2646 = call i32 @isatty(i32 noundef %2645) #11
  %2647 = icmp ne i32 %2646, 0
  br i1 %2647, label %2648, label %2665

2648:                                             ; preds = %2643
  %2649 = load i32, ptr %63, align 4, !tbaa !5
  %2650 = call ptr @__errno_location() #12
  store i32 %2649, ptr %2650, align 4, !tbaa !5
  %2651 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2652 = load i32, ptr @test_count, align 4, !tbaa !5
  %2653 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2654 = load i32, ptr %2653, align 4, !tbaa !5
  %2655 = call ptr @s2n_strerror(i32 noundef %2654, ptr noundef @.str.4)
  %2656 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2657 = load i32, ptr %2656, align 4, !tbaa !5
  %2658 = call ptr @s2n_strerror_debug(i32 noundef %2657, ptr noundef @.str.4)
  %2659 = call ptr @__errno_location() #12
  %2660 = load i32, ptr %2659, align 4, !tbaa !5
  %2661 = call ptr @strerror(i32 noundef %2660) #11
  %2662 = call ptr @__errno_location() #12
  %2663 = load i32, ptr %2662, align 4, !tbaa !5
  %2664 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2651, ptr noundef @.str.2, i32 noundef %2652, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 146, ptr noundef %2655, ptr noundef %2658, ptr noundef %2661, i32 noundef %2663) #11
  br label %2682

2665:                                             ; preds = %2643, %2636
  %2666 = load i32, ptr %63, align 4, !tbaa !5
  %2667 = call ptr @__errno_location() #12
  store i32 %2666, ptr %2667, align 4, !tbaa !5
  %2668 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2669 = load i32, ptr @test_count, align 4, !tbaa !5
  %2670 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2671 = load i32, ptr %2670, align 4, !tbaa !5
  %2672 = call ptr @s2n_strerror(i32 noundef %2671, ptr noundef @.str.4)
  %2673 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2674 = load i32, ptr %2673, align 4, !tbaa !5
  %2675 = call ptr @s2n_strerror_debug(i32 noundef %2674, ptr noundef @.str.4)
  %2676 = call ptr @__errno_location() #12
  %2677 = load i32, ptr %2676, align 4, !tbaa !5
  %2678 = call ptr @strerror(i32 noundef %2677) #11
  %2679 = call ptr @__errno_location() #12
  %2680 = load i32, ptr %2679, align 4, !tbaa !5
  %2681 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2668, ptr noundef @.str.5, i32 noundef %2669, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 146, ptr noundef %2672, ptr noundef %2675, ptr noundef %2678, i32 noundef %2680) #11
  br label %2682

2682:                                             ; preds = %2665, %2648
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #11
  br label %2683

2683:                                             ; preds = %2682
  br label %2684

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

2685:                                             ; No predecessors!
  br label %2686

2686:                                             ; preds = %2685
  br label %2687

2687:                                             ; preds = %2686, %2624
  br label %2688

2688:                                             ; preds = %2687
  br label %2689

2689:                                             ; preds = %2688
  br label %2690

2690:                                             ; preds = %2689
  %2691 = load i32, ptr @test_count, align 4, !tbaa !5
  %2692 = add nsw i32 %2691, 1
  store i32 %2692, ptr @test_count, align 4, !tbaa !5
  %2693 = load ptr, ptr %58, align 8, !tbaa !9
  %2694 = call i32 @s2n_connection_free(ptr noundef %2693)
  %2695 = icmp eq i32 %2694, -1
  br i1 %2695, label %2696, label %2749

2696:                                             ; preds = %2690
  br label %2697

2697:                                             ; preds = %2696
  br label %2698

2698:                                             ; preds = %2697
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #11
  %2699 = call ptr @__errno_location() #12
  %2700 = load i32, ptr %2699, align 4, !tbaa !5
  store i32 %2700, ptr %64, align 4, !tbaa !5
  %2701 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2702 = call i32 @s2n_print_stacktrace(ptr noundef %2701)
  %2703 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2704 = trunc i8 %2703 to i1
  br i1 %2704, label %2705, label %2727

2705:                                             ; preds = %2698
  %2706 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2707 = call i32 @fileno(ptr noundef %2706) #11
  %2708 = call i32 @isatty(i32 noundef %2707) #11
  %2709 = icmp ne i32 %2708, 0
  br i1 %2709, label %2710, label %2727

2710:                                             ; preds = %2705
  %2711 = load i32, ptr %64, align 4, !tbaa !5
  %2712 = call ptr @__errno_location() #12
  store i32 %2711, ptr %2712, align 4, !tbaa !5
  %2713 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2714 = load i32, ptr @test_count, align 4, !tbaa !5
  %2715 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2716 = load i32, ptr %2715, align 4, !tbaa !5
  %2717 = call ptr @s2n_strerror(i32 noundef %2716, ptr noundef @.str.4)
  %2718 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2719 = load i32, ptr %2718, align 4, !tbaa !5
  %2720 = call ptr @s2n_strerror_debug(i32 noundef %2719, ptr noundef @.str.4)
  %2721 = call ptr @__errno_location() #12
  %2722 = load i32, ptr %2721, align 4, !tbaa !5
  %2723 = call ptr @strerror(i32 noundef %2722) #11
  %2724 = call ptr @__errno_location() #12
  %2725 = load i32, ptr %2724, align 4, !tbaa !5
  %2726 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2713, ptr noundef @.str.2, i32 noundef %2714, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 148, ptr noundef %2717, ptr noundef %2720, ptr noundef %2723, i32 noundef %2725) #11
  br label %2744

2727:                                             ; preds = %2705, %2698
  %2728 = load i32, ptr %64, align 4, !tbaa !5
  %2729 = call ptr @__errno_location() #12
  store i32 %2728, ptr %2729, align 4, !tbaa !5
  %2730 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2731 = load i32, ptr @test_count, align 4, !tbaa !5
  %2732 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2733 = load i32, ptr %2732, align 4, !tbaa !5
  %2734 = call ptr @s2n_strerror(i32 noundef %2733, ptr noundef @.str.4)
  %2735 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2736 = load i32, ptr %2735, align 4, !tbaa !5
  %2737 = call ptr @s2n_strerror_debug(i32 noundef %2736, ptr noundef @.str.4)
  %2738 = call ptr @__errno_location() #12
  %2739 = load i32, ptr %2738, align 4, !tbaa !5
  %2740 = call ptr @strerror(i32 noundef %2739) #11
  %2741 = call ptr @__errno_location() #12
  %2742 = load i32, ptr %2741, align 4, !tbaa !5
  %2743 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2730, ptr noundef @.str.5, i32 noundef %2731, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 148, ptr noundef %2734, ptr noundef %2737, ptr noundef %2740, i32 noundef %2742) #11
  br label %2744

2744:                                             ; preds = %2727, %2710
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #11
  br label %2745

2745:                                             ; preds = %2744
  br label %2746

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

2747:                                             ; No predecessors!
  br label %2748

2748:                                             ; preds = %2747
  br label %2749

2749:                                             ; preds = %2748, %2690
  br label %2750

2750:                                             ; preds = %2749
  br label %2751

2751:                                             ; preds = %2750
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #11
  %2752 = call i32 @s2n_stuffer_free(ptr noundef %55)
  call void @llvm.lifetime.end.p0(i64 40, ptr %55) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #11
  call void @llvm.lifetime.start.p0(i64 40, ptr %65) #11
  br label %2753

2753:                                             ; preds = %2751
  %2754 = load i32, ptr @test_count, align 4, !tbaa !5
  %2755 = add nsw i32 %2754, 1
  store i32 %2755, ptr @test_count, align 4, !tbaa !5
  %2756 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %65, i32 noundef 0)
  %2757 = icmp eq i32 %2756, -1
  br i1 %2757, label %2758, label %2811

2758:                                             ; preds = %2753
  br label %2759

2759:                                             ; preds = %2758
  br label %2760

2760:                                             ; preds = %2759
  call void @llvm.lifetime.start.p0(i64 4, ptr %66) #11
  %2761 = call ptr @__errno_location() #12
  %2762 = load i32, ptr %2761, align 4, !tbaa !5
  store i32 %2762, ptr %66, align 4, !tbaa !5
  %2763 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2764 = call i32 @s2n_print_stacktrace(ptr noundef %2763)
  %2765 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2766 = trunc i8 %2765 to i1
  br i1 %2766, label %2767, label %2789

2767:                                             ; preds = %2760
  %2768 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2769 = call i32 @fileno(ptr noundef %2768) #11
  %2770 = call i32 @isatty(i32 noundef %2769) #11
  %2771 = icmp ne i32 %2770, 0
  br i1 %2771, label %2772, label %2789

2772:                                             ; preds = %2767
  %2773 = load i32, ptr %66, align 4, !tbaa !5
  %2774 = call ptr @__errno_location() #12
  store i32 %2773, ptr %2774, align 4, !tbaa !5
  %2775 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2776 = load i32, ptr @test_count, align 4, !tbaa !5
  %2777 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2778 = load i32, ptr %2777, align 4, !tbaa !5
  %2779 = call ptr @s2n_strerror(i32 noundef %2778, ptr noundef @.str.4)
  %2780 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2781 = load i32, ptr %2780, align 4, !tbaa !5
  %2782 = call ptr @s2n_strerror_debug(i32 noundef %2781, ptr noundef @.str.4)
  %2783 = call ptr @__errno_location() #12
  %2784 = load i32, ptr %2783, align 4, !tbaa !5
  %2785 = call ptr @strerror(i32 noundef %2784) #11
  %2786 = call ptr @__errno_location() #12
  %2787 = load i32, ptr %2786, align 4, !tbaa !5
  %2788 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2775, ptr noundef @.str.2, i32 noundef %2776, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 154, ptr noundef %2779, ptr noundef %2782, ptr noundef %2785, i32 noundef %2787) #11
  br label %2806

2789:                                             ; preds = %2767, %2760
  %2790 = load i32, ptr %66, align 4, !tbaa !5
  %2791 = call ptr @__errno_location() #12
  store i32 %2790, ptr %2791, align 4, !tbaa !5
  %2792 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2793 = load i32, ptr @test_count, align 4, !tbaa !5
  %2794 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2795 = load i32, ptr %2794, align 4, !tbaa !5
  %2796 = call ptr @s2n_strerror(i32 noundef %2795, ptr noundef @.str.4)
  %2797 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2798 = load i32, ptr %2797, align 4, !tbaa !5
  %2799 = call ptr @s2n_strerror_debug(i32 noundef %2798, ptr noundef @.str.4)
  %2800 = call ptr @__errno_location() #12
  %2801 = load i32, ptr %2800, align 4, !tbaa !5
  %2802 = call ptr @strerror(i32 noundef %2801) #11
  %2803 = call ptr @__errno_location() #12
  %2804 = load i32, ptr %2803, align 4, !tbaa !5
  %2805 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2792, ptr noundef @.str.5, i32 noundef %2793, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 154, ptr noundef %2796, ptr noundef %2799, ptr noundef %2802, i32 noundef %2804) #11
  br label %2806

2806:                                             ; preds = %2789, %2772
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #11
  br label %2807

2807:                                             ; preds = %2806
  br label %2808

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

2809:                                             ; No predecessors!
  br label %2810

2810:                                             ; preds = %2809
  br label %2811

2811:                                             ; preds = %2810, %2753
  br label %2812

2812:                                             ; preds = %2811
  br label %2813

2813:                                             ; preds = %2812
  call void @llvm.lifetime.start.p0(i64 8, ptr %67) #11
  %2814 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %2814, ptr %67, align 8, !tbaa !9
  br label %2815

2815:                                             ; preds = %2813
  %2816 = load i32, ptr @test_count, align 4, !tbaa !5
  %2817 = add nsw i32 %2816, 1
  store i32 %2817, ptr @test_count, align 4, !tbaa !5
  %2818 = load ptr, ptr %67, align 8, !tbaa !9
  %2819 = icmp eq ptr %2818, null
  br i1 %2819, label %2820, label %2873

2820:                                             ; preds = %2815
  br label %2821

2821:                                             ; preds = %2820
  br label %2822

2822:                                             ; preds = %2821
  call void @llvm.lifetime.start.p0(i64 4, ptr %68) #11
  %2823 = call ptr @__errno_location() #12
  %2824 = load i32, ptr %2823, align 4, !tbaa !5
  store i32 %2824, ptr %68, align 4, !tbaa !5
  %2825 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2826 = call i32 @s2n_print_stacktrace(ptr noundef %2825)
  %2827 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2828 = trunc i8 %2827 to i1
  br i1 %2828, label %2829, label %2851

2829:                                             ; preds = %2822
  %2830 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2831 = call i32 @fileno(ptr noundef %2830) #11
  %2832 = call i32 @isatty(i32 noundef %2831) #11
  %2833 = icmp ne i32 %2832, 0
  br i1 %2833, label %2834, label %2851

2834:                                             ; preds = %2829
  %2835 = load i32, ptr %68, align 4, !tbaa !5
  %2836 = call ptr @__errno_location() #12
  store i32 %2835, ptr %2836, align 4, !tbaa !5
  %2837 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2838 = load i32, ptr @test_count, align 4, !tbaa !5
  %2839 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2840 = load i32, ptr %2839, align 4, !tbaa !5
  %2841 = call ptr @s2n_strerror(i32 noundef %2840, ptr noundef @.str.4)
  %2842 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2843 = load i32, ptr %2842, align 4, !tbaa !5
  %2844 = call ptr @s2n_strerror_debug(i32 noundef %2843, ptr noundef @.str.4)
  %2845 = call ptr @__errno_location() #12
  %2846 = load i32, ptr %2845, align 4, !tbaa !5
  %2847 = call ptr @strerror(i32 noundef %2846) #11
  %2848 = call ptr @__errno_location() #12
  %2849 = load i32, ptr %2848, align 4, !tbaa !5
  %2850 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2837, ptr noundef @.str.2, i32 noundef %2838, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 158, ptr noundef %2841, ptr noundef %2844, ptr noundef %2847, i32 noundef %2849) #11
  br label %2868

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

2868:                                             ; preds = %2851, %2834
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #11
  br label %2869

2869:                                             ; preds = %2868
  br label %2870

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

2871:                                             ; No predecessors!
  br label %2872

2872:                                             ; preds = %2871
  br label %2873

2873:                                             ; preds = %2872, %2815
  br label %2874

2874:                                             ; preds = %2873
  br label %2875

2875:                                             ; preds = %2874
  %2876 = load ptr, ptr %67, align 8, !tbaa !9
  %2877 = getelementptr inbounds %struct.s2n_connection, ptr %2876, i32 0, i32 23
  store i8 34, ptr %2877, align 4, !tbaa !26
  br label %2878

2878:                                             ; preds = %2875
  %2879 = load i32, ptr @test_count, align 4, !tbaa !5
  %2880 = add nsw i32 %2879, 1
  store i32 %2880, ptr @test_count, align 4, !tbaa !5
  %2881 = load ptr, ptr %67, align 8, !tbaa !9
  %2882 = getelementptr inbounds %struct.s2n_connection, ptr %2881, i32 0, i32 27
  %2883 = load ptr, ptr %2882, align 8, !tbaa !50
  %2884 = icmp eq ptr %2883, null
  br i1 %2884, label %2885, label %2938

2885:                                             ; preds = %2878
  br label %2886

2886:                                             ; preds = %2885
  br label %2887

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

2894:                                             ; preds = %2887
  %2895 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2896 = call i32 @fileno(ptr noundef %2895) #11
  %2897 = call i32 @isatty(i32 noundef %2896) #11
  %2898 = icmp ne i32 %2897, 0
  br i1 %2898, label %2899, label %2916

2899:                                             ; preds = %2894
  %2900 = load i32, ptr %69, align 4, !tbaa !5
  %2901 = call ptr @__errno_location() #12
  store i32 %2900, ptr %2901, align 4, !tbaa !5
  %2902 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2903 = load i32, ptr @test_count, align 4, !tbaa !5
  %2904 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2905 = load i32, ptr %2904, align 4, !tbaa !5
  %2906 = call ptr @s2n_strerror(i32 noundef %2905, ptr noundef @.str.4)
  %2907 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2908 = load i32, ptr %2907, align 4, !tbaa !5
  %2909 = call ptr @s2n_strerror_debug(i32 noundef %2908, ptr noundef @.str.4)
  %2910 = call ptr @__errno_location() #12
  %2911 = load i32, ptr %2910, align 4, !tbaa !5
  %2912 = call ptr @strerror(i32 noundef %2911) #11
  %2913 = call ptr @__errno_location() #12
  %2914 = load i32, ptr %2913, align 4, !tbaa !5
  %2915 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2902, ptr noundef @.str.2, i32 noundef %2903, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 160, ptr noundef %2906, ptr noundef %2909, ptr noundef %2912, i32 noundef %2914) #11
  br label %2933

2916:                                             ; preds = %2894, %2887
  %2917 = load i32, ptr %69, align 4, !tbaa !5
  %2918 = call ptr @__errno_location() #12
  store i32 %2917, ptr %2918, align 4, !tbaa !5
  %2919 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2920 = load i32, ptr @test_count, align 4, !tbaa !5
  %2921 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2922 = load i32, ptr %2921, align 4, !tbaa !5
  %2923 = call ptr @s2n_strerror(i32 noundef %2922, ptr noundef @.str.4)
  %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_debug(i32 noundef %2925, ptr noundef @.str.4)
  %2927 = call ptr @__errno_location() #12
  %2928 = load i32, ptr %2927, align 4, !tbaa !5
  %2929 = call ptr @strerror(i32 noundef %2928) #11
  %2930 = call ptr @__errno_location() #12
  %2931 = load i32, ptr %2930, align 4, !tbaa !5
  %2932 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2919, ptr noundef @.str.5, i32 noundef %2920, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 160, ptr noundef %2923, ptr noundef %2926, ptr noundef %2929, i32 noundef %2931) #11
  br label %2933

2933:                                             ; preds = %2916, %2899
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #11
  br label %2934

2934:                                             ; preds = %2933
  br label %2935

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

2936:                                             ; No predecessors!
  br label %2937

2937:                                             ; preds = %2936
  br label %2938

2938:                                             ; preds = %2937, %2878
  br label %2939

2939:                                             ; preds = %2938
  br label %2940

2940:                                             ; preds = %2939
  %2941 = load ptr, ptr %67, align 8, !tbaa !9
  %2942 = getelementptr inbounds %struct.s2n_connection, ptr %2941, i32 0, i32 27
  %2943 = load ptr, ptr %2942, align 8, !tbaa !50
  %2944 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %2943, i32 0, i32 0
  store ptr @s2n_tls13_aes_256_gcm_sha384, ptr %2944, align 8, !tbaa !51
  %2945 = load ptr, ptr %67, align 8, !tbaa !9
  %2946 = load i32, ptr %2945, align 8
  %2947 = and i32 %2946, -262145
  %2948 = or i32 %2947, 262144
  store i32 %2948, ptr %2945, align 8
  %2949 = load ptr, ptr %67, align 8, !tbaa !9
  %2950 = load i32, ptr %2949, align 8
  %2951 = and i32 %2950, -524289
  %2952 = or i32 %2951, 524288
  store i32 %2952, ptr %2949, align 8
  br label %2953

2953:                                             ; preds = %2940
  %2954 = load i32, ptr @test_count, align 4, !tbaa !5
  %2955 = add nsw i32 %2954, 1
  store i32 %2955, ptr @test_count, align 4, !tbaa !5
  %2956 = call i32 @s2n_stuffer_write_uint8(ptr noundef %65, i8 noundef zeroext 0)
  %2957 = icmp eq i32 %2956, -1
  br i1 %2957, label %2958, label %3011

2958:                                             ; preds = %2953
  br label %2959

2959:                                             ; preds = %2958
  br label %2960

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

2967:                                             ; preds = %2960
  %2968 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2969 = call i32 @fileno(ptr noundef %2968) #11
  %2970 = call i32 @isatty(i32 noundef %2969) #11
  %2971 = icmp ne i32 %2970, 0
  br i1 %2971, label %2972, label %2989

2972:                                             ; preds = %2967
  %2973 = load i32, ptr %70, align 4, !tbaa !5
  %2974 = call ptr @__errno_location() #12
  store i32 %2973, ptr %2974, align 4, !tbaa !5
  %2975 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2976 = load i32, ptr @test_count, align 4, !tbaa !5
  %2977 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2978 = load i32, ptr %2977, align 4, !tbaa !5
  %2979 = call ptr @s2n_strerror(i32 noundef %2978, ptr noundef @.str.4)
  %2980 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2981 = load i32, ptr %2980, align 4, !tbaa !5
  %2982 = call ptr @s2n_strerror_debug(i32 noundef %2981, ptr noundef @.str.4)
  %2983 = call ptr @__errno_location() #12
  %2984 = load i32, ptr %2983, align 4, !tbaa !5
  %2985 = call ptr @strerror(i32 noundef %2984) #11
  %2986 = call ptr @__errno_location() #12
  %2987 = load i32, ptr %2986, align 4, !tbaa !5
  %2988 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2975, ptr noundef @.str.2, i32 noundef %2976, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 168, ptr noundef %2979, ptr noundef %2982, ptr noundef %2985, i32 noundef %2987) #11
  br label %3006

2989:                                             ; preds = %2967, %2960
  %2990 = load i32, ptr %70, align 4, !tbaa !5
  %2991 = call ptr @__errno_location() #12
  store i32 %2990, ptr %2991, align 4, !tbaa !5
  %2992 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2993 = load i32, ptr @test_count, align 4, !tbaa !5
  %2994 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2995 = load i32, ptr %2994, align 4, !tbaa !5
  %2996 = call ptr @s2n_strerror(i32 noundef %2995, ptr noundef @.str.4)
  %2997 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2998 = load i32, ptr %2997, align 4, !tbaa !5
  %2999 = call ptr @s2n_strerror_debug(i32 noundef %2998, ptr noundef @.str.4)
  %3000 = call ptr @__errno_location() #12
  %3001 = load i32, ptr %3000, align 4, !tbaa !5
  %3002 = call ptr @strerror(i32 noundef %3001) #11
  %3003 = call ptr @__errno_location() #12
  %3004 = load i32, ptr %3003, align 4, !tbaa !5
  %3005 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2992, ptr noundef @.str.5, i32 noundef %2993, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 168, ptr noundef %2996, ptr noundef %2999, ptr noundef %3002, i32 noundef %3004) #11
  br label %3006

3006:                                             ; preds = %2989, %2972
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #11
  br label %3007

3007:                                             ; preds = %3006
  br label %3008

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

3009:                                             ; No predecessors!
  br label %3010

3010:                                             ; preds = %3009
  br label %3011

3011:                                             ; preds = %3010, %2953
  br label %3012

3012:                                             ; preds = %3011
  br label %3013

3013:                                             ; preds = %3012
  br label %3014

3014:                                             ; preds = %3013
  br label %3015

3015:                                             ; preds = %3014
  br label %3016

3016:                                             ; preds = %3015
  %3017 = load i32, ptr @test_count, align 4, !tbaa !5
  %3018 = add nsw i32 %3017, 1
  store i32 %3018, ptr @test_count, align 4, !tbaa !5
  %3019 = load ptr, ptr %67, align 8, !tbaa !9
  %3020 = call i32 @s2n_key_update_recv(ptr noundef %3019, ptr noundef %65)
  %3021 = icmp eq i32 %3020, -1
  br i1 %3021, label %3075, label %3022

3022:                                             ; preds = %3016
  br label %3023

3023:                                             ; preds = %3022
  br label %3024

3024:                                             ; preds = %3023
  call void @llvm.lifetime.start.p0(i64 4, ptr %71) #11
  %3025 = call ptr @__errno_location() #12
  %3026 = load i32, ptr %3025, align 4, !tbaa !5
  store i32 %3026, ptr %71, align 4, !tbaa !5
  %3027 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3028 = call i32 @s2n_print_stacktrace(ptr noundef %3027)
  %3029 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3030 = trunc i8 %3029 to i1
  br i1 %3030, label %3031, label %3053

3031:                                             ; preds = %3024
  %3032 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3033 = call i32 @fileno(ptr noundef %3032) #11
  %3034 = call i32 @isatty(i32 noundef %3033) #11
  %3035 = icmp ne i32 %3034, 0
  br i1 %3035, label %3036, label %3053

3036:                                             ; preds = %3031
  %3037 = load i32, ptr %71, align 4, !tbaa !5
  %3038 = call ptr @__errno_location() #12
  store i32 %3037, ptr %3038, align 4, !tbaa !5
  %3039 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3040 = load i32, ptr @test_count, align 4, !tbaa !5
  %3041 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3042 = load i32, ptr %3041, align 4, !tbaa !5
  %3043 = call ptr @s2n_strerror(i32 noundef %3042, ptr noundef @.str.4)
  %3044 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3045 = load i32, ptr %3044, align 4, !tbaa !5
  %3046 = call ptr @s2n_strerror_debug(i32 noundef %3045, ptr noundef @.str.4)
  %3047 = call ptr @__errno_location() #12
  %3048 = load i32, ptr %3047, align 4, !tbaa !5
  %3049 = call ptr @strerror(i32 noundef %3048) #11
  %3050 = call ptr @__errno_location() #12
  %3051 = load i32, ptr %3050, align 4, !tbaa !5
  %3052 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3039, ptr noundef @.str.2, i32 noundef %3040, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 169, ptr noundef %3043, ptr noundef %3046, ptr noundef %3049, i32 noundef %3051) #11
  br label %3070

3053:                                             ; preds = %3031, %3024
  %3054 = load i32, ptr %71, align 4, !tbaa !5
  %3055 = call ptr @__errno_location() #12
  store i32 %3054, ptr %3055, align 4, !tbaa !5
  %3056 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3057 = load i32, ptr @test_count, align 4, !tbaa !5
  %3058 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3059 = load i32, ptr %3058, align 4, !tbaa !5
  %3060 = call ptr @s2n_strerror(i32 noundef %3059, ptr noundef @.str.4)
  %3061 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3062 = load i32, ptr %3061, align 4, !tbaa !5
  %3063 = call ptr @s2n_strerror_debug(i32 noundef %3062, ptr noundef @.str.4)
  %3064 = call ptr @__errno_location() #12
  %3065 = load i32, ptr %3064, align 4, !tbaa !5
  %3066 = call ptr @strerror(i32 noundef %3065) #11
  %3067 = call ptr @__errno_location() #12
  %3068 = load i32, ptr %3067, align 4, !tbaa !5
  %3069 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3056, ptr noundef @.str.5, i32 noundef %3057, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 169, ptr noundef %3060, ptr noundef %3063, ptr noundef %3066, i32 noundef %3068) #11
  br label %3070

3070:                                             ; preds = %3053, %3036
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #11
  br label %3071

3071:                                             ; preds = %3070
  br label %3072

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

3073:                                             ; No predecessors!
  br label %3074

3074:                                             ; preds = %3073
  br label %3075

3075:                                             ; preds = %3074, %3016
  br label %3076

3076:                                             ; preds = %3075
  br label %3077

3077:                                             ; preds = %3076
  br label %3078

3078:                                             ; preds = %3077
  %3079 = load i32, ptr @test_count, align 4, !tbaa !5
  %3080 = add nsw i32 %3079, 1
  store i32 %3080, ptr @test_count, align 4, !tbaa !5
  %3081 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3082 = load i32, ptr %3081, align 4, !tbaa !5
  %3083 = icmp eq i32 %3082, 335544399
  br i1 %3083, label %3137, label %3084

3084:                                             ; preds = %3078
  br label %3085

3085:                                             ; preds = %3084
  br label %3086

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

3093:                                             ; preds = %3086
  %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
  %3097 = icmp ne i32 %3096, 0
  br i1 %3097, label %3098, label %3115

3098:                                             ; preds = %3093
  %3099 = load i32, ptr %72, align 4, !tbaa !5
  %3100 = call ptr @__errno_location() #12
  store i32 %3099, ptr %3100, align 4, !tbaa !5
  %3101 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3102 = load i32, ptr @test_count, align 4, !tbaa !5
  %3103 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3104 = load i32, ptr %3103, align 4, !tbaa !5
  %3105 = call ptr @s2n_strerror(i32 noundef %3104, ptr noundef @.str.4)
  %3106 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3107 = load i32, ptr %3106, align 4, !tbaa !5
  %3108 = call ptr @s2n_strerror_debug(i32 noundef %3107, ptr noundef @.str.4)
  %3109 = call ptr @__errno_location() #12
  %3110 = load i32, ptr %3109, align 4, !tbaa !5
  %3111 = call ptr @strerror(i32 noundef %3110) #11
  %3112 = call ptr @__errno_location() #12
  %3113 = load i32, ptr %3112, align 4, !tbaa !5
  %3114 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3101, ptr noundef @.str.2, i32 noundef %3102, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 169, ptr noundef %3105, ptr noundef %3108, ptr noundef %3111, i32 noundef %3113) #11
  br label %3132

3115:                                             ; preds = %3093, %3086
  %3116 = load i32, ptr %72, align 4, !tbaa !5
  %3117 = call ptr @__errno_location() #12
  store i32 %3116, ptr %3117, align 4, !tbaa !5
  %3118 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3119 = load i32, ptr @test_count, align 4, !tbaa !5
  %3120 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3121 = load i32, ptr %3120, align 4, !tbaa !5
  %3122 = call ptr @s2n_strerror(i32 noundef %3121, ptr noundef @.str.4)
  %3123 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3124 = load i32, ptr %3123, align 4, !tbaa !5
  %3125 = call ptr @s2n_strerror_debug(i32 noundef %3124, ptr noundef @.str.4)
  %3126 = call ptr @__errno_location() #12
  %3127 = load i32, ptr %3126, align 4, !tbaa !5
  %3128 = call ptr @strerror(i32 noundef %3127) #11
  %3129 = call ptr @__errno_location() #12
  %3130 = load i32, ptr %3129, align 4, !tbaa !5
  %3131 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3118, ptr noundef @.str.5, i32 noundef %3119, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 169, ptr noundef %3122, ptr noundef %3125, ptr noundef %3128, i32 noundef %3130) #11
  br label %3132

3132:                                             ; preds = %3115, %3098
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #11
  br label %3133

3133:                                             ; preds = %3132
  br label %3134

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

3135:                                             ; No predecessors!
  br label %3136

3136:                                             ; preds = %3135
  br label %3137

3137:                                             ; preds = %3136, %3078
  br label %3138

3138:                                             ; preds = %3137
  br label %3139

3139:                                             ; preds = %3138
  br label %3140

3140:                                             ; preds = %3139
  %3141 = load i32, ptr @test_count, align 4, !tbaa !5
  %3142 = add nsw i32 %3141, 1
  store i32 %3142, ptr @test_count, align 4, !tbaa !5
  %3143 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3144 = load i32, ptr %3143, align 4, !tbaa !5
  %3145 = call ptr @s2n_strerror_debug(i32 noundef %3144, ptr noundef @.str.4)
  %3146 = icmp eq ptr %3145, null
  br i1 %3146, label %3147, label %3200

3147:                                             ; preds = %3140
  br label %3148

3148:                                             ; preds = %3147
  br label %3149

3149:                                             ; preds = %3148
  call void @llvm.lifetime.start.p0(i64 4, ptr %73) #11
  %3150 = call ptr @__errno_location() #12
  %3151 = load i32, ptr %3150, align 4, !tbaa !5
  store i32 %3151, ptr %73, align 4, !tbaa !5
  %3152 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3153 = call i32 @s2n_print_stacktrace(ptr noundef %3152)
  %3154 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3155 = trunc i8 %3154 to i1
  br i1 %3155, label %3156, label %3178

3156:                                             ; preds = %3149
  %3157 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3158 = call i32 @fileno(ptr noundef %3157) #11
  %3159 = call i32 @isatty(i32 noundef %3158) #11
  %3160 = icmp ne i32 %3159, 0
  br i1 %3160, label %3161, label %3178

3161:                                             ; preds = %3156
  %3162 = load i32, ptr %73, align 4, !tbaa !5
  %3163 = call ptr @__errno_location() #12
  store i32 %3162, ptr %3163, align 4, !tbaa !5
  %3164 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3165 = load i32, ptr @test_count, align 4, !tbaa !5
  %3166 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3167 = load i32, ptr %3166, align 4, !tbaa !5
  %3168 = call ptr @s2n_strerror(i32 noundef %3167, ptr noundef @.str.4)
  %3169 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3170 = load i32, ptr %3169, align 4, !tbaa !5
  %3171 = call ptr @s2n_strerror_debug(i32 noundef %3170, ptr noundef @.str.4)
  %3172 = call ptr @__errno_location() #12
  %3173 = load i32, ptr %3172, align 4, !tbaa !5
  %3174 = call ptr @strerror(i32 noundef %3173) #11
  %3175 = call ptr @__errno_location() #12
  %3176 = load i32, ptr %3175, align 4, !tbaa !5
  %3177 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3164, ptr noundef @.str.2, i32 noundef %3165, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 169, ptr noundef %3168, ptr noundef %3171, ptr noundef %3174, i32 noundef %3176) #11
  br label %3195

3178:                                             ; preds = %3156, %3149
  %3179 = load i32, ptr %73, align 4, !tbaa !5
  %3180 = call ptr @__errno_location() #12
  store i32 %3179, ptr %3180, align 4, !tbaa !5
  %3181 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3182 = load i32, ptr @test_count, align 4, !tbaa !5
  %3183 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3184 = load i32, ptr %3183, align 4, !tbaa !5
  %3185 = call ptr @s2n_strerror(i32 noundef %3184, ptr noundef @.str.4)
  %3186 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3187 = load i32, ptr %3186, align 4, !tbaa !5
  %3188 = call ptr @s2n_strerror_debug(i32 noundef %3187, ptr noundef @.str.4)
  %3189 = call ptr @__errno_location() #12
  %3190 = load i32, ptr %3189, align 4, !tbaa !5
  %3191 = call ptr @strerror(i32 noundef %3190) #11
  %3192 = call ptr @__errno_location() #12
  %3193 = load i32, ptr %3192, align 4, !tbaa !5
  %3194 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3181, ptr noundef @.str.5, i32 noundef %3182, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 169, ptr noundef %3185, ptr noundef %3188, ptr noundef %3191, i32 noundef %3193) #11
  br label %3195

3195:                                             ; preds = %3178, %3161
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #11
  br label %3196

3196:                                             ; preds = %3195
  br label %3197

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

3198:                                             ; No predecessors!
  br label %3199

3199:                                             ; preds = %3198
  br label %3200

3200:                                             ; preds = %3199, %3140
  br label %3201

3201:                                             ; preds = %3200
  br label %3202

3202:                                             ; preds = %3201
  br label %3203

3203:                                             ; preds = %3202
  br label %3204

3204:                                             ; preds = %3203
  br label %3205

3205:                                             ; preds = %3204
  %3206 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %3206, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %3207 = call ptr @__errno_location() #12
  store i32 0, ptr %3207, align 4, !tbaa !5
  br label %3208

3208:                                             ; preds = %3205
  br label %3209

3209:                                             ; preds = %3208
  br label %3210

3210:                                             ; preds = %3209
  br label %3211

3211:                                             ; preds = %3210
  br label %3212

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

3217:                                             ; preds = %3212
  br label %3218

3218:                                             ; preds = %3217
  br label %3219

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

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

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

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

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

3266:                                             ; preds = %3265
  br label %3267

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

3268:                                             ; No predecessors!
  br label %3269

3269:                                             ; preds = %3268
  br label %3270

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

3271:                                             ; preds = %3270
  br label %3272

3272:                                             ; preds = %3271
  %3273 = load ptr, ptr %67, align 8, !tbaa !9
  %3274 = load i32, ptr %3273, align 8
  %3275 = and i32 %3274, -262145
  %3276 = or i32 %3275, 262144
  store i32 %3276, ptr %3273, align 8
  %3277 = load ptr, ptr %67, align 8, !tbaa !9
  %3278 = load i32, ptr %3277, align 8
  %3279 = and i32 %3278, -524289
  %3280 = or i32 %3279, 0
  store i32 %3280, ptr %3277, align 8
  br label %3281

3281:                                             ; preds = %3272
  %3282 = load i32, ptr @test_count, align 4, !tbaa !5
  %3283 = add nsw i32 %3282, 1
  store i32 %3283, ptr @test_count, align 4, !tbaa !5
  %3284 = call i32 @s2n_stuffer_write_uint8(ptr noundef %65, i8 noundef zeroext 1)
  %3285 = icmp eq i32 %3284, -1
  br i1 %3285, label %3286, label %3339

3286:                                             ; preds = %3281
  br label %3287

3287:                                             ; preds = %3286
  br label %3288

3288:                                             ; preds = %3287
  call void @llvm.lifetime.start.p0(i64 4, ptr %75) #11
  %3289 = call ptr @__errno_location() #12
  %3290 = load i32, ptr %3289, align 4, !tbaa !5
  store i32 %3290, ptr %75, align 4, !tbaa !5
  %3291 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3292 = call i32 @s2n_print_stacktrace(ptr noundef %3291)
  %3293 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3294 = trunc i8 %3293 to i1
  br i1 %3294, label %3295, label %3317

3295:                                             ; preds = %3288
  %3296 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3297 = call i32 @fileno(ptr noundef %3296) #11
  %3298 = call i32 @isatty(i32 noundef %3297) #11
  %3299 = icmp ne i32 %3298, 0
  br i1 %3299, label %3300, label %3317

3300:                                             ; preds = %3295
  %3301 = load i32, ptr %75, align 4, !tbaa !5
  %3302 = call ptr @__errno_location() #12
  store i32 %3301, ptr %3302, align 4, !tbaa !5
  %3303 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3304 = load i32, ptr @test_count, align 4, !tbaa !5
  %3305 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3306 = load i32, ptr %3305, align 4, !tbaa !5
  %3307 = call ptr @s2n_strerror(i32 noundef %3306, ptr noundef @.str.4)
  %3308 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3309 = load i32, ptr %3308, align 4, !tbaa !5
  %3310 = call ptr @s2n_strerror_debug(i32 noundef %3309, ptr noundef @.str.4)
  %3311 = call ptr @__errno_location() #12
  %3312 = load i32, ptr %3311, align 4, !tbaa !5
  %3313 = call ptr @strerror(i32 noundef %3312) #11
  %3314 = call ptr @__errno_location() #12
  %3315 = load i32, ptr %3314, align 4, !tbaa !5
  %3316 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3303, ptr noundef @.str.2, i32 noundef %3304, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 177, ptr noundef %3307, ptr noundef %3310, ptr noundef %3313, i32 noundef %3315) #11
  br label %3334

3317:                                             ; preds = %3295, %3288
  %3318 = load i32, ptr %75, align 4, !tbaa !5
  %3319 = call ptr @__errno_location() #12
  store i32 %3318, ptr %3319, align 4, !tbaa !5
  %3320 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3321 = load i32, ptr @test_count, align 4, !tbaa !5
  %3322 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3323 = load i32, ptr %3322, align 4, !tbaa !5
  %3324 = call ptr @s2n_strerror(i32 noundef %3323, ptr noundef @.str.4)
  %3325 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3326 = load i32, ptr %3325, align 4, !tbaa !5
  %3327 = call ptr @s2n_strerror_debug(i32 noundef %3326, ptr noundef @.str.4)
  %3328 = call ptr @__errno_location() #12
  %3329 = load i32, ptr %3328, align 4, !tbaa !5
  %3330 = call ptr @strerror(i32 noundef %3329) #11
  %3331 = call ptr @__errno_location() #12
  %3332 = load i32, ptr %3331, align 4, !tbaa !5
  %3333 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3320, ptr noundef @.str.5, i32 noundef %3321, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 177, ptr noundef %3324, ptr noundef %3327, ptr noundef %3330, i32 noundef %3332) #11
  br label %3334

3334:                                             ; preds = %3317, %3300
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #11
  br label %3335

3335:                                             ; preds = %3334
  br label %3336

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

3337:                                             ; No predecessors!
  br label %3338

3338:                                             ; preds = %3337
  br label %3339

3339:                                             ; preds = %3338, %3281
  br label %3340

3340:                                             ; preds = %3339
  br label %3341

3341:                                             ; preds = %3340
  br label %3342

3342:                                             ; preds = %3341
  br label %3343

3343:                                             ; preds = %3342
  br label %3344

3344:                                             ; preds = %3343
  %3345 = load i32, ptr @test_count, align 4, !tbaa !5
  %3346 = add nsw i32 %3345, 1
  store i32 %3346, ptr @test_count, align 4, !tbaa !5
  %3347 = load ptr, ptr %67, align 8, !tbaa !9
  %3348 = call i32 @s2n_key_update_recv(ptr noundef %3347, ptr noundef %65)
  %3349 = icmp eq i32 %3348, -1
  br i1 %3349, label %3403, label %3350

3350:                                             ; preds = %3344
  br label %3351

3351:                                             ; preds = %3350
  br label %3352

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

3359:                                             ; preds = %3352
  %3360 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3361 = call i32 @fileno(ptr noundef %3360) #11
  %3362 = call i32 @isatty(i32 noundef %3361) #11
  %3363 = icmp ne i32 %3362, 0
  br i1 %3363, label %3364, label %3381

3364:                                             ; preds = %3359
  %3365 = load i32, ptr %76, align 4, !tbaa !5
  %3366 = call ptr @__errno_location() #12
  store i32 %3365, ptr %3366, align 4, !tbaa !5
  %3367 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3368 = load i32, ptr @test_count, align 4, !tbaa !5
  %3369 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3370 = load i32, ptr %3369, align 4, !tbaa !5
  %3371 = call ptr @s2n_strerror(i32 noundef %3370, ptr noundef @.str.4)
  %3372 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3373 = load i32, ptr %3372, align 4, !tbaa !5
  %3374 = call ptr @s2n_strerror_debug(i32 noundef %3373, ptr noundef @.str.4)
  %3375 = call ptr @__errno_location() #12
  %3376 = load i32, ptr %3375, align 4, !tbaa !5
  %3377 = call ptr @strerror(i32 noundef %3376) #11
  %3378 = call ptr @__errno_location() #12
  %3379 = load i32, ptr %3378, align 4, !tbaa !5
  %3380 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3367, ptr noundef @.str.2, i32 noundef %3368, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 178, ptr noundef %3371, ptr noundef %3374, ptr noundef %3377, i32 noundef %3379) #11
  br label %3398

3381:                                             ; preds = %3359, %3352
  %3382 = load i32, ptr %76, align 4, !tbaa !5
  %3383 = call ptr @__errno_location() #12
  store i32 %3382, ptr %3383, align 4, !tbaa !5
  %3384 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3385 = load i32, ptr @test_count, align 4, !tbaa !5
  %3386 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3387 = load i32, ptr %3386, align 4, !tbaa !5
  %3388 = call ptr @s2n_strerror(i32 noundef %3387, ptr noundef @.str.4)
  %3389 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3390 = load i32, ptr %3389, align 4, !tbaa !5
  %3391 = call ptr @s2n_strerror_debug(i32 noundef %3390, ptr noundef @.str.4)
  %3392 = call ptr @__errno_location() #12
  %3393 = load i32, ptr %3392, align 4, !tbaa !5
  %3394 = call ptr @strerror(i32 noundef %3393) #11
  %3395 = call ptr @__errno_location() #12
  %3396 = load i32, ptr %3395, align 4, !tbaa !5
  %3397 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3384, ptr noundef @.str.5, i32 noundef %3385, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 178, ptr noundef %3388, ptr noundef %3391, ptr noundef %3394, i32 noundef %3396) #11
  br label %3398

3398:                                             ; preds = %3381, %3364
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #11
  br label %3399

3399:                                             ; preds = %3398
  br label %3400

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

3401:                                             ; No predecessors!
  br label %3402

3402:                                             ; preds = %3401
  br label %3403

3403:                                             ; preds = %3402, %3344
  br label %3404

3404:                                             ; preds = %3403
  br label %3405

3405:                                             ; preds = %3404
  br label %3406

3406:                                             ; preds = %3405
  %3407 = load i32, ptr @test_count, align 4, !tbaa !5
  %3408 = add nsw i32 %3407, 1
  store i32 %3408, ptr @test_count, align 4, !tbaa !5
  %3409 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3410 = load i32, ptr %3409, align 4, !tbaa !5
  %3411 = icmp eq i32 %3410, 335544399
  br i1 %3411, label %3465, label %3412

3412:                                             ; preds = %3406
  br label %3413

3413:                                             ; preds = %3412
  br label %3414

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

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

3426:                                             ; preds = %3421
  %3427 = load i32, ptr %77, align 4, !tbaa !5
  %3428 = call ptr @__errno_location() #12
  store i32 %3427, ptr %3428, align 4, !tbaa !5
  %3429 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3430 = load i32, ptr @test_count, align 4, !tbaa !5
  %3431 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3432 = load i32, ptr %3431, align 4, !tbaa !5
  %3433 = call ptr @s2n_strerror(i32 noundef %3432, ptr noundef @.str.4)
  %3434 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3435 = load i32, ptr %3434, align 4, !tbaa !5
  %3436 = call ptr @s2n_strerror_debug(i32 noundef %3435, ptr noundef @.str.4)
  %3437 = call ptr @__errno_location() #12
  %3438 = load i32, ptr %3437, align 4, !tbaa !5
  %3439 = call ptr @strerror(i32 noundef %3438) #11
  %3440 = call ptr @__errno_location() #12
  %3441 = load i32, ptr %3440, align 4, !tbaa !5
  %3442 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3429, ptr noundef @.str.2, i32 noundef %3430, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 178, ptr noundef %3433, ptr noundef %3436, ptr noundef %3439, i32 noundef %3441) #11
  br label %3460

3443:                                             ; preds = %3421, %3414
  %3444 = load i32, ptr %77, align 4, !tbaa !5
  %3445 = call ptr @__errno_location() #12
  store i32 %3444, ptr %3445, align 4, !tbaa !5
  %3446 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3447 = load i32, ptr @test_count, align 4, !tbaa !5
  %3448 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3449 = load i32, ptr %3448, align 4, !tbaa !5
  %3450 = call ptr @s2n_strerror(i32 noundef %3449, ptr noundef @.str.4)
  %3451 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3452 = load i32, ptr %3451, align 4, !tbaa !5
  %3453 = call ptr @s2n_strerror_debug(i32 noundef %3452, ptr noundef @.str.4)
  %3454 = call ptr @__errno_location() #12
  %3455 = load i32, ptr %3454, align 4, !tbaa !5
  %3456 = call ptr @strerror(i32 noundef %3455) #11
  %3457 = call ptr @__errno_location() #12
  %3458 = load i32, ptr %3457, align 4, !tbaa !5
  %3459 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3446, ptr noundef @.str.5, i32 noundef %3447, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 178, ptr noundef %3450, ptr noundef %3453, ptr noundef %3456, i32 noundef %3458) #11
  br label %3460

3460:                                             ; preds = %3443, %3426
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #11
  br label %3461

3461:                                             ; preds = %3460
  br label %3462

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

3463:                                             ; No predecessors!
  br label %3464

3464:                                             ; preds = %3463
  br label %3465

3465:                                             ; preds = %3464, %3406
  br label %3466

3466:                                             ; preds = %3465
  br label %3467

3467:                                             ; preds = %3466
  br label %3468

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

3475:                                             ; preds = %3468
  br label %3476

3476:                                             ; preds = %3475
  br label %3477

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

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

3489:                                             ; preds = %3484
  %3490 = load i32, ptr %78, align 4, !tbaa !5
  %3491 = call ptr @__errno_location() #12
  store i32 %3490, ptr %3491, align 4, !tbaa !5
  %3492 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3493 = load i32, ptr @test_count, align 4, !tbaa !5
  %3494 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3495 = load i32, ptr %3494, align 4, !tbaa !5
  %3496 = call ptr @s2n_strerror(i32 noundef %3495, ptr noundef @.str.4)
  %3497 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3498 = load i32, ptr %3497, align 4, !tbaa !5
  %3499 = call ptr @s2n_strerror_debug(i32 noundef %3498, ptr noundef @.str.4)
  %3500 = call ptr @__errno_location() #12
  %3501 = load i32, ptr %3500, align 4, !tbaa !5
  %3502 = call ptr @strerror(i32 noundef %3501) #11
  %3503 = call ptr @__errno_location() #12
  %3504 = load i32, ptr %3503, align 4, !tbaa !5
  %3505 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3492, ptr noundef @.str.2, i32 noundef %3493, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 178, ptr noundef %3496, ptr noundef %3499, ptr noundef %3502, i32 noundef %3504) #11
  br label %3523

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

3523:                                             ; preds = %3506, %3489
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #11
  br label %3524

3524:                                             ; preds = %3523
  br label %3525

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

3526:                                             ; No predecessors!
  br label %3527

3527:                                             ; preds = %3526
  br label %3528

3528:                                             ; preds = %3527, %3468
  br label %3529

3529:                                             ; preds = %3528
  br label %3530

3530:                                             ; preds = %3529
  br label %3531

3531:                                             ; preds = %3530
  br label %3532

3532:                                             ; preds = %3531
  br label %3533

3533:                                             ; preds = %3532
  %3534 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %3534, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %3535 = call ptr @__errno_location() #12
  store i32 0, ptr %3535, align 4, !tbaa !5
  br label %3536

3536:                                             ; preds = %3533
  br label %3537

3537:                                             ; preds = %3536
  br label %3538

3538:                                             ; preds = %3537
  br label %3539

3539:                                             ; preds = %3538
  br label %3540

3540:                                             ; preds = %3539
  %3541 = load i32, ptr @test_count, align 4, !tbaa !5
  %3542 = add nsw i32 %3541, 1
  store i32 %3542, ptr @test_count, align 4, !tbaa !5
  %3543 = getelementptr inbounds %struct.s2n_stuffer, ptr %65, i32 0, i32 2
  %3544 = load i32, ptr %3543, align 4, !tbaa !22
  %3545 = getelementptr inbounds %struct.s2n_stuffer, ptr %65, i32 0, i32 1
  %3546 = load i32, ptr %3545, align 8, !tbaa !25
  %3547 = sub i32 %3544, %3546
  %3548 = icmp eq i32 %3547, 0
  br i1 %3548, label %3602, label %3549

3549:                                             ; preds = %3540
  br label %3550

3550:                                             ; preds = %3549
  br label %3551

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

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

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

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

3597:                                             ; preds = %3580, %3563
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #11
  br label %3598

3598:                                             ; preds = %3597
  br label %3599

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

3600:                                             ; No predecessors!
  br label %3601

3601:                                             ; preds = %3600
  br label %3602

3602:                                             ; preds = %3601, %3540
  br label %3603

3603:                                             ; preds = %3602
  br label %3604

3604:                                             ; preds = %3603
  %3605 = load ptr, ptr %67, align 8, !tbaa !9
  %3606 = load i32, ptr %3605, align 8
  %3607 = and i32 %3606, -262145
  %3608 = or i32 %3607, 262144
  store i32 %3608, ptr %3605, align 8
  %3609 = load ptr, ptr %67, align 8, !tbaa !9
  %3610 = load i32, ptr %3609, align 8
  %3611 = and i32 %3610, -524289
  %3612 = or i32 %3611, 0
  store i32 %3612, ptr %3609, align 8
  br label %3613

3613:                                             ; preds = %3604
  %3614 = load i32, ptr @test_count, align 4, !tbaa !5
  %3615 = add nsw i32 %3614, 1
  store i32 %3615, ptr @test_count, align 4, !tbaa !5
  %3616 = call i32 @s2n_stuffer_write_uint8(ptr noundef %65, i8 noundef zeroext 0)
  %3617 = icmp eq i32 %3616, -1
  br i1 %3617, label %3618, label %3671

3618:                                             ; preds = %3613
  br label %3619

3619:                                             ; preds = %3618
  br label %3620

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

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

3632:                                             ; preds = %3627
  %3633 = load i32, ptr %80, align 4, !tbaa !5
  %3634 = call ptr @__errno_location() #12
  store i32 %3633, ptr %3634, align 4, !tbaa !5
  %3635 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3636 = load i32, ptr @test_count, align 4, !tbaa !5
  %3637 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3638 = load i32, ptr %3637, align 4, !tbaa !5
  %3639 = call ptr @s2n_strerror(i32 noundef %3638, ptr noundef @.str.4)
  %3640 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3641 = load i32, ptr %3640, align 4, !tbaa !5
  %3642 = call ptr @s2n_strerror_debug(i32 noundef %3641, ptr noundef @.str.4)
  %3643 = call ptr @__errno_location() #12
  %3644 = load i32, ptr %3643, align 4, !tbaa !5
  %3645 = call ptr @strerror(i32 noundef %3644) #11
  %3646 = call ptr @__errno_location() #12
  %3647 = load i32, ptr %3646, align 4, !tbaa !5
  %3648 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3635, ptr noundef @.str.2, i32 noundef %3636, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 186, ptr noundef %3639, ptr noundef %3642, ptr noundef %3645, i32 noundef %3647) #11
  br label %3666

3649:                                             ; preds = %3627, %3620
  %3650 = load i32, ptr %80, align 4, !tbaa !5
  %3651 = call ptr @__errno_location() #12
  store i32 %3650, ptr %3651, align 4, !tbaa !5
  %3652 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3653 = load i32, ptr @test_count, align 4, !tbaa !5
  %3654 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3655 = load i32, ptr %3654, align 4, !tbaa !5
  %3656 = call ptr @s2n_strerror(i32 noundef %3655, ptr noundef @.str.4)
  %3657 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3658 = load i32, ptr %3657, align 4, !tbaa !5
  %3659 = call ptr @s2n_strerror_debug(i32 noundef %3658, ptr noundef @.str.4)
  %3660 = call ptr @__errno_location() #12
  %3661 = load i32, ptr %3660, align 4, !tbaa !5
  %3662 = call ptr @strerror(i32 noundef %3661) #11
  %3663 = call ptr @__errno_location() #12
  %3664 = load i32, ptr %3663, align 4, !tbaa !5
  %3665 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3652, ptr noundef @.str.5, i32 noundef %3653, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 186, ptr noundef %3656, ptr noundef %3659, ptr noundef %3662, i32 noundef %3664) #11
  br label %3666

3666:                                             ; preds = %3649, %3632
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #11
  br label %3667

3667:                                             ; preds = %3666
  br label %3668

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

3669:                                             ; No predecessors!
  br label %3670

3670:                                             ; preds = %3669
  br label %3671

3671:                                             ; preds = %3670, %3613
  br label %3672

3672:                                             ; preds = %3671
  br label %3673

3673:                                             ; preds = %3672
  br label %3674

3674:                                             ; preds = %3673
  %3675 = load i32, ptr @test_count, align 4, !tbaa !5
  %3676 = add nsw i32 %3675, 1
  store i32 %3676, ptr @test_count, align 4, !tbaa !5
  %3677 = load ptr, ptr %67, align 8, !tbaa !9
  %3678 = call i32 @s2n_key_update_recv(ptr noundef %3677, ptr noundef %65)
  %3679 = icmp eq i32 %3678, -1
  br i1 %3679, label %3680, label %3733

3680:                                             ; preds = %3674
  br label %3681

3681:                                             ; preds = %3680
  br label %3682

3682:                                             ; preds = %3681
  call void @llvm.lifetime.start.p0(i64 4, ptr %81) #11
  %3683 = call ptr @__errno_location() #12
  %3684 = load i32, ptr %3683, align 4, !tbaa !5
  store i32 %3684, ptr %81, 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 %81, 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.44, ptr noundef @.str.1, i32 noundef 187, ptr noundef %3701, ptr noundef %3704, ptr noundef %3707, i32 noundef %3709) #11
  br label %3728

3711:                                             ; preds = %3689, %3682
  %3712 = load i32, ptr %81, 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.44, ptr noundef @.str.1, i32 noundef 187, 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 %81) #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, %3674
  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 = getelementptr inbounds %struct.s2n_stuffer, ptr %65, i32 0, i32 2
  %3740 = load i32, ptr %3739, align 4, !tbaa !22
  %3741 = getelementptr inbounds %struct.s2n_stuffer, ptr %65, i32 0, i32 1
  %3742 = load i32, ptr %3741, align 8, !tbaa !25
  %3743 = sub i32 %3740, %3742
  %3744 = icmp eq i32 %3743, 0
  br i1 %3744, label %3798, label %3745

3745:                                             ; preds = %3736
  br label %3746

3746:                                             ; preds = %3745
  br label %3747

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

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

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

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

3793:                                             ; preds = %3776, %3759
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #11
  br label %3794

3794:                                             ; preds = %3793
  br label %3795

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

3796:                                             ; No predecessors!
  br label %3797

3797:                                             ; preds = %3796
  br label %3798

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

3799:                                             ; preds = %3798
  br label %3800

3800:                                             ; preds = %3799
  %3801 = call i32 @s2n_connection_ptr_free(ptr noundef %67)
  %3802 = getelementptr inbounds %struct.s2n_result, ptr %83, i32 0, i32 0
  store i32 %3801, ptr %3802, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #11
  %3803 = call i32 @s2n_stuffer_free(ptr noundef %65)
  call void @llvm.lifetime.end.p0(i64 40, ptr %65) #11
  call void @llvm.lifetime.start.p0(i64 40, ptr %84) #11
  br label %3804

3804:                                             ; preds = %3800
  %3805 = load i32, ptr @test_count, align 4, !tbaa !5
  %3806 = add nsw i32 %3805, 1
  store i32 %3806, ptr @test_count, align 4, !tbaa !5
  %3807 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %84, i32 noundef 0)
  %3808 = icmp eq i32 %3807, -1
  br i1 %3808, label %3809, label %3862

3809:                                             ; preds = %3804
  br label %3810

3810:                                             ; preds = %3809
  br label %3811

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

3818:                                             ; preds = %3811
  %3819 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3820 = call i32 @fileno(ptr noundef %3819) #11
  %3821 = call i32 @isatty(i32 noundef %3820) #11
  %3822 = icmp ne i32 %3821, 0
  br i1 %3822, label %3823, label %3840

3823:                                             ; preds = %3818
  %3824 = load i32, ptr %85, align 4, !tbaa !5
  %3825 = call ptr @__errno_location() #12
  store i32 %3824, ptr %3825, align 4, !tbaa !5
  %3826 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3827 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %3829, ptr noundef @.str.4)
  %3831 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3832 = load i32, ptr %3831, align 4, !tbaa !5
  %3833 = call ptr @s2n_strerror_debug(i32 noundef %3832, ptr noundef @.str.4)
  %3834 = call ptr @__errno_location() #12
  %3835 = load i32, ptr %3834, align 4, !tbaa !5
  %3836 = call ptr @strerror(i32 noundef %3835) #11
  %3837 = call ptr @__errno_location() #12
  %3838 = load i32, ptr %3837, align 4, !tbaa !5
  %3839 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3826, ptr noundef @.str.2, i32 noundef %3827, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 194, ptr noundef %3830, ptr noundef %3833, ptr noundef %3836, i32 noundef %3838) #11
  br label %3857

3840:                                             ; preds = %3818, %3811
  %3841 = load i32, ptr %85, align 4, !tbaa !5
  %3842 = call ptr @__errno_location() #12
  store i32 %3841, ptr %3842, align 4, !tbaa !5
  %3843 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3844 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %3846, ptr noundef @.str.4)
  %3848 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3849 = load i32, ptr %3848, align 4, !tbaa !5
  %3850 = call ptr @s2n_strerror_debug(i32 noundef %3849, ptr noundef @.str.4)
  %3851 = call ptr @__errno_location() #12
  %3852 = load i32, ptr %3851, align 4, !tbaa !5
  %3853 = call ptr @strerror(i32 noundef %3852) #11
  %3854 = call ptr @__errno_location() #12
  %3855 = load i32, ptr %3854, align 4, !tbaa !5
  %3856 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3843, ptr noundef @.str.5, i32 noundef %3844, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 194, ptr noundef %3847, ptr noundef %3850, ptr noundef %3853, i32 noundef %3855) #11
  br label %3857

3857:                                             ; preds = %3840, %3823
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #11
  br label %3858

3858:                                             ; preds = %3857
  br label %3859

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

3860:                                             ; No predecessors!
  br label %3861

3861:                                             ; preds = %3860
  br label %3862

3862:                                             ; preds = %3861, %3804
  br label %3863

3863:                                             ; preds = %3862
  br label %3864

3864:                                             ; preds = %3863
  call void @llvm.lifetime.start.p0(i64 8, ptr %86) #11
  store ptr null, ptr %86, align 8, !tbaa !9
  br label %3865

3865:                                             ; preds = %3864
  %3866 = load i32, ptr @test_count, align 4, !tbaa !5
  %3867 = add nsw i32 %3866, 1
  store i32 %3867, ptr @test_count, align 4, !tbaa !5
  %3868 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %3868, ptr %86, align 8, !tbaa !9
  %3869 = icmp eq ptr %3868, null
  br i1 %3869, label %3870, label %3923

3870:                                             ; preds = %3865
  br label %3871

3871:                                             ; preds = %3870
  br label %3872

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

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

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

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

3918:                                             ; preds = %3901, %3884
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #11
  br label %3919

3919:                                             ; preds = %3918
  br label %3920

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

3921:                                             ; No predecessors!
  br label %3922

3922:                                             ; preds = %3921
  br label %3923

3923:                                             ; preds = %3922, %3865
  br label %3924

3924:                                             ; preds = %3923
  br label %3925

3925:                                             ; preds = %3924
  br label %3926

3926:                                             ; preds = %3925
  %3927 = load i32, ptr @test_count, align 4, !tbaa !5
  %3928 = add nsw i32 %3927, 1
  store i32 %3928, ptr @test_count, align 4, !tbaa !5
  %3929 = call i32 @s2n_stuffer_write_uint8(ptr noundef %84, i8 noundef zeroext -1)
  %3930 = icmp eq i32 %3929, -1
  br i1 %3930, label %3931, label %3984

3931:                                             ; preds = %3926
  br label %3932

3932:                                             ; preds = %3931
  br label %3933

3933:                                             ; preds = %3932
  call void @llvm.lifetime.start.p0(i64 4, ptr %88) #11
  %3934 = call ptr @__errno_location() #12
  %3935 = load i32, ptr %3934, align 4, !tbaa !5
  store i32 %3935, ptr %88, align 4, !tbaa !5
  %3936 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3937 = call i32 @s2n_print_stacktrace(ptr noundef %3936)
  %3938 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3939 = trunc i8 %3938 to i1
  br i1 %3939, label %3940, label %3962

3940:                                             ; preds = %3933
  %3941 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3942 = call i32 @fileno(ptr noundef %3941) #11
  %3943 = call i32 @isatty(i32 noundef %3942) #11
  %3944 = icmp ne i32 %3943, 0
  br i1 %3944, label %3945, label %3962

3945:                                             ; preds = %3940
  %3946 = load i32, ptr %88, align 4, !tbaa !5
  %3947 = call ptr @__errno_location() #12
  store i32 %3946, ptr %3947, align 4, !tbaa !5
  %3948 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3949 = load i32, ptr @test_count, align 4, !tbaa !5
  %3950 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3951 = load i32, ptr %3950, align 4, !tbaa !5
  %3952 = call ptr @s2n_strerror(i32 noundef %3951, ptr noundef @.str.4)
  %3953 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3954 = load i32, ptr %3953, align 4, !tbaa !5
  %3955 = call ptr @s2n_strerror_debug(i32 noundef %3954, ptr noundef @.str.4)
  %3956 = call ptr @__errno_location() #12
  %3957 = load i32, ptr %3956, align 4, !tbaa !5
  %3958 = call ptr @strerror(i32 noundef %3957) #11
  %3959 = call ptr @__errno_location() #12
  %3960 = load i32, ptr %3959, align 4, !tbaa !5
  %3961 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3948, ptr noundef @.str.2, i32 noundef %3949, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 199, ptr noundef %3952, ptr noundef %3955, ptr noundef %3958, i32 noundef %3960) #11
  br label %3979

3962:                                             ; preds = %3940, %3933
  %3963 = load i32, ptr %88, align 4, !tbaa !5
  %3964 = call ptr @__errno_location() #12
  store i32 %3963, ptr %3964, align 4, !tbaa !5
  %3965 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3966 = load i32, ptr @test_count, align 4, !tbaa !5
  %3967 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3968 = load i32, ptr %3967, align 4, !tbaa !5
  %3969 = call ptr @s2n_strerror(i32 noundef %3968, ptr noundef @.str.4)
  %3970 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3971 = load i32, ptr %3970, align 4, !tbaa !5
  %3972 = call ptr @s2n_strerror_debug(i32 noundef %3971, ptr noundef @.str.4)
  %3973 = call ptr @__errno_location() #12
  %3974 = load i32, ptr %3973, align 4, !tbaa !5
  %3975 = call ptr @strerror(i32 noundef %3974) #11
  %3976 = call ptr @__errno_location() #12
  %3977 = load i32, ptr %3976, align 4, !tbaa !5
  %3978 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3965, ptr noundef @.str.5, i32 noundef %3966, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 199, ptr noundef %3969, ptr noundef %3972, ptr noundef %3975, i32 noundef %3977) #11
  br label %3979

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

3980:                                             ; preds = %3979
  br label %3981

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

3982:                                             ; No predecessors!
  br label %3983

3983:                                             ; preds = %3982
  br label %3984

3984:                                             ; preds = %3983, %3926
  br label %3985

3985:                                             ; preds = %3984
  br label %3986

3986:                                             ; preds = %3985
  br label %3987

3987:                                             ; preds = %3986
  br label %3988

3988:                                             ; preds = %3987
  br label %3989

3989:                                             ; preds = %3988
  %3990 = load i32, ptr @test_count, align 4, !tbaa !5
  %3991 = add nsw i32 %3990, 1
  store i32 %3991, ptr @test_count, align 4, !tbaa !5
  %3992 = load ptr, ptr %86, align 8, !tbaa !9
  %3993 = call i32 @s2n_key_update_recv(ptr noundef %3992, ptr noundef %84)
  %3994 = icmp eq i32 %3993, -1
  br i1 %3994, label %4048, label %3995

3995:                                             ; preds = %3989
  br label %3996

3996:                                             ; preds = %3995
  br label %3997

3997:                                             ; preds = %3996
  call void @llvm.lifetime.start.p0(i64 4, ptr %89) #11
  %3998 = call ptr @__errno_location() #12
  %3999 = load i32, ptr %3998, align 4, !tbaa !5
  store i32 %3999, ptr %89, align 4, !tbaa !5
  %4000 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4001 = call i32 @s2n_print_stacktrace(ptr noundef %4000)
  %4002 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4003 = trunc i8 %4002 to i1
  br i1 %4003, label %4004, label %4026

4004:                                             ; preds = %3997
  %4005 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4006 = call i32 @fileno(ptr noundef %4005) #11
  %4007 = call i32 @isatty(i32 noundef %4006) #11
  %4008 = icmp ne i32 %4007, 0
  br i1 %4008, label %4009, label %4026

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

4026:                                             ; preds = %4004, %3997
  %4027 = load i32, ptr %89, align 4, !tbaa !5
  %4028 = call ptr @__errno_location() #12
  store i32 %4027, ptr %4028, align 4, !tbaa !5
  %4029 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4030 = load i32, ptr @test_count, align 4, !tbaa !5
  %4031 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4032 = load i32, ptr %4031, align 4, !tbaa !5
  %4033 = call ptr @s2n_strerror(i32 noundef %4032, ptr noundef @.str.4)
  %4034 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4035 = load i32, ptr %4034, align 4, !tbaa !5
  %4036 = call ptr @s2n_strerror_debug(i32 noundef %4035, ptr noundef @.str.4)
  %4037 = call ptr @__errno_location() #12
  %4038 = load i32, ptr %4037, align 4, !tbaa !5
  %4039 = call ptr @strerror(i32 noundef %4038) #11
  %4040 = call ptr @__errno_location() #12
  %4041 = load i32, ptr %4040, align 4, !tbaa !5
  %4042 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4029, ptr noundef @.str.5, i32 noundef %4030, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 201, ptr noundef %4033, ptr noundef %4036, ptr noundef %4039, i32 noundef %4041) #11
  br label %4043

4043:                                             ; preds = %4026, %4009
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #11
  br label %4044

4044:                                             ; preds = %4043
  br label %4045

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

4046:                                             ; No predecessors!
  br label %4047

4047:                                             ; preds = %4046
  br label %4048

4048:                                             ; preds = %4047, %3989
  br label %4049

4049:                                             ; preds = %4048
  br label %4050

4050:                                             ; preds = %4049
  br label %4051

4051:                                             ; preds = %4050
  %4052 = load i32, ptr @test_count, align 4, !tbaa !5
  %4053 = add nsw i32 %4052, 1
  store i32 %4053, ptr @test_count, align 4, !tbaa !5
  %4054 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4055 = load i32, ptr %4054, align 4, !tbaa !5
  %4056 = icmp eq i32 %4055, 335544322
  br i1 %4056, label %4110, label %4057

4057:                                             ; preds = %4051
  br label %4058

4058:                                             ; preds = %4057
  br label %4059

4059:                                             ; preds = %4058
  call void @llvm.lifetime.start.p0(i64 4, ptr %90) #11
  %4060 = call ptr @__errno_location() #12
  %4061 = load i32, ptr %4060, align 4, !tbaa !5
  store i32 %4061, ptr %90, align 4, !tbaa !5
  %4062 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4063 = call i32 @s2n_print_stacktrace(ptr noundef %4062)
  %4064 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4065 = trunc i8 %4064 to i1
  br i1 %4065, label %4066, label %4088

4066:                                             ; preds = %4059
  %4067 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4068 = call i32 @fileno(ptr noundef %4067) #11
  %4069 = call i32 @isatty(i32 noundef %4068) #11
  %4070 = icmp ne i32 %4069, 0
  br i1 %4070, label %4071, label %4088

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

4088:                                             ; preds = %4066, %4059
  %4089 = load i32, ptr %90, align 4, !tbaa !5
  %4090 = call ptr @__errno_location() #12
  store i32 %4089, ptr %4090, align 4, !tbaa !5
  %4091 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4092 = load i32, ptr @test_count, align 4, !tbaa !5
  %4093 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4094 = load i32, ptr %4093, align 4, !tbaa !5
  %4095 = call ptr @s2n_strerror(i32 noundef %4094, ptr noundef @.str.4)
  %4096 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4097 = load i32, ptr %4096, align 4, !tbaa !5
  %4098 = call ptr @s2n_strerror_debug(i32 noundef %4097, ptr noundef @.str.4)
  %4099 = call ptr @__errno_location() #12
  %4100 = load i32, ptr %4099, align 4, !tbaa !5
  %4101 = call ptr @strerror(i32 noundef %4100) #11
  %4102 = call ptr @__errno_location() #12
  %4103 = load i32, ptr %4102, align 4, !tbaa !5
  %4104 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4091, ptr noundef @.str.5, i32 noundef %4092, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 201, ptr noundef %4095, ptr noundef %4098, ptr noundef %4101, i32 noundef %4103) #11
  br label %4105

4105:                                             ; preds = %4088, %4071
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #11
  br label %4106

4106:                                             ; preds = %4105
  br label %4107

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

4108:                                             ; No predecessors!
  br label %4109

4109:                                             ; preds = %4108
  br label %4110

4110:                                             ; preds = %4109, %4051
  br label %4111

4111:                                             ; preds = %4110
  br label %4112

4112:                                             ; preds = %4111
  br label %4113

4113:                                             ; preds = %4112
  %4114 = load i32, ptr @test_count, align 4, !tbaa !5
  %4115 = add nsw i32 %4114, 1
  store i32 %4115, ptr @test_count, align 4, !tbaa !5
  %4116 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4117 = load i32, ptr %4116, align 4, !tbaa !5
  %4118 = call ptr @s2n_strerror_debug(i32 noundef %4117, ptr noundef @.str.4)
  %4119 = icmp eq ptr %4118, null
  br i1 %4119, label %4120, label %4173

4120:                                             ; preds = %4113
  br label %4121

4121:                                             ; preds = %4120
  br label %4122

4122:                                             ; preds = %4121
  call void @llvm.lifetime.start.p0(i64 4, ptr %91) #11
  %4123 = call ptr @__errno_location() #12
  %4124 = load i32, ptr %4123, align 4, !tbaa !5
  store i32 %4124, ptr %91, align 4, !tbaa !5
  %4125 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4126 = call i32 @s2n_print_stacktrace(ptr noundef %4125)
  %4127 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4128 = trunc i8 %4127 to i1
  br i1 %4128, label %4129, label %4151

4129:                                             ; preds = %4122
  %4130 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4131 = call i32 @fileno(ptr noundef %4130) #11
  %4132 = call i32 @isatty(i32 noundef %4131) #11
  %4133 = icmp ne i32 %4132, 0
  br i1 %4133, label %4134, label %4151

4134:                                             ; preds = %4129
  %4135 = load i32, ptr %91, align 4, !tbaa !5
  %4136 = call ptr @__errno_location() #12
  store i32 %4135, ptr %4136, align 4, !tbaa !5
  %4137 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4138 = load i32, ptr @test_count, align 4, !tbaa !5
  %4139 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4140 = load i32, ptr %4139, align 4, !tbaa !5
  %4141 = call ptr @s2n_strerror(i32 noundef %4140, ptr noundef @.str.4)
  %4142 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4143 = load i32, ptr %4142, align 4, !tbaa !5
  %4144 = call ptr @s2n_strerror_debug(i32 noundef %4143, ptr noundef @.str.4)
  %4145 = call ptr @__errno_location() #12
  %4146 = load i32, ptr %4145, align 4, !tbaa !5
  %4147 = call ptr @strerror(i32 noundef %4146) #11
  %4148 = call ptr @__errno_location() #12
  %4149 = load i32, ptr %4148, align 4, !tbaa !5
  %4150 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4137, ptr noundef @.str.2, i32 noundef %4138, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 201, ptr noundef %4141, ptr noundef %4144, ptr noundef %4147, i32 noundef %4149) #11
  br label %4168

4151:                                             ; preds = %4129, %4122
  %4152 = load i32, ptr %91, align 4, !tbaa !5
  %4153 = call ptr @__errno_location() #12
  store i32 %4152, ptr %4153, align 4, !tbaa !5
  %4154 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4155 = load i32, ptr @test_count, align 4, !tbaa !5
  %4156 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4157 = load i32, ptr %4156, align 4, !tbaa !5
  %4158 = call ptr @s2n_strerror(i32 noundef %4157, ptr noundef @.str.4)
  %4159 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4160 = load i32, ptr %4159, align 4, !tbaa !5
  %4161 = call ptr @s2n_strerror_debug(i32 noundef %4160, ptr noundef @.str.4)
  %4162 = call ptr @__errno_location() #12
  %4163 = load i32, ptr %4162, align 4, !tbaa !5
  %4164 = call ptr @strerror(i32 noundef %4163) #11
  %4165 = call ptr @__errno_location() #12
  %4166 = load i32, ptr %4165, align 4, !tbaa !5
  %4167 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4154, ptr noundef @.str.5, i32 noundef %4155, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 201, ptr noundef %4158, ptr noundef %4161, ptr noundef %4164, i32 noundef %4166) #11
  br label %4168

4168:                                             ; preds = %4151, %4134
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #11
  br label %4169

4169:                                             ; preds = %4168
  br label %4170

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

4171:                                             ; No predecessors!
  br label %4172

4172:                                             ; preds = %4171
  br label %4173

4173:                                             ; preds = %4172, %4113
  br label %4174

4174:                                             ; preds = %4173
  br label %4175

4175:                                             ; preds = %4174
  br label %4176

4176:                                             ; preds = %4175
  br label %4177

4177:                                             ; preds = %4176
  br label %4178

4178:                                             ; preds = %4177
  %4179 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %4179, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %4180 = call ptr @__errno_location() #12
  store i32 0, ptr %4180, align 4, !tbaa !5
  br label %4181

4181:                                             ; preds = %4178
  br label %4182

4182:                                             ; preds = %4181
  br label %4183

4183:                                             ; preds = %4182
  br label %4184

4184:                                             ; preds = %4183
  br label %4185

4185:                                             ; preds = %4184
  %4186 = load i32, ptr @test_count, align 4, !tbaa !5
  %4187 = add nsw i32 %4186, 1
  store i32 %4187, ptr @test_count, align 4, !tbaa !5
  %4188 = load ptr, ptr %86, align 8, !tbaa !9
  %4189 = call i32 @s2n_connection_free(ptr noundef %4188)
  %4190 = icmp eq i32 %4189, -1
  br i1 %4190, label %4191, label %4244

4191:                                             ; preds = %4185
  br label %4192

4192:                                             ; preds = %4191
  br label %4193

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

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

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

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

4239:                                             ; preds = %4222, %4205
  call void @llvm.lifetime.end.p0(i64 4, ptr %92) #11
  br label %4240

4240:                                             ; preds = %4239
  br label %4241

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

4242:                                             ; No predecessors!
  br label %4243

4243:                                             ; preds = %4242
  br label %4244

4244:                                             ; preds = %4243, %4185
  br label %4245

4245:                                             ; preds = %4244
  br label %4246

4246:                                             ; preds = %4245
  call void @llvm.lifetime.end.p0(i64 8, ptr %86) #11
  %4247 = call i32 @s2n_stuffer_free(ptr noundef %84)
  call void @llvm.lifetime.end.p0(i64 40, ptr %84) #11
  call void @llvm.lifetime.start.p0(i64 40, ptr %93) #11
  br label %4248

4248:                                             ; preds = %4246
  %4249 = load i32, ptr @test_count, align 4, !tbaa !5
  %4250 = add nsw i32 %4249, 1
  store i32 %4250, ptr @test_count, align 4, !tbaa !5
  %4251 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %93, i32 noundef 0)
  %4252 = icmp eq i32 %4251, -1
  br i1 %4252, label %4253, label %4306

4253:                                             ; preds = %4248
  br label %4254

4254:                                             ; preds = %4253
  br label %4255

4255:                                             ; preds = %4254
  call void @llvm.lifetime.start.p0(i64 4, ptr %94) #11
  %4256 = call ptr @__errno_location() #12
  %4257 = load i32, ptr %4256, align 4, !tbaa !5
  store i32 %4257, ptr %94, align 4, !tbaa !5
  %4258 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4259 = call i32 @s2n_print_stacktrace(ptr noundef %4258)
  %4260 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4261 = trunc i8 %4260 to i1
  br i1 %4261, label %4262, label %4284

4262:                                             ; preds = %4255
  %4263 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4264 = call i32 @fileno(ptr noundef %4263) #11
  %4265 = call i32 @isatty(i32 noundef %4264) #11
  %4266 = icmp ne i32 %4265, 0
  br i1 %4266, label %4267, label %4284

4267:                                             ; preds = %4262
  %4268 = load i32, ptr %94, align 4, !tbaa !5
  %4269 = call ptr @__errno_location() #12
  store i32 %4268, ptr %4269, align 4, !tbaa !5
  %4270 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4271 = load i32, ptr @test_count, align 4, !tbaa !5
  %4272 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4273 = load i32, ptr %4272, align 4, !tbaa !5
  %4274 = call ptr @s2n_strerror(i32 noundef %4273, ptr noundef @.str.4)
  %4275 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4276 = load i32, ptr %4275, align 4, !tbaa !5
  %4277 = call ptr @s2n_strerror_debug(i32 noundef %4276, ptr noundef @.str.4)
  %4278 = call ptr @__errno_location() #12
  %4279 = load i32, ptr %4278, align 4, !tbaa !5
  %4280 = call ptr @strerror(i32 noundef %4279) #11
  %4281 = call ptr @__errno_location() #12
  %4282 = load i32, ptr %4281, align 4, !tbaa !5
  %4283 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4270, ptr noundef @.str.2, i32 noundef %4271, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 209, ptr noundef %4274, ptr noundef %4277, ptr noundef %4280, i32 noundef %4282) #11
  br label %4301

4284:                                             ; preds = %4262, %4255
  %4285 = load i32, ptr %94, align 4, !tbaa !5
  %4286 = call ptr @__errno_location() #12
  store i32 %4285, ptr %4286, align 4, !tbaa !5
  %4287 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4288 = load i32, ptr @test_count, align 4, !tbaa !5
  %4289 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4290 = load i32, ptr %4289, align 4, !tbaa !5
  %4291 = call ptr @s2n_strerror(i32 noundef %4290, ptr noundef @.str.4)
  %4292 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4293 = load i32, ptr %4292, align 4, !tbaa !5
  %4294 = call ptr @s2n_strerror_debug(i32 noundef %4293, ptr noundef @.str.4)
  %4295 = call ptr @__errno_location() #12
  %4296 = load i32, ptr %4295, align 4, !tbaa !5
  %4297 = call ptr @strerror(i32 noundef %4296) #11
  %4298 = call ptr @__errno_location() #12
  %4299 = load i32, ptr %4298, align 4, !tbaa !5
  %4300 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4287, ptr noundef @.str.5, i32 noundef %4288, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 209, ptr noundef %4291, ptr noundef %4294, ptr noundef %4297, i32 noundef %4299) #11
  br label %4301

4301:                                             ; preds = %4284, %4267
  call void @llvm.lifetime.end.p0(i64 4, ptr %94) #11
  br label %4302

4302:                                             ; preds = %4301
  br label %4303

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

4304:                                             ; No predecessors!
  br label %4305

4305:                                             ; preds = %4304
  br label %4306

4306:                                             ; preds = %4305, %4248
  br label %4307

4307:                                             ; preds = %4306
  br label %4308

4308:                                             ; preds = %4307
  call void @llvm.lifetime.start.p0(i64 8, ptr %95) #11
  store ptr null, ptr %95, align 8, !tbaa !9
  br label %4309

4309:                                             ; preds = %4308
  %4310 = load i32, ptr @test_count, align 4, !tbaa !5
  %4311 = add nsw i32 %4310, 1
  store i32 %4311, ptr @test_count, align 4, !tbaa !5
  %4312 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %4312, ptr %95, align 8, !tbaa !9
  %4313 = icmp eq ptr %4312, null
  br i1 %4313, label %4314, label %4367

4314:                                             ; preds = %4309
  br label %4315

4315:                                             ; preds = %4314
  br label %4316

4316:                                             ; preds = %4315
  call void @llvm.lifetime.start.p0(i64 4, ptr %96) #11
  %4317 = call ptr @__errno_location() #12
  %4318 = load i32, ptr %4317, align 4, !tbaa !5
  store i32 %4318, ptr %96, align 4, !tbaa !5
  %4319 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4320 = call i32 @s2n_print_stacktrace(ptr noundef %4319)
  %4321 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4322 = trunc i8 %4321 to i1
  br i1 %4322, label %4323, label %4345

4323:                                             ; preds = %4316
  %4324 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4325 = call i32 @fileno(ptr noundef %4324) #11
  %4326 = call i32 @isatty(i32 noundef %4325) #11
  %4327 = icmp ne i32 %4326, 0
  br i1 %4327, label %4328, label %4345

4328:                                             ; preds = %4323
  %4329 = load i32, ptr %96, align 4, !tbaa !5
  %4330 = call ptr @__errno_location() #12
  store i32 %4329, ptr %4330, align 4, !tbaa !5
  %4331 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4332 = load i32, ptr @test_count, align 4, !tbaa !5
  %4333 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4334 = load i32, ptr %4333, align 4, !tbaa !5
  %4335 = call ptr @s2n_strerror(i32 noundef %4334, ptr noundef @.str.4)
  %4336 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4337 = load i32, ptr %4336, align 4, !tbaa !5
  %4338 = call ptr @s2n_strerror_debug(i32 noundef %4337, ptr noundef @.str.4)
  %4339 = call ptr @__errno_location() #12
  %4340 = load i32, ptr %4339, align 4, !tbaa !5
  %4341 = call ptr @strerror(i32 noundef %4340) #11
  %4342 = call ptr @__errno_location() #12
  %4343 = load i32, ptr %4342, align 4, !tbaa !5
  %4344 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4331, ptr noundef @.str.2, i32 noundef %4332, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 212, ptr noundef %4335, ptr noundef %4338, ptr noundef %4341, i32 noundef %4343) #11
  br label %4362

4345:                                             ; preds = %4323, %4316
  %4346 = load i32, ptr %96, align 4, !tbaa !5
  %4347 = call ptr @__errno_location() #12
  store i32 %4346, ptr %4347, align 4, !tbaa !5
  %4348 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4349 = load i32, ptr @test_count, align 4, !tbaa !5
  %4350 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4351 = load i32, ptr %4350, align 4, !tbaa !5
  %4352 = call ptr @s2n_strerror(i32 noundef %4351, ptr noundef @.str.4)
  %4353 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4354 = load i32, ptr %4353, align 4, !tbaa !5
  %4355 = call ptr @s2n_strerror_debug(i32 noundef %4354, ptr noundef @.str.4)
  %4356 = call ptr @__errno_location() #12
  %4357 = load i32, ptr %4356, align 4, !tbaa !5
  %4358 = call ptr @strerror(i32 noundef %4357) #11
  %4359 = call ptr @__errno_location() #12
  %4360 = load i32, ptr %4359, align 4, !tbaa !5
  %4361 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4348, ptr noundef @.str.5, i32 noundef %4349, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 212, ptr noundef %4352, ptr noundef %4355, ptr noundef %4358, i32 noundef %4360) #11
  br label %4362

4362:                                             ; preds = %4345, %4328
  call void @llvm.lifetime.end.p0(i64 4, ptr %96) #11
  br label %4363

4363:                                             ; preds = %4362
  br label %4364

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

4365:                                             ; No predecessors!
  br label %4366

4366:                                             ; preds = %4365
  br label %4367

4367:                                             ; preds = %4366, %4309
  br label %4368

4368:                                             ; preds = %4367
  br label %4369

4369:                                             ; preds = %4368
  %4370 = load ptr, ptr %95, align 8, !tbaa !9
  %4371 = getelementptr inbounds %struct.s2n_connection, ptr %4370, i32 0, i32 23
  store i8 34, ptr %4371, align 4, !tbaa !26
  %4372 = load ptr, ptr %13, align 8, !tbaa !9
  %4373 = load ptr, ptr %95, align 8, !tbaa !9
  %4374 = getelementptr inbounds %struct.s2n_connection, ptr %4373, i32 0, i32 27
  %4375 = load ptr, ptr %4374, align 8, !tbaa !50
  %4376 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %4375, i32 0, i32 0
  store ptr %4372, ptr %4376, align 8, !tbaa !51
  br label %4377

4377:                                             ; preds = %4369
  call void @llvm.lifetime.start.p0(i64 4, ptr %97) #11
  %4378 = getelementptr inbounds %struct.s2n_blob, ptr %10, i32 0, i32 1
  %4379 = load i32, ptr %4378, align 8, !tbaa !56
  store i32 %4379, ptr %97, align 4, !tbaa !5
  %4380 = load i32, ptr %97, align 4, !tbaa !5
  %4381 = icmp ne i32 %4380, 0
  %4382 = xor i1 %4381, true
  %4383 = xor i1 %4382, true
  %4384 = zext i1 %4383 to i32
  %4385 = sext i32 %4384 to i64
  %4386 = call i64 @llvm.expect.i64(i64 %4385, i64 1)
  %4387 = icmp ne i64 %4386, 0
  br i1 %4387, label %4388, label %4441

4388:                                             ; preds = %4377
  call void @llvm.lifetime.start.p0(i64 8, ptr %98) #11
  %4389 = load ptr, ptr %95, align 8, !tbaa !9
  %4390 = getelementptr inbounds %struct.s2n_connection, ptr %4389, i32 0, i32 28
  %4391 = getelementptr inbounds %struct.s2n_secrets, ptr %4390, i32 0, i32 0
  %4392 = getelementptr inbounds %struct.s2n_tls13_secrets, ptr %4391, i32 0, i32 4
  %4393 = getelementptr inbounds [48 x i8], ptr %4392, i64 0, i64 0
  %4394 = getelementptr inbounds %struct.s2n_blob, ptr %10, i32 0, i32 0
  %4395 = load ptr, ptr %4394, align 8, !tbaa !57
  %4396 = load i32, ptr %97, align 4, !tbaa !5
  %4397 = zext i32 %4396 to i64
  %4398 = call ptr @s2n_ensure_memmove_trace(ptr noundef %4393, ptr noundef %4395, i64 noundef %4397)
  store ptr %4398, ptr %98, align 8, !tbaa !9
  br label %4399

4399:                                             ; preds = %4388
  %4400 = load ptr, ptr %98, align 8, !tbaa !9
  %4401 = icmp ne ptr %4400, null
  br i1 %4401, label %4435, label %4402

4402:                                             ; preds = %4399
  br label %4403

4403:                                             ; preds = %4402
  br label %4404

4404:                                             ; preds = %4403
  %4405 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %4406 = getelementptr inbounds %struct.s2n_debug_info, ptr %4405, i32 0, i32 0
  store ptr @.str.47, ptr %4406, align 8, !tbaa !58
  %4407 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %4408 = getelementptr inbounds %struct.s2n_debug_info, ptr %4407, i32 0, i32 0
  %4409 = load ptr, ptr %4408, align 8, !tbaa !58
  %4410 = getelementptr inbounds i8, ptr %4409, i64 21
  %4411 = call ptr @strrchr(ptr noundef %4410, i32 noundef 47) #14
  %4412 = icmp ne ptr %4411, null
  br i1 %4412, label %4413, label %4420

4413:                                             ; preds = %4404
  %4414 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %4415 = getelementptr inbounds %struct.s2n_debug_info, ptr %4414, i32 0, i32 0
  %4416 = load ptr, ptr %4415, align 8, !tbaa !58
  %4417 = getelementptr inbounds i8, ptr %4416, i64 21
  %4418 = call ptr @strrchr(ptr noundef %4417, i32 noundef 47) #14
  %4419 = getelementptr inbounds i8, ptr %4418, i64 1
  br label %4425

4420:                                             ; preds = %4404
  %4421 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %4422 = getelementptr inbounds %struct.s2n_debug_info, ptr %4421, i32 0, i32 0
  %4423 = load ptr, ptr %4422, align 8, !tbaa !58
  %4424 = getelementptr inbounds i8, ptr %4423, i64 21
  br label %4425

4425:                                             ; preds = %4420, %4413
  %4426 = phi ptr [ %4419, %4413 ], [ %4424, %4420 ]
  %4427 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %4428 = getelementptr inbounds %struct.s2n_debug_info, ptr %4427, i32 0, i32 1
  store ptr %4426, ptr %4428, align 8, !tbaa !60
  %4429 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 402653193, ptr %4429, align 4, !tbaa !5
  %4430 = call i32 @s2n_calculate_stacktrace()
  br label %4431

4431:                                             ; preds = %4425
  br label %4432

4432:                                             ; preds = %4431
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %4438

4433:                                             ; No predecessors!
  br label %4434

4434:                                             ; preds = %4433
  br label %4435

4435:                                             ; preds = %4434, %4399
  br label %4436

4436:                                             ; preds = %4435
  br label %4437

4437:                                             ; preds = %4436
  store i32 0, ptr %12, align 4
  br label %4438

4438:                                             ; preds = %4437, %4432
  call void @llvm.lifetime.end.p0(i64 8, ptr %98) #11
  %4439 = load i32, ptr %12, align 4
  switch i32 %4439, label %4442 [
    i32 0, label %4440
  ]

4440:                                             ; preds = %4438
  br label %4441

4441:                                             ; preds = %4440, %4377
  store i32 0, ptr %12, align 4
  br label %4442

4442:                                             ; preds = %4441, %4438
  call void @llvm.lifetime.end.p0(i64 4, ptr %97) #11
  %4443 = load i32, ptr %12, align 4
  switch i32 %4443, label %4830 [
    i32 0, label %4444
  ]

4444:                                             ; preds = %4442
  br label %4445

4445:                                             ; preds = %4444
  br label %4446

4446:                                             ; preds = %4445
  %4447 = load ptr, ptr %95, align 8, !tbaa !9
  %4448 = getelementptr inbounds %struct.s2n_connection, ptr %4447, i32 0, i32 27
  %4449 = load ptr, ptr %4448, align 8, !tbaa !50
  %4450 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %4449, i32 0, i32 7
  %4451 = getelementptr inbounds [8 x i8], ptr %4450, i64 0, i64 0
  store i8 1, ptr %4451, align 8, !tbaa !21
  br label %4452

4452:                                             ; preds = %4446
  %4453 = load i32, ptr @test_count, align 4, !tbaa !5
  %4454 = add nsw i32 %4453, 1
  store i32 %4454, ptr @test_count, align 4, !tbaa !5
  %4455 = call i32 @s2n_stuffer_write_uint8(ptr noundef %93, i8 noundef zeroext 0)
  %4456 = icmp eq i32 %4455, -1
  br i1 %4456, label %4457, label %4510

4457:                                             ; preds = %4452
  br label %4458

4458:                                             ; preds = %4457
  br label %4459

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

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

4471:                                             ; preds = %4466
  %4472 = load i32, ptr %99, align 4, !tbaa !5
  %4473 = call ptr @__errno_location() #12
  store i32 %4472, ptr %4473, align 4, !tbaa !5
  %4474 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4475 = load i32, ptr @test_count, align 4, !tbaa !5
  %4476 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4477 = load i32, ptr %4476, align 4, !tbaa !5
  %4478 = call ptr @s2n_strerror(i32 noundef %4477, ptr noundef @.str.4)
  %4479 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4480 = load i32, ptr %4479, align 4, !tbaa !5
  %4481 = call ptr @s2n_strerror_debug(i32 noundef %4480, ptr noundef @.str.4)
  %4482 = call ptr @__errno_location() #12
  %4483 = load i32, ptr %4482, align 4, !tbaa !5
  %4484 = call ptr @strerror(i32 noundef %4483) #11
  %4485 = call ptr @__errno_location() #12
  %4486 = load i32, ptr %4485, align 4, !tbaa !5
  %4487 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4474, ptr noundef @.str.2, i32 noundef %4475, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 219, ptr noundef %4478, ptr noundef %4481, ptr noundef %4484, i32 noundef %4486) #11
  br label %4505

4488:                                             ; preds = %4466, %4459
  %4489 = load i32, ptr %99, align 4, !tbaa !5
  %4490 = call ptr @__errno_location() #12
  store i32 %4489, ptr %4490, align 4, !tbaa !5
  %4491 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4492 = load i32, ptr @test_count, align 4, !tbaa !5
  %4493 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4494 = load i32, ptr %4493, align 4, !tbaa !5
  %4495 = call ptr @s2n_strerror(i32 noundef %4494, ptr noundef @.str.4)
  %4496 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4497 = load i32, ptr %4496, align 4, !tbaa !5
  %4498 = call ptr @s2n_strerror_debug(i32 noundef %4497, ptr noundef @.str.4)
  %4499 = call ptr @__errno_location() #12
  %4500 = load i32, ptr %4499, align 4, !tbaa !5
  %4501 = call ptr @strerror(i32 noundef %4500) #11
  %4502 = call ptr @__errno_location() #12
  %4503 = load i32, ptr %4502, align 4, !tbaa !5
  %4504 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4491, ptr noundef @.str.5, i32 noundef %4492, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 219, ptr noundef %4495, ptr noundef %4498, ptr noundef %4501, i32 noundef %4503) #11
  br label %4505

4505:                                             ; preds = %4488, %4471
  call void @llvm.lifetime.end.p0(i64 4, ptr %99) #11
  br label %4506

4506:                                             ; preds = %4505
  br label %4507

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

4508:                                             ; No predecessors!
  br label %4509

4509:                                             ; preds = %4508
  br label %4510

4510:                                             ; preds = %4509, %4452
  br label %4511

4511:                                             ; preds = %4510
  br label %4512

4512:                                             ; preds = %4511
  br label %4513

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

4519:                                             ; preds = %4513
  br label %4520

4520:                                             ; preds = %4519
  br label %4521

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

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

4533:                                             ; preds = %4528
  %4534 = load i32, ptr %100, align 4, !tbaa !5
  %4535 = call ptr @__errno_location() #12
  store i32 %4534, ptr %4535, align 4, !tbaa !5
  %4536 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4537 = load i32, ptr @test_count, align 4, !tbaa !5
  %4538 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4539 = load i32, ptr %4538, align 4, !tbaa !5
  %4540 = call ptr @s2n_strerror(i32 noundef %4539, ptr noundef @.str.4)
  %4541 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4542 = load i32, ptr %4541, align 4, !tbaa !5
  %4543 = call ptr @s2n_strerror_debug(i32 noundef %4542, ptr noundef @.str.4)
  %4544 = call ptr @__errno_location() #12
  %4545 = load i32, ptr %4544, align 4, !tbaa !5
  %4546 = call ptr @strerror(i32 noundef %4545) #11
  %4547 = call ptr @__errno_location() #12
  %4548 = load i32, ptr %4547, align 4, !tbaa !5
  %4549 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4536, ptr noundef @.str.2, i32 noundef %4537, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 221, ptr noundef %4540, ptr noundef %4543, ptr noundef %4546, i32 noundef %4548) #11
  br label %4567

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

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

4568:                                             ; preds = %4567
  br label %4569

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

4570:                                             ; No predecessors!
  br label %4571

4571:                                             ; preds = %4570
  br label %4572

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

4573:                                             ; preds = %4572
  br label %4574

4574:                                             ; preds = %4573
  br label %4575

4575:                                             ; preds = %4574
  %4576 = load i32, ptr @test_count, align 4, !tbaa !5
  %4577 = add nsw i32 %4576, 1
  store i32 %4577, ptr @test_count, align 4, !tbaa !5
  %4578 = load ptr, ptr %95, align 8, !tbaa !9
  %4579 = getelementptr inbounds %struct.s2n_connection, ptr %4578, i32 0, i32 27
  %4580 = load ptr, ptr %4579, align 8, !tbaa !50
  %4581 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %4580, i32 0, i32 7
  %4582 = getelementptr inbounds [8 x i8], ptr %4581, i64 0, i64 0
  %4583 = load i8, ptr %4582, align 8, !tbaa !21
  %4584 = zext i8 %4583 to i32
  %4585 = icmp eq i32 %4584, 0
  br i1 %4585, label %4639, label %4586

4586:                                             ; preds = %4575
  br label %4587

4587:                                             ; preds = %4586
  br label %4588

4588:                                             ; preds = %4587
  call void @llvm.lifetime.start.p0(i64 4, ptr %101) #11
  %4589 = call ptr @__errno_location() #12
  %4590 = load i32, ptr %4589, align 4, !tbaa !5
  store i32 %4590, ptr %101, align 4, !tbaa !5
  %4591 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4592 = call i32 @s2n_print_stacktrace(ptr noundef %4591)
  %4593 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4594 = trunc i8 %4593 to i1
  br i1 %4594, label %4595, label %4617

4595:                                             ; preds = %4588
  %4596 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4597 = call i32 @fileno(ptr noundef %4596) #11
  %4598 = call i32 @isatty(i32 noundef %4597) #11
  %4599 = icmp ne i32 %4598, 0
  br i1 %4599, label %4600, label %4617

4600:                                             ; preds = %4595
  %4601 = load i32, ptr %101, align 4, !tbaa !5
  %4602 = call ptr @__errno_location() #12
  store i32 %4601, ptr %4602, align 4, !tbaa !5
  %4603 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4604 = load i32, ptr @test_count, align 4, !tbaa !5
  %4605 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4606 = load i32, ptr %4605, align 4, !tbaa !5
  %4607 = call ptr @s2n_strerror(i32 noundef %4606, ptr noundef @.str.4)
  %4608 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4609 = load i32, ptr %4608, align 4, !tbaa !5
  %4610 = call ptr @s2n_strerror_debug(i32 noundef %4609, ptr noundef @.str.4)
  %4611 = call ptr @__errno_location() #12
  %4612 = load i32, ptr %4611, align 4, !tbaa !5
  %4613 = call ptr @strerror(i32 noundef %4612) #11
  %4614 = call ptr @__errno_location() #12
  %4615 = load i32, ptr %4614, align 4, !tbaa !5
  %4616 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4603, ptr noundef @.str.2, i32 noundef %4604, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 222, ptr noundef %4607, ptr noundef %4610, ptr noundef %4613, i32 noundef %4615) #11
  br label %4634

4617:                                             ; preds = %4595, %4588
  %4618 = load i32, ptr %101, align 4, !tbaa !5
  %4619 = call ptr @__errno_location() #12
  store i32 %4618, ptr %4619, align 4, !tbaa !5
  %4620 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4621 = load i32, ptr @test_count, align 4, !tbaa !5
  %4622 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4623 = load i32, ptr %4622, align 4, !tbaa !5
  %4624 = call ptr @s2n_strerror(i32 noundef %4623, ptr noundef @.str.4)
  %4625 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4626 = load i32, ptr %4625, align 4, !tbaa !5
  %4627 = call ptr @s2n_strerror_debug(i32 noundef %4626, ptr noundef @.str.4)
  %4628 = call ptr @__errno_location() #12
  %4629 = load i32, ptr %4628, align 4, !tbaa !5
  %4630 = call ptr @strerror(i32 noundef %4629) #11
  %4631 = call ptr @__errno_location() #12
  %4632 = load i32, ptr %4631, align 4, !tbaa !5
  %4633 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4620, ptr noundef @.str.5, i32 noundef %4621, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 222, ptr noundef %4624, ptr noundef %4627, ptr noundef %4630, i32 noundef %4632) #11
  br label %4634

4634:                                             ; preds = %4617, %4600
  call void @llvm.lifetime.end.p0(i64 4, ptr %101) #11
  br label %4635

4635:                                             ; preds = %4634
  br label %4636

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

4637:                                             ; No predecessors!
  br label %4638

4638:                                             ; preds = %4637
  br label %4639

4639:                                             ; preds = %4638, %4575
  br label %4640

4640:                                             ; preds = %4639
  br label %4641

4641:                                             ; preds = %4640
  br label %4642

4642:                                             ; preds = %4641
  %4643 = load i32, ptr @test_count, align 4, !tbaa !5
  %4644 = add nsw i32 %4643, 1
  store i32 %4644, ptr @test_count, align 4, !tbaa !5
  %4645 = load ptr, ptr %95, align 8, !tbaa !9
  %4646 = getelementptr inbounds %struct.s2n_connection, ptr %4645, i32 0, i32 94
  %4647 = call zeroext i1 @s2n_atomic_flag_test(ptr noundef %4646)
  br i1 %4647, label %4648, label %4701

4648:                                             ; preds = %4642
  br label %4649

4649:                                             ; preds = %4648
  br label %4650

4650:                                             ; preds = %4649
  call void @llvm.lifetime.start.p0(i64 4, ptr %102) #11
  %4651 = call ptr @__errno_location() #12
  %4652 = load i32, ptr %4651, align 4, !tbaa !5
  store i32 %4652, ptr %102, align 4, !tbaa !5
  %4653 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4654 = call i32 @s2n_print_stacktrace(ptr noundef %4653)
  %4655 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4656 = trunc i8 %4655 to i1
  br i1 %4656, label %4657, label %4679

4657:                                             ; preds = %4650
  %4658 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4659 = call i32 @fileno(ptr noundef %4658) #11
  %4660 = call i32 @isatty(i32 noundef %4659) #11
  %4661 = icmp ne i32 %4660, 0
  br i1 %4661, label %4662, label %4679

4662:                                             ; preds = %4657
  %4663 = load i32, ptr %102, align 4, !tbaa !5
  %4664 = call ptr @__errno_location() #12
  store i32 %4663, ptr %4664, align 4, !tbaa !5
  %4665 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4666 = load i32, ptr @test_count, align 4, !tbaa !5
  %4667 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4668 = load i32, ptr %4667, align 4, !tbaa !5
  %4669 = call ptr @s2n_strerror(i32 noundef %4668, ptr noundef @.str.4)
  %4670 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4671 = load i32, ptr %4670, align 4, !tbaa !5
  %4672 = call ptr @s2n_strerror_debug(i32 noundef %4671, ptr noundef @.str.4)
  %4673 = call ptr @__errno_location() #12
  %4674 = load i32, ptr %4673, align 4, !tbaa !5
  %4675 = call ptr @strerror(i32 noundef %4674) #11
  %4676 = call ptr @__errno_location() #12
  %4677 = load i32, ptr %4676, align 4, !tbaa !5
  %4678 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4665, ptr noundef @.str.2, i32 noundef %4666, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 223, ptr noundef %4669, ptr noundef %4672, ptr noundef %4675, i32 noundef %4677) #11
  br label %4696

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

4696:                                             ; preds = %4679, %4662
  call void @llvm.lifetime.end.p0(i64 4, ptr %102) #11
  br label %4697

4697:                                             ; preds = %4696
  br label %4698

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

4699:                                             ; No predecessors!
  br label %4700

4700:                                             ; preds = %4699
  br label %4701

4701:                                             ; preds = %4700, %4642
  br label %4702

4702:                                             ; preds = %4701
  br label %4703

4703:                                             ; preds = %4702
  br label %4704

4704:                                             ; preds = %4703
  %4705 = load i32, ptr @test_count, align 4, !tbaa !5
  %4706 = add nsw i32 %4705, 1
  store i32 %4706, ptr @test_count, align 4, !tbaa !5
  %4707 = load ptr, ptr %95, align 8, !tbaa !9
  %4708 = getelementptr inbounds %struct.s2n_connection, ptr %4707, i32 0, i32 96
  %4709 = load i8, ptr %4708, align 1, !tbaa !61
  %4710 = zext i8 %4709 to i32
  %4711 = icmp eq i32 %4710, 1
  br i1 %4711, label %4765, label %4712

4712:                                             ; preds = %4704
  br label %4713

4713:                                             ; preds = %4712
  br label %4714

4714:                                             ; preds = %4713
  call void @llvm.lifetime.start.p0(i64 4, ptr %103) #11
  %4715 = call ptr @__errno_location() #12
  %4716 = load i32, ptr %4715, align 4, !tbaa !5
  store i32 %4716, ptr %103, align 4, !tbaa !5
  %4717 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4718 = call i32 @s2n_print_stacktrace(ptr noundef %4717)
  %4719 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4720 = trunc i8 %4719 to i1
  br i1 %4720, label %4721, label %4743

4721:                                             ; preds = %4714
  %4722 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4723 = call i32 @fileno(ptr noundef %4722) #11
  %4724 = call i32 @isatty(i32 noundef %4723) #11
  %4725 = icmp ne i32 %4724, 0
  br i1 %4725, label %4726, label %4743

4726:                                             ; preds = %4721
  %4727 = load i32, ptr %103, align 4, !tbaa !5
  %4728 = call ptr @__errno_location() #12
  store i32 %4727, ptr %4728, align 4, !tbaa !5
  %4729 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4730 = load i32, ptr @test_count, align 4, !tbaa !5
  %4731 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4732 = load i32, ptr %4731, align 4, !tbaa !5
  %4733 = call ptr @s2n_strerror(i32 noundef %4732, ptr noundef @.str.4)
  %4734 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4735 = load i32, ptr %4734, align 4, !tbaa !5
  %4736 = call ptr @s2n_strerror_debug(i32 noundef %4735, ptr noundef @.str.4)
  %4737 = call ptr @__errno_location() #12
  %4738 = load i32, ptr %4737, align 4, !tbaa !5
  %4739 = call ptr @strerror(i32 noundef %4738) #11
  %4740 = call ptr @__errno_location() #12
  %4741 = load i32, ptr %4740, align 4, !tbaa !5
  %4742 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4729, ptr noundef @.str.2, i32 noundef %4730, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 224, ptr noundef %4733, ptr noundef %4736, ptr noundef %4739, i32 noundef %4741) #11
  br label %4760

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

4760:                                             ; preds = %4743, %4726
  call void @llvm.lifetime.end.p0(i64 4, ptr %103) #11
  br label %4761

4761:                                             ; preds = %4760
  br label %4762

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

4763:                                             ; No predecessors!
  br label %4764

4764:                                             ; preds = %4763
  br label %4765

4765:                                             ; preds = %4764, %4704
  br label %4766

4766:                                             ; preds = %4765
  br label %4767

4767:                                             ; preds = %4766
  br label %4768

4768:                                             ; preds = %4767
  %4769 = load i32, ptr @test_count, align 4, !tbaa !5
  %4770 = add nsw i32 %4769, 1
  store i32 %4770, ptr @test_count, align 4, !tbaa !5
  %4771 = load ptr, ptr %95, align 8, !tbaa !9
  %4772 = call i32 @s2n_connection_free(ptr noundef %4771)
  %4773 = icmp eq i32 %4772, -1
  br i1 %4773, label %4774, label %4827

4774:                                             ; preds = %4768
  br label %4775

4775:                                             ; preds = %4774
  br label %4776

4776:                                             ; preds = %4775
  call void @llvm.lifetime.start.p0(i64 4, ptr %104) #11
  %4777 = call ptr @__errno_location() #12
  %4778 = load i32, ptr %4777, align 4, !tbaa !5
  store i32 %4778, ptr %104, align 4, !tbaa !5
  %4779 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4780 = call i32 @s2n_print_stacktrace(ptr noundef %4779)
  %4781 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4782 = trunc i8 %4781 to i1
  br i1 %4782, label %4783, label %4805

4783:                                             ; preds = %4776
  %4784 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4785 = call i32 @fileno(ptr noundef %4784) #11
  %4786 = call i32 @isatty(i32 noundef %4785) #11
  %4787 = icmp ne i32 %4786, 0
  br i1 %4787, label %4788, label %4805

4788:                                             ; preds = %4783
  %4789 = load i32, ptr %104, align 4, !tbaa !5
  %4790 = call ptr @__errno_location() #12
  store i32 %4789, ptr %4790, align 4, !tbaa !5
  %4791 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4792 = load i32, ptr @test_count, align 4, !tbaa !5
  %4793 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4794 = load i32, ptr %4793, align 4, !tbaa !5
  %4795 = call ptr @s2n_strerror(i32 noundef %4794, ptr noundef @.str.4)
  %4796 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4797 = load i32, ptr %4796, align 4, !tbaa !5
  %4798 = call ptr @s2n_strerror_debug(i32 noundef %4797, ptr noundef @.str.4)
  %4799 = call ptr @__errno_location() #12
  %4800 = load i32, ptr %4799, align 4, !tbaa !5
  %4801 = call ptr @strerror(i32 noundef %4800) #11
  %4802 = call ptr @__errno_location() #12
  %4803 = load i32, ptr %4802, align 4, !tbaa !5
  %4804 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4791, ptr noundef @.str.2, i32 noundef %4792, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 226, ptr noundef %4795, ptr noundef %4798, ptr noundef %4801, i32 noundef %4803) #11
  br label %4822

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

4822:                                             ; preds = %4805, %4788
  call void @llvm.lifetime.end.p0(i64 4, ptr %104) #11
  br label %4823

4823:                                             ; preds = %4822
  br label %4824

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

4825:                                             ; No predecessors!
  br label %4826

4826:                                             ; preds = %4825
  br label %4827

4827:                                             ; preds = %4826, %4768
  br label %4828

4828:                                             ; preds = %4827
  br label %4829

4829:                                             ; preds = %4828
  store i32 0, ptr %12, align 4
  br label %4830

4830:                                             ; preds = %4829, %4442
  call void @llvm.lifetime.end.p0(i64 8, ptr %95) #11
  %4831 = call i32 @s2n_stuffer_free(ptr noundef %93)
  call void @llvm.lifetime.end.p0(i64 40, ptr %93) #11
  %4832 = load i32, ptr %12, align 4
  switch i32 %4832, label %15412 [
    i32 0, label %4833
  ]

4833:                                             ; preds = %4830
  call void @llvm.lifetime.start.p0(i64 40, ptr %105) #11
  br label %4834

4834:                                             ; preds = %4833
  %4835 = load i32, ptr @test_count, align 4, !tbaa !5
  %4836 = add nsw i32 %4835, 1
  store i32 %4836, ptr @test_count, align 4, !tbaa !5
  %4837 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %105, i32 noundef 0)
  %4838 = icmp eq i32 %4837, -1
  br i1 %4838, label %4839, label %4892

4839:                                             ; preds = %4834
  br label %4840

4840:                                             ; preds = %4839
  br label %4841

4841:                                             ; preds = %4840
  call void @llvm.lifetime.start.p0(i64 4, ptr %106) #11
  %4842 = call ptr @__errno_location() #12
  %4843 = load i32, ptr %4842, align 4, !tbaa !5
  store i32 %4843, ptr %106, align 4, !tbaa !5
  %4844 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4845 = call i32 @s2n_print_stacktrace(ptr noundef %4844)
  %4846 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4847 = trunc i8 %4846 to i1
  br i1 %4847, label %4848, label %4870

4848:                                             ; preds = %4841
  %4849 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4850 = call i32 @fileno(ptr noundef %4849) #11
  %4851 = call i32 @isatty(i32 noundef %4850) #11
  %4852 = icmp ne i32 %4851, 0
  br i1 %4852, label %4853, label %4870

4853:                                             ; preds = %4848
  %4854 = load i32, ptr %106, align 4, !tbaa !5
  %4855 = call ptr @__errno_location() #12
  store i32 %4854, ptr %4855, align 4, !tbaa !5
  %4856 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4857 = load i32, ptr @test_count, align 4, !tbaa !5
  %4858 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4859 = load i32, ptr %4858, align 4, !tbaa !5
  %4860 = call ptr @s2n_strerror(i32 noundef %4859, ptr noundef @.str.4)
  %4861 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4862 = load i32, ptr %4861, align 4, !tbaa !5
  %4863 = call ptr @s2n_strerror_debug(i32 noundef %4862, ptr noundef @.str.4)
  %4864 = call ptr @__errno_location() #12
  %4865 = load i32, ptr %4864, align 4, !tbaa !5
  %4866 = call ptr @strerror(i32 noundef %4865) #11
  %4867 = call ptr @__errno_location() #12
  %4868 = load i32, ptr %4867, align 4, !tbaa !5
  %4869 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4856, ptr noundef @.str.2, i32 noundef %4857, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 232, ptr noundef %4860, ptr noundef %4863, ptr noundef %4866, i32 noundef %4868) #11
  br label %4887

4870:                                             ; preds = %4848, %4841
  %4871 = load i32, ptr %106, 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.5, i32 noundef %4874, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 232, ptr noundef %4877, ptr noundef %4880, ptr noundef %4883, i32 noundef %4885) #11
  br label %4887

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

4888:                                             ; preds = %4887
  br label %4889

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

4890:                                             ; No predecessors!
  br label %4891

4891:                                             ; preds = %4890
  br label %4892

4892:                                             ; preds = %4891, %4834
  br label %4893

4893:                                             ; preds = %4892
  br label %4894

4894:                                             ; preds = %4893
  call void @llvm.lifetime.start.p0(i64 8, ptr %107) #11
  store ptr null, ptr %107, align 8, !tbaa !9
  br label %4895

4895:                                             ; preds = %4894
  %4896 = load i32, ptr @test_count, align 4, !tbaa !5
  %4897 = add nsw i32 %4896, 1
  store i32 %4897, ptr @test_count, align 4, !tbaa !5
  %4898 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %4898, ptr %107, align 8, !tbaa !9
  %4899 = icmp eq ptr %4898, null
  br i1 %4899, label %4900, label %4953

4900:                                             ; preds = %4895
  br label %4901

4901:                                             ; preds = %4900
  br label %4902

4902:                                             ; preds = %4901
  call void @llvm.lifetime.start.p0(i64 4, ptr %108) #11
  %4903 = call ptr @__errno_location() #12
  %4904 = load i32, ptr %4903, align 4, !tbaa !5
  store i32 %4904, ptr %108, align 4, !tbaa !5
  %4905 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4906 = call i32 @s2n_print_stacktrace(ptr noundef %4905)
  %4907 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4908 = trunc i8 %4907 to i1
  br i1 %4908, label %4909, label %4931

4909:                                             ; preds = %4902
  %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
  %4913 = icmp ne i32 %4912, 0
  br i1 %4913, label %4914, label %4931

4914:                                             ; preds = %4909
  %4915 = load i32, ptr %108, align 4, !tbaa !5
  %4916 = call ptr @__errno_location() #12
  store i32 %4915, ptr %4916, align 4, !tbaa !5
  %4917 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4918 = load i32, ptr @test_count, align 4, !tbaa !5
  %4919 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4920 = load i32, ptr %4919, align 4, !tbaa !5
  %4921 = call ptr @s2n_strerror(i32 noundef %4920, ptr noundef @.str.4)
  %4922 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4923 = load i32, ptr %4922, align 4, !tbaa !5
  %4924 = call ptr @s2n_strerror_debug(i32 noundef %4923, ptr noundef @.str.4)
  %4925 = call ptr @__errno_location() #12
  %4926 = load i32, ptr %4925, align 4, !tbaa !5
  %4927 = call ptr @strerror(i32 noundef %4926) #11
  %4928 = call ptr @__errno_location() #12
  %4929 = load i32, ptr %4928, align 4, !tbaa !5
  %4930 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4917, ptr noundef @.str.2, i32 noundef %4918, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 235, ptr noundef %4921, ptr noundef %4924, ptr noundef %4927, i32 noundef %4929) #11
  br label %4948

4931:                                             ; preds = %4909, %4902
  %4932 = load i32, ptr %108, align 4, !tbaa !5
  %4933 = call ptr @__errno_location() #12
  store i32 %4932, ptr %4933, align 4, !tbaa !5
  %4934 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4935 = load i32, ptr @test_count, align 4, !tbaa !5
  %4936 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4937 = load i32, ptr %4936, align 4, !tbaa !5
  %4938 = call ptr @s2n_strerror(i32 noundef %4937, ptr noundef @.str.4)
  %4939 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4940 = load i32, ptr %4939, align 4, !tbaa !5
  %4941 = call ptr @s2n_strerror_debug(i32 noundef %4940, ptr noundef @.str.4)
  %4942 = call ptr @__errno_location() #12
  %4943 = load i32, ptr %4942, align 4, !tbaa !5
  %4944 = call ptr @strerror(i32 noundef %4943) #11
  %4945 = call ptr @__errno_location() #12
  %4946 = load i32, ptr %4945, align 4, !tbaa !5
  %4947 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4934, ptr noundef @.str.5, i32 noundef %4935, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 235, ptr noundef %4938, ptr noundef %4941, ptr noundef %4944, i32 noundef %4946) #11
  br label %4948

4948:                                             ; preds = %4931, %4914
  call void @llvm.lifetime.end.p0(i64 4, ptr %108) #11
  br label %4949

4949:                                             ; preds = %4948
  br label %4950

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

4951:                                             ; No predecessors!
  br label %4952

4952:                                             ; preds = %4951
  br label %4953

4953:                                             ; preds = %4952, %4895
  br label %4954

4954:                                             ; preds = %4953
  br label %4955

4955:                                             ; preds = %4954
  %4956 = load ptr, ptr %107, align 8, !tbaa !9
  %4957 = getelementptr inbounds %struct.s2n_connection, ptr %4956, i32 0, i32 23
  store i8 34, ptr %4957, align 4, !tbaa !26
  %4958 = load ptr, ptr %13, align 8, !tbaa !9
  %4959 = load ptr, ptr %107, align 8, !tbaa !9
  %4960 = getelementptr inbounds %struct.s2n_connection, ptr %4959, i32 0, i32 27
  %4961 = load ptr, ptr %4960, align 8, !tbaa !50
  %4962 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %4961, i32 0, i32 0
  store ptr %4958, ptr %4962, align 8, !tbaa !51
  br label %4963

4963:                                             ; preds = %4955
  call void @llvm.lifetime.start.p0(i64 4, ptr %109) #11
  %4964 = getelementptr inbounds %struct.s2n_blob, ptr %10, i32 0, i32 1
  %4965 = load i32, ptr %4964, align 8, !tbaa !56
  store i32 %4965, ptr %109, align 4, !tbaa !5
  %4966 = load i32, ptr %109, align 4, !tbaa !5
  %4967 = icmp ne i32 %4966, 0
  %4968 = xor i1 %4967, true
  %4969 = xor i1 %4968, true
  %4970 = zext i1 %4969 to i32
  %4971 = sext i32 %4970 to i64
  %4972 = call i64 @llvm.expect.i64(i64 %4971, i64 1)
  %4973 = icmp ne i64 %4972, 0
  br i1 %4973, label %4974, label %5027

4974:                                             ; preds = %4963
  call void @llvm.lifetime.start.p0(i64 8, ptr %110) #11
  %4975 = load ptr, ptr %107, align 8, !tbaa !9
  %4976 = getelementptr inbounds %struct.s2n_connection, ptr %4975, i32 0, i32 28
  %4977 = getelementptr inbounds %struct.s2n_secrets, ptr %4976, i32 0, i32 0
  %4978 = getelementptr inbounds %struct.s2n_tls13_secrets, ptr %4977, i32 0, i32 5
  %4979 = getelementptr inbounds [48 x i8], ptr %4978, i64 0, i64 0
  %4980 = getelementptr inbounds %struct.s2n_blob, ptr %10, i32 0, i32 0
  %4981 = load ptr, ptr %4980, align 8, !tbaa !57
  %4982 = load i32, ptr %109, align 4, !tbaa !5
  %4983 = zext i32 %4982 to i64
  %4984 = call ptr @s2n_ensure_memmove_trace(ptr noundef %4979, ptr noundef %4981, i64 noundef %4983)
  store ptr %4984, ptr %110, align 8, !tbaa !9
  br label %4985

4985:                                             ; preds = %4974
  %4986 = load ptr, ptr %110, align 8, !tbaa !9
  %4987 = icmp ne ptr %4986, null
  br i1 %4987, label %5021, label %4988

4988:                                             ; preds = %4985
  br label %4989

4989:                                             ; preds = %4988
  br label %4990

4990:                                             ; preds = %4989
  %4991 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %4992 = getelementptr inbounds %struct.s2n_debug_info, ptr %4991, i32 0, i32 0
  store ptr @.str.54, ptr %4992, align 8, !tbaa !58
  %4993 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %4994 = getelementptr inbounds %struct.s2n_debug_info, ptr %4993, i32 0, i32 0
  %4995 = load ptr, ptr %4994, align 8, !tbaa !58
  %4996 = getelementptr inbounds i8, ptr %4995, i64 21
  %4997 = call ptr @strrchr(ptr noundef %4996, i32 noundef 47) #14
  %4998 = icmp ne ptr %4997, null
  br i1 %4998, label %4999, label %5006

4999:                                             ; preds = %4990
  %5000 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %5001 = getelementptr inbounds %struct.s2n_debug_info, ptr %5000, i32 0, i32 0
  %5002 = load ptr, ptr %5001, align 8, !tbaa !58
  %5003 = getelementptr inbounds i8, ptr %5002, i64 21
  %5004 = call ptr @strrchr(ptr noundef %5003, i32 noundef 47) #14
  %5005 = getelementptr inbounds i8, ptr %5004, i64 1
  br label %5011

5006:                                             ; preds = %4990
  %5007 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %5008 = getelementptr inbounds %struct.s2n_debug_info, ptr %5007, i32 0, i32 0
  %5009 = load ptr, ptr %5008, align 8, !tbaa !58
  %5010 = getelementptr inbounds i8, ptr %5009, i64 21
  br label %5011

5011:                                             ; preds = %5006, %4999
  %5012 = phi ptr [ %5005, %4999 ], [ %5010, %5006 ]
  %5013 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %5014 = getelementptr inbounds %struct.s2n_debug_info, ptr %5013, i32 0, i32 1
  store ptr %5012, ptr %5014, align 8, !tbaa !60
  %5015 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 402653193, ptr %5015, align 4, !tbaa !5
  %5016 = call i32 @s2n_calculate_stacktrace()
  br label %5017

5017:                                             ; preds = %5011
  br label %5018

5018:                                             ; preds = %5017
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %5024

5019:                                             ; No predecessors!
  br label %5020

5020:                                             ; preds = %5019
  br label %5021

5021:                                             ; preds = %5020, %4985
  br label %5022

5022:                                             ; preds = %5021
  br label %5023

5023:                                             ; preds = %5022
  store i32 0, ptr %12, align 4
  br label %5024

5024:                                             ; preds = %5023, %5018
  call void @llvm.lifetime.end.p0(i64 8, ptr %110) #11
  %5025 = load i32, ptr %12, align 4
  switch i32 %5025, label %5028 [
    i32 0, label %5026
  ]

5026:                                             ; preds = %5024
  br label %5027

5027:                                             ; preds = %5026, %4963
  store i32 0, ptr %12, align 4
  br label %5028

5028:                                             ; preds = %5027, %5024
  call void @llvm.lifetime.end.p0(i64 4, ptr %109) #11
  %5029 = load i32, ptr %12, align 4
  switch i32 %5029, label %5416 [
    i32 0, label %5030
  ]

5030:                                             ; preds = %5028
  br label %5031

5031:                                             ; preds = %5030
  br label %5032

5032:                                             ; preds = %5031
  %5033 = load ptr, ptr %107, align 8, !tbaa !9
  %5034 = getelementptr inbounds %struct.s2n_connection, ptr %5033, i32 0, i32 27
  %5035 = load ptr, ptr %5034, align 8, !tbaa !50
  %5036 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %5035, i32 0, i32 8
  %5037 = getelementptr inbounds [8 x i8], ptr %5036, i64 0, i64 0
  store i8 1, ptr %5037, align 8, !tbaa !21
  br label %5038

5038:                                             ; preds = %5032
  %5039 = load i32, ptr @test_count, align 4, !tbaa !5
  %5040 = add nsw i32 %5039, 1
  store i32 %5040, ptr @test_count, align 4, !tbaa !5
  %5041 = call i32 @s2n_stuffer_write_uint8(ptr noundef %105, i8 noundef zeroext 0)
  %5042 = icmp eq i32 %5041, -1
  br i1 %5042, label %5043, label %5096

5043:                                             ; preds = %5038
  br label %5044

5044:                                             ; preds = %5043
  br label %5045

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

5052:                                             ; preds = %5045
  %5053 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5054 = call i32 @fileno(ptr noundef %5053) #11
  %5055 = call i32 @isatty(i32 noundef %5054) #11
  %5056 = icmp ne i32 %5055, 0
  br i1 %5056, label %5057, label %5074

5057:                                             ; preds = %5052
  %5058 = load i32, ptr %111, align 4, !tbaa !5
  %5059 = call ptr @__errno_location() #12
  store i32 %5058, ptr %5059, align 4, !tbaa !5
  %5060 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5061 = load i32, ptr @test_count, align 4, !tbaa !5
  %5062 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5063 = load i32, ptr %5062, align 4, !tbaa !5
  %5064 = call ptr @s2n_strerror(i32 noundef %5063, ptr noundef @.str.4)
  %5065 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5066 = load i32, ptr %5065, align 4, !tbaa !5
  %5067 = call ptr @s2n_strerror_debug(i32 noundef %5066, ptr noundef @.str.4)
  %5068 = call ptr @__errno_location() #12
  %5069 = load i32, ptr %5068, align 4, !tbaa !5
  %5070 = call ptr @strerror(i32 noundef %5069) #11
  %5071 = call ptr @__errno_location() #12
  %5072 = load i32, ptr %5071, align 4, !tbaa !5
  %5073 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5060, ptr noundef @.str.2, i32 noundef %5061, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 242, ptr noundef %5064, ptr noundef %5067, ptr noundef %5070, i32 noundef %5072) #11
  br label %5091

5074:                                             ; preds = %5052, %5045
  %5075 = load i32, ptr %111, align 4, !tbaa !5
  %5076 = call ptr @__errno_location() #12
  store i32 %5075, ptr %5076, align 4, !tbaa !5
  %5077 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5078 = load i32, ptr @test_count, align 4, !tbaa !5
  %5079 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5080 = load i32, ptr %5079, align 4, !tbaa !5
  %5081 = call ptr @s2n_strerror(i32 noundef %5080, ptr noundef @.str.4)
  %5082 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5083 = load i32, ptr %5082, align 4, !tbaa !5
  %5084 = call ptr @s2n_strerror_debug(i32 noundef %5083, ptr noundef @.str.4)
  %5085 = call ptr @__errno_location() #12
  %5086 = load i32, ptr %5085, align 4, !tbaa !5
  %5087 = call ptr @strerror(i32 noundef %5086) #11
  %5088 = call ptr @__errno_location() #12
  %5089 = load i32, ptr %5088, align 4, !tbaa !5
  %5090 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5077, ptr noundef @.str.5, i32 noundef %5078, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 242, ptr noundef %5081, ptr noundef %5084, ptr noundef %5087, i32 noundef %5089) #11
  br label %5091

5091:                                             ; preds = %5074, %5057
  call void @llvm.lifetime.end.p0(i64 4, ptr %111) #11
  br label %5092

5092:                                             ; preds = %5091
  br label %5093

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

5094:                                             ; No predecessors!
  br label %5095

5095:                                             ; preds = %5094
  br label %5096

5096:                                             ; preds = %5095, %5038
  br label %5097

5097:                                             ; preds = %5096
  br label %5098

5098:                                             ; preds = %5097
  br label %5099

5099:                                             ; preds = %5098
  %5100 = load i32, ptr @test_count, align 4, !tbaa !5
  %5101 = add nsw i32 %5100, 1
  store i32 %5101, ptr @test_count, align 4, !tbaa !5
  %5102 = load ptr, ptr %107, align 8, !tbaa !9
  %5103 = call i32 @s2n_key_update_recv(ptr noundef %5102, ptr noundef %105)
  %5104 = icmp eq i32 %5103, -1
  br i1 %5104, label %5105, label %5158

5105:                                             ; preds = %5099
  br label %5106

5106:                                             ; preds = %5105
  br label %5107

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

5114:                                             ; preds = %5107
  %5115 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5116 = call i32 @fileno(ptr noundef %5115) #11
  %5117 = call i32 @isatty(i32 noundef %5116) #11
  %5118 = icmp ne i32 %5117, 0
  br i1 %5118, label %5119, label %5136

5119:                                             ; preds = %5114
  %5120 = load i32, ptr %112, align 4, !tbaa !5
  %5121 = call ptr @__errno_location() #12
  store i32 %5120, ptr %5121, align 4, !tbaa !5
  %5122 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5123 = load i32, ptr @test_count, align 4, !tbaa !5
  %5124 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5125 = load i32, ptr %5124, align 4, !tbaa !5
  %5126 = call ptr @s2n_strerror(i32 noundef %5125, ptr noundef @.str.4)
  %5127 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5128 = load i32, ptr %5127, align 4, !tbaa !5
  %5129 = call ptr @s2n_strerror_debug(i32 noundef %5128, ptr noundef @.str.4)
  %5130 = call ptr @__errno_location() #12
  %5131 = load i32, ptr %5130, align 4, !tbaa !5
  %5132 = call ptr @strerror(i32 noundef %5131) #11
  %5133 = call ptr @__errno_location() #12
  %5134 = load i32, ptr %5133, align 4, !tbaa !5
  %5135 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5122, ptr noundef @.str.2, i32 noundef %5123, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 244, ptr noundef %5126, ptr noundef %5129, ptr noundef %5132, i32 noundef %5134) #11
  br label %5153

5136:                                             ; preds = %5114, %5107
  %5137 = load i32, ptr %112, align 4, !tbaa !5
  %5138 = call ptr @__errno_location() #12
  store i32 %5137, ptr %5138, align 4, !tbaa !5
  %5139 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5140 = load i32, ptr @test_count, align 4, !tbaa !5
  %5141 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5142 = load i32, ptr %5141, align 4, !tbaa !5
  %5143 = call ptr @s2n_strerror(i32 noundef %5142, ptr noundef @.str.4)
  %5144 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5145 = load i32, ptr %5144, align 4, !tbaa !5
  %5146 = call ptr @s2n_strerror_debug(i32 noundef %5145, ptr noundef @.str.4)
  %5147 = call ptr @__errno_location() #12
  %5148 = load i32, ptr %5147, align 4, !tbaa !5
  %5149 = call ptr @strerror(i32 noundef %5148) #11
  %5150 = call ptr @__errno_location() #12
  %5151 = load i32, ptr %5150, align 4, !tbaa !5
  %5152 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5139, ptr noundef @.str.5, i32 noundef %5140, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 244, ptr noundef %5143, ptr noundef %5146, ptr noundef %5149, i32 noundef %5151) #11
  br label %5153

5153:                                             ; preds = %5136, %5119
  call void @llvm.lifetime.end.p0(i64 4, ptr %112) #11
  br label %5154

5154:                                             ; preds = %5153
  br label %5155

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

5156:                                             ; No predecessors!
  br label %5157

5157:                                             ; preds = %5156
  br label %5158

5158:                                             ; preds = %5157, %5099
  br label %5159

5159:                                             ; preds = %5158
  br label %5160

5160:                                             ; preds = %5159
  br label %5161

5161:                                             ; preds = %5160
  %5162 = load i32, ptr @test_count, align 4, !tbaa !5
  %5163 = add nsw i32 %5162, 1
  store i32 %5163, ptr @test_count, align 4, !tbaa !5
  %5164 = load ptr, ptr %107, align 8, !tbaa !9
  %5165 = getelementptr inbounds %struct.s2n_connection, ptr %5164, i32 0, i32 27
  %5166 = load ptr, ptr %5165, align 8, !tbaa !50
  %5167 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %5166, i32 0, i32 8
  %5168 = getelementptr inbounds [8 x i8], ptr %5167, i64 0, i64 0
  %5169 = load i8, ptr %5168, align 8, !tbaa !21
  %5170 = zext i8 %5169 to i32
  %5171 = icmp eq i32 %5170, 0
  br i1 %5171, label %5225, label %5172

5172:                                             ; preds = %5161
  br label %5173

5173:                                             ; preds = %5172
  br label %5174

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

5181:                                             ; preds = %5174
  %5182 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5183 = call i32 @fileno(ptr noundef %5182) #11
  %5184 = call i32 @isatty(i32 noundef %5183) #11
  %5185 = icmp ne i32 %5184, 0
  br i1 %5185, label %5186, label %5203

5186:                                             ; preds = %5181
  %5187 = load i32, ptr %113, align 4, !tbaa !5
  %5188 = call ptr @__errno_location() #12
  store i32 %5187, ptr %5188, align 4, !tbaa !5
  %5189 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5190 = load i32, ptr @test_count, align 4, !tbaa !5
  %5191 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5192 = load i32, ptr %5191, align 4, !tbaa !5
  %5193 = call ptr @s2n_strerror(i32 noundef %5192, ptr noundef @.str.4)
  %5194 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5195 = load i32, ptr %5194, align 4, !tbaa !5
  %5196 = call ptr @s2n_strerror_debug(i32 noundef %5195, ptr noundef @.str.4)
  %5197 = call ptr @__errno_location() #12
  %5198 = load i32, ptr %5197, align 4, !tbaa !5
  %5199 = call ptr @strerror(i32 noundef %5198) #11
  %5200 = call ptr @__errno_location() #12
  %5201 = load i32, ptr %5200, align 4, !tbaa !5
  %5202 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5189, ptr noundef @.str.2, i32 noundef %5190, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 245, ptr noundef %5193, ptr noundef %5196, ptr noundef %5199, i32 noundef %5201) #11
  br label %5220

5203:                                             ; preds = %5181, %5174
  %5204 = load i32, ptr %113, align 4, !tbaa !5
  %5205 = call ptr @__errno_location() #12
  store i32 %5204, ptr %5205, align 4, !tbaa !5
  %5206 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5207 = load i32, ptr @test_count, align 4, !tbaa !5
  %5208 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5209 = load i32, ptr %5208, align 4, !tbaa !5
  %5210 = call ptr @s2n_strerror(i32 noundef %5209, ptr noundef @.str.4)
  %5211 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5212 = load i32, ptr %5211, align 4, !tbaa !5
  %5213 = call ptr @s2n_strerror_debug(i32 noundef %5212, ptr noundef @.str.4)
  %5214 = call ptr @__errno_location() #12
  %5215 = load i32, ptr %5214, align 4, !tbaa !5
  %5216 = call ptr @strerror(i32 noundef %5215) #11
  %5217 = call ptr @__errno_location() #12
  %5218 = load i32, ptr %5217, align 4, !tbaa !5
  %5219 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5206, ptr noundef @.str.5, i32 noundef %5207, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 245, ptr noundef %5210, ptr noundef %5213, ptr noundef %5216, i32 noundef %5218) #11
  br label %5220

5220:                                             ; preds = %5203, %5186
  call void @llvm.lifetime.end.p0(i64 4, ptr %113) #11
  br label %5221

5221:                                             ; preds = %5220
  br label %5222

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

5223:                                             ; No predecessors!
  br label %5224

5224:                                             ; preds = %5223
  br label %5225

5225:                                             ; preds = %5224, %5161
  br label %5226

5226:                                             ; preds = %5225
  br label %5227

5227:                                             ; preds = %5226
  br label %5228

5228:                                             ; preds = %5227
  %5229 = load i32, ptr @test_count, align 4, !tbaa !5
  %5230 = add nsw i32 %5229, 1
  store i32 %5230, ptr @test_count, align 4, !tbaa !5
  %5231 = load ptr, ptr %107, align 8, !tbaa !9
  %5232 = getelementptr inbounds %struct.s2n_connection, ptr %5231, i32 0, i32 94
  %5233 = call zeroext i1 @s2n_atomic_flag_test(ptr noundef %5232)
  br i1 %5233, label %5234, label %5287

5234:                                             ; preds = %5228
  br label %5235

5235:                                             ; preds = %5234
  br label %5236

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

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

5248:                                             ; preds = %5243
  %5249 = load i32, ptr %114, align 4, !tbaa !5
  %5250 = call ptr @__errno_location() #12
  store i32 %5249, ptr %5250, align 4, !tbaa !5
  %5251 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5252 = load i32, ptr @test_count, align 4, !tbaa !5
  %5253 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5254 = load i32, ptr %5253, align 4, !tbaa !5
  %5255 = call ptr @s2n_strerror(i32 noundef %5254, ptr noundef @.str.4)
  %5256 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5257 = load i32, ptr %5256, align 4, !tbaa !5
  %5258 = call ptr @s2n_strerror_debug(i32 noundef %5257, ptr noundef @.str.4)
  %5259 = call ptr @__errno_location() #12
  %5260 = load i32, ptr %5259, align 4, !tbaa !5
  %5261 = call ptr @strerror(i32 noundef %5260) #11
  %5262 = call ptr @__errno_location() #12
  %5263 = load i32, ptr %5262, align 4, !tbaa !5
  %5264 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5251, ptr noundef @.str.2, i32 noundef %5252, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 246, ptr noundef %5255, ptr noundef %5258, ptr noundef %5261, i32 noundef %5263) #11
  br label %5282

5265:                                             ; preds = %5243, %5236
  %5266 = load i32, ptr %114, align 4, !tbaa !5
  %5267 = call ptr @__errno_location() #12
  store i32 %5266, ptr %5267, align 4, !tbaa !5
  %5268 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5269 = load i32, ptr @test_count, align 4, !tbaa !5
  %5270 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5271 = load i32, ptr %5270, align 4, !tbaa !5
  %5272 = call ptr @s2n_strerror(i32 noundef %5271, ptr noundef @.str.4)
  %5273 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5274 = load i32, ptr %5273, align 4, !tbaa !5
  %5275 = call ptr @s2n_strerror_debug(i32 noundef %5274, ptr noundef @.str.4)
  %5276 = call ptr @__errno_location() #12
  %5277 = load i32, ptr %5276, align 4, !tbaa !5
  %5278 = call ptr @strerror(i32 noundef %5277) #11
  %5279 = call ptr @__errno_location() #12
  %5280 = load i32, ptr %5279, align 4, !tbaa !5
  %5281 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5268, ptr noundef @.str.5, i32 noundef %5269, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 246, ptr noundef %5272, ptr noundef %5275, ptr noundef %5278, i32 noundef %5280) #11
  br label %5282

5282:                                             ; preds = %5265, %5248
  call void @llvm.lifetime.end.p0(i64 4, ptr %114) #11
  br label %5283

5283:                                             ; preds = %5282
  br label %5284

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

5285:                                             ; No predecessors!
  br label %5286

5286:                                             ; preds = %5285
  br label %5287

5287:                                             ; preds = %5286, %5228
  br label %5288

5288:                                             ; preds = %5287
  br label %5289

5289:                                             ; preds = %5288
  br label %5290

5290:                                             ; preds = %5289
  %5291 = load i32, ptr @test_count, align 4, !tbaa !5
  %5292 = add nsw i32 %5291, 1
  store i32 %5292, ptr @test_count, align 4, !tbaa !5
  %5293 = load ptr, ptr %107, align 8, !tbaa !9
  %5294 = getelementptr inbounds %struct.s2n_connection, ptr %5293, i32 0, i32 96
  %5295 = load i8, ptr %5294, align 1, !tbaa !61
  %5296 = zext i8 %5295 to i32
  %5297 = icmp eq i32 %5296, 1
  br i1 %5297, label %5351, label %5298

5298:                                             ; preds = %5290
  br label %5299

5299:                                             ; preds = %5298
  br label %5300

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

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

5312:                                             ; preds = %5307
  %5313 = load i32, ptr %115, align 4, !tbaa !5
  %5314 = call ptr @__errno_location() #12
  store i32 %5313, ptr %5314, align 4, !tbaa !5
  %5315 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5316 = load i32, ptr @test_count, align 4, !tbaa !5
  %5317 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5318 = load i32, ptr %5317, align 4, !tbaa !5
  %5319 = call ptr @s2n_strerror(i32 noundef %5318, ptr noundef @.str.4)
  %5320 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5321 = load i32, ptr %5320, align 4, !tbaa !5
  %5322 = call ptr @s2n_strerror_debug(i32 noundef %5321, ptr noundef @.str.4)
  %5323 = call ptr @__errno_location() #12
  %5324 = load i32, ptr %5323, align 4, !tbaa !5
  %5325 = call ptr @strerror(i32 noundef %5324) #11
  %5326 = call ptr @__errno_location() #12
  %5327 = load i32, ptr %5326, align 4, !tbaa !5
  %5328 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5315, ptr noundef @.str.2, i32 noundef %5316, ptr noundef @.str.58, ptr noundef @.str.1, i32 noundef 247, ptr noundef %5319, ptr noundef %5322, ptr noundef %5325, i32 noundef %5327) #11
  br label %5346

5329:                                             ; preds = %5307, %5300
  %5330 = load i32, ptr %115, align 4, !tbaa !5
  %5331 = call ptr @__errno_location() #12
  store i32 %5330, ptr %5331, align 4, !tbaa !5
  %5332 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5333 = load i32, ptr @test_count, align 4, !tbaa !5
  %5334 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5335 = load i32, ptr %5334, align 4, !tbaa !5
  %5336 = call ptr @s2n_strerror(i32 noundef %5335, ptr noundef @.str.4)
  %5337 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5338 = load i32, ptr %5337, align 4, !tbaa !5
  %5339 = call ptr @s2n_strerror_debug(i32 noundef %5338, ptr noundef @.str.4)
  %5340 = call ptr @__errno_location() #12
  %5341 = load i32, ptr %5340, align 4, !tbaa !5
  %5342 = call ptr @strerror(i32 noundef %5341) #11
  %5343 = call ptr @__errno_location() #12
  %5344 = load i32, ptr %5343, align 4, !tbaa !5
  %5345 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5332, ptr noundef @.str.5, i32 noundef %5333, ptr noundef @.str.58, ptr noundef @.str.1, i32 noundef 247, ptr noundef %5336, ptr noundef %5339, ptr noundef %5342, i32 noundef %5344) #11
  br label %5346

5346:                                             ; preds = %5329, %5312
  call void @llvm.lifetime.end.p0(i64 4, ptr %115) #11
  br label %5347

5347:                                             ; preds = %5346
  br label %5348

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

5349:                                             ; No predecessors!
  br label %5350

5350:                                             ; preds = %5349
  br label %5351

5351:                                             ; preds = %5350, %5290
  br label %5352

5352:                                             ; preds = %5351
  br label %5353

5353:                                             ; preds = %5352
  br label %5354

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

5360:                                             ; preds = %5354
  br label %5361

5361:                                             ; preds = %5360
  br label %5362

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

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

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

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

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

5409:                                             ; preds = %5408
  br label %5410

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

5411:                                             ; No predecessors!
  br label %5412

5412:                                             ; preds = %5411
  br label %5413

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

5414:                                             ; preds = %5413
  br label %5415

5415:                                             ; preds = %5414
  store i32 0, ptr %12, align 4
  br label %5416

5416:                                             ; preds = %5415, %5028
  call void @llvm.lifetime.end.p0(i64 8, ptr %107) #11
  %5417 = call i32 @s2n_stuffer_free(ptr noundef %105)
  call void @llvm.lifetime.end.p0(i64 40, ptr %105) #11
  %5418 = load i32, ptr %12, align 4
  switch i32 %5418, label %15412 [
    i32 0, label %5419
  ]

5419:                                             ; preds = %5416
  call void @llvm.lifetime.start.p0(i64 40, ptr %117) #11
  br label %5420

5420:                                             ; preds = %5419
  %5421 = load i32, ptr @test_count, align 4, !tbaa !5
  %5422 = add nsw i32 %5421, 1
  store i32 %5422, ptr @test_count, align 4, !tbaa !5
  %5423 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %117, i32 noundef 0)
  %5424 = icmp eq i32 %5423, -1
  br i1 %5424, label %5425, label %5478

5425:                                             ; preds = %5420
  br label %5426

5426:                                             ; preds = %5425
  br label %5427

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

5434:                                             ; preds = %5427
  %5435 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5436 = call i32 @fileno(ptr noundef %5435) #11
  %5437 = call i32 @isatty(i32 noundef %5436) #11
  %5438 = icmp ne i32 %5437, 0
  br i1 %5438, label %5439, label %5456

5439:                                             ; preds = %5434
  %5440 = load i32, ptr %118, align 4, !tbaa !5
  %5441 = call ptr @__errno_location() #12
  store i32 %5440, ptr %5441, align 4, !tbaa !5
  %5442 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5443 = load i32, ptr @test_count, align 4, !tbaa !5
  %5444 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5445 = load i32, ptr %5444, align 4, !tbaa !5
  %5446 = call ptr @s2n_strerror(i32 noundef %5445, ptr noundef @.str.4)
  %5447 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5448 = load i32, ptr %5447, align 4, !tbaa !5
  %5449 = call ptr @s2n_strerror_debug(i32 noundef %5448, ptr noundef @.str.4)
  %5450 = call ptr @__errno_location() #12
  %5451 = load i32, ptr %5450, align 4, !tbaa !5
  %5452 = call ptr @strerror(i32 noundef %5451) #11
  %5453 = call ptr @__errno_location() #12
  %5454 = load i32, ptr %5453, align 4, !tbaa !5
  %5455 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5442, ptr noundef @.str.2, i32 noundef %5443, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 255, ptr noundef %5446, ptr noundef %5449, ptr noundef %5452, i32 noundef %5454) #11
  br label %5473

5456:                                             ; preds = %5434, %5427
  %5457 = load i32, ptr %118, align 4, !tbaa !5
  %5458 = call ptr @__errno_location() #12
  store i32 %5457, ptr %5458, align 4, !tbaa !5
  %5459 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5460 = load i32, ptr @test_count, align 4, !tbaa !5
  %5461 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5462 = load i32, ptr %5461, align 4, !tbaa !5
  %5463 = call ptr @s2n_strerror(i32 noundef %5462, ptr noundef @.str.4)
  %5464 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5465 = load i32, ptr %5464, align 4, !tbaa !5
  %5466 = call ptr @s2n_strerror_debug(i32 noundef %5465, ptr noundef @.str.4)
  %5467 = call ptr @__errno_location() #12
  %5468 = load i32, ptr %5467, align 4, !tbaa !5
  %5469 = call ptr @strerror(i32 noundef %5468) #11
  %5470 = call ptr @__errno_location() #12
  %5471 = load i32, ptr %5470, align 4, !tbaa !5
  %5472 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5459, ptr noundef @.str.5, i32 noundef %5460, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 255, ptr noundef %5463, ptr noundef %5466, ptr noundef %5469, i32 noundef %5471) #11
  br label %5473

5473:                                             ; preds = %5456, %5439
  call void @llvm.lifetime.end.p0(i64 4, ptr %118) #11
  br label %5474

5474:                                             ; preds = %5473
  br label %5475

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

5476:                                             ; No predecessors!
  br label %5477

5477:                                             ; preds = %5476
  br label %5478

5478:                                             ; preds = %5477, %5420
  br label %5479

5479:                                             ; preds = %5478
  br label %5480

5480:                                             ; preds = %5479
  call void @llvm.lifetime.start.p0(i64 8, ptr %119) #11
  %5481 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %5481, ptr %119, align 8, !tbaa !9
  br label %5482

5482:                                             ; preds = %5480
  %5483 = load i32, ptr @test_count, align 4, !tbaa !5
  %5484 = add nsw i32 %5483, 1
  store i32 %5484, ptr @test_count, align 4, !tbaa !5
  %5485 = load ptr, ptr %119, align 8, !tbaa !9
  %5486 = icmp eq ptr %5485, null
  br i1 %5486, label %5487, label %5540

5487:                                             ; preds = %5482
  br label %5488

5488:                                             ; preds = %5487
  br label %5489

5489:                                             ; preds = %5488
  call void @llvm.lifetime.start.p0(i64 4, ptr %120) #11
  %5490 = call ptr @__errno_location() #12
  %5491 = load i32, ptr %5490, align 4, !tbaa !5
  store i32 %5491, ptr %120, align 4, !tbaa !5
  %5492 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5493 = call i32 @s2n_print_stacktrace(ptr noundef %5492)
  %5494 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5495 = trunc i8 %5494 to i1
  br i1 %5495, label %5496, label %5518

5496:                                             ; preds = %5489
  %5497 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5498 = call i32 @fileno(ptr noundef %5497) #11
  %5499 = call i32 @isatty(i32 noundef %5498) #11
  %5500 = icmp ne i32 %5499, 0
  br i1 %5500, label %5501, label %5518

5501:                                             ; preds = %5496
  %5502 = load i32, ptr %120, align 4, !tbaa !5
  %5503 = call ptr @__errno_location() #12
  store i32 %5502, ptr %5503, align 4, !tbaa !5
  %5504 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5505 = load i32, ptr @test_count, align 4, !tbaa !5
  %5506 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5507 = load i32, ptr %5506, align 4, !tbaa !5
  %5508 = call ptr @s2n_strerror(i32 noundef %5507, ptr noundef @.str.4)
  %5509 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5510 = load i32, ptr %5509, align 4, !tbaa !5
  %5511 = call ptr @s2n_strerror_debug(i32 noundef %5510, ptr noundef @.str.4)
  %5512 = call ptr @__errno_location() #12
  %5513 = load i32, ptr %5512, align 4, !tbaa !5
  %5514 = call ptr @strerror(i32 noundef %5513) #11
  %5515 = call ptr @__errno_location() #12
  %5516 = load i32, ptr %5515, align 4, !tbaa !5
  %5517 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5504, ptr noundef @.str.2, i32 noundef %5505, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 259, ptr noundef %5508, ptr noundef %5511, ptr noundef %5514, i32 noundef %5516) #11
  br label %5535

5518:                                             ; preds = %5496, %5489
  %5519 = load i32, ptr %120, align 4, !tbaa !5
  %5520 = call ptr @__errno_location() #12
  store i32 %5519, ptr %5520, align 4, !tbaa !5
  %5521 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5522 = load i32, ptr @test_count, align 4, !tbaa !5
  %5523 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5524 = load i32, ptr %5523, align 4, !tbaa !5
  %5525 = call ptr @s2n_strerror(i32 noundef %5524, ptr noundef @.str.4)
  %5526 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5527 = load i32, ptr %5526, align 4, !tbaa !5
  %5528 = call ptr @s2n_strerror_debug(i32 noundef %5527, ptr noundef @.str.4)
  %5529 = call ptr @__errno_location() #12
  %5530 = load i32, ptr %5529, align 4, !tbaa !5
  %5531 = call ptr @strerror(i32 noundef %5530) #11
  %5532 = call ptr @__errno_location() #12
  %5533 = load i32, ptr %5532, align 4, !tbaa !5
  %5534 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5521, ptr noundef @.str.5, i32 noundef %5522, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 259, ptr noundef %5525, ptr noundef %5528, ptr noundef %5531, i32 noundef %5533) #11
  br label %5535

5535:                                             ; preds = %5518, %5501
  call void @llvm.lifetime.end.p0(i64 4, ptr %120) #11
  br label %5536

5536:                                             ; preds = %5535
  br label %5537

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

5538:                                             ; No predecessors!
  br label %5539

5539:                                             ; preds = %5538
  br label %5540

5540:                                             ; preds = %5539, %5482
  br label %5541

5541:                                             ; preds = %5540
  br label %5542

5542:                                             ; preds = %5541
  %5543 = load ptr, ptr %119, align 8, !tbaa !9
  %5544 = getelementptr inbounds %struct.s2n_connection, ptr %5543, i32 0, i32 23
  store i8 34, ptr %5544, align 4, !tbaa !26
  %5545 = load ptr, ptr %13, align 8, !tbaa !9
  %5546 = load ptr, ptr %119, align 8, !tbaa !9
  %5547 = getelementptr inbounds %struct.s2n_connection, ptr %5546, i32 0, i32 27
  %5548 = load ptr, ptr %5547, align 8, !tbaa !50
  %5549 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %5548, i32 0, i32 0
  store ptr %5545, ptr %5549, align 8, !tbaa !51
  %5550 = load ptr, ptr %119, align 8, !tbaa !9
  %5551 = getelementptr inbounds %struct.s2n_connection, ptr %5550, i32 0, i32 94
  call void @s2n_atomic_flag_clear(ptr noundef %5551)
  %5552 = load ptr, ptr %119, align 8, !tbaa !9
  %5553 = getelementptr inbounds %struct.s2n_connection, ptr %5552, i32 0, i32 27
  %5554 = load ptr, ptr %5553, align 8, !tbaa !50
  %5555 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %5554, i32 0, i32 7
  %5556 = getelementptr inbounds [8 x i8], ptr %5555, i64 0, i64 0
  store i8 1, ptr %5556, align 8, !tbaa !21
  br label %5557

5557:                                             ; preds = %5542
  %5558 = load i32, ptr @test_count, align 4, !tbaa !5
  %5559 = add nsw i32 %5558, 1
  store i32 %5559, ptr @test_count, align 4, !tbaa !5
  %5560 = call i32 @s2n_stuffer_write_uint8(ptr noundef %117, i8 noundef zeroext 1)
  %5561 = icmp eq i32 %5560, -1
  br i1 %5561, label %5562, label %5615

5562:                                             ; preds = %5557
  br label %5563

5563:                                             ; preds = %5562
  br label %5564

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

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

5576:                                             ; preds = %5571
  %5577 = load i32, ptr %121, align 4, !tbaa !5
  %5578 = call ptr @__errno_location() #12
  store i32 %5577, ptr %5578, align 4, !tbaa !5
  %5579 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5580 = load i32, ptr @test_count, align 4, !tbaa !5
  %5581 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5582 = load i32, ptr %5581, align 4, !tbaa !5
  %5583 = call ptr @s2n_strerror(i32 noundef %5582, ptr noundef @.str.4)
  %5584 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5585 = load i32, ptr %5584, align 4, !tbaa !5
  %5586 = call ptr @s2n_strerror_debug(i32 noundef %5585, ptr noundef @.str.4)
  %5587 = call ptr @__errno_location() #12
  %5588 = load i32, ptr %5587, align 4, !tbaa !5
  %5589 = call ptr @strerror(i32 noundef %5588) #11
  %5590 = call ptr @__errno_location() #12
  %5591 = load i32, ptr %5590, align 4, !tbaa !5
  %5592 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5579, ptr noundef @.str.2, i32 noundef %5580, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 268, ptr noundef %5583, ptr noundef %5586, ptr noundef %5589, i32 noundef %5591) #11
  br label %5610

5593:                                             ; preds = %5571, %5564
  %5594 = load i32, ptr %121, align 4, !tbaa !5
  %5595 = call ptr @__errno_location() #12
  store i32 %5594, ptr %5595, align 4, !tbaa !5
  %5596 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5597 = load i32, ptr @test_count, align 4, !tbaa !5
  %5598 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5599 = load i32, ptr %5598, align 4, !tbaa !5
  %5600 = call ptr @s2n_strerror(i32 noundef %5599, ptr noundef @.str.4)
  %5601 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5602 = load i32, ptr %5601, align 4, !tbaa !5
  %5603 = call ptr @s2n_strerror_debug(i32 noundef %5602, ptr noundef @.str.4)
  %5604 = call ptr @__errno_location() #12
  %5605 = load i32, ptr %5604, align 4, !tbaa !5
  %5606 = call ptr @strerror(i32 noundef %5605) #11
  %5607 = call ptr @__errno_location() #12
  %5608 = load i32, ptr %5607, align 4, !tbaa !5
  %5609 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5596, ptr noundef @.str.5, i32 noundef %5597, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 268, ptr noundef %5600, ptr noundef %5603, ptr noundef %5606, i32 noundef %5608) #11
  br label %5610

5610:                                             ; preds = %5593, %5576
  call void @llvm.lifetime.end.p0(i64 4, ptr %121) #11
  br label %5611

5611:                                             ; preds = %5610
  br label %5612

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

5613:                                             ; No predecessors!
  br label %5614

5614:                                             ; preds = %5613
  br label %5615

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

5616:                                             ; preds = %5615
  br label %5617

5617:                                             ; preds = %5616
  br label %5618

5618:                                             ; preds = %5617
  %5619 = load i32, ptr @test_count, align 4, !tbaa !5
  %5620 = add nsw i32 %5619, 1
  store i32 %5620, ptr @test_count, align 4, !tbaa !5
  %5621 = load ptr, ptr %119, align 8, !tbaa !9
  %5622 = call i32 @s2n_key_update_recv(ptr noundef %5621, ptr noundef %117)
  %5623 = icmp eq i32 %5622, -1
  br i1 %5623, label %5624, label %5677

5624:                                             ; preds = %5618
  br label %5625

5625:                                             ; preds = %5624
  br label %5626

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

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

5638:                                             ; preds = %5633
  %5639 = load i32, ptr %122, align 4, !tbaa !5
  %5640 = call ptr @__errno_location() #12
  store i32 %5639, ptr %5640, align 4, !tbaa !5
  %5641 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5642 = load i32, ptr @test_count, align 4, !tbaa !5
  %5643 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5644 = load i32, ptr %5643, align 4, !tbaa !5
  %5645 = call ptr @s2n_strerror(i32 noundef %5644, ptr noundef @.str.4)
  %5646 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5647 = load i32, ptr %5646, align 4, !tbaa !5
  %5648 = call ptr @s2n_strerror_debug(i32 noundef %5647, ptr noundef @.str.4)
  %5649 = call ptr @__errno_location() #12
  %5650 = load i32, ptr %5649, align 4, !tbaa !5
  %5651 = call ptr @strerror(i32 noundef %5650) #11
  %5652 = call ptr @__errno_location() #12
  %5653 = load i32, ptr %5652, align 4, !tbaa !5
  %5654 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5641, ptr noundef @.str.2, i32 noundef %5642, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 269, ptr noundef %5645, ptr noundef %5648, ptr noundef %5651, i32 noundef %5653) #11
  br label %5672

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

5672:                                             ; preds = %5655, %5638
  call void @llvm.lifetime.end.p0(i64 4, ptr %122) #11
  br label %5673

5673:                                             ; preds = %5672
  br label %5674

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

5675:                                             ; No predecessors!
  br label %5676

5676:                                             ; preds = %5675
  br label %5677

5677:                                             ; preds = %5676, %5618
  br label %5678

5678:                                             ; preds = %5677
  br label %5679

5679:                                             ; preds = %5678
  br label %5680

5680:                                             ; preds = %5679
  %5681 = load i32, ptr @test_count, align 4, !tbaa !5
  %5682 = add nsw i32 %5681, 1
  store i32 %5682, ptr @test_count, align 4, !tbaa !5
  %5683 = load ptr, ptr %119, align 8, !tbaa !9
  %5684 = getelementptr inbounds %struct.s2n_connection, ptr %5683, i32 0, i32 27
  %5685 = load ptr, ptr %5684, align 8, !tbaa !50
  %5686 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %5685, i32 0, i32 7
  %5687 = getelementptr inbounds [8 x i8], ptr %5686, i64 0, i64 0
  %5688 = load i8, ptr %5687, align 8, !tbaa !21
  %5689 = zext i8 %5688 to i32
  %5690 = icmp eq i32 %5689, 0
  br i1 %5690, label %5744, label %5691

5691:                                             ; preds = %5680
  br label %5692

5692:                                             ; preds = %5691
  br label %5693

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

5700:                                             ; preds = %5693
  %5701 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5702 = call i32 @fileno(ptr noundef %5701) #11
  %5703 = call i32 @isatty(i32 noundef %5702) #11
  %5704 = icmp ne i32 %5703, 0
  br i1 %5704, label %5705, label %5722

5705:                                             ; preds = %5700
  %5706 = load i32, ptr %123, align 4, !tbaa !5
  %5707 = call ptr @__errno_location() #12
  store i32 %5706, ptr %5707, align 4, !tbaa !5
  %5708 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5709 = load i32, ptr @test_count, align 4, !tbaa !5
  %5710 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5711 = load i32, ptr %5710, align 4, !tbaa !5
  %5712 = call ptr @s2n_strerror(i32 noundef %5711, ptr noundef @.str.4)
  %5713 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5714 = load i32, ptr %5713, align 4, !tbaa !5
  %5715 = call ptr @s2n_strerror_debug(i32 noundef %5714, ptr noundef @.str.4)
  %5716 = call ptr @__errno_location() #12
  %5717 = load i32, ptr %5716, align 4, !tbaa !5
  %5718 = call ptr @strerror(i32 noundef %5717) #11
  %5719 = call ptr @__errno_location() #12
  %5720 = load i32, ptr %5719, align 4, !tbaa !5
  %5721 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5708, ptr noundef @.str.2, i32 noundef %5709, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 270, ptr noundef %5712, ptr noundef %5715, ptr noundef %5718, i32 noundef %5720) #11
  br label %5739

5722:                                             ; preds = %5700, %5693
  %5723 = load i32, ptr %123, align 4, !tbaa !5
  %5724 = call ptr @__errno_location() #12
  store i32 %5723, ptr %5724, align 4, !tbaa !5
  %5725 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5726 = load i32, ptr @test_count, align 4, !tbaa !5
  %5727 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5728 = load i32, ptr %5727, align 4, !tbaa !5
  %5729 = call ptr @s2n_strerror(i32 noundef %5728, ptr noundef @.str.4)
  %5730 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5731 = load i32, ptr %5730, align 4, !tbaa !5
  %5732 = call ptr @s2n_strerror_debug(i32 noundef %5731, ptr noundef @.str.4)
  %5733 = call ptr @__errno_location() #12
  %5734 = load i32, ptr %5733, align 4, !tbaa !5
  %5735 = call ptr @strerror(i32 noundef %5734) #11
  %5736 = call ptr @__errno_location() #12
  %5737 = load i32, ptr %5736, align 4, !tbaa !5
  %5738 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5725, ptr noundef @.str.5, i32 noundef %5726, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 270, ptr noundef %5729, ptr noundef %5732, ptr noundef %5735, i32 noundef %5737) #11
  br label %5739

5739:                                             ; preds = %5722, %5705
  call void @llvm.lifetime.end.p0(i64 4, ptr %123) #11
  br label %5740

5740:                                             ; preds = %5739
  br label %5741

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

5742:                                             ; No predecessors!
  br label %5743

5743:                                             ; preds = %5742
  br label %5744

5744:                                             ; preds = %5743, %5680
  br label %5745

5745:                                             ; preds = %5744
  br label %5746

5746:                                             ; preds = %5745
  br label %5747

5747:                                             ; preds = %5746
  %5748 = load i32, ptr @test_count, align 4, !tbaa !5
  %5749 = add nsw i32 %5748, 1
  store i32 %5749, ptr @test_count, align 4, !tbaa !5
  %5750 = load ptr, ptr %119, align 8, !tbaa !9
  %5751 = getelementptr inbounds %struct.s2n_connection, ptr %5750, i32 0, i32 94
  %5752 = call zeroext i1 @s2n_atomic_flag_test(ptr noundef %5751)
  br i1 %5752, label %5806, label %5753

5753:                                             ; preds = %5747
  br label %5754

5754:                                             ; preds = %5753
  br label %5755

5755:                                             ; preds = %5754
  call void @llvm.lifetime.start.p0(i64 4, ptr %124) #11
  %5756 = call ptr @__errno_location() #12
  %5757 = load i32, ptr %5756, align 4, !tbaa !5
  store i32 %5757, ptr %124, align 4, !tbaa !5
  %5758 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5759 = call i32 @s2n_print_stacktrace(ptr noundef %5758)
  %5760 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5761 = trunc i8 %5760 to i1
  br i1 %5761, label %5762, label %5784

5762:                                             ; preds = %5755
  %5763 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5764 = call i32 @fileno(ptr noundef %5763) #11
  %5765 = call i32 @isatty(i32 noundef %5764) #11
  %5766 = icmp ne i32 %5765, 0
  br i1 %5766, label %5767, label %5784

5767:                                             ; preds = %5762
  %5768 = load i32, ptr %124, align 4, !tbaa !5
  %5769 = call ptr @__errno_location() #12
  store i32 %5768, ptr %5769, align 4, !tbaa !5
  %5770 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5771 = load i32, ptr @test_count, align 4, !tbaa !5
  %5772 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5773 = load i32, ptr %5772, align 4, !tbaa !5
  %5774 = call ptr @s2n_strerror(i32 noundef %5773, ptr noundef @.str.4)
  %5775 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5776 = load i32, ptr %5775, align 4, !tbaa !5
  %5777 = call ptr @s2n_strerror_debug(i32 noundef %5776, ptr noundef @.str.4)
  %5778 = call ptr @__errno_location() #12
  %5779 = load i32, ptr %5778, align 4, !tbaa !5
  %5780 = call ptr @strerror(i32 noundef %5779) #11
  %5781 = call ptr @__errno_location() #12
  %5782 = load i32, ptr %5781, align 4, !tbaa !5
  %5783 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5770, ptr noundef @.str.2, i32 noundef %5771, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 273, ptr noundef %5774, ptr noundef %5777, ptr noundef %5780, i32 noundef %5782) #11
  br label %5801

5784:                                             ; preds = %5762, %5755
  %5785 = load i32, ptr %124, align 4, !tbaa !5
  %5786 = call ptr @__errno_location() #12
  store i32 %5785, ptr %5786, align 4, !tbaa !5
  %5787 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5788 = load i32, ptr @test_count, align 4, !tbaa !5
  %5789 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5790 = load i32, ptr %5789, align 4, !tbaa !5
  %5791 = call ptr @s2n_strerror(i32 noundef %5790, ptr noundef @.str.4)
  %5792 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5793 = load i32, ptr %5792, align 4, !tbaa !5
  %5794 = call ptr @s2n_strerror_debug(i32 noundef %5793, ptr noundef @.str.4)
  %5795 = call ptr @__errno_location() #12
  %5796 = load i32, ptr %5795, align 4, !tbaa !5
  %5797 = call ptr @strerror(i32 noundef %5796) #11
  %5798 = call ptr @__errno_location() #12
  %5799 = load i32, ptr %5798, align 4, !tbaa !5
  %5800 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5787, ptr noundef @.str.5, i32 noundef %5788, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 273, ptr noundef %5791, ptr noundef %5794, ptr noundef %5797, i32 noundef %5799) #11
  br label %5801

5801:                                             ; preds = %5784, %5767
  call void @llvm.lifetime.end.p0(i64 4, ptr %124) #11
  br label %5802

5802:                                             ; preds = %5801
  br label %5803

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

5804:                                             ; No predecessors!
  br label %5805

5805:                                             ; preds = %5804
  br label %5806

5806:                                             ; preds = %5805, %5747
  br label %5807

5807:                                             ; preds = %5806
  br label %5808

5808:                                             ; preds = %5807
  %5809 = call i32 @s2n_connection_ptr_free(ptr noundef %119)
  %5810 = getelementptr inbounds %struct.s2n_result, ptr %125, i32 0, i32 0
  store i32 %5809, ptr %5810, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %119) #11
  %5811 = call i32 @s2n_stuffer_free(ptr noundef %117)
  call void @llvm.lifetime.end.p0(i64 40, ptr %117) #11
  call void @llvm.lifetime.start.p0(i64 40, ptr %126) #11
  br label %5812

5812:                                             ; preds = %5808
  %5813 = load i32, ptr @test_count, align 4, !tbaa !5
  %5814 = add nsw i32 %5813, 1
  store i32 %5814, ptr @test_count, align 4, !tbaa !5
  %5815 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %126, i32 noundef 0)
  %5816 = icmp eq i32 %5815, -1
  br i1 %5816, label %5817, label %5870

5817:                                             ; preds = %5812
  br label %5818

5818:                                             ; preds = %5817
  br label %5819

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

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

5831:                                             ; preds = %5826
  %5832 = load i32, ptr %127, align 4, !tbaa !5
  %5833 = call ptr @__errno_location() #12
  store i32 %5832, ptr %5833, align 4, !tbaa !5
  %5834 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5835 = load i32, ptr @test_count, align 4, !tbaa !5
  %5836 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5837 = load i32, ptr %5836, align 4, !tbaa !5
  %5838 = call ptr @s2n_strerror(i32 noundef %5837, ptr noundef @.str.4)
  %5839 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5840 = load i32, ptr %5839, align 4, !tbaa !5
  %5841 = call ptr @s2n_strerror_debug(i32 noundef %5840, ptr noundef @.str.4)
  %5842 = call ptr @__errno_location() #12
  %5843 = load i32, ptr %5842, align 4, !tbaa !5
  %5844 = call ptr @strerror(i32 noundef %5843) #11
  %5845 = call ptr @__errno_location() #12
  %5846 = load i32, ptr %5845, align 4, !tbaa !5
  %5847 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5834, ptr noundef @.str.2, i32 noundef %5835, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 279, ptr noundef %5838, ptr noundef %5841, ptr noundef %5844, i32 noundef %5846) #11
  br label %5865

5848:                                             ; preds = %5826, %5819
  %5849 = load i32, ptr %127, align 4, !tbaa !5
  %5850 = call ptr @__errno_location() #12
  store i32 %5849, ptr %5850, align 4, !tbaa !5
  %5851 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5852 = load i32, ptr @test_count, align 4, !tbaa !5
  %5853 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5854 = load i32, ptr %5853, align 4, !tbaa !5
  %5855 = call ptr @s2n_strerror(i32 noundef %5854, ptr noundef @.str.4)
  %5856 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5857 = load i32, ptr %5856, align 4, !tbaa !5
  %5858 = call ptr @s2n_strerror_debug(i32 noundef %5857, ptr noundef @.str.4)
  %5859 = call ptr @__errno_location() #12
  %5860 = load i32, ptr %5859, align 4, !tbaa !5
  %5861 = call ptr @strerror(i32 noundef %5860) #11
  %5862 = call ptr @__errno_location() #12
  %5863 = load i32, ptr %5862, align 4, !tbaa !5
  %5864 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5851, ptr noundef @.str.5, i32 noundef %5852, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 279, ptr noundef %5855, ptr noundef %5858, ptr noundef %5861, i32 noundef %5863) #11
  br label %5865

5865:                                             ; preds = %5848, %5831
  call void @llvm.lifetime.end.p0(i64 4, ptr %127) #11
  br label %5866

5866:                                             ; preds = %5865
  br label %5867

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

5868:                                             ; No predecessors!
  br label %5869

5869:                                             ; preds = %5868
  br label %5870

5870:                                             ; preds = %5869, %5812
  br label %5871

5871:                                             ; preds = %5870
  br label %5872

5872:                                             ; preds = %5871
  call void @llvm.lifetime.start.p0(i64 8, ptr %128) #11
  %5873 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %5873, ptr %128, align 8, !tbaa !9
  br label %5874

5874:                                             ; preds = %5872
  %5875 = load i32, ptr @test_count, align 4, !tbaa !5
  %5876 = add nsw i32 %5875, 1
  store i32 %5876, ptr @test_count, align 4, !tbaa !5
  %5877 = load ptr, ptr %128, align 8, !tbaa !9
  %5878 = icmp eq ptr %5877, null
  br i1 %5878, label %5879, label %5932

5879:                                             ; preds = %5874
  br label %5880

5880:                                             ; preds = %5879
  br label %5881

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

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

5893:                                             ; preds = %5888
  %5894 = load i32, ptr %129, align 4, !tbaa !5
  %5895 = call ptr @__errno_location() #12
  store i32 %5894, ptr %5895, align 4, !tbaa !5
  %5896 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5897 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %5899, ptr noundef @.str.4)
  %5901 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5902 = load i32, ptr %5901, align 4, !tbaa !5
  %5903 = call ptr @s2n_strerror_debug(i32 noundef %5902, ptr noundef @.str.4)
  %5904 = call ptr @__errno_location() #12
  %5905 = load i32, ptr %5904, align 4, !tbaa !5
  %5906 = call ptr @strerror(i32 noundef %5905) #11
  %5907 = call ptr @__errno_location() #12
  %5908 = load i32, ptr %5907, align 4, !tbaa !5
  %5909 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5896, ptr noundef @.str.2, i32 noundef %5897, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 283, ptr noundef %5900, ptr noundef %5903, ptr noundef %5906, i32 noundef %5908) #11
  br label %5927

5910:                                             ; preds = %5888, %5881
  %5911 = load i32, ptr %129, align 4, !tbaa !5
  %5912 = call ptr @__errno_location() #12
  store i32 %5911, ptr %5912, align 4, !tbaa !5
  %5913 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5914 = load i32, ptr @test_count, align 4, !tbaa !5
  %5915 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5916 = load i32, ptr %5915, align 4, !tbaa !5
  %5917 = call ptr @s2n_strerror(i32 noundef %5916, ptr noundef @.str.4)
  %5918 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5919 = load i32, ptr %5918, align 4, !tbaa !5
  %5920 = call ptr @s2n_strerror_debug(i32 noundef %5919, ptr noundef @.str.4)
  %5921 = call ptr @__errno_location() #12
  %5922 = load i32, ptr %5921, align 4, !tbaa !5
  %5923 = call ptr @strerror(i32 noundef %5922) #11
  %5924 = call ptr @__errno_location() #12
  %5925 = load i32, ptr %5924, align 4, !tbaa !5
  %5926 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5913, ptr noundef @.str.5, i32 noundef %5914, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 283, ptr noundef %5917, ptr noundef %5920, ptr noundef %5923, i32 noundef %5925) #11
  br label %5927

5927:                                             ; preds = %5910, %5893
  call void @llvm.lifetime.end.p0(i64 4, ptr %129) #11
  br label %5928

5928:                                             ; preds = %5927
  br label %5929

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

5930:                                             ; No predecessors!
  br label %5931

5931:                                             ; preds = %5930
  br label %5932

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

5933:                                             ; preds = %5932
  br label %5934

5934:                                             ; preds = %5933
  %5935 = load ptr, ptr %128, align 8, !tbaa !9
  %5936 = getelementptr inbounds %struct.s2n_connection, ptr %5935, i32 0, i32 23
  store i8 34, ptr %5936, align 4, !tbaa !26
  %5937 = load ptr, ptr %13, align 8, !tbaa !9
  %5938 = load ptr, ptr %128, align 8, !tbaa !9
  %5939 = getelementptr inbounds %struct.s2n_connection, ptr %5938, i32 0, i32 27
  %5940 = load ptr, ptr %5939, align 8, !tbaa !50
  %5941 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %5940, i32 0, i32 0
  store ptr %5937, ptr %5941, align 8, !tbaa !51
  %5942 = load ptr, ptr %128, align 8, !tbaa !9
  %5943 = getelementptr inbounds %struct.s2n_connection, ptr %5942, i32 0, i32 94
  call void @s2n_atomic_flag_set(ptr noundef %5943)
  %5944 = load ptr, ptr %128, align 8, !tbaa !9
  %5945 = getelementptr inbounds %struct.s2n_connection, ptr %5944, i32 0, i32 27
  %5946 = load ptr, ptr %5945, align 8, !tbaa !50
  %5947 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %5946, i32 0, i32 7
  %5948 = getelementptr inbounds [8 x i8], ptr %5947, i64 0, i64 0
  store i8 1, ptr %5948, align 8, !tbaa !21
  br label %5949

5949:                                             ; preds = %5934
  %5950 = load i32, ptr @test_count, align 4, !tbaa !5
  %5951 = add nsw i32 %5950, 1
  store i32 %5951, ptr @test_count, align 4, !tbaa !5
  %5952 = call i32 @s2n_stuffer_write_uint8(ptr noundef %126, i8 noundef zeroext 0)
  %5953 = icmp eq i32 %5952, -1
  br i1 %5953, label %5954, label %6007

5954:                                             ; preds = %5949
  br label %5955

5955:                                             ; preds = %5954
  br label %5956

5956:                                             ; preds = %5955
  call void @llvm.lifetime.start.p0(i64 4, ptr %130) #11
  %5957 = call ptr @__errno_location() #12
  %5958 = load i32, ptr %5957, align 4, !tbaa !5
  store i32 %5958, ptr %130, align 4, !tbaa !5
  %5959 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5960 = call i32 @s2n_print_stacktrace(ptr noundef %5959)
  %5961 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5962 = trunc i8 %5961 to i1
  br i1 %5962, label %5963, label %5985

5963:                                             ; preds = %5956
  %5964 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5965 = call i32 @fileno(ptr noundef %5964) #11
  %5966 = call i32 @isatty(i32 noundef %5965) #11
  %5967 = icmp ne i32 %5966, 0
  br i1 %5967, label %5968, label %5985

5968:                                             ; preds = %5963
  %5969 = load i32, ptr %130, align 4, !tbaa !5
  %5970 = call ptr @__errno_location() #12
  store i32 %5969, ptr %5970, align 4, !tbaa !5
  %5971 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5972 = load i32, ptr @test_count, align 4, !tbaa !5
  %5973 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5974 = load i32, ptr %5973, align 4, !tbaa !5
  %5975 = call ptr @s2n_strerror(i32 noundef %5974, ptr noundef @.str.4)
  %5976 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5977 = load i32, ptr %5976, align 4, !tbaa !5
  %5978 = call ptr @s2n_strerror_debug(i32 noundef %5977, ptr noundef @.str.4)
  %5979 = call ptr @__errno_location() #12
  %5980 = load i32, ptr %5979, align 4, !tbaa !5
  %5981 = call ptr @strerror(i32 noundef %5980) #11
  %5982 = call ptr @__errno_location() #12
  %5983 = load i32, ptr %5982, align 4, !tbaa !5
  %5984 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5971, ptr noundef @.str.2, i32 noundef %5972, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 292, ptr noundef %5975, ptr noundef %5978, ptr noundef %5981, i32 noundef %5983) #11
  br label %6002

5985:                                             ; preds = %5963, %5956
  %5986 = load i32, ptr %130, align 4, !tbaa !5
  %5987 = call ptr @__errno_location() #12
  store i32 %5986, ptr %5987, align 4, !tbaa !5
  %5988 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5989 = load i32, ptr @test_count, align 4, !tbaa !5
  %5990 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5991 = load i32, ptr %5990, align 4, !tbaa !5
  %5992 = call ptr @s2n_strerror(i32 noundef %5991, ptr noundef @.str.4)
  %5993 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5994 = load i32, ptr %5993, align 4, !tbaa !5
  %5995 = call ptr @s2n_strerror_debug(i32 noundef %5994, ptr noundef @.str.4)
  %5996 = call ptr @__errno_location() #12
  %5997 = load i32, ptr %5996, align 4, !tbaa !5
  %5998 = call ptr @strerror(i32 noundef %5997) #11
  %5999 = call ptr @__errno_location() #12
  %6000 = load i32, ptr %5999, align 4, !tbaa !5
  %6001 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5988, ptr noundef @.str.5, i32 noundef %5989, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 292, ptr noundef %5992, ptr noundef %5995, ptr noundef %5998, i32 noundef %6000) #11
  br label %6002

6002:                                             ; preds = %5985, %5968
  call void @llvm.lifetime.end.p0(i64 4, ptr %130) #11
  br label %6003

6003:                                             ; preds = %6002
  br label %6004

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

6005:                                             ; No predecessors!
  br label %6006

6006:                                             ; preds = %6005
  br label %6007

6007:                                             ; preds = %6006, %5949
  br label %6008

6008:                                             ; preds = %6007
  br label %6009

6009:                                             ; preds = %6008
  br label %6010

6010:                                             ; preds = %6009
  %6011 = load i32, ptr @test_count, align 4, !tbaa !5
  %6012 = add nsw i32 %6011, 1
  store i32 %6012, ptr @test_count, align 4, !tbaa !5
  %6013 = load ptr, ptr %128, align 8, !tbaa !9
  %6014 = call i32 @s2n_key_update_recv(ptr noundef %6013, ptr noundef %126)
  %6015 = icmp eq i32 %6014, -1
  br i1 %6015, label %6016, label %6069

6016:                                             ; preds = %6010
  br label %6017

6017:                                             ; preds = %6016
  br label %6018

6018:                                             ; preds = %6017
  call void @llvm.lifetime.start.p0(i64 4, ptr %131) #11
  %6019 = call ptr @__errno_location() #12
  %6020 = load i32, ptr %6019, align 4, !tbaa !5
  store i32 %6020, ptr %131, align 4, !tbaa !5
  %6021 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6022 = call i32 @s2n_print_stacktrace(ptr noundef %6021)
  %6023 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6024 = trunc i8 %6023 to i1
  br i1 %6024, label %6025, label %6047

6025:                                             ; preds = %6018
  %6026 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6027 = call i32 @fileno(ptr noundef %6026) #11
  %6028 = call i32 @isatty(i32 noundef %6027) #11
  %6029 = icmp ne i32 %6028, 0
  br i1 %6029, label %6030, label %6047

6030:                                             ; preds = %6025
  %6031 = load i32, ptr %131, align 4, !tbaa !5
  %6032 = call ptr @__errno_location() #12
  store i32 %6031, ptr %6032, align 4, !tbaa !5
  %6033 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6034 = load i32, ptr @test_count, align 4, !tbaa !5
  %6035 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6036 = load i32, ptr %6035, align 4, !tbaa !5
  %6037 = call ptr @s2n_strerror(i32 noundef %6036, ptr noundef @.str.4)
  %6038 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6039 = load i32, ptr %6038, align 4, !tbaa !5
  %6040 = call ptr @s2n_strerror_debug(i32 noundef %6039, ptr noundef @.str.4)
  %6041 = call ptr @__errno_location() #12
  %6042 = load i32, ptr %6041, align 4, !tbaa !5
  %6043 = call ptr @strerror(i32 noundef %6042) #11
  %6044 = call ptr @__errno_location() #12
  %6045 = load i32, ptr %6044, align 4, !tbaa !5
  %6046 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6033, ptr noundef @.str.2, i32 noundef %6034, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 293, ptr noundef %6037, ptr noundef %6040, ptr noundef %6043, i32 noundef %6045) #11
  br label %6064

6047:                                             ; preds = %6025, %6018
  %6048 = load i32, ptr %131, align 4, !tbaa !5
  %6049 = call ptr @__errno_location() #12
  store i32 %6048, ptr %6049, align 4, !tbaa !5
  %6050 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6051 = load i32, ptr @test_count, align 4, !tbaa !5
  %6052 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6053 = load i32, ptr %6052, align 4, !tbaa !5
  %6054 = call ptr @s2n_strerror(i32 noundef %6053, ptr noundef @.str.4)
  %6055 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6056 = load i32, ptr %6055, align 4, !tbaa !5
  %6057 = call ptr @s2n_strerror_debug(i32 noundef %6056, ptr noundef @.str.4)
  %6058 = call ptr @__errno_location() #12
  %6059 = load i32, ptr %6058, align 4, !tbaa !5
  %6060 = call ptr @strerror(i32 noundef %6059) #11
  %6061 = call ptr @__errno_location() #12
  %6062 = load i32, ptr %6061, align 4, !tbaa !5
  %6063 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6050, ptr noundef @.str.5, i32 noundef %6051, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 293, ptr noundef %6054, ptr noundef %6057, ptr noundef %6060, i32 noundef %6062) #11
  br label %6064

6064:                                             ; preds = %6047, %6030
  call void @llvm.lifetime.end.p0(i64 4, ptr %131) #11
  br label %6065

6065:                                             ; preds = %6064
  br label %6066

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

6067:                                             ; No predecessors!
  br label %6068

6068:                                             ; preds = %6067
  br label %6069

6069:                                             ; preds = %6068, %6010
  br label %6070

6070:                                             ; preds = %6069
  br label %6071

6071:                                             ; preds = %6070
  br label %6072

6072:                                             ; preds = %6071
  %6073 = load i32, ptr @test_count, align 4, !tbaa !5
  %6074 = add nsw i32 %6073, 1
  store i32 %6074, ptr @test_count, align 4, !tbaa !5
  %6075 = load ptr, ptr %128, align 8, !tbaa !9
  %6076 = getelementptr inbounds %struct.s2n_connection, ptr %6075, i32 0, i32 27
  %6077 = load ptr, ptr %6076, align 8, !tbaa !50
  %6078 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %6077, i32 0, i32 7
  %6079 = getelementptr inbounds [8 x i8], ptr %6078, i64 0, i64 0
  %6080 = load i8, ptr %6079, align 8, !tbaa !21
  %6081 = zext i8 %6080 to i32
  %6082 = icmp eq i32 %6081, 0
  br i1 %6082, label %6136, label %6083

6083:                                             ; preds = %6072
  br label %6084

6084:                                             ; preds = %6083
  br label %6085

6085:                                             ; preds = %6084
  call void @llvm.lifetime.start.p0(i64 4, ptr %132) #11
  %6086 = call ptr @__errno_location() #12
  %6087 = load i32, ptr %6086, align 4, !tbaa !5
  store i32 %6087, ptr %132, align 4, !tbaa !5
  %6088 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6089 = call i32 @s2n_print_stacktrace(ptr noundef %6088)
  %6090 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6091 = trunc i8 %6090 to i1
  br i1 %6091, label %6092, label %6114

6092:                                             ; preds = %6085
  %6093 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6094 = call i32 @fileno(ptr noundef %6093) #11
  %6095 = call i32 @isatty(i32 noundef %6094) #11
  %6096 = icmp ne i32 %6095, 0
  br i1 %6096, label %6097, label %6114

6097:                                             ; preds = %6092
  %6098 = load i32, ptr %132, align 4, !tbaa !5
  %6099 = call ptr @__errno_location() #12
  store i32 %6098, ptr %6099, align 4, !tbaa !5
  %6100 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6101 = load i32, ptr @test_count, align 4, !tbaa !5
  %6102 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6103 = load i32, ptr %6102, align 4, !tbaa !5
  %6104 = call ptr @s2n_strerror(i32 noundef %6103, ptr noundef @.str.4)
  %6105 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6106 = load i32, ptr %6105, align 4, !tbaa !5
  %6107 = call ptr @s2n_strerror_debug(i32 noundef %6106, ptr noundef @.str.4)
  %6108 = call ptr @__errno_location() #12
  %6109 = load i32, ptr %6108, align 4, !tbaa !5
  %6110 = call ptr @strerror(i32 noundef %6109) #11
  %6111 = call ptr @__errno_location() #12
  %6112 = load i32, ptr %6111, align 4, !tbaa !5
  %6113 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6100, ptr noundef @.str.2, i32 noundef %6101, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 294, ptr noundef %6104, ptr noundef %6107, ptr noundef %6110, i32 noundef %6112) #11
  br label %6131

6114:                                             ; preds = %6092, %6085
  %6115 = load i32, ptr %132, align 4, !tbaa !5
  %6116 = call ptr @__errno_location() #12
  store i32 %6115, ptr %6116, align 4, !tbaa !5
  %6117 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6118 = load i32, ptr @test_count, align 4, !tbaa !5
  %6119 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6120 = load i32, ptr %6119, align 4, !tbaa !5
  %6121 = call ptr @s2n_strerror(i32 noundef %6120, ptr noundef @.str.4)
  %6122 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6123 = load i32, ptr %6122, align 4, !tbaa !5
  %6124 = call ptr @s2n_strerror_debug(i32 noundef %6123, ptr noundef @.str.4)
  %6125 = call ptr @__errno_location() #12
  %6126 = load i32, ptr %6125, align 4, !tbaa !5
  %6127 = call ptr @strerror(i32 noundef %6126) #11
  %6128 = call ptr @__errno_location() #12
  %6129 = load i32, ptr %6128, align 4, !tbaa !5
  %6130 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6117, ptr noundef @.str.5, i32 noundef %6118, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 294, ptr noundef %6121, ptr noundef %6124, ptr noundef %6127, i32 noundef %6129) #11
  br label %6131

6131:                                             ; preds = %6114, %6097
  call void @llvm.lifetime.end.p0(i64 4, ptr %132) #11
  br label %6132

6132:                                             ; preds = %6131
  br label %6133

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

6134:                                             ; No predecessors!
  br label %6135

6135:                                             ; preds = %6134
  br label %6136

6136:                                             ; preds = %6135, %6072
  br label %6137

6137:                                             ; preds = %6136
  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 %128, align 8, !tbaa !9
  %6143 = getelementptr inbounds %struct.s2n_connection, ptr %6142, i32 0, i32 94
  %6144 = call zeroext i1 @s2n_atomic_flag_test(ptr noundef %6143)
  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 %133) #11
  %6148 = call ptr @__errno_location() #12
  %6149 = load i32, ptr %6148, align 4, !tbaa !5
  store i32 %6149, ptr %133, 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 %133, 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.61, ptr noundef @.str.1, i32 noundef 297, ptr noundef %6166, ptr noundef %6169, ptr noundef %6172, i32 noundef %6174) #11
  br label %6193

6176:                                             ; preds = %6154, %6147
  %6177 = load i32, ptr %133, 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.61, ptr noundef @.str.1, i32 noundef 297, 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 %133) #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
  %6201 = call i32 @s2n_connection_ptr_free(ptr noundef %128)
  %6202 = getelementptr inbounds %struct.s2n_result, ptr %134, i32 0, i32 0
  store i32 %6201, ptr %6202, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %128) #11
  %6203 = call i32 @s2n_stuffer_free(ptr noundef %126)
  call void @llvm.lifetime.end.p0(i64 40, ptr %126) #11
  call void @llvm.lifetime.start.p0(i64 40, ptr %135) #11
  br label %6204

6204:                                             ; preds = %6200
  %6205 = load i32, ptr @test_count, align 4, !tbaa !5
  %6206 = add nsw i32 %6205, 1
  store i32 %6206, ptr @test_count, align 4, !tbaa !5
  %6207 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %135, i32 noundef 0)
  %6208 = icmp eq i32 %6207, -1
  br i1 %6208, label %6209, label %6262

6209:                                             ; preds = %6204
  br label %6210

6210:                                             ; preds = %6209
  br label %6211

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

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

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

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

6257:                                             ; preds = %6240, %6223
  call void @llvm.lifetime.end.p0(i64 4, ptr %136) #11
  br label %6258

6258:                                             ; preds = %6257
  br label %6259

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

6260:                                             ; No predecessors!
  br label %6261

6261:                                             ; preds = %6260
  br label %6262

6262:                                             ; preds = %6261, %6204
  br label %6263

6263:                                             ; preds = %6262
  br label %6264

6264:                                             ; preds = %6263
  call void @llvm.lifetime.start.p0(i64 8, ptr %137) #11
  %6265 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %6265, ptr %137, align 8, !tbaa !9
  br label %6266

6266:                                             ; preds = %6264
  %6267 = load i32, ptr @test_count, align 4, !tbaa !5
  %6268 = add nsw i32 %6267, 1
  store i32 %6268, ptr @test_count, align 4, !tbaa !5
  %6269 = load ptr, ptr %137, align 8, !tbaa !9
  %6270 = icmp eq ptr %6269, null
  br i1 %6270, label %6271, label %6324

6271:                                             ; preds = %6266
  br label %6272

6272:                                             ; preds = %6271
  br label %6273

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

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

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

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

6319:                                             ; preds = %6302, %6285
  call void @llvm.lifetime.end.p0(i64 4, ptr %138) #11
  br label %6320

6320:                                             ; preds = %6319
  br label %6321

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

6322:                                             ; No predecessors!
  br label %6323

6323:                                             ; preds = %6322
  br label %6324

6324:                                             ; preds = %6323, %6266
  br label %6325

6325:                                             ; preds = %6324
  br label %6326

6326:                                             ; preds = %6325
  %6327 = load ptr, ptr %137, align 8, !tbaa !9
  %6328 = getelementptr inbounds %struct.s2n_connection, ptr %6327, i32 0, i32 23
  store i8 34, ptr %6328, align 4, !tbaa !26
  %6329 = load ptr, ptr %13, align 8, !tbaa !9
  %6330 = load ptr, ptr %137, align 8, !tbaa !9
  %6331 = getelementptr inbounds %struct.s2n_connection, ptr %6330, i32 0, i32 27
  %6332 = load ptr, ptr %6331, align 8, !tbaa !50
  %6333 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %6332, i32 0, i32 0
  store ptr %6329, ptr %6333, align 8, !tbaa !51
  %6334 = load ptr, ptr %137, align 8, !tbaa !9
  %6335 = getelementptr inbounds %struct.s2n_connection, ptr %6334, i32 0, i32 96
  store i8 -1, ptr %6335, align 1, !tbaa !61
  %6336 = load ptr, ptr %137, align 8, !tbaa !9
  %6337 = getelementptr inbounds %struct.s2n_connection, ptr %6336, i32 0, i32 27
  %6338 = load ptr, ptr %6337, align 8, !tbaa !50
  %6339 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %6338, i32 0, i32 7
  %6340 = getelementptr inbounds [8 x i8], ptr %6339, i64 0, i64 0
  store i8 1, ptr %6340, align 8, !tbaa !21
  br label %6341

6341:                                             ; preds = %6326
  %6342 = load i32, ptr @test_count, align 4, !tbaa !5
  %6343 = add nsw i32 %6342, 1
  store i32 %6343, ptr @test_count, align 4, !tbaa !5
  %6344 = call i32 @s2n_stuffer_write_uint8(ptr noundef %135, i8 noundef zeroext 0)
  %6345 = icmp eq i32 %6344, -1
  br i1 %6345, label %6346, label %6399

6346:                                             ; preds = %6341
  br label %6347

6347:                                             ; preds = %6346
  br label %6348

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

6355:                                             ; preds = %6348
  %6356 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6357 = call i32 @fileno(ptr noundef %6356) #11
  %6358 = call i32 @isatty(i32 noundef %6357) #11
  %6359 = icmp ne i32 %6358, 0
  br i1 %6359, label %6360, label %6377

6360:                                             ; preds = %6355
  %6361 = load i32, ptr %139, align 4, !tbaa !5
  %6362 = call ptr @__errno_location() #12
  store i32 %6361, ptr %6362, align 4, !tbaa !5
  %6363 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6364 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %6366, ptr noundef @.str.4)
  %6368 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6369 = load i32, ptr %6368, align 4, !tbaa !5
  %6370 = call ptr @s2n_strerror_debug(i32 noundef %6369, ptr noundef @.str.4)
  %6371 = call ptr @__errno_location() #12
  %6372 = load i32, ptr %6371, align 4, !tbaa !5
  %6373 = call ptr @strerror(i32 noundef %6372) #11
  %6374 = call ptr @__errno_location() #12
  %6375 = load i32, ptr %6374, align 4, !tbaa !5
  %6376 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6363, ptr noundef @.str.2, i32 noundef %6364, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 313, ptr noundef %6367, ptr noundef %6370, ptr noundef %6373, i32 noundef %6375) #11
  br label %6394

6377:                                             ; preds = %6355, %6348
  %6378 = load i32, ptr %139, align 4, !tbaa !5
  %6379 = call ptr @__errno_location() #12
  store i32 %6378, ptr %6379, align 4, !tbaa !5
  %6380 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6381 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %6383, ptr noundef @.str.4)
  %6385 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6386 = load i32, ptr %6385, align 4, !tbaa !5
  %6387 = call ptr @s2n_strerror_debug(i32 noundef %6386, ptr noundef @.str.4)
  %6388 = call ptr @__errno_location() #12
  %6389 = load i32, ptr %6388, align 4, !tbaa !5
  %6390 = call ptr @strerror(i32 noundef %6389) #11
  %6391 = call ptr @__errno_location() #12
  %6392 = load i32, ptr %6391, align 4, !tbaa !5
  %6393 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6380, ptr noundef @.str.5, i32 noundef %6381, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 313, ptr noundef %6384, ptr noundef %6387, ptr noundef %6390, i32 noundef %6392) #11
  br label %6394

6394:                                             ; preds = %6377, %6360
  call void @llvm.lifetime.end.p0(i64 4, ptr %139) #11
  br label %6395

6395:                                             ; preds = %6394
  br label %6396

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

6397:                                             ; No predecessors!
  br label %6398

6398:                                             ; preds = %6397
  br label %6399

6399:                                             ; preds = %6398, %6341
  br label %6400

6400:                                             ; preds = %6399
  br label %6401

6401:                                             ; preds = %6400
  br label %6402

6402:                                             ; preds = %6401
  %6403 = load i32, ptr @test_count, align 4, !tbaa !5
  %6404 = add nsw i32 %6403, 1
  store i32 %6404, ptr @test_count, align 4, !tbaa !5
  %6405 = load ptr, ptr %137, align 8, !tbaa !9
  %6406 = call i32 @s2n_key_update_recv(ptr noundef %6405, ptr noundef %135)
  %6407 = icmp eq i32 %6406, -1
  br i1 %6407, label %6408, label %6461

6408:                                             ; preds = %6402
  br label %6409

6409:                                             ; preds = %6408
  br label %6410

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

6417:                                             ; preds = %6410
  %6418 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6419 = call i32 @fileno(ptr noundef %6418) #11
  %6420 = call i32 @isatty(i32 noundef %6419) #11
  %6421 = icmp ne i32 %6420, 0
  br i1 %6421, label %6422, label %6439

6422:                                             ; preds = %6417
  %6423 = load i32, ptr %140, align 4, !tbaa !5
  %6424 = call ptr @__errno_location() #12
  store i32 %6423, ptr %6424, align 4, !tbaa !5
  %6425 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6426 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %6428, ptr noundef @.str.4)
  %6430 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6431 = load i32, ptr %6430, align 4, !tbaa !5
  %6432 = call ptr @s2n_strerror_debug(i32 noundef %6431, ptr noundef @.str.4)
  %6433 = call ptr @__errno_location() #12
  %6434 = load i32, ptr %6433, align 4, !tbaa !5
  %6435 = call ptr @strerror(i32 noundef %6434) #11
  %6436 = call ptr @__errno_location() #12
  %6437 = load i32, ptr %6436, align 4, !tbaa !5
  %6438 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6425, ptr noundef @.str.2, i32 noundef %6426, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 314, ptr noundef %6429, ptr noundef %6432, ptr noundef %6435, i32 noundef %6437) #11
  br label %6456

6439:                                             ; preds = %6417, %6410
  %6440 = load i32, ptr %140, align 4, !tbaa !5
  %6441 = call ptr @__errno_location() #12
  store i32 %6440, ptr %6441, align 4, !tbaa !5
  %6442 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6443 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %6445, ptr noundef @.str.4)
  %6447 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6448 = load i32, ptr %6447, align 4, !tbaa !5
  %6449 = call ptr @s2n_strerror_debug(i32 noundef %6448, ptr noundef @.str.4)
  %6450 = call ptr @__errno_location() #12
  %6451 = load i32, ptr %6450, align 4, !tbaa !5
  %6452 = call ptr @strerror(i32 noundef %6451) #11
  %6453 = call ptr @__errno_location() #12
  %6454 = load i32, ptr %6453, align 4, !tbaa !5
  %6455 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6442, ptr noundef @.str.5, i32 noundef %6443, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 314, ptr noundef %6446, ptr noundef %6449, ptr noundef %6452, i32 noundef %6454) #11
  br label %6456

6456:                                             ; preds = %6439, %6422
  call void @llvm.lifetime.end.p0(i64 4, ptr %140) #11
  br label %6457

6457:                                             ; preds = %6456
  br label %6458

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

6459:                                             ; No predecessors!
  br label %6460

6460:                                             ; preds = %6459
  br label %6461

6461:                                             ; preds = %6460, %6402
  br label %6462

6462:                                             ; preds = %6461
  br label %6463

6463:                                             ; preds = %6462
  br label %6464

6464:                                             ; preds = %6463
  %6465 = load i32, ptr @test_count, align 4, !tbaa !5
  %6466 = add nsw i32 %6465, 1
  store i32 %6466, ptr @test_count, align 4, !tbaa !5
  %6467 = load ptr, ptr %137, align 8, !tbaa !9
  %6468 = getelementptr inbounds %struct.s2n_connection, ptr %6467, i32 0, i32 27
  %6469 = load ptr, ptr %6468, align 8, !tbaa !50
  %6470 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %6469, i32 0, i32 7
  %6471 = getelementptr inbounds [8 x i8], ptr %6470, i64 0, i64 0
  %6472 = load i8, ptr %6471, align 8, !tbaa !21
  %6473 = zext i8 %6472 to i32
  %6474 = icmp eq i32 %6473, 0
  br i1 %6474, label %6528, label %6475

6475:                                             ; preds = %6464
  br label %6476

6476:                                             ; preds = %6475
  br label %6477

6477:                                             ; preds = %6476
  call void @llvm.lifetime.start.p0(i64 4, ptr %141) #11
  %6478 = call ptr @__errno_location() #12
  %6479 = load i32, ptr %6478, align 4, !tbaa !5
  store i32 %6479, ptr %141, align 4, !tbaa !5
  %6480 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6481 = call i32 @s2n_print_stacktrace(ptr noundef %6480)
  %6482 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6483 = trunc i8 %6482 to i1
  br i1 %6483, label %6484, label %6506

6484:                                             ; preds = %6477
  %6485 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6486 = call i32 @fileno(ptr noundef %6485) #11
  %6487 = call i32 @isatty(i32 noundef %6486) #11
  %6488 = icmp ne i32 %6487, 0
  br i1 %6488, label %6489, label %6506

6489:                                             ; preds = %6484
  %6490 = load i32, ptr %141, align 4, !tbaa !5
  %6491 = call ptr @__errno_location() #12
  store i32 %6490, ptr %6491, align 4, !tbaa !5
  %6492 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6493 = load i32, ptr @test_count, align 4, !tbaa !5
  %6494 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6495 = load i32, ptr %6494, align 4, !tbaa !5
  %6496 = call ptr @s2n_strerror(i32 noundef %6495, ptr noundef @.str.4)
  %6497 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6498 = load i32, ptr %6497, align 4, !tbaa !5
  %6499 = call ptr @s2n_strerror_debug(i32 noundef %6498, ptr noundef @.str.4)
  %6500 = call ptr @__errno_location() #12
  %6501 = load i32, ptr %6500, align 4, !tbaa !5
  %6502 = call ptr @strerror(i32 noundef %6501) #11
  %6503 = call ptr @__errno_location() #12
  %6504 = load i32, ptr %6503, align 4, !tbaa !5
  %6505 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6492, ptr noundef @.str.2, i32 noundef %6493, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 315, ptr noundef %6496, ptr noundef %6499, ptr noundef %6502, i32 noundef %6504) #11
  br label %6523

6506:                                             ; preds = %6484, %6477
  %6507 = load i32, ptr %141, align 4, !tbaa !5
  %6508 = call ptr @__errno_location() #12
  store i32 %6507, ptr %6508, align 4, !tbaa !5
  %6509 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6510 = load i32, ptr @test_count, align 4, !tbaa !5
  %6511 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6512 = load i32, ptr %6511, align 4, !tbaa !5
  %6513 = call ptr @s2n_strerror(i32 noundef %6512, ptr noundef @.str.4)
  %6514 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6515 = load i32, ptr %6514, align 4, !tbaa !5
  %6516 = call ptr @s2n_strerror_debug(i32 noundef %6515, ptr noundef @.str.4)
  %6517 = call ptr @__errno_location() #12
  %6518 = load i32, ptr %6517, align 4, !tbaa !5
  %6519 = call ptr @strerror(i32 noundef %6518) #11
  %6520 = call ptr @__errno_location() #12
  %6521 = load i32, ptr %6520, align 4, !tbaa !5
  %6522 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6509, ptr noundef @.str.5, i32 noundef %6510, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 315, ptr noundef %6513, ptr noundef %6516, ptr noundef %6519, i32 noundef %6521) #11
  br label %6523

6523:                                             ; preds = %6506, %6489
  call void @llvm.lifetime.end.p0(i64 4, ptr %141) #11
  br label %6524

6524:                                             ; preds = %6523
  br label %6525

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

6526:                                             ; No predecessors!
  br label %6527

6527:                                             ; preds = %6526
  br label %6528

6528:                                             ; preds = %6527, %6464
  br label %6529

6529:                                             ; preds = %6528
  br label %6530

6530:                                             ; preds = %6529
  br label %6531

6531:                                             ; preds = %6530
  %6532 = load i32, ptr @test_count, align 4, !tbaa !5
  %6533 = add nsw i32 %6532, 1
  store i32 %6533, ptr @test_count, align 4, !tbaa !5
  %6534 = load ptr, ptr %137, align 8, !tbaa !9
  %6535 = getelementptr inbounds %struct.s2n_connection, ptr %6534, i32 0, i32 96
  %6536 = load i8, ptr %6535, align 1, !tbaa !61
  %6537 = zext i8 %6536 to i32
  %6538 = icmp eq i32 %6537, 255
  br i1 %6538, label %6592, label %6539

6539:                                             ; preds = %6531
  br label %6540

6540:                                             ; preds = %6539
  br label %6541

6541:                                             ; preds = %6540
  call void @llvm.lifetime.start.p0(i64 4, ptr %142) #11
  %6542 = call ptr @__errno_location() #12
  %6543 = load i32, ptr %6542, align 4, !tbaa !5
  store i32 %6543, ptr %142, align 4, !tbaa !5
  %6544 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6545 = call i32 @s2n_print_stacktrace(ptr noundef %6544)
  %6546 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6547 = trunc i8 %6546 to i1
  br i1 %6547, label %6548, label %6570

6548:                                             ; preds = %6541
  %6549 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6550 = call i32 @fileno(ptr noundef %6549) #11
  %6551 = call i32 @isatty(i32 noundef %6550) #11
  %6552 = icmp ne i32 %6551, 0
  br i1 %6552, label %6553, label %6570

6553:                                             ; preds = %6548
  %6554 = load i32, ptr %142, align 4, !tbaa !5
  %6555 = call ptr @__errno_location() #12
  store i32 %6554, ptr %6555, align 4, !tbaa !5
  %6556 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6557 = load i32, ptr @test_count, align 4, !tbaa !5
  %6558 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6559 = load i32, ptr %6558, align 4, !tbaa !5
  %6560 = call ptr @s2n_strerror(i32 noundef %6559, ptr noundef @.str.4)
  %6561 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6562 = load i32, ptr %6561, align 4, !tbaa !5
  %6563 = call ptr @s2n_strerror_debug(i32 noundef %6562, ptr noundef @.str.4)
  %6564 = call ptr @__errno_location() #12
  %6565 = load i32, ptr %6564, align 4, !tbaa !5
  %6566 = call ptr @strerror(i32 noundef %6565) #11
  %6567 = call ptr @__errno_location() #12
  %6568 = load i32, ptr %6567, align 4, !tbaa !5
  %6569 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6556, ptr noundef @.str.2, i32 noundef %6557, ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 316, ptr noundef %6560, ptr noundef %6563, ptr noundef %6566, i32 noundef %6568) #11
  br label %6587

6570:                                             ; preds = %6548, %6541
  %6571 = load i32, ptr %142, align 4, !tbaa !5
  %6572 = call ptr @__errno_location() #12
  store i32 %6571, ptr %6572, align 4, !tbaa !5
  %6573 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6574 = load i32, ptr @test_count, align 4, !tbaa !5
  %6575 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6576 = load i32, ptr %6575, align 4, !tbaa !5
  %6577 = call ptr @s2n_strerror(i32 noundef %6576, ptr noundef @.str.4)
  %6578 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6579 = load i32, ptr %6578, align 4, !tbaa !5
  %6580 = call ptr @s2n_strerror_debug(i32 noundef %6579, ptr noundef @.str.4)
  %6581 = call ptr @__errno_location() #12
  %6582 = load i32, ptr %6581, align 4, !tbaa !5
  %6583 = call ptr @strerror(i32 noundef %6582) #11
  %6584 = call ptr @__errno_location() #12
  %6585 = load i32, ptr %6584, align 4, !tbaa !5
  %6586 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6573, ptr noundef @.str.5, i32 noundef %6574, ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 316, ptr noundef %6577, ptr noundef %6580, ptr noundef %6583, i32 noundef %6585) #11
  br label %6587

6587:                                             ; preds = %6570, %6553
  call void @llvm.lifetime.end.p0(i64 4, ptr %142) #11
  br label %6588

6588:                                             ; preds = %6587
  br label %6589

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

6590:                                             ; No predecessors!
  br label %6591

6591:                                             ; preds = %6590
  br label %6592

6592:                                             ; preds = %6591, %6531
  br label %6593

6593:                                             ; preds = %6592
  br label %6594

6594:                                             ; preds = %6593
  br label %6595

6595:                                             ; preds = %6594
  %6596 = load i32, ptr @test_count, align 4, !tbaa !5
  %6597 = add nsw i32 %6596, 1
  store i32 %6597, ptr @test_count, align 4, !tbaa !5
  %6598 = load ptr, ptr %137, align 8, !tbaa !9
  %6599 = getelementptr inbounds %struct.s2n_connection, ptr %6598, i32 0, i32 95
  %6600 = load i8, ptr %6599, align 4, !tbaa !62
  %6601 = zext i8 %6600 to i32
  %6602 = icmp eq i32 %6601, 0
  br i1 %6602, label %6656, label %6603

6603:                                             ; preds = %6595
  br label %6604

6604:                                             ; preds = %6603
  br label %6605

6605:                                             ; preds = %6604
  call void @llvm.lifetime.start.p0(i64 4, ptr %143) #11
  %6606 = call ptr @__errno_location() #12
  %6607 = load i32, ptr %6606, align 4, !tbaa !5
  store i32 %6607, ptr %143, align 4, !tbaa !5
  %6608 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6609 = call i32 @s2n_print_stacktrace(ptr noundef %6608)
  %6610 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6611 = trunc i8 %6610 to i1
  br i1 %6611, label %6612, label %6634

6612:                                             ; preds = %6605
  %6613 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6614 = call i32 @fileno(ptr noundef %6613) #11
  %6615 = call i32 @isatty(i32 noundef %6614) #11
  %6616 = icmp ne i32 %6615, 0
  br i1 %6616, label %6617, label %6634

6617:                                             ; preds = %6612
  %6618 = load i32, ptr %143, align 4, !tbaa !5
  %6619 = call ptr @__errno_location() #12
  store i32 %6618, ptr %6619, align 4, !tbaa !5
  %6620 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6621 = load i32, ptr @test_count, align 4, !tbaa !5
  %6622 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6623 = load i32, ptr %6622, align 4, !tbaa !5
  %6624 = call ptr @s2n_strerror(i32 noundef %6623, ptr noundef @.str.4)
  %6625 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6626 = load i32, ptr %6625, align 4, !tbaa !5
  %6627 = call ptr @s2n_strerror_debug(i32 noundef %6626, ptr noundef @.str.4)
  %6628 = call ptr @__errno_location() #12
  %6629 = load i32, ptr %6628, align 4, !tbaa !5
  %6630 = call ptr @strerror(i32 noundef %6629) #11
  %6631 = call ptr @__errno_location() #12
  %6632 = load i32, ptr %6631, align 4, !tbaa !5
  %6633 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6620, ptr noundef @.str.2, i32 noundef %6621, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 317, ptr noundef %6624, ptr noundef %6627, ptr noundef %6630, i32 noundef %6632) #11
  br label %6651

6634:                                             ; preds = %6612, %6605
  %6635 = load i32, ptr %143, align 4, !tbaa !5
  %6636 = call ptr @__errno_location() #12
  store i32 %6635, ptr %6636, align 4, !tbaa !5
  %6637 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6638 = load i32, ptr @test_count, align 4, !tbaa !5
  %6639 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6640 = load i32, ptr %6639, align 4, !tbaa !5
  %6641 = call ptr @s2n_strerror(i32 noundef %6640, ptr noundef @.str.4)
  %6642 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6643 = load i32, ptr %6642, align 4, !tbaa !5
  %6644 = call ptr @s2n_strerror_debug(i32 noundef %6643, ptr noundef @.str.4)
  %6645 = call ptr @__errno_location() #12
  %6646 = load i32, ptr %6645, align 4, !tbaa !5
  %6647 = call ptr @strerror(i32 noundef %6646) #11
  %6648 = call ptr @__errno_location() #12
  %6649 = load i32, ptr %6648, align 4, !tbaa !5
  %6650 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6637, ptr noundef @.str.5, i32 noundef %6638, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 317, ptr noundef %6641, ptr noundef %6644, ptr noundef %6647, i32 noundef %6649) #11
  br label %6651

6651:                                             ; preds = %6634, %6617
  call void @llvm.lifetime.end.p0(i64 4, ptr %143) #11
  br label %6652

6652:                                             ; preds = %6651
  br label %6653

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

6654:                                             ; No predecessors!
  br label %6655

6655:                                             ; preds = %6654
  br label %6656

6656:                                             ; preds = %6655, %6595
  br label %6657

6657:                                             ; preds = %6656
  br label %6658

6658:                                             ; preds = %6657
  %6659 = call i32 @s2n_connection_ptr_free(ptr noundef %137)
  %6660 = getelementptr inbounds %struct.s2n_result, ptr %144, i32 0, i32 0
  store i32 %6659, ptr %6660, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %137) #11
  %6661 = call i32 @s2n_stuffer_free(ptr noundef %135)
  call void @llvm.lifetime.end.p0(i64 40, ptr %135) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %145) #11
  store ptr null, ptr %145, align 8, !tbaa !9
  br label %6662

6662:                                             ; preds = %6658
  %6663 = load i32, ptr @test_count, align 4, !tbaa !5
  %6664 = add nsw i32 %6663, 1
  store i32 %6664, ptr @test_count, align 4, !tbaa !5
  %6665 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %6665, ptr %145, align 8, !tbaa !9
  %6666 = icmp eq ptr %6665, null
  br i1 %6666, label %6667, label %6720

6667:                                             ; preds = %6662
  br label %6668

6668:                                             ; preds = %6667
  br label %6669

6669:                                             ; preds = %6668
  call void @llvm.lifetime.start.p0(i64 4, ptr %146) #11
  %6670 = call ptr @__errno_location() #12
  %6671 = load i32, ptr %6670, align 4, !tbaa !5
  store i32 %6671, ptr %146, align 4, !tbaa !5
  %6672 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6673 = call i32 @s2n_print_stacktrace(ptr noundef %6672)
  %6674 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6675 = trunc i8 %6674 to i1
  br i1 %6675, label %6676, label %6698

6676:                                             ; preds = %6669
  %6677 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6678 = call i32 @fileno(ptr noundef %6677) #11
  %6679 = call i32 @isatty(i32 noundef %6678) #11
  %6680 = icmp ne i32 %6679, 0
  br i1 %6680, label %6681, label %6698

6681:                                             ; preds = %6676
  %6682 = load i32, ptr %146, align 4, !tbaa !5
  %6683 = call ptr @__errno_location() #12
  store i32 %6682, ptr %6683, align 4, !tbaa !5
  %6684 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6685 = load i32, ptr @test_count, align 4, !tbaa !5
  %6686 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6687 = load i32, ptr %6686, align 4, !tbaa !5
  %6688 = call ptr @s2n_strerror(i32 noundef %6687, ptr noundef @.str.4)
  %6689 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6690 = load i32, ptr %6689, align 4, !tbaa !5
  %6691 = call ptr @s2n_strerror_debug(i32 noundef %6690, ptr noundef @.str.4)
  %6692 = call ptr @__errno_location() #12
  %6693 = load i32, ptr %6692, align 4, !tbaa !5
  %6694 = call ptr @strerror(i32 noundef %6693) #11
  %6695 = call ptr @__errno_location() #12
  %6696 = load i32, ptr %6695, align 4, !tbaa !5
  %6697 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6684, ptr noundef @.str.2, i32 noundef %6685, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 326, ptr noundef %6688, ptr noundef %6691, ptr noundef %6694, i32 noundef %6696) #11
  br label %6715

6698:                                             ; preds = %6676, %6669
  %6699 = load i32, ptr %146, align 4, !tbaa !5
  %6700 = call ptr @__errno_location() #12
  store i32 %6699, ptr %6700, align 4, !tbaa !5
  %6701 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6702 = load i32, ptr @test_count, align 4, !tbaa !5
  %6703 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6704 = load i32, ptr %6703, align 4, !tbaa !5
  %6705 = call ptr @s2n_strerror(i32 noundef %6704, ptr noundef @.str.4)
  %6706 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6707 = load i32, ptr %6706, align 4, !tbaa !5
  %6708 = call ptr @s2n_strerror_debug(i32 noundef %6707, ptr noundef @.str.4)
  %6709 = call ptr @__errno_location() #12
  %6710 = load i32, ptr %6709, align 4, !tbaa !5
  %6711 = call ptr @strerror(i32 noundef %6710) #11
  %6712 = call ptr @__errno_location() #12
  %6713 = load i32, ptr %6712, align 4, !tbaa !5
  %6714 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6701, ptr noundef @.str.5, i32 noundef %6702, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 326, ptr noundef %6705, ptr noundef %6708, ptr noundef %6711, i32 noundef %6713) #11
  br label %6715

6715:                                             ; preds = %6698, %6681
  call void @llvm.lifetime.end.p0(i64 4, ptr %146) #11
  br label %6716

6716:                                             ; preds = %6715
  br label %6717

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

6718:                                             ; No predecessors!
  br label %6719

6719:                                             ; preds = %6718
  br label %6720

6720:                                             ; preds = %6719, %6662
  br label %6721

6721:                                             ; preds = %6720
  br label %6722

6722:                                             ; preds = %6721
  %6723 = load ptr, ptr %145, align 8, !tbaa !9
  %6724 = getelementptr inbounds %struct.s2n_connection, ptr %6723, i32 0, i32 23
  store i8 34, ptr %6724, align 4, !tbaa !26
  %6725 = load ptr, ptr %13, align 8, !tbaa !9
  %6726 = load ptr, ptr %145, align 8, !tbaa !9
  %6727 = getelementptr inbounds %struct.s2n_connection, ptr %6726, i32 0, i32 27
  %6728 = load ptr, ptr %6727, align 8, !tbaa !50
  %6729 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %6728, i32 0, i32 0
  store ptr %6725, ptr %6729, align 8, !tbaa !51
  br label %6730

6730:                                             ; preds = %6722
  call void @llvm.lifetime.start.p0(i64 4, ptr %147) #11
  %6731 = getelementptr inbounds %struct.s2n_blob, ptr %10, i32 0, i32 1
  %6732 = load i32, ptr %6731, align 8, !tbaa !56
  store i32 %6732, ptr %147, align 4, !tbaa !5
  %6733 = load i32, ptr %147, align 4, !tbaa !5
  %6734 = icmp ne i32 %6733, 0
  %6735 = xor i1 %6734, true
  %6736 = xor i1 %6735, true
  %6737 = zext i1 %6736 to i32
  %6738 = sext i32 %6737 to i64
  %6739 = call i64 @llvm.expect.i64(i64 %6738, i64 1)
  %6740 = icmp ne i64 %6739, 0
  br i1 %6740, label %6741, label %6794

6741:                                             ; preds = %6730
  call void @llvm.lifetime.start.p0(i64 8, ptr %148) #11
  %6742 = load ptr, ptr %145, align 8, !tbaa !9
  %6743 = getelementptr inbounds %struct.s2n_connection, ptr %6742, i32 0, i32 28
  %6744 = getelementptr inbounds %struct.s2n_secrets, ptr %6743, i32 0, i32 0
  %6745 = getelementptr inbounds %struct.s2n_tls13_secrets, ptr %6744, i32 0, i32 4
  %6746 = getelementptr inbounds [48 x i8], ptr %6745, i64 0, i64 0
  %6747 = getelementptr inbounds %struct.s2n_blob, ptr %10, i32 0, i32 0
  %6748 = load ptr, ptr %6747, align 8, !tbaa !57
  %6749 = load i32, ptr %147, align 4, !tbaa !5
  %6750 = zext i32 %6749 to i64
  %6751 = call ptr @s2n_ensure_memmove_trace(ptr noundef %6746, ptr noundef %6748, i64 noundef %6750)
  store ptr %6751, ptr %148, align 8, !tbaa !9
  br label %6752

6752:                                             ; preds = %6741
  %6753 = load ptr, ptr %148, align 8, !tbaa !9
  %6754 = icmp ne ptr %6753, null
  br i1 %6754, label %6788, label %6755

6755:                                             ; preds = %6752
  br label %6756

6756:                                             ; preds = %6755
  br label %6757

6757:                                             ; preds = %6756
  %6758 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %6759 = getelementptr inbounds %struct.s2n_debug_info, ptr %6758, i32 0, i32 0
  store ptr @.str.64, ptr %6759, align 8, !tbaa !58
  %6760 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %6761 = getelementptr inbounds %struct.s2n_debug_info, ptr %6760, i32 0, i32 0
  %6762 = load ptr, ptr %6761, align 8, !tbaa !58
  %6763 = getelementptr inbounds i8, ptr %6762, i64 21
  %6764 = call ptr @strrchr(ptr noundef %6763, i32 noundef 47) #14
  %6765 = icmp ne ptr %6764, null
  br i1 %6765, label %6766, label %6773

6766:                                             ; preds = %6757
  %6767 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %6768 = getelementptr inbounds %struct.s2n_debug_info, ptr %6767, i32 0, i32 0
  %6769 = load ptr, ptr %6768, align 8, !tbaa !58
  %6770 = getelementptr inbounds i8, ptr %6769, i64 21
  %6771 = call ptr @strrchr(ptr noundef %6770, i32 noundef 47) #14
  %6772 = getelementptr inbounds i8, ptr %6771, i64 1
  br label %6778

6773:                                             ; preds = %6757
  %6774 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %6775 = getelementptr inbounds %struct.s2n_debug_info, ptr %6774, i32 0, i32 0
  %6776 = load ptr, ptr %6775, align 8, !tbaa !58
  %6777 = getelementptr inbounds i8, ptr %6776, i64 21
  br label %6778

6778:                                             ; preds = %6773, %6766
  %6779 = phi ptr [ %6772, %6766 ], [ %6777, %6773 ]
  %6780 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %6781 = getelementptr inbounds %struct.s2n_debug_info, ptr %6780, i32 0, i32 1
  store ptr %6779, ptr %6781, align 8, !tbaa !60
  %6782 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 402653193, ptr %6782, align 4, !tbaa !5
  %6783 = call i32 @s2n_calculate_stacktrace()
  br label %6784

6784:                                             ; preds = %6778
  br label %6785

6785:                                             ; preds = %6784
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %6791

6786:                                             ; No predecessors!
  br label %6787

6787:                                             ; preds = %6786
  br label %6788

6788:                                             ; preds = %6787, %6752
  br label %6789

6789:                                             ; preds = %6788
  br label %6790

6790:                                             ; preds = %6789
  store i32 0, ptr %12, align 4
  br label %6791

6791:                                             ; preds = %6790, %6785
  call void @llvm.lifetime.end.p0(i64 8, ptr %148) #11
  %6792 = load i32, ptr %12, align 4
  switch i32 %6792, label %6795 [
    i32 0, label %6793
  ]

6793:                                             ; preds = %6791
  br label %6794

6794:                                             ; preds = %6793, %6730
  store i32 0, ptr %12, align 4
  br label %6795

6795:                                             ; preds = %6794, %6791
  call void @llvm.lifetime.end.p0(i64 4, ptr %147) #11
  %6796 = load i32, ptr %12, align 4
  switch i32 %6796, label %7433 [
    i32 0, label %6797
  ]

6797:                                             ; preds = %6795
  br label %6798

6798:                                             ; preds = %6797
  br label %6799

6799:                                             ; preds = %6798
  call void @llvm.lifetime.start.p0(i64 40, ptr %149) #11
  call void @llvm.memset.p0.i64(ptr align 8 %149, i8 0, i64 40, i1 false)
  br label %6800

6800:                                             ; preds = %6799
  %6801 = load i32, ptr @test_count, align 4, !tbaa !5
  %6802 = add nsw i32 %6801, 1
  store i32 %6802, ptr @test_count, align 4, !tbaa !5
  %6803 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %149, i32 noundef 0)
  %6804 = icmp eq i32 %6803, -1
  br i1 %6804, label %6805, label %6858

6805:                                             ; preds = %6800
  br label %6806

6806:                                             ; preds = %6805
  br label %6807

6807:                                             ; preds = %6806
  call void @llvm.lifetime.start.p0(i64 4, ptr %150) #11
  %6808 = call ptr @__errno_location() #12
  %6809 = load i32, ptr %6808, align 4, !tbaa !5
  store i32 %6809, ptr %150, align 4, !tbaa !5
  %6810 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6811 = call i32 @s2n_print_stacktrace(ptr noundef %6810)
  %6812 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6813 = trunc i8 %6812 to i1
  br i1 %6813, label %6814, label %6836

6814:                                             ; preds = %6807
  %6815 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6816 = call i32 @fileno(ptr noundef %6815) #11
  %6817 = call i32 @isatty(i32 noundef %6816) #11
  %6818 = icmp ne i32 %6817, 0
  br i1 %6818, label %6819, label %6836

6819:                                             ; preds = %6814
  %6820 = load i32, ptr %150, align 4, !tbaa !5
  %6821 = call ptr @__errno_location() #12
  store i32 %6820, ptr %6821, align 4, !tbaa !5
  %6822 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6823 = load i32, ptr @test_count, align 4, !tbaa !5
  %6824 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6825 = load i32, ptr %6824, align 4, !tbaa !5
  %6826 = call ptr @s2n_strerror(i32 noundef %6825, ptr noundef @.str.4)
  %6827 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6828 = load i32, ptr %6827, align 4, !tbaa !5
  %6829 = call ptr @s2n_strerror_debug(i32 noundef %6828, ptr noundef @.str.4)
  %6830 = call ptr @__errno_location() #12
  %6831 = load i32, ptr %6830, align 4, !tbaa !5
  %6832 = call ptr @strerror(i32 noundef %6831) #11
  %6833 = call ptr @__errno_location() #12
  %6834 = load i32, ptr %6833, align 4, !tbaa !5
  %6835 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6822, ptr noundef @.str.2, i32 noundef %6823, ptr noundef @.str.65, ptr noundef @.str.1, i32 noundef 333, ptr noundef %6826, ptr noundef %6829, ptr noundef %6832, i32 noundef %6834) #11
  br label %6853

6836:                                             ; preds = %6814, %6807
  %6837 = load i32, ptr %150, align 4, !tbaa !5
  %6838 = call ptr @__errno_location() #12
  store i32 %6837, ptr %6838, align 4, !tbaa !5
  %6839 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6840 = load i32, ptr @test_count, align 4, !tbaa !5
  %6841 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6842 = load i32, ptr %6841, align 4, !tbaa !5
  %6843 = call ptr @s2n_strerror(i32 noundef %6842, ptr noundef @.str.4)
  %6844 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6845 = load i32, ptr %6844, align 4, !tbaa !5
  %6846 = call ptr @s2n_strerror_debug(i32 noundef %6845, ptr noundef @.str.4)
  %6847 = call ptr @__errno_location() #12
  %6848 = load i32, ptr %6847, align 4, !tbaa !5
  %6849 = call ptr @strerror(i32 noundef %6848) #11
  %6850 = call ptr @__errno_location() #12
  %6851 = load i32, ptr %6850, align 4, !tbaa !5
  %6852 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6839, ptr noundef @.str.5, i32 noundef %6840, ptr noundef @.str.65, ptr noundef @.str.1, i32 noundef 333, ptr noundef %6843, ptr noundef %6846, ptr noundef %6849, i32 noundef %6851) #11
  br label %6853

6853:                                             ; preds = %6836, %6819
  call void @llvm.lifetime.end.p0(i64 4, ptr %150) #11
  br label %6854

6854:                                             ; preds = %6853
  br label %6855

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

6856:                                             ; No predecessors!
  br label %6857

6857:                                             ; preds = %6856
  br label %6858

6858:                                             ; preds = %6857, %6800
  br label %6859

6859:                                             ; preds = %6858
  br label %6860

6860:                                             ; preds = %6859
  br label %6861

6861:                                             ; preds = %6860
  %6862 = load i32, ptr @test_count, align 4, !tbaa !5
  %6863 = add nsw i32 %6862, 1
  store i32 %6863, ptr @test_count, align 4, !tbaa !5
  %6864 = load ptr, ptr %145, align 8, !tbaa !9
  %6865 = call i32 @s2n_connection_set_io_stuffers(ptr noundef %149, ptr noundef %149, ptr noundef %6864)
  %6866 = icmp eq i32 %6865, -1
  br i1 %6866, label %6867, label %6920

6867:                                             ; preds = %6861
  br label %6868

6868:                                             ; preds = %6867
  br label %6869

6869:                                             ; preds = %6868
  call void @llvm.lifetime.start.p0(i64 4, ptr %151) #11
  %6870 = call ptr @__errno_location() #12
  %6871 = load i32, ptr %6870, align 4, !tbaa !5
  store i32 %6871, ptr %151, align 4, !tbaa !5
  %6872 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6873 = call i32 @s2n_print_stacktrace(ptr noundef %6872)
  %6874 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6875 = trunc i8 %6874 to i1
  br i1 %6875, label %6876, label %6898

6876:                                             ; preds = %6869
  %6877 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6878 = call i32 @fileno(ptr noundef %6877) #11
  %6879 = call i32 @isatty(i32 noundef %6878) #11
  %6880 = icmp ne i32 %6879, 0
  br i1 %6880, label %6881, label %6898

6881:                                             ; preds = %6876
  %6882 = load i32, ptr %151, align 4, !tbaa !5
  %6883 = call ptr @__errno_location() #12
  store i32 %6882, ptr %6883, align 4, !tbaa !5
  %6884 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6885 = load i32, ptr @test_count, align 4, !tbaa !5
  %6886 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6887 = load i32, ptr %6886, align 4, !tbaa !5
  %6888 = call ptr @s2n_strerror(i32 noundef %6887, ptr noundef @.str.4)
  %6889 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6890 = load i32, ptr %6889, align 4, !tbaa !5
  %6891 = call ptr @s2n_strerror_debug(i32 noundef %6890, ptr noundef @.str.4)
  %6892 = call ptr @__errno_location() #12
  %6893 = load i32, ptr %6892, align 4, !tbaa !5
  %6894 = call ptr @strerror(i32 noundef %6893) #11
  %6895 = call ptr @__errno_location() #12
  %6896 = load i32, ptr %6895, align 4, !tbaa !5
  %6897 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6884, ptr noundef @.str.2, i32 noundef %6885, ptr noundef @.str.66, ptr noundef @.str.1, i32 noundef 334, ptr noundef %6888, ptr noundef %6891, ptr noundef %6894, i32 noundef %6896) #11
  br label %6915

6898:                                             ; preds = %6876, %6869
  %6899 = load i32, ptr %151, align 4, !tbaa !5
  %6900 = call ptr @__errno_location() #12
  store i32 %6899, ptr %6900, align 4, !tbaa !5
  %6901 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6902 = load i32, ptr @test_count, align 4, !tbaa !5
  %6903 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6904 = load i32, ptr %6903, align 4, !tbaa !5
  %6905 = call ptr @s2n_strerror(i32 noundef %6904, ptr noundef @.str.4)
  %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_debug(i32 noundef %6907, ptr noundef @.str.4)
  %6909 = call ptr @__errno_location() #12
  %6910 = load i32, ptr %6909, align 4, !tbaa !5
  %6911 = call ptr @strerror(i32 noundef %6910) #11
  %6912 = call ptr @__errno_location() #12
  %6913 = load i32, ptr %6912, align 4, !tbaa !5
  %6914 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6901, ptr noundef @.str.5, i32 noundef %6902, ptr noundef @.str.66, ptr noundef @.str.1, i32 noundef 334, ptr noundef %6905, ptr noundef %6908, ptr noundef %6911, i32 noundef %6913) #11
  br label %6915

6915:                                             ; preds = %6898, %6881
  call void @llvm.lifetime.end.p0(i64 4, ptr %151) #11
  br label %6916

6916:                                             ; preds = %6915
  br label %6917

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

6918:                                             ; No predecessors!
  br label %6919

6919:                                             ; preds = %6918
  br label %6920

6920:                                             ; preds = %6919, %6861
  br label %6921

6921:                                             ; preds = %6920
  br label %6922

6922:                                             ; preds = %6921
  br label %6923

6923:                                             ; preds = %6922
  %6924 = load i32, ptr @test_count, align 4, !tbaa !5
  %6925 = add nsw i32 %6924, 1
  store i32 %6925, ptr @test_count, align 4, !tbaa !5
  %6926 = load ptr, ptr %145, align 8, !tbaa !9
  %6927 = call i32 @s2n_connection_request_key_update(ptr noundef %6926, i32 noundef 0)
  %6928 = icmp eq i32 %6927, -1
  br i1 %6928, label %6929, label %6982

6929:                                             ; preds = %6923
  br label %6930

6930:                                             ; preds = %6929
  br label %6931

6931:                                             ; preds = %6930
  call void @llvm.lifetime.start.p0(i64 4, ptr %152) #11
  %6932 = call ptr @__errno_location() #12
  %6933 = load i32, ptr %6932, align 4, !tbaa !5
  store i32 %6933, ptr %152, align 4, !tbaa !5
  %6934 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6935 = call i32 @s2n_print_stacktrace(ptr noundef %6934)
  %6936 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6937 = trunc i8 %6936 to i1
  br i1 %6937, label %6938, label %6960

6938:                                             ; preds = %6931
  %6939 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6940 = call i32 @fileno(ptr noundef %6939) #11
  %6941 = call i32 @isatty(i32 noundef %6940) #11
  %6942 = icmp ne i32 %6941, 0
  br i1 %6942, label %6943, label %6960

6943:                                             ; preds = %6938
  %6944 = load i32, ptr %152, align 4, !tbaa !5
  %6945 = call ptr @__errno_location() #12
  store i32 %6944, ptr %6945, align 4, !tbaa !5
  %6946 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6947 = load i32, ptr @test_count, align 4, !tbaa !5
  %6948 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6949 = load i32, ptr %6948, align 4, !tbaa !5
  %6950 = call ptr @s2n_strerror(i32 noundef %6949, ptr noundef @.str.4)
  %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_debug(i32 noundef %6952, ptr noundef @.str.4)
  %6954 = call ptr @__errno_location() #12
  %6955 = load i32, ptr %6954, align 4, !tbaa !5
  %6956 = call ptr @strerror(i32 noundef %6955) #11
  %6957 = call ptr @__errno_location() #12
  %6958 = load i32, ptr %6957, align 4, !tbaa !5
  %6959 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6946, ptr noundef @.str.2, i32 noundef %6947, ptr noundef @.str.67, ptr noundef @.str.1, i32 noundef 336, ptr noundef %6950, ptr noundef %6953, ptr noundef %6956, i32 noundef %6958) #11
  br label %6977

6960:                                             ; preds = %6938, %6931
  %6961 = load i32, ptr %152, align 4, !tbaa !5
  %6962 = call ptr @__errno_location() #12
  store i32 %6961, ptr %6962, align 4, !tbaa !5
  %6963 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6964 = load i32, ptr @test_count, align 4, !tbaa !5
  %6965 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6966 = load i32, ptr %6965, align 4, !tbaa !5
  %6967 = call ptr @s2n_strerror(i32 noundef %6966, ptr noundef @.str.4)
  %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_debug(i32 noundef %6969, ptr noundef @.str.4)
  %6971 = call ptr @__errno_location() #12
  %6972 = load i32, ptr %6971, align 4, !tbaa !5
  %6973 = call ptr @strerror(i32 noundef %6972) #11
  %6974 = call ptr @__errno_location() #12
  %6975 = load i32, ptr %6974, align 4, !tbaa !5
  %6976 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6963, ptr noundef @.str.5, i32 noundef %6964, ptr noundef @.str.67, ptr noundef @.str.1, i32 noundef 336, ptr noundef %6967, ptr noundef %6970, ptr noundef %6973, i32 noundef %6975) #11
  br label %6977

6977:                                             ; preds = %6960, %6943
  call void @llvm.lifetime.end.p0(i64 4, ptr %152) #11
  br label %6978

6978:                                             ; preds = %6977
  br label %6979

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

6980:                                             ; No predecessors!
  br label %6981

6981:                                             ; preds = %6980
  br label %6982

6982:                                             ; preds = %6981, %6923
  br label %6983

6983:                                             ; preds = %6982
  br label %6984

6984:                                             ; preds = %6983
  call void @llvm.lifetime.start.p0(i64 4, ptr %153) #11
  store i32 0, ptr %153, align 4, !tbaa !5
  br label %6985

6985:                                             ; preds = %6984
  %6986 = load i32, ptr @test_count, align 4, !tbaa !5
  %6987 = add nsw i32 %6986, 1
  store i32 %6987, ptr @test_count, align 4, !tbaa !5
  %6988 = load ptr, ptr %145, align 8, !tbaa !9
  %6989 = call i32 @s2n_key_update_send(ptr noundef %6988, ptr noundef %153)
  %6990 = icmp eq i32 %6989, -1
  br i1 %6990, label %6991, label %7044

6991:                                             ; preds = %6985
  br label %6992

6992:                                             ; preds = %6991
  br label %6993

6993:                                             ; preds = %6992
  call void @llvm.lifetime.start.p0(i64 4, ptr %154) #11
  %6994 = call ptr @__errno_location() #12
  %6995 = load i32, ptr %6994, align 4, !tbaa !5
  store i32 %6995, ptr %154, align 4, !tbaa !5
  %6996 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6997 = call i32 @s2n_print_stacktrace(ptr noundef %6996)
  %6998 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6999 = trunc i8 %6998 to i1
  br i1 %6999, label %7000, label %7022

7000:                                             ; preds = %6993
  %7001 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7002 = call i32 @fileno(ptr noundef %7001) #11
  %7003 = call i32 @isatty(i32 noundef %7002) #11
  %7004 = icmp ne i32 %7003, 0
  br i1 %7004, label %7005, label %7022

7005:                                             ; preds = %7000
  %7006 = load i32, ptr %154, align 4, !tbaa !5
  %7007 = call ptr @__errno_location() #12
  store i32 %7006, ptr %7007, align 4, !tbaa !5
  %7008 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7009 = load i32, ptr @test_count, align 4, !tbaa !5
  %7010 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7011 = load i32, ptr %7010, align 4, !tbaa !5
  %7012 = call ptr @s2n_strerror(i32 noundef %7011, ptr noundef @.str.4)
  %7013 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7014 = load i32, ptr %7013, align 4, !tbaa !5
  %7015 = call ptr @s2n_strerror_debug(i32 noundef %7014, ptr noundef @.str.4)
  %7016 = call ptr @__errno_location() #12
  %7017 = load i32, ptr %7016, align 4, !tbaa !5
  %7018 = call ptr @strerror(i32 noundef %7017) #11
  %7019 = call ptr @__errno_location() #12
  %7020 = load i32, ptr %7019, align 4, !tbaa !5
  %7021 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7008, ptr noundef @.str.2, i32 noundef %7009, ptr noundef @.str.68, ptr noundef @.str.1, i32 noundef 339, ptr noundef %7012, ptr noundef %7015, ptr noundef %7018, i32 noundef %7020) #11
  br label %7039

7022:                                             ; preds = %7000, %6993
  %7023 = load i32, ptr %154, align 4, !tbaa !5
  %7024 = call ptr @__errno_location() #12
  store i32 %7023, ptr %7024, align 4, !tbaa !5
  %7025 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7026 = load i32, ptr @test_count, align 4, !tbaa !5
  %7027 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7028 = load i32, ptr %7027, align 4, !tbaa !5
  %7029 = call ptr @s2n_strerror(i32 noundef %7028, ptr noundef @.str.4)
  %7030 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7031 = load i32, ptr %7030, align 4, !tbaa !5
  %7032 = call ptr @s2n_strerror_debug(i32 noundef %7031, ptr noundef @.str.4)
  %7033 = call ptr @__errno_location() #12
  %7034 = load i32, ptr %7033, align 4, !tbaa !5
  %7035 = call ptr @strerror(i32 noundef %7034) #11
  %7036 = call ptr @__errno_location() #12
  %7037 = load i32, ptr %7036, align 4, !tbaa !5
  %7038 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7025, ptr noundef @.str.5, i32 noundef %7026, ptr noundef @.str.68, ptr noundef @.str.1, i32 noundef 339, ptr noundef %7029, ptr noundef %7032, ptr noundef %7035, i32 noundef %7037) #11
  br label %7039

7039:                                             ; preds = %7022, %7005
  call void @llvm.lifetime.end.p0(i64 4, ptr %154) #11
  br label %7040

7040:                                             ; preds = %7039
  br label %7041

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

7042:                                             ; No predecessors!
  br label %7043

7043:                                             ; preds = %7042
  br label %7044

7044:                                             ; preds = %7043, %6985
  br label %7045

7045:                                             ; preds = %7044
  br label %7046

7046:                                             ; preds = %7045
  br label %7047

7047:                                             ; preds = %7046
  %7048 = load i32, ptr @test_count, align 4, !tbaa !5
  %7049 = add nsw i32 %7048, 1
  store i32 %7049, ptr @test_count, align 4, !tbaa !5
  %7050 = load ptr, ptr %145, align 8, !tbaa !9
  %7051 = getelementptr inbounds %struct.s2n_connection, ptr %7050, i32 0, i32 94
  %7052 = call zeroext i1 @s2n_atomic_flag_test(ptr noundef %7051)
  %7053 = zext i1 %7052 to i32
  %7054 = icmp eq i32 %7053, 0
  br i1 %7054, label %7108, label %7055

7055:                                             ; preds = %7047
  br label %7056

7056:                                             ; preds = %7055
  br label %7057

7057:                                             ; preds = %7056
  call void @llvm.lifetime.start.p0(i64 4, ptr %155) #11
  %7058 = call ptr @__errno_location() #12
  %7059 = load i32, ptr %7058, align 4, !tbaa !5
  store i32 %7059, ptr %155, align 4, !tbaa !5
  %7060 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7061 = call i32 @s2n_print_stacktrace(ptr noundef %7060)
  %7062 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7063 = trunc i8 %7062 to i1
  br i1 %7063, label %7064, label %7086

7064:                                             ; preds = %7057
  %7065 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7066 = call i32 @fileno(ptr noundef %7065) #11
  %7067 = call i32 @isatty(i32 noundef %7066) #11
  %7068 = icmp ne i32 %7067, 0
  br i1 %7068, label %7069, label %7086

7069:                                             ; preds = %7064
  %7070 = load i32, ptr %155, align 4, !tbaa !5
  %7071 = call ptr @__errno_location() #12
  store i32 %7070, ptr %7071, align 4, !tbaa !5
  %7072 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7073 = load i32, ptr @test_count, align 4, !tbaa !5
  %7074 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7075 = load i32, ptr %7074, align 4, !tbaa !5
  %7076 = call ptr @s2n_strerror(i32 noundef %7075, ptr noundef @.str.4)
  %7077 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7078 = load i32, ptr %7077, align 4, !tbaa !5
  %7079 = call ptr @s2n_strerror_debug(i32 noundef %7078, ptr noundef @.str.4)
  %7080 = call ptr @__errno_location() #12
  %7081 = load i32, ptr %7080, align 4, !tbaa !5
  %7082 = call ptr @strerror(i32 noundef %7081) #11
  %7083 = call ptr @__errno_location() #12
  %7084 = load i32, ptr %7083, align 4, !tbaa !5
  %7085 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7072, ptr noundef @.str.2, i32 noundef %7073, ptr noundef @.str.69, ptr noundef @.str.1, i32 noundef 341, ptr noundef %7076, ptr noundef %7079, ptr noundef %7082, i32 noundef %7084) #11
  br label %7103

7086:                                             ; preds = %7064, %7057
  %7087 = load i32, ptr %155, align 4, !tbaa !5
  %7088 = call ptr @__errno_location() #12
  store i32 %7087, ptr %7088, align 4, !tbaa !5
  %7089 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7090 = load i32, ptr @test_count, align 4, !tbaa !5
  %7091 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7092 = load i32, ptr %7091, align 4, !tbaa !5
  %7093 = call ptr @s2n_strerror(i32 noundef %7092, ptr noundef @.str.4)
  %7094 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7095 = load i32, ptr %7094, align 4, !tbaa !5
  %7096 = call ptr @s2n_strerror_debug(i32 noundef %7095, ptr noundef @.str.4)
  %7097 = call ptr @__errno_location() #12
  %7098 = load i32, ptr %7097, align 4, !tbaa !5
  %7099 = call ptr @strerror(i32 noundef %7098) #11
  %7100 = call ptr @__errno_location() #12
  %7101 = load i32, ptr %7100, align 4, !tbaa !5
  %7102 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7089, ptr noundef @.str.5, i32 noundef %7090, ptr noundef @.str.69, ptr noundef @.str.1, i32 noundef 341, ptr noundef %7093, ptr noundef %7096, ptr noundef %7099, i32 noundef %7101) #11
  br label %7103

7103:                                             ; preds = %7086, %7069
  call void @llvm.lifetime.end.p0(i64 4, ptr %155) #11
  br label %7104

7104:                                             ; preds = %7103
  br label %7105

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

7106:                                             ; No predecessors!
  br label %7107

7107:                                             ; preds = %7106
  br label %7108

7108:                                             ; preds = %7107, %7047
  br label %7109

7109:                                             ; preds = %7108
  br label %7110

7110:                                             ; preds = %7109
  br label %7111

7111:                                             ; preds = %7110
  br label %7112

7112:                                             ; preds = %7111
  %7113 = load i32, ptr @test_count, align 4, !tbaa !5
  %7114 = add nsw i32 %7113, 1
  store i32 %7114, ptr @test_count, align 4, !tbaa !5
  %7115 = load ptr, ptr %145, align 8, !tbaa !9
  %7116 = getelementptr inbounds %struct.s2n_connection, ptr %7115, i32 0, i32 27
  %7117 = load ptr, ptr %7116, align 8, !tbaa !50
  %7118 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %7117, i32 0, i32 7
  %7119 = getelementptr inbounds [8 x i8], ptr %7118, i64 0, i64 0
  %7120 = getelementptr inbounds [8 x i8], ptr %18, i64 0, i64 0
  %7121 = call i32 @memcmp(ptr noundef %7119, ptr noundef %7120, i64 noundef 8) #14
  %7122 = icmp eq i32 %7121, 0
  br i1 %7122, label %7176, label %7123

7123:                                             ; preds = %7112
  br label %7124

7124:                                             ; preds = %7123
  br label %7125

7125:                                             ; preds = %7124
  call void @llvm.lifetime.start.p0(i64 4, ptr %156) #11
  %7126 = call ptr @__errno_location() #12
  %7127 = load i32, ptr %7126, align 4, !tbaa !5
  store i32 %7127, ptr %156, align 4, !tbaa !5
  %7128 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7129 = call i32 @s2n_print_stacktrace(ptr noundef %7128)
  %7130 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7131 = trunc i8 %7130 to i1
  br i1 %7131, label %7132, label %7154

7132:                                             ; preds = %7125
  %7133 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7134 = call i32 @fileno(ptr noundef %7133) #11
  %7135 = call i32 @isatty(i32 noundef %7134) #11
  %7136 = icmp ne i32 %7135, 0
  br i1 %7136, label %7137, label %7154

7137:                                             ; preds = %7132
  %7138 = load i32, ptr %156, align 4, !tbaa !5
  %7139 = call ptr @__errno_location() #12
  store i32 %7138, ptr %7139, align 4, !tbaa !5
  %7140 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7141 = load i32, ptr @test_count, align 4, !tbaa !5
  %7142 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7143 = load i32, ptr %7142, align 4, !tbaa !5
  %7144 = call ptr @s2n_strerror(i32 noundef %7143, ptr noundef @.str.4)
  %7145 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7146 = load i32, ptr %7145, align 4, !tbaa !5
  %7147 = call ptr @s2n_strerror_debug(i32 noundef %7146, ptr noundef @.str.4)
  %7148 = call ptr @__errno_location() #12
  %7149 = load i32, ptr %7148, align 4, !tbaa !5
  %7150 = call ptr @strerror(i32 noundef %7149) #11
  %7151 = call ptr @__errno_location() #12
  %7152 = load i32, ptr %7151, align 4, !tbaa !5
  %7153 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7140, ptr noundef @.str.2, i32 noundef %7141, ptr noundef @.str.70, ptr noundef @.str.1, i32 noundef 342, ptr noundef %7144, ptr noundef %7147, ptr noundef %7150, i32 noundef %7152) #11
  br label %7171

7154:                                             ; preds = %7132, %7125
  %7155 = load i32, ptr %156, align 4, !tbaa !5
  %7156 = call ptr @__errno_location() #12
  store i32 %7155, ptr %7156, align 4, !tbaa !5
  %7157 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7158 = load i32, ptr @test_count, align 4, !tbaa !5
  %7159 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7160 = load i32, ptr %7159, align 4, !tbaa !5
  %7161 = call ptr @s2n_strerror(i32 noundef %7160, ptr noundef @.str.4)
  %7162 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7163 = load i32, ptr %7162, align 4, !tbaa !5
  %7164 = call ptr @s2n_strerror_debug(i32 noundef %7163, ptr noundef @.str.4)
  %7165 = call ptr @__errno_location() #12
  %7166 = load i32, ptr %7165, align 4, !tbaa !5
  %7167 = call ptr @strerror(i32 noundef %7166) #11
  %7168 = call ptr @__errno_location() #12
  %7169 = load i32, ptr %7168, align 4, !tbaa !5
  %7170 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7157, ptr noundef @.str.5, i32 noundef %7158, ptr noundef @.str.70, ptr noundef @.str.1, i32 noundef 342, ptr noundef %7161, ptr noundef %7164, ptr noundef %7167, i32 noundef %7169) #11
  br label %7171

7171:                                             ; preds = %7154, %7137
  call void @llvm.lifetime.end.p0(i64 4, ptr %156) #11
  br label %7172

7172:                                             ; preds = %7171
  br label %7173

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

7174:                                             ; No predecessors!
  br label %7175

7175:                                             ; preds = %7174
  br label %7176

7176:                                             ; preds = %7175, %7112
  br label %7177

7177:                                             ; preds = %7176
  br label %7178

7178:                                             ; preds = %7177
  br label %7179

7179:                                             ; preds = %7178
  br label %7180

7180:                                             ; preds = %7179
  br label %7181

7181:                                             ; preds = %7180
  %7182 = load i32, ptr @test_count, align 4, !tbaa !5
  %7183 = add nsw i32 %7182, 1
  store i32 %7183, ptr @test_count, align 4, !tbaa !5
  %7184 = getelementptr inbounds %struct.s2n_stuffer, ptr %149, i32 0, i32 2
  %7185 = load i32, ptr %7184, align 4, !tbaa !22
  %7186 = getelementptr inbounds %struct.s2n_stuffer, ptr %149, i32 0, i32 1
  %7187 = load i32, ptr %7186, align 8, !tbaa !25
  %7188 = sub i32 %7185, %7187
  %7189 = icmp ugt i32 %7188, 0
  br i1 %7189, label %7243, label %7190

7190:                                             ; preds = %7181
  br label %7191

7191:                                             ; preds = %7190
  br label %7192

7192:                                             ; preds = %7191
  call void @llvm.lifetime.start.p0(i64 4, ptr %157) #11
  %7193 = call ptr @__errno_location() #12
  %7194 = load i32, ptr %7193, align 4, !tbaa !5
  store i32 %7194, ptr %157, align 4, !tbaa !5
  %7195 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7196 = call i32 @s2n_print_stacktrace(ptr noundef %7195)
  %7197 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7198 = trunc i8 %7197 to i1
  br i1 %7198, label %7199, label %7221

7199:                                             ; preds = %7192
  %7200 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7201 = call i32 @fileno(ptr noundef %7200) #11
  %7202 = call i32 @isatty(i32 noundef %7201) #11
  %7203 = icmp ne i32 %7202, 0
  br i1 %7203, label %7204, label %7221

7204:                                             ; preds = %7199
  %7205 = load i32, ptr %157, align 4, !tbaa !5
  %7206 = call ptr @__errno_location() #12
  store i32 %7205, ptr %7206, align 4, !tbaa !5
  %7207 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7208 = load i32, ptr @test_count, align 4, !tbaa !5
  %7209 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7210 = load i32, ptr %7209, align 4, !tbaa !5
  %7211 = call ptr @s2n_strerror(i32 noundef %7210, ptr noundef @.str.4)
  %7212 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7213 = load i32, ptr %7212, align 4, !tbaa !5
  %7214 = call ptr @s2n_strerror_debug(i32 noundef %7213, ptr noundef @.str.4)
  %7215 = call ptr @__errno_location() #12
  %7216 = load i32, ptr %7215, align 4, !tbaa !5
  %7217 = call ptr @strerror(i32 noundef %7216) #11
  %7218 = call ptr @__errno_location() #12
  %7219 = load i32, ptr %7218, align 4, !tbaa !5
  %7220 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7207, ptr noundef @.str.2, i32 noundef %7208, ptr noundef @.str.71, ptr noundef @.str.1, i32 noundef 343, ptr noundef %7211, ptr noundef %7214, ptr noundef %7217, i32 noundef %7219) #11
  br label %7238

7221:                                             ; preds = %7199, %7192
  %7222 = load i32, ptr %157, align 4, !tbaa !5
  %7223 = call ptr @__errno_location() #12
  store i32 %7222, ptr %7223, align 4, !tbaa !5
  %7224 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7225 = load i32, ptr @test_count, align 4, !tbaa !5
  %7226 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7227 = load i32, ptr %7226, align 4, !tbaa !5
  %7228 = call ptr @s2n_strerror(i32 noundef %7227, ptr noundef @.str.4)
  %7229 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7230 = load i32, ptr %7229, align 4, !tbaa !5
  %7231 = call ptr @s2n_strerror_debug(i32 noundef %7230, ptr noundef @.str.4)
  %7232 = call ptr @__errno_location() #12
  %7233 = load i32, ptr %7232, align 4, !tbaa !5
  %7234 = call ptr @strerror(i32 noundef %7233) #11
  %7235 = call ptr @__errno_location() #12
  %7236 = load i32, ptr %7235, align 4, !tbaa !5
  %7237 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7224, ptr noundef @.str.5, i32 noundef %7225, ptr noundef @.str.71, ptr noundef @.str.1, i32 noundef 343, ptr noundef %7228, ptr noundef %7231, ptr noundef %7234, i32 noundef %7236) #11
  br label %7238

7238:                                             ; preds = %7221, %7204
  call void @llvm.lifetime.end.p0(i64 4, ptr %157) #11
  br label %7239

7239:                                             ; preds = %7238
  br label %7240

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

7241:                                             ; No predecessors!
  br label %7242

7242:                                             ; preds = %7241
  br label %7243

7243:                                             ; preds = %7242, %7181
  br label %7244

7244:                                             ; preds = %7243
  br label %7245

7245:                                             ; preds = %7244
  br label %7246

7246:                                             ; preds = %7245
  %7247 = load i32, ptr @test_count, align 4, !tbaa !5
  %7248 = add nsw i32 %7247, 1
  store i32 %7248, ptr @test_count, align 4, !tbaa !5
  %7249 = load ptr, ptr %145, align 8, !tbaa !9
  %7250 = getelementptr inbounds %struct.s2n_connection, ptr %7249, i32 0, i32 95
  %7251 = load i8, ptr %7250, align 4, !tbaa !62
  %7252 = zext i8 %7251 to i32
  %7253 = icmp eq i32 %7252, 1
  br i1 %7253, label %7307, label %7254

7254:                                             ; preds = %7246
  br label %7255

7255:                                             ; preds = %7254
  br label %7256

7256:                                             ; preds = %7255
  call void @llvm.lifetime.start.p0(i64 4, ptr %158) #11
  %7257 = call ptr @__errno_location() #12
  %7258 = load i32, ptr %7257, align 4, !tbaa !5
  store i32 %7258, ptr %158, align 4, !tbaa !5
  %7259 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7260 = call i32 @s2n_print_stacktrace(ptr noundef %7259)
  %7261 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7262 = trunc i8 %7261 to i1
  br i1 %7262, label %7263, label %7285

7263:                                             ; preds = %7256
  %7264 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7265 = call i32 @fileno(ptr noundef %7264) #11
  %7266 = call i32 @isatty(i32 noundef %7265) #11
  %7267 = icmp ne i32 %7266, 0
  br i1 %7267, label %7268, label %7285

7268:                                             ; preds = %7263
  %7269 = load i32, ptr %158, align 4, !tbaa !5
  %7270 = call ptr @__errno_location() #12
  store i32 %7269, ptr %7270, align 4, !tbaa !5
  %7271 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7272 = load i32, ptr @test_count, align 4, !tbaa !5
  %7273 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7274 = load i32, ptr %7273, align 4, !tbaa !5
  %7275 = call ptr @s2n_strerror(i32 noundef %7274, ptr noundef @.str.4)
  %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_debug(i32 noundef %7277, ptr noundef @.str.4)
  %7279 = call ptr @__errno_location() #12
  %7280 = load i32, ptr %7279, align 4, !tbaa !5
  %7281 = call ptr @strerror(i32 noundef %7280) #11
  %7282 = call ptr @__errno_location() #12
  %7283 = load i32, ptr %7282, align 4, !tbaa !5
  %7284 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7271, ptr noundef @.str.2, i32 noundef %7272, ptr noundef @.str.72, ptr noundef @.str.1, i32 noundef 344, ptr noundef %7275, ptr noundef %7278, ptr noundef %7281, i32 noundef %7283) #11
  br label %7302

7285:                                             ; preds = %7263, %7256
  %7286 = load i32, ptr %158, align 4, !tbaa !5
  %7287 = call ptr @__errno_location() #12
  store i32 %7286, ptr %7287, align 4, !tbaa !5
  %7288 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7289 = load i32, ptr @test_count, align 4, !tbaa !5
  %7290 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7291 = load i32, ptr %7290, align 4, !tbaa !5
  %7292 = call ptr @s2n_strerror(i32 noundef %7291, ptr noundef @.str.4)
  %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_debug(i32 noundef %7294, ptr noundef @.str.4)
  %7296 = call ptr @__errno_location() #12
  %7297 = load i32, ptr %7296, align 4, !tbaa !5
  %7298 = call ptr @strerror(i32 noundef %7297) #11
  %7299 = call ptr @__errno_location() #12
  %7300 = load i32, ptr %7299, align 4, !tbaa !5
  %7301 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7288, ptr noundef @.str.5, i32 noundef %7289, ptr noundef @.str.72, ptr noundef @.str.1, i32 noundef 344, ptr noundef %7292, ptr noundef %7295, ptr noundef %7298, i32 noundef %7300) #11
  br label %7302

7302:                                             ; preds = %7285, %7268
  call void @llvm.lifetime.end.p0(i64 4, ptr %158) #11
  br label %7303

7303:                                             ; preds = %7302
  br label %7304

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

7305:                                             ; No predecessors!
  br label %7306

7306:                                             ; preds = %7305
  br label %7307

7307:                                             ; preds = %7306, %7246
  br label %7308

7308:                                             ; preds = %7307
  br label %7309

7309:                                             ; preds = %7308
  br label %7310

7310:                                             ; preds = %7309
  %7311 = load i32, ptr @test_count, align 4, !tbaa !5
  %7312 = add nsw i32 %7311, 1
  store i32 %7312, ptr @test_count, align 4, !tbaa !5
  %7313 = call i32 @s2n_stuffer_free(ptr noundef %149)
  %7314 = icmp eq i32 %7313, -1
  br i1 %7314, label %7315, label %7368

7315:                                             ; preds = %7310
  br label %7316

7316:                                             ; preds = %7315
  br label %7317

7317:                                             ; preds = %7316
  call void @llvm.lifetime.start.p0(i64 4, ptr %159) #11
  %7318 = call ptr @__errno_location() #12
  %7319 = load i32, ptr %7318, align 4, !tbaa !5
  store i32 %7319, ptr %159, align 4, !tbaa !5
  %7320 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7321 = call i32 @s2n_print_stacktrace(ptr noundef %7320)
  %7322 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7323 = trunc i8 %7322 to i1
  br i1 %7323, label %7324, label %7346

7324:                                             ; preds = %7317
  %7325 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7326 = call i32 @fileno(ptr noundef %7325) #11
  %7327 = call i32 @isatty(i32 noundef %7326) #11
  %7328 = icmp ne i32 %7327, 0
  br i1 %7328, label %7329, label %7346

7329:                                             ; preds = %7324
  %7330 = load i32, ptr %159, align 4, !tbaa !5
  %7331 = call ptr @__errno_location() #12
  store i32 %7330, ptr %7331, align 4, !tbaa !5
  %7332 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7333 = load i32, ptr @test_count, align 4, !tbaa !5
  %7334 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7335 = load i32, ptr %7334, align 4, !tbaa !5
  %7336 = call ptr @s2n_strerror(i32 noundef %7335, ptr noundef @.str.4)
  %7337 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7338 = load i32, ptr %7337, align 4, !tbaa !5
  %7339 = call ptr @s2n_strerror_debug(i32 noundef %7338, ptr noundef @.str.4)
  %7340 = call ptr @__errno_location() #12
  %7341 = load i32, ptr %7340, align 4, !tbaa !5
  %7342 = call ptr @strerror(i32 noundef %7341) #11
  %7343 = call ptr @__errno_location() #12
  %7344 = load i32, ptr %7343, align 4, !tbaa !5
  %7345 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7332, ptr noundef @.str.2, i32 noundef %7333, ptr noundef @.str.73, ptr noundef @.str.1, i32 noundef 346, ptr noundef %7336, ptr noundef %7339, ptr noundef %7342, i32 noundef %7344) #11
  br label %7363

7346:                                             ; preds = %7324, %7317
  %7347 = load i32, ptr %159, align 4, !tbaa !5
  %7348 = call ptr @__errno_location() #12
  store i32 %7347, ptr %7348, align 4, !tbaa !5
  %7349 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7350 = load i32, ptr @test_count, align 4, !tbaa !5
  %7351 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7352 = load i32, ptr %7351, align 4, !tbaa !5
  %7353 = call ptr @s2n_strerror(i32 noundef %7352, ptr noundef @.str.4)
  %7354 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7355 = load i32, ptr %7354, align 4, !tbaa !5
  %7356 = call ptr @s2n_strerror_debug(i32 noundef %7355, ptr noundef @.str.4)
  %7357 = call ptr @__errno_location() #12
  %7358 = load i32, ptr %7357, align 4, !tbaa !5
  %7359 = call ptr @strerror(i32 noundef %7358) #11
  %7360 = call ptr @__errno_location() #12
  %7361 = load i32, ptr %7360, align 4, !tbaa !5
  %7362 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7349, ptr noundef @.str.5, i32 noundef %7350, ptr noundef @.str.73, ptr noundef @.str.1, i32 noundef 346, ptr noundef %7353, ptr noundef %7356, ptr noundef %7359, i32 noundef %7361) #11
  br label %7363

7363:                                             ; preds = %7346, %7329
  call void @llvm.lifetime.end.p0(i64 4, ptr %159) #11
  br label %7364

7364:                                             ; preds = %7363
  br label %7365

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

7366:                                             ; No predecessors!
  br label %7367

7367:                                             ; preds = %7366
  br label %7368

7368:                                             ; preds = %7367, %7310
  br label %7369

7369:                                             ; preds = %7368
  br label %7370

7370:                                             ; preds = %7369
  br label %7371

7371:                                             ; preds = %7370
  %7372 = load i32, ptr @test_count, align 4, !tbaa !5
  %7373 = add nsw i32 %7372, 1
  store i32 %7373, ptr @test_count, align 4, !tbaa !5
  %7374 = load ptr, ptr %145, align 8, !tbaa !9
  %7375 = call i32 @s2n_connection_free(ptr noundef %7374)
  %7376 = icmp eq i32 %7375, -1
  br i1 %7376, label %7377, label %7430

7377:                                             ; preds = %7371
  br label %7378

7378:                                             ; preds = %7377
  br label %7379

7379:                                             ; preds = %7378
  call void @llvm.lifetime.start.p0(i64 4, ptr %160) #11
  %7380 = call ptr @__errno_location() #12
  %7381 = load i32, ptr %7380, align 4, !tbaa !5
  store i32 %7381, ptr %160, align 4, !tbaa !5
  %7382 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7383 = call i32 @s2n_print_stacktrace(ptr noundef %7382)
  %7384 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7385 = trunc i8 %7384 to i1
  br i1 %7385, label %7386, label %7408

7386:                                             ; preds = %7379
  %7387 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7388 = call i32 @fileno(ptr noundef %7387) #11
  %7389 = call i32 @isatty(i32 noundef %7388) #11
  %7390 = icmp ne i32 %7389, 0
  br i1 %7390, label %7391, label %7408

7391:                                             ; preds = %7386
  %7392 = load i32, ptr %160, align 4, !tbaa !5
  %7393 = call ptr @__errno_location() #12
  store i32 %7392, ptr %7393, align 4, !tbaa !5
  %7394 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7395 = load i32, ptr @test_count, align 4, !tbaa !5
  %7396 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7397 = load i32, ptr %7396, align 4, !tbaa !5
  %7398 = call ptr @s2n_strerror(i32 noundef %7397, ptr noundef @.str.4)
  %7399 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7400 = load i32, ptr %7399, align 4, !tbaa !5
  %7401 = call ptr @s2n_strerror_debug(i32 noundef %7400, ptr noundef @.str.4)
  %7402 = call ptr @__errno_location() #12
  %7403 = load i32, ptr %7402, align 4, !tbaa !5
  %7404 = call ptr @strerror(i32 noundef %7403) #11
  %7405 = call ptr @__errno_location() #12
  %7406 = load i32, ptr %7405, align 4, !tbaa !5
  %7407 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7394, ptr noundef @.str.2, i32 noundef %7395, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 347, ptr noundef %7398, ptr noundef %7401, ptr noundef %7404, i32 noundef %7406) #11
  br label %7425

7408:                                             ; preds = %7386, %7379
  %7409 = load i32, ptr %160, align 4, !tbaa !5
  %7410 = call ptr @__errno_location() #12
  store i32 %7409, ptr %7410, align 4, !tbaa !5
  %7411 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7412 = load i32, ptr @test_count, align 4, !tbaa !5
  %7413 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7414 = load i32, ptr %7413, align 4, !tbaa !5
  %7415 = call ptr @s2n_strerror(i32 noundef %7414, ptr noundef @.str.4)
  %7416 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7417 = load i32, ptr %7416, align 4, !tbaa !5
  %7418 = call ptr @s2n_strerror_debug(i32 noundef %7417, ptr noundef @.str.4)
  %7419 = call ptr @__errno_location() #12
  %7420 = load i32, ptr %7419, align 4, !tbaa !5
  %7421 = call ptr @strerror(i32 noundef %7420) #11
  %7422 = call ptr @__errno_location() #12
  %7423 = load i32, ptr %7422, align 4, !tbaa !5
  %7424 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7411, ptr noundef @.str.5, i32 noundef %7412, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 347, ptr noundef %7415, ptr noundef %7418, ptr noundef %7421, i32 noundef %7423) #11
  br label %7425

7425:                                             ; preds = %7408, %7391
  call void @llvm.lifetime.end.p0(i64 4, ptr %160) #11
  br label %7426

7426:                                             ; preds = %7425
  br label %7427

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

7428:                                             ; No predecessors!
  br label %7429

7429:                                             ; preds = %7428
  br label %7430

7430:                                             ; preds = %7429, %7371
  br label %7431

7431:                                             ; preds = %7430
  br label %7432

7432:                                             ; preds = %7431
  call void @llvm.lifetime.end.p0(i64 4, ptr %153) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr %149) #11
  store i32 0, ptr %12, align 4
  br label %7433

7433:                                             ; preds = %7432, %6795
  call void @llvm.lifetime.end.p0(i64 8, ptr %145) #11
  %7434 = load i32, ptr %12, align 4
  switch i32 %7434, label %15412 [
    i32 0, label %7435
  ]

7435:                                             ; preds = %7433
  call void @llvm.lifetime.start.p0(i64 8, ptr %161) #11
  store ptr null, ptr %161, align 8, !tbaa !9
  br label %7436

7436:                                             ; preds = %7435
  %7437 = load i32, ptr @test_count, align 4, !tbaa !5
  %7438 = add nsw i32 %7437, 1
  store i32 %7438, ptr @test_count, align 4, !tbaa !5
  %7439 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %7439, ptr %161, align 8, !tbaa !9
  %7440 = icmp eq ptr %7439, null
  br i1 %7440, label %7441, label %7494

7441:                                             ; preds = %7436
  br label %7442

7442:                                             ; preds = %7441
  br label %7443

7443:                                             ; preds = %7442
  call void @llvm.lifetime.start.p0(i64 4, ptr %162) #11
  %7444 = call ptr @__errno_location() #12
  %7445 = load i32, ptr %7444, align 4, !tbaa !5
  store i32 %7445, ptr %162, align 4, !tbaa !5
  %7446 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7447 = call i32 @s2n_print_stacktrace(ptr noundef %7446)
  %7448 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7449 = trunc i8 %7448 to i1
  br i1 %7449, label %7450, label %7472

7450:                                             ; preds = %7443
  %7451 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7452 = call i32 @fileno(ptr noundef %7451) #11
  %7453 = call i32 @isatty(i32 noundef %7452) #11
  %7454 = icmp ne i32 %7453, 0
  br i1 %7454, label %7455, label %7472

7455:                                             ; preds = %7450
  %7456 = load i32, ptr %162, align 4, !tbaa !5
  %7457 = call ptr @__errno_location() #12
  store i32 %7456, ptr %7457, align 4, !tbaa !5
  %7458 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7459 = load i32, ptr @test_count, align 4, !tbaa !5
  %7460 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7461 = load i32, ptr %7460, align 4, !tbaa !5
  %7462 = call ptr @s2n_strerror(i32 noundef %7461, ptr noundef @.str.4)
  %7463 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7464 = load i32, ptr %7463, align 4, !tbaa !5
  %7465 = call ptr @s2n_strerror_debug(i32 noundef %7464, ptr noundef @.str.4)
  %7466 = call ptr @__errno_location() #12
  %7467 = load i32, ptr %7466, align 4, !tbaa !5
  %7468 = call ptr @strerror(i32 noundef %7467) #11
  %7469 = call ptr @__errno_location() #12
  %7470 = load i32, ptr %7469, align 4, !tbaa !5
  %7471 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7458, ptr noundef @.str.2, i32 noundef %7459, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 353, ptr noundef %7462, ptr noundef %7465, ptr noundef %7468, i32 noundef %7470) #11
  br label %7489

7472:                                             ; preds = %7450, %7443
  %7473 = load i32, ptr %162, align 4, !tbaa !5
  %7474 = call ptr @__errno_location() #12
  store i32 %7473, ptr %7474, align 4, !tbaa !5
  %7475 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7476 = load i32, ptr @test_count, align 4, !tbaa !5
  %7477 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7478 = load i32, ptr %7477, align 4, !tbaa !5
  %7479 = call ptr @s2n_strerror(i32 noundef %7478, ptr noundef @.str.4)
  %7480 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7481 = load i32, ptr %7480, align 4, !tbaa !5
  %7482 = call ptr @s2n_strerror_debug(i32 noundef %7481, ptr noundef @.str.4)
  %7483 = call ptr @__errno_location() #12
  %7484 = load i32, ptr %7483, align 4, !tbaa !5
  %7485 = call ptr @strerror(i32 noundef %7484) #11
  %7486 = call ptr @__errno_location() #12
  %7487 = load i32, ptr %7486, align 4, !tbaa !5
  %7488 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7475, ptr noundef @.str.5, i32 noundef %7476, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 353, ptr noundef %7479, ptr noundef %7482, ptr noundef %7485, i32 noundef %7487) #11
  br label %7489

7489:                                             ; preds = %7472, %7455
  call void @llvm.lifetime.end.p0(i64 4, ptr %162) #11
  br label %7490

7490:                                             ; preds = %7489
  br label %7491

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

7492:                                             ; No predecessors!
  br label %7493

7493:                                             ; preds = %7492
  br label %7494

7494:                                             ; preds = %7493, %7436
  br label %7495

7495:                                             ; preds = %7494
  br label %7496

7496:                                             ; preds = %7495
  %7497 = load ptr, ptr %161, align 8, !tbaa !9
  %7498 = getelementptr inbounds %struct.s2n_connection, ptr %7497, i32 0, i32 23
  store i8 34, ptr %7498, align 4, !tbaa !26
  %7499 = load ptr, ptr %13, align 8, !tbaa !9
  %7500 = load ptr, ptr %161, align 8, !tbaa !9
  %7501 = getelementptr inbounds %struct.s2n_connection, ptr %7500, i32 0, i32 27
  %7502 = load ptr, ptr %7501, align 8, !tbaa !50
  %7503 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %7502, i32 0, i32 0
  store ptr %7499, ptr %7503, align 8, !tbaa !51
  br label %7504

7504:                                             ; preds = %7496
  call void @llvm.lifetime.start.p0(i64 4, ptr %163) #11
  %7505 = getelementptr inbounds %struct.s2n_blob, ptr %10, i32 0, i32 1
  %7506 = load i32, ptr %7505, align 8, !tbaa !56
  store i32 %7506, ptr %163, align 4, !tbaa !5
  %7507 = load i32, ptr %163, align 4, !tbaa !5
  %7508 = icmp ne i32 %7507, 0
  %7509 = xor i1 %7508, true
  %7510 = xor i1 %7509, true
  %7511 = zext i1 %7510 to i32
  %7512 = sext i32 %7511 to i64
  %7513 = call i64 @llvm.expect.i64(i64 %7512, i64 1)
  %7514 = icmp ne i64 %7513, 0
  br i1 %7514, label %7515, label %7568

7515:                                             ; preds = %7504
  call void @llvm.lifetime.start.p0(i64 8, ptr %164) #11
  %7516 = load ptr, ptr %161, align 8, !tbaa !9
  %7517 = getelementptr inbounds %struct.s2n_connection, ptr %7516, i32 0, i32 28
  %7518 = getelementptr inbounds %struct.s2n_secrets, ptr %7517, i32 0, i32 0
  %7519 = getelementptr inbounds %struct.s2n_tls13_secrets, ptr %7518, i32 0, i32 4
  %7520 = getelementptr inbounds [48 x i8], ptr %7519, i64 0, i64 0
  %7521 = getelementptr inbounds %struct.s2n_blob, ptr %10, i32 0, i32 0
  %7522 = load ptr, ptr %7521, align 8, !tbaa !57
  %7523 = load i32, ptr %163, align 4, !tbaa !5
  %7524 = zext i32 %7523 to i64
  %7525 = call ptr @s2n_ensure_memmove_trace(ptr noundef %7520, ptr noundef %7522, i64 noundef %7524)
  store ptr %7525, ptr %164, align 8, !tbaa !9
  br label %7526

7526:                                             ; preds = %7515
  %7527 = load ptr, ptr %164, align 8, !tbaa !9
  %7528 = icmp ne ptr %7527, null
  br i1 %7528, label %7562, label %7529

7529:                                             ; preds = %7526
  br label %7530

7530:                                             ; preds = %7529
  br label %7531

7531:                                             ; preds = %7530
  %7532 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %7533 = getelementptr inbounds %struct.s2n_debug_info, ptr %7532, i32 0, i32 0
  store ptr @.str.74, ptr %7533, align 8, !tbaa !58
  %7534 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %7535 = getelementptr inbounds %struct.s2n_debug_info, ptr %7534, i32 0, i32 0
  %7536 = load ptr, ptr %7535, align 8, !tbaa !58
  %7537 = getelementptr inbounds i8, ptr %7536, i64 21
  %7538 = call ptr @strrchr(ptr noundef %7537, i32 noundef 47) #14
  %7539 = icmp ne ptr %7538, null
  br i1 %7539, label %7540, label %7547

7540:                                             ; preds = %7531
  %7541 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %7542 = getelementptr inbounds %struct.s2n_debug_info, ptr %7541, i32 0, i32 0
  %7543 = load ptr, ptr %7542, align 8, !tbaa !58
  %7544 = getelementptr inbounds i8, ptr %7543, i64 21
  %7545 = call ptr @strrchr(ptr noundef %7544, i32 noundef 47) #14
  %7546 = getelementptr inbounds i8, ptr %7545, i64 1
  br label %7552

7547:                                             ; preds = %7531
  %7548 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %7549 = getelementptr inbounds %struct.s2n_debug_info, ptr %7548, i32 0, i32 0
  %7550 = load ptr, ptr %7549, align 8, !tbaa !58
  %7551 = getelementptr inbounds i8, ptr %7550, i64 21
  br label %7552

7552:                                             ; preds = %7547, %7540
  %7553 = phi ptr [ %7546, %7540 ], [ %7551, %7547 ]
  %7554 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %7555 = getelementptr inbounds %struct.s2n_debug_info, ptr %7554, i32 0, i32 1
  store ptr %7553, ptr %7555, align 8, !tbaa !60
  %7556 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 402653193, ptr %7556, align 4, !tbaa !5
  %7557 = call i32 @s2n_calculate_stacktrace()
  br label %7558

7558:                                             ; preds = %7552
  br label %7559

7559:                                             ; preds = %7558
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %7565

7560:                                             ; No predecessors!
  br label %7561

7561:                                             ; preds = %7560
  br label %7562

7562:                                             ; preds = %7561, %7526
  br label %7563

7563:                                             ; preds = %7562
  br label %7564

7564:                                             ; preds = %7563
  store i32 0, ptr %12, align 4
  br label %7565

7565:                                             ; preds = %7564, %7559
  call void @llvm.lifetime.end.p0(i64 8, ptr %164) #11
  %7566 = load i32, ptr %12, align 4
  switch i32 %7566, label %7569 [
    i32 0, label %7567
  ]

7567:                                             ; preds = %7565
  br label %7568

7568:                                             ; preds = %7567, %7504
  store i32 0, ptr %12, align 4
  br label %7569

7569:                                             ; preds = %7568, %7565
  call void @llvm.lifetime.end.p0(i64 4, ptr %163) #11
  %7570 = load i32, ptr %12, align 4
  switch i32 %7570, label %8217 [
    i32 0, label %7571
  ]

7571:                                             ; preds = %7569
  br label %7572

7572:                                             ; preds = %7571
  br label %7573

7573:                                             ; preds = %7572
  call void @llvm.lifetime.start.p0(i64 40, ptr %165) #11
  call void @llvm.memset.p0.i64(ptr align 8 %165, i8 0, i64 40, i1 false)
  br label %7574

7574:                                             ; preds = %7573
  %7575 = load i32, ptr @test_count, align 4, !tbaa !5
  %7576 = add nsw i32 %7575, 1
  store i32 %7576, ptr @test_count, align 4, !tbaa !5
  %7577 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %165, i32 noundef 0)
  %7578 = icmp eq i32 %7577, -1
  br i1 %7578, label %7579, label %7632

7579:                                             ; preds = %7574
  br label %7580

7580:                                             ; preds = %7579
  br label %7581

7581:                                             ; preds = %7580
  call void @llvm.lifetime.start.p0(i64 4, ptr %166) #11
  %7582 = call ptr @__errno_location() #12
  %7583 = load i32, ptr %7582, align 4, !tbaa !5
  store i32 %7583, ptr %166, align 4, !tbaa !5
  %7584 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7585 = call i32 @s2n_print_stacktrace(ptr noundef %7584)
  %7586 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7587 = trunc i8 %7586 to i1
  br i1 %7587, label %7588, label %7610

7588:                                             ; preds = %7581
  %7589 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7590 = call i32 @fileno(ptr noundef %7589) #11
  %7591 = call i32 @isatty(i32 noundef %7590) #11
  %7592 = icmp ne i32 %7591, 0
  br i1 %7592, label %7593, label %7610

7593:                                             ; preds = %7588
  %7594 = load i32, ptr %166, align 4, !tbaa !5
  %7595 = call ptr @__errno_location() #12
  store i32 %7594, ptr %7595, align 4, !tbaa !5
  %7596 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7597 = load i32, ptr @test_count, align 4, !tbaa !5
  %7598 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7599 = load i32, ptr %7598, align 4, !tbaa !5
  %7600 = call ptr @s2n_strerror(i32 noundef %7599, ptr noundef @.str.4)
  %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_debug(i32 noundef %7602, ptr noundef @.str.4)
  %7604 = call ptr @__errno_location() #12
  %7605 = load i32, ptr %7604, align 4, !tbaa !5
  %7606 = call ptr @strerror(i32 noundef %7605) #11
  %7607 = call ptr @__errno_location() #12
  %7608 = load i32, ptr %7607, align 4, !tbaa !5
  %7609 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7596, ptr noundef @.str.2, i32 noundef %7597, ptr noundef @.str.65, ptr noundef @.str.1, i32 noundef 360, ptr noundef %7600, ptr noundef %7603, ptr noundef %7606, i32 noundef %7608) #11
  br label %7627

7610:                                             ; preds = %7588, %7581
  %7611 = load i32, ptr %166, align 4, !tbaa !5
  %7612 = call ptr @__errno_location() #12
  store i32 %7611, ptr %7612, align 4, !tbaa !5
  %7613 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7614 = load i32, ptr @test_count, align 4, !tbaa !5
  %7615 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7616 = load i32, ptr %7615, align 4, !tbaa !5
  %7617 = call ptr @s2n_strerror(i32 noundef %7616, ptr noundef @.str.4)
  %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_debug(i32 noundef %7619, ptr noundef @.str.4)
  %7621 = call ptr @__errno_location() #12
  %7622 = load i32, ptr %7621, align 4, !tbaa !5
  %7623 = call ptr @strerror(i32 noundef %7622) #11
  %7624 = call ptr @__errno_location() #12
  %7625 = load i32, ptr %7624, align 4, !tbaa !5
  %7626 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7613, ptr noundef @.str.5, i32 noundef %7614, ptr noundef @.str.65, ptr noundef @.str.1, i32 noundef 360, ptr noundef %7617, ptr noundef %7620, ptr noundef %7623, i32 noundef %7625) #11
  br label %7627

7627:                                             ; preds = %7610, %7593
  call void @llvm.lifetime.end.p0(i64 4, ptr %166) #11
  br label %7628

7628:                                             ; preds = %7627
  br label %7629

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

7630:                                             ; No predecessors!
  br label %7631

7631:                                             ; preds = %7630
  br label %7632

7632:                                             ; preds = %7631, %7574
  br label %7633

7633:                                             ; preds = %7632
  br label %7634

7634:                                             ; preds = %7633
  br label %7635

7635:                                             ; preds = %7634
  %7636 = load i32, ptr @test_count, align 4, !tbaa !5
  %7637 = add nsw i32 %7636, 1
  store i32 %7637, ptr @test_count, align 4, !tbaa !5
  %7638 = load ptr, ptr %161, align 8, !tbaa !9
  %7639 = call i32 @s2n_connection_set_io_stuffers(ptr noundef %165, ptr noundef %165, ptr noundef %7638)
  %7640 = icmp eq i32 %7639, -1
  br i1 %7640, label %7641, label %7694

7641:                                             ; preds = %7635
  br label %7642

7642:                                             ; preds = %7641
  br label %7643

7643:                                             ; preds = %7642
  call void @llvm.lifetime.start.p0(i64 4, ptr %167) #11
  %7644 = call ptr @__errno_location() #12
  %7645 = load i32, ptr %7644, align 4, !tbaa !5
  store i32 %7645, ptr %167, align 4, !tbaa !5
  %7646 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7647 = call i32 @s2n_print_stacktrace(ptr noundef %7646)
  %7648 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7649 = trunc i8 %7648 to i1
  br i1 %7649, label %7650, label %7672

7650:                                             ; preds = %7643
  %7651 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7652 = call i32 @fileno(ptr noundef %7651) #11
  %7653 = call i32 @isatty(i32 noundef %7652) #11
  %7654 = icmp ne i32 %7653, 0
  br i1 %7654, label %7655, label %7672

7655:                                             ; preds = %7650
  %7656 = load i32, ptr %167, align 4, !tbaa !5
  %7657 = call ptr @__errno_location() #12
  store i32 %7656, ptr %7657, align 4, !tbaa !5
  %7658 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7659 = load i32, ptr @test_count, align 4, !tbaa !5
  %7660 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7661 = load i32, ptr %7660, align 4, !tbaa !5
  %7662 = call ptr @s2n_strerror(i32 noundef %7661, ptr noundef @.str.4)
  %7663 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7664 = load i32, ptr %7663, align 4, !tbaa !5
  %7665 = call ptr @s2n_strerror_debug(i32 noundef %7664, ptr noundef @.str.4)
  %7666 = call ptr @__errno_location() #12
  %7667 = load i32, ptr %7666, align 4, !tbaa !5
  %7668 = call ptr @strerror(i32 noundef %7667) #11
  %7669 = call ptr @__errno_location() #12
  %7670 = load i32, ptr %7669, align 4, !tbaa !5
  %7671 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7658, ptr noundef @.str.2, i32 noundef %7659, ptr noundef @.str.66, ptr noundef @.str.1, i32 noundef 361, ptr noundef %7662, ptr noundef %7665, ptr noundef %7668, i32 noundef %7670) #11
  br label %7689

7672:                                             ; preds = %7650, %7643
  %7673 = load i32, ptr %167, align 4, !tbaa !5
  %7674 = call ptr @__errno_location() #12
  store i32 %7673, ptr %7674, align 4, !tbaa !5
  %7675 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7676 = load i32, ptr @test_count, align 4, !tbaa !5
  %7677 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7678 = load i32, ptr %7677, align 4, !tbaa !5
  %7679 = call ptr @s2n_strerror(i32 noundef %7678, ptr noundef @.str.4)
  %7680 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7681 = load i32, ptr %7680, align 4, !tbaa !5
  %7682 = call ptr @s2n_strerror_debug(i32 noundef %7681, ptr noundef @.str.4)
  %7683 = call ptr @__errno_location() #12
  %7684 = load i32, ptr %7683, align 4, !tbaa !5
  %7685 = call ptr @strerror(i32 noundef %7684) #11
  %7686 = call ptr @__errno_location() #12
  %7687 = load i32, ptr %7686, align 4, !tbaa !5
  %7688 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7675, ptr noundef @.str.5, i32 noundef %7676, ptr noundef @.str.66, ptr noundef @.str.1, i32 noundef 361, ptr noundef %7679, ptr noundef %7682, ptr noundef %7685, i32 noundef %7687) #11
  br label %7689

7689:                                             ; preds = %7672, %7655
  call void @llvm.lifetime.end.p0(i64 4, ptr %167) #11
  br label %7690

7690:                                             ; preds = %7689
  br label %7691

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

7692:                                             ; No predecessors!
  br label %7693

7693:                                             ; preds = %7692
  br label %7694

7694:                                             ; preds = %7693, %7635
  br label %7695

7695:                                             ; preds = %7694
  br label %7696

7696:                                             ; preds = %7695
  %7697 = load ptr, ptr %161, align 8, !tbaa !9
  %7698 = getelementptr inbounds %struct.s2n_connection, ptr %7697, i32 0, i32 94
  call void @s2n_atomic_flag_clear(ptr noundef %7698)
  br label %7699

7699:                                             ; preds = %7696
  %7700 = load i32, ptr @test_count, align 4, !tbaa !5
  %7701 = add nsw i32 %7700, 1
  store i32 %7701, ptr @test_count, align 4, !tbaa !5
  %7702 = load i64, ptr %14, align 8, !tbaa !20
  %7703 = load ptr, ptr %161, align 8, !tbaa !9
  %7704 = getelementptr inbounds %struct.s2n_connection, ptr %7703, i32 0, i32 27
  %7705 = load ptr, ptr %7704, align 8, !tbaa !50
  %7706 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %7705, i32 0, i32 7
  %7707 = getelementptr inbounds [8 x i8], ptr %7706, i64 0, i64 0
  %7708 = call i32 @s2n_write_uint64(i64 noundef %7702, ptr noundef %7707)
  %7709 = getelementptr inbounds %struct.s2n_result, ptr %168, i32 0, i32 0
  store i32 %7708, ptr %7709, align 4
  %7710 = getelementptr inbounds %struct.s2n_result, ptr %168, i32 0, i32 0
  %7711 = load i32, ptr %7710, align 4
  %7712 = call zeroext i1 @s2n_result_is_ok(i32 %7711)
  br i1 %7712, label %7766, label %7713

7713:                                             ; preds = %7699
  br label %7714

7714:                                             ; preds = %7713
  br label %7715

7715:                                             ; preds = %7714
  call void @llvm.lifetime.start.p0(i64 4, ptr %169) #11
  %7716 = call ptr @__errno_location() #12
  %7717 = load i32, ptr %7716, align 4, !tbaa !5
  store i32 %7717, ptr %169, align 4, !tbaa !5
  %7718 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7719 = call i32 @s2n_print_stacktrace(ptr noundef %7718)
  %7720 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7721 = trunc i8 %7720 to i1
  br i1 %7721, label %7722, label %7744

7722:                                             ; preds = %7715
  %7723 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7724 = call i32 @fileno(ptr noundef %7723) #11
  %7725 = call i32 @isatty(i32 noundef %7724) #11
  %7726 = icmp ne i32 %7725, 0
  br i1 %7726, label %7727, label %7744

7727:                                             ; preds = %7722
  %7728 = load i32, ptr %169, align 4, !tbaa !5
  %7729 = call ptr @__errno_location() #12
  store i32 %7728, ptr %7729, align 4, !tbaa !5
  %7730 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7731 = load i32, ptr @test_count, align 4, !tbaa !5
  %7732 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7733 = load i32, ptr %7732, align 4, !tbaa !5
  %7734 = call ptr @s2n_strerror(i32 noundef %7733, ptr noundef @.str.4)
  %7735 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7736 = load i32, ptr %7735, align 4, !tbaa !5
  %7737 = call ptr @s2n_strerror_debug(i32 noundef %7736, ptr noundef @.str.4)
  %7738 = call ptr @__errno_location() #12
  %7739 = load i32, ptr %7738, align 4, !tbaa !5
  %7740 = call ptr @strerror(i32 noundef %7739) #11
  %7741 = call ptr @__errno_location() #12
  %7742 = load i32, ptr %7741, align 4, !tbaa !5
  %7743 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7730, ptr noundef @.str.2, i32 noundef %7731, ptr noundef @.str.75, ptr noundef @.str.1, i32 noundef 364, ptr noundef %7734, ptr noundef %7737, ptr noundef %7740, i32 noundef %7742) #11
  br label %7761

7744:                                             ; preds = %7722, %7715
  %7745 = load i32, ptr %169, align 4, !tbaa !5
  %7746 = call ptr @__errno_location() #12
  store i32 %7745, ptr %7746, align 4, !tbaa !5
  %7747 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7748 = load i32, ptr @test_count, align 4, !tbaa !5
  %7749 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7750 = load i32, ptr %7749, align 4, !tbaa !5
  %7751 = call ptr @s2n_strerror(i32 noundef %7750, ptr noundef @.str.4)
  %7752 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7753 = load i32, ptr %7752, align 4, !tbaa !5
  %7754 = call ptr @s2n_strerror_debug(i32 noundef %7753, ptr noundef @.str.4)
  %7755 = call ptr @__errno_location() #12
  %7756 = load i32, ptr %7755, align 4, !tbaa !5
  %7757 = call ptr @strerror(i32 noundef %7756) #11
  %7758 = call ptr @__errno_location() #12
  %7759 = load i32, ptr %7758, align 4, !tbaa !5
  %7760 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7747, ptr noundef @.str.5, i32 noundef %7748, ptr noundef @.str.75, ptr noundef @.str.1, i32 noundef 364, ptr noundef %7751, ptr noundef %7754, ptr noundef %7757, i32 noundef %7759) #11
  br label %7761

7761:                                             ; preds = %7744, %7727
  call void @llvm.lifetime.end.p0(i64 4, ptr %169) #11
  br label %7762

7762:                                             ; preds = %7761
  br label %7763

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

7764:                                             ; No predecessors!
  br label %7765

7765:                                             ; preds = %7764
  br label %7766

7766:                                             ; preds = %7765, %7699
  br label %7767

7767:                                             ; preds = %7766
  br label %7768

7768:                                             ; preds = %7767
  call void @llvm.lifetime.start.p0(i64 4, ptr %170) #11
  store i32 0, ptr %170, align 4, !tbaa !5
  br label %7769

7769:                                             ; preds = %7768
  %7770 = load i32, ptr @test_count, align 4, !tbaa !5
  %7771 = add nsw i32 %7770, 1
  store i32 %7771, ptr @test_count, align 4, !tbaa !5
  %7772 = load ptr, ptr %161, align 8, !tbaa !9
  %7773 = call i32 @s2n_key_update_send(ptr noundef %7772, ptr noundef %170)
  %7774 = icmp eq i32 %7773, -1
  br i1 %7774, label %7775, label %7828

7775:                                             ; preds = %7769
  br label %7776

7776:                                             ; preds = %7775
  br label %7777

7777:                                             ; preds = %7776
  call void @llvm.lifetime.start.p0(i64 4, ptr %171) #11
  %7778 = call ptr @__errno_location() #12
  %7779 = load i32, ptr %7778, align 4, !tbaa !5
  store i32 %7779, ptr %171, align 4, !tbaa !5
  %7780 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7781 = call i32 @s2n_print_stacktrace(ptr noundef %7780)
  %7782 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7783 = trunc i8 %7782 to i1
  br i1 %7783, label %7784, label %7806

7784:                                             ; preds = %7777
  %7785 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7786 = call i32 @fileno(ptr noundef %7785) #11
  %7787 = call i32 @isatty(i32 noundef %7786) #11
  %7788 = icmp ne i32 %7787, 0
  br i1 %7788, label %7789, label %7806

7789:                                             ; preds = %7784
  %7790 = load i32, ptr %171, align 4, !tbaa !5
  %7791 = call ptr @__errno_location() #12
  store i32 %7790, ptr %7791, align 4, !tbaa !5
  %7792 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7793 = load i32, ptr @test_count, align 4, !tbaa !5
  %7794 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7795 = load i32, ptr %7794, align 4, !tbaa !5
  %7796 = call ptr @s2n_strerror(i32 noundef %7795, ptr noundef @.str.4)
  %7797 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7798 = load i32, ptr %7797, align 4, !tbaa !5
  %7799 = call ptr @s2n_strerror_debug(i32 noundef %7798, ptr noundef @.str.4)
  %7800 = call ptr @__errno_location() #12
  %7801 = load i32, ptr %7800, align 4, !tbaa !5
  %7802 = call ptr @strerror(i32 noundef %7801) #11
  %7803 = call ptr @__errno_location() #12
  %7804 = load i32, ptr %7803, align 4, !tbaa !5
  %7805 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7792, ptr noundef @.str.2, i32 noundef %7793, ptr noundef @.str.68, ptr noundef @.str.1, i32 noundef 367, ptr noundef %7796, ptr noundef %7799, ptr noundef %7802, i32 noundef %7804) #11
  br label %7823

7806:                                             ; preds = %7784, %7777
  %7807 = load i32, ptr %171, align 4, !tbaa !5
  %7808 = call ptr @__errno_location() #12
  store i32 %7807, ptr %7808, align 4, !tbaa !5
  %7809 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7810 = load i32, ptr @test_count, align 4, !tbaa !5
  %7811 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7812 = load i32, ptr %7811, align 4, !tbaa !5
  %7813 = call ptr @s2n_strerror(i32 noundef %7812, ptr noundef @.str.4)
  %7814 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7815 = load i32, ptr %7814, align 4, !tbaa !5
  %7816 = call ptr @s2n_strerror_debug(i32 noundef %7815, ptr noundef @.str.4)
  %7817 = call ptr @__errno_location() #12
  %7818 = load i32, ptr %7817, align 4, !tbaa !5
  %7819 = call ptr @strerror(i32 noundef %7818) #11
  %7820 = call ptr @__errno_location() #12
  %7821 = load i32, ptr %7820, align 4, !tbaa !5
  %7822 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7809, ptr noundef @.str.5, i32 noundef %7810, ptr noundef @.str.68, ptr noundef @.str.1, i32 noundef 367, ptr noundef %7813, ptr noundef %7816, ptr noundef %7819, i32 noundef %7821) #11
  br label %7823

7823:                                             ; preds = %7806, %7789
  call void @llvm.lifetime.end.p0(i64 4, ptr %171) #11
  br label %7824

7824:                                             ; preds = %7823
  br label %7825

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

7826:                                             ; No predecessors!
  br label %7827

7827:                                             ; preds = %7826
  br label %7828

7828:                                             ; preds = %7827, %7769
  br label %7829

7829:                                             ; preds = %7828
  br label %7830

7830:                                             ; preds = %7829
  br label %7831

7831:                                             ; preds = %7830
  %7832 = load i32, ptr @test_count, align 4, !tbaa !5
  %7833 = add nsw i32 %7832, 1
  store i32 %7833, ptr @test_count, align 4, !tbaa !5
  %7834 = load ptr, ptr %161, align 8, !tbaa !9
  %7835 = getelementptr inbounds %struct.s2n_connection, ptr %7834, i32 0, i32 94
  %7836 = call zeroext i1 @s2n_atomic_flag_test(ptr noundef %7835)
  %7837 = zext i1 %7836 to i32
  %7838 = icmp eq i32 %7837, 0
  br i1 %7838, label %7892, label %7839

7839:                                             ; preds = %7831
  br label %7840

7840:                                             ; preds = %7839
  br label %7841

7841:                                             ; preds = %7840
  call void @llvm.lifetime.start.p0(i64 4, ptr %172) #11
  %7842 = call ptr @__errno_location() #12
  %7843 = load i32, ptr %7842, align 4, !tbaa !5
  store i32 %7843, ptr %172, align 4, !tbaa !5
  %7844 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7845 = call i32 @s2n_print_stacktrace(ptr noundef %7844)
  %7846 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7847 = trunc i8 %7846 to i1
  br i1 %7847, label %7848, label %7870

7848:                                             ; preds = %7841
  %7849 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7850 = call i32 @fileno(ptr noundef %7849) #11
  %7851 = call i32 @isatty(i32 noundef %7850) #11
  %7852 = icmp ne i32 %7851, 0
  br i1 %7852, label %7853, label %7870

7853:                                             ; preds = %7848
  %7854 = load i32, ptr %172, align 4, !tbaa !5
  %7855 = call ptr @__errno_location() #12
  store i32 %7854, ptr %7855, align 4, !tbaa !5
  %7856 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7857 = load i32, ptr @test_count, align 4, !tbaa !5
  %7858 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7859 = load i32, ptr %7858, align 4, !tbaa !5
  %7860 = call ptr @s2n_strerror(i32 noundef %7859, ptr noundef @.str.4)
  %7861 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7862 = load i32, ptr %7861, align 4, !tbaa !5
  %7863 = call ptr @s2n_strerror_debug(i32 noundef %7862, ptr noundef @.str.4)
  %7864 = call ptr @__errno_location() #12
  %7865 = load i32, ptr %7864, align 4, !tbaa !5
  %7866 = call ptr @strerror(i32 noundef %7865) #11
  %7867 = call ptr @__errno_location() #12
  %7868 = load i32, ptr %7867, align 4, !tbaa !5
  %7869 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7856, ptr noundef @.str.2, i32 noundef %7857, ptr noundef @.str.69, ptr noundef @.str.1, i32 noundef 369, ptr noundef %7860, ptr noundef %7863, ptr noundef %7866, i32 noundef %7868) #11
  br label %7887

7870:                                             ; preds = %7848, %7841
  %7871 = load i32, ptr %172, align 4, !tbaa !5
  %7872 = call ptr @__errno_location() #12
  store i32 %7871, ptr %7872, align 4, !tbaa !5
  %7873 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7874 = load i32, ptr @test_count, align 4, !tbaa !5
  %7875 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7876 = load i32, ptr %7875, align 4, !tbaa !5
  %7877 = call ptr @s2n_strerror(i32 noundef %7876, ptr noundef @.str.4)
  %7878 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7879 = load i32, ptr %7878, align 4, !tbaa !5
  %7880 = call ptr @s2n_strerror_debug(i32 noundef %7879, ptr noundef @.str.4)
  %7881 = call ptr @__errno_location() #12
  %7882 = load i32, ptr %7881, align 4, !tbaa !5
  %7883 = call ptr @strerror(i32 noundef %7882) #11
  %7884 = call ptr @__errno_location() #12
  %7885 = load i32, ptr %7884, align 4, !tbaa !5
  %7886 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7873, ptr noundef @.str.5, i32 noundef %7874, ptr noundef @.str.69, ptr noundef @.str.1, i32 noundef 369, ptr noundef %7877, ptr noundef %7880, ptr noundef %7883, i32 noundef %7885) #11
  br label %7887

7887:                                             ; preds = %7870, %7853
  call void @llvm.lifetime.end.p0(i64 4, ptr %172) #11
  br label %7888

7888:                                             ; preds = %7887
  br label %7889

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

7890:                                             ; No predecessors!
  br label %7891

7891:                                             ; preds = %7890
  br label %7892

7892:                                             ; preds = %7891, %7831
  br label %7893

7893:                                             ; preds = %7892
  br label %7894

7894:                                             ; preds = %7893
  br label %7895

7895:                                             ; preds = %7894
  br label %7896

7896:                                             ; preds = %7895
  %7897 = load i32, ptr @test_count, align 4, !tbaa !5
  %7898 = add nsw i32 %7897, 1
  store i32 %7898, ptr @test_count, align 4, !tbaa !5
  %7899 = load ptr, ptr %161, align 8, !tbaa !9
  %7900 = getelementptr inbounds %struct.s2n_connection, ptr %7899, i32 0, i32 27
  %7901 = load ptr, ptr %7900, align 8, !tbaa !50
  %7902 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %7901, i32 0, i32 7
  %7903 = getelementptr inbounds [8 x i8], ptr %7902, i64 0, i64 0
  %7904 = getelementptr inbounds [8 x i8], ptr %18, i64 0, i64 0
  %7905 = call i32 @memcmp(ptr noundef %7903, ptr noundef %7904, i64 noundef 8) #14
  %7906 = icmp eq i32 %7905, 0
  br i1 %7906, label %7960, label %7907

7907:                                             ; preds = %7896
  br label %7908

7908:                                             ; preds = %7907
  br label %7909

7909:                                             ; preds = %7908
  call void @llvm.lifetime.start.p0(i64 4, ptr %173) #11
  %7910 = call ptr @__errno_location() #12
  %7911 = load i32, ptr %7910, align 4, !tbaa !5
  store i32 %7911, ptr %173, align 4, !tbaa !5
  %7912 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7913 = call i32 @s2n_print_stacktrace(ptr noundef %7912)
  %7914 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7915 = trunc i8 %7914 to i1
  br i1 %7915, label %7916, label %7938

7916:                                             ; preds = %7909
  %7917 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7918 = call i32 @fileno(ptr noundef %7917) #11
  %7919 = call i32 @isatty(i32 noundef %7918) #11
  %7920 = icmp ne i32 %7919, 0
  br i1 %7920, label %7921, label %7938

7921:                                             ; preds = %7916
  %7922 = load i32, ptr %173, align 4, !tbaa !5
  %7923 = call ptr @__errno_location() #12
  store i32 %7922, ptr %7923, align 4, !tbaa !5
  %7924 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7925 = load i32, ptr @test_count, align 4, !tbaa !5
  %7926 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7927 = load i32, ptr %7926, align 4, !tbaa !5
  %7928 = call ptr @s2n_strerror(i32 noundef %7927, ptr noundef @.str.4)
  %7929 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7930 = load i32, ptr %7929, align 4, !tbaa !5
  %7931 = call ptr @s2n_strerror_debug(i32 noundef %7930, ptr noundef @.str.4)
  %7932 = call ptr @__errno_location() #12
  %7933 = load i32, ptr %7932, align 4, !tbaa !5
  %7934 = call ptr @strerror(i32 noundef %7933) #11
  %7935 = call ptr @__errno_location() #12
  %7936 = load i32, ptr %7935, align 4, !tbaa !5
  %7937 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7924, ptr noundef @.str.2, i32 noundef %7925, ptr noundef @.str.70, ptr noundef @.str.1, i32 noundef 370, ptr noundef %7928, ptr noundef %7931, ptr noundef %7934, i32 noundef %7936) #11
  br label %7955

7938:                                             ; preds = %7916, %7909
  %7939 = load i32, ptr %173, align 4, !tbaa !5
  %7940 = call ptr @__errno_location() #12
  store i32 %7939, ptr %7940, align 4, !tbaa !5
  %7941 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7942 = load i32, ptr @test_count, align 4, !tbaa !5
  %7943 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7944 = load i32, ptr %7943, align 4, !tbaa !5
  %7945 = call ptr @s2n_strerror(i32 noundef %7944, ptr noundef @.str.4)
  %7946 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7947 = load i32, ptr %7946, align 4, !tbaa !5
  %7948 = call ptr @s2n_strerror_debug(i32 noundef %7947, ptr noundef @.str.4)
  %7949 = call ptr @__errno_location() #12
  %7950 = load i32, ptr %7949, align 4, !tbaa !5
  %7951 = call ptr @strerror(i32 noundef %7950) #11
  %7952 = call ptr @__errno_location() #12
  %7953 = load i32, ptr %7952, align 4, !tbaa !5
  %7954 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7941, ptr noundef @.str.5, i32 noundef %7942, ptr noundef @.str.70, ptr noundef @.str.1, i32 noundef 370, ptr noundef %7945, ptr noundef %7948, ptr noundef %7951, i32 noundef %7953) #11
  br label %7955

7955:                                             ; preds = %7938, %7921
  call void @llvm.lifetime.end.p0(i64 4, ptr %173) #11
  br label %7956

7956:                                             ; preds = %7955
  br label %7957

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

7958:                                             ; No predecessors!
  br label %7959

7959:                                             ; preds = %7958
  br label %7960

7960:                                             ; preds = %7959, %7896
  br label %7961

7961:                                             ; preds = %7960
  br label %7962

7962:                                             ; preds = %7961
  br label %7963

7963:                                             ; preds = %7962
  br label %7964

7964:                                             ; preds = %7963
  br label %7965

7965:                                             ; preds = %7964
  %7966 = load i32, ptr @test_count, align 4, !tbaa !5
  %7967 = add nsw i32 %7966, 1
  store i32 %7967, ptr @test_count, align 4, !tbaa !5
  %7968 = getelementptr inbounds %struct.s2n_stuffer, ptr %165, i32 0, i32 2
  %7969 = load i32, ptr %7968, align 4, !tbaa !22
  %7970 = getelementptr inbounds %struct.s2n_stuffer, ptr %165, i32 0, i32 1
  %7971 = load i32, ptr %7970, align 8, !tbaa !25
  %7972 = sub i32 %7969, %7971
  %7973 = icmp ugt i32 %7972, 0
  br i1 %7973, label %8027, label %7974

7974:                                             ; preds = %7965
  br label %7975

7975:                                             ; preds = %7974
  br label %7976

7976:                                             ; preds = %7975
  call void @llvm.lifetime.start.p0(i64 4, ptr %174) #11
  %7977 = call ptr @__errno_location() #12
  %7978 = load i32, ptr %7977, align 4, !tbaa !5
  store i32 %7978, ptr %174, align 4, !tbaa !5
  %7979 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7980 = call i32 @s2n_print_stacktrace(ptr noundef %7979)
  %7981 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7982 = trunc i8 %7981 to i1
  br i1 %7982, label %7983, label %8005

7983:                                             ; preds = %7976
  %7984 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7985 = call i32 @fileno(ptr noundef %7984) #11
  %7986 = call i32 @isatty(i32 noundef %7985) #11
  %7987 = icmp ne i32 %7986, 0
  br i1 %7987, label %7988, label %8005

7988:                                             ; preds = %7983
  %7989 = load i32, ptr %174, align 4, !tbaa !5
  %7990 = call ptr @__errno_location() #12
  store i32 %7989, ptr %7990, align 4, !tbaa !5
  %7991 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7992 = load i32, ptr @test_count, align 4, !tbaa !5
  %7993 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7994 = load i32, ptr %7993, align 4, !tbaa !5
  %7995 = call ptr @s2n_strerror(i32 noundef %7994, ptr noundef @.str.4)
  %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_debug(i32 noundef %7997, ptr noundef @.str.4)
  %7999 = call ptr @__errno_location() #12
  %8000 = load i32, ptr %7999, align 4, !tbaa !5
  %8001 = call ptr @strerror(i32 noundef %8000) #11
  %8002 = call ptr @__errno_location() #12
  %8003 = load i32, ptr %8002, align 4, !tbaa !5
  %8004 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7991, ptr noundef @.str.2, i32 noundef %7992, ptr noundef @.str.71, ptr noundef @.str.1, i32 noundef 371, ptr noundef %7995, ptr noundef %7998, ptr noundef %8001, i32 noundef %8003) #11
  br label %8022

8005:                                             ; preds = %7983, %7976
  %8006 = load i32, ptr %174, align 4, !tbaa !5
  %8007 = call ptr @__errno_location() #12
  store i32 %8006, ptr %8007, align 4, !tbaa !5
  %8008 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8009 = load i32, ptr @test_count, align 4, !tbaa !5
  %8010 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8011 = load i32, ptr %8010, align 4, !tbaa !5
  %8012 = call ptr @s2n_strerror(i32 noundef %8011, ptr noundef @.str.4)
  %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_debug(i32 noundef %8014, ptr noundef @.str.4)
  %8016 = call ptr @__errno_location() #12
  %8017 = load i32, ptr %8016, align 4, !tbaa !5
  %8018 = call ptr @strerror(i32 noundef %8017) #11
  %8019 = call ptr @__errno_location() #12
  %8020 = load i32, ptr %8019, align 4, !tbaa !5
  %8021 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8008, ptr noundef @.str.5, i32 noundef %8009, ptr noundef @.str.71, ptr noundef @.str.1, i32 noundef 371, ptr noundef %8012, ptr noundef %8015, ptr noundef %8018, i32 noundef %8020) #11
  br label %8022

8022:                                             ; preds = %8005, %7988
  call void @llvm.lifetime.end.p0(i64 4, ptr %174) #11
  br label %8023

8023:                                             ; preds = %8022
  br label %8024

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

8025:                                             ; No predecessors!
  br label %8026

8026:                                             ; preds = %8025
  br label %8027

8027:                                             ; preds = %8026, %7965
  br label %8028

8028:                                             ; preds = %8027
  br label %8029

8029:                                             ; preds = %8028
  br label %8030

8030:                                             ; preds = %8029
  %8031 = load i32, ptr @test_count, align 4, !tbaa !5
  %8032 = add nsw i32 %8031, 1
  store i32 %8032, ptr @test_count, align 4, !tbaa !5
  %8033 = load ptr, ptr %161, align 8, !tbaa !9
  %8034 = getelementptr inbounds %struct.s2n_connection, ptr %8033, i32 0, i32 95
  %8035 = load i8, ptr %8034, align 4, !tbaa !62
  %8036 = zext i8 %8035 to i32
  %8037 = icmp eq i32 %8036, 1
  br i1 %8037, label %8091, label %8038

8038:                                             ; preds = %8030
  br label %8039

8039:                                             ; preds = %8038
  br label %8040

8040:                                             ; preds = %8039
  call void @llvm.lifetime.start.p0(i64 4, ptr %175) #11
  %8041 = call ptr @__errno_location() #12
  %8042 = load i32, ptr %8041, align 4, !tbaa !5
  store i32 %8042, ptr %175, align 4, !tbaa !5
  %8043 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8044 = call i32 @s2n_print_stacktrace(ptr noundef %8043)
  %8045 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8046 = trunc i8 %8045 to i1
  br i1 %8046, label %8047, label %8069

8047:                                             ; preds = %8040
  %8048 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8049 = call i32 @fileno(ptr noundef %8048) #11
  %8050 = call i32 @isatty(i32 noundef %8049) #11
  %8051 = icmp ne i32 %8050, 0
  br i1 %8051, label %8052, label %8069

8052:                                             ; preds = %8047
  %8053 = load i32, ptr %175, align 4, !tbaa !5
  %8054 = call ptr @__errno_location() #12
  store i32 %8053, ptr %8054, align 4, !tbaa !5
  %8055 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8056 = load i32, ptr @test_count, align 4, !tbaa !5
  %8057 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8058 = load i32, ptr %8057, align 4, !tbaa !5
  %8059 = call ptr @s2n_strerror(i32 noundef %8058, ptr noundef @.str.4)
  %8060 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8061 = load i32, ptr %8060, align 4, !tbaa !5
  %8062 = call ptr @s2n_strerror_debug(i32 noundef %8061, ptr noundef @.str.4)
  %8063 = call ptr @__errno_location() #12
  %8064 = load i32, ptr %8063, align 4, !tbaa !5
  %8065 = call ptr @strerror(i32 noundef %8064) #11
  %8066 = call ptr @__errno_location() #12
  %8067 = load i32, ptr %8066, align 4, !tbaa !5
  %8068 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8055, ptr noundef @.str.2, i32 noundef %8056, ptr noundef @.str.72, ptr noundef @.str.1, i32 noundef 372, ptr noundef %8059, ptr noundef %8062, ptr noundef %8065, i32 noundef %8067) #11
  br label %8086

8069:                                             ; preds = %8047, %8040
  %8070 = load i32, ptr %175, align 4, !tbaa !5
  %8071 = call ptr @__errno_location() #12
  store i32 %8070, ptr %8071, align 4, !tbaa !5
  %8072 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8073 = load i32, ptr @test_count, align 4, !tbaa !5
  %8074 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8075 = load i32, ptr %8074, align 4, !tbaa !5
  %8076 = call ptr @s2n_strerror(i32 noundef %8075, ptr noundef @.str.4)
  %8077 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8078 = load i32, ptr %8077, align 4, !tbaa !5
  %8079 = call ptr @s2n_strerror_debug(i32 noundef %8078, ptr noundef @.str.4)
  %8080 = call ptr @__errno_location() #12
  %8081 = load i32, ptr %8080, align 4, !tbaa !5
  %8082 = call ptr @strerror(i32 noundef %8081) #11
  %8083 = call ptr @__errno_location() #12
  %8084 = load i32, ptr %8083, align 4, !tbaa !5
  %8085 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8072, ptr noundef @.str.5, i32 noundef %8073, ptr noundef @.str.72, ptr noundef @.str.1, i32 noundef 372, ptr noundef %8076, ptr noundef %8079, ptr noundef %8082, i32 noundef %8084) #11
  br label %8086

8086:                                             ; preds = %8069, %8052
  call void @llvm.lifetime.end.p0(i64 4, ptr %175) #11
  br label %8087

8087:                                             ; preds = %8086
  br label %8088

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

8089:                                             ; No predecessors!
  br label %8090

8090:                                             ; preds = %8089
  br label %8091

8091:                                             ; preds = %8090, %8030
  br label %8092

8092:                                             ; preds = %8091
  br label %8093

8093:                                             ; preds = %8092
  br label %8094

8094:                                             ; preds = %8093
  %8095 = load i32, ptr @test_count, align 4, !tbaa !5
  %8096 = add nsw i32 %8095, 1
  store i32 %8096, ptr @test_count, align 4, !tbaa !5
  %8097 = call i32 @s2n_stuffer_free(ptr noundef %165)
  %8098 = icmp eq i32 %8097, -1
  br i1 %8098, label %8099, label %8152

8099:                                             ; preds = %8094
  br label %8100

8100:                                             ; preds = %8099
  br label %8101

8101:                                             ; preds = %8100
  call void @llvm.lifetime.start.p0(i64 4, ptr %176) #11
  %8102 = call ptr @__errno_location() #12
  %8103 = load i32, ptr %8102, align 4, !tbaa !5
  store i32 %8103, ptr %176, align 4, !tbaa !5
  %8104 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8105 = call i32 @s2n_print_stacktrace(ptr noundef %8104)
  %8106 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8107 = trunc i8 %8106 to i1
  br i1 %8107, label %8108, label %8130

8108:                                             ; preds = %8101
  %8109 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8110 = call i32 @fileno(ptr noundef %8109) #11
  %8111 = call i32 @isatty(i32 noundef %8110) #11
  %8112 = icmp ne i32 %8111, 0
  br i1 %8112, label %8113, label %8130

8113:                                             ; preds = %8108
  %8114 = load i32, ptr %176, align 4, !tbaa !5
  %8115 = call ptr @__errno_location() #12
  store i32 %8114, ptr %8115, align 4, !tbaa !5
  %8116 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8117 = load i32, ptr @test_count, align 4, !tbaa !5
  %8118 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8119 = load i32, ptr %8118, align 4, !tbaa !5
  %8120 = call ptr @s2n_strerror(i32 noundef %8119, ptr noundef @.str.4)
  %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_debug(i32 noundef %8122, ptr noundef @.str.4)
  %8124 = call ptr @__errno_location() #12
  %8125 = load i32, ptr %8124, align 4, !tbaa !5
  %8126 = call ptr @strerror(i32 noundef %8125) #11
  %8127 = call ptr @__errno_location() #12
  %8128 = load i32, ptr %8127, align 4, !tbaa !5
  %8129 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8116, ptr noundef @.str.2, i32 noundef %8117, ptr noundef @.str.73, ptr noundef @.str.1, i32 noundef 374, ptr noundef %8120, ptr noundef %8123, ptr noundef %8126, i32 noundef %8128) #11
  br label %8147

8130:                                             ; preds = %8108, %8101
  %8131 = load i32, ptr %176, align 4, !tbaa !5
  %8132 = call ptr @__errno_location() #12
  store i32 %8131, ptr %8132, align 4, !tbaa !5
  %8133 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8134 = load i32, ptr @test_count, align 4, !tbaa !5
  %8135 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8136 = load i32, ptr %8135, align 4, !tbaa !5
  %8137 = call ptr @s2n_strerror(i32 noundef %8136, ptr noundef @.str.4)
  %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_debug(i32 noundef %8139, ptr noundef @.str.4)
  %8141 = call ptr @__errno_location() #12
  %8142 = load i32, ptr %8141, align 4, !tbaa !5
  %8143 = call ptr @strerror(i32 noundef %8142) #11
  %8144 = call ptr @__errno_location() #12
  %8145 = load i32, ptr %8144, align 4, !tbaa !5
  %8146 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8133, ptr noundef @.str.5, i32 noundef %8134, ptr noundef @.str.73, ptr noundef @.str.1, i32 noundef 374, ptr noundef %8137, ptr noundef %8140, ptr noundef %8143, i32 noundef %8145) #11
  br label %8147

8147:                                             ; preds = %8130, %8113
  call void @llvm.lifetime.end.p0(i64 4, ptr %176) #11
  br label %8148

8148:                                             ; preds = %8147
  br label %8149

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

8150:                                             ; No predecessors!
  br label %8151

8151:                                             ; preds = %8150
  br label %8152

8152:                                             ; preds = %8151, %8094
  br label %8153

8153:                                             ; preds = %8152
  br label %8154

8154:                                             ; preds = %8153
  br label %8155

8155:                                             ; preds = %8154
  %8156 = load i32, ptr @test_count, align 4, !tbaa !5
  %8157 = add nsw i32 %8156, 1
  store i32 %8157, ptr @test_count, align 4, !tbaa !5
  %8158 = load ptr, ptr %161, align 8, !tbaa !9
  %8159 = call i32 @s2n_connection_free(ptr noundef %8158)
  %8160 = icmp eq i32 %8159, -1
  br i1 %8160, label %8161, label %8214

8161:                                             ; preds = %8155
  br label %8162

8162:                                             ; preds = %8161
  br label %8163

8163:                                             ; preds = %8162
  call void @llvm.lifetime.start.p0(i64 4, ptr %177) #11
  %8164 = call ptr @__errno_location() #12
  %8165 = load i32, ptr %8164, align 4, !tbaa !5
  store i32 %8165, ptr %177, align 4, !tbaa !5
  %8166 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8167 = call i32 @s2n_print_stacktrace(ptr noundef %8166)
  %8168 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8169 = trunc i8 %8168 to i1
  br i1 %8169, label %8170, label %8192

8170:                                             ; preds = %8163
  %8171 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8172 = call i32 @fileno(ptr noundef %8171) #11
  %8173 = call i32 @isatty(i32 noundef %8172) #11
  %8174 = icmp ne i32 %8173, 0
  br i1 %8174, label %8175, label %8192

8175:                                             ; preds = %8170
  %8176 = load i32, ptr %177, align 4, !tbaa !5
  %8177 = call ptr @__errno_location() #12
  store i32 %8176, ptr %8177, align 4, !tbaa !5
  %8178 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8179 = load i32, ptr @test_count, align 4, !tbaa !5
  %8180 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8181 = load i32, ptr %8180, align 4, !tbaa !5
  %8182 = call ptr @s2n_strerror(i32 noundef %8181, ptr noundef @.str.4)
  %8183 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8184 = load i32, ptr %8183, align 4, !tbaa !5
  %8185 = call ptr @s2n_strerror_debug(i32 noundef %8184, ptr noundef @.str.4)
  %8186 = call ptr @__errno_location() #12
  %8187 = load i32, ptr %8186, align 4, !tbaa !5
  %8188 = call ptr @strerror(i32 noundef %8187) #11
  %8189 = call ptr @__errno_location() #12
  %8190 = load i32, ptr %8189, align 4, !tbaa !5
  %8191 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8178, ptr noundef @.str.2, i32 noundef %8179, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 375, ptr noundef %8182, ptr noundef %8185, ptr noundef %8188, i32 noundef %8190) #11
  br label %8209

8192:                                             ; preds = %8170, %8163
  %8193 = load i32, ptr %177, align 4, !tbaa !5
  %8194 = call ptr @__errno_location() #12
  store i32 %8193, ptr %8194, align 4, !tbaa !5
  %8195 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8196 = load i32, ptr @test_count, align 4, !tbaa !5
  %8197 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8198 = load i32, ptr %8197, align 4, !tbaa !5
  %8199 = call ptr @s2n_strerror(i32 noundef %8198, ptr noundef @.str.4)
  %8200 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8201 = load i32, ptr %8200, align 4, !tbaa !5
  %8202 = call ptr @s2n_strerror_debug(i32 noundef %8201, ptr noundef @.str.4)
  %8203 = call ptr @__errno_location() #12
  %8204 = load i32, ptr %8203, align 4, !tbaa !5
  %8205 = call ptr @strerror(i32 noundef %8204) #11
  %8206 = call ptr @__errno_location() #12
  %8207 = load i32, ptr %8206, align 4, !tbaa !5
  %8208 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8195, ptr noundef @.str.5, i32 noundef %8196, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 375, ptr noundef %8199, ptr noundef %8202, ptr noundef %8205, i32 noundef %8207) #11
  br label %8209

8209:                                             ; preds = %8192, %8175
  call void @llvm.lifetime.end.p0(i64 4, ptr %177) #11
  br label %8210

8210:                                             ; preds = %8209
  br label %8211

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

8212:                                             ; No predecessors!
  br label %8213

8213:                                             ; preds = %8212
  br label %8214

8214:                                             ; preds = %8213, %8155
  br label %8215

8215:                                             ; preds = %8214
  br label %8216

8216:                                             ; preds = %8215
  call void @llvm.lifetime.end.p0(i64 4, ptr %170) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr %165) #11
  store i32 0, ptr %12, align 4
  br label %8217

8217:                                             ; preds = %8216, %7569
  call void @llvm.lifetime.end.p0(i64 8, ptr %161) #11
  %8218 = load i32, ptr %12, align 4
  switch i32 %8218, label %15412 [
    i32 0, label %8219
  ]

8219:                                             ; preds = %8217
  call void @llvm.lifetime.start.p0(i64 8, ptr %178) #11
  %8220 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %8220, ptr %178, align 8, !tbaa !9
  %8221 = load ptr, ptr %178, align 8, !tbaa !9
  %8222 = getelementptr inbounds %struct.s2n_connection, ptr %8221, i32 0, i32 23
  store i8 33, ptr %8222, align 4, !tbaa !26
  %8223 = load ptr, ptr %13, align 8, !tbaa !9
  %8224 = load ptr, ptr %178, align 8, !tbaa !9
  %8225 = getelementptr inbounds %struct.s2n_connection, ptr %8224, i32 0, i32 27
  %8226 = load ptr, ptr %8225, align 8, !tbaa !50
  %8227 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %8226, i32 0, i32 0
  store ptr %8223, ptr %8227, align 8, !tbaa !51
  br label %8228

8228:                                             ; preds = %8219
  call void @llvm.lifetime.start.p0(i64 4, ptr %179) #11
  %8229 = getelementptr inbounds %struct.s2n_blob, ptr %10, i32 0, i32 1
  %8230 = load i32, ptr %8229, align 8, !tbaa !56
  store i32 %8230, ptr %179, align 4, !tbaa !5
  %8231 = load i32, ptr %179, align 4, !tbaa !5
  %8232 = icmp ne i32 %8231, 0
  %8233 = xor i1 %8232, true
  %8234 = xor i1 %8233, true
  %8235 = zext i1 %8234 to i32
  %8236 = sext i32 %8235 to i64
  %8237 = call i64 @llvm.expect.i64(i64 %8236, i64 1)
  %8238 = icmp ne i64 %8237, 0
  br i1 %8238, label %8239, label %8292

8239:                                             ; preds = %8228
  call void @llvm.lifetime.start.p0(i64 8, ptr %180) #11
  %8240 = load ptr, ptr %178, align 8, !tbaa !9
  %8241 = getelementptr inbounds %struct.s2n_connection, ptr %8240, i32 0, i32 28
  %8242 = getelementptr inbounds %struct.s2n_secrets, ptr %8241, i32 0, i32 0
  %8243 = getelementptr inbounds %struct.s2n_tls13_secrets, ptr %8242, i32 0, i32 4
  %8244 = getelementptr inbounds [48 x i8], ptr %8243, i64 0, i64 0
  %8245 = getelementptr inbounds %struct.s2n_blob, ptr %10, i32 0, i32 0
  %8246 = load ptr, ptr %8245, align 8, !tbaa !57
  %8247 = load i32, ptr %179, align 4, !tbaa !5
  %8248 = zext i32 %8247 to i64
  %8249 = call ptr @s2n_ensure_memmove_trace(ptr noundef %8244, ptr noundef %8246, i64 noundef %8248)
  store ptr %8249, ptr %180, align 8, !tbaa !9
  br label %8250

8250:                                             ; preds = %8239
  %8251 = load ptr, ptr %180, align 8, !tbaa !9
  %8252 = icmp ne ptr %8251, null
  br i1 %8252, label %8286, label %8253

8253:                                             ; preds = %8250
  br label %8254

8254:                                             ; preds = %8253
  br label %8255

8255:                                             ; preds = %8254
  %8256 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %8257 = getelementptr inbounds %struct.s2n_debug_info, ptr %8256, i32 0, i32 0
  store ptr @.str.76, ptr %8257, align 8, !tbaa !58
  %8258 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %8259 = getelementptr inbounds %struct.s2n_debug_info, ptr %8258, i32 0, i32 0
  %8260 = load ptr, ptr %8259, align 8, !tbaa !58
  %8261 = getelementptr inbounds i8, ptr %8260, i64 21
  %8262 = call ptr @strrchr(ptr noundef %8261, i32 noundef 47) #14
  %8263 = icmp ne ptr %8262, null
  br i1 %8263, label %8264, label %8271

8264:                                             ; preds = %8255
  %8265 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %8266 = getelementptr inbounds %struct.s2n_debug_info, ptr %8265, i32 0, i32 0
  %8267 = load ptr, ptr %8266, align 8, !tbaa !58
  %8268 = getelementptr inbounds i8, ptr %8267, i64 21
  %8269 = call ptr @strrchr(ptr noundef %8268, i32 noundef 47) #14
  %8270 = getelementptr inbounds i8, ptr %8269, i64 1
  br label %8276

8271:                                             ; preds = %8255
  %8272 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %8273 = getelementptr inbounds %struct.s2n_debug_info, ptr %8272, i32 0, i32 0
  %8274 = load ptr, ptr %8273, align 8, !tbaa !58
  %8275 = getelementptr inbounds i8, ptr %8274, i64 21
  br label %8276

8276:                                             ; preds = %8271, %8264
  %8277 = phi ptr [ %8270, %8264 ], [ %8275, %8271 ]
  %8278 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %8279 = getelementptr inbounds %struct.s2n_debug_info, ptr %8278, i32 0, i32 1
  store ptr %8277, ptr %8279, align 8, !tbaa !60
  %8280 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 402653193, ptr %8280, align 4, !tbaa !5
  %8281 = call i32 @s2n_calculate_stacktrace()
  br label %8282

8282:                                             ; preds = %8276
  br label %8283

8283:                                             ; preds = %8282
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %8289

8284:                                             ; No predecessors!
  br label %8285

8285:                                             ; preds = %8284
  br label %8286

8286:                                             ; preds = %8285, %8250
  br label %8287

8287:                                             ; preds = %8286
  br label %8288

8288:                                             ; preds = %8287
  store i32 0, ptr %12, align 4
  br label %8289

8289:                                             ; preds = %8288, %8283
  call void @llvm.lifetime.end.p0(i64 8, ptr %180) #11
  %8290 = load i32, ptr %12, align 4
  switch i32 %8290, label %8293 [
    i32 0, label %8291
  ]

8291:                                             ; preds = %8289
  br label %8292

8292:                                             ; preds = %8291, %8228
  store i32 0, ptr %12, align 4
  br label %8293

8293:                                             ; preds = %8292, %8289
  call void @llvm.lifetime.end.p0(i64 4, ptr %179) #11
  %8294 = load i32, ptr %12, align 4
  switch i32 %8294, label %8824 [
    i32 0, label %8295
  ]

8295:                                             ; preds = %8293
  br label %8296

8296:                                             ; preds = %8295
  br label %8297

8297:                                             ; preds = %8296
  call void @llvm.lifetime.start.p0(i64 40, ptr %181) #11
  call void @llvm.memset.p0.i64(ptr align 8 %181, i8 0, i64 40, i1 false)
  br label %8298

8298:                                             ; preds = %8297
  %8299 = load i32, ptr @test_count, align 4, !tbaa !5
  %8300 = add nsw i32 %8299, 1
  store i32 %8300, ptr @test_count, align 4, !tbaa !5
  %8301 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %181, i32 noundef 0)
  %8302 = icmp eq i32 %8301, -1
  br i1 %8302, label %8303, label %8356

8303:                                             ; preds = %8298
  br label %8304

8304:                                             ; preds = %8303
  br label %8305

8305:                                             ; preds = %8304
  call void @llvm.lifetime.start.p0(i64 4, ptr %182) #11
  %8306 = call ptr @__errno_location() #12
  %8307 = load i32, ptr %8306, align 4, !tbaa !5
  store i32 %8307, ptr %182, align 4, !tbaa !5
  %8308 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8309 = call i32 @s2n_print_stacktrace(ptr noundef %8308)
  %8310 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8311 = trunc i8 %8310 to i1
  br i1 %8311, label %8312, label %8334

8312:                                             ; preds = %8305
  %8313 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8314 = call i32 @fileno(ptr noundef %8313) #11
  %8315 = call i32 @isatty(i32 noundef %8314) #11
  %8316 = icmp ne i32 %8315, 0
  br i1 %8316, label %8317, label %8334

8317:                                             ; preds = %8312
  %8318 = load i32, ptr %182, align 4, !tbaa !5
  %8319 = call ptr @__errno_location() #12
  store i32 %8318, ptr %8319, align 4, !tbaa !5
  %8320 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8321 = load i32, ptr @test_count, align 4, !tbaa !5
  %8322 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8323 = load i32, ptr %8322, align 4, !tbaa !5
  %8324 = call ptr @s2n_strerror(i32 noundef %8323, ptr noundef @.str.4)
  %8325 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8326 = load i32, ptr %8325, align 4, !tbaa !5
  %8327 = call ptr @s2n_strerror_debug(i32 noundef %8326, ptr noundef @.str.4)
  %8328 = call ptr @__errno_location() #12
  %8329 = load i32, ptr %8328, align 4, !tbaa !5
  %8330 = call ptr @strerror(i32 noundef %8329) #11
  %8331 = call ptr @__errno_location() #12
  %8332 = load i32, ptr %8331, align 4, !tbaa !5
  %8333 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8320, ptr noundef @.str.2, i32 noundef %8321, ptr noundef @.str.65, ptr noundef @.str.1, i32 noundef 389, ptr noundef %8324, ptr noundef %8327, ptr noundef %8330, i32 noundef %8332) #11
  br label %8351

8334:                                             ; preds = %8312, %8305
  %8335 = load i32, ptr %182, align 4, !tbaa !5
  %8336 = call ptr @__errno_location() #12
  store i32 %8335, ptr %8336, align 4, !tbaa !5
  %8337 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8338 = load i32, ptr @test_count, align 4, !tbaa !5
  %8339 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8340 = load i32, ptr %8339, align 4, !tbaa !5
  %8341 = call ptr @s2n_strerror(i32 noundef %8340, ptr noundef @.str.4)
  %8342 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8343 = load i32, ptr %8342, align 4, !tbaa !5
  %8344 = call ptr @s2n_strerror_debug(i32 noundef %8343, ptr noundef @.str.4)
  %8345 = call ptr @__errno_location() #12
  %8346 = load i32, ptr %8345, align 4, !tbaa !5
  %8347 = call ptr @strerror(i32 noundef %8346) #11
  %8348 = call ptr @__errno_location() #12
  %8349 = load i32, ptr %8348, align 4, !tbaa !5
  %8350 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8337, ptr noundef @.str.5, i32 noundef %8338, ptr noundef @.str.65, ptr noundef @.str.1, i32 noundef 389, ptr noundef %8341, ptr noundef %8344, ptr noundef %8347, i32 noundef %8349) #11
  br label %8351

8351:                                             ; preds = %8334, %8317
  call void @llvm.lifetime.end.p0(i64 4, ptr %182) #11
  br label %8352

8352:                                             ; preds = %8351
  br label %8353

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

8354:                                             ; No predecessors!
  br label %8355

8355:                                             ; preds = %8354
  br label %8356

8356:                                             ; preds = %8355, %8298
  br label %8357

8357:                                             ; preds = %8356
  br label %8358

8358:                                             ; preds = %8357
  br label %8359

8359:                                             ; preds = %8358
  %8360 = load i32, ptr @test_count, align 4, !tbaa !5
  %8361 = add nsw i32 %8360, 1
  store i32 %8361, ptr @test_count, align 4, !tbaa !5
  %8362 = load ptr, ptr %178, align 8, !tbaa !9
  %8363 = call i32 @s2n_connection_set_io_stuffers(ptr noundef %181, ptr noundef %181, ptr noundef %8362)
  %8364 = icmp eq i32 %8363, -1
  br i1 %8364, label %8365, label %8418

8365:                                             ; preds = %8359
  br label %8366

8366:                                             ; preds = %8365
  br label %8367

8367:                                             ; preds = %8366
  call void @llvm.lifetime.start.p0(i64 4, ptr %183) #11
  %8368 = call ptr @__errno_location() #12
  %8369 = load i32, ptr %8368, align 4, !tbaa !5
  store i32 %8369, ptr %183, align 4, !tbaa !5
  %8370 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8371 = call i32 @s2n_print_stacktrace(ptr noundef %8370)
  %8372 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8373 = trunc i8 %8372 to i1
  br i1 %8373, label %8374, label %8396

8374:                                             ; preds = %8367
  %8375 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8376 = call i32 @fileno(ptr noundef %8375) #11
  %8377 = call i32 @isatty(i32 noundef %8376) #11
  %8378 = icmp ne i32 %8377, 0
  br i1 %8378, label %8379, label %8396

8379:                                             ; preds = %8374
  %8380 = load i32, ptr %183, align 4, !tbaa !5
  %8381 = call ptr @__errno_location() #12
  store i32 %8380, ptr %8381, align 4, !tbaa !5
  %8382 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8383 = load i32, ptr @test_count, align 4, !tbaa !5
  %8384 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8385 = load i32, ptr %8384, align 4, !tbaa !5
  %8386 = call ptr @s2n_strerror(i32 noundef %8385, ptr noundef @.str.4)
  %8387 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8388 = load i32, ptr %8387, align 4, !tbaa !5
  %8389 = call ptr @s2n_strerror_debug(i32 noundef %8388, ptr noundef @.str.4)
  %8390 = call ptr @__errno_location() #12
  %8391 = load i32, ptr %8390, align 4, !tbaa !5
  %8392 = call ptr @strerror(i32 noundef %8391) #11
  %8393 = call ptr @__errno_location() #12
  %8394 = load i32, ptr %8393, align 4, !tbaa !5
  %8395 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8382, ptr noundef @.str.2, i32 noundef %8383, ptr noundef @.str.77, ptr noundef @.str.1, i32 noundef 390, ptr noundef %8386, ptr noundef %8389, ptr noundef %8392, i32 noundef %8394) #11
  br label %8413

8396:                                             ; preds = %8374, %8367
  %8397 = load i32, ptr %183, align 4, !tbaa !5
  %8398 = call ptr @__errno_location() #12
  store i32 %8397, ptr %8398, align 4, !tbaa !5
  %8399 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8400 = load i32, ptr @test_count, align 4, !tbaa !5
  %8401 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8402 = load i32, ptr %8401, align 4, !tbaa !5
  %8403 = call ptr @s2n_strerror(i32 noundef %8402, ptr noundef @.str.4)
  %8404 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8405 = load i32, ptr %8404, align 4, !tbaa !5
  %8406 = call ptr @s2n_strerror_debug(i32 noundef %8405, ptr noundef @.str.4)
  %8407 = call ptr @__errno_location() #12
  %8408 = load i32, ptr %8407, align 4, !tbaa !5
  %8409 = call ptr @strerror(i32 noundef %8408) #11
  %8410 = call ptr @__errno_location() #12
  %8411 = load i32, ptr %8410, align 4, !tbaa !5
  %8412 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8399, ptr noundef @.str.5, i32 noundef %8400, ptr noundef @.str.77, ptr noundef @.str.1, i32 noundef 390, ptr noundef %8403, ptr noundef %8406, ptr noundef %8409, i32 noundef %8411) #11
  br label %8413

8413:                                             ; preds = %8396, %8379
  call void @llvm.lifetime.end.p0(i64 4, ptr %183) #11
  br label %8414

8414:                                             ; preds = %8413
  br label %8415

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

8416:                                             ; No predecessors!
  br label %8417

8417:                                             ; preds = %8416
  br label %8418

8418:                                             ; preds = %8417, %8359
  br label %8419

8419:                                             ; preds = %8418
  br label %8420

8420:                                             ; preds = %8419
  %8421 = load ptr, ptr %178, align 8, !tbaa !9
  %8422 = getelementptr inbounds %struct.s2n_connection, ptr %8421, i32 0, i32 94
  call void @s2n_atomic_flag_set(ptr noundef %8422)
  br label %8423

8423:                                             ; preds = %8420
  %8424 = load i32, ptr @test_count, align 4, !tbaa !5
  %8425 = add nsw i32 %8424, 1
  store i32 %8425, ptr @test_count, align 4, !tbaa !5
  %8426 = load i64, ptr %14, align 8, !tbaa !20
  %8427 = load ptr, ptr %178, align 8, !tbaa !9
  %8428 = getelementptr inbounds %struct.s2n_connection, ptr %8427, i32 0, i32 27
  %8429 = load ptr, ptr %8428, align 8, !tbaa !50
  %8430 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %8429, i32 0, i32 7
  %8431 = getelementptr inbounds [8 x i8], ptr %8430, i64 0, i64 0
  %8432 = call i32 @s2n_write_uint64(i64 noundef %8426, ptr noundef %8431)
  %8433 = getelementptr inbounds %struct.s2n_result, ptr %184, i32 0, i32 0
  store i32 %8432, ptr %8433, align 4
  %8434 = getelementptr inbounds %struct.s2n_result, ptr %184, i32 0, i32 0
  %8435 = load i32, ptr %8434, align 4
  %8436 = call zeroext i1 @s2n_result_is_ok(i32 %8435)
  br i1 %8436, label %8490, label %8437

8437:                                             ; preds = %8423
  br label %8438

8438:                                             ; preds = %8437
  br label %8439

8439:                                             ; preds = %8438
  call void @llvm.lifetime.start.p0(i64 4, ptr %185) #11
  %8440 = call ptr @__errno_location() #12
  %8441 = load i32, ptr %8440, align 4, !tbaa !5
  store i32 %8441, ptr %185, align 4, !tbaa !5
  %8442 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8443 = call i32 @s2n_print_stacktrace(ptr noundef %8442)
  %8444 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8445 = trunc i8 %8444 to i1
  br i1 %8445, label %8446, label %8468

8446:                                             ; preds = %8439
  %8447 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8448 = call i32 @fileno(ptr noundef %8447) #11
  %8449 = call i32 @isatty(i32 noundef %8448) #11
  %8450 = icmp ne i32 %8449, 0
  br i1 %8450, label %8451, label %8468

8451:                                             ; preds = %8446
  %8452 = load i32, ptr %185, align 4, !tbaa !5
  %8453 = call ptr @__errno_location() #12
  store i32 %8452, ptr %8453, align 4, !tbaa !5
  %8454 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8455 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %8457, ptr noundef @.str.4)
  %8459 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8460 = load i32, ptr %8459, align 4, !tbaa !5
  %8461 = call ptr @s2n_strerror_debug(i32 noundef %8460, ptr noundef @.str.4)
  %8462 = call ptr @__errno_location() #12
  %8463 = load i32, ptr %8462, align 4, !tbaa !5
  %8464 = call ptr @strerror(i32 noundef %8463) #11
  %8465 = call ptr @__errno_location() #12
  %8466 = load i32, ptr %8465, align 4, !tbaa !5
  %8467 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8454, ptr noundef @.str.2, i32 noundef %8455, ptr noundef @.str.78, ptr noundef @.str.1, i32 noundef 394, ptr noundef %8458, ptr noundef %8461, ptr noundef %8464, i32 noundef %8466) #11
  br label %8485

8468:                                             ; preds = %8446, %8439
  %8469 = load i32, ptr %185, align 4, !tbaa !5
  %8470 = call ptr @__errno_location() #12
  store i32 %8469, ptr %8470, align 4, !tbaa !5
  %8471 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8472 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %8474, ptr noundef @.str.4)
  %8476 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8477 = load i32, ptr %8476, align 4, !tbaa !5
  %8478 = call ptr @s2n_strerror_debug(i32 noundef %8477, ptr noundef @.str.4)
  %8479 = call ptr @__errno_location() #12
  %8480 = load i32, ptr %8479, align 4, !tbaa !5
  %8481 = call ptr @strerror(i32 noundef %8480) #11
  %8482 = call ptr @__errno_location() #12
  %8483 = load i32, ptr %8482, align 4, !tbaa !5
  %8484 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8471, ptr noundef @.str.5, i32 noundef %8472, ptr noundef @.str.78, ptr noundef @.str.1, i32 noundef 394, ptr noundef %8475, ptr noundef %8478, ptr noundef %8481, i32 noundef %8483) #11
  br label %8485

8485:                                             ; preds = %8468, %8451
  call void @llvm.lifetime.end.p0(i64 4, ptr %185) #11
  br label %8486

8486:                                             ; preds = %8485
  br label %8487

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

8488:                                             ; No predecessors!
  br label %8489

8489:                                             ; preds = %8488
  br label %8490

8490:                                             ; preds = %8489, %8423
  br label %8491

8491:                                             ; preds = %8490
  br label %8492

8492:                                             ; preds = %8491
  call void @llvm.lifetime.start.p0(i64 4, ptr %186) #11
  store i32 0, ptr %186, align 4, !tbaa !5
  br label %8493

8493:                                             ; preds = %8492
  br label %8494

8494:                                             ; preds = %8493
  br label %8495

8495:                                             ; preds = %8494
  %8496 = load i32, ptr @test_count, align 4, !tbaa !5
  %8497 = add nsw i32 %8496, 1
  store i32 %8497, ptr @test_count, align 4, !tbaa !5
  %8498 = load ptr, ptr %178, align 8, !tbaa !9
  %8499 = call i32 @s2n_key_update_send(ptr noundef %8498, ptr noundef %186)
  %8500 = icmp eq i32 %8499, -1
  br i1 %8500, label %8554, label %8501

8501:                                             ; preds = %8495
  br label %8502

8502:                                             ; preds = %8501
  br label %8503

8503:                                             ; preds = %8502
  call void @llvm.lifetime.start.p0(i64 4, ptr %187) #11
  %8504 = call ptr @__errno_location() #12
  %8505 = load i32, ptr %8504, align 4, !tbaa !5
  store i32 %8505, ptr %187, align 4, !tbaa !5
  %8506 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8507 = call i32 @s2n_print_stacktrace(ptr noundef %8506)
  %8508 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8509 = trunc i8 %8508 to i1
  br i1 %8509, label %8510, label %8532

8510:                                             ; preds = %8503
  %8511 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8512 = call i32 @fileno(ptr noundef %8511) #11
  %8513 = call i32 @isatty(i32 noundef %8512) #11
  %8514 = icmp ne i32 %8513, 0
  br i1 %8514, label %8515, label %8532

8515:                                             ; preds = %8510
  %8516 = load i32, ptr %187, align 4, !tbaa !5
  %8517 = call ptr @__errno_location() #12
  store i32 %8516, ptr %8517, align 4, !tbaa !5
  %8518 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8519 = load i32, ptr @test_count, align 4, !tbaa !5
  %8520 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8521 = load i32, ptr %8520, align 4, !tbaa !5
  %8522 = call ptr @s2n_strerror(i32 noundef %8521, ptr noundef @.str.4)
  %8523 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8524 = load i32, ptr %8523, align 4, !tbaa !5
  %8525 = call ptr @s2n_strerror_debug(i32 noundef %8524, ptr noundef @.str.4)
  %8526 = call ptr @__errno_location() #12
  %8527 = load i32, ptr %8526, align 4, !tbaa !5
  %8528 = call ptr @strerror(i32 noundef %8527) #11
  %8529 = call ptr @__errno_location() #12
  %8530 = load i32, ptr %8529, align 4, !tbaa !5
  %8531 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8518, ptr noundef @.str.2, i32 noundef %8519, ptr noundef @.str.79, ptr noundef @.str.1, i32 noundef 397, ptr noundef %8522, ptr noundef %8525, ptr noundef %8528, i32 noundef %8530) #11
  br label %8549

8532:                                             ; preds = %8510, %8503
  %8533 = load i32, ptr %187, align 4, !tbaa !5
  %8534 = call ptr @__errno_location() #12
  store i32 %8533, ptr %8534, align 4, !tbaa !5
  %8535 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8536 = load i32, ptr @test_count, align 4, !tbaa !5
  %8537 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8538 = load i32, ptr %8537, align 4, !tbaa !5
  %8539 = call ptr @s2n_strerror(i32 noundef %8538, ptr noundef @.str.4)
  %8540 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8541 = load i32, ptr %8540, align 4, !tbaa !5
  %8542 = call ptr @s2n_strerror_debug(i32 noundef %8541, ptr noundef @.str.4)
  %8543 = call ptr @__errno_location() #12
  %8544 = load i32, ptr %8543, align 4, !tbaa !5
  %8545 = call ptr @strerror(i32 noundef %8544) #11
  %8546 = call ptr @__errno_location() #12
  %8547 = load i32, ptr %8546, align 4, !tbaa !5
  %8548 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8535, ptr noundef @.str.5, i32 noundef %8536, ptr noundef @.str.79, ptr noundef @.str.1, i32 noundef 397, ptr noundef %8539, ptr noundef %8542, ptr noundef %8545, i32 noundef %8547) #11
  br label %8549

8549:                                             ; preds = %8532, %8515
  call void @llvm.lifetime.end.p0(i64 4, ptr %187) #11
  br label %8550

8550:                                             ; preds = %8549
  br label %8551

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

8552:                                             ; No predecessors!
  br label %8553

8553:                                             ; preds = %8552
  br label %8554

8554:                                             ; preds = %8553, %8495
  br label %8555

8555:                                             ; preds = %8554
  br label %8556

8556:                                             ; preds = %8555
  br label %8557

8557:                                             ; preds = %8556
  %8558 = load i32, ptr @test_count, align 4, !tbaa !5
  %8559 = add nsw i32 %8558, 1
  store i32 %8559, ptr @test_count, align 4, !tbaa !5
  %8560 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8561 = load i32, ptr %8560, align 4, !tbaa !5
  %8562 = icmp eq i32 %8561, 402653194
  br i1 %8562, label %8616, label %8563

8563:                                             ; preds = %8557
  br label %8564

8564:                                             ; preds = %8563
  br label %8565

8565:                                             ; preds = %8564
  call void @llvm.lifetime.start.p0(i64 4, ptr %188) #11
  %8566 = call ptr @__errno_location() #12
  %8567 = load i32, ptr %8566, align 4, !tbaa !5
  store i32 %8567, ptr %188, align 4, !tbaa !5
  %8568 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8569 = call i32 @s2n_print_stacktrace(ptr noundef %8568)
  %8570 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8571 = trunc i8 %8570 to i1
  br i1 %8571, label %8572, label %8594

8572:                                             ; preds = %8565
  %8573 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8574 = call i32 @fileno(ptr noundef %8573) #11
  %8575 = call i32 @isatty(i32 noundef %8574) #11
  %8576 = icmp ne i32 %8575, 0
  br i1 %8576, label %8577, label %8594

8577:                                             ; preds = %8572
  %8578 = load i32, ptr %188, align 4, !tbaa !5
  %8579 = call ptr @__errno_location() #12
  store i32 %8578, ptr %8579, align 4, !tbaa !5
  %8580 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8581 = load i32, ptr @test_count, align 4, !tbaa !5
  %8582 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8583 = load i32, ptr %8582, align 4, !tbaa !5
  %8584 = call ptr @s2n_strerror(i32 noundef %8583, ptr noundef @.str.4)
  %8585 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8586 = load i32, ptr %8585, align 4, !tbaa !5
  %8587 = call ptr @s2n_strerror_debug(i32 noundef %8586, ptr noundef @.str.4)
  %8588 = call ptr @__errno_location() #12
  %8589 = load i32, ptr %8588, align 4, !tbaa !5
  %8590 = call ptr @strerror(i32 noundef %8589) #11
  %8591 = call ptr @__errno_location() #12
  %8592 = load i32, ptr %8591, align 4, !tbaa !5
  %8593 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8580, ptr noundef @.str.2, i32 noundef %8581, ptr noundef @.str.80, ptr noundef @.str.1, i32 noundef 397, ptr noundef %8584, ptr noundef %8587, ptr noundef %8590, i32 noundef %8592) #11
  br label %8611

8594:                                             ; preds = %8572, %8565
  %8595 = load i32, ptr %188, align 4, !tbaa !5
  %8596 = call ptr @__errno_location() #12
  store i32 %8595, ptr %8596, align 4, !tbaa !5
  %8597 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8598 = load i32, ptr @test_count, align 4, !tbaa !5
  %8599 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8600 = load i32, ptr %8599, align 4, !tbaa !5
  %8601 = call ptr @s2n_strerror(i32 noundef %8600, ptr noundef @.str.4)
  %8602 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8603 = load i32, ptr %8602, align 4, !tbaa !5
  %8604 = call ptr @s2n_strerror_debug(i32 noundef %8603, ptr noundef @.str.4)
  %8605 = call ptr @__errno_location() #12
  %8606 = load i32, ptr %8605, align 4, !tbaa !5
  %8607 = call ptr @strerror(i32 noundef %8606) #11
  %8608 = call ptr @__errno_location() #12
  %8609 = load i32, ptr %8608, align 4, !tbaa !5
  %8610 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8597, ptr noundef @.str.5, i32 noundef %8598, ptr noundef @.str.80, ptr noundef @.str.1, i32 noundef 397, ptr noundef %8601, ptr noundef %8604, ptr noundef %8607, i32 noundef %8609) #11
  br label %8611

8611:                                             ; preds = %8594, %8577
  call void @llvm.lifetime.end.p0(i64 4, ptr %188) #11
  br label %8612

8612:                                             ; preds = %8611
  br label %8613

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

8614:                                             ; No predecessors!
  br label %8615

8615:                                             ; preds = %8614
  br label %8616

8616:                                             ; preds = %8615, %8557
  br label %8617

8617:                                             ; preds = %8616
  br label %8618

8618:                                             ; preds = %8617
  br label %8619

8619:                                             ; preds = %8618
  %8620 = load i32, ptr @test_count, align 4, !tbaa !5
  %8621 = add nsw i32 %8620, 1
  store i32 %8621, ptr @test_count, align 4, !tbaa !5
  %8622 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8623 = load i32, ptr %8622, align 4, !tbaa !5
  %8624 = call ptr @s2n_strerror_debug(i32 noundef %8623, ptr noundef @.str.4)
  %8625 = icmp eq ptr %8624, null
  br i1 %8625, label %8626, label %8679

8626:                                             ; preds = %8619
  br label %8627

8627:                                             ; preds = %8626
  br label %8628

8628:                                             ; preds = %8627
  call void @llvm.lifetime.start.p0(i64 4, ptr %189) #11
  %8629 = call ptr @__errno_location() #12
  %8630 = load i32, ptr %8629, align 4, !tbaa !5
  store i32 %8630, ptr %189, align 4, !tbaa !5
  %8631 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8632 = call i32 @s2n_print_stacktrace(ptr noundef %8631)
  %8633 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8634 = trunc i8 %8633 to i1
  br i1 %8634, label %8635, label %8657

8635:                                             ; preds = %8628
  %8636 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8637 = call i32 @fileno(ptr noundef %8636) #11
  %8638 = call i32 @isatty(i32 noundef %8637) #11
  %8639 = icmp ne i32 %8638, 0
  br i1 %8639, label %8640, label %8657

8640:                                             ; preds = %8635
  %8641 = load i32, ptr %189, align 4, !tbaa !5
  %8642 = call ptr @__errno_location() #12
  store i32 %8641, ptr %8642, align 4, !tbaa !5
  %8643 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8644 = load i32, ptr @test_count, align 4, !tbaa !5
  %8645 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8646 = load i32, ptr %8645, align 4, !tbaa !5
  %8647 = call ptr @s2n_strerror(i32 noundef %8646, ptr noundef @.str.4)
  %8648 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8649 = load i32, ptr %8648, align 4, !tbaa !5
  %8650 = call ptr @s2n_strerror_debug(i32 noundef %8649, ptr noundef @.str.4)
  %8651 = call ptr @__errno_location() #12
  %8652 = load i32, ptr %8651, align 4, !tbaa !5
  %8653 = call ptr @strerror(i32 noundef %8652) #11
  %8654 = call ptr @__errno_location() #12
  %8655 = load i32, ptr %8654, align 4, !tbaa !5
  %8656 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8643, ptr noundef @.str.2, i32 noundef %8644, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 397, ptr noundef %8647, ptr noundef %8650, ptr noundef %8653, i32 noundef %8655) #11
  br label %8674

8657:                                             ; preds = %8635, %8628
  %8658 = load i32, ptr %189, align 4, !tbaa !5
  %8659 = call ptr @__errno_location() #12
  store i32 %8658, ptr %8659, align 4, !tbaa !5
  %8660 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8661 = load i32, ptr @test_count, align 4, !tbaa !5
  %8662 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8663 = load i32, ptr %8662, align 4, !tbaa !5
  %8664 = call ptr @s2n_strerror(i32 noundef %8663, ptr noundef @.str.4)
  %8665 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8666 = load i32, ptr %8665, align 4, !tbaa !5
  %8667 = call ptr @s2n_strerror_debug(i32 noundef %8666, ptr noundef @.str.4)
  %8668 = call ptr @__errno_location() #12
  %8669 = load i32, ptr %8668, align 4, !tbaa !5
  %8670 = call ptr @strerror(i32 noundef %8669) #11
  %8671 = call ptr @__errno_location() #12
  %8672 = load i32, ptr %8671, align 4, !tbaa !5
  %8673 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8660, ptr noundef @.str.5, i32 noundef %8661, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 397, ptr noundef %8664, ptr noundef %8667, ptr noundef %8670, i32 noundef %8672) #11
  br label %8674

8674:                                             ; preds = %8657, %8640
  call void @llvm.lifetime.end.p0(i64 4, ptr %189) #11
  br label %8675

8675:                                             ; preds = %8674
  br label %8676

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

8677:                                             ; No predecessors!
  br label %8678

8678:                                             ; preds = %8677
  br label %8679

8679:                                             ; preds = %8678, %8619
  br label %8680

8680:                                             ; preds = %8679
  br label %8681

8681:                                             ; preds = %8680
  br label %8682

8682:                                             ; preds = %8681
  br label %8683

8683:                                             ; preds = %8682
  br label %8684

8684:                                             ; preds = %8683
  %8685 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %8685, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %8686 = call ptr @__errno_location() #12
  store i32 0, ptr %8686, align 4, !tbaa !5
  br label %8687

8687:                                             ; preds = %8684
  br label %8688

8688:                                             ; preds = %8687
  br label %8689

8689:                                             ; preds = %8688
  br label %8690

8690:                                             ; preds = %8689
  br label %8691

8691:                                             ; preds = %8690
  %8692 = load i32, ptr @test_count, align 4, !tbaa !5
  %8693 = add nsw i32 %8692, 1
  store i32 %8693, ptr @test_count, align 4, !tbaa !5
  %8694 = load ptr, ptr %178, align 8, !tbaa !9
  %8695 = getelementptr inbounds %struct.s2n_connection, ptr %8694, i32 0, i32 27
  %8696 = load ptr, ptr %8695, align 8, !tbaa !50
  %8697 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %8696, i32 0, i32 7
  %8698 = getelementptr inbounds [8 x i8], ptr %8697, i64 0, i64 0
  %8699 = getelementptr inbounds [8 x i8], ptr %18, i64 0, i64 0
  %8700 = call i32 @memcmp(ptr noundef %8698, ptr noundef %8699, i64 noundef 8) #14
  %8701 = icmp eq i32 %8700, 0
  br i1 %8701, label %8702, label %8755

8702:                                             ; preds = %8691
  br label %8703

8703:                                             ; preds = %8702
  br label %8704

8704:                                             ; preds = %8703
  call void @llvm.lifetime.start.p0(i64 4, ptr %190) #11
  %8705 = call ptr @__errno_location() #12
  %8706 = load i32, ptr %8705, align 4, !tbaa !5
  store i32 %8706, ptr %190, align 4, !tbaa !5
  %8707 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8708 = call i32 @s2n_print_stacktrace(ptr noundef %8707)
  %8709 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8710 = trunc i8 %8709 to i1
  br i1 %8710, label %8711, label %8733

8711:                                             ; preds = %8704
  %8712 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8713 = call i32 @fileno(ptr noundef %8712) #11
  %8714 = call i32 @isatty(i32 noundef %8713) #11
  %8715 = icmp ne i32 %8714, 0
  br i1 %8715, label %8716, label %8733

8716:                                             ; preds = %8711
  %8717 = load i32, ptr %190, align 4, !tbaa !5
  %8718 = call ptr @__errno_location() #12
  store i32 %8717, ptr %8718, align 4, !tbaa !5
  %8719 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8720 = load i32, ptr @test_count, align 4, !tbaa !5
  %8721 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8722 = load i32, ptr %8721, align 4, !tbaa !5
  %8723 = call ptr @s2n_strerror(i32 noundef %8722, ptr noundef @.str.4)
  %8724 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8725 = load i32, ptr %8724, align 4, !tbaa !5
  %8726 = call ptr @s2n_strerror_debug(i32 noundef %8725, ptr noundef @.str.4)
  %8727 = call ptr @__errno_location() #12
  %8728 = load i32, ptr %8727, align 4, !tbaa !5
  %8729 = call ptr @strerror(i32 noundef %8728) #11
  %8730 = call ptr @__errno_location() #12
  %8731 = load i32, ptr %8730, align 4, !tbaa !5
  %8732 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8719, ptr noundef @.str.2, i32 noundef %8720, ptr noundef @.str.81, ptr noundef @.str.1, i32 noundef 401, ptr noundef %8723, ptr noundef %8726, ptr noundef %8729, i32 noundef %8731) #11
  br label %8750

8733:                                             ; preds = %8711, %8704
  %8734 = load i32, ptr %190, align 4, !tbaa !5
  %8735 = call ptr @__errno_location() #12
  store i32 %8734, ptr %8735, align 4, !tbaa !5
  %8736 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8737 = load i32, ptr @test_count, align 4, !tbaa !5
  %8738 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8739 = load i32, ptr %8738, align 4, !tbaa !5
  %8740 = call ptr @s2n_strerror(i32 noundef %8739, ptr noundef @.str.4)
  %8741 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8742 = load i32, ptr %8741, align 4, !tbaa !5
  %8743 = call ptr @s2n_strerror_debug(i32 noundef %8742, ptr noundef @.str.4)
  %8744 = call ptr @__errno_location() #12
  %8745 = load i32, ptr %8744, align 4, !tbaa !5
  %8746 = call ptr @strerror(i32 noundef %8745) #11
  %8747 = call ptr @__errno_location() #12
  %8748 = load i32, ptr %8747, align 4, !tbaa !5
  %8749 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8736, ptr noundef @.str.5, i32 noundef %8737, ptr noundef @.str.81, ptr noundef @.str.1, i32 noundef 401, ptr noundef %8740, ptr noundef %8743, ptr noundef %8746, i32 noundef %8748) #11
  br label %8750

8750:                                             ; preds = %8733, %8716
  call void @llvm.lifetime.end.p0(i64 4, ptr %190) #11
  br label %8751

8751:                                             ; preds = %8750
  br label %8752

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

8753:                                             ; No predecessors!
  br label %8754

8754:                                             ; preds = %8753
  br label %8755

8755:                                             ; preds = %8754, %8691
  br label %8756

8756:                                             ; preds = %8755
  br label %8757

8757:                                             ; preds = %8756
  br label %8758

8758:                                             ; preds = %8757
  %8759 = load i32, ptr @test_count, align 4, !tbaa !5
  %8760 = add nsw i32 %8759, 1
  store i32 %8760, ptr @test_count, align 4, !tbaa !5
  %8761 = getelementptr inbounds %struct.s2n_stuffer, ptr %181, i32 0, i32 2
  %8762 = load i32, ptr %8761, align 4, !tbaa !22
  %8763 = getelementptr inbounds %struct.s2n_stuffer, ptr %181, i32 0, i32 1
  %8764 = load i32, ptr %8763, align 8, !tbaa !25
  %8765 = sub i32 %8762, %8764
  %8766 = icmp eq i32 %8765, 0
  br i1 %8766, label %8820, label %8767

8767:                                             ; preds = %8758
  br label %8768

8768:                                             ; preds = %8767
  br label %8769

8769:                                             ; preds = %8768
  call void @llvm.lifetime.start.p0(i64 4, ptr %191) #11
  %8770 = call ptr @__errno_location() #12
  %8771 = load i32, ptr %8770, align 4, !tbaa !5
  store i32 %8771, ptr %191, align 4, !tbaa !5
  %8772 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8773 = call i32 @s2n_print_stacktrace(ptr noundef %8772)
  %8774 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8775 = trunc i8 %8774 to i1
  br i1 %8775, label %8776, label %8798

8776:                                             ; preds = %8769
  %8777 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8778 = call i32 @fileno(ptr noundef %8777) #11
  %8779 = call i32 @isatty(i32 noundef %8778) #11
  %8780 = icmp ne i32 %8779, 0
  br i1 %8780, label %8781, label %8798

8781:                                             ; preds = %8776
  %8782 = load i32, ptr %191, align 4, !tbaa !5
  %8783 = call ptr @__errno_location() #12
  store i32 %8782, ptr %8783, align 4, !tbaa !5
  %8784 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8785 = load i32, ptr @test_count, align 4, !tbaa !5
  %8786 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8787 = load i32, ptr %8786, align 4, !tbaa !5
  %8788 = call ptr @s2n_strerror(i32 noundef %8787, ptr noundef @.str.4)
  %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_debug(i32 noundef %8790, ptr noundef @.str.4)
  %8792 = call ptr @__errno_location() #12
  %8793 = load i32, ptr %8792, align 4, !tbaa !5
  %8794 = call ptr @strerror(i32 noundef %8793) #11
  %8795 = call ptr @__errno_location() #12
  %8796 = load i32, ptr %8795, align 4, !tbaa !5
  %8797 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8784, ptr noundef @.str.2, i32 noundef %8785, ptr noundef @.str.82, ptr noundef @.str.1, i32 noundef 402, ptr noundef %8788, ptr noundef %8791, ptr noundef %8794, i32 noundef %8796) #11
  br label %8815

8798:                                             ; preds = %8776, %8769
  %8799 = load i32, ptr %191, align 4, !tbaa !5
  %8800 = call ptr @__errno_location() #12
  store i32 %8799, ptr %8800, align 4, !tbaa !5
  %8801 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8802 = load i32, ptr @test_count, align 4, !tbaa !5
  %8803 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8804 = load i32, ptr %8803, align 4, !tbaa !5
  %8805 = call ptr @s2n_strerror(i32 noundef %8804, ptr noundef @.str.4)
  %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_debug(i32 noundef %8807, ptr noundef @.str.4)
  %8809 = call ptr @__errno_location() #12
  %8810 = load i32, ptr %8809, align 4, !tbaa !5
  %8811 = call ptr @strerror(i32 noundef %8810) #11
  %8812 = call ptr @__errno_location() #12
  %8813 = load i32, ptr %8812, align 4, !tbaa !5
  %8814 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8801, ptr noundef @.str.5, i32 noundef %8802, ptr noundef @.str.82, ptr noundef @.str.1, i32 noundef 402, ptr noundef %8805, ptr noundef %8808, ptr noundef %8811, i32 noundef %8813) #11
  br label %8815

8815:                                             ; preds = %8798, %8781
  call void @llvm.lifetime.end.p0(i64 4, ptr %191) #11
  br label %8816

8816:                                             ; preds = %8815
  br label %8817

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

8818:                                             ; No predecessors!
  br label %8819

8819:                                             ; preds = %8818
  br label %8820

8820:                                             ; preds = %8819, %8758
  br label %8821

8821:                                             ; preds = %8820
  br label %8822

8822:                                             ; preds = %8821
  call void @llvm.lifetime.end.p0(i64 4, ptr %186) #11
  %8823 = call i32 @s2n_stuffer_free(ptr noundef %181)
  call void @llvm.lifetime.end.p0(i64 40, ptr %181) #11
  store i32 0, ptr %12, align 4
  br label %8824

8824:                                             ; preds = %8822, %8293
  %8825 = call i32 @s2n_connection_ptr_free(ptr noundef %178)
  %8826 = getelementptr inbounds %struct.s2n_result, ptr %192, i32 0, i32 0
  store i32 %8825, ptr %8826, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %178) #11
  %8827 = load i32, ptr %12, align 4
  switch i32 %8827, label %15412 [
    i32 0, label %8828
  ]

8828:                                             ; preds = %8824
  call void @llvm.lifetime.start.p0(i64 8, ptr %193) #11
  store ptr null, ptr %193, align 8, !tbaa !9
  br label %8829

8829:                                             ; preds = %8828
  %8830 = load i32, ptr @test_count, align 4, !tbaa !5
  %8831 = add nsw i32 %8830, 1
  store i32 %8831, ptr @test_count, align 4, !tbaa !5
  %8832 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %8832, ptr %193, align 8, !tbaa !9
  %8833 = icmp eq ptr %8832, null
  br i1 %8833, label %8834, label %8887

8834:                                             ; preds = %8829
  br label %8835

8835:                                             ; preds = %8834
  br label %8836

8836:                                             ; preds = %8835
  call void @llvm.lifetime.start.p0(i64 4, ptr %194) #11
  %8837 = call ptr @__errno_location() #12
  %8838 = load i32, ptr %8837, align 4, !tbaa !5
  store i32 %8838, ptr %194, align 4, !tbaa !5
  %8839 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8840 = call i32 @s2n_print_stacktrace(ptr noundef %8839)
  %8841 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8842 = trunc i8 %8841 to i1
  br i1 %8842, label %8843, label %8865

8843:                                             ; preds = %8836
  %8844 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8845 = call i32 @fileno(ptr noundef %8844) #11
  %8846 = call i32 @isatty(i32 noundef %8845) #11
  %8847 = icmp ne i32 %8846, 0
  br i1 %8847, label %8848, label %8865

8848:                                             ; preds = %8843
  %8849 = load i32, ptr %194, align 4, !tbaa !5
  %8850 = call ptr @__errno_location() #12
  store i32 %8849, ptr %8850, align 4, !tbaa !5
  %8851 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8852 = load i32, ptr @test_count, align 4, !tbaa !5
  %8853 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8854 = load i32, ptr %8853, align 4, !tbaa !5
  %8855 = call ptr @s2n_strerror(i32 noundef %8854, ptr noundef @.str.4)
  %8856 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8857 = load i32, ptr %8856, align 4, !tbaa !5
  %8858 = call ptr @s2n_strerror_debug(i32 noundef %8857, ptr noundef @.str.4)
  %8859 = call ptr @__errno_location() #12
  %8860 = load i32, ptr %8859, align 4, !tbaa !5
  %8861 = call ptr @strerror(i32 noundef %8860) #11
  %8862 = call ptr @__errno_location() #12
  %8863 = load i32, ptr %8862, align 4, !tbaa !5
  %8864 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8851, ptr noundef @.str.2, i32 noundef %8852, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 408, ptr noundef %8855, ptr noundef %8858, ptr noundef %8861, i32 noundef %8863) #11
  br label %8882

8865:                                             ; preds = %8843, %8836
  %8866 = load i32, ptr %194, align 4, !tbaa !5
  %8867 = call ptr @__errno_location() #12
  store i32 %8866, ptr %8867, align 4, !tbaa !5
  %8868 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8869 = load i32, ptr @test_count, align 4, !tbaa !5
  %8870 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8871 = load i32, ptr %8870, align 4, !tbaa !5
  %8872 = call ptr @s2n_strerror(i32 noundef %8871, ptr noundef @.str.4)
  %8873 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8874 = load i32, ptr %8873, align 4, !tbaa !5
  %8875 = call ptr @s2n_strerror_debug(i32 noundef %8874, ptr noundef @.str.4)
  %8876 = call ptr @__errno_location() #12
  %8877 = load i32, ptr %8876, align 4, !tbaa !5
  %8878 = call ptr @strerror(i32 noundef %8877) #11
  %8879 = call ptr @__errno_location() #12
  %8880 = load i32, ptr %8879, align 4, !tbaa !5
  %8881 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8868, ptr noundef @.str.5, i32 noundef %8869, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 408, ptr noundef %8872, ptr noundef %8875, ptr noundef %8878, i32 noundef %8880) #11
  br label %8882

8882:                                             ; preds = %8865, %8848
  call void @llvm.lifetime.end.p0(i64 4, ptr %194) #11
  br label %8883

8883:                                             ; preds = %8882
  br label %8884

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

8885:                                             ; No predecessors!
  br label %8886

8886:                                             ; preds = %8885
  br label %8887

8887:                                             ; preds = %8886, %8829
  br label %8888

8888:                                             ; preds = %8887
  br label %8889

8889:                                             ; preds = %8888
  %8890 = load ptr, ptr %193, align 8, !tbaa !9
  %8891 = getelementptr inbounds %struct.s2n_connection, ptr %8890, i32 0, i32 23
  store i8 34, ptr %8891, align 4, !tbaa !26
  %8892 = load ptr, ptr %13, align 8, !tbaa !9
  %8893 = load ptr, ptr %193, align 8, !tbaa !9
  %8894 = getelementptr inbounds %struct.s2n_connection, ptr %8893, i32 0, i32 27
  %8895 = load ptr, ptr %8894, align 8, !tbaa !50
  %8896 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %8895, i32 0, i32 0
  store ptr %8892, ptr %8896, align 8, !tbaa !51
  br label %8897

8897:                                             ; preds = %8889
  call void @llvm.lifetime.start.p0(i64 4, ptr %195) #11
  %8898 = getelementptr inbounds %struct.s2n_blob, ptr %10, i32 0, i32 1
  %8899 = load i32, ptr %8898, align 8, !tbaa !56
  store i32 %8899, ptr %195, align 4, !tbaa !5
  %8900 = load i32, ptr %195, align 4, !tbaa !5
  %8901 = icmp ne i32 %8900, 0
  %8902 = xor i1 %8901, true
  %8903 = xor i1 %8902, true
  %8904 = zext i1 %8903 to i32
  %8905 = sext i32 %8904 to i64
  %8906 = call i64 @llvm.expect.i64(i64 %8905, i64 1)
  %8907 = icmp ne i64 %8906, 0
  br i1 %8907, label %8908, label %8961

8908:                                             ; preds = %8897
  call void @llvm.lifetime.start.p0(i64 8, ptr %196) #11
  %8909 = load ptr, ptr %193, align 8, !tbaa !9
  %8910 = getelementptr inbounds %struct.s2n_connection, ptr %8909, i32 0, i32 28
  %8911 = getelementptr inbounds %struct.s2n_secrets, ptr %8910, i32 0, i32 0
  %8912 = getelementptr inbounds %struct.s2n_tls13_secrets, ptr %8911, i32 0, i32 4
  %8913 = getelementptr inbounds [48 x i8], ptr %8912, i64 0, i64 0
  %8914 = getelementptr inbounds %struct.s2n_blob, ptr %10, i32 0, i32 0
  %8915 = load ptr, ptr %8914, align 8, !tbaa !57
  %8916 = load i32, ptr %195, align 4, !tbaa !5
  %8917 = zext i32 %8916 to i64
  %8918 = call ptr @s2n_ensure_memmove_trace(ptr noundef %8913, ptr noundef %8915, i64 noundef %8917)
  store ptr %8918, ptr %196, align 8, !tbaa !9
  br label %8919

8919:                                             ; preds = %8908
  %8920 = load ptr, ptr %196, align 8, !tbaa !9
  %8921 = icmp ne ptr %8920, null
  br i1 %8921, label %8955, label %8922

8922:                                             ; preds = %8919
  br label %8923

8923:                                             ; preds = %8922
  br label %8924

8924:                                             ; preds = %8923
  %8925 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %8926 = getelementptr inbounds %struct.s2n_debug_info, ptr %8925, i32 0, i32 0
  store ptr @.str.83, ptr %8926, align 8, !tbaa !58
  %8927 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %8928 = getelementptr inbounds %struct.s2n_debug_info, ptr %8927, i32 0, i32 0
  %8929 = load ptr, ptr %8928, align 8, !tbaa !58
  %8930 = getelementptr inbounds i8, ptr %8929, i64 21
  %8931 = call ptr @strrchr(ptr noundef %8930, i32 noundef 47) #14
  %8932 = icmp ne ptr %8931, null
  br i1 %8932, label %8933, label %8940

8933:                                             ; preds = %8924
  %8934 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %8935 = getelementptr inbounds %struct.s2n_debug_info, ptr %8934, i32 0, i32 0
  %8936 = load ptr, ptr %8935, align 8, !tbaa !58
  %8937 = getelementptr inbounds i8, ptr %8936, i64 21
  %8938 = call ptr @strrchr(ptr noundef %8937, i32 noundef 47) #14
  %8939 = getelementptr inbounds i8, ptr %8938, i64 1
  br label %8945

8940:                                             ; preds = %8924
  %8941 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %8942 = getelementptr inbounds %struct.s2n_debug_info, ptr %8941, i32 0, i32 0
  %8943 = load ptr, ptr %8942, align 8, !tbaa !58
  %8944 = getelementptr inbounds i8, ptr %8943, i64 21
  br label %8945

8945:                                             ; preds = %8940, %8933
  %8946 = phi ptr [ %8939, %8933 ], [ %8944, %8940 ]
  %8947 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %8948 = getelementptr inbounds %struct.s2n_debug_info, ptr %8947, i32 0, i32 1
  store ptr %8946, ptr %8948, align 8, !tbaa !60
  %8949 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 402653193, ptr %8949, align 4, !tbaa !5
  %8950 = call i32 @s2n_calculate_stacktrace()
  br label %8951

8951:                                             ; preds = %8945
  br label %8952

8952:                                             ; preds = %8951
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %8958

8953:                                             ; No predecessors!
  br label %8954

8954:                                             ; preds = %8953
  br label %8955

8955:                                             ; preds = %8954, %8919
  br label %8956

8956:                                             ; preds = %8955
  br label %8957

8957:                                             ; preds = %8956
  store i32 0, ptr %12, align 4
  br label %8958

8958:                                             ; preds = %8957, %8952
  call void @llvm.lifetime.end.p0(i64 8, ptr %196) #11
  %8959 = load i32, ptr %12, align 4
  switch i32 %8959, label %8962 [
    i32 0, label %8960
  ]

8960:                                             ; preds = %8958
  br label %8961

8961:                                             ; preds = %8960, %8897
  store i32 0, ptr %12, align 4
  br label %8962

8962:                                             ; preds = %8961, %8958
  call void @llvm.lifetime.end.p0(i64 4, ptr %195) #11
  %8963 = load i32, ptr %12, align 4
  switch i32 %8963, label %9482 [
    i32 0, label %8964
  ]

8964:                                             ; preds = %8962
  br label %8965

8965:                                             ; preds = %8964
  br label %8966

8966:                                             ; preds = %8965
  call void @llvm.lifetime.start.p0(i64 8, ptr %197) #11
  call void @llvm.memset.p0.i64(ptr align 1 %197, i8 0, i64 8, i1 false)
  call void @llvm.lifetime.start.p0(i64 40, ptr %198) #11
  call void @llvm.memset.p0.i64(ptr align 8 %198, i8 0, i64 40, i1 false)
  br label %8967

8967:                                             ; preds = %8966
  %8968 = load i32, ptr @test_count, align 4, !tbaa !5
  %8969 = add nsw i32 %8968, 1
  store i32 %8969, ptr @test_count, align 4, !tbaa !5
  %8970 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %198, i32 noundef 0)
  %8971 = icmp eq i32 %8970, -1
  br i1 %8971, label %8972, label %9025

8972:                                             ; preds = %8967
  br label %8973

8973:                                             ; preds = %8972
  br label %8974

8974:                                             ; preds = %8973
  call void @llvm.lifetime.start.p0(i64 4, ptr %199) #11
  %8975 = call ptr @__errno_location() #12
  %8976 = load i32, ptr %8975, align 4, !tbaa !5
  store i32 %8976, ptr %199, align 4, !tbaa !5
  %8977 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8978 = call i32 @s2n_print_stacktrace(ptr noundef %8977)
  %8979 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8980 = trunc i8 %8979 to i1
  br i1 %8980, label %8981, label %9003

8981:                                             ; preds = %8974
  %8982 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8983 = call i32 @fileno(ptr noundef %8982) #11
  %8984 = call i32 @isatty(i32 noundef %8983) #11
  %8985 = icmp ne i32 %8984, 0
  br i1 %8985, label %8986, label %9003

8986:                                             ; preds = %8981
  %8987 = load i32, ptr %199, align 4, !tbaa !5
  %8988 = call ptr @__errno_location() #12
  store i32 %8987, ptr %8988, align 4, !tbaa !5
  %8989 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8990 = load i32, ptr @test_count, align 4, !tbaa !5
  %8991 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8992 = load i32, ptr %8991, align 4, !tbaa !5
  %8993 = call ptr @s2n_strerror(i32 noundef %8992, ptr noundef @.str.4)
  %8994 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8995 = load i32, ptr %8994, align 4, !tbaa !5
  %8996 = call ptr @s2n_strerror_debug(i32 noundef %8995, ptr noundef @.str.4)
  %8997 = call ptr @__errno_location() #12
  %8998 = load i32, ptr %8997, align 4, !tbaa !5
  %8999 = call ptr @strerror(i32 noundef %8998) #11
  %9000 = call ptr @__errno_location() #12
  %9001 = load i32, ptr %9000, align 4, !tbaa !5
  %9002 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8989, ptr noundef @.str.2, i32 noundef %8990, ptr noundef @.str.65, ptr noundef @.str.1, i32 noundef 416, ptr noundef %8993, ptr noundef %8996, ptr noundef %8999, i32 noundef %9001) #11
  br label %9020

9003:                                             ; preds = %8981, %8974
  %9004 = load i32, ptr %199, align 4, !tbaa !5
  %9005 = call ptr @__errno_location() #12
  store i32 %9004, ptr %9005, align 4, !tbaa !5
  %9006 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9007 = load i32, ptr @test_count, align 4, !tbaa !5
  %9008 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9009 = load i32, ptr %9008, align 4, !tbaa !5
  %9010 = call ptr @s2n_strerror(i32 noundef %9009, ptr noundef @.str.4)
  %9011 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9012 = load i32, ptr %9011, align 4, !tbaa !5
  %9013 = call ptr @s2n_strerror_debug(i32 noundef %9012, ptr noundef @.str.4)
  %9014 = call ptr @__errno_location() #12
  %9015 = load i32, ptr %9014, align 4, !tbaa !5
  %9016 = call ptr @strerror(i32 noundef %9015) #11
  %9017 = call ptr @__errno_location() #12
  %9018 = load i32, ptr %9017, align 4, !tbaa !5
  %9019 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9006, ptr noundef @.str.5, i32 noundef %9007, ptr noundef @.str.65, ptr noundef @.str.1, i32 noundef 416, ptr noundef %9010, ptr noundef %9013, ptr noundef %9016, i32 noundef %9018) #11
  br label %9020

9020:                                             ; preds = %9003, %8986
  call void @llvm.lifetime.end.p0(i64 4, ptr %199) #11
  br label %9021

9021:                                             ; preds = %9020
  br label %9022

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

9023:                                             ; No predecessors!
  br label %9024

9024:                                             ; preds = %9023
  br label %9025

9025:                                             ; preds = %9024, %8967
  br label %9026

9026:                                             ; preds = %9025
  br label %9027

9027:                                             ; preds = %9026
  br label %9028

9028:                                             ; preds = %9027
  %9029 = load i32, ptr @test_count, align 4, !tbaa !5
  %9030 = add nsw i32 %9029, 1
  store i32 %9030, ptr @test_count, align 4, !tbaa !5
  %9031 = load ptr, ptr %193, align 8, !tbaa !9
  %9032 = call i32 @s2n_connection_set_io_stuffers(ptr noundef %198, ptr noundef %198, ptr noundef %9031)
  %9033 = icmp eq i32 %9032, -1
  br i1 %9033, label %9034, label %9087

9034:                                             ; preds = %9028
  br label %9035

9035:                                             ; preds = %9034
  br label %9036

9036:                                             ; preds = %9035
  call void @llvm.lifetime.start.p0(i64 4, ptr %200) #11
  %9037 = call ptr @__errno_location() #12
  %9038 = load i32, ptr %9037, align 4, !tbaa !5
  store i32 %9038, ptr %200, align 4, !tbaa !5
  %9039 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9040 = call i32 @s2n_print_stacktrace(ptr noundef %9039)
  %9041 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9042 = trunc i8 %9041 to i1
  br i1 %9042, label %9043, label %9065

9043:                                             ; preds = %9036
  %9044 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9045 = call i32 @fileno(ptr noundef %9044) #11
  %9046 = call i32 @isatty(i32 noundef %9045) #11
  %9047 = icmp ne i32 %9046, 0
  br i1 %9047, label %9048, label %9065

9048:                                             ; preds = %9043
  %9049 = load i32, ptr %200, align 4, !tbaa !5
  %9050 = call ptr @__errno_location() #12
  store i32 %9049, ptr %9050, align 4, !tbaa !5
  %9051 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9052 = load i32, ptr @test_count, align 4, !tbaa !5
  %9053 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9054 = load i32, ptr %9053, align 4, !tbaa !5
  %9055 = call ptr @s2n_strerror(i32 noundef %9054, ptr noundef @.str.4)
  %9056 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9057 = load i32, ptr %9056, align 4, !tbaa !5
  %9058 = call ptr @s2n_strerror_debug(i32 noundef %9057, ptr noundef @.str.4)
  %9059 = call ptr @__errno_location() #12
  %9060 = load i32, ptr %9059, align 4, !tbaa !5
  %9061 = call ptr @strerror(i32 noundef %9060) #11
  %9062 = call ptr @__errno_location() #12
  %9063 = load i32, ptr %9062, align 4, !tbaa !5
  %9064 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9051, ptr noundef @.str.2, i32 noundef %9052, ptr noundef @.str.66, ptr noundef @.str.1, i32 noundef 417, ptr noundef %9055, ptr noundef %9058, ptr noundef %9061, i32 noundef %9063) #11
  br label %9082

9065:                                             ; preds = %9043, %9036
  %9066 = load i32, ptr %200, align 4, !tbaa !5
  %9067 = call ptr @__errno_location() #12
  store i32 %9066, ptr %9067, align 4, !tbaa !5
  %9068 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9069 = load i32, ptr @test_count, align 4, !tbaa !5
  %9070 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9071 = load i32, ptr %9070, align 4, !tbaa !5
  %9072 = call ptr @s2n_strerror(i32 noundef %9071, ptr noundef @.str.4)
  %9073 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9074 = load i32, ptr %9073, align 4, !tbaa !5
  %9075 = call ptr @s2n_strerror_debug(i32 noundef %9074, ptr noundef @.str.4)
  %9076 = call ptr @__errno_location() #12
  %9077 = load i32, ptr %9076, align 4, !tbaa !5
  %9078 = call ptr @strerror(i32 noundef %9077) #11
  %9079 = call ptr @__errno_location() #12
  %9080 = load i32, ptr %9079, align 4, !tbaa !5
  %9081 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9068, ptr noundef @.str.5, i32 noundef %9069, ptr noundef @.str.66, ptr noundef @.str.1, i32 noundef 417, ptr noundef %9072, ptr noundef %9075, ptr noundef %9078, i32 noundef %9080) #11
  br label %9082

9082:                                             ; preds = %9065, %9048
  call void @llvm.lifetime.end.p0(i64 4, ptr %200) #11
  br label %9083

9083:                                             ; preds = %9082
  br label %9084

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

9085:                                             ; No predecessors!
  br label %9086

9086:                                             ; preds = %9085
  br label %9087

9087:                                             ; preds = %9086, %9028
  br label %9088

9088:                                             ; preds = %9087
  br label %9089

9089:                                             ; preds = %9088
  %9090 = load ptr, ptr %193, align 8, !tbaa !9
  %9091 = getelementptr inbounds %struct.s2n_connection, ptr %9090, i32 0, i32 27
  %9092 = load ptr, ptr %9091, align 8, !tbaa !50
  %9093 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %9092, i32 0, i32 7
  %9094 = getelementptr inbounds [8 x i8], ptr %9093, i64 0, i64 7
  store i8 1, ptr %9094, align 1, !tbaa !21
  %9095 = getelementptr inbounds [8 x i8], ptr %197, i64 0, i64 7
  store i8 1, ptr %9095, align 1, !tbaa !21
  %9096 = load ptr, ptr %193, align 8, !tbaa !9
  %9097 = getelementptr inbounds %struct.s2n_connection, ptr %9096, i32 0, i32 94
  call void @s2n_atomic_flag_clear(ptr noundef %9097)
  call void @llvm.lifetime.start.p0(i64 4, ptr %201) #11
  store i32 0, ptr %201, align 4, !tbaa !5
  br label %9098

9098:                                             ; preds = %9089
  %9099 = load i32, ptr @test_count, align 4, !tbaa !5
  %9100 = add nsw i32 %9099, 1
  store i32 %9100, ptr @test_count, align 4, !tbaa !5
  %9101 = load ptr, ptr %193, align 8, !tbaa !9
  %9102 = call i32 @s2n_key_update_send(ptr noundef %9101, ptr noundef %201)
  %9103 = icmp eq i32 %9102, -1
  br i1 %9103, label %9104, label %9157

9104:                                             ; preds = %9098
  br label %9105

9105:                                             ; preds = %9104
  br label %9106

9106:                                             ; preds = %9105
  call void @llvm.lifetime.start.p0(i64 4, ptr %202) #11
  %9107 = call ptr @__errno_location() #12
  %9108 = load i32, ptr %9107, align 4, !tbaa !5
  store i32 %9108, ptr %202, align 4, !tbaa !5
  %9109 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9110 = call i32 @s2n_print_stacktrace(ptr noundef %9109)
  %9111 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9112 = trunc i8 %9111 to i1
  br i1 %9112, label %9113, label %9135

9113:                                             ; preds = %9106
  %9114 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9115 = call i32 @fileno(ptr noundef %9114) #11
  %9116 = call i32 @isatty(i32 noundef %9115) #11
  %9117 = icmp ne i32 %9116, 0
  br i1 %9117, label %9118, label %9135

9118:                                             ; preds = %9113
  %9119 = load i32, ptr %202, align 4, !tbaa !5
  %9120 = call ptr @__errno_location() #12
  store i32 %9119, ptr %9120, align 4, !tbaa !5
  %9121 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9122 = load i32, ptr @test_count, align 4, !tbaa !5
  %9123 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9124 = load i32, ptr %9123, align 4, !tbaa !5
  %9125 = call ptr @s2n_strerror(i32 noundef %9124, ptr noundef @.str.4)
  %9126 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9127 = load i32, ptr %9126, align 4, !tbaa !5
  %9128 = call ptr @s2n_strerror_debug(i32 noundef %9127, ptr noundef @.str.4)
  %9129 = call ptr @__errno_location() #12
  %9130 = load i32, ptr %9129, align 4, !tbaa !5
  %9131 = call ptr @strerror(i32 noundef %9130) #11
  %9132 = call ptr @__errno_location() #12
  %9133 = load i32, ptr %9132, align 4, !tbaa !5
  %9134 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9121, ptr noundef @.str.2, i32 noundef %9122, ptr noundef @.str.68, ptr noundef @.str.1, i32 noundef 424, ptr noundef %9125, ptr noundef %9128, ptr noundef %9131, i32 noundef %9133) #11
  br label %9152

9135:                                             ; preds = %9113, %9106
  %9136 = load i32, ptr %202, align 4, !tbaa !5
  %9137 = call ptr @__errno_location() #12
  store i32 %9136, ptr %9137, align 4, !tbaa !5
  %9138 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9139 = load i32, ptr @test_count, align 4, !tbaa !5
  %9140 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9141 = load i32, ptr %9140, align 4, !tbaa !5
  %9142 = call ptr @s2n_strerror(i32 noundef %9141, ptr noundef @.str.4)
  %9143 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9144 = load i32, ptr %9143, align 4, !tbaa !5
  %9145 = call ptr @s2n_strerror_debug(i32 noundef %9144, ptr noundef @.str.4)
  %9146 = call ptr @__errno_location() #12
  %9147 = load i32, ptr %9146, align 4, !tbaa !5
  %9148 = call ptr @strerror(i32 noundef %9147) #11
  %9149 = call ptr @__errno_location() #12
  %9150 = load i32, ptr %9149, align 4, !tbaa !5
  %9151 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9138, ptr noundef @.str.5, i32 noundef %9139, ptr noundef @.str.68, ptr noundef @.str.1, i32 noundef 424, ptr noundef %9142, ptr noundef %9145, ptr noundef %9148, i32 noundef %9150) #11
  br label %9152

9152:                                             ; preds = %9135, %9118
  call void @llvm.lifetime.end.p0(i64 4, ptr %202) #11
  br label %9153

9153:                                             ; preds = %9152
  br label %9154

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

9155:                                             ; No predecessors!
  br label %9156

9156:                                             ; preds = %9155
  br label %9157

9157:                                             ; preds = %9156, %9098
  br label %9158

9158:                                             ; preds = %9157
  br label %9159

9159:                                             ; preds = %9158
  br label %9160

9160:                                             ; preds = %9159
  %9161 = load i32, ptr @test_count, align 4, !tbaa !5
  %9162 = add nsw i32 %9161, 1
  store i32 %9162, ptr @test_count, align 4, !tbaa !5
  %9163 = load ptr, ptr %193, align 8, !tbaa !9
  %9164 = getelementptr inbounds %struct.s2n_connection, ptr %9163, i32 0, i32 94
  %9165 = call zeroext i1 @s2n_atomic_flag_test(ptr noundef %9164)
  %9166 = zext i1 %9165 to i32
  %9167 = icmp eq i32 %9166, 0
  br i1 %9167, label %9221, label %9168

9168:                                             ; preds = %9160
  br label %9169

9169:                                             ; preds = %9168
  br label %9170

9170:                                             ; preds = %9169
  call void @llvm.lifetime.start.p0(i64 4, ptr %203) #11
  %9171 = call ptr @__errno_location() #12
  %9172 = load i32, ptr %9171, align 4, !tbaa !5
  store i32 %9172, ptr %203, align 4, !tbaa !5
  %9173 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9174 = call i32 @s2n_print_stacktrace(ptr noundef %9173)
  %9175 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9176 = trunc i8 %9175 to i1
  br i1 %9176, label %9177, label %9199

9177:                                             ; preds = %9170
  %9178 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9179 = call i32 @fileno(ptr noundef %9178) #11
  %9180 = call i32 @isatty(i32 noundef %9179) #11
  %9181 = icmp ne i32 %9180, 0
  br i1 %9181, label %9182, label %9199

9182:                                             ; preds = %9177
  %9183 = load i32, ptr %203, align 4, !tbaa !5
  %9184 = call ptr @__errno_location() #12
  store i32 %9183, ptr %9184, align 4, !tbaa !5
  %9185 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9186 = load i32, ptr @test_count, align 4, !tbaa !5
  %9187 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9188 = load i32, ptr %9187, align 4, !tbaa !5
  %9189 = call ptr @s2n_strerror(i32 noundef %9188, ptr noundef @.str.4)
  %9190 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9191 = load i32, ptr %9190, align 4, !tbaa !5
  %9192 = call ptr @s2n_strerror_debug(i32 noundef %9191, ptr noundef @.str.4)
  %9193 = call ptr @__errno_location() #12
  %9194 = load i32, ptr %9193, align 4, !tbaa !5
  %9195 = call ptr @strerror(i32 noundef %9194) #11
  %9196 = call ptr @__errno_location() #12
  %9197 = load i32, ptr %9196, align 4, !tbaa !5
  %9198 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9185, ptr noundef @.str.2, i32 noundef %9186, ptr noundef @.str.69, ptr noundef @.str.1, i32 noundef 426, ptr noundef %9189, ptr noundef %9192, ptr noundef %9195, i32 noundef %9197) #11
  br label %9216

9199:                                             ; preds = %9177, %9170
  %9200 = load i32, ptr %203, align 4, !tbaa !5
  %9201 = call ptr @__errno_location() #12
  store i32 %9200, ptr %9201, align 4, !tbaa !5
  %9202 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9203 = load i32, ptr @test_count, align 4, !tbaa !5
  %9204 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9205 = load i32, ptr %9204, align 4, !tbaa !5
  %9206 = call ptr @s2n_strerror(i32 noundef %9205, ptr noundef @.str.4)
  %9207 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9208 = load i32, ptr %9207, align 4, !tbaa !5
  %9209 = call ptr @s2n_strerror_debug(i32 noundef %9208, ptr noundef @.str.4)
  %9210 = call ptr @__errno_location() #12
  %9211 = load i32, ptr %9210, align 4, !tbaa !5
  %9212 = call ptr @strerror(i32 noundef %9211) #11
  %9213 = call ptr @__errno_location() #12
  %9214 = load i32, ptr %9213, align 4, !tbaa !5
  %9215 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9202, ptr noundef @.str.5, i32 noundef %9203, ptr noundef @.str.69, ptr noundef @.str.1, i32 noundef 426, ptr noundef %9206, ptr noundef %9209, ptr noundef %9212, i32 noundef %9214) #11
  br label %9216

9216:                                             ; preds = %9199, %9182
  call void @llvm.lifetime.end.p0(i64 4, ptr %203) #11
  br label %9217

9217:                                             ; preds = %9216
  br label %9218

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

9219:                                             ; No predecessors!
  br label %9220

9220:                                             ; preds = %9219
  br label %9221

9221:                                             ; preds = %9220, %9160
  br label %9222

9222:                                             ; preds = %9221
  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 %193, align 8, !tbaa !9
  %9229 = getelementptr inbounds %struct.s2n_connection, ptr %9228, i32 0, i32 27
  %9230 = load ptr, ptr %9229, align 8, !tbaa !50
  %9231 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %9230, i32 0, i32 7
  %9232 = getelementptr inbounds [8 x i8], ptr %9231, i64 0, i64 0
  %9233 = getelementptr inbounds [8 x i8], ptr %197, i64 0, i64 0
  %9234 = call i32 @memcmp(ptr noundef %9232, ptr noundef %9233, i64 noundef 8) #14
  %9235 = icmp eq i32 %9234, 0
  br i1 %9235, label %9289, label %9236

9236:                                             ; preds = %9225
  br label %9237

9237:                                             ; preds = %9236
  br label %9238

9238:                                             ; preds = %9237
  call void @llvm.lifetime.start.p0(i64 4, ptr %204) #11
  %9239 = call ptr @__errno_location() #12
  %9240 = load i32, ptr %9239, align 4, !tbaa !5
  store i32 %9240, ptr %204, align 4, !tbaa !5
  %9241 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9242 = call i32 @s2n_print_stacktrace(ptr noundef %9241)
  %9243 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9244 = trunc i8 %9243 to i1
  br i1 %9244, label %9245, label %9267

9245:                                             ; preds = %9238
  %9246 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9247 = call i32 @fileno(ptr noundef %9246) #11
  %9248 = call i32 @isatty(i32 noundef %9247) #11
  %9249 = icmp ne i32 %9248, 0
  br i1 %9249, label %9250, label %9267

9250:                                             ; preds = %9245
  %9251 = load i32, ptr %204, align 4, !tbaa !5
  %9252 = call ptr @__errno_location() #12
  store i32 %9251, ptr %9252, align 4, !tbaa !5
  %9253 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9254 = load i32, ptr @test_count, align 4, !tbaa !5
  %9255 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9256 = load i32, ptr %9255, align 4, !tbaa !5
  %9257 = call ptr @s2n_strerror(i32 noundef %9256, ptr noundef @.str.4)
  %9258 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9259 = load i32, ptr %9258, align 4, !tbaa !5
  %9260 = call ptr @s2n_strerror_debug(i32 noundef %9259, ptr noundef @.str.4)
  %9261 = call ptr @__errno_location() #12
  %9262 = load i32, ptr %9261, align 4, !tbaa !5
  %9263 = call ptr @strerror(i32 noundef %9262) #11
  %9264 = call ptr @__errno_location() #12
  %9265 = load i32, ptr %9264, align 4, !tbaa !5
  %9266 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9253, ptr noundef @.str.2, i32 noundef %9254, ptr noundef @.str.84, ptr noundef @.str.1, i32 noundef 427, ptr noundef %9257, ptr noundef %9260, ptr noundef %9263, i32 noundef %9265) #11
  br label %9284

9267:                                             ; preds = %9245, %9238
  %9268 = load i32, ptr %204, align 4, !tbaa !5
  %9269 = call ptr @__errno_location() #12
  store i32 %9268, ptr %9269, align 4, !tbaa !5
  %9270 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9271 = load i32, ptr @test_count, align 4, !tbaa !5
  %9272 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9273 = load i32, ptr %9272, align 4, !tbaa !5
  %9274 = call ptr @s2n_strerror(i32 noundef %9273, ptr noundef @.str.4)
  %9275 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9276 = load i32, ptr %9275, align 4, !tbaa !5
  %9277 = call ptr @s2n_strerror_debug(i32 noundef %9276, ptr noundef @.str.4)
  %9278 = call ptr @__errno_location() #12
  %9279 = load i32, ptr %9278, align 4, !tbaa !5
  %9280 = call ptr @strerror(i32 noundef %9279) #11
  %9281 = call ptr @__errno_location() #12
  %9282 = load i32, ptr %9281, align 4, !tbaa !5
  %9283 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9270, ptr noundef @.str.5, i32 noundef %9271, ptr noundef @.str.84, ptr noundef @.str.1, i32 noundef 427, ptr noundef %9274, ptr noundef %9277, ptr noundef %9280, i32 noundef %9282) #11
  br label %9284

9284:                                             ; preds = %9267, %9250
  call void @llvm.lifetime.end.p0(i64 4, ptr %204) #11
  br label %9285

9285:                                             ; preds = %9284
  br label %9286

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

9287:                                             ; No predecessors!
  br label %9288

9288:                                             ; preds = %9287
  br label %9289

9289:                                             ; preds = %9288, %9225
  br label %9290

9290:                                             ; preds = %9289
  br label %9291

9291:                                             ; preds = %9290
  br label %9292

9292:                                             ; preds = %9291
  br label %9293

9293:                                             ; preds = %9292
  br label %9294

9294:                                             ; preds = %9293
  %9295 = load i32, ptr @test_count, align 4, !tbaa !5
  %9296 = add nsw i32 %9295, 1
  store i32 %9296, ptr @test_count, align 4, !tbaa !5
  %9297 = getelementptr inbounds %struct.s2n_stuffer, ptr %198, i32 0, i32 2
  %9298 = load i32, ptr %9297, align 4, !tbaa !22
  %9299 = getelementptr inbounds %struct.s2n_stuffer, ptr %198, i32 0, i32 1
  %9300 = load i32, ptr %9299, align 8, !tbaa !25
  %9301 = sub i32 %9298, %9300
  %9302 = icmp eq i32 %9301, 0
  br i1 %9302, label %9356, label %9303

9303:                                             ; preds = %9294
  br label %9304

9304:                                             ; preds = %9303
  br label %9305

9305:                                             ; preds = %9304
  call void @llvm.lifetime.start.p0(i64 4, ptr %205) #11
  %9306 = call ptr @__errno_location() #12
  %9307 = load i32, ptr %9306, align 4, !tbaa !5
  store i32 %9307, ptr %205, align 4, !tbaa !5
  %9308 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9309 = call i32 @s2n_print_stacktrace(ptr noundef %9308)
  %9310 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9311 = trunc i8 %9310 to i1
  br i1 %9311, label %9312, label %9334

9312:                                             ; preds = %9305
  %9313 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9314 = call i32 @fileno(ptr noundef %9313) #11
  %9315 = call i32 @isatty(i32 noundef %9314) #11
  %9316 = icmp ne i32 %9315, 0
  br i1 %9316, label %9317, label %9334

9317:                                             ; preds = %9312
  %9318 = load i32, ptr %205, align 4, !tbaa !5
  %9319 = call ptr @__errno_location() #12
  store i32 %9318, ptr %9319, align 4, !tbaa !5
  %9320 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9321 = load i32, ptr @test_count, align 4, !tbaa !5
  %9322 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9323 = load i32, ptr %9322, align 4, !tbaa !5
  %9324 = call ptr @s2n_strerror(i32 noundef %9323, ptr noundef @.str.4)
  %9325 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9326 = load i32, ptr %9325, align 4, !tbaa !5
  %9327 = call ptr @s2n_strerror_debug(i32 noundef %9326, ptr noundef @.str.4)
  %9328 = call ptr @__errno_location() #12
  %9329 = load i32, ptr %9328, align 4, !tbaa !5
  %9330 = call ptr @strerror(i32 noundef %9329) #11
  %9331 = call ptr @__errno_location() #12
  %9332 = load i32, ptr %9331, align 4, !tbaa !5
  %9333 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9320, ptr noundef @.str.2, i32 noundef %9321, ptr noundef @.str.85, ptr noundef @.str.1, i32 noundef 428, ptr noundef %9324, ptr noundef %9327, ptr noundef %9330, i32 noundef %9332) #11
  br label %9351

9334:                                             ; preds = %9312, %9305
  %9335 = load i32, ptr %205, align 4, !tbaa !5
  %9336 = call ptr @__errno_location() #12
  store i32 %9335, ptr %9336, align 4, !tbaa !5
  %9337 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9338 = load i32, ptr @test_count, align 4, !tbaa !5
  %9339 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9340 = load i32, ptr %9339, align 4, !tbaa !5
  %9341 = call ptr @s2n_strerror(i32 noundef %9340, ptr noundef @.str.4)
  %9342 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9343 = load i32, ptr %9342, align 4, !tbaa !5
  %9344 = call ptr @s2n_strerror_debug(i32 noundef %9343, ptr noundef @.str.4)
  %9345 = call ptr @__errno_location() #12
  %9346 = load i32, ptr %9345, align 4, !tbaa !5
  %9347 = call ptr @strerror(i32 noundef %9346) #11
  %9348 = call ptr @__errno_location() #12
  %9349 = load i32, ptr %9348, align 4, !tbaa !5
  %9350 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9337, ptr noundef @.str.5, i32 noundef %9338, ptr noundef @.str.85, ptr noundef @.str.1, i32 noundef 428, ptr noundef %9341, ptr noundef %9344, ptr noundef %9347, i32 noundef %9349) #11
  br label %9351

9351:                                             ; preds = %9334, %9317
  call void @llvm.lifetime.end.p0(i64 4, ptr %205) #11
  br label %9352

9352:                                             ; preds = %9351
  br label %9353

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

9354:                                             ; No predecessors!
  br label %9355

9355:                                             ; preds = %9354
  br label %9356

9356:                                             ; preds = %9355, %9294
  br label %9357

9357:                                             ; preds = %9356
  br label %9358

9358:                                             ; preds = %9357
  br label %9359

9359:                                             ; preds = %9358
  %9360 = load i32, ptr @test_count, align 4, !tbaa !5
  %9361 = add nsw i32 %9360, 1
  store i32 %9361, ptr @test_count, align 4, !tbaa !5
  %9362 = call i32 @s2n_stuffer_free(ptr noundef %198)
  %9363 = icmp eq i32 %9362, -1
  br i1 %9363, label %9364, label %9417

9364:                                             ; preds = %9359
  br label %9365

9365:                                             ; preds = %9364
  br label %9366

9366:                                             ; preds = %9365
  call void @llvm.lifetime.start.p0(i64 4, ptr %206) #11
  %9367 = call ptr @__errno_location() #12
  %9368 = load i32, ptr %9367, align 4, !tbaa !5
  store i32 %9368, ptr %206, align 4, !tbaa !5
  %9369 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9370 = call i32 @s2n_print_stacktrace(ptr noundef %9369)
  %9371 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9372 = trunc i8 %9371 to i1
  br i1 %9372, label %9373, label %9395

9373:                                             ; preds = %9366
  %9374 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9375 = call i32 @fileno(ptr noundef %9374) #11
  %9376 = call i32 @isatty(i32 noundef %9375) #11
  %9377 = icmp ne i32 %9376, 0
  br i1 %9377, label %9378, label %9395

9378:                                             ; preds = %9373
  %9379 = load i32, ptr %206, align 4, !tbaa !5
  %9380 = call ptr @__errno_location() #12
  store i32 %9379, ptr %9380, align 4, !tbaa !5
  %9381 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9382 = load i32, ptr @test_count, align 4, !tbaa !5
  %9383 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9384 = load i32, ptr %9383, align 4, !tbaa !5
  %9385 = call ptr @s2n_strerror(i32 noundef %9384, ptr noundef @.str.4)
  %9386 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9387 = load i32, ptr %9386, align 4, !tbaa !5
  %9388 = call ptr @s2n_strerror_debug(i32 noundef %9387, ptr noundef @.str.4)
  %9389 = call ptr @__errno_location() #12
  %9390 = load i32, ptr %9389, align 4, !tbaa !5
  %9391 = call ptr @strerror(i32 noundef %9390) #11
  %9392 = call ptr @__errno_location() #12
  %9393 = load i32, ptr %9392, align 4, !tbaa !5
  %9394 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9381, ptr noundef @.str.2, i32 noundef %9382, ptr noundef @.str.73, ptr noundef @.str.1, i32 noundef 430, ptr noundef %9385, ptr noundef %9388, ptr noundef %9391, i32 noundef %9393) #11
  br label %9412

9395:                                             ; preds = %9373, %9366
  %9396 = load i32, ptr %206, align 4, !tbaa !5
  %9397 = call ptr @__errno_location() #12
  store i32 %9396, ptr %9397, align 4, !tbaa !5
  %9398 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9399 = load i32, ptr @test_count, align 4, !tbaa !5
  %9400 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9401 = load i32, ptr %9400, align 4, !tbaa !5
  %9402 = call ptr @s2n_strerror(i32 noundef %9401, ptr noundef @.str.4)
  %9403 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9404 = load i32, ptr %9403, align 4, !tbaa !5
  %9405 = call ptr @s2n_strerror_debug(i32 noundef %9404, ptr noundef @.str.4)
  %9406 = call ptr @__errno_location() #12
  %9407 = load i32, ptr %9406, align 4, !tbaa !5
  %9408 = call ptr @strerror(i32 noundef %9407) #11
  %9409 = call ptr @__errno_location() #12
  %9410 = load i32, ptr %9409, align 4, !tbaa !5
  %9411 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9398, ptr noundef @.str.5, i32 noundef %9399, ptr noundef @.str.73, ptr noundef @.str.1, i32 noundef 430, ptr noundef %9402, ptr noundef %9405, ptr noundef %9408, i32 noundef %9410) #11
  br label %9412

9412:                                             ; preds = %9395, %9378
  call void @llvm.lifetime.end.p0(i64 4, ptr %206) #11
  br label %9413

9413:                                             ; preds = %9412
  br label %9414

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

9415:                                             ; No predecessors!
  br label %9416

9416:                                             ; preds = %9415
  br label %9417

9417:                                             ; preds = %9416, %9359
  br label %9418

9418:                                             ; preds = %9417
  br label %9419

9419:                                             ; preds = %9418
  br label %9420

9420:                                             ; preds = %9419
  %9421 = load i32, ptr @test_count, align 4, !tbaa !5
  %9422 = add nsw i32 %9421, 1
  store i32 %9422, ptr @test_count, align 4, !tbaa !5
  %9423 = load ptr, ptr %193, align 8, !tbaa !9
  %9424 = call i32 @s2n_connection_free(ptr noundef %9423)
  %9425 = icmp eq i32 %9424, -1
  br i1 %9425, label %9426, label %9479

9426:                                             ; preds = %9420
  br label %9427

9427:                                             ; preds = %9426
  br label %9428

9428:                                             ; preds = %9427
  call void @llvm.lifetime.start.p0(i64 4, ptr %207) #11
  %9429 = call ptr @__errno_location() #12
  %9430 = load i32, ptr %9429, align 4, !tbaa !5
  store i32 %9430, ptr %207, align 4, !tbaa !5
  %9431 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9432 = call i32 @s2n_print_stacktrace(ptr noundef %9431)
  %9433 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9434 = trunc i8 %9433 to i1
  br i1 %9434, label %9435, label %9457

9435:                                             ; preds = %9428
  %9436 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9437 = call i32 @fileno(ptr noundef %9436) #11
  %9438 = call i32 @isatty(i32 noundef %9437) #11
  %9439 = icmp ne i32 %9438, 0
  br i1 %9439, label %9440, label %9457

9440:                                             ; preds = %9435
  %9441 = load i32, ptr %207, align 4, !tbaa !5
  %9442 = call ptr @__errno_location() #12
  store i32 %9441, ptr %9442, align 4, !tbaa !5
  %9443 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9444 = load i32, ptr @test_count, align 4, !tbaa !5
  %9445 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9446 = load i32, ptr %9445, align 4, !tbaa !5
  %9447 = call ptr @s2n_strerror(i32 noundef %9446, ptr noundef @.str.4)
  %9448 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9449 = load i32, ptr %9448, align 4, !tbaa !5
  %9450 = call ptr @s2n_strerror_debug(i32 noundef %9449, ptr noundef @.str.4)
  %9451 = call ptr @__errno_location() #12
  %9452 = load i32, ptr %9451, align 4, !tbaa !5
  %9453 = call ptr @strerror(i32 noundef %9452) #11
  %9454 = call ptr @__errno_location() #12
  %9455 = load i32, ptr %9454, align 4, !tbaa !5
  %9456 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9443, ptr noundef @.str.2, i32 noundef %9444, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 431, ptr noundef %9447, ptr noundef %9450, ptr noundef %9453, i32 noundef %9455) #11
  br label %9474

9457:                                             ; preds = %9435, %9428
  %9458 = load i32, ptr %207, align 4, !tbaa !5
  %9459 = call ptr @__errno_location() #12
  store i32 %9458, ptr %9459, align 4, !tbaa !5
  %9460 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9461 = load i32, ptr @test_count, align 4, !tbaa !5
  %9462 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9463 = load i32, ptr %9462, align 4, !tbaa !5
  %9464 = call ptr @s2n_strerror(i32 noundef %9463, ptr noundef @.str.4)
  %9465 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9466 = load i32, ptr %9465, align 4, !tbaa !5
  %9467 = call ptr @s2n_strerror_debug(i32 noundef %9466, ptr noundef @.str.4)
  %9468 = call ptr @__errno_location() #12
  %9469 = load i32, ptr %9468, align 4, !tbaa !5
  %9470 = call ptr @strerror(i32 noundef %9469) #11
  %9471 = call ptr @__errno_location() #12
  %9472 = load i32, ptr %9471, align 4, !tbaa !5
  %9473 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9460, ptr noundef @.str.5, i32 noundef %9461, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 431, ptr noundef %9464, ptr noundef %9467, ptr noundef %9470, i32 noundef %9472) #11
  br label %9474

9474:                                             ; preds = %9457, %9440
  call void @llvm.lifetime.end.p0(i64 4, ptr %207) #11
  br label %9475

9475:                                             ; preds = %9474
  br label %9476

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

9477:                                             ; No predecessors!
  br label %9478

9478:                                             ; preds = %9477
  br label %9479

9479:                                             ; preds = %9478, %9420
  br label %9480

9480:                                             ; preds = %9479
  br label %9481

9481:                                             ; preds = %9480
  call void @llvm.lifetime.end.p0(i64 4, ptr %201) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr %198) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %197) #11
  store i32 0, ptr %12, align 4
  br label %9482

9482:                                             ; preds = %9481, %8962
  call void @llvm.lifetime.end.p0(i64 8, ptr %193) #11
  %9483 = load i32, ptr %12, align 4
  switch i32 %9483, label %15412 [
    i32 0, label %9484
  ]

9484:                                             ; preds = %9482
  call void @llvm.lifetime.start.p0(i64 8, ptr %208) #11
  %9485 = load i64, ptr %14, align 8, !tbaa !20
  store i64 %9485, ptr %208, align 8, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 8, ptr %209) #11
  %9486 = load i64, ptr %208, align 8, !tbaa !20
  %9487 = sub i64 %9486, 100
  store i64 %9487, ptr %209, align 8, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 8, ptr %210) #11
  %9488 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %9488, ptr %210, align 8, !tbaa !9
  br label %9489

9489:                                             ; preds = %9484
  %9490 = load i32, ptr @test_count, align 4, !tbaa !5
  %9491 = add nsw i32 %9490, 1
  store i32 %9491, ptr @test_count, align 4, !tbaa !5
  %9492 = load ptr, ptr %210, align 8, !tbaa !9
  %9493 = icmp eq ptr %9492, null
  br i1 %9493, label %9494, label %9547

9494:                                             ; preds = %9489
  br label %9495

9495:                                             ; preds = %9494
  br label %9496

9496:                                             ; preds = %9495
  call void @llvm.lifetime.start.p0(i64 4, ptr %211) #11
  %9497 = call ptr @__errno_location() #12
  %9498 = load i32, ptr %9497, align 4, !tbaa !5
  store i32 %9498, ptr %211, align 4, !tbaa !5
  %9499 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9500 = call i32 @s2n_print_stacktrace(ptr noundef %9499)
  %9501 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9502 = trunc i8 %9501 to i1
  br i1 %9502, label %9503, label %9525

9503:                                             ; preds = %9496
  %9504 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9505 = call i32 @fileno(ptr noundef %9504) #11
  %9506 = call i32 @isatty(i32 noundef %9505) #11
  %9507 = icmp ne i32 %9506, 0
  br i1 %9507, label %9508, label %9525

9508:                                             ; preds = %9503
  %9509 = load i32, ptr %211, align 4, !tbaa !5
  %9510 = call ptr @__errno_location() #12
  store i32 %9509, ptr %9510, align 4, !tbaa !5
  %9511 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9512 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %9514, ptr noundef @.str.4)
  %9516 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9517 = load i32, ptr %9516, align 4, !tbaa !5
  %9518 = call ptr @s2n_strerror_debug(i32 noundef %9517, ptr noundef @.str.4)
  %9519 = call ptr @__errno_location() #12
  %9520 = load i32, ptr %9519, align 4, !tbaa !5
  %9521 = call ptr @strerror(i32 noundef %9520) #11
  %9522 = call ptr @__errno_location() #12
  %9523 = load i32, ptr %9522, align 4, !tbaa !5
  %9524 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9511, ptr noundef @.str.2, i32 noundef %9512, ptr noundef @.str.86, ptr noundef @.str.1, i32 noundef 441, ptr noundef %9515, ptr noundef %9518, ptr noundef %9521, i32 noundef %9523) #11
  br label %9542

9525:                                             ; preds = %9503, %9496
  %9526 = load i32, ptr %211, align 4, !tbaa !5
  %9527 = call ptr @__errno_location() #12
  store i32 %9526, ptr %9527, align 4, !tbaa !5
  %9528 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9529 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %9531, ptr noundef @.str.4)
  %9533 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9534 = load i32, ptr %9533, align 4, !tbaa !5
  %9535 = call ptr @s2n_strerror_debug(i32 noundef %9534, ptr noundef @.str.4)
  %9536 = call ptr @__errno_location() #12
  %9537 = load i32, ptr %9536, align 4, !tbaa !5
  %9538 = call ptr @strerror(i32 noundef %9537) #11
  %9539 = call ptr @__errno_location() #12
  %9540 = load i32, ptr %9539, align 4, !tbaa !5
  %9541 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9528, ptr noundef @.str.5, i32 noundef %9529, ptr noundef @.str.86, ptr noundef @.str.1, i32 noundef 441, ptr noundef %9532, ptr noundef %9535, ptr noundef %9538, i32 noundef %9540) #11
  br label %9542

9542:                                             ; preds = %9525, %9508
  call void @llvm.lifetime.end.p0(i64 4, ptr %211) #11
  br label %9543

9543:                                             ; preds = %9542
  br label %9544

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

9545:                                             ; No predecessors!
  br label %9546

9546:                                             ; preds = %9545
  br label %9547

9547:                                             ; preds = %9546, %9489
  br label %9548

9548:                                             ; preds = %9547
  br label %9549

9549:                                             ; preds = %9548
  %9550 = load ptr, ptr %210, align 8, !tbaa !9
  %9551 = getelementptr inbounds %struct.s2n_connection, ptr %9550, i32 0, i32 23
  store i8 34, ptr %9551, align 4, !tbaa !26
  %9552 = load ptr, ptr %13, align 8, !tbaa !9
  %9553 = load ptr, ptr %210, align 8, !tbaa !9
  %9554 = getelementptr inbounds %struct.s2n_connection, ptr %9553, i32 0, i32 27
  %9555 = load ptr, ptr %9554, align 8, !tbaa !50
  %9556 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %9555, i32 0, i32 0
  store ptr %9552, ptr %9556, align 8, !tbaa !51
  br label %9557

9557:                                             ; preds = %9549
  call void @llvm.lifetime.start.p0(i64 4, ptr %212) #11
  %9558 = getelementptr inbounds %struct.s2n_blob, ptr %10, i32 0, i32 1
  %9559 = load i32, ptr %9558, align 8, !tbaa !56
  store i32 %9559, ptr %212, align 4, !tbaa !5
  %9560 = load i32, ptr %212, align 4, !tbaa !5
  %9561 = icmp ne i32 %9560, 0
  %9562 = xor i1 %9561, true
  %9563 = xor i1 %9562, true
  %9564 = zext i1 %9563 to i32
  %9565 = sext i32 %9564 to i64
  %9566 = call i64 @llvm.expect.i64(i64 %9565, i64 1)
  %9567 = icmp ne i64 %9566, 0
  br i1 %9567, label %9568, label %9621

9568:                                             ; preds = %9557
  call void @llvm.lifetime.start.p0(i64 8, ptr %213) #11
  %9569 = load ptr, ptr %210, align 8, !tbaa !9
  %9570 = getelementptr inbounds %struct.s2n_connection, ptr %9569, i32 0, i32 28
  %9571 = getelementptr inbounds %struct.s2n_secrets, ptr %9570, i32 0, i32 0
  %9572 = getelementptr inbounds %struct.s2n_tls13_secrets, ptr %9571, i32 0, i32 4
  %9573 = getelementptr inbounds [48 x i8], ptr %9572, i64 0, i64 0
  %9574 = getelementptr inbounds %struct.s2n_blob, ptr %10, i32 0, i32 0
  %9575 = load ptr, ptr %9574, align 8, !tbaa !57
  %9576 = load i32, ptr %212, align 4, !tbaa !5
  %9577 = zext i32 %9576 to i64
  %9578 = call ptr @s2n_ensure_memmove_trace(ptr noundef %9573, ptr noundef %9575, i64 noundef %9577)
  store ptr %9578, ptr %213, align 8, !tbaa !9
  br label %9579

9579:                                             ; preds = %9568
  %9580 = load ptr, ptr %213, align 8, !tbaa !9
  %9581 = icmp ne ptr %9580, null
  br i1 %9581, label %9615, label %9582

9582:                                             ; preds = %9579
  br label %9583

9583:                                             ; preds = %9582
  br label %9584

9584:                                             ; preds = %9583
  %9585 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %9586 = getelementptr inbounds %struct.s2n_debug_info, ptr %9585, i32 0, i32 0
  store ptr @.str.87, ptr %9586, align 8, !tbaa !58
  %9587 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %9588 = getelementptr inbounds %struct.s2n_debug_info, ptr %9587, i32 0, i32 0
  %9589 = load ptr, ptr %9588, align 8, !tbaa !58
  %9590 = getelementptr inbounds i8, ptr %9589, i64 21
  %9591 = call ptr @strrchr(ptr noundef %9590, i32 noundef 47) #14
  %9592 = icmp ne ptr %9591, null
  br i1 %9592, label %9593, label %9600

9593:                                             ; preds = %9584
  %9594 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %9595 = getelementptr inbounds %struct.s2n_debug_info, ptr %9594, i32 0, i32 0
  %9596 = load ptr, ptr %9595, align 8, !tbaa !58
  %9597 = getelementptr inbounds i8, ptr %9596, i64 21
  %9598 = call ptr @strrchr(ptr noundef %9597, i32 noundef 47) #14
  %9599 = getelementptr inbounds i8, ptr %9598, i64 1
  br label %9605

9600:                                             ; preds = %9584
  %9601 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %9602 = getelementptr inbounds %struct.s2n_debug_info, ptr %9601, i32 0, i32 0
  %9603 = load ptr, ptr %9602, align 8, !tbaa !58
  %9604 = getelementptr inbounds i8, ptr %9603, i64 21
  br label %9605

9605:                                             ; preds = %9600, %9593
  %9606 = phi ptr [ %9599, %9593 ], [ %9604, %9600 ]
  %9607 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %9608 = getelementptr inbounds %struct.s2n_debug_info, ptr %9607, i32 0, i32 1
  store ptr %9606, ptr %9608, align 8, !tbaa !60
  %9609 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 402653193, ptr %9609, align 4, !tbaa !5
  %9610 = call i32 @s2n_calculate_stacktrace()
  br label %9611

9611:                                             ; preds = %9605
  br label %9612

9612:                                             ; preds = %9611
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %9618

9613:                                             ; No predecessors!
  br label %9614

9614:                                             ; preds = %9613
  br label %9615

9615:                                             ; preds = %9614, %9579
  br label %9616

9616:                                             ; preds = %9615
  br label %9617

9617:                                             ; preds = %9616
  store i32 0, ptr %12, align 4
  br label %9618

9618:                                             ; preds = %9617, %9612
  call void @llvm.lifetime.end.p0(i64 8, ptr %213) #11
  %9619 = load i32, ptr %12, align 4
  switch i32 %9619, label %9622 [
    i32 0, label %9620
  ]

9620:                                             ; preds = %9618
  br label %9621

9621:                                             ; preds = %9620, %9557
  store i32 0, ptr %12, align 4
  br label %9622

9622:                                             ; preds = %9621, %9618
  call void @llvm.lifetime.end.p0(i64 4, ptr %212) #11
  %9623 = load i32, ptr %12, align 4
  switch i32 %9623, label %10095 [
    i32 0, label %9624
  ]

9624:                                             ; preds = %9622
  br label %9625

9625:                                             ; preds = %9624
  br label %9626

9626:                                             ; preds = %9625
  call void @llvm.lifetime.start.p0(i64 40, ptr %214) #11
  call void @llvm.memset.p0.i64(ptr align 8 %214, i8 0, i64 40, i1 false)
  br label %9627

9627:                                             ; preds = %9626
  %9628 = load i32, ptr @test_count, align 4, !tbaa !5
  %9629 = add nsw i32 %9628, 1
  store i32 %9629, ptr @test_count, align 4, !tbaa !5
  %9630 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %214, i32 noundef 0)
  %9631 = icmp eq i32 %9630, -1
  br i1 %9631, label %9632, label %9685

9632:                                             ; preds = %9627
  br label %9633

9633:                                             ; preds = %9632
  br label %9634

9634:                                             ; preds = %9633
  call void @llvm.lifetime.start.p0(i64 4, ptr %215) #11
  %9635 = call ptr @__errno_location() #12
  %9636 = load i32, ptr %9635, align 4, !tbaa !5
  store i32 %9636, ptr %215, align 4, !tbaa !5
  %9637 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9638 = call i32 @s2n_print_stacktrace(ptr noundef %9637)
  %9639 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9640 = trunc i8 %9639 to i1
  br i1 %9640, label %9641, label %9663

9641:                                             ; preds = %9634
  %9642 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9643 = call i32 @fileno(ptr noundef %9642) #11
  %9644 = call i32 @isatty(i32 noundef %9643) #11
  %9645 = icmp ne i32 %9644, 0
  br i1 %9645, label %9646, label %9663

9646:                                             ; preds = %9641
  %9647 = load i32, ptr %215, align 4, !tbaa !5
  %9648 = call ptr @__errno_location() #12
  store i32 %9647, ptr %9648, align 4, !tbaa !5
  %9649 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9650 = load i32, ptr @test_count, align 4, !tbaa !5
  %9651 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9652 = load i32, ptr %9651, align 4, !tbaa !5
  %9653 = call ptr @s2n_strerror(i32 noundef %9652, ptr noundef @.str.4)
  %9654 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9655 = load i32, ptr %9654, align 4, !tbaa !5
  %9656 = call ptr @s2n_strerror_debug(i32 noundef %9655, ptr noundef @.str.4)
  %9657 = call ptr @__errno_location() #12
  %9658 = load i32, ptr %9657, align 4, !tbaa !5
  %9659 = call ptr @strerror(i32 noundef %9658) #11
  %9660 = call ptr @__errno_location() #12
  %9661 = load i32, ptr %9660, align 4, !tbaa !5
  %9662 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9649, ptr noundef @.str.2, i32 noundef %9650, ptr noundef @.str.65, ptr noundef @.str.1, i32 noundef 448, ptr noundef %9653, ptr noundef %9656, ptr noundef %9659, i32 noundef %9661) #11
  br label %9680

9663:                                             ; preds = %9641, %9634
  %9664 = load i32, ptr %215, align 4, !tbaa !5
  %9665 = call ptr @__errno_location() #12
  store i32 %9664, ptr %9665, align 4, !tbaa !5
  %9666 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9667 = load i32, ptr @test_count, align 4, !tbaa !5
  %9668 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9669 = load i32, ptr %9668, align 4, !tbaa !5
  %9670 = call ptr @s2n_strerror(i32 noundef %9669, ptr noundef @.str.4)
  %9671 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9672 = load i32, ptr %9671, align 4, !tbaa !5
  %9673 = call ptr @s2n_strerror_debug(i32 noundef %9672, ptr noundef @.str.4)
  %9674 = call ptr @__errno_location() #12
  %9675 = load i32, ptr %9674, align 4, !tbaa !5
  %9676 = call ptr @strerror(i32 noundef %9675) #11
  %9677 = call ptr @__errno_location() #12
  %9678 = load i32, ptr %9677, align 4, !tbaa !5
  %9679 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9666, ptr noundef @.str.5, i32 noundef %9667, ptr noundef @.str.65, ptr noundef @.str.1, i32 noundef 448, ptr noundef %9670, ptr noundef %9673, ptr noundef %9676, i32 noundef %9678) #11
  br label %9680

9680:                                             ; preds = %9663, %9646
  call void @llvm.lifetime.end.p0(i64 4, ptr %215) #11
  br label %9681

9681:                                             ; preds = %9680
  br label %9682

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

9683:                                             ; No predecessors!
  br label %9684

9684:                                             ; preds = %9683
  br label %9685

9685:                                             ; preds = %9684, %9627
  br label %9686

9686:                                             ; preds = %9685
  br label %9687

9687:                                             ; preds = %9686
  br label %9688

9688:                                             ; preds = %9687
  %9689 = load i32, ptr @test_count, align 4, !tbaa !5
  %9690 = add nsw i32 %9689, 1
  store i32 %9690, ptr @test_count, align 4, !tbaa !5
  %9691 = load ptr, ptr %210, align 8, !tbaa !9
  %9692 = call i32 @s2n_connection_set_io_stuffers(ptr noundef %214, ptr noundef %214, ptr noundef %9691)
  %9693 = icmp eq i32 %9692, -1
  br i1 %9693, label %9694, label %9747

9694:                                             ; preds = %9688
  br label %9695

9695:                                             ; preds = %9694
  br label %9696

9696:                                             ; preds = %9695
  call void @llvm.lifetime.start.p0(i64 4, ptr %216) #11
  %9697 = call ptr @__errno_location() #12
  %9698 = load i32, ptr %9697, align 4, !tbaa !5
  store i32 %9698, ptr %216, align 4, !tbaa !5
  %9699 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9700 = call i32 @s2n_print_stacktrace(ptr noundef %9699)
  %9701 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9702 = trunc i8 %9701 to i1
  br i1 %9702, label %9703, label %9725

9703:                                             ; preds = %9696
  %9704 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9705 = call i32 @fileno(ptr noundef %9704) #11
  %9706 = call i32 @isatty(i32 noundef %9705) #11
  %9707 = icmp ne i32 %9706, 0
  br i1 %9707, label %9708, label %9725

9708:                                             ; preds = %9703
  %9709 = load i32, ptr %216, align 4, !tbaa !5
  %9710 = call ptr @__errno_location() #12
  store i32 %9709, ptr %9710, align 4, !tbaa !5
  %9711 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9712 = load i32, ptr @test_count, align 4, !tbaa !5
  %9713 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9714 = load i32, ptr %9713, align 4, !tbaa !5
  %9715 = call ptr @s2n_strerror(i32 noundef %9714, ptr noundef @.str.4)
  %9716 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9717 = load i32, ptr %9716, align 4, !tbaa !5
  %9718 = call ptr @s2n_strerror_debug(i32 noundef %9717, ptr noundef @.str.4)
  %9719 = call ptr @__errno_location() #12
  %9720 = load i32, ptr %9719, align 4, !tbaa !5
  %9721 = call ptr @strerror(i32 noundef %9720) #11
  %9722 = call ptr @__errno_location() #12
  %9723 = load i32, ptr %9722, align 4, !tbaa !5
  %9724 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9711, ptr noundef @.str.2, i32 noundef %9712, ptr noundef @.str.66, ptr noundef @.str.1, i32 noundef 449, ptr noundef %9715, ptr noundef %9718, ptr noundef %9721, i32 noundef %9723) #11
  br label %9742

9725:                                             ; preds = %9703, %9696
  %9726 = load i32, ptr %216, align 4, !tbaa !5
  %9727 = call ptr @__errno_location() #12
  store i32 %9726, ptr %9727, align 4, !tbaa !5
  %9728 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9729 = load i32, ptr @test_count, align 4, !tbaa !5
  %9730 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9731 = load i32, ptr %9730, align 4, !tbaa !5
  %9732 = call ptr @s2n_strerror(i32 noundef %9731, ptr noundef @.str.4)
  %9733 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9734 = load i32, ptr %9733, align 4, !tbaa !5
  %9735 = call ptr @s2n_strerror_debug(i32 noundef %9734, ptr noundef @.str.4)
  %9736 = call ptr @__errno_location() #12
  %9737 = load i32, ptr %9736, align 4, !tbaa !5
  %9738 = call ptr @strerror(i32 noundef %9737) #11
  %9739 = call ptr @__errno_location() #12
  %9740 = load i32, ptr %9739, align 4, !tbaa !5
  %9741 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9728, ptr noundef @.str.5, i32 noundef %9729, ptr noundef @.str.66, ptr noundef @.str.1, i32 noundef 449, ptr noundef %9732, ptr noundef %9735, ptr noundef %9738, i32 noundef %9740) #11
  br label %9742

9742:                                             ; preds = %9725, %9708
  call void @llvm.lifetime.end.p0(i64 4, ptr %216) #11
  br label %9743

9743:                                             ; preds = %9742
  br label %9744

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

9745:                                             ; No predecessors!
  br label %9746

9746:                                             ; preds = %9745
  br label %9747

9747:                                             ; preds = %9746, %9688
  br label %9748

9748:                                             ; preds = %9747
  br label %9749

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

9750:                                             ; preds = %9749
  %9751 = load i32, ptr @test_count, align 4, !tbaa !5
  %9752 = add nsw i32 %9751, 1
  store i32 %9752, ptr @test_count, align 4, !tbaa !5
  %9753 = load ptr, ptr %210, align 8, !tbaa !9
  %9754 = getelementptr inbounds %struct.s2n_connection, ptr %9753, i32 0, i32 27
  %9755 = load ptr, ptr %9754, align 8, !tbaa !50
  %9756 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %9755, i32 0, i32 7
  %9757 = getelementptr inbounds [8 x i8], ptr %9756, i64 0, i64 0
  %9758 = call i32 @s2n_blob_init(ptr noundef %217, ptr noundef %9757, i32 noundef 8)
  %9759 = icmp eq i32 %9758, -1
  br i1 %9759, label %9760, label %9813

9760:                                             ; preds = %9750
  br label %9761

9761:                                             ; preds = %9760
  br label %9762

9762:                                             ; preds = %9761
  call void @llvm.lifetime.start.p0(i64 4, ptr %218) #11
  %9763 = call ptr @__errno_location() #12
  %9764 = load i32, ptr %9763, align 4, !tbaa !5
  store i32 %9764, ptr %218, align 4, !tbaa !5
  %9765 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9766 = call i32 @s2n_print_stacktrace(ptr noundef %9765)
  %9767 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9768 = trunc i8 %9767 to i1
  br i1 %9768, label %9769, label %9791

9769:                                             ; preds = %9762
  %9770 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9771 = call i32 @fileno(ptr noundef %9770) #11
  %9772 = call i32 @isatty(i32 noundef %9771) #11
  %9773 = icmp ne i32 %9772, 0
  br i1 %9773, label %9774, label %9791

9774:                                             ; preds = %9769
  %9775 = load i32, ptr %218, align 4, !tbaa !5
  %9776 = call ptr @__errno_location() #12
  store i32 %9775, ptr %9776, align 4, !tbaa !5
  %9777 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9778 = load i32, ptr @test_count, align 4, !tbaa !5
  %9779 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9780 = load i32, ptr %9779, align 4, !tbaa !5
  %9781 = call ptr @s2n_strerror(i32 noundef %9780, ptr noundef @.str.4)
  %9782 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9783 = load i32, ptr %9782, align 4, !tbaa !5
  %9784 = call ptr @s2n_strerror_debug(i32 noundef %9783, ptr noundef @.str.4)
  %9785 = call ptr @__errno_location() #12
  %9786 = load i32, ptr %9785, align 4, !tbaa !5
  %9787 = call ptr @strerror(i32 noundef %9786) #11
  %9788 = call ptr @__errno_location() #12
  %9789 = load i32, ptr %9788, align 4, !tbaa !5
  %9790 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9777, ptr noundef @.str.2, i32 noundef %9778, ptr noundef @.str.88, ptr noundef @.str.1, i32 noundef 453, ptr noundef %9781, ptr noundef %9784, ptr noundef %9787, i32 noundef %9789) #11
  br label %9808

9791:                                             ; preds = %9769, %9762
  %9792 = load i32, ptr %218, align 4, !tbaa !5
  %9793 = call ptr @__errno_location() #12
  store i32 %9792, ptr %9793, align 4, !tbaa !5
  %9794 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9795 = load i32, ptr @test_count, align 4, !tbaa !5
  %9796 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9797 = load i32, ptr %9796, align 4, !tbaa !5
  %9798 = call ptr @s2n_strerror(i32 noundef %9797, ptr noundef @.str.4)
  %9799 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9800 = load i32, ptr %9799, align 4, !tbaa !5
  %9801 = call ptr @s2n_strerror_debug(i32 noundef %9800, ptr noundef @.str.4)
  %9802 = call ptr @__errno_location() #12
  %9803 = load i32, ptr %9802, align 4, !tbaa !5
  %9804 = call ptr @strerror(i32 noundef %9803) #11
  %9805 = call ptr @__errno_location() #12
  %9806 = load i32, ptr %9805, align 4, !tbaa !5
  %9807 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9794, ptr noundef @.str.5, i32 noundef %9795, ptr noundef @.str.88, ptr noundef @.str.1, i32 noundef 453, ptr noundef %9798, ptr noundef %9801, ptr noundef %9804, i32 noundef %9806) #11
  br label %9808

9808:                                             ; preds = %9791, %9774
  call void @llvm.lifetime.end.p0(i64 4, ptr %218) #11
  br label %9809

9809:                                             ; preds = %9808
  br label %9810

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

9811:                                             ; No predecessors!
  br label %9812

9812:                                             ; preds = %9811
  br label %9813

9813:                                             ; preds = %9812, %9750
  br label %9814

9814:                                             ; preds = %9813
  br label %9815

9815:                                             ; preds = %9814
  br label %9816

9816:                                             ; preds = %9815
  %9817 = load i32, ptr @test_count, align 4, !tbaa !5
  %9818 = add nsw i32 %9817, 1
  store i32 %9818, ptr @test_count, align 4, !tbaa !5
  %9819 = load i64, ptr %209, align 8, !tbaa !20
  %9820 = load ptr, ptr %210, align 8, !tbaa !9
  %9821 = getelementptr inbounds %struct.s2n_connection, ptr %9820, i32 0, i32 27
  %9822 = load ptr, ptr %9821, align 8, !tbaa !50
  %9823 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %9822, i32 0, i32 7
  %9824 = getelementptr inbounds [8 x i8], ptr %9823, i64 0, i64 0
  %9825 = call i32 @s2n_write_uint64(i64 noundef %9819, ptr noundef %9824)
  %9826 = getelementptr inbounds %struct.s2n_result, ptr %219, i32 0, i32 0
  store i32 %9825, ptr %9826, align 4
  %9827 = getelementptr inbounds %struct.s2n_result, ptr %219, i32 0, i32 0
  %9828 = load i32, ptr %9827, align 4
  %9829 = call zeroext i1 @s2n_result_is_ok(i32 %9828)
  br i1 %9829, label %9883, label %9830

9830:                                             ; preds = %9816
  br label %9831

9831:                                             ; preds = %9830
  br label %9832

9832:                                             ; preds = %9831
  call void @llvm.lifetime.start.p0(i64 4, ptr %220) #11
  %9833 = call ptr @__errno_location() #12
  %9834 = load i32, ptr %9833, align 4, !tbaa !5
  store i32 %9834, ptr %220, align 4, !tbaa !5
  %9835 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9836 = call i32 @s2n_print_stacktrace(ptr noundef %9835)
  %9837 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9838 = trunc i8 %9837 to i1
  br i1 %9838, label %9839, label %9861

9839:                                             ; preds = %9832
  %9840 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9841 = call i32 @fileno(ptr noundef %9840) #11
  %9842 = call i32 @isatty(i32 noundef %9841) #11
  %9843 = icmp ne i32 %9842, 0
  br i1 %9843, label %9844, label %9861

9844:                                             ; preds = %9839
  %9845 = load i32, ptr %220, align 4, !tbaa !5
  %9846 = call ptr @__errno_location() #12
  store i32 %9845, ptr %9846, align 4, !tbaa !5
  %9847 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9848 = load i32, ptr @test_count, align 4, !tbaa !5
  %9849 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9850 = load i32, ptr %9849, align 4, !tbaa !5
  %9851 = call ptr @s2n_strerror(i32 noundef %9850, ptr noundef @.str.4)
  %9852 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9853 = load i32, ptr %9852, align 4, !tbaa !5
  %9854 = call ptr @s2n_strerror_debug(i32 noundef %9853, ptr noundef @.str.4)
  %9855 = call ptr @__errno_location() #12
  %9856 = load i32, ptr %9855, align 4, !tbaa !5
  %9857 = call ptr @strerror(i32 noundef %9856) #11
  %9858 = call ptr @__errno_location() #12
  %9859 = load i32, ptr %9858, align 4, !tbaa !5
  %9860 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9847, ptr noundef @.str.2, i32 noundef %9848, ptr noundef @.str.89, ptr noundef @.str.1, i32 noundef 454, ptr noundef %9851, ptr noundef %9854, ptr noundef %9857, i32 noundef %9859) #11
  br label %9878

9861:                                             ; preds = %9839, %9832
  %9862 = load i32, ptr %220, align 4, !tbaa !5
  %9863 = call ptr @__errno_location() #12
  store i32 %9862, ptr %9863, align 4, !tbaa !5
  %9864 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9865 = load i32, ptr @test_count, align 4, !tbaa !5
  %9866 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9867 = load i32, ptr %9866, align 4, !tbaa !5
  %9868 = call ptr @s2n_strerror(i32 noundef %9867, ptr noundef @.str.4)
  %9869 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9870 = load i32, ptr %9869, align 4, !tbaa !5
  %9871 = call ptr @s2n_strerror_debug(i32 noundef %9870, ptr noundef @.str.4)
  %9872 = call ptr @__errno_location() #12
  %9873 = load i32, ptr %9872, align 4, !tbaa !5
  %9874 = call ptr @strerror(i32 noundef %9873) #11
  %9875 = call ptr @__errno_location() #12
  %9876 = load i32, ptr %9875, align 4, !tbaa !5
  %9877 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9864, ptr noundef @.str.5, i32 noundef %9865, ptr noundef @.str.89, ptr noundef @.str.1, i32 noundef 454, ptr noundef %9868, ptr noundef %9871, ptr noundef %9874, i32 noundef %9876) #11
  br label %9878

9878:                                             ; preds = %9861, %9844
  call void @llvm.lifetime.end.p0(i64 4, ptr %220) #11
  br label %9879

9879:                                             ; preds = %9878
  br label %9880

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

9881:                                             ; No predecessors!
  br label %9882

9882:                                             ; preds = %9881
  br label %9883

9883:                                             ; preds = %9882, %9816
  br label %9884

9884:                                             ; preds = %9883
  br label %9885

9885:                                             ; preds = %9884
  call void @llvm.lifetime.start.p0(i64 8, ptr %221) #11
  store i64 0, ptr %221, align 8, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 8, ptr %222) #11
  %9886 = load i64, ptr %209, align 8, !tbaa !20
  store i64 %9886, ptr %222, align 8, !tbaa !20
  br label %9887

9887:                                             ; preds = %10027, %9885
  %9888 = load i64, ptr %222, align 8, !tbaa !20
  %9889 = icmp ule i64 %9888, -1
  br i1 %9889, label %9891, label %9890

9890:                                             ; preds = %9887
  store i32 946, ptr %12, align 4
  br label %10030

9891:                                             ; preds = %9887
  call void @llvm.lifetime.start.p0(i64 4, ptr %223) #11
  store i32 0, ptr %223, align 4, !tbaa !5
  br label %9892

9892:                                             ; preds = %9891
  %9893 = load i32, ptr @test_count, align 4, !tbaa !5
  %9894 = add nsw i32 %9893, 1
  store i32 %9894, ptr @test_count, align 4, !tbaa !5
  %9895 = load ptr, ptr %210, align 8, !tbaa !9
  %9896 = call i32 @s2n_key_update_send(ptr noundef %9895, ptr noundef %223)
  %9897 = icmp eq i32 %9896, -1
  br i1 %9897, label %9898, label %9951

9898:                                             ; preds = %9892
  br label %9899

9899:                                             ; preds = %9898
  br label %9900

9900:                                             ; preds = %9899
  call void @llvm.lifetime.start.p0(i64 4, ptr %224) #11
  %9901 = call ptr @__errno_location() #12
  %9902 = load i32, ptr %9901, align 4, !tbaa !5
  store i32 %9902, ptr %224, align 4, !tbaa !5
  %9903 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9904 = call i32 @s2n_print_stacktrace(ptr noundef %9903)
  %9905 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9906 = trunc i8 %9905 to i1
  br i1 %9906, label %9907, label %9929

9907:                                             ; preds = %9900
  %9908 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9909 = call i32 @fileno(ptr noundef %9908) #11
  %9910 = call i32 @isatty(i32 noundef %9909) #11
  %9911 = icmp ne i32 %9910, 0
  br i1 %9911, label %9912, label %9929

9912:                                             ; preds = %9907
  %9913 = load i32, ptr %224, align 4, !tbaa !5
  %9914 = call ptr @__errno_location() #12
  store i32 %9913, ptr %9914, align 4, !tbaa !5
  %9915 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9916 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %9918, ptr noundef @.str.4)
  %9920 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9921 = load i32, ptr %9920, align 4, !tbaa !5
  %9922 = call ptr @s2n_strerror_debug(i32 noundef %9921, ptr noundef @.str.4)
  %9923 = call ptr @__errno_location() #12
  %9924 = load i32, ptr %9923, align 4, !tbaa !5
  %9925 = call ptr @strerror(i32 noundef %9924) #11
  %9926 = call ptr @__errno_location() #12
  %9927 = load i32, ptr %9926, align 4, !tbaa !5
  %9928 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9915, ptr noundef @.str.2, i32 noundef %9916, ptr noundef @.str.68, ptr noundef @.str.1, i32 noundef 459, ptr noundef %9919, ptr noundef %9922, ptr noundef %9925, i32 noundef %9927) #11
  br label %9946

9929:                                             ; preds = %9907, %9900
  %9930 = load i32, ptr %224, align 4, !tbaa !5
  %9931 = call ptr @__errno_location() #12
  store i32 %9930, ptr %9931, align 4, !tbaa !5
  %9932 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9933 = load i32, ptr @test_count, align 4, !tbaa !5
  %9934 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9935 = load i32, ptr %9934, align 4, !tbaa !5
  %9936 = call ptr @s2n_strerror(i32 noundef %9935, ptr noundef @.str.4)
  %9937 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9938 = load i32, ptr %9937, align 4, !tbaa !5
  %9939 = call ptr @s2n_strerror_debug(i32 noundef %9938, ptr noundef @.str.4)
  %9940 = call ptr @__errno_location() #12
  %9941 = load i32, ptr %9940, align 4, !tbaa !5
  %9942 = call ptr @strerror(i32 noundef %9941) #11
  %9943 = call ptr @__errno_location() #12
  %9944 = load i32, ptr %9943, align 4, !tbaa !5
  %9945 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9932, ptr noundef @.str.5, i32 noundef %9933, ptr noundef @.str.68, ptr noundef @.str.1, i32 noundef 459, ptr noundef %9936, ptr noundef %9939, ptr noundef %9942, i32 noundef %9944) #11
  br label %9946

9946:                                             ; preds = %9929, %9912
  call void @llvm.lifetime.end.p0(i64 4, ptr %224) #11
  br label %9947

9947:                                             ; preds = %9946
  br label %9948

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

9949:                                             ; No predecessors!
  br label %9950

9950:                                             ; preds = %9949
  br label %9951

9951:                                             ; preds = %9950, %9892
  br label %9952

9952:                                             ; preds = %9951
  br label %9953

9953:                                             ; preds = %9952
  %9954 = getelementptr inbounds %struct.s2n_stuffer, ptr %214, i32 0, i32 2
  %9955 = load i32, ptr %9954, align 4, !tbaa !22
  %9956 = getelementptr inbounds %struct.s2n_stuffer, ptr %214, i32 0, i32 1
  %9957 = load i32, ptr %9956, align 8, !tbaa !25
  %9958 = sub i32 %9955, %9957
  %9959 = icmp ugt i32 %9958, 0
  br i1 %9959, label %9960, label %9962

9960:                                             ; preds = %9953
  %9961 = load i64, ptr %222, align 8, !tbaa !20
  store i64 %9961, ptr %221, align 8, !tbaa !20
  store i32 946, ptr %12, align 4
  br label %10024

9962:                                             ; preds = %9953
  br label %9963

9963:                                             ; preds = %9962
  %9964 = load i32, ptr @test_count, align 4, !tbaa !5
  %9965 = add nsw i32 %9964, 1
  store i32 %9965, ptr @test_count, align 4, !tbaa !5
  %9966 = call i32 @s2n_increment_sequence_number(ptr noundef %217)
  %9967 = icmp eq i32 %9966, -1
  br i1 %9967, label %9968, label %10021

9968:                                             ; preds = %9963
  br label %9969

9969:                                             ; preds = %9968
  br label %9970

9970:                                             ; preds = %9969
  call void @llvm.lifetime.start.p0(i64 4, ptr %225) #11
  %9971 = call ptr @__errno_location() #12
  %9972 = load i32, ptr %9971, align 4, !tbaa !5
  store i32 %9972, ptr %225, align 4, !tbaa !5
  %9973 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9974 = call i32 @s2n_print_stacktrace(ptr noundef %9973)
  %9975 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9976 = trunc i8 %9975 to i1
  br i1 %9976, label %9977, label %9999

9977:                                             ; preds = %9970
  %9978 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9979 = call i32 @fileno(ptr noundef %9978) #11
  %9980 = call i32 @isatty(i32 noundef %9979) #11
  %9981 = icmp ne i32 %9980, 0
  br i1 %9981, label %9982, label %9999

9982:                                             ; preds = %9977
  %9983 = load i32, ptr %225, 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.2, i32 noundef %9986, ptr noundef @.str.90, ptr noundef @.str.1, i32 noundef 466, ptr noundef %9989, ptr noundef %9992, ptr noundef %9995, i32 noundef %9997) #11
  br label %10016

9999:                                             ; preds = %9977, %9970
  %10000 = load i32, ptr %225, align 4, !tbaa !5
  %10001 = call ptr @__errno_location() #12
  store i32 %10000, ptr %10001, align 4, !tbaa !5
  %10002 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10003 = load i32, ptr @test_count, align 4, !tbaa !5
  %10004 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10005 = load i32, ptr %10004, align 4, !tbaa !5
  %10006 = call ptr @s2n_strerror(i32 noundef %10005, ptr noundef @.str.4)
  %10007 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10008 = load i32, ptr %10007, align 4, !tbaa !5
  %10009 = call ptr @s2n_strerror_debug(i32 noundef %10008, ptr noundef @.str.4)
  %10010 = call ptr @__errno_location() #12
  %10011 = load i32, ptr %10010, align 4, !tbaa !5
  %10012 = call ptr @strerror(i32 noundef %10011) #11
  %10013 = call ptr @__errno_location() #12
  %10014 = load i32, ptr %10013, align 4, !tbaa !5
  %10015 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10002, ptr noundef @.str.5, i32 noundef %10003, ptr noundef @.str.90, ptr noundef @.str.1, i32 noundef 466, ptr noundef %10006, ptr noundef %10009, ptr noundef %10012, i32 noundef %10014) #11
  br label %10016

10016:                                            ; preds = %9999, %9982
  call void @llvm.lifetime.end.p0(i64 4, ptr %225) #11
  br label %10017

10017:                                            ; preds = %10016
  br label %10018

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

10019:                                            ; No predecessors!
  br label %10020

10020:                                            ; preds = %10019
  br label %10021

10021:                                            ; preds = %10020, %9963
  br label %10022

10022:                                            ; preds = %10021
  br label %10023

10023:                                            ; preds = %10022
  store i32 0, ptr %12, align 4
  br label %10024

10024:                                            ; preds = %10023, %9960
  call void @llvm.lifetime.end.p0(i64 4, ptr %223) #11
  %10025 = load i32, ptr %12, align 4
  switch i32 %10025, label %10030 [
    i32 0, label %10026
  ]

10026:                                            ; preds = %10024
  br label %10027

10027:                                            ; preds = %10026
  %10028 = load i64, ptr %222, align 8, !tbaa !20
  %10029 = add i64 %10028, 1
  store i64 %10029, ptr %222, align 8, !tbaa !20
  br label %9887, !llvm.loop !63

10030:                                            ; preds = %10024, %9890
  call void @llvm.lifetime.end.p0(i64 8, ptr %222) #11
  br label %10031

10031:                                            ; preds = %10030
  br label %10032

10032:                                            ; preds = %10031
  %10033 = load i32, ptr @test_count, align 4, !tbaa !5
  %10034 = add nsw i32 %10033, 1
  store i32 %10034, ptr @test_count, align 4, !tbaa !5
  %10035 = load i64, ptr %221, align 8, !tbaa !20
  %10036 = load i64, ptr %208, align 8, !tbaa !20
  %10037 = icmp eq i64 %10035, %10036
  br i1 %10037, label %10091, label %10038

10038:                                            ; preds = %10032
  br label %10039

10039:                                            ; preds = %10038
  br label %10040

10040:                                            ; preds = %10039
  call void @llvm.lifetime.start.p0(i64 4, ptr %226) #11
  %10041 = call ptr @__errno_location() #12
  %10042 = load i32, ptr %10041, align 4, !tbaa !5
  store i32 %10042, ptr %226, align 4, !tbaa !5
  %10043 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10044 = call i32 @s2n_print_stacktrace(ptr noundef %10043)
  %10045 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10046 = trunc i8 %10045 to i1
  br i1 %10046, label %10047, label %10069

10047:                                            ; preds = %10040
  %10048 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10049 = call i32 @fileno(ptr noundef %10048) #11
  %10050 = call i32 @isatty(i32 noundef %10049) #11
  %10051 = icmp ne i32 %10050, 0
  br i1 %10051, label %10052, label %10069

10052:                                            ; preds = %10047
  %10053 = load i32, ptr %226, align 4, !tbaa !5
  %10054 = call ptr @__errno_location() #12
  store i32 %10053, ptr %10054, align 4, !tbaa !5
  %10055 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10056 = load i32, ptr @test_count, align 4, !tbaa !5
  %10057 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10058 = load i32, ptr %10057, align 4, !tbaa !5
  %10059 = call ptr @s2n_strerror(i32 noundef %10058, ptr noundef @.str.4)
  %10060 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10061 = load i32, ptr %10060, align 4, !tbaa !5
  %10062 = call ptr @s2n_strerror_debug(i32 noundef %10061, ptr noundef @.str.4)
  %10063 = call ptr @__errno_location() #12
  %10064 = load i32, ptr %10063, align 4, !tbaa !5
  %10065 = call ptr @strerror(i32 noundef %10064) #11
  %10066 = call ptr @__errno_location() #12
  %10067 = load i32, ptr %10066, align 4, !tbaa !5
  %10068 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10055, ptr noundef @.str.2, i32 noundef %10056, ptr noundef @.str.91, ptr noundef @.str.1, i32 noundef 469, ptr noundef %10059, ptr noundef %10062, ptr noundef %10065, i32 noundef %10067) #11
  br label %10086

10069:                                            ; preds = %10047, %10040
  %10070 = load i32, ptr %226, align 4, !tbaa !5
  %10071 = call ptr @__errno_location() #12
  store i32 %10070, ptr %10071, align 4, !tbaa !5
  %10072 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10073 = load i32, ptr @test_count, align 4, !tbaa !5
  %10074 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10075 = load i32, ptr %10074, align 4, !tbaa !5
  %10076 = call ptr @s2n_strerror(i32 noundef %10075, ptr noundef @.str.4)
  %10077 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10078 = load i32, ptr %10077, align 4, !tbaa !5
  %10079 = call ptr @s2n_strerror_debug(i32 noundef %10078, ptr noundef @.str.4)
  %10080 = call ptr @__errno_location() #12
  %10081 = load i32, ptr %10080, align 4, !tbaa !5
  %10082 = call ptr @strerror(i32 noundef %10081) #11
  %10083 = call ptr @__errno_location() #12
  %10084 = load i32, ptr %10083, align 4, !tbaa !5
  %10085 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10072, ptr noundef @.str.5, i32 noundef %10073, ptr noundef @.str.91, ptr noundef @.str.1, i32 noundef 469, ptr noundef %10076, ptr noundef %10079, ptr noundef %10082, i32 noundef %10084) #11
  br label %10086

10086:                                            ; preds = %10069, %10052
  call void @llvm.lifetime.end.p0(i64 4, ptr %226) #11
  br label %10087

10087:                                            ; preds = %10086
  br label %10088

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

10089:                                            ; No predecessors!
  br label %10090

10090:                                            ; preds = %10089
  br label %10091

10091:                                            ; preds = %10090, %10032
  br label %10092

10092:                                            ; preds = %10091
  br label %10093

10093:                                            ; preds = %10092
  call void @llvm.lifetime.end.p0(i64 8, ptr %221) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %217) #11
  %10094 = call i32 @s2n_stuffer_free(ptr noundef %214)
  call void @llvm.lifetime.end.p0(i64 40, ptr %214) #11
  store i32 0, ptr %12, align 4
  br label %10095

10095:                                            ; preds = %10093, %9622
  %10096 = call i32 @s2n_connection_ptr_free(ptr noundef %210)
  %10097 = getelementptr inbounds %struct.s2n_result, ptr %227, i32 0, i32 0
  store i32 %10096, ptr %10097, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %210) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %209) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %208) #11
  %10098 = load i32, ptr %12, align 4
  switch i32 %10098, label %15412 [
    i32 0, label %10099
  ]

10099:                                            ; preds = %10095
  call void @llvm.lifetime.start.p0(i64 8, ptr %228) #11
  store i64 -1, ptr %228, align 8, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 8, ptr %229) #11
  store i64 -101, ptr %229, align 8, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 8, ptr %230) #11
  %10100 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %10100, ptr %230, align 8, !tbaa !9
  br label %10101

10101:                                            ; preds = %10099
  %10102 = load i32, ptr @test_count, align 4, !tbaa !5
  %10103 = add nsw i32 %10102, 1
  store i32 %10103, ptr @test_count, align 4, !tbaa !5
  %10104 = load ptr, ptr %230, align 8, !tbaa !9
  %10105 = icmp eq ptr %10104, null
  br i1 %10105, label %10106, label %10159

10106:                                            ; preds = %10101
  br label %10107

10107:                                            ; preds = %10106
  br label %10108

10108:                                            ; preds = %10107
  call void @llvm.lifetime.start.p0(i64 4, ptr %231) #11
  %10109 = call ptr @__errno_location() #12
  %10110 = load i32, ptr %10109, align 4, !tbaa !5
  store i32 %10110, ptr %231, align 4, !tbaa !5
  %10111 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10112 = call i32 @s2n_print_stacktrace(ptr noundef %10111)
  %10113 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10114 = trunc i8 %10113 to i1
  br i1 %10114, label %10115, label %10137

10115:                                            ; preds = %10108
  %10116 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10117 = call i32 @fileno(ptr noundef %10116) #11
  %10118 = call i32 @isatty(i32 noundef %10117) #11
  %10119 = icmp ne i32 %10118, 0
  br i1 %10119, label %10120, label %10137

10120:                                            ; preds = %10115
  %10121 = load i32, ptr %231, 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.2, i32 noundef %10124, ptr noundef @.str.86, ptr noundef @.str.1, i32 noundef 479, ptr noundef %10127, ptr noundef %10130, ptr noundef %10133, i32 noundef %10135) #11
  br label %10154

10137:                                            ; preds = %10115, %10108
  %10138 = load i32, ptr %231, align 4, !tbaa !5
  %10139 = call ptr @__errno_location() #12
  store i32 %10138, ptr %10139, align 4, !tbaa !5
  %10140 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10141 = load i32, ptr @test_count, align 4, !tbaa !5
  %10142 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10143 = load i32, ptr %10142, align 4, !tbaa !5
  %10144 = call ptr @s2n_strerror(i32 noundef %10143, ptr noundef @.str.4)
  %10145 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10146 = load i32, ptr %10145, align 4, !tbaa !5
  %10147 = call ptr @s2n_strerror_debug(i32 noundef %10146, ptr noundef @.str.4)
  %10148 = call ptr @__errno_location() #12
  %10149 = load i32, ptr %10148, align 4, !tbaa !5
  %10150 = call ptr @strerror(i32 noundef %10149) #11
  %10151 = call ptr @__errno_location() #12
  %10152 = load i32, ptr %10151, align 4, !tbaa !5
  %10153 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10140, ptr noundef @.str.5, i32 noundef %10141, ptr noundef @.str.86, ptr noundef @.str.1, i32 noundef 479, ptr noundef %10144, ptr noundef %10147, ptr noundef %10150, i32 noundef %10152) #11
  br label %10154

10154:                                            ; preds = %10137, %10120
  call void @llvm.lifetime.end.p0(i64 4, ptr %231) #11
  br label %10155

10155:                                            ; preds = %10154
  br label %10156

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

10157:                                            ; No predecessors!
  br label %10158

10158:                                            ; preds = %10157
  br label %10159

10159:                                            ; preds = %10158, %10101
  br label %10160

10160:                                            ; preds = %10159
  br label %10161

10161:                                            ; preds = %10160
  %10162 = load ptr, ptr %230, align 8, !tbaa !9
  %10163 = getelementptr inbounds %struct.s2n_connection, ptr %10162, i32 0, i32 23
  store i8 34, ptr %10163, align 4, !tbaa !26
  %10164 = load ptr, ptr %15, align 8, !tbaa !9
  %10165 = load ptr, ptr %230, align 8, !tbaa !9
  %10166 = getelementptr inbounds %struct.s2n_connection, ptr %10165, i32 0, i32 27
  %10167 = load ptr, ptr %10166, align 8, !tbaa !50
  %10168 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %10167, i32 0, i32 0
  store ptr %10164, ptr %10168, align 8, !tbaa !51
  br label %10169

10169:                                            ; preds = %10161
  call void @llvm.lifetime.start.p0(i64 4, ptr %232) #11
  %10170 = getelementptr inbounds %struct.s2n_blob, ptr %10, i32 0, i32 1
  %10171 = load i32, ptr %10170, align 8, !tbaa !56
  store i32 %10171, ptr %232, align 4, !tbaa !5
  %10172 = load i32, ptr %232, align 4, !tbaa !5
  %10173 = icmp ne i32 %10172, 0
  %10174 = xor i1 %10173, true
  %10175 = xor i1 %10174, true
  %10176 = zext i1 %10175 to i32
  %10177 = sext i32 %10176 to i64
  %10178 = call i64 @llvm.expect.i64(i64 %10177, i64 1)
  %10179 = icmp ne i64 %10178, 0
  br i1 %10179, label %10180, label %10233

10180:                                            ; preds = %10169
  call void @llvm.lifetime.start.p0(i64 8, ptr %233) #11
  %10181 = load ptr, ptr %230, align 8, !tbaa !9
  %10182 = getelementptr inbounds %struct.s2n_connection, ptr %10181, i32 0, i32 28
  %10183 = getelementptr inbounds %struct.s2n_secrets, ptr %10182, i32 0, i32 0
  %10184 = getelementptr inbounds %struct.s2n_tls13_secrets, ptr %10183, i32 0, i32 4
  %10185 = getelementptr inbounds [48 x i8], ptr %10184, i64 0, i64 0
  %10186 = getelementptr inbounds %struct.s2n_blob, ptr %10, i32 0, i32 0
  %10187 = load ptr, ptr %10186, align 8, !tbaa !57
  %10188 = load i32, ptr %232, align 4, !tbaa !5
  %10189 = zext i32 %10188 to i64
  %10190 = call ptr @s2n_ensure_memmove_trace(ptr noundef %10185, ptr noundef %10187, i64 noundef %10189)
  store ptr %10190, ptr %233, align 8, !tbaa !9
  br label %10191

10191:                                            ; preds = %10180
  %10192 = load ptr, ptr %233, align 8, !tbaa !9
  %10193 = icmp ne ptr %10192, null
  br i1 %10193, label %10227, label %10194

10194:                                            ; preds = %10191
  br label %10195

10195:                                            ; preds = %10194
  br label %10196

10196:                                            ; preds = %10195
  %10197 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %10198 = getelementptr inbounds %struct.s2n_debug_info, ptr %10197, i32 0, i32 0
  store ptr @.str.92, ptr %10198, align 8, !tbaa !58
  %10199 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %10200 = getelementptr inbounds %struct.s2n_debug_info, ptr %10199, i32 0, i32 0
  %10201 = load ptr, ptr %10200, align 8, !tbaa !58
  %10202 = getelementptr inbounds i8, ptr %10201, i64 21
  %10203 = call ptr @strrchr(ptr noundef %10202, i32 noundef 47) #14
  %10204 = icmp ne ptr %10203, null
  br i1 %10204, label %10205, label %10212

10205:                                            ; preds = %10196
  %10206 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %10207 = getelementptr inbounds %struct.s2n_debug_info, ptr %10206, i32 0, i32 0
  %10208 = load ptr, ptr %10207, align 8, !tbaa !58
  %10209 = getelementptr inbounds i8, ptr %10208, i64 21
  %10210 = call ptr @strrchr(ptr noundef %10209, i32 noundef 47) #14
  %10211 = getelementptr inbounds i8, ptr %10210, i64 1
  br label %10217

10212:                                            ; preds = %10196
  %10213 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %10214 = getelementptr inbounds %struct.s2n_debug_info, ptr %10213, i32 0, i32 0
  %10215 = load ptr, ptr %10214, align 8, !tbaa !58
  %10216 = getelementptr inbounds i8, ptr %10215, i64 21
  br label %10217

10217:                                            ; preds = %10212, %10205
  %10218 = phi ptr [ %10211, %10205 ], [ %10216, %10212 ]
  %10219 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %10220 = getelementptr inbounds %struct.s2n_debug_info, ptr %10219, i32 0, i32 1
  store ptr %10218, ptr %10220, align 8, !tbaa !60
  %10221 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 402653193, ptr %10221, align 4, !tbaa !5
  %10222 = call i32 @s2n_calculate_stacktrace()
  br label %10223

10223:                                            ; preds = %10217
  br label %10224

10224:                                            ; preds = %10223
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %10230

10225:                                            ; No predecessors!
  br label %10226

10226:                                            ; preds = %10225
  br label %10227

10227:                                            ; preds = %10226, %10191
  br label %10228

10228:                                            ; preds = %10227
  br label %10229

10229:                                            ; preds = %10228
  store i32 0, ptr %12, align 4
  br label %10230

10230:                                            ; preds = %10229, %10224
  call void @llvm.lifetime.end.p0(i64 8, ptr %233) #11
  %10231 = load i32, ptr %12, align 4
  switch i32 %10231, label %10234 [
    i32 0, label %10232
  ]

10232:                                            ; preds = %10230
  br label %10233

10233:                                            ; preds = %10232, %10169
  store i32 0, ptr %12, align 4
  br label %10234

10234:                                            ; preds = %10233, %10230
  call void @llvm.lifetime.end.p0(i64 4, ptr %232) #11
  %10235 = load i32, ptr %12, align 4
  switch i32 %10235, label %10704 [
    i32 0, label %10236
  ]

10236:                                            ; preds = %10234
  br label %10237

10237:                                            ; preds = %10236
  br label %10238

10238:                                            ; preds = %10237
  call void @llvm.lifetime.start.p0(i64 40, ptr %234) #11
  call void @llvm.memset.p0.i64(ptr align 8 %234, i8 0, i64 40, i1 false)
  br label %10239

10239:                                            ; preds = %10238
  %10240 = load i32, ptr @test_count, align 4, !tbaa !5
  %10241 = add nsw i32 %10240, 1
  store i32 %10241, ptr @test_count, align 4, !tbaa !5
  %10242 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %234, i32 noundef 0)
  %10243 = icmp eq i32 %10242, -1
  br i1 %10243, label %10244, label %10297

10244:                                            ; preds = %10239
  br label %10245

10245:                                            ; preds = %10244
  br label %10246

10246:                                            ; preds = %10245
  call void @llvm.lifetime.start.p0(i64 4, ptr %235) #11
  %10247 = call ptr @__errno_location() #12
  %10248 = load i32, ptr %10247, align 4, !tbaa !5
  store i32 %10248, ptr %235, align 4, !tbaa !5
  %10249 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10250 = call i32 @s2n_print_stacktrace(ptr noundef %10249)
  %10251 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10252 = trunc i8 %10251 to i1
  br i1 %10252, label %10253, label %10275

10253:                                            ; preds = %10246
  %10254 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10255 = call i32 @fileno(ptr noundef %10254) #11
  %10256 = call i32 @isatty(i32 noundef %10255) #11
  %10257 = icmp ne i32 %10256, 0
  br i1 %10257, label %10258, label %10275

10258:                                            ; preds = %10253
  %10259 = load i32, ptr %235, align 4, !tbaa !5
  %10260 = call ptr @__errno_location() #12
  store i32 %10259, ptr %10260, align 4, !tbaa !5
  %10261 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10262 = load i32, ptr @test_count, align 4, !tbaa !5
  %10263 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10264 = load i32, ptr %10263, align 4, !tbaa !5
  %10265 = call ptr @s2n_strerror(i32 noundef %10264, ptr noundef @.str.4)
  %10266 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10267 = load i32, ptr %10266, align 4, !tbaa !5
  %10268 = call ptr @s2n_strerror_debug(i32 noundef %10267, ptr noundef @.str.4)
  %10269 = call ptr @__errno_location() #12
  %10270 = load i32, ptr %10269, align 4, !tbaa !5
  %10271 = call ptr @strerror(i32 noundef %10270) #11
  %10272 = call ptr @__errno_location() #12
  %10273 = load i32, ptr %10272, align 4, !tbaa !5
  %10274 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10261, ptr noundef @.str.2, i32 noundef %10262, ptr noundef @.str.65, ptr noundef @.str.1, i32 noundef 486, ptr noundef %10265, ptr noundef %10268, ptr noundef %10271, i32 noundef %10273) #11
  br label %10292

10275:                                            ; preds = %10253, %10246
  %10276 = load i32, ptr %235, align 4, !tbaa !5
  %10277 = call ptr @__errno_location() #12
  store i32 %10276, ptr %10277, align 4, !tbaa !5
  %10278 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10279 = load i32, ptr @test_count, align 4, !tbaa !5
  %10280 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10281 = load i32, ptr %10280, align 4, !tbaa !5
  %10282 = call ptr @s2n_strerror(i32 noundef %10281, ptr noundef @.str.4)
  %10283 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10284 = load i32, ptr %10283, align 4, !tbaa !5
  %10285 = call ptr @s2n_strerror_debug(i32 noundef %10284, ptr noundef @.str.4)
  %10286 = call ptr @__errno_location() #12
  %10287 = load i32, ptr %10286, align 4, !tbaa !5
  %10288 = call ptr @strerror(i32 noundef %10287) #11
  %10289 = call ptr @__errno_location() #12
  %10290 = load i32, ptr %10289, align 4, !tbaa !5
  %10291 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10278, ptr noundef @.str.5, i32 noundef %10279, ptr noundef @.str.65, ptr noundef @.str.1, i32 noundef 486, ptr noundef %10282, ptr noundef %10285, ptr noundef %10288, i32 noundef %10290) #11
  br label %10292

10292:                                            ; preds = %10275, %10258
  call void @llvm.lifetime.end.p0(i64 4, ptr %235) #11
  br label %10293

10293:                                            ; preds = %10292
  br label %10294

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

10295:                                            ; No predecessors!
  br label %10296

10296:                                            ; preds = %10295
  br label %10297

10297:                                            ; preds = %10296, %10239
  br label %10298

10298:                                            ; preds = %10297
  br label %10299

10299:                                            ; preds = %10298
  br label %10300

10300:                                            ; preds = %10299
  %10301 = load i32, ptr @test_count, align 4, !tbaa !5
  %10302 = add nsw i32 %10301, 1
  store i32 %10302, ptr @test_count, align 4, !tbaa !5
  %10303 = load ptr, ptr %230, align 8, !tbaa !9
  %10304 = call i32 @s2n_connection_set_io_stuffers(ptr noundef %234, ptr noundef %234, ptr noundef %10303)
  %10305 = icmp eq i32 %10304, -1
  br i1 %10305, label %10306, label %10359

10306:                                            ; preds = %10300
  br label %10307

10307:                                            ; preds = %10306
  br label %10308

10308:                                            ; preds = %10307
  call void @llvm.lifetime.start.p0(i64 4, ptr %236) #11
  %10309 = call ptr @__errno_location() #12
  %10310 = load i32, ptr %10309, align 4, !tbaa !5
  store i32 %10310, ptr %236, align 4, !tbaa !5
  %10311 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10312 = call i32 @s2n_print_stacktrace(ptr noundef %10311)
  %10313 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10314 = trunc i8 %10313 to i1
  br i1 %10314, label %10315, label %10337

10315:                                            ; preds = %10308
  %10316 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10317 = call i32 @fileno(ptr noundef %10316) #11
  %10318 = call i32 @isatty(i32 noundef %10317) #11
  %10319 = icmp ne i32 %10318, 0
  br i1 %10319, label %10320, label %10337

10320:                                            ; preds = %10315
  %10321 = load i32, ptr %236, align 4, !tbaa !5
  %10322 = call ptr @__errno_location() #12
  store i32 %10321, ptr %10322, align 4, !tbaa !5
  %10323 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10324 = load i32, ptr @test_count, align 4, !tbaa !5
  %10325 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10326 = load i32, ptr %10325, align 4, !tbaa !5
  %10327 = call ptr @s2n_strerror(i32 noundef %10326, ptr noundef @.str.4)
  %10328 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10329 = load i32, ptr %10328, align 4, !tbaa !5
  %10330 = call ptr @s2n_strerror_debug(i32 noundef %10329, ptr noundef @.str.4)
  %10331 = call ptr @__errno_location() #12
  %10332 = load i32, ptr %10331, align 4, !tbaa !5
  %10333 = call ptr @strerror(i32 noundef %10332) #11
  %10334 = call ptr @__errno_location() #12
  %10335 = load i32, ptr %10334, align 4, !tbaa !5
  %10336 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10323, ptr noundef @.str.2, i32 noundef %10324, ptr noundef @.str.66, ptr noundef @.str.1, i32 noundef 487, ptr noundef %10327, ptr noundef %10330, ptr noundef %10333, i32 noundef %10335) #11
  br label %10354

10337:                                            ; preds = %10315, %10308
  %10338 = load i32, ptr %236, align 4, !tbaa !5
  %10339 = call ptr @__errno_location() #12
  store i32 %10338, ptr %10339, align 4, !tbaa !5
  %10340 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10341 = load i32, ptr @test_count, align 4, !tbaa !5
  %10342 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10343 = load i32, ptr %10342, align 4, !tbaa !5
  %10344 = call ptr @s2n_strerror(i32 noundef %10343, ptr noundef @.str.4)
  %10345 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10346 = load i32, ptr %10345, align 4, !tbaa !5
  %10347 = call ptr @s2n_strerror_debug(i32 noundef %10346, ptr noundef @.str.4)
  %10348 = call ptr @__errno_location() #12
  %10349 = load i32, ptr %10348, align 4, !tbaa !5
  %10350 = call ptr @strerror(i32 noundef %10349) #11
  %10351 = call ptr @__errno_location() #12
  %10352 = load i32, ptr %10351, align 4, !tbaa !5
  %10353 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10340, ptr noundef @.str.5, i32 noundef %10341, ptr noundef @.str.66, ptr noundef @.str.1, i32 noundef 487, ptr noundef %10344, ptr noundef %10347, ptr noundef %10350, i32 noundef %10352) #11
  br label %10354

10354:                                            ; preds = %10337, %10320
  call void @llvm.lifetime.end.p0(i64 4, ptr %236) #11
  br label %10355

10355:                                            ; preds = %10354
  br label %10356

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

10357:                                            ; No predecessors!
  br label %10358

10358:                                            ; preds = %10357
  br label %10359

10359:                                            ; preds = %10358, %10300
  br label %10360

10360:                                            ; preds = %10359
  br label %10361

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

10362:                                            ; preds = %10361
  %10363 = load i32, ptr @test_count, align 4, !tbaa !5
  %10364 = add nsw i32 %10363, 1
  store i32 %10364, ptr @test_count, align 4, !tbaa !5
  %10365 = load ptr, ptr %230, align 8, !tbaa !9
  %10366 = getelementptr inbounds %struct.s2n_connection, ptr %10365, i32 0, i32 27
  %10367 = load ptr, ptr %10366, align 8, !tbaa !50
  %10368 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %10367, i32 0, i32 7
  %10369 = getelementptr inbounds [8 x i8], ptr %10368, i64 0, i64 0
  %10370 = call i32 @s2n_blob_init(ptr noundef %237, ptr noundef %10369, i32 noundef 8)
  %10371 = icmp eq i32 %10370, -1
  br i1 %10371, label %10372, label %10425

10372:                                            ; preds = %10362
  br label %10373

10373:                                            ; preds = %10372
  br label %10374

10374:                                            ; preds = %10373
  call void @llvm.lifetime.start.p0(i64 4, ptr %238) #11
  %10375 = call ptr @__errno_location() #12
  %10376 = load i32, ptr %10375, align 4, !tbaa !5
  store i32 %10376, ptr %238, align 4, !tbaa !5
  %10377 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10378 = call i32 @s2n_print_stacktrace(ptr noundef %10377)
  %10379 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10380 = trunc i8 %10379 to i1
  br i1 %10380, label %10381, label %10403

10381:                                            ; preds = %10374
  %10382 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10383 = call i32 @fileno(ptr noundef %10382) #11
  %10384 = call i32 @isatty(i32 noundef %10383) #11
  %10385 = icmp ne i32 %10384, 0
  br i1 %10385, label %10386, label %10403

10386:                                            ; preds = %10381
  %10387 = load i32, ptr %238, align 4, !tbaa !5
  %10388 = call ptr @__errno_location() #12
  store i32 %10387, ptr %10388, align 4, !tbaa !5
  %10389 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10390 = load i32, ptr @test_count, align 4, !tbaa !5
  %10391 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10392 = load i32, ptr %10391, align 4, !tbaa !5
  %10393 = call ptr @s2n_strerror(i32 noundef %10392, ptr noundef @.str.4)
  %10394 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10395 = load i32, ptr %10394, align 4, !tbaa !5
  %10396 = call ptr @s2n_strerror_debug(i32 noundef %10395, ptr noundef @.str.4)
  %10397 = call ptr @__errno_location() #12
  %10398 = load i32, ptr %10397, align 4, !tbaa !5
  %10399 = call ptr @strerror(i32 noundef %10398) #11
  %10400 = call ptr @__errno_location() #12
  %10401 = load i32, ptr %10400, align 4, !tbaa !5
  %10402 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10389, ptr noundef @.str.2, i32 noundef %10390, ptr noundef @.str.88, ptr noundef @.str.1, i32 noundef 491, ptr noundef %10393, ptr noundef %10396, ptr noundef %10399, i32 noundef %10401) #11
  br label %10420

10403:                                            ; preds = %10381, %10374
  %10404 = load i32, ptr %238, align 4, !tbaa !5
  %10405 = call ptr @__errno_location() #12
  store i32 %10404, ptr %10405, align 4, !tbaa !5
  %10406 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10407 = load i32, ptr @test_count, align 4, !tbaa !5
  %10408 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10409 = load i32, ptr %10408, align 4, !tbaa !5
  %10410 = call ptr @s2n_strerror(i32 noundef %10409, ptr noundef @.str.4)
  %10411 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10412 = load i32, ptr %10411, align 4, !tbaa !5
  %10413 = call ptr @s2n_strerror_debug(i32 noundef %10412, ptr noundef @.str.4)
  %10414 = call ptr @__errno_location() #12
  %10415 = load i32, ptr %10414, align 4, !tbaa !5
  %10416 = call ptr @strerror(i32 noundef %10415) #11
  %10417 = call ptr @__errno_location() #12
  %10418 = load i32, ptr %10417, align 4, !tbaa !5
  %10419 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10406, ptr noundef @.str.5, i32 noundef %10407, ptr noundef @.str.88, ptr noundef @.str.1, i32 noundef 491, ptr noundef %10410, ptr noundef %10413, ptr noundef %10416, i32 noundef %10418) #11
  br label %10420

10420:                                            ; preds = %10403, %10386
  call void @llvm.lifetime.end.p0(i64 4, ptr %238) #11
  br label %10421

10421:                                            ; preds = %10420
  br label %10422

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

10423:                                            ; No predecessors!
  br label %10424

10424:                                            ; preds = %10423
  br label %10425

10425:                                            ; preds = %10424, %10362
  br label %10426

10426:                                            ; preds = %10425
  br label %10427

10427:                                            ; preds = %10426
  br label %10428

10428:                                            ; preds = %10427
  %10429 = load i32, ptr @test_count, align 4, !tbaa !5
  %10430 = add nsw i32 %10429, 1
  store i32 %10430, ptr @test_count, align 4, !tbaa !5
  %10431 = load ptr, ptr %230, align 8, !tbaa !9
  %10432 = getelementptr inbounds %struct.s2n_connection, ptr %10431, i32 0, i32 27
  %10433 = load ptr, ptr %10432, align 8, !tbaa !50
  %10434 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %10433, i32 0, i32 7
  %10435 = getelementptr inbounds [8 x i8], ptr %10434, i64 0, i64 0
  %10436 = call i32 @s2n_write_uint64(i64 noundef -101, ptr noundef %10435)
  %10437 = getelementptr inbounds %struct.s2n_result, ptr %239, i32 0, i32 0
  store i32 %10436, ptr %10437, align 4
  %10438 = getelementptr inbounds %struct.s2n_result, ptr %239, i32 0, i32 0
  %10439 = load i32, ptr %10438, align 4
  %10440 = call zeroext i1 @s2n_result_is_ok(i32 %10439)
  br i1 %10440, label %10494, label %10441

10441:                                            ; preds = %10428
  br label %10442

10442:                                            ; preds = %10441
  br label %10443

10443:                                            ; preds = %10442
  call void @llvm.lifetime.start.p0(i64 4, ptr %240) #11
  %10444 = call ptr @__errno_location() #12
  %10445 = load i32, ptr %10444, align 4, !tbaa !5
  store i32 %10445, ptr %240, align 4, !tbaa !5
  %10446 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10447 = call i32 @s2n_print_stacktrace(ptr noundef %10446)
  %10448 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10449 = trunc i8 %10448 to i1
  br i1 %10449, label %10450, label %10472

10450:                                            ; preds = %10443
  %10451 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10452 = call i32 @fileno(ptr noundef %10451) #11
  %10453 = call i32 @isatty(i32 noundef %10452) #11
  %10454 = icmp ne i32 %10453, 0
  br i1 %10454, label %10455, label %10472

10455:                                            ; preds = %10450
  %10456 = load i32, ptr %240, align 4, !tbaa !5
  %10457 = call ptr @__errno_location() #12
  store i32 %10456, ptr %10457, align 4, !tbaa !5
  %10458 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10459 = load i32, ptr @test_count, align 4, !tbaa !5
  %10460 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10461 = load i32, ptr %10460, align 4, !tbaa !5
  %10462 = call ptr @s2n_strerror(i32 noundef %10461, ptr noundef @.str.4)
  %10463 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10464 = load i32, ptr %10463, align 4, !tbaa !5
  %10465 = call ptr @s2n_strerror_debug(i32 noundef %10464, ptr noundef @.str.4)
  %10466 = call ptr @__errno_location() #12
  %10467 = load i32, ptr %10466, align 4, !tbaa !5
  %10468 = call ptr @strerror(i32 noundef %10467) #11
  %10469 = call ptr @__errno_location() #12
  %10470 = load i32, ptr %10469, align 4, !tbaa !5
  %10471 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10458, ptr noundef @.str.2, i32 noundef %10459, ptr noundef @.str.89, ptr noundef @.str.1, i32 noundef 492, ptr noundef %10462, ptr noundef %10465, ptr noundef %10468, i32 noundef %10470) #11
  br label %10489

10472:                                            ; preds = %10450, %10443
  %10473 = load i32, ptr %240, align 4, !tbaa !5
  %10474 = call ptr @__errno_location() #12
  store i32 %10473, ptr %10474, align 4, !tbaa !5
  %10475 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10476 = load i32, ptr @test_count, align 4, !tbaa !5
  %10477 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10478 = load i32, ptr %10477, align 4, !tbaa !5
  %10479 = call ptr @s2n_strerror(i32 noundef %10478, ptr noundef @.str.4)
  %10480 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10481 = load i32, ptr %10480, align 4, !tbaa !5
  %10482 = call ptr @s2n_strerror_debug(i32 noundef %10481, ptr noundef @.str.4)
  %10483 = call ptr @__errno_location() #12
  %10484 = load i32, ptr %10483, align 4, !tbaa !5
  %10485 = call ptr @strerror(i32 noundef %10484) #11
  %10486 = call ptr @__errno_location() #12
  %10487 = load i32, ptr %10486, align 4, !tbaa !5
  %10488 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10475, ptr noundef @.str.5, i32 noundef %10476, ptr noundef @.str.89, ptr noundef @.str.1, i32 noundef 492, ptr noundef %10479, ptr noundef %10482, ptr noundef %10485, i32 noundef %10487) #11
  br label %10489

10489:                                            ; preds = %10472, %10455
  call void @llvm.lifetime.end.p0(i64 4, ptr %240) #11
  br label %10490

10490:                                            ; preds = %10489
  br label %10491

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

10492:                                            ; No predecessors!
  br label %10493

10493:                                            ; preds = %10492
  br label %10494

10494:                                            ; preds = %10493, %10428
  br label %10495

10495:                                            ; preds = %10494
  br label %10496

10496:                                            ; preds = %10495
  call void @llvm.lifetime.start.p0(i64 8, ptr %241) #11
  store i64 0, ptr %241, align 8, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 8, ptr %242) #11
  store i64 -101, ptr %242, align 8, !tbaa !20
  br label %10497

10497:                                            ; preds = %10637, %10496
  %10498 = load i64, ptr %242, align 8, !tbaa !20
  %10499 = icmp ule i64 %10498, -1
  br i1 %10499, label %10501, label %10500

10500:                                            ; preds = %10497
  store i32 1005, ptr %12, align 4
  br label %10640

10501:                                            ; preds = %10497
  call void @llvm.lifetime.start.p0(i64 4, ptr %243) #11
  store i32 0, ptr %243, align 4, !tbaa !5
  br label %10502

10502:                                            ; preds = %10501
  %10503 = load i32, ptr @test_count, align 4, !tbaa !5
  %10504 = add nsw i32 %10503, 1
  store i32 %10504, ptr @test_count, align 4, !tbaa !5
  %10505 = load ptr, ptr %230, align 8, !tbaa !9
  %10506 = call i32 @s2n_key_update_send(ptr noundef %10505, ptr noundef %243)
  %10507 = icmp eq i32 %10506, -1
  br i1 %10507, label %10508, label %10561

10508:                                            ; preds = %10502
  br label %10509

10509:                                            ; preds = %10508
  br label %10510

10510:                                            ; preds = %10509
  call void @llvm.lifetime.start.p0(i64 4, ptr %244) #11
  %10511 = call ptr @__errno_location() #12
  %10512 = load i32, ptr %10511, align 4, !tbaa !5
  store i32 %10512, ptr %244, align 4, !tbaa !5
  %10513 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10514 = call i32 @s2n_print_stacktrace(ptr noundef %10513)
  %10515 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10516 = trunc i8 %10515 to i1
  br i1 %10516, label %10517, label %10539

10517:                                            ; preds = %10510
  %10518 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10519 = call i32 @fileno(ptr noundef %10518) #11
  %10520 = call i32 @isatty(i32 noundef %10519) #11
  %10521 = icmp ne i32 %10520, 0
  br i1 %10521, label %10522, label %10539

10522:                                            ; preds = %10517
  %10523 = load i32, ptr %244, align 4, !tbaa !5
  %10524 = call ptr @__errno_location() #12
  store i32 %10523, ptr %10524, align 4, !tbaa !5
  %10525 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10526 = load i32, ptr @test_count, align 4, !tbaa !5
  %10527 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10528 = load i32, ptr %10527, align 4, !tbaa !5
  %10529 = call ptr @s2n_strerror(i32 noundef %10528, ptr noundef @.str.4)
  %10530 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10531 = load i32, ptr %10530, align 4, !tbaa !5
  %10532 = call ptr @s2n_strerror_debug(i32 noundef %10531, ptr noundef @.str.4)
  %10533 = call ptr @__errno_location() #12
  %10534 = load i32, ptr %10533, align 4, !tbaa !5
  %10535 = call ptr @strerror(i32 noundef %10534) #11
  %10536 = call ptr @__errno_location() #12
  %10537 = load i32, ptr %10536, align 4, !tbaa !5
  %10538 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10525, ptr noundef @.str.2, i32 noundef %10526, ptr noundef @.str.68, ptr noundef @.str.1, i32 noundef 497, ptr noundef %10529, ptr noundef %10532, ptr noundef %10535, i32 noundef %10537) #11
  br label %10556

10539:                                            ; preds = %10517, %10510
  %10540 = load i32, ptr %244, align 4, !tbaa !5
  %10541 = call ptr @__errno_location() #12
  store i32 %10540, ptr %10541, align 4, !tbaa !5
  %10542 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10543 = load i32, ptr @test_count, align 4, !tbaa !5
  %10544 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10545 = load i32, ptr %10544, align 4, !tbaa !5
  %10546 = call ptr @s2n_strerror(i32 noundef %10545, ptr noundef @.str.4)
  %10547 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10548 = load i32, ptr %10547, align 4, !tbaa !5
  %10549 = call ptr @s2n_strerror_debug(i32 noundef %10548, ptr noundef @.str.4)
  %10550 = call ptr @__errno_location() #12
  %10551 = load i32, ptr %10550, align 4, !tbaa !5
  %10552 = call ptr @strerror(i32 noundef %10551) #11
  %10553 = call ptr @__errno_location() #12
  %10554 = load i32, ptr %10553, align 4, !tbaa !5
  %10555 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10542, ptr noundef @.str.5, i32 noundef %10543, ptr noundef @.str.68, ptr noundef @.str.1, i32 noundef 497, ptr noundef %10546, ptr noundef %10549, ptr noundef %10552, i32 noundef %10554) #11
  br label %10556

10556:                                            ; preds = %10539, %10522
  call void @llvm.lifetime.end.p0(i64 4, ptr %244) #11
  br label %10557

10557:                                            ; preds = %10556
  br label %10558

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

10559:                                            ; No predecessors!
  br label %10560

10560:                                            ; preds = %10559
  br label %10561

10561:                                            ; preds = %10560, %10502
  br label %10562

10562:                                            ; preds = %10561
  br label %10563

10563:                                            ; preds = %10562
  %10564 = getelementptr inbounds %struct.s2n_stuffer, ptr %234, i32 0, i32 2
  %10565 = load i32, ptr %10564, align 4, !tbaa !22
  %10566 = getelementptr inbounds %struct.s2n_stuffer, ptr %234, i32 0, i32 1
  %10567 = load i32, ptr %10566, align 8, !tbaa !25
  %10568 = sub i32 %10565, %10567
  %10569 = icmp ugt i32 %10568, 0
  br i1 %10569, label %10570, label %10572

10570:                                            ; preds = %10563
  %10571 = load i64, ptr %242, align 8, !tbaa !20
  store i64 %10571, ptr %241, align 8, !tbaa !20
  store i32 1005, ptr %12, align 4
  br label %10634

10572:                                            ; preds = %10563
  br label %10573

10573:                                            ; preds = %10572
  %10574 = load i32, ptr @test_count, align 4, !tbaa !5
  %10575 = add nsw i32 %10574, 1
  store i32 %10575, ptr @test_count, align 4, !tbaa !5
  %10576 = call i32 @s2n_increment_sequence_number(ptr noundef %237)
  %10577 = icmp eq i32 %10576, -1
  br i1 %10577, label %10578, label %10631

10578:                                            ; preds = %10573
  br label %10579

10579:                                            ; preds = %10578
  br label %10580

10580:                                            ; preds = %10579
  call void @llvm.lifetime.start.p0(i64 4, ptr %245) #11
  %10581 = call ptr @__errno_location() #12
  %10582 = load i32, ptr %10581, align 4, !tbaa !5
  store i32 %10582, ptr %245, align 4, !tbaa !5
  %10583 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10584 = call i32 @s2n_print_stacktrace(ptr noundef %10583)
  %10585 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10586 = trunc i8 %10585 to i1
  br i1 %10586, label %10587, label %10609

10587:                                            ; preds = %10580
  %10588 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10589 = call i32 @fileno(ptr noundef %10588) #11
  %10590 = call i32 @isatty(i32 noundef %10589) #11
  %10591 = icmp ne i32 %10590, 0
  br i1 %10591, label %10592, label %10609

10592:                                            ; preds = %10587
  %10593 = load i32, ptr %245, align 4, !tbaa !5
  %10594 = call ptr @__errno_location() #12
  store i32 %10593, ptr %10594, align 4, !tbaa !5
  %10595 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10596 = load i32, ptr @test_count, align 4, !tbaa !5
  %10597 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10598 = load i32, ptr %10597, align 4, !tbaa !5
  %10599 = call ptr @s2n_strerror(i32 noundef %10598, ptr noundef @.str.4)
  %10600 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10601 = load i32, ptr %10600, align 4, !tbaa !5
  %10602 = call ptr @s2n_strerror_debug(i32 noundef %10601, ptr noundef @.str.4)
  %10603 = call ptr @__errno_location() #12
  %10604 = load i32, ptr %10603, align 4, !tbaa !5
  %10605 = call ptr @strerror(i32 noundef %10604) #11
  %10606 = call ptr @__errno_location() #12
  %10607 = load i32, ptr %10606, align 4, !tbaa !5
  %10608 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10595, ptr noundef @.str.2, i32 noundef %10596, ptr noundef @.str.90, ptr noundef @.str.1, i32 noundef 504, ptr noundef %10599, ptr noundef %10602, ptr noundef %10605, i32 noundef %10607) #11
  br label %10626

10609:                                            ; preds = %10587, %10580
  %10610 = load i32, ptr %245, align 4, !tbaa !5
  %10611 = call ptr @__errno_location() #12
  store i32 %10610, ptr %10611, align 4, !tbaa !5
  %10612 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10613 = load i32, ptr @test_count, align 4, !tbaa !5
  %10614 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10615 = load i32, ptr %10614, align 4, !tbaa !5
  %10616 = call ptr @s2n_strerror(i32 noundef %10615, ptr noundef @.str.4)
  %10617 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10618 = load i32, ptr %10617, align 4, !tbaa !5
  %10619 = call ptr @s2n_strerror_debug(i32 noundef %10618, ptr noundef @.str.4)
  %10620 = call ptr @__errno_location() #12
  %10621 = load i32, ptr %10620, align 4, !tbaa !5
  %10622 = call ptr @strerror(i32 noundef %10621) #11
  %10623 = call ptr @__errno_location() #12
  %10624 = load i32, ptr %10623, align 4, !tbaa !5
  %10625 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10612, ptr noundef @.str.5, i32 noundef %10613, ptr noundef @.str.90, ptr noundef @.str.1, i32 noundef 504, ptr noundef %10616, ptr noundef %10619, ptr noundef %10622, i32 noundef %10624) #11
  br label %10626

10626:                                            ; preds = %10609, %10592
  call void @llvm.lifetime.end.p0(i64 4, ptr %245) #11
  br label %10627

10627:                                            ; preds = %10626
  br label %10628

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

10629:                                            ; No predecessors!
  br label %10630

10630:                                            ; preds = %10629
  br label %10631

10631:                                            ; preds = %10630, %10573
  br label %10632

10632:                                            ; preds = %10631
  br label %10633

10633:                                            ; preds = %10632
  store i32 0, ptr %12, align 4
  br label %10634

10634:                                            ; preds = %10633, %10570
  call void @llvm.lifetime.end.p0(i64 4, ptr %243) #11
  %10635 = load i32, ptr %12, align 4
  switch i32 %10635, label %10640 [
    i32 0, label %10636
  ]

10636:                                            ; preds = %10634
  br label %10637

10637:                                            ; preds = %10636
  %10638 = load i64, ptr %242, align 8, !tbaa !20
  %10639 = add i64 %10638, 1
  store i64 %10639, ptr %242, align 8, !tbaa !20
  br label %10497, !llvm.loop !65

10640:                                            ; preds = %10634, %10500
  call void @llvm.lifetime.end.p0(i64 8, ptr %242) #11
  br label %10641

10641:                                            ; preds = %10640
  br label %10642

10642:                                            ; preds = %10641
  %10643 = load i32, ptr @test_count, align 4, !tbaa !5
  %10644 = add nsw i32 %10643, 1
  store i32 %10644, ptr @test_count, align 4, !tbaa !5
  %10645 = load i64, ptr %241, align 8, !tbaa !20
  %10646 = icmp eq i64 %10645, -1
  br i1 %10646, label %10700, label %10647

10647:                                            ; preds = %10642
  br label %10648

10648:                                            ; preds = %10647
  br label %10649

10649:                                            ; preds = %10648
  call void @llvm.lifetime.start.p0(i64 4, ptr %246) #11
  %10650 = call ptr @__errno_location() #12
  %10651 = load i32, ptr %10650, align 4, !tbaa !5
  store i32 %10651, ptr %246, align 4, !tbaa !5
  %10652 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10653 = call i32 @s2n_print_stacktrace(ptr noundef %10652)
  %10654 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10655 = trunc i8 %10654 to i1
  br i1 %10655, label %10656, label %10678

10656:                                            ; preds = %10649
  %10657 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10658 = call i32 @fileno(ptr noundef %10657) #11
  %10659 = call i32 @isatty(i32 noundef %10658) #11
  %10660 = icmp ne i32 %10659, 0
  br i1 %10660, label %10661, label %10678

10661:                                            ; preds = %10656
  %10662 = load i32, ptr %246, align 4, !tbaa !5
  %10663 = call ptr @__errno_location() #12
  store i32 %10662, ptr %10663, align 4, !tbaa !5
  %10664 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10665 = load i32, ptr @test_count, align 4, !tbaa !5
  %10666 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10667 = load i32, ptr %10666, align 4, !tbaa !5
  %10668 = call ptr @s2n_strerror(i32 noundef %10667, ptr noundef @.str.4)
  %10669 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10670 = load i32, ptr %10669, align 4, !tbaa !5
  %10671 = call ptr @s2n_strerror_debug(i32 noundef %10670, ptr noundef @.str.4)
  %10672 = call ptr @__errno_location() #12
  %10673 = load i32, ptr %10672, align 4, !tbaa !5
  %10674 = call ptr @strerror(i32 noundef %10673) #11
  %10675 = call ptr @__errno_location() #12
  %10676 = load i32, ptr %10675, align 4, !tbaa !5
  %10677 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10664, ptr noundef @.str.2, i32 noundef %10665, ptr noundef @.str.91, ptr noundef @.str.1, i32 noundef 507, ptr noundef %10668, ptr noundef %10671, ptr noundef %10674, i32 noundef %10676) #11
  br label %10695

10678:                                            ; preds = %10656, %10649
  %10679 = load i32, ptr %246, align 4, !tbaa !5
  %10680 = call ptr @__errno_location() #12
  store i32 %10679, ptr %10680, align 4, !tbaa !5
  %10681 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10682 = load i32, ptr @test_count, align 4, !tbaa !5
  %10683 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10684 = load i32, ptr %10683, align 4, !tbaa !5
  %10685 = call ptr @s2n_strerror(i32 noundef %10684, ptr noundef @.str.4)
  %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_debug(i32 noundef %10687, ptr noundef @.str.4)
  %10689 = call ptr @__errno_location() #12
  %10690 = load i32, ptr %10689, align 4, !tbaa !5
  %10691 = call ptr @strerror(i32 noundef %10690) #11
  %10692 = call ptr @__errno_location() #12
  %10693 = load i32, ptr %10692, align 4, !tbaa !5
  %10694 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10681, ptr noundef @.str.5, i32 noundef %10682, ptr noundef @.str.91, ptr noundef @.str.1, i32 noundef 507, ptr noundef %10685, ptr noundef %10688, ptr noundef %10691, i32 noundef %10693) #11
  br label %10695

10695:                                            ; preds = %10678, %10661
  call void @llvm.lifetime.end.p0(i64 4, ptr %246) #11
  br label %10696

10696:                                            ; preds = %10695
  br label %10697

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

10698:                                            ; No predecessors!
  br label %10699

10699:                                            ; preds = %10698
  br label %10700

10700:                                            ; preds = %10699, %10642
  br label %10701

10701:                                            ; preds = %10700
  br label %10702

10702:                                            ; preds = %10701
  call void @llvm.lifetime.end.p0(i64 8, ptr %241) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %237) #11
  %10703 = call i32 @s2n_stuffer_free(ptr noundef %234)
  call void @llvm.lifetime.end.p0(i64 40, ptr %234) #11
  store i32 0, ptr %12, align 4
  br label %10704

10704:                                            ; preds = %10702, %10234
  %10705 = call i32 @s2n_connection_ptr_free(ptr noundef %230)
  %10706 = getelementptr inbounds %struct.s2n_result, ptr %247, i32 0, i32 0
  store i32 %10705, ptr %10706, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %230) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %229) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %228) #11
  %10707 = load i32, ptr %12, align 4
  switch i32 %10707, label %15412 [
    i32 0, label %10708
  ]

10708:                                            ; preds = %10704
  call void @llvm.lifetime.start.p0(i64 8, ptr %248) #11
  %10709 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %10709, ptr %248, align 8, !tbaa !9
  %10710 = load ptr, ptr %248, align 8, !tbaa !9
  %10711 = getelementptr inbounds %struct.s2n_connection, ptr %10710, i32 0, i32 23
  store i8 34, ptr %10711, align 4, !tbaa !26
  %10712 = load ptr, ptr %248, align 8, !tbaa !9
  %10713 = load i32, ptr %10712, align 8
  %10714 = and i32 %10713, -262145
  %10715 = or i32 %10714, 262144
  store i32 %10715, ptr %10712, align 8
  call void @llvm.lifetime.start.p0(i64 4, ptr %249) #11
  store i32 0, ptr %249, align 4, !tbaa !5
  br label %10716

10716:                                            ; preds = %10708
  %10717 = load i32, ptr @test_count, align 4, !tbaa !5
  %10718 = add nsw i32 %10717, 1
  store i32 %10718, ptr @test_count, align 4, !tbaa !5
  %10719 = load ptr, ptr %248, align 8, !tbaa !9
  %10720 = call i32 @s2n_key_update_send(ptr noundef %10719, ptr noundef %249)
  %10721 = icmp eq i32 %10720, -1
  br i1 %10721, label %10722, label %10775

10722:                                            ; preds = %10716
  br label %10723

10723:                                            ; preds = %10722
  br label %10724

10724:                                            ; preds = %10723
  call void @llvm.lifetime.start.p0(i64 4, ptr %250) #11
  %10725 = call ptr @__errno_location() #12
  %10726 = load i32, ptr %10725, align 4, !tbaa !5
  store i32 %10726, ptr %250, align 4, !tbaa !5
  %10727 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10728 = call i32 @s2n_print_stacktrace(ptr noundef %10727)
  %10729 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10730 = trunc i8 %10729 to i1
  br i1 %10730, label %10731, label %10753

10731:                                            ; preds = %10724
  %10732 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10733 = call i32 @fileno(ptr noundef %10732) #11
  %10734 = call i32 @isatty(i32 noundef %10733) #11
  %10735 = icmp ne i32 %10734, 0
  br i1 %10735, label %10736, label %10753

10736:                                            ; preds = %10731
  %10737 = load i32, ptr %250, align 4, !tbaa !5
  %10738 = call ptr @__errno_location() #12
  store i32 %10737, ptr %10738, align 4, !tbaa !5
  %10739 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10740 = load i32, ptr @test_count, align 4, !tbaa !5
  %10741 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10742 = load i32, ptr %10741, align 4, !tbaa !5
  %10743 = call ptr @s2n_strerror(i32 noundef %10742, ptr noundef @.str.4)
  %10744 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10745 = load i32, ptr %10744, align 4, !tbaa !5
  %10746 = call ptr @s2n_strerror_debug(i32 noundef %10745, ptr noundef @.str.4)
  %10747 = call ptr @__errno_location() #12
  %10748 = load i32, ptr %10747, align 4, !tbaa !5
  %10749 = call ptr @strerror(i32 noundef %10748) #11
  %10750 = call ptr @__errno_location() #12
  %10751 = load i32, ptr %10750, align 4, !tbaa !5
  %10752 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10739, ptr noundef @.str.2, i32 noundef %10740, ptr noundef @.str.93, ptr noundef @.str.1, i32 noundef 519, ptr noundef %10743, ptr noundef %10746, ptr noundef %10749, i32 noundef %10751) #11
  br label %10770

10753:                                            ; preds = %10731, %10724
  %10754 = load i32, ptr %250, align 4, !tbaa !5
  %10755 = call ptr @__errno_location() #12
  store i32 %10754, ptr %10755, align 4, !tbaa !5
  %10756 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10757 = load i32, ptr @test_count, align 4, !tbaa !5
  %10758 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10759 = load i32, ptr %10758, align 4, !tbaa !5
  %10760 = call ptr @s2n_strerror(i32 noundef %10759, ptr noundef @.str.4)
  %10761 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10762 = load i32, ptr %10761, align 4, !tbaa !5
  %10763 = call ptr @s2n_strerror_debug(i32 noundef %10762, ptr noundef @.str.4)
  %10764 = call ptr @__errno_location() #12
  %10765 = load i32, ptr %10764, align 4, !tbaa !5
  %10766 = call ptr @strerror(i32 noundef %10765) #11
  %10767 = call ptr @__errno_location() #12
  %10768 = load i32, ptr %10767, align 4, !tbaa !5
  %10769 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10756, ptr noundef @.str.5, i32 noundef %10757, ptr noundef @.str.93, ptr noundef @.str.1, i32 noundef 519, ptr noundef %10760, ptr noundef %10763, ptr noundef %10766, i32 noundef %10768) #11
  br label %10770

10770:                                            ; preds = %10753, %10736
  call void @llvm.lifetime.end.p0(i64 4, ptr %250) #11
  br label %10771

10771:                                            ; preds = %10770
  br label %10772

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

10773:                                            ; No predecessors!
  br label %10774

10774:                                            ; preds = %10773
  br label %10775

10775:                                            ; preds = %10774, %10716
  br label %10776

10776:                                            ; preds = %10775
  br label %10777

10777:                                            ; preds = %10776
  br label %10778

10778:                                            ; preds = %10777
  %10779 = load i32, ptr @test_count, align 4, !tbaa !5
  %10780 = add nsw i32 %10779, 1
  store i32 %10780, ptr @test_count, align 4, !tbaa !5
  %10781 = load ptr, ptr %248, align 8, !tbaa !9
  %10782 = getelementptr inbounds %struct.s2n_connection, ptr %10781, i32 0, i32 94
  %10783 = call zeroext i1 @s2n_atomic_flag_test(ptr noundef %10782)
  br i1 %10783, label %10784, label %10837

10784:                                            ; preds = %10778
  br label %10785

10785:                                            ; preds = %10784
  br label %10786

10786:                                            ; preds = %10785
  call void @llvm.lifetime.start.p0(i64 4, ptr %251) #11
  %10787 = call ptr @__errno_location() #12
  %10788 = load i32, ptr %10787, align 4, !tbaa !5
  store i32 %10788, ptr %251, align 4, !tbaa !5
  %10789 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10790 = call i32 @s2n_print_stacktrace(ptr noundef %10789)
  %10791 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10792 = trunc i8 %10791 to i1
  br i1 %10792, label %10793, label %10815

10793:                                            ; preds = %10786
  %10794 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10795 = call i32 @fileno(ptr noundef %10794) #11
  %10796 = call i32 @isatty(i32 noundef %10795) #11
  %10797 = icmp ne i32 %10796, 0
  br i1 %10797, label %10798, label %10815

10798:                                            ; preds = %10793
  %10799 = load i32, ptr %251, align 4, !tbaa !5
  %10800 = call ptr @__errno_location() #12
  store i32 %10799, ptr %10800, align 4, !tbaa !5
  %10801 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10802 = load i32, ptr @test_count, align 4, !tbaa !5
  %10803 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10804 = load i32, ptr %10803, align 4, !tbaa !5
  %10805 = call ptr @s2n_strerror(i32 noundef %10804, ptr noundef @.str.4)
  %10806 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10807 = load i32, ptr %10806, align 4, !tbaa !5
  %10808 = call ptr @s2n_strerror_debug(i32 noundef %10807, ptr noundef @.str.4)
  %10809 = call ptr @__errno_location() #12
  %10810 = load i32, ptr %10809, align 4, !tbaa !5
  %10811 = call ptr @strerror(i32 noundef %10810) #11
  %10812 = call ptr @__errno_location() #12
  %10813 = load i32, ptr %10812, align 4, !tbaa !5
  %10814 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10801, ptr noundef @.str.2, i32 noundef %10802, ptr noundef @.str.94, ptr noundef @.str.1, i32 noundef 520, ptr noundef %10805, ptr noundef %10808, ptr noundef %10811, i32 noundef %10813) #11
  br label %10832

10815:                                            ; preds = %10793, %10786
  %10816 = load i32, ptr %251, align 4, !tbaa !5
  %10817 = call ptr @__errno_location() #12
  store i32 %10816, ptr %10817, align 4, !tbaa !5
  %10818 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10819 = load i32, ptr @test_count, align 4, !tbaa !5
  %10820 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10821 = load i32, ptr %10820, align 4, !tbaa !5
  %10822 = call ptr @s2n_strerror(i32 noundef %10821, ptr noundef @.str.4)
  %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_debug(i32 noundef %10824, ptr noundef @.str.4)
  %10826 = call ptr @__errno_location() #12
  %10827 = load i32, ptr %10826, align 4, !tbaa !5
  %10828 = call ptr @strerror(i32 noundef %10827) #11
  %10829 = call ptr @__errno_location() #12
  %10830 = load i32, ptr %10829, align 4, !tbaa !5
  %10831 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10818, ptr noundef @.str.5, i32 noundef %10819, ptr noundef @.str.94, ptr noundef @.str.1, i32 noundef 520, ptr noundef %10822, ptr noundef %10825, ptr noundef %10828, i32 noundef %10830) #11
  br label %10832

10832:                                            ; preds = %10815, %10798
  call void @llvm.lifetime.end.p0(i64 4, ptr %251) #11
  br label %10833

10833:                                            ; preds = %10832
  br label %10834

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

10835:                                            ; No predecessors!
  br label %10836

10836:                                            ; preds = %10835
  br label %10837

10837:                                            ; preds = %10836, %10778
  br label %10838

10838:                                            ; preds = %10837
  br label %10839

10839:                                            ; preds = %10838
  br label %10840

10840:                                            ; preds = %10839
  %10841 = load i32, ptr @test_count, align 4, !tbaa !5
  %10842 = add nsw i32 %10841, 1
  store i32 %10842, ptr @test_count, align 4, !tbaa !5
  %10843 = load ptr, ptr %248, align 8, !tbaa !9
  %10844 = getelementptr inbounds %struct.s2n_connection, ptr %10843, i32 0, i32 27
  %10845 = load ptr, ptr %10844, align 8, !tbaa !50
  %10846 = icmp eq ptr %10845, null
  br i1 %10846, label %10847, label %10900

10847:                                            ; preds = %10840
  br label %10848

10848:                                            ; preds = %10847
  br label %10849

10849:                                            ; preds = %10848
  call void @llvm.lifetime.start.p0(i64 4, ptr %252) #11
  %10850 = call ptr @__errno_location() #12
  %10851 = load i32, ptr %10850, align 4, !tbaa !5
  store i32 %10851, ptr %252, align 4, !tbaa !5
  %10852 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10853 = call i32 @s2n_print_stacktrace(ptr noundef %10852)
  %10854 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10855 = trunc i8 %10854 to i1
  br i1 %10855, label %10856, label %10878

10856:                                            ; preds = %10849
  %10857 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10858 = call i32 @fileno(ptr noundef %10857) #11
  %10859 = call i32 @isatty(i32 noundef %10858) #11
  %10860 = icmp ne i32 %10859, 0
  br i1 %10860, label %10861, label %10878

10861:                                            ; preds = %10856
  %10862 = load i32, ptr %252, align 4, !tbaa !5
  %10863 = call ptr @__errno_location() #12
  store i32 %10862, ptr %10863, align 4, !tbaa !5
  %10864 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10865 = load i32, ptr @test_count, align 4, !tbaa !5
  %10866 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10867 = load i32, ptr %10866, align 4, !tbaa !5
  %10868 = call ptr @s2n_strerror(i32 noundef %10867, ptr noundef @.str.4)
  %10869 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10870 = load i32, ptr %10869, align 4, !tbaa !5
  %10871 = call ptr @s2n_strerror_debug(i32 noundef %10870, ptr noundef @.str.4)
  %10872 = call ptr @__errno_location() #12
  %10873 = load i32, ptr %10872, align 4, !tbaa !5
  %10874 = call ptr @strerror(i32 noundef %10873) #11
  %10875 = call ptr @__errno_location() #12
  %10876 = load i32, ptr %10875, align 4, !tbaa !5
  %10877 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10864, ptr noundef @.str.2, i32 noundef %10865, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 523, ptr noundef %10868, ptr noundef %10871, ptr noundef %10874, i32 noundef %10876) #11
  br label %10895

10878:                                            ; preds = %10856, %10849
  %10879 = load i32, ptr %252, align 4, !tbaa !5
  %10880 = call ptr @__errno_location() #12
  store i32 %10879, ptr %10880, align 4, !tbaa !5
  %10881 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10882 = load i32, ptr @test_count, align 4, !tbaa !5
  %10883 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10884 = load i32, ptr %10883, align 4, !tbaa !5
  %10885 = call ptr @s2n_strerror(i32 noundef %10884, ptr noundef @.str.4)
  %10886 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10887 = load i32, ptr %10886, align 4, !tbaa !5
  %10888 = call ptr @s2n_strerror_debug(i32 noundef %10887, ptr noundef @.str.4)
  %10889 = call ptr @__errno_location() #12
  %10890 = load i32, ptr %10889, align 4, !tbaa !5
  %10891 = call ptr @strerror(i32 noundef %10890) #11
  %10892 = call ptr @__errno_location() #12
  %10893 = load i32, ptr %10892, align 4, !tbaa !5
  %10894 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10881, ptr noundef @.str.5, i32 noundef %10882, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 523, ptr noundef %10885, ptr noundef %10888, ptr noundef %10891, i32 noundef %10893) #11
  br label %10895

10895:                                            ; preds = %10878, %10861
  call void @llvm.lifetime.end.p0(i64 4, ptr %252) #11
  br label %10896

10896:                                            ; preds = %10895
  br label %10897

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

10898:                                            ; No predecessors!
  br label %10899

10899:                                            ; preds = %10898
  br label %10900

10900:                                            ; preds = %10899, %10840
  br label %10901

10901:                                            ; preds = %10900
  br label %10902

10902:                                            ; preds = %10901
  %10903 = load ptr, ptr %13, align 8, !tbaa !9
  %10904 = load ptr, ptr %248, align 8, !tbaa !9
  %10905 = getelementptr inbounds %struct.s2n_connection, ptr %10904, i32 0, i32 27
  %10906 = load ptr, ptr %10905, align 8, !tbaa !50
  %10907 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %10906, i32 0, i32 0
  store ptr %10903, ptr %10907, align 8, !tbaa !51
  br label %10908

10908:                                            ; preds = %10902
  %10909 = load i32, ptr @test_count, align 4, !tbaa !5
  %10910 = add nsw i32 %10909, 1
  store i32 %10910, ptr @test_count, align 4, !tbaa !5
  %10911 = load i64, ptr %14, align 8, !tbaa !20
  %10912 = load ptr, ptr %248, align 8, !tbaa !9
  %10913 = getelementptr inbounds %struct.s2n_connection, ptr %10912, i32 0, i32 27
  %10914 = load ptr, ptr %10913, align 8, !tbaa !50
  %10915 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %10914, i32 0, i32 7
  %10916 = getelementptr inbounds [8 x i8], ptr %10915, i64 0, i64 0
  %10917 = call i32 @s2n_write_uint64(i64 noundef %10911, ptr noundef %10916)
  %10918 = getelementptr inbounds %struct.s2n_result, ptr %253, i32 0, i32 0
  store i32 %10917, ptr %10918, align 4
  %10919 = getelementptr inbounds %struct.s2n_result, ptr %253, i32 0, i32 0
  %10920 = load i32, ptr %10919, align 4
  %10921 = call zeroext i1 @s2n_result_is_ok(i32 %10920)
  br i1 %10921, label %10975, label %10922

10922:                                            ; preds = %10908
  br label %10923

10923:                                            ; preds = %10922
  br label %10924

10924:                                            ; preds = %10923
  call void @llvm.lifetime.start.p0(i64 4, ptr %254) #11
  %10925 = call ptr @__errno_location() #12
  %10926 = load i32, ptr %10925, align 4, !tbaa !5
  store i32 %10926, ptr %254, align 4, !tbaa !5
  %10927 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10928 = call i32 @s2n_print_stacktrace(ptr noundef %10927)
  %10929 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10930 = trunc i8 %10929 to i1
  br i1 %10930, label %10931, label %10953

10931:                                            ; preds = %10924
  %10932 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10933 = call i32 @fileno(ptr noundef %10932) #11
  %10934 = call i32 @isatty(i32 noundef %10933) #11
  %10935 = icmp ne i32 %10934, 0
  br i1 %10935, label %10936, label %10953

10936:                                            ; preds = %10931
  %10937 = load i32, ptr %254, align 4, !tbaa !5
  %10938 = call ptr @__errno_location() #12
  store i32 %10937, ptr %10938, align 4, !tbaa !5
  %10939 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10940 = load i32, ptr @test_count, align 4, !tbaa !5
  %10941 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10942 = load i32, ptr %10941, align 4, !tbaa !5
  %10943 = call ptr @s2n_strerror(i32 noundef %10942, ptr noundef @.str.4)
  %10944 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10945 = load i32, ptr %10944, align 4, !tbaa !5
  %10946 = call ptr @s2n_strerror_debug(i32 noundef %10945, ptr noundef @.str.4)
  %10947 = call ptr @__errno_location() #12
  %10948 = load i32, ptr %10947, align 4, !tbaa !5
  %10949 = call ptr @strerror(i32 noundef %10948) #11
  %10950 = call ptr @__errno_location() #12
  %10951 = load i32, ptr %10950, align 4, !tbaa !5
  %10952 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10939, ptr noundef @.str.2, i32 noundef %10940, ptr noundef @.str.78, ptr noundef @.str.1, i32 noundef 525, ptr noundef %10943, ptr noundef %10946, ptr noundef %10949, i32 noundef %10951) #11
  br label %10970

10953:                                            ; preds = %10931, %10924
  %10954 = load i32, ptr %254, align 4, !tbaa !5
  %10955 = call ptr @__errno_location() #12
  store i32 %10954, ptr %10955, align 4, !tbaa !5
  %10956 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10957 = load i32, ptr @test_count, align 4, !tbaa !5
  %10958 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10959 = load i32, ptr %10958, align 4, !tbaa !5
  %10960 = call ptr @s2n_strerror(i32 noundef %10959, ptr noundef @.str.4)
  %10961 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10962 = load i32, ptr %10961, align 4, !tbaa !5
  %10963 = call ptr @s2n_strerror_debug(i32 noundef %10962, ptr noundef @.str.4)
  %10964 = call ptr @__errno_location() #12
  %10965 = load i32, ptr %10964, align 4, !tbaa !5
  %10966 = call ptr @strerror(i32 noundef %10965) #11
  %10967 = call ptr @__errno_location() #12
  %10968 = load i32, ptr %10967, align 4, !tbaa !5
  %10969 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10956, ptr noundef @.str.5, i32 noundef %10957, ptr noundef @.str.78, ptr noundef @.str.1, i32 noundef 525, ptr noundef %10960, ptr noundef %10963, ptr noundef %10966, i32 noundef %10968) #11
  br label %10970

10970:                                            ; preds = %10953, %10936
  call void @llvm.lifetime.end.p0(i64 4, ptr %254) #11
  br label %10971

10971:                                            ; preds = %10970
  br label %10972

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

10973:                                            ; No predecessors!
  br label %10974

10974:                                            ; preds = %10973
  br label %10975

10975:                                            ; preds = %10974, %10908
  br label %10976

10976:                                            ; preds = %10975
  br label %10977

10977:                                            ; preds = %10976
  br label %10978

10978:                                            ; preds = %10977
  br label %10979

10979:                                            ; preds = %10978
  br label %10980

10980:                                            ; preds = %10979
  %10981 = load i32, ptr @test_count, align 4, !tbaa !5
  %10982 = add nsw i32 %10981, 1
  store i32 %10982, ptr @test_count, align 4, !tbaa !5
  %10983 = load ptr, ptr %248, align 8, !tbaa !9
  %10984 = call i32 @s2n_key_update_send(ptr noundef %10983, ptr noundef %249)
  %10985 = icmp eq i32 %10984, -1
  br i1 %10985, label %11039, label %10986

10986:                                            ; preds = %10980
  br label %10987

10987:                                            ; preds = %10986
  br label %10988

10988:                                            ; preds = %10987
  call void @llvm.lifetime.start.p0(i64 4, ptr %255) #11
  %10989 = call ptr @__errno_location() #12
  %10990 = load i32, ptr %10989, align 4, !tbaa !5
  store i32 %10990, ptr %255, align 4, !tbaa !5
  %10991 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10992 = call i32 @s2n_print_stacktrace(ptr noundef %10991)
  %10993 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10994 = trunc i8 %10993 to i1
  br i1 %10994, label %10995, label %11017

10995:                                            ; preds = %10988
  %10996 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10997 = call i32 @fileno(ptr noundef %10996) #11
  %10998 = call i32 @isatty(i32 noundef %10997) #11
  %10999 = icmp ne i32 %10998, 0
  br i1 %10999, label %11000, label %11017

11000:                                            ; preds = %10995
  %11001 = load i32, ptr %255, align 4, !tbaa !5
  %11002 = call ptr @__errno_location() #12
  store i32 %11001, ptr %11002, align 4, !tbaa !5
  %11003 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11004 = load i32, ptr @test_count, align 4, !tbaa !5
  %11005 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11006 = load i32, ptr %11005, align 4, !tbaa !5
  %11007 = call ptr @s2n_strerror(i32 noundef %11006, ptr noundef @.str.4)
  %11008 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11009 = load i32, ptr %11008, align 4, !tbaa !5
  %11010 = call ptr @s2n_strerror_debug(i32 noundef %11009, ptr noundef @.str.4)
  %11011 = call ptr @__errno_location() #12
  %11012 = load i32, ptr %11011, align 4, !tbaa !5
  %11013 = call ptr @strerror(i32 noundef %11012) #11
  %11014 = call ptr @__errno_location() #12
  %11015 = load i32, ptr %11014, align 4, !tbaa !5
  %11016 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11003, ptr noundef @.str.2, i32 noundef %11004, ptr noundef @.str.79, ptr noundef @.str.1, i32 noundef 530, ptr noundef %11007, ptr noundef %11010, ptr noundef %11013, i32 noundef %11015) #11
  br label %11034

11017:                                            ; preds = %10995, %10988
  %11018 = load i32, ptr %255, align 4, !tbaa !5
  %11019 = call ptr @__errno_location() #12
  store i32 %11018, ptr %11019, align 4, !tbaa !5
  %11020 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11021 = load i32, ptr @test_count, align 4, !tbaa !5
  %11022 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11023 = load i32, ptr %11022, align 4, !tbaa !5
  %11024 = call ptr @s2n_strerror(i32 noundef %11023, ptr noundef @.str.4)
  %11025 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11026 = load i32, ptr %11025, align 4, !tbaa !5
  %11027 = call ptr @s2n_strerror_debug(i32 noundef %11026, ptr noundef @.str.4)
  %11028 = call ptr @__errno_location() #12
  %11029 = load i32, ptr %11028, align 4, !tbaa !5
  %11030 = call ptr @strerror(i32 noundef %11029) #11
  %11031 = call ptr @__errno_location() #12
  %11032 = load i32, ptr %11031, align 4, !tbaa !5
  %11033 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11020, ptr noundef @.str.5, i32 noundef %11021, ptr noundef @.str.79, ptr noundef @.str.1, i32 noundef 530, ptr noundef %11024, ptr noundef %11027, ptr noundef %11030, i32 noundef %11032) #11
  br label %11034

11034:                                            ; preds = %11017, %11000
  call void @llvm.lifetime.end.p0(i64 4, ptr %255) #11
  br label %11035

11035:                                            ; preds = %11034
  br label %11036

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

11037:                                            ; No predecessors!
  br label %11038

11038:                                            ; preds = %11037
  br label %11039

11039:                                            ; preds = %11038, %10980
  br label %11040

11040:                                            ; preds = %11039
  br label %11041

11041:                                            ; preds = %11040
  br label %11042

11042:                                            ; preds = %11041
  %11043 = load i32, ptr @test_count, align 4, !tbaa !5
  %11044 = add nsw i32 %11043, 1
  store i32 %11044, ptr @test_count, align 4, !tbaa !5
  %11045 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11046 = load i32, ptr %11045, align 4, !tbaa !5
  %11047 = icmp eq i32 %11046, 469762132
  br i1 %11047, label %11101, label %11048

11048:                                            ; preds = %11042
  br label %11049

11049:                                            ; preds = %11048
  br label %11050

11050:                                            ; preds = %11049
  call void @llvm.lifetime.start.p0(i64 4, ptr %256) #11
  %11051 = call ptr @__errno_location() #12
  %11052 = load i32, ptr %11051, align 4, !tbaa !5
  store i32 %11052, ptr %256, align 4, !tbaa !5
  %11053 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11054 = call i32 @s2n_print_stacktrace(ptr noundef %11053)
  %11055 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11056 = trunc i8 %11055 to i1
  br i1 %11056, label %11057, label %11079

11057:                                            ; preds = %11050
  %11058 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11059 = call i32 @fileno(ptr noundef %11058) #11
  %11060 = call i32 @isatty(i32 noundef %11059) #11
  %11061 = icmp ne i32 %11060, 0
  br i1 %11061, label %11062, label %11079

11062:                                            ; preds = %11057
  %11063 = load i32, ptr %256, align 4, !tbaa !5
  %11064 = call ptr @__errno_location() #12
  store i32 %11063, ptr %11064, align 4, !tbaa !5
  %11065 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11066 = load i32, ptr @test_count, align 4, !tbaa !5
  %11067 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11068 = load i32, ptr %11067, align 4, !tbaa !5
  %11069 = call ptr @s2n_strerror(i32 noundef %11068, ptr noundef @.str.4)
  %11070 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11071 = load i32, ptr %11070, align 4, !tbaa !5
  %11072 = call ptr @s2n_strerror_debug(i32 noundef %11071, ptr noundef @.str.4)
  %11073 = call ptr @__errno_location() #12
  %11074 = load i32, ptr %11073, align 4, !tbaa !5
  %11075 = call ptr @strerror(i32 noundef %11074) #11
  %11076 = call ptr @__errno_location() #12
  %11077 = load i32, ptr %11076, align 4, !tbaa !5
  %11078 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11065, ptr noundef @.str.2, i32 noundef %11066, ptr noundef @.str.95, ptr noundef @.str.1, i32 noundef 530, ptr noundef %11069, ptr noundef %11072, ptr noundef %11075, i32 noundef %11077) #11
  br label %11096

11079:                                            ; preds = %11057, %11050
  %11080 = load i32, ptr %256, align 4, !tbaa !5
  %11081 = call ptr @__errno_location() #12
  store i32 %11080, ptr %11081, align 4, !tbaa !5
  %11082 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11083 = load i32, ptr @test_count, align 4, !tbaa !5
  %11084 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11085 = load i32, ptr %11084, align 4, !tbaa !5
  %11086 = call ptr @s2n_strerror(i32 noundef %11085, ptr noundef @.str.4)
  %11087 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11088 = load i32, ptr %11087, align 4, !tbaa !5
  %11089 = call ptr @s2n_strerror_debug(i32 noundef %11088, ptr noundef @.str.4)
  %11090 = call ptr @__errno_location() #12
  %11091 = load i32, ptr %11090, align 4, !tbaa !5
  %11092 = call ptr @strerror(i32 noundef %11091) #11
  %11093 = call ptr @__errno_location() #12
  %11094 = load i32, ptr %11093, align 4, !tbaa !5
  %11095 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11082, ptr noundef @.str.5, i32 noundef %11083, ptr noundef @.str.95, ptr noundef @.str.1, i32 noundef 530, ptr noundef %11086, ptr noundef %11089, ptr noundef %11092, i32 noundef %11094) #11
  br label %11096

11096:                                            ; preds = %11079, %11062
  call void @llvm.lifetime.end.p0(i64 4, ptr %256) #11
  br label %11097

11097:                                            ; preds = %11096
  br label %11098

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

11099:                                            ; No predecessors!
  br label %11100

11100:                                            ; preds = %11099
  br label %11101

11101:                                            ; preds = %11100, %11042
  br label %11102

11102:                                            ; preds = %11101
  br label %11103

11103:                                            ; preds = %11102
  br label %11104

11104:                                            ; preds = %11103
  %11105 = load i32, ptr @test_count, align 4, !tbaa !5
  %11106 = add nsw i32 %11105, 1
  store i32 %11106, ptr @test_count, align 4, !tbaa !5
  %11107 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11108 = load i32, ptr %11107, align 4, !tbaa !5
  %11109 = call ptr @s2n_strerror_debug(i32 noundef %11108, ptr noundef @.str.4)
  %11110 = icmp eq ptr %11109, null
  br i1 %11110, label %11111, label %11164

11111:                                            ; preds = %11104
  br label %11112

11112:                                            ; preds = %11111
  br label %11113

11113:                                            ; preds = %11112
  call void @llvm.lifetime.start.p0(i64 4, ptr %257) #11
  %11114 = call ptr @__errno_location() #12
  %11115 = load i32, ptr %11114, align 4, !tbaa !5
  store i32 %11115, ptr %257, align 4, !tbaa !5
  %11116 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11117 = call i32 @s2n_print_stacktrace(ptr noundef %11116)
  %11118 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11119 = trunc i8 %11118 to i1
  br i1 %11119, label %11120, label %11142

11120:                                            ; preds = %11113
  %11121 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11122 = call i32 @fileno(ptr noundef %11121) #11
  %11123 = call i32 @isatty(i32 noundef %11122) #11
  %11124 = icmp ne i32 %11123, 0
  br i1 %11124, label %11125, label %11142

11125:                                            ; preds = %11120
  %11126 = load i32, ptr %257, align 4, !tbaa !5
  %11127 = call ptr @__errno_location() #12
  store i32 %11126, ptr %11127, align 4, !tbaa !5
  %11128 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11129 = load i32, ptr @test_count, align 4, !tbaa !5
  %11130 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11131 = load i32, ptr %11130, align 4, !tbaa !5
  %11132 = call ptr @s2n_strerror(i32 noundef %11131, ptr noundef @.str.4)
  %11133 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11134 = load i32, ptr %11133, align 4, !tbaa !5
  %11135 = call ptr @s2n_strerror_debug(i32 noundef %11134, ptr noundef @.str.4)
  %11136 = call ptr @__errno_location() #12
  %11137 = load i32, ptr %11136, align 4, !tbaa !5
  %11138 = call ptr @strerror(i32 noundef %11137) #11
  %11139 = call ptr @__errno_location() #12
  %11140 = load i32, ptr %11139, align 4, !tbaa !5
  %11141 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11128, ptr noundef @.str.2, i32 noundef %11129, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 530, ptr noundef %11132, ptr noundef %11135, ptr noundef %11138, i32 noundef %11140) #11
  br label %11159

11142:                                            ; preds = %11120, %11113
  %11143 = load i32, ptr %257, align 4, !tbaa !5
  %11144 = call ptr @__errno_location() #12
  store i32 %11143, ptr %11144, align 4, !tbaa !5
  %11145 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11146 = load i32, ptr @test_count, align 4, !tbaa !5
  %11147 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11148 = load i32, ptr %11147, align 4, !tbaa !5
  %11149 = call ptr @s2n_strerror(i32 noundef %11148, ptr noundef @.str.4)
  %11150 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11151 = load i32, ptr %11150, align 4, !tbaa !5
  %11152 = call ptr @s2n_strerror_debug(i32 noundef %11151, ptr noundef @.str.4)
  %11153 = call ptr @__errno_location() #12
  %11154 = load i32, ptr %11153, align 4, !tbaa !5
  %11155 = call ptr @strerror(i32 noundef %11154) #11
  %11156 = call ptr @__errno_location() #12
  %11157 = load i32, ptr %11156, align 4, !tbaa !5
  %11158 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11145, ptr noundef @.str.5, i32 noundef %11146, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 530, ptr noundef %11149, ptr noundef %11152, ptr noundef %11155, i32 noundef %11157) #11
  br label %11159

11159:                                            ; preds = %11142, %11125
  call void @llvm.lifetime.end.p0(i64 4, ptr %257) #11
  br label %11160

11160:                                            ; preds = %11159
  br label %11161

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

11162:                                            ; No predecessors!
  br label %11163

11163:                                            ; preds = %11162
  br label %11164

11164:                                            ; preds = %11163, %11104
  br label %11165

11165:                                            ; preds = %11164
  br label %11166

11166:                                            ; preds = %11165
  br label %11167

11167:                                            ; preds = %11166
  br label %11168

11168:                                            ; preds = %11167
  br label %11169

11169:                                            ; preds = %11168
  %11170 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %11170, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %11171 = call ptr @__errno_location() #12
  store i32 0, ptr %11171, align 4, !tbaa !5
  br label %11172

11172:                                            ; preds = %11169
  br label %11173

11173:                                            ; preds = %11172
  br label %11174

11174:                                            ; preds = %11173
  br label %11175

11175:                                            ; preds = %11174
  br label %11176

11176:                                            ; preds = %11175
  %11177 = load i32, ptr @test_count, align 4, !tbaa !5
  %11178 = add nsw i32 %11177, 1
  store i32 %11178, ptr @test_count, align 4, !tbaa !5
  %11179 = load ptr, ptr %248, align 8, !tbaa !9
  %11180 = getelementptr inbounds %struct.s2n_connection, ptr %11179, i32 0, i32 94
  %11181 = call zeroext i1 @s2n_atomic_flag_test(ptr noundef %11180)
  br i1 %11181, label %11235, label %11182

11182:                                            ; preds = %11176
  br label %11183

11183:                                            ; preds = %11182
  br label %11184

11184:                                            ; preds = %11183
  call void @llvm.lifetime.start.p0(i64 4, ptr %258) #11
  %11185 = call ptr @__errno_location() #12
  %11186 = load i32, ptr %11185, align 4, !tbaa !5
  store i32 %11186, ptr %258, align 4, !tbaa !5
  %11187 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11188 = call i32 @s2n_print_stacktrace(ptr noundef %11187)
  %11189 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11190 = trunc i8 %11189 to i1
  br i1 %11190, label %11191, label %11213

11191:                                            ; preds = %11184
  %11192 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11193 = call i32 @fileno(ptr noundef %11192) #11
  %11194 = call i32 @isatty(i32 noundef %11193) #11
  %11195 = icmp ne i32 %11194, 0
  br i1 %11195, label %11196, label %11213

11196:                                            ; preds = %11191
  %11197 = load i32, ptr %258, align 4, !tbaa !5
  %11198 = call ptr @__errno_location() #12
  store i32 %11197, ptr %11198, align 4, !tbaa !5
  %11199 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11200 = load i32, ptr @test_count, align 4, !tbaa !5
  %11201 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11202 = load i32, ptr %11201, align 4, !tbaa !5
  %11203 = call ptr @s2n_strerror(i32 noundef %11202, ptr noundef @.str.4)
  %11204 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11205 = load i32, ptr %11204, align 4, !tbaa !5
  %11206 = call ptr @s2n_strerror_debug(i32 noundef %11205, ptr noundef @.str.4)
  %11207 = call ptr @__errno_location() #12
  %11208 = load i32, ptr %11207, align 4, !tbaa !5
  %11209 = call ptr @strerror(i32 noundef %11208) #11
  %11210 = call ptr @__errno_location() #12
  %11211 = load i32, ptr %11210, align 4, !tbaa !5
  %11212 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11199, ptr noundef @.str.2, i32 noundef %11200, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 531, ptr noundef %11203, ptr noundef %11206, ptr noundef %11209, i32 noundef %11211) #11
  br label %11230

11213:                                            ; preds = %11191, %11184
  %11214 = load i32, ptr %258, align 4, !tbaa !5
  %11215 = call ptr @__errno_location() #12
  store i32 %11214, ptr %11215, align 4, !tbaa !5
  %11216 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11217 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %11219, ptr noundef @.str.4)
  %11221 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11222 = load i32, ptr %11221, align 4, !tbaa !5
  %11223 = call ptr @s2n_strerror_debug(i32 noundef %11222, ptr noundef @.str.4)
  %11224 = call ptr @__errno_location() #12
  %11225 = load i32, ptr %11224, align 4, !tbaa !5
  %11226 = call ptr @strerror(i32 noundef %11225) #11
  %11227 = call ptr @__errno_location() #12
  %11228 = load i32, ptr %11227, align 4, !tbaa !5
  %11229 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11216, ptr noundef @.str.5, i32 noundef %11217, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 531, ptr noundef %11220, ptr noundef %11223, ptr noundef %11226, i32 noundef %11228) #11
  br label %11230

11230:                                            ; preds = %11213, %11196
  call void @llvm.lifetime.end.p0(i64 4, ptr %258) #11
  br label %11231

11231:                                            ; preds = %11230
  br label %11232

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

11233:                                            ; No predecessors!
  br label %11234

11234:                                            ; preds = %11233
  br label %11235

11235:                                            ; preds = %11234, %11176
  br label %11236

11236:                                            ; preds = %11235
  br label %11237

11237:                                            ; preds = %11236
  call void @llvm.lifetime.end.p0(i64 4, ptr %249) #11
  %11238 = call i32 @s2n_connection_ptr_free(ptr noundef %248)
  %11239 = getelementptr inbounds %struct.s2n_result, ptr %259, i32 0, i32 0
  store i32 %11238, ptr %11239, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %248) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr %260) #11
  call void @llvm.memset.p0.i64(ptr align 8 %260, i8 0, i64 24, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %261) #11
  call void @llvm.memset.p0.i64(ptr align 1 %261, i8 0, i64 8, i1 false)
  br label %11240

11240:                                            ; preds = %11237
  %11241 = load i32, ptr @test_count, align 4, !tbaa !5
  %11242 = add nsw i32 %11241, 1
  store i32 %11242, ptr @test_count, align 4, !tbaa !5
  %11243 = getelementptr inbounds [8 x i8], ptr %261, i64 0, i64 0
  %11244 = call i32 @s2n_blob_init(ptr noundef %260, ptr noundef %11243, i32 noundef 8)
  %11245 = icmp eq i32 %11244, -1
  br i1 %11245, label %11246, label %11299

11246:                                            ; preds = %11240
  br label %11247

11247:                                            ; preds = %11246
  br label %11248

11248:                                            ; preds = %11247
  call void @llvm.lifetime.start.p0(i64 4, ptr %262) #11
  %11249 = call ptr @__errno_location() #12
  %11250 = load i32, ptr %11249, align 4, !tbaa !5
  store i32 %11250, ptr %262, align 4, !tbaa !5
  %11251 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11252 = call i32 @s2n_print_stacktrace(ptr noundef %11251)
  %11253 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11254 = trunc i8 %11253 to i1
  br i1 %11254, label %11255, label %11277

11255:                                            ; preds = %11248
  %11256 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11257 = call i32 @fileno(ptr noundef %11256) #11
  %11258 = call i32 @isatty(i32 noundef %11257) #11
  %11259 = icmp ne i32 %11258, 0
  br i1 %11259, label %11260, label %11277

11260:                                            ; preds = %11255
  %11261 = load i32, ptr %262, align 4, !tbaa !5
  %11262 = call ptr @__errno_location() #12
  store i32 %11261, ptr %11262, align 4, !tbaa !5
  %11263 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11264 = load i32, ptr @test_count, align 4, !tbaa !5
  %11265 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11266 = load i32, ptr %11265, align 4, !tbaa !5
  %11267 = call ptr @s2n_strerror(i32 noundef %11266, ptr noundef @.str.4)
  %11268 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11269 = load i32, ptr %11268, align 4, !tbaa !5
  %11270 = call ptr @s2n_strerror_debug(i32 noundef %11269, ptr noundef @.str.4)
  %11271 = call ptr @__errno_location() #12
  %11272 = load i32, ptr %11271, align 4, !tbaa !5
  %11273 = call ptr @strerror(i32 noundef %11272) #11
  %11274 = call ptr @__errno_location() #12
  %11275 = load i32, ptr %11274, align 4, !tbaa !5
  %11276 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11263, ptr noundef @.str.2, i32 noundef %11264, ptr noundef @.str.96, ptr noundef @.str.1, i32 noundef 541, ptr noundef %11267, ptr noundef %11270, ptr noundef %11273, i32 noundef %11275) #11
  br label %11294

11277:                                            ; preds = %11255, %11248
  %11278 = load i32, ptr %262, 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.5, i32 noundef %11281, ptr noundef @.str.96, ptr noundef @.str.1, i32 noundef 541, ptr noundef %11284, ptr noundef %11287, ptr noundef %11290, i32 noundef %11292) #11
  br label %11294

11294:                                            ; preds = %11277, %11260
  call void @llvm.lifetime.end.p0(i64 4, ptr %262) #11
  br label %11295

11295:                                            ; preds = %11294
  br label %11296

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

11297:                                            ; No predecessors!
  br label %11298

11298:                                            ; preds = %11297
  br label %11299

11299:                                            ; preds = %11298, %11240
  br label %11300

11300:                                            ; preds = %11299
  br label %11301

11301:                                            ; preds = %11300
  call void @llvm.lifetime.start.p0(i64 8, ptr %263) #11
  %11302 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %11302, ptr %263, align 8, !tbaa !9
  br label %11303

11303:                                            ; preds = %11301
  %11304 = load i32, ptr @test_count, align 4, !tbaa !5
  %11305 = add nsw i32 %11304, 1
  store i32 %11305, ptr @test_count, align 4, !tbaa !5
  %11306 = load ptr, ptr %263, align 8, !tbaa !9
  %11307 = icmp eq ptr %11306, null
  br i1 %11307, label %11308, label %11361

11308:                                            ; preds = %11303
  br label %11309

11309:                                            ; preds = %11308
  br label %11310

11310:                                            ; preds = %11309
  call void @llvm.lifetime.start.p0(i64 4, ptr %264) #11
  %11311 = call ptr @__errno_location() #12
  %11312 = load i32, ptr %11311, align 4, !tbaa !5
  store i32 %11312, ptr %264, align 4, !tbaa !5
  %11313 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11314 = call i32 @s2n_print_stacktrace(ptr noundef %11313)
  %11315 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11316 = trunc i8 %11315 to i1
  br i1 %11316, label %11317, label %11339

11317:                                            ; preds = %11310
  %11318 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11319 = call i32 @fileno(ptr noundef %11318) #11
  %11320 = call i32 @isatty(i32 noundef %11319) #11
  %11321 = icmp ne i32 %11320, 0
  br i1 %11321, label %11322, label %11339

11322:                                            ; preds = %11317
  %11323 = load i32, ptr %264, align 4, !tbaa !5
  %11324 = call ptr @__errno_location() #12
  store i32 %11323, ptr %11324, align 4, !tbaa !5
  %11325 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11326 = load i32, ptr @test_count, align 4, !tbaa !5
  %11327 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11328 = load i32, ptr %11327, align 4, !tbaa !5
  %11329 = call ptr @s2n_strerror(i32 noundef %11328, ptr noundef @.str.4)
  %11330 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11331 = load i32, ptr %11330, align 4, !tbaa !5
  %11332 = call ptr @s2n_strerror_debug(i32 noundef %11331, ptr noundef @.str.4)
  %11333 = call ptr @__errno_location() #12
  %11334 = load i32, ptr %11333, align 4, !tbaa !5
  %11335 = call ptr @strerror(i32 noundef %11334) #11
  %11336 = call ptr @__errno_location() #12
  %11337 = load i32, ptr %11336, align 4, !tbaa !5
  %11338 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11325, ptr noundef @.str.2, i32 noundef %11326, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 544, ptr noundef %11329, ptr noundef %11332, ptr noundef %11335, i32 noundef %11337) #11
  br label %11356

11339:                                            ; preds = %11317, %11310
  %11340 = load i32, ptr %264, align 4, !tbaa !5
  %11341 = call ptr @__errno_location() #12
  store i32 %11340, ptr %11341, align 4, !tbaa !5
  %11342 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11343 = load i32, ptr @test_count, align 4, !tbaa !5
  %11344 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11345 = load i32, ptr %11344, align 4, !tbaa !5
  %11346 = call ptr @s2n_strerror(i32 noundef %11345, ptr noundef @.str.4)
  %11347 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11348 = load i32, ptr %11347, align 4, !tbaa !5
  %11349 = call ptr @s2n_strerror_debug(i32 noundef %11348, ptr noundef @.str.4)
  %11350 = call ptr @__errno_location() #12
  %11351 = load i32, ptr %11350, align 4, !tbaa !5
  %11352 = call ptr @strerror(i32 noundef %11351) #11
  %11353 = call ptr @__errno_location() #12
  %11354 = load i32, ptr %11353, align 4, !tbaa !5
  %11355 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11342, ptr noundef @.str.5, i32 noundef %11343, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 544, ptr noundef %11346, ptr noundef %11349, ptr noundef %11352, i32 noundef %11354) #11
  br label %11356

11356:                                            ; preds = %11339, %11322
  call void @llvm.lifetime.end.p0(i64 4, ptr %264) #11
  br label %11357

11357:                                            ; preds = %11356
  br label %11358

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

11359:                                            ; No predecessors!
  br label %11360

11360:                                            ; preds = %11359
  br label %11361

11361:                                            ; preds = %11360, %11303
  br label %11362

11362:                                            ; preds = %11361
  br label %11363

11363:                                            ; preds = %11362
  %11364 = load ptr, ptr %13, align 8, !tbaa !9
  %11365 = load ptr, ptr %263, align 8, !tbaa !9
  %11366 = getelementptr inbounds %struct.s2n_connection, ptr %11365, i32 0, i32 27
  %11367 = load ptr, ptr %11366, align 8, !tbaa !50
  %11368 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %11367, i32 0, i32 0
  store ptr %11364, ptr %11368, align 8, !tbaa !51
  %11369 = load ptr, ptr %263, align 8, !tbaa !9
  %11370 = getelementptr inbounds %struct.s2n_connection, ptr %11369, i32 0, i32 94
  call void @s2n_atomic_flag_clear(ptr noundef %11370)
  br label %11371

11371:                                            ; preds = %11363
  %11372 = load i32, ptr @test_count, align 4, !tbaa !5
  %11373 = add nsw i32 %11372, 1
  store i32 %11373, ptr @test_count, align 4, !tbaa !5
  %11374 = getelementptr inbounds [8 x i8], ptr %261, i64 0, i64 0
  %11375 = call i32 @s2n_write_uint64(i64 noundef 0, ptr noundef %11374)
  %11376 = getelementptr inbounds %struct.s2n_result, ptr %265, i32 0, i32 0
  store i32 %11375, ptr %11376, align 4
  %11377 = getelementptr inbounds %struct.s2n_result, ptr %265, i32 0, i32 0
  %11378 = load i32, ptr %11377, align 4
  %11379 = call zeroext i1 @s2n_result_is_ok(i32 %11378)
  br i1 %11379, label %11433, label %11380

11380:                                            ; preds = %11371
  br label %11381

11381:                                            ; preds = %11380
  br label %11382

11382:                                            ; preds = %11381
  call void @llvm.lifetime.start.p0(i64 4, ptr %266) #11
  %11383 = call ptr @__errno_location() #12
  %11384 = load i32, ptr %11383, align 4, !tbaa !5
  store i32 %11384, ptr %266, align 4, !tbaa !5
  %11385 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11386 = call i32 @s2n_print_stacktrace(ptr noundef %11385)
  %11387 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11388 = trunc i8 %11387 to i1
  br i1 %11388, label %11389, label %11411

11389:                                            ; preds = %11382
  %11390 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11391 = call i32 @fileno(ptr noundef %11390) #11
  %11392 = call i32 @isatty(i32 noundef %11391) #11
  %11393 = icmp ne i32 %11392, 0
  br i1 %11393, label %11394, label %11411

11394:                                            ; preds = %11389
  %11395 = load i32, ptr %266, align 4, !tbaa !5
  %11396 = call ptr @__errno_location() #12
  store i32 %11395, ptr %11396, align 4, !tbaa !5
  %11397 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11398 = load i32, ptr @test_count, align 4, !tbaa !5
  %11399 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11400 = load i32, ptr %11399, align 4, !tbaa !5
  %11401 = call ptr @s2n_strerror(i32 noundef %11400, ptr noundef @.str.4)
  %11402 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11403 = load i32, ptr %11402, align 4, !tbaa !5
  %11404 = call ptr @s2n_strerror_debug(i32 noundef %11403, ptr noundef @.str.4)
  %11405 = call ptr @__errno_location() #12
  %11406 = load i32, ptr %11405, align 4, !tbaa !5
  %11407 = call ptr @strerror(i32 noundef %11406) #11
  %11408 = call ptr @__errno_location() #12
  %11409 = load i32, ptr %11408, align 4, !tbaa !5
  %11410 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11397, ptr noundef @.str.2, i32 noundef %11398, ptr noundef @.str.97, ptr noundef @.str.1, i32 noundef 549, ptr noundef %11401, ptr noundef %11404, ptr noundef %11407, i32 noundef %11409) #11
  br label %11428

11411:                                            ; preds = %11389, %11382
  %11412 = load i32, ptr %266, align 4, !tbaa !5
  %11413 = call ptr @__errno_location() #12
  store i32 %11412, ptr %11413, align 4, !tbaa !5
  %11414 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11415 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %11417, ptr noundef @.str.4)
  %11419 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11420 = load i32, ptr %11419, align 4, !tbaa !5
  %11421 = call ptr @s2n_strerror_debug(i32 noundef %11420, ptr noundef @.str.4)
  %11422 = call ptr @__errno_location() #12
  %11423 = load i32, ptr %11422, align 4, !tbaa !5
  %11424 = call ptr @strerror(i32 noundef %11423) #11
  %11425 = call ptr @__errno_location() #12
  %11426 = load i32, ptr %11425, align 4, !tbaa !5
  %11427 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11414, ptr noundef @.str.5, i32 noundef %11415, ptr noundef @.str.97, ptr noundef @.str.1, i32 noundef 549, ptr noundef %11418, ptr noundef %11421, ptr noundef %11424, i32 noundef %11426) #11
  br label %11428

11428:                                            ; preds = %11411, %11394
  call void @llvm.lifetime.end.p0(i64 4, ptr %266) #11
  br label %11429

11429:                                            ; preds = %11428
  br label %11430

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

11431:                                            ; No predecessors!
  br label %11432

11432:                                            ; preds = %11431
  br label %11433

11433:                                            ; preds = %11432, %11371
  br label %11434

11434:                                            ; preds = %11433
  br label %11435

11435:                                            ; preds = %11434
  br label %11436

11436:                                            ; preds = %11435
  %11437 = load i32, ptr @test_count, align 4, !tbaa !5
  %11438 = add nsw i32 %11437, 1
  store i32 %11438, ptr @test_count, align 4, !tbaa !5
  %11439 = load ptr, ptr %263, align 8, !tbaa !9
  %11440 = call i32 @s2n_check_record_limit(ptr noundef %11439, ptr noundef %260)
  %11441 = icmp eq i32 %11440, -1
  br i1 %11441, label %11442, label %11495

11442:                                            ; preds = %11436
  br label %11443

11443:                                            ; preds = %11442
  br label %11444

11444:                                            ; preds = %11443
  call void @llvm.lifetime.start.p0(i64 4, ptr %267) #11
  %11445 = call ptr @__errno_location() #12
  %11446 = load i32, ptr %11445, align 4, !tbaa !5
  store i32 %11446, ptr %267, align 4, !tbaa !5
  %11447 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11448 = call i32 @s2n_print_stacktrace(ptr noundef %11447)
  %11449 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11450 = trunc i8 %11449 to i1
  br i1 %11450, label %11451, label %11473

11451:                                            ; preds = %11444
  %11452 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11453 = call i32 @fileno(ptr noundef %11452) #11
  %11454 = call i32 @isatty(i32 noundef %11453) #11
  %11455 = icmp ne i32 %11454, 0
  br i1 %11455, label %11456, label %11473

11456:                                            ; preds = %11451
  %11457 = load i32, ptr %267, align 4, !tbaa !5
  %11458 = call ptr @__errno_location() #12
  store i32 %11457, ptr %11458, align 4, !tbaa !5
  %11459 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11460 = load i32, ptr @test_count, align 4, !tbaa !5
  %11461 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11462 = load i32, ptr %11461, align 4, !tbaa !5
  %11463 = call ptr @s2n_strerror(i32 noundef %11462, ptr noundef @.str.4)
  %11464 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11465 = load i32, ptr %11464, align 4, !tbaa !5
  %11466 = call ptr @s2n_strerror_debug(i32 noundef %11465, ptr noundef @.str.4)
  %11467 = call ptr @__errno_location() #12
  %11468 = load i32, ptr %11467, align 4, !tbaa !5
  %11469 = call ptr @strerror(i32 noundef %11468) #11
  %11470 = call ptr @__errno_location() #12
  %11471 = load i32, ptr %11470, align 4, !tbaa !5
  %11472 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11459, ptr noundef @.str.2, i32 noundef %11460, ptr noundef @.str.98, ptr noundef @.str.1, i32 noundef 550, ptr noundef %11463, ptr noundef %11466, ptr noundef %11469, i32 noundef %11471) #11
  br label %11490

11473:                                            ; preds = %11451, %11444
  %11474 = load i32, ptr %267, align 4, !tbaa !5
  %11475 = call ptr @__errno_location() #12
  store i32 %11474, ptr %11475, align 4, !tbaa !5
  %11476 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11477 = load i32, ptr @test_count, align 4, !tbaa !5
  %11478 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11479 = load i32, ptr %11478, align 4, !tbaa !5
  %11480 = call ptr @s2n_strerror(i32 noundef %11479, ptr noundef @.str.4)
  %11481 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11482 = load i32, ptr %11481, align 4, !tbaa !5
  %11483 = call ptr @s2n_strerror_debug(i32 noundef %11482, ptr noundef @.str.4)
  %11484 = call ptr @__errno_location() #12
  %11485 = load i32, ptr %11484, align 4, !tbaa !5
  %11486 = call ptr @strerror(i32 noundef %11485) #11
  %11487 = call ptr @__errno_location() #12
  %11488 = load i32, ptr %11487, align 4, !tbaa !5
  %11489 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11476, ptr noundef @.str.5, i32 noundef %11477, ptr noundef @.str.98, ptr noundef @.str.1, i32 noundef 550, ptr noundef %11480, ptr noundef %11483, ptr noundef %11486, i32 noundef %11488) #11
  br label %11490

11490:                                            ; preds = %11473, %11456
  call void @llvm.lifetime.end.p0(i64 4, ptr %267) #11
  br label %11491

11491:                                            ; preds = %11490
  br label %11492

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

11493:                                            ; No predecessors!
  br label %11494

11494:                                            ; preds = %11493
  br label %11495

11495:                                            ; preds = %11494, %11436
  br label %11496

11496:                                            ; preds = %11495
  br label %11497

11497:                                            ; preds = %11496
  br label %11498

11498:                                            ; preds = %11497
  %11499 = load i32, ptr @test_count, align 4, !tbaa !5
  %11500 = add nsw i32 %11499, 1
  store i32 %11500, ptr @test_count, align 4, !tbaa !5
  %11501 = load ptr, ptr %263, align 8, !tbaa !9
  %11502 = getelementptr inbounds %struct.s2n_connection, ptr %11501, i32 0, i32 94
  %11503 = call zeroext i1 @s2n_atomic_flag_test(ptr noundef %11502)
  br i1 %11503, label %11504, label %11557

11504:                                            ; preds = %11498
  br label %11505

11505:                                            ; preds = %11504
  br label %11506

11506:                                            ; preds = %11505
  call void @llvm.lifetime.start.p0(i64 4, ptr %268) #11
  %11507 = call ptr @__errno_location() #12
  %11508 = load i32, ptr %11507, align 4, !tbaa !5
  store i32 %11508, ptr %268, align 4, !tbaa !5
  %11509 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11510 = call i32 @s2n_print_stacktrace(ptr noundef %11509)
  %11511 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11512 = trunc i8 %11511 to i1
  br i1 %11512, label %11513, label %11535

11513:                                            ; preds = %11506
  %11514 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11515 = call i32 @fileno(ptr noundef %11514) #11
  %11516 = call i32 @isatty(i32 noundef %11515) #11
  %11517 = icmp ne i32 %11516, 0
  br i1 %11517, label %11518, label %11535

11518:                                            ; preds = %11513
  %11519 = load i32, ptr %268, align 4, !tbaa !5
  %11520 = call ptr @__errno_location() #12
  store i32 %11519, ptr %11520, align 4, !tbaa !5
  %11521 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11522 = load i32, ptr @test_count, align 4, !tbaa !5
  %11523 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11524 = load i32, ptr %11523, align 4, !tbaa !5
  %11525 = call ptr @s2n_strerror(i32 noundef %11524, ptr noundef @.str.4)
  %11526 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11527 = load i32, ptr %11526, align 4, !tbaa !5
  %11528 = call ptr @s2n_strerror_debug(i32 noundef %11527, ptr noundef @.str.4)
  %11529 = call ptr @__errno_location() #12
  %11530 = load i32, ptr %11529, align 4, !tbaa !5
  %11531 = call ptr @strerror(i32 noundef %11530) #11
  %11532 = call ptr @__errno_location() #12
  %11533 = load i32, ptr %11532, align 4, !tbaa !5
  %11534 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11521, ptr noundef @.str.2, i32 noundef %11522, ptr noundef @.str.94, ptr noundef @.str.1, i32 noundef 551, ptr noundef %11525, ptr noundef %11528, ptr noundef %11531, i32 noundef %11533) #11
  br label %11552

11535:                                            ; preds = %11513, %11506
  %11536 = load i32, ptr %268, align 4, !tbaa !5
  %11537 = call ptr @__errno_location() #12
  store i32 %11536, ptr %11537, align 4, !tbaa !5
  %11538 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11539 = load i32, ptr @test_count, align 4, !tbaa !5
  %11540 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11541 = load i32, ptr %11540, align 4, !tbaa !5
  %11542 = call ptr @s2n_strerror(i32 noundef %11541, ptr noundef @.str.4)
  %11543 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11544 = load i32, ptr %11543, align 4, !tbaa !5
  %11545 = call ptr @s2n_strerror_debug(i32 noundef %11544, ptr noundef @.str.4)
  %11546 = call ptr @__errno_location() #12
  %11547 = load i32, ptr %11546, align 4, !tbaa !5
  %11548 = call ptr @strerror(i32 noundef %11547) #11
  %11549 = call ptr @__errno_location() #12
  %11550 = load i32, ptr %11549, align 4, !tbaa !5
  %11551 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11538, ptr noundef @.str.5, i32 noundef %11539, ptr noundef @.str.94, ptr noundef @.str.1, i32 noundef 551, ptr noundef %11542, ptr noundef %11545, ptr noundef %11548, i32 noundef %11550) #11
  br label %11552

11552:                                            ; preds = %11535, %11518
  call void @llvm.lifetime.end.p0(i64 4, ptr %268) #11
  br label %11553

11553:                                            ; preds = %11552
  br label %11554

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

11555:                                            ; No predecessors!
  br label %11556

11556:                                            ; preds = %11555
  br label %11557

11557:                                            ; preds = %11556, %11498
  br label %11558

11558:                                            ; preds = %11557
  br label %11559

11559:                                            ; preds = %11558
  %11560 = load ptr, ptr %263, align 8, !tbaa !9
  %11561 = getelementptr inbounds %struct.s2n_connection, ptr %11560, i32 0, i32 94
  call void @s2n_atomic_flag_clear(ptr noundef %11561)
  br label %11562

11562:                                            ; preds = %11559
  %11563 = load i32, ptr @test_count, align 4, !tbaa !5
  %11564 = add nsw i32 %11563, 1
  store i32 %11564, ptr @test_count, align 4, !tbaa !5
  %11565 = load i64, ptr %14, align 8, !tbaa !20
  %11566 = sub i64 %11565, 2
  %11567 = getelementptr inbounds [8 x i8], ptr %261, i64 0, i64 0
  %11568 = call i32 @s2n_write_uint64(i64 noundef %11566, ptr noundef %11567)
  %11569 = getelementptr inbounds %struct.s2n_result, ptr %269, i32 0, i32 0
  store i32 %11568, ptr %11569, align 4
  %11570 = getelementptr inbounds %struct.s2n_result, ptr %269, i32 0, i32 0
  %11571 = load i32, ptr %11570, align 4
  %11572 = call zeroext i1 @s2n_result_is_ok(i32 %11571)
  br i1 %11572, label %11626, label %11573

11573:                                            ; preds = %11562
  br label %11574

11574:                                            ; preds = %11573
  br label %11575

11575:                                            ; preds = %11574
  call void @llvm.lifetime.start.p0(i64 4, ptr %270) #11
  %11576 = call ptr @__errno_location() #12
  %11577 = load i32, ptr %11576, align 4, !tbaa !5
  store i32 %11577, ptr %270, align 4, !tbaa !5
  %11578 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11579 = call i32 @s2n_print_stacktrace(ptr noundef %11578)
  %11580 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11581 = trunc i8 %11580 to i1
  br i1 %11581, label %11582, label %11604

11582:                                            ; preds = %11575
  %11583 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11584 = call i32 @fileno(ptr noundef %11583) #11
  %11585 = call i32 @isatty(i32 noundef %11584) #11
  %11586 = icmp ne i32 %11585, 0
  br i1 %11586, label %11587, label %11604

11587:                                            ; preds = %11582
  %11588 = load i32, ptr %270, align 4, !tbaa !5
  %11589 = call ptr @__errno_location() #12
  store i32 %11588, ptr %11589, align 4, !tbaa !5
  %11590 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11591 = load i32, ptr @test_count, align 4, !tbaa !5
  %11592 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11593 = load i32, ptr %11592, align 4, !tbaa !5
  %11594 = call ptr @s2n_strerror(i32 noundef %11593, ptr noundef @.str.4)
  %11595 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11596 = load i32, ptr %11595, align 4, !tbaa !5
  %11597 = call ptr @s2n_strerror_debug(i32 noundef %11596, ptr noundef @.str.4)
  %11598 = call ptr @__errno_location() #12
  %11599 = load i32, ptr %11598, align 4, !tbaa !5
  %11600 = call ptr @strerror(i32 noundef %11599) #11
  %11601 = call ptr @__errno_location() #12
  %11602 = load i32, ptr %11601, align 4, !tbaa !5
  %11603 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11590, ptr noundef @.str.2, i32 noundef %11591, ptr noundef @.str.99, ptr noundef @.str.1, i32 noundef 555, ptr noundef %11594, ptr noundef %11597, ptr noundef %11600, i32 noundef %11602) #11
  br label %11621

11604:                                            ; preds = %11582, %11575
  %11605 = load i32, ptr %270, align 4, !tbaa !5
  %11606 = call ptr @__errno_location() #12
  store i32 %11605, ptr %11606, align 4, !tbaa !5
  %11607 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11608 = load i32, ptr @test_count, align 4, !tbaa !5
  %11609 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11610 = load i32, ptr %11609, align 4, !tbaa !5
  %11611 = call ptr @s2n_strerror(i32 noundef %11610, ptr noundef @.str.4)
  %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_debug(i32 noundef %11613, ptr noundef @.str.4)
  %11615 = call ptr @__errno_location() #12
  %11616 = load i32, ptr %11615, align 4, !tbaa !5
  %11617 = call ptr @strerror(i32 noundef %11616) #11
  %11618 = call ptr @__errno_location() #12
  %11619 = load i32, ptr %11618, align 4, !tbaa !5
  %11620 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11607, ptr noundef @.str.5, i32 noundef %11608, ptr noundef @.str.99, ptr noundef @.str.1, i32 noundef 555, ptr noundef %11611, ptr noundef %11614, ptr noundef %11617, i32 noundef %11619) #11
  br label %11621

11621:                                            ; preds = %11604, %11587
  call void @llvm.lifetime.end.p0(i64 4, ptr %270) #11
  br label %11622

11622:                                            ; preds = %11621
  br label %11623

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

11624:                                            ; No predecessors!
  br label %11625

11625:                                            ; preds = %11624
  br label %11626

11626:                                            ; preds = %11625, %11562
  br label %11627

11627:                                            ; preds = %11626
  br label %11628

11628:                                            ; preds = %11627
  br label %11629

11629:                                            ; preds = %11628
  %11630 = load i32, ptr @test_count, align 4, !tbaa !5
  %11631 = add nsw i32 %11630, 1
  store i32 %11631, ptr @test_count, align 4, !tbaa !5
  %11632 = load ptr, ptr %263, align 8, !tbaa !9
  %11633 = call i32 @s2n_check_record_limit(ptr noundef %11632, ptr noundef %260)
  %11634 = icmp eq i32 %11633, -1
  br i1 %11634, label %11635, label %11688

11635:                                            ; preds = %11629
  br label %11636

11636:                                            ; preds = %11635
  br label %11637

11637:                                            ; preds = %11636
  call void @llvm.lifetime.start.p0(i64 4, ptr %271) #11
  %11638 = call ptr @__errno_location() #12
  %11639 = load i32, ptr %11638, align 4, !tbaa !5
  store i32 %11639, ptr %271, align 4, !tbaa !5
  %11640 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11641 = call i32 @s2n_print_stacktrace(ptr noundef %11640)
  %11642 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11643 = trunc i8 %11642 to i1
  br i1 %11643, label %11644, label %11666

11644:                                            ; preds = %11637
  %11645 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11646 = call i32 @fileno(ptr noundef %11645) #11
  %11647 = call i32 @isatty(i32 noundef %11646) #11
  %11648 = icmp ne i32 %11647, 0
  br i1 %11648, label %11649, label %11666

11649:                                            ; preds = %11644
  %11650 = load i32, ptr %271, align 4, !tbaa !5
  %11651 = call ptr @__errno_location() #12
  store i32 %11650, ptr %11651, align 4, !tbaa !5
  %11652 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11653 = load i32, ptr @test_count, align 4, !tbaa !5
  %11654 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11655 = load i32, ptr %11654, align 4, !tbaa !5
  %11656 = call ptr @s2n_strerror(i32 noundef %11655, ptr noundef @.str.4)
  %11657 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11658 = load i32, ptr %11657, align 4, !tbaa !5
  %11659 = call ptr @s2n_strerror_debug(i32 noundef %11658, ptr noundef @.str.4)
  %11660 = call ptr @__errno_location() #12
  %11661 = load i32, ptr %11660, align 4, !tbaa !5
  %11662 = call ptr @strerror(i32 noundef %11661) #11
  %11663 = call ptr @__errno_location() #12
  %11664 = load i32, ptr %11663, align 4, !tbaa !5
  %11665 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11652, ptr noundef @.str.2, i32 noundef %11653, ptr noundef @.str.98, ptr noundef @.str.1, i32 noundef 556, ptr noundef %11656, ptr noundef %11659, ptr noundef %11662, i32 noundef %11664) #11
  br label %11683

11666:                                            ; preds = %11644, %11637
  %11667 = load i32, ptr %271, align 4, !tbaa !5
  %11668 = call ptr @__errno_location() #12
  store i32 %11667, ptr %11668, align 4, !tbaa !5
  %11669 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11670 = load i32, ptr @test_count, align 4, !tbaa !5
  %11671 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11672 = load i32, ptr %11671, align 4, !tbaa !5
  %11673 = call ptr @s2n_strerror(i32 noundef %11672, ptr noundef @.str.4)
  %11674 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11675 = load i32, ptr %11674, align 4, !tbaa !5
  %11676 = call ptr @s2n_strerror_debug(i32 noundef %11675, ptr noundef @.str.4)
  %11677 = call ptr @__errno_location() #12
  %11678 = load i32, ptr %11677, align 4, !tbaa !5
  %11679 = call ptr @strerror(i32 noundef %11678) #11
  %11680 = call ptr @__errno_location() #12
  %11681 = load i32, ptr %11680, align 4, !tbaa !5
  %11682 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11669, ptr noundef @.str.5, i32 noundef %11670, ptr noundef @.str.98, ptr noundef @.str.1, i32 noundef 556, ptr noundef %11673, ptr noundef %11676, ptr noundef %11679, i32 noundef %11681) #11
  br label %11683

11683:                                            ; preds = %11666, %11649
  call void @llvm.lifetime.end.p0(i64 4, ptr %271) #11
  br label %11684

11684:                                            ; preds = %11683
  br label %11685

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

11686:                                            ; No predecessors!
  br label %11687

11687:                                            ; preds = %11686
  br label %11688

11688:                                            ; preds = %11687, %11629
  br label %11689

11689:                                            ; preds = %11688
  br label %11690

11690:                                            ; preds = %11689
  br label %11691

11691:                                            ; preds = %11690
  %11692 = load i32, ptr @test_count, align 4, !tbaa !5
  %11693 = add nsw i32 %11692, 1
  store i32 %11693, ptr @test_count, align 4, !tbaa !5
  %11694 = load ptr, ptr %263, align 8, !tbaa !9
  %11695 = getelementptr inbounds %struct.s2n_connection, ptr %11694, i32 0, i32 94
  %11696 = call zeroext i1 @s2n_atomic_flag_test(ptr noundef %11695)
  br i1 %11696, label %11697, label %11750

11697:                                            ; preds = %11691
  br label %11698

11698:                                            ; preds = %11697
  br label %11699

11699:                                            ; preds = %11698
  call void @llvm.lifetime.start.p0(i64 4, ptr %272) #11
  %11700 = call ptr @__errno_location() #12
  %11701 = load i32, ptr %11700, align 4, !tbaa !5
  store i32 %11701, ptr %272, align 4, !tbaa !5
  %11702 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11703 = call i32 @s2n_print_stacktrace(ptr noundef %11702)
  %11704 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11705 = trunc i8 %11704 to i1
  br i1 %11705, label %11706, label %11728

11706:                                            ; preds = %11699
  %11707 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11708 = call i32 @fileno(ptr noundef %11707) #11
  %11709 = call i32 @isatty(i32 noundef %11708) #11
  %11710 = icmp ne i32 %11709, 0
  br i1 %11710, label %11711, label %11728

11711:                                            ; preds = %11706
  %11712 = load i32, ptr %272, align 4, !tbaa !5
  %11713 = call ptr @__errno_location() #12
  store i32 %11712, ptr %11713, align 4, !tbaa !5
  %11714 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11715 = load i32, ptr @test_count, align 4, !tbaa !5
  %11716 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11717 = load i32, ptr %11716, align 4, !tbaa !5
  %11718 = call ptr @s2n_strerror(i32 noundef %11717, ptr noundef @.str.4)
  %11719 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11720 = load i32, ptr %11719, align 4, !tbaa !5
  %11721 = call ptr @s2n_strerror_debug(i32 noundef %11720, ptr noundef @.str.4)
  %11722 = call ptr @__errno_location() #12
  %11723 = load i32, ptr %11722, align 4, !tbaa !5
  %11724 = call ptr @strerror(i32 noundef %11723) #11
  %11725 = call ptr @__errno_location() #12
  %11726 = load i32, ptr %11725, align 4, !tbaa !5
  %11727 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11714, ptr noundef @.str.2, i32 noundef %11715, ptr noundef @.str.94, ptr noundef @.str.1, i32 noundef 557, ptr noundef %11718, ptr noundef %11721, ptr noundef %11724, i32 noundef %11726) #11
  br label %11745

11728:                                            ; preds = %11706, %11699
  %11729 = load i32, ptr %272, align 4, !tbaa !5
  %11730 = call ptr @__errno_location() #12
  store i32 %11729, ptr %11730, align 4, !tbaa !5
  %11731 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11732 = load i32, ptr @test_count, align 4, !tbaa !5
  %11733 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11734 = load i32, ptr %11733, align 4, !tbaa !5
  %11735 = call ptr @s2n_strerror(i32 noundef %11734, ptr noundef @.str.4)
  %11736 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11737 = load i32, ptr %11736, align 4, !tbaa !5
  %11738 = call ptr @s2n_strerror_debug(i32 noundef %11737, ptr noundef @.str.4)
  %11739 = call ptr @__errno_location() #12
  %11740 = load i32, ptr %11739, align 4, !tbaa !5
  %11741 = call ptr @strerror(i32 noundef %11740) #11
  %11742 = call ptr @__errno_location() #12
  %11743 = load i32, ptr %11742, align 4, !tbaa !5
  %11744 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11731, ptr noundef @.str.5, i32 noundef %11732, ptr noundef @.str.94, ptr noundef @.str.1, i32 noundef 557, ptr noundef %11735, ptr noundef %11738, ptr noundef %11741, i32 noundef %11743) #11
  br label %11745

11745:                                            ; preds = %11728, %11711
  call void @llvm.lifetime.end.p0(i64 4, ptr %272) #11
  br label %11746

11746:                                            ; preds = %11745
  br label %11747

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

11748:                                            ; No predecessors!
  br label %11749

11749:                                            ; preds = %11748
  br label %11750

11750:                                            ; preds = %11749, %11691
  br label %11751

11751:                                            ; preds = %11750
  br label %11752

11752:                                            ; preds = %11751
  %11753 = load ptr, ptr %263, align 8, !tbaa !9
  %11754 = getelementptr inbounds %struct.s2n_connection, ptr %11753, i32 0, i32 94
  call void @s2n_atomic_flag_clear(ptr noundef %11754)
  br label %11755

11755:                                            ; preds = %11752
  %11756 = load i32, ptr @test_count, align 4, !tbaa !5
  %11757 = add nsw i32 %11756, 1
  store i32 %11757, ptr @test_count, align 4, !tbaa !5
  %11758 = load i64, ptr %14, align 8, !tbaa !20
  %11759 = sub i64 %11758, 1
  %11760 = getelementptr inbounds [8 x i8], ptr %261, i64 0, i64 0
  %11761 = call i32 @s2n_write_uint64(i64 noundef %11759, ptr noundef %11760)
  %11762 = getelementptr inbounds %struct.s2n_result, ptr %273, i32 0, i32 0
  store i32 %11761, ptr %11762, align 4
  %11763 = getelementptr inbounds %struct.s2n_result, ptr %273, i32 0, i32 0
  %11764 = load i32, ptr %11763, align 4
  %11765 = call zeroext i1 @s2n_result_is_ok(i32 %11764)
  br i1 %11765, label %11819, label %11766

11766:                                            ; preds = %11755
  br label %11767

11767:                                            ; preds = %11766
  br label %11768

11768:                                            ; preds = %11767
  call void @llvm.lifetime.start.p0(i64 4, ptr %274) #11
  %11769 = call ptr @__errno_location() #12
  %11770 = load i32, ptr %11769, align 4, !tbaa !5
  store i32 %11770, ptr %274, align 4, !tbaa !5
  %11771 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11772 = call i32 @s2n_print_stacktrace(ptr noundef %11771)
  %11773 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11774 = trunc i8 %11773 to i1
  br i1 %11774, label %11775, label %11797

11775:                                            ; preds = %11768
  %11776 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11777 = call i32 @fileno(ptr noundef %11776) #11
  %11778 = call i32 @isatty(i32 noundef %11777) #11
  %11779 = icmp ne i32 %11778, 0
  br i1 %11779, label %11780, label %11797

11780:                                            ; preds = %11775
  %11781 = load i32, ptr %274, align 4, !tbaa !5
  %11782 = call ptr @__errno_location() #12
  store i32 %11781, ptr %11782, align 4, !tbaa !5
  %11783 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11784 = load i32, ptr @test_count, align 4, !tbaa !5
  %11785 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11786 = load i32, ptr %11785, align 4, !tbaa !5
  %11787 = call ptr @s2n_strerror(i32 noundef %11786, ptr noundef @.str.4)
  %11788 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11789 = load i32, ptr %11788, align 4, !tbaa !5
  %11790 = call ptr @s2n_strerror_debug(i32 noundef %11789, ptr noundef @.str.4)
  %11791 = call ptr @__errno_location() #12
  %11792 = load i32, ptr %11791, align 4, !tbaa !5
  %11793 = call ptr @strerror(i32 noundef %11792) #11
  %11794 = call ptr @__errno_location() #12
  %11795 = load i32, ptr %11794, align 4, !tbaa !5
  %11796 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11783, ptr noundef @.str.2, i32 noundef %11784, ptr noundef @.str.100, ptr noundef @.str.1, i32 noundef 561, ptr noundef %11787, ptr noundef %11790, ptr noundef %11793, i32 noundef %11795) #11
  br label %11814

11797:                                            ; preds = %11775, %11768
  %11798 = load i32, ptr %274, align 4, !tbaa !5
  %11799 = call ptr @__errno_location() #12
  store i32 %11798, ptr %11799, align 4, !tbaa !5
  %11800 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11801 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %11803, ptr noundef @.str.4)
  %11805 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11806 = load i32, ptr %11805, align 4, !tbaa !5
  %11807 = call ptr @s2n_strerror_debug(i32 noundef %11806, ptr noundef @.str.4)
  %11808 = call ptr @__errno_location() #12
  %11809 = load i32, ptr %11808, align 4, !tbaa !5
  %11810 = call ptr @strerror(i32 noundef %11809) #11
  %11811 = call ptr @__errno_location() #12
  %11812 = load i32, ptr %11811, align 4, !tbaa !5
  %11813 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11800, ptr noundef @.str.5, i32 noundef %11801, ptr noundef @.str.100, ptr noundef @.str.1, i32 noundef 561, ptr noundef %11804, ptr noundef %11807, ptr noundef %11810, i32 noundef %11812) #11
  br label %11814

11814:                                            ; preds = %11797, %11780
  call void @llvm.lifetime.end.p0(i64 4, ptr %274) #11
  br label %11815

11815:                                            ; preds = %11814
  br label %11816

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

11817:                                            ; No predecessors!
  br label %11818

11818:                                            ; preds = %11817
  br label %11819

11819:                                            ; preds = %11818, %11755
  br label %11820

11820:                                            ; preds = %11819
  br label %11821

11821:                                            ; preds = %11820
  br label %11822

11822:                                            ; preds = %11821
  %11823 = load i32, ptr @test_count, align 4, !tbaa !5
  %11824 = add nsw i32 %11823, 1
  store i32 %11824, ptr @test_count, align 4, !tbaa !5
  %11825 = load ptr, ptr %263, align 8, !tbaa !9
  %11826 = call i32 @s2n_check_record_limit(ptr noundef %11825, ptr noundef %260)
  %11827 = icmp eq i32 %11826, -1
  br i1 %11827, label %11828, label %11881

11828:                                            ; preds = %11822
  br label %11829

11829:                                            ; preds = %11828
  br label %11830

11830:                                            ; preds = %11829
  call void @llvm.lifetime.start.p0(i64 4, ptr %275) #11
  %11831 = call ptr @__errno_location() #12
  %11832 = load i32, ptr %11831, align 4, !tbaa !5
  store i32 %11832, ptr %275, align 4, !tbaa !5
  %11833 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11834 = call i32 @s2n_print_stacktrace(ptr noundef %11833)
  %11835 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11836 = trunc i8 %11835 to i1
  br i1 %11836, label %11837, label %11859

11837:                                            ; preds = %11830
  %11838 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11839 = call i32 @fileno(ptr noundef %11838) #11
  %11840 = call i32 @isatty(i32 noundef %11839) #11
  %11841 = icmp ne i32 %11840, 0
  br i1 %11841, label %11842, label %11859

11842:                                            ; preds = %11837
  %11843 = load i32, ptr %275, align 4, !tbaa !5
  %11844 = call ptr @__errno_location() #12
  store i32 %11843, ptr %11844, align 4, !tbaa !5
  %11845 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11846 = load i32, ptr @test_count, align 4, !tbaa !5
  %11847 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11848 = load i32, ptr %11847, align 4, !tbaa !5
  %11849 = call ptr @s2n_strerror(i32 noundef %11848, ptr noundef @.str.4)
  %11850 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11851 = load i32, ptr %11850, align 4, !tbaa !5
  %11852 = call ptr @s2n_strerror_debug(i32 noundef %11851, ptr noundef @.str.4)
  %11853 = call ptr @__errno_location() #12
  %11854 = load i32, ptr %11853, align 4, !tbaa !5
  %11855 = call ptr @strerror(i32 noundef %11854) #11
  %11856 = call ptr @__errno_location() #12
  %11857 = load i32, ptr %11856, align 4, !tbaa !5
  %11858 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11845, ptr noundef @.str.2, i32 noundef %11846, ptr noundef @.str.98, ptr noundef @.str.1, i32 noundef 562, ptr noundef %11849, ptr noundef %11852, ptr noundef %11855, i32 noundef %11857) #11
  br label %11876

11859:                                            ; preds = %11837, %11830
  %11860 = load i32, ptr %275, align 4, !tbaa !5
  %11861 = call ptr @__errno_location() #12
  store i32 %11860, ptr %11861, align 4, !tbaa !5
  %11862 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11863 = load i32, ptr @test_count, align 4, !tbaa !5
  %11864 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11865 = load i32, ptr %11864, align 4, !tbaa !5
  %11866 = call ptr @s2n_strerror(i32 noundef %11865, ptr noundef @.str.4)
  %11867 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11868 = load i32, ptr %11867, align 4, !tbaa !5
  %11869 = call ptr @s2n_strerror_debug(i32 noundef %11868, ptr noundef @.str.4)
  %11870 = call ptr @__errno_location() #12
  %11871 = load i32, ptr %11870, align 4, !tbaa !5
  %11872 = call ptr @strerror(i32 noundef %11871) #11
  %11873 = call ptr @__errno_location() #12
  %11874 = load i32, ptr %11873, align 4, !tbaa !5
  %11875 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11862, ptr noundef @.str.5, i32 noundef %11863, ptr noundef @.str.98, ptr noundef @.str.1, i32 noundef 562, ptr noundef %11866, ptr noundef %11869, ptr noundef %11872, i32 noundef %11874) #11
  br label %11876

11876:                                            ; preds = %11859, %11842
  call void @llvm.lifetime.end.p0(i64 4, ptr %275) #11
  br label %11877

11877:                                            ; preds = %11876
  br label %11878

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

11879:                                            ; No predecessors!
  br label %11880

11880:                                            ; preds = %11879
  br label %11881

11881:                                            ; preds = %11880, %11822
  br label %11882

11882:                                            ; preds = %11881
  br label %11883

11883:                                            ; preds = %11882
  br label %11884

11884:                                            ; preds = %11883
  %11885 = load i32, ptr @test_count, align 4, !tbaa !5
  %11886 = add nsw i32 %11885, 1
  store i32 %11886, ptr @test_count, align 4, !tbaa !5
  %11887 = load ptr, ptr %263, align 8, !tbaa !9
  %11888 = getelementptr inbounds %struct.s2n_connection, ptr %11887, i32 0, i32 94
  %11889 = call zeroext i1 @s2n_atomic_flag_test(ptr noundef %11888)
  br i1 %11889, label %11890, label %11943

11890:                                            ; preds = %11884
  br label %11891

11891:                                            ; preds = %11890
  br label %11892

11892:                                            ; preds = %11891
  call void @llvm.lifetime.start.p0(i64 4, ptr %276) #11
  %11893 = call ptr @__errno_location() #12
  %11894 = load i32, ptr %11893, align 4, !tbaa !5
  store i32 %11894, ptr %276, align 4, !tbaa !5
  %11895 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11896 = call i32 @s2n_print_stacktrace(ptr noundef %11895)
  %11897 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11898 = trunc i8 %11897 to i1
  br i1 %11898, label %11899, label %11921

11899:                                            ; preds = %11892
  %11900 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11901 = call i32 @fileno(ptr noundef %11900) #11
  %11902 = call i32 @isatty(i32 noundef %11901) #11
  %11903 = icmp ne i32 %11902, 0
  br i1 %11903, label %11904, label %11921

11904:                                            ; preds = %11899
  %11905 = load i32, ptr %276, align 4, !tbaa !5
  %11906 = call ptr @__errno_location() #12
  store i32 %11905, ptr %11906, align 4, !tbaa !5
  %11907 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11908 = load i32, ptr @test_count, align 4, !tbaa !5
  %11909 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11910 = load i32, ptr %11909, align 4, !tbaa !5
  %11911 = call ptr @s2n_strerror(i32 noundef %11910, ptr noundef @.str.4)
  %11912 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11913 = load i32, ptr %11912, align 4, !tbaa !5
  %11914 = call ptr @s2n_strerror_debug(i32 noundef %11913, ptr noundef @.str.4)
  %11915 = call ptr @__errno_location() #12
  %11916 = load i32, ptr %11915, align 4, !tbaa !5
  %11917 = call ptr @strerror(i32 noundef %11916) #11
  %11918 = call ptr @__errno_location() #12
  %11919 = load i32, ptr %11918, align 4, !tbaa !5
  %11920 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11907, ptr noundef @.str.2, i32 noundef %11908, ptr noundef @.str.94, ptr noundef @.str.1, i32 noundef 563, ptr noundef %11911, ptr noundef %11914, ptr noundef %11917, i32 noundef %11919) #11
  br label %11938

11921:                                            ; preds = %11899, %11892
  %11922 = load i32, ptr %276, 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.5, i32 noundef %11925, ptr noundef @.str.94, ptr noundef @.str.1, i32 noundef 563, ptr noundef %11928, ptr noundef %11931, ptr noundef %11934, i32 noundef %11936) #11
  br label %11938

11938:                                            ; preds = %11921, %11904
  call void @llvm.lifetime.end.p0(i64 4, ptr %276) #11
  br label %11939

11939:                                            ; preds = %11938
  br label %11940

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

11941:                                            ; No predecessors!
  br label %11942

11942:                                            ; preds = %11941
  br label %11943

11943:                                            ; preds = %11942, %11884
  br label %11944

11944:                                            ; preds = %11943
  br label %11945

11945:                                            ; preds = %11944
  %11946 = load ptr, ptr %263, align 8, !tbaa !9
  %11947 = getelementptr inbounds %struct.s2n_connection, ptr %11946, i32 0, i32 94
  call void @s2n_atomic_flag_clear(ptr noundef %11947)
  br label %11948

11948:                                            ; preds = %11945
  %11949 = load i32, ptr @test_count, align 4, !tbaa !5
  %11950 = add nsw i32 %11949, 1
  store i32 %11950, ptr @test_count, align 4, !tbaa !5
  %11951 = load i64, ptr %14, align 8, !tbaa !20
  %11952 = getelementptr inbounds [8 x i8], ptr %261, i64 0, i64 0
  %11953 = call i32 @s2n_write_uint64(i64 noundef %11951, ptr noundef %11952)
  %11954 = getelementptr inbounds %struct.s2n_result, ptr %277, i32 0, i32 0
  store i32 %11953, ptr %11954, align 4
  %11955 = getelementptr inbounds %struct.s2n_result, ptr %277, i32 0, i32 0
  %11956 = load i32, ptr %11955, align 4
  %11957 = call zeroext i1 @s2n_result_is_ok(i32 %11956)
  br i1 %11957, label %12011, label %11958

11958:                                            ; preds = %11948
  br label %11959

11959:                                            ; preds = %11958
  br label %11960

11960:                                            ; preds = %11959
  call void @llvm.lifetime.start.p0(i64 4, ptr %278) #11
  %11961 = call ptr @__errno_location() #12
  %11962 = load i32, ptr %11961, align 4, !tbaa !5
  store i32 %11962, ptr %278, align 4, !tbaa !5
  %11963 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11964 = call i32 @s2n_print_stacktrace(ptr noundef %11963)
  %11965 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11966 = trunc i8 %11965 to i1
  br i1 %11966, label %11967, label %11989

11967:                                            ; preds = %11960
  %11968 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11969 = call i32 @fileno(ptr noundef %11968) #11
  %11970 = call i32 @isatty(i32 noundef %11969) #11
  %11971 = icmp ne i32 %11970, 0
  br i1 %11971, label %11972, label %11989

11972:                                            ; preds = %11967
  %11973 = load i32, ptr %278, align 4, !tbaa !5
  %11974 = call ptr @__errno_location() #12
  store i32 %11973, ptr %11974, align 4, !tbaa !5
  %11975 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11976 = load i32, ptr @test_count, align 4, !tbaa !5
  %11977 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11978 = load i32, ptr %11977, align 4, !tbaa !5
  %11979 = call ptr @s2n_strerror(i32 noundef %11978, ptr noundef @.str.4)
  %11980 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11981 = load i32, ptr %11980, align 4, !tbaa !5
  %11982 = call ptr @s2n_strerror_debug(i32 noundef %11981, ptr noundef @.str.4)
  %11983 = call ptr @__errno_location() #12
  %11984 = load i32, ptr %11983, align 4, !tbaa !5
  %11985 = call ptr @strerror(i32 noundef %11984) #11
  %11986 = call ptr @__errno_location() #12
  %11987 = load i32, ptr %11986, align 4, !tbaa !5
  %11988 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11975, ptr noundef @.str.2, i32 noundef %11976, ptr noundef @.str.101, ptr noundef @.str.1, i32 noundef 567, ptr noundef %11979, ptr noundef %11982, ptr noundef %11985, i32 noundef %11987) #11
  br label %12006

11989:                                            ; preds = %11967, %11960
  %11990 = load i32, ptr %278, align 4, !tbaa !5
  %11991 = call ptr @__errno_location() #12
  store i32 %11990, ptr %11991, align 4, !tbaa !5
  %11992 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11993 = load i32, ptr @test_count, align 4, !tbaa !5
  %11994 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11995 = load i32, ptr %11994, align 4, !tbaa !5
  %11996 = call ptr @s2n_strerror(i32 noundef %11995, ptr noundef @.str.4)
  %11997 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11998 = load i32, ptr %11997, align 4, !tbaa !5
  %11999 = call ptr @s2n_strerror_debug(i32 noundef %11998, ptr noundef @.str.4)
  %12000 = call ptr @__errno_location() #12
  %12001 = load i32, ptr %12000, align 4, !tbaa !5
  %12002 = call ptr @strerror(i32 noundef %12001) #11
  %12003 = call ptr @__errno_location() #12
  %12004 = load i32, ptr %12003, align 4, !tbaa !5
  %12005 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11992, ptr noundef @.str.5, i32 noundef %11993, ptr noundef @.str.101, ptr noundef @.str.1, i32 noundef 567, ptr noundef %11996, ptr noundef %11999, ptr noundef %12002, i32 noundef %12004) #11
  br label %12006

12006:                                            ; preds = %11989, %11972
  call void @llvm.lifetime.end.p0(i64 4, ptr %278) #11
  br label %12007

12007:                                            ; preds = %12006
  br label %12008

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

12009:                                            ; No predecessors!
  br label %12010

12010:                                            ; preds = %12009
  br label %12011

12011:                                            ; preds = %12010, %11948
  br label %12012

12012:                                            ; preds = %12011
  br label %12013

12013:                                            ; preds = %12012
  br label %12014

12014:                                            ; preds = %12013
  %12015 = load i32, ptr @test_count, align 4, !tbaa !5
  %12016 = add nsw i32 %12015, 1
  store i32 %12016, ptr @test_count, align 4, !tbaa !5
  %12017 = load ptr, ptr %263, align 8, !tbaa !9
  %12018 = call i32 @s2n_check_record_limit(ptr noundef %12017, ptr noundef %260)
  %12019 = icmp eq i32 %12018, -1
  br i1 %12019, label %12020, label %12073

12020:                                            ; preds = %12014
  br label %12021

12021:                                            ; preds = %12020
  br label %12022

12022:                                            ; preds = %12021
  call void @llvm.lifetime.start.p0(i64 4, ptr %279) #11
  %12023 = call ptr @__errno_location() #12
  %12024 = load i32, ptr %12023, align 4, !tbaa !5
  store i32 %12024, ptr %279, align 4, !tbaa !5
  %12025 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12026 = call i32 @s2n_print_stacktrace(ptr noundef %12025)
  %12027 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12028 = trunc i8 %12027 to i1
  br i1 %12028, label %12029, label %12051

12029:                                            ; preds = %12022
  %12030 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12031 = call i32 @fileno(ptr noundef %12030) #11
  %12032 = call i32 @isatty(i32 noundef %12031) #11
  %12033 = icmp ne i32 %12032, 0
  br i1 %12033, label %12034, label %12051

12034:                                            ; preds = %12029
  %12035 = load i32, ptr %279, align 4, !tbaa !5
  %12036 = call ptr @__errno_location() #12
  store i32 %12035, ptr %12036, align 4, !tbaa !5
  %12037 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12038 = load i32, ptr @test_count, align 4, !tbaa !5
  %12039 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12040 = load i32, ptr %12039, align 4, !tbaa !5
  %12041 = call ptr @s2n_strerror(i32 noundef %12040, ptr noundef @.str.4)
  %12042 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12043 = load i32, ptr %12042, align 4, !tbaa !5
  %12044 = call ptr @s2n_strerror_debug(i32 noundef %12043, ptr noundef @.str.4)
  %12045 = call ptr @__errno_location() #12
  %12046 = load i32, ptr %12045, align 4, !tbaa !5
  %12047 = call ptr @strerror(i32 noundef %12046) #11
  %12048 = call ptr @__errno_location() #12
  %12049 = load i32, ptr %12048, align 4, !tbaa !5
  %12050 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12037, ptr noundef @.str.2, i32 noundef %12038, ptr noundef @.str.98, ptr noundef @.str.1, i32 noundef 568, ptr noundef %12041, ptr noundef %12044, ptr noundef %12047, i32 noundef %12049) #11
  br label %12068

12051:                                            ; preds = %12029, %12022
  %12052 = load i32, ptr %279, align 4, !tbaa !5
  %12053 = call ptr @__errno_location() #12
  store i32 %12052, ptr %12053, align 4, !tbaa !5
  %12054 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12055 = load i32, ptr @test_count, align 4, !tbaa !5
  %12056 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12057 = load i32, ptr %12056, align 4, !tbaa !5
  %12058 = call ptr @s2n_strerror(i32 noundef %12057, ptr noundef @.str.4)
  %12059 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12060 = load i32, ptr %12059, align 4, !tbaa !5
  %12061 = call ptr @s2n_strerror_debug(i32 noundef %12060, ptr noundef @.str.4)
  %12062 = call ptr @__errno_location() #12
  %12063 = load i32, ptr %12062, align 4, !tbaa !5
  %12064 = call ptr @strerror(i32 noundef %12063) #11
  %12065 = call ptr @__errno_location() #12
  %12066 = load i32, ptr %12065, align 4, !tbaa !5
  %12067 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12054, ptr noundef @.str.5, i32 noundef %12055, ptr noundef @.str.98, ptr noundef @.str.1, i32 noundef 568, ptr noundef %12058, ptr noundef %12061, ptr noundef %12064, i32 noundef %12066) #11
  br label %12068

12068:                                            ; preds = %12051, %12034
  call void @llvm.lifetime.end.p0(i64 4, ptr %279) #11
  br label %12069

12069:                                            ; preds = %12068
  br label %12070

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

12071:                                            ; No predecessors!
  br label %12072

12072:                                            ; preds = %12071
  br label %12073

12073:                                            ; preds = %12072, %12014
  br label %12074

12074:                                            ; preds = %12073
  br label %12075

12075:                                            ; preds = %12074
  br label %12076

12076:                                            ; preds = %12075
  %12077 = load i32, ptr @test_count, align 4, !tbaa !5
  %12078 = add nsw i32 %12077, 1
  store i32 %12078, ptr @test_count, align 4, !tbaa !5
  %12079 = load ptr, ptr %263, align 8, !tbaa !9
  %12080 = getelementptr inbounds %struct.s2n_connection, ptr %12079, i32 0, i32 94
  %12081 = call zeroext i1 @s2n_atomic_flag_test(ptr noundef %12080)
  br i1 %12081, label %12135, label %12082

12082:                                            ; preds = %12076
  br label %12083

12083:                                            ; preds = %12082
  br label %12084

12084:                                            ; preds = %12083
  call void @llvm.lifetime.start.p0(i64 4, ptr %280) #11
  %12085 = call ptr @__errno_location() #12
  %12086 = load i32, ptr %12085, align 4, !tbaa !5
  store i32 %12086, ptr %280, align 4, !tbaa !5
  %12087 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12088 = call i32 @s2n_print_stacktrace(ptr noundef %12087)
  %12089 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12090 = trunc i8 %12089 to i1
  br i1 %12090, label %12091, label %12113

12091:                                            ; preds = %12084
  %12092 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12093 = call i32 @fileno(ptr noundef %12092) #11
  %12094 = call i32 @isatty(i32 noundef %12093) #11
  %12095 = icmp ne i32 %12094, 0
  br i1 %12095, label %12096, label %12113

12096:                                            ; preds = %12091
  %12097 = load i32, ptr %280, align 4, !tbaa !5
  %12098 = call ptr @__errno_location() #12
  store i32 %12097, ptr %12098, align 4, !tbaa !5
  %12099 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12100 = load i32, ptr @test_count, align 4, !tbaa !5
  %12101 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12102 = load i32, ptr %12101, align 4, !tbaa !5
  %12103 = call ptr @s2n_strerror(i32 noundef %12102, ptr noundef @.str.4)
  %12104 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12105 = load i32, ptr %12104, align 4, !tbaa !5
  %12106 = call ptr @s2n_strerror_debug(i32 noundef %12105, ptr noundef @.str.4)
  %12107 = call ptr @__errno_location() #12
  %12108 = load i32, ptr %12107, align 4, !tbaa !5
  %12109 = call ptr @strerror(i32 noundef %12108) #11
  %12110 = call ptr @__errno_location() #12
  %12111 = load i32, ptr %12110, align 4, !tbaa !5
  %12112 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12099, ptr noundef @.str.2, i32 noundef %12100, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 569, ptr noundef %12103, ptr noundef %12106, ptr noundef %12109, i32 noundef %12111) #11
  br label %12130

12113:                                            ; preds = %12091, %12084
  %12114 = load i32, ptr %280, align 4, !tbaa !5
  %12115 = call ptr @__errno_location() #12
  store i32 %12114, ptr %12115, align 4, !tbaa !5
  %12116 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12117 = load i32, ptr @test_count, align 4, !tbaa !5
  %12118 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12119 = load i32, ptr %12118, align 4, !tbaa !5
  %12120 = call ptr @s2n_strerror(i32 noundef %12119, ptr noundef @.str.4)
  %12121 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12122 = load i32, ptr %12121, align 4, !tbaa !5
  %12123 = call ptr @s2n_strerror_debug(i32 noundef %12122, ptr noundef @.str.4)
  %12124 = call ptr @__errno_location() #12
  %12125 = load i32, ptr %12124, align 4, !tbaa !5
  %12126 = call ptr @strerror(i32 noundef %12125) #11
  %12127 = call ptr @__errno_location() #12
  %12128 = load i32, ptr %12127, align 4, !tbaa !5
  %12129 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12116, ptr noundef @.str.5, i32 noundef %12117, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 569, ptr noundef %12120, ptr noundef %12123, ptr noundef %12126, i32 noundef %12128) #11
  br label %12130

12130:                                            ; preds = %12113, %12096
  call void @llvm.lifetime.end.p0(i64 4, ptr %280) #11
  br label %12131

12131:                                            ; preds = %12130
  br label %12132

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

12133:                                            ; No predecessors!
  br label %12134

12134:                                            ; preds = %12133
  br label %12135

12135:                                            ; preds = %12134, %12076
  br label %12136

12136:                                            ; preds = %12135
  br label %12137

12137:                                            ; preds = %12136
  br label %12138

12138:                                            ; preds = %12137
  %12139 = load i32, ptr @test_count, align 4, !tbaa !5
  %12140 = add nsw i32 %12139, 1
  store i32 %12140, ptr @test_count, align 4, !tbaa !5
  %12141 = getelementptr inbounds [8 x i8], ptr %261, i64 0, i64 0
  %12142 = call i32 @s2n_write_uint64(i64 noundef 0, ptr noundef %12141)
  %12143 = getelementptr inbounds %struct.s2n_result, ptr %281, i32 0, i32 0
  store i32 %12142, ptr %12143, align 4
  %12144 = getelementptr inbounds %struct.s2n_result, ptr %281, i32 0, i32 0
  %12145 = load i32, ptr %12144, align 4
  %12146 = call zeroext i1 @s2n_result_is_ok(i32 %12145)
  br i1 %12146, label %12200, label %12147

12147:                                            ; preds = %12138
  br label %12148

12148:                                            ; preds = %12147
  br label %12149

12149:                                            ; preds = %12148
  call void @llvm.lifetime.start.p0(i64 4, ptr %282) #11
  %12150 = call ptr @__errno_location() #12
  %12151 = load i32, ptr %12150, align 4, !tbaa !5
  store i32 %12151, ptr %282, align 4, !tbaa !5
  %12152 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12153 = call i32 @s2n_print_stacktrace(ptr noundef %12152)
  %12154 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12155 = trunc i8 %12154 to i1
  br i1 %12155, label %12156, label %12178

12156:                                            ; preds = %12149
  %12157 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12158 = call i32 @fileno(ptr noundef %12157) #11
  %12159 = call i32 @isatty(i32 noundef %12158) #11
  %12160 = icmp ne i32 %12159, 0
  br i1 %12160, label %12161, label %12178

12161:                                            ; preds = %12156
  %12162 = load i32, ptr %282, align 4, !tbaa !5
  %12163 = call ptr @__errno_location() #12
  store i32 %12162, ptr %12163, align 4, !tbaa !5
  %12164 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12165 = load i32, ptr @test_count, align 4, !tbaa !5
  %12166 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12167 = load i32, ptr %12166, align 4, !tbaa !5
  %12168 = call ptr @s2n_strerror(i32 noundef %12167, ptr noundef @.str.4)
  %12169 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12170 = load i32, ptr %12169, align 4, !tbaa !5
  %12171 = call ptr @s2n_strerror_debug(i32 noundef %12170, ptr noundef @.str.4)
  %12172 = call ptr @__errno_location() #12
  %12173 = load i32, ptr %12172, align 4, !tbaa !5
  %12174 = call ptr @strerror(i32 noundef %12173) #11
  %12175 = call ptr @__errno_location() #12
  %12176 = load i32, ptr %12175, align 4, !tbaa !5
  %12177 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12164, ptr noundef @.str.2, i32 noundef %12165, ptr noundef @.str.97, ptr noundef @.str.1, i32 noundef 572, ptr noundef %12168, ptr noundef %12171, ptr noundef %12174, i32 noundef %12176) #11
  br label %12195

12178:                                            ; preds = %12156, %12149
  %12179 = load i32, ptr %282, align 4, !tbaa !5
  %12180 = call ptr @__errno_location() #12
  store i32 %12179, ptr %12180, align 4, !tbaa !5
  %12181 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12182 = load i32, ptr @test_count, align 4, !tbaa !5
  %12183 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12184 = load i32, ptr %12183, align 4, !tbaa !5
  %12185 = call ptr @s2n_strerror(i32 noundef %12184, ptr noundef @.str.4)
  %12186 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12187 = load i32, ptr %12186, align 4, !tbaa !5
  %12188 = call ptr @s2n_strerror_debug(i32 noundef %12187, ptr noundef @.str.4)
  %12189 = call ptr @__errno_location() #12
  %12190 = load i32, ptr %12189, align 4, !tbaa !5
  %12191 = call ptr @strerror(i32 noundef %12190) #11
  %12192 = call ptr @__errno_location() #12
  %12193 = load i32, ptr %12192, align 4, !tbaa !5
  %12194 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12181, ptr noundef @.str.5, i32 noundef %12182, ptr noundef @.str.97, ptr noundef @.str.1, i32 noundef 572, ptr noundef %12185, ptr noundef %12188, ptr noundef %12191, i32 noundef %12193) #11
  br label %12195

12195:                                            ; preds = %12178, %12161
  call void @llvm.lifetime.end.p0(i64 4, ptr %282) #11
  br label %12196

12196:                                            ; preds = %12195
  br label %12197

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

12198:                                            ; No predecessors!
  br label %12199

12199:                                            ; preds = %12198
  br label %12200

12200:                                            ; preds = %12199, %12138
  br label %12201

12201:                                            ; preds = %12200
  br label %12202

12202:                                            ; preds = %12201
  br label %12203

12203:                                            ; preds = %12202
  %12204 = load i32, ptr @test_count, align 4, !tbaa !5
  %12205 = add nsw i32 %12204, 1
  store i32 %12205, ptr @test_count, align 4, !tbaa !5
  %12206 = load ptr, ptr %263, align 8, !tbaa !9
  %12207 = call i32 @s2n_check_record_limit(ptr noundef %12206, ptr noundef %260)
  %12208 = icmp eq i32 %12207, -1
  br i1 %12208, label %12209, label %12262

12209:                                            ; preds = %12203
  br label %12210

12210:                                            ; preds = %12209
  br label %12211

12211:                                            ; preds = %12210
  call void @llvm.lifetime.start.p0(i64 4, ptr %283) #11
  %12212 = call ptr @__errno_location() #12
  %12213 = load i32, ptr %12212, align 4, !tbaa !5
  store i32 %12213, ptr %283, align 4, !tbaa !5
  %12214 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12215 = call i32 @s2n_print_stacktrace(ptr noundef %12214)
  %12216 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12217 = trunc i8 %12216 to i1
  br i1 %12217, label %12218, label %12240

12218:                                            ; preds = %12211
  %12219 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12220 = call i32 @fileno(ptr noundef %12219) #11
  %12221 = call i32 @isatty(i32 noundef %12220) #11
  %12222 = icmp ne i32 %12221, 0
  br i1 %12222, label %12223, label %12240

12223:                                            ; preds = %12218
  %12224 = load i32, ptr %283, align 4, !tbaa !5
  %12225 = call ptr @__errno_location() #12
  store i32 %12224, ptr %12225, align 4, !tbaa !5
  %12226 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12227 = load i32, ptr @test_count, align 4, !tbaa !5
  %12228 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12229 = load i32, ptr %12228, align 4, !tbaa !5
  %12230 = call ptr @s2n_strerror(i32 noundef %12229, ptr noundef @.str.4)
  %12231 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12232 = load i32, ptr %12231, align 4, !tbaa !5
  %12233 = call ptr @s2n_strerror_debug(i32 noundef %12232, ptr noundef @.str.4)
  %12234 = call ptr @__errno_location() #12
  %12235 = load i32, ptr %12234, align 4, !tbaa !5
  %12236 = call ptr @strerror(i32 noundef %12235) #11
  %12237 = call ptr @__errno_location() #12
  %12238 = load i32, ptr %12237, align 4, !tbaa !5
  %12239 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12226, ptr noundef @.str.2, i32 noundef %12227, ptr noundef @.str.98, ptr noundef @.str.1, i32 noundef 573, ptr noundef %12230, ptr noundef %12233, ptr noundef %12236, i32 noundef %12238) #11
  br label %12257

12240:                                            ; preds = %12218, %12211
  %12241 = load i32, ptr %283, align 4, !tbaa !5
  %12242 = call ptr @__errno_location() #12
  store i32 %12241, ptr %12242, align 4, !tbaa !5
  %12243 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12244 = load i32, ptr @test_count, align 4, !tbaa !5
  %12245 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12246 = load i32, ptr %12245, align 4, !tbaa !5
  %12247 = call ptr @s2n_strerror(i32 noundef %12246, ptr noundef @.str.4)
  %12248 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12249 = load i32, ptr %12248, align 4, !tbaa !5
  %12250 = call ptr @s2n_strerror_debug(i32 noundef %12249, ptr noundef @.str.4)
  %12251 = call ptr @__errno_location() #12
  %12252 = load i32, ptr %12251, align 4, !tbaa !5
  %12253 = call ptr @strerror(i32 noundef %12252) #11
  %12254 = call ptr @__errno_location() #12
  %12255 = load i32, ptr %12254, align 4, !tbaa !5
  %12256 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12243, ptr noundef @.str.5, i32 noundef %12244, ptr noundef @.str.98, ptr noundef @.str.1, i32 noundef 573, ptr noundef %12247, ptr noundef %12250, ptr noundef %12253, i32 noundef %12255) #11
  br label %12257

12257:                                            ; preds = %12240, %12223
  call void @llvm.lifetime.end.p0(i64 4, ptr %283) #11
  br label %12258

12258:                                            ; preds = %12257
  br label %12259

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

12260:                                            ; No predecessors!
  br label %12261

12261:                                            ; preds = %12260
  br label %12262

12262:                                            ; preds = %12261, %12203
  br label %12263

12263:                                            ; preds = %12262
  br label %12264

12264:                                            ; preds = %12263
  br label %12265

12265:                                            ; preds = %12264
  %12266 = load i32, ptr @test_count, align 4, !tbaa !5
  %12267 = add nsw i32 %12266, 1
  store i32 %12267, ptr @test_count, align 4, !tbaa !5
  %12268 = load ptr, ptr %263, align 8, !tbaa !9
  %12269 = getelementptr inbounds %struct.s2n_connection, ptr %12268, i32 0, i32 94
  %12270 = call zeroext i1 @s2n_atomic_flag_test(ptr noundef %12269)
  br i1 %12270, label %12324, label %12271

12271:                                            ; preds = %12265
  br label %12272

12272:                                            ; preds = %12271
  br label %12273

12273:                                            ; preds = %12272
  call void @llvm.lifetime.start.p0(i64 4, ptr %284) #11
  %12274 = call ptr @__errno_location() #12
  %12275 = load i32, ptr %12274, align 4, !tbaa !5
  store i32 %12275, ptr %284, align 4, !tbaa !5
  %12276 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12277 = call i32 @s2n_print_stacktrace(ptr noundef %12276)
  %12278 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12279 = trunc i8 %12278 to i1
  br i1 %12279, label %12280, label %12302

12280:                                            ; preds = %12273
  %12281 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12282 = call i32 @fileno(ptr noundef %12281) #11
  %12283 = call i32 @isatty(i32 noundef %12282) #11
  %12284 = icmp ne i32 %12283, 0
  br i1 %12284, label %12285, label %12302

12285:                                            ; preds = %12280
  %12286 = load i32, ptr %284, align 4, !tbaa !5
  %12287 = call ptr @__errno_location() #12
  store i32 %12286, ptr %12287, align 4, !tbaa !5
  %12288 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12289 = load i32, ptr @test_count, align 4, !tbaa !5
  %12290 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12291 = load i32, ptr %12290, align 4, !tbaa !5
  %12292 = call ptr @s2n_strerror(i32 noundef %12291, ptr noundef @.str.4)
  %12293 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12294 = load i32, ptr %12293, align 4, !tbaa !5
  %12295 = call ptr @s2n_strerror_debug(i32 noundef %12294, ptr noundef @.str.4)
  %12296 = call ptr @__errno_location() #12
  %12297 = load i32, ptr %12296, align 4, !tbaa !5
  %12298 = call ptr @strerror(i32 noundef %12297) #11
  %12299 = call ptr @__errno_location() #12
  %12300 = load i32, ptr %12299, align 4, !tbaa !5
  %12301 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12288, ptr noundef @.str.2, i32 noundef %12289, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 574, ptr noundef %12292, ptr noundef %12295, ptr noundef %12298, i32 noundef %12300) #11
  br label %12319

12302:                                            ; preds = %12280, %12273
  %12303 = load i32, ptr %284, align 4, !tbaa !5
  %12304 = call ptr @__errno_location() #12
  store i32 %12303, ptr %12304, align 4, !tbaa !5
  %12305 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12306 = load i32, ptr @test_count, align 4, !tbaa !5
  %12307 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12308 = load i32, ptr %12307, align 4, !tbaa !5
  %12309 = call ptr @s2n_strerror(i32 noundef %12308, ptr noundef @.str.4)
  %12310 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12311 = load i32, ptr %12310, align 4, !tbaa !5
  %12312 = call ptr @s2n_strerror_debug(i32 noundef %12311, ptr noundef @.str.4)
  %12313 = call ptr @__errno_location() #12
  %12314 = load i32, ptr %12313, align 4, !tbaa !5
  %12315 = call ptr @strerror(i32 noundef %12314) #11
  %12316 = call ptr @__errno_location() #12
  %12317 = load i32, ptr %12316, align 4, !tbaa !5
  %12318 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12305, ptr noundef @.str.5, i32 noundef %12306, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 574, ptr noundef %12309, ptr noundef %12312, ptr noundef %12315, i32 noundef %12317) #11
  br label %12319

12319:                                            ; preds = %12302, %12285
  call void @llvm.lifetime.end.p0(i64 4, ptr %284) #11
  br label %12320

12320:                                            ; preds = %12319
  br label %12321

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

12322:                                            ; No predecessors!
  br label %12323

12323:                                            ; preds = %12322
  br label %12324

12324:                                            ; preds = %12323, %12265
  br label %12325

12325:                                            ; preds = %12324
  br label %12326

12326:                                            ; preds = %12325
  %12327 = load ptr, ptr %263, align 8, !tbaa !9
  %12328 = getelementptr inbounds %struct.s2n_connection, ptr %12327, i32 0, i32 94
  call void @s2n_atomic_flag_clear(ptr noundef %12328)
  br label %12329

12329:                                            ; preds = %12326
  %12330 = load i32, ptr @test_count, align 4, !tbaa !5
  %12331 = add nsw i32 %12330, 1
  store i32 %12331, ptr @test_count, align 4, !tbaa !5
  %12332 = load i64, ptr %14, align 8, !tbaa !20
  %12333 = add i64 %12332, 1
  %12334 = getelementptr inbounds [8 x i8], ptr %261, i64 0, i64 0
  %12335 = call i32 @s2n_write_uint64(i64 noundef %12333, ptr noundef %12334)
  %12336 = getelementptr inbounds %struct.s2n_result, ptr %285, i32 0, i32 0
  store i32 %12335, ptr %12336, align 4
  %12337 = getelementptr inbounds %struct.s2n_result, ptr %285, i32 0, i32 0
  %12338 = load i32, ptr %12337, align 4
  %12339 = call zeroext i1 @s2n_result_is_ok(i32 %12338)
  br i1 %12339, label %12393, label %12340

12340:                                            ; preds = %12329
  br label %12341

12341:                                            ; preds = %12340
  br label %12342

12342:                                            ; preds = %12341
  call void @llvm.lifetime.start.p0(i64 4, ptr %286) #11
  %12343 = call ptr @__errno_location() #12
  %12344 = load i32, ptr %12343, align 4, !tbaa !5
  store i32 %12344, ptr %286, align 4, !tbaa !5
  %12345 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12346 = call i32 @s2n_print_stacktrace(ptr noundef %12345)
  %12347 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12348 = trunc i8 %12347 to i1
  br i1 %12348, label %12349, label %12371

12349:                                            ; preds = %12342
  %12350 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12351 = call i32 @fileno(ptr noundef %12350) #11
  %12352 = call i32 @isatty(i32 noundef %12351) #11
  %12353 = icmp ne i32 %12352, 0
  br i1 %12353, label %12354, label %12371

12354:                                            ; preds = %12349
  %12355 = load i32, ptr %286, align 4, !tbaa !5
  %12356 = call ptr @__errno_location() #12
  store i32 %12355, ptr %12356, align 4, !tbaa !5
  %12357 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12358 = load i32, ptr @test_count, align 4, !tbaa !5
  %12359 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12360 = load i32, ptr %12359, align 4, !tbaa !5
  %12361 = call ptr @s2n_strerror(i32 noundef %12360, ptr noundef @.str.4)
  %12362 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12363 = load i32, ptr %12362, align 4, !tbaa !5
  %12364 = call ptr @s2n_strerror_debug(i32 noundef %12363, ptr noundef @.str.4)
  %12365 = call ptr @__errno_location() #12
  %12366 = load i32, ptr %12365, align 4, !tbaa !5
  %12367 = call ptr @strerror(i32 noundef %12366) #11
  %12368 = call ptr @__errno_location() #12
  %12369 = load i32, ptr %12368, align 4, !tbaa !5
  %12370 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12357, ptr noundef @.str.2, i32 noundef %12358, ptr noundef @.str.102, ptr noundef @.str.1, i32 noundef 578, ptr noundef %12361, ptr noundef %12364, ptr noundef %12367, i32 noundef %12369) #11
  br label %12388

12371:                                            ; preds = %12349, %12342
  %12372 = load i32, ptr %286, align 4, !tbaa !5
  %12373 = call ptr @__errno_location() #12
  store i32 %12372, ptr %12373, align 4, !tbaa !5
  %12374 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12375 = load i32, ptr @test_count, align 4, !tbaa !5
  %12376 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12377 = load i32, ptr %12376, align 4, !tbaa !5
  %12378 = call ptr @s2n_strerror(i32 noundef %12377, ptr noundef @.str.4)
  %12379 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12380 = load i32, ptr %12379, align 4, !tbaa !5
  %12381 = call ptr @s2n_strerror_debug(i32 noundef %12380, ptr noundef @.str.4)
  %12382 = call ptr @__errno_location() #12
  %12383 = load i32, ptr %12382, align 4, !tbaa !5
  %12384 = call ptr @strerror(i32 noundef %12383) #11
  %12385 = call ptr @__errno_location() #12
  %12386 = load i32, ptr %12385, align 4, !tbaa !5
  %12387 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12374, ptr noundef @.str.5, i32 noundef %12375, ptr noundef @.str.102, ptr noundef @.str.1, i32 noundef 578, ptr noundef %12378, ptr noundef %12381, ptr noundef %12384, i32 noundef %12386) #11
  br label %12388

12388:                                            ; preds = %12371, %12354
  call void @llvm.lifetime.end.p0(i64 4, ptr %286) #11
  br label %12389

12389:                                            ; preds = %12388
  br label %12390

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

12391:                                            ; No predecessors!
  br label %12392

12392:                                            ; preds = %12391
  br label %12393

12393:                                            ; preds = %12392, %12329
  br label %12394

12394:                                            ; preds = %12393
  br label %12395

12395:                                            ; preds = %12394
  br label %12396

12396:                                            ; preds = %12395
  %12397 = load i32, ptr @test_count, align 4, !tbaa !5
  %12398 = add nsw i32 %12397, 1
  store i32 %12398, ptr @test_count, align 4, !tbaa !5
  %12399 = load ptr, ptr %263, align 8, !tbaa !9
  %12400 = call i32 @s2n_check_record_limit(ptr noundef %12399, ptr noundef %260)
  %12401 = icmp eq i32 %12400, -1
  br i1 %12401, label %12402, label %12455

12402:                                            ; preds = %12396
  br label %12403

12403:                                            ; preds = %12402
  br label %12404

12404:                                            ; preds = %12403
  call void @llvm.lifetime.start.p0(i64 4, ptr %287) #11
  %12405 = call ptr @__errno_location() #12
  %12406 = load i32, ptr %12405, align 4, !tbaa !5
  store i32 %12406, ptr %287, align 4, !tbaa !5
  %12407 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12408 = call i32 @s2n_print_stacktrace(ptr noundef %12407)
  %12409 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12410 = trunc i8 %12409 to i1
  br i1 %12410, label %12411, label %12433

12411:                                            ; preds = %12404
  %12412 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12413 = call i32 @fileno(ptr noundef %12412) #11
  %12414 = call i32 @isatty(i32 noundef %12413) #11
  %12415 = icmp ne i32 %12414, 0
  br i1 %12415, label %12416, label %12433

12416:                                            ; preds = %12411
  %12417 = load i32, ptr %287, align 4, !tbaa !5
  %12418 = call ptr @__errno_location() #12
  store i32 %12417, ptr %12418, align 4, !tbaa !5
  %12419 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12420 = load i32, ptr @test_count, align 4, !tbaa !5
  %12421 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12422 = load i32, ptr %12421, align 4, !tbaa !5
  %12423 = call ptr @s2n_strerror(i32 noundef %12422, ptr noundef @.str.4)
  %12424 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12425 = load i32, ptr %12424, align 4, !tbaa !5
  %12426 = call ptr @s2n_strerror_debug(i32 noundef %12425, ptr noundef @.str.4)
  %12427 = call ptr @__errno_location() #12
  %12428 = load i32, ptr %12427, align 4, !tbaa !5
  %12429 = call ptr @strerror(i32 noundef %12428) #11
  %12430 = call ptr @__errno_location() #12
  %12431 = load i32, ptr %12430, align 4, !tbaa !5
  %12432 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12419, ptr noundef @.str.2, i32 noundef %12420, ptr noundef @.str.98, ptr noundef @.str.1, i32 noundef 579, ptr noundef %12423, ptr noundef %12426, ptr noundef %12429, i32 noundef %12431) #11
  br label %12450

12433:                                            ; preds = %12411, %12404
  %12434 = load i32, ptr %287, align 4, !tbaa !5
  %12435 = call ptr @__errno_location() #12
  store i32 %12434, ptr %12435, align 4, !tbaa !5
  %12436 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12437 = load i32, ptr @test_count, align 4, !tbaa !5
  %12438 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12439 = load i32, ptr %12438, align 4, !tbaa !5
  %12440 = call ptr @s2n_strerror(i32 noundef %12439, ptr noundef @.str.4)
  %12441 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12442 = load i32, ptr %12441, align 4, !tbaa !5
  %12443 = call ptr @s2n_strerror_debug(i32 noundef %12442, ptr noundef @.str.4)
  %12444 = call ptr @__errno_location() #12
  %12445 = load i32, ptr %12444, align 4, !tbaa !5
  %12446 = call ptr @strerror(i32 noundef %12445) #11
  %12447 = call ptr @__errno_location() #12
  %12448 = load i32, ptr %12447, align 4, !tbaa !5
  %12449 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12436, ptr noundef @.str.5, i32 noundef %12437, ptr noundef @.str.98, ptr noundef @.str.1, i32 noundef 579, ptr noundef %12440, ptr noundef %12443, ptr noundef %12446, i32 noundef %12448) #11
  br label %12450

12450:                                            ; preds = %12433, %12416
  call void @llvm.lifetime.end.p0(i64 4, ptr %287) #11
  br label %12451

12451:                                            ; preds = %12450
  br label %12452

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

12453:                                            ; No predecessors!
  br label %12454

12454:                                            ; preds = %12453
  br label %12455

12455:                                            ; preds = %12454, %12396
  br label %12456

12456:                                            ; preds = %12455
  br label %12457

12457:                                            ; preds = %12456
  br label %12458

12458:                                            ; preds = %12457
  %12459 = load i32, ptr @test_count, align 4, !tbaa !5
  %12460 = add nsw i32 %12459, 1
  store i32 %12460, ptr @test_count, align 4, !tbaa !5
  %12461 = load ptr, ptr %263, align 8, !tbaa !9
  %12462 = getelementptr inbounds %struct.s2n_connection, ptr %12461, i32 0, i32 94
  %12463 = call zeroext i1 @s2n_atomic_flag_test(ptr noundef %12462)
  br i1 %12463, label %12517, label %12464

12464:                                            ; preds = %12458
  br label %12465

12465:                                            ; preds = %12464
  br label %12466

12466:                                            ; preds = %12465
  call void @llvm.lifetime.start.p0(i64 4, ptr %288) #11
  %12467 = call ptr @__errno_location() #12
  %12468 = load i32, ptr %12467, align 4, !tbaa !5
  store i32 %12468, ptr %288, align 4, !tbaa !5
  %12469 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12470 = call i32 @s2n_print_stacktrace(ptr noundef %12469)
  %12471 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12472 = trunc i8 %12471 to i1
  br i1 %12472, label %12473, label %12495

12473:                                            ; preds = %12466
  %12474 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12475 = call i32 @fileno(ptr noundef %12474) #11
  %12476 = call i32 @isatty(i32 noundef %12475) #11
  %12477 = icmp ne i32 %12476, 0
  br i1 %12477, label %12478, label %12495

12478:                                            ; preds = %12473
  %12479 = load i32, ptr %288, align 4, !tbaa !5
  %12480 = call ptr @__errno_location() #12
  store i32 %12479, ptr %12480, align 4, !tbaa !5
  %12481 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12482 = load i32, ptr @test_count, align 4, !tbaa !5
  %12483 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12484 = load i32, ptr %12483, align 4, !tbaa !5
  %12485 = call ptr @s2n_strerror(i32 noundef %12484, ptr noundef @.str.4)
  %12486 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12487 = load i32, ptr %12486, align 4, !tbaa !5
  %12488 = call ptr @s2n_strerror_debug(i32 noundef %12487, ptr noundef @.str.4)
  %12489 = call ptr @__errno_location() #12
  %12490 = load i32, ptr %12489, align 4, !tbaa !5
  %12491 = call ptr @strerror(i32 noundef %12490) #11
  %12492 = call ptr @__errno_location() #12
  %12493 = load i32, ptr %12492, align 4, !tbaa !5
  %12494 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12481, ptr noundef @.str.2, i32 noundef %12482, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 580, ptr noundef %12485, ptr noundef %12488, ptr noundef %12491, i32 noundef %12493) #11
  br label %12512

12495:                                            ; preds = %12473, %12466
  %12496 = load i32, ptr %288, align 4, !tbaa !5
  %12497 = call ptr @__errno_location() #12
  store i32 %12496, ptr %12497, align 4, !tbaa !5
  %12498 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12499 = load i32, ptr @test_count, align 4, !tbaa !5
  %12500 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12501 = load i32, ptr %12500, align 4, !tbaa !5
  %12502 = call ptr @s2n_strerror(i32 noundef %12501, ptr noundef @.str.4)
  %12503 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12504 = load i32, ptr %12503, align 4, !tbaa !5
  %12505 = call ptr @s2n_strerror_debug(i32 noundef %12504, ptr noundef @.str.4)
  %12506 = call ptr @__errno_location() #12
  %12507 = load i32, ptr %12506, align 4, !tbaa !5
  %12508 = call ptr @strerror(i32 noundef %12507) #11
  %12509 = call ptr @__errno_location() #12
  %12510 = load i32, ptr %12509, align 4, !tbaa !5
  %12511 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12498, ptr noundef @.str.5, i32 noundef %12499, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 580, ptr noundef %12502, ptr noundef %12505, ptr noundef %12508, i32 noundef %12510) #11
  br label %12512

12512:                                            ; preds = %12495, %12478
  call void @llvm.lifetime.end.p0(i64 4, ptr %288) #11
  br label %12513

12513:                                            ; preds = %12512
  br label %12514

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

12515:                                            ; No predecessors!
  br label %12516

12516:                                            ; preds = %12515
  br label %12517

12517:                                            ; preds = %12516, %12458
  br label %12518

12518:                                            ; preds = %12517
  br label %12519

12519:                                            ; preds = %12518
  %12520 = call i32 @s2n_connection_ptr_free(ptr noundef %263)
  %12521 = getelementptr inbounds %struct.s2n_result, ptr %289, i32 0, i32 0
  store i32 %12520, ptr %12521, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %263) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %261) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %260) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr %290) #11
  call void @llvm.memset.p0.i64(ptr align 8 %290, i8 0, i64 24, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %291) #11
  call void @llvm.memset.p0.i64(ptr align 1 %291, i8 0, i64 8, i1 false)
  br label %12522

12522:                                            ; preds = %12519
  %12523 = load i32, ptr @test_count, align 4, !tbaa !5
  %12524 = add nsw i32 %12523, 1
  store i32 %12524, ptr @test_count, align 4, !tbaa !5
  %12525 = getelementptr inbounds [8 x i8], ptr %291, i64 0, i64 0
  %12526 = call i32 @s2n_blob_init(ptr noundef %290, ptr noundef %12525, i32 noundef 8)
  %12527 = icmp eq i32 %12526, -1
  br i1 %12527, label %12528, label %12581

12528:                                            ; preds = %12522
  br label %12529

12529:                                            ; preds = %12528
  br label %12530

12530:                                            ; preds = %12529
  call void @llvm.lifetime.start.p0(i64 4, ptr %292) #11
  %12531 = call ptr @__errno_location() #12
  %12532 = load i32, ptr %12531, align 4, !tbaa !5
  store i32 %12532, ptr %292, align 4, !tbaa !5
  %12533 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12534 = call i32 @s2n_print_stacktrace(ptr noundef %12533)
  %12535 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12536 = trunc i8 %12535 to i1
  br i1 %12536, label %12537, label %12559

12537:                                            ; preds = %12530
  %12538 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12539 = call i32 @fileno(ptr noundef %12538) #11
  %12540 = call i32 @isatty(i32 noundef %12539) #11
  %12541 = icmp ne i32 %12540, 0
  br i1 %12541, label %12542, label %12559

12542:                                            ; preds = %12537
  %12543 = load i32, ptr %292, align 4, !tbaa !5
  %12544 = call ptr @__errno_location() #12
  store i32 %12543, ptr %12544, align 4, !tbaa !5
  %12545 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12546 = load i32, ptr @test_count, align 4, !tbaa !5
  %12547 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12548 = load i32, ptr %12547, align 4, !tbaa !5
  %12549 = call ptr @s2n_strerror(i32 noundef %12548, ptr noundef @.str.4)
  %12550 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12551 = load i32, ptr %12550, align 4, !tbaa !5
  %12552 = call ptr @s2n_strerror_debug(i32 noundef %12551, ptr noundef @.str.4)
  %12553 = call ptr @__errno_location() #12
  %12554 = load i32, ptr %12553, align 4, !tbaa !5
  %12555 = call ptr @strerror(i32 noundef %12554) #11
  %12556 = call ptr @__errno_location() #12
  %12557 = load i32, ptr %12556, align 4, !tbaa !5
  %12558 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12545, ptr noundef @.str.2, i32 noundef %12546, ptr noundef @.str.96, ptr noundef @.str.1, i32 noundef 587, ptr noundef %12549, ptr noundef %12552, ptr noundef %12555, i32 noundef %12557) #11
  br label %12576

12559:                                            ; preds = %12537, %12530
  %12560 = load i32, ptr %292, align 4, !tbaa !5
  %12561 = call ptr @__errno_location() #12
  store i32 %12560, ptr %12561, align 4, !tbaa !5
  %12562 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12563 = load i32, ptr @test_count, align 4, !tbaa !5
  %12564 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12565 = load i32, ptr %12564, align 4, !tbaa !5
  %12566 = call ptr @s2n_strerror(i32 noundef %12565, ptr noundef @.str.4)
  %12567 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12568 = load i32, ptr %12567, align 4, !tbaa !5
  %12569 = call ptr @s2n_strerror_debug(i32 noundef %12568, ptr noundef @.str.4)
  %12570 = call ptr @__errno_location() #12
  %12571 = load i32, ptr %12570, align 4, !tbaa !5
  %12572 = call ptr @strerror(i32 noundef %12571) #11
  %12573 = call ptr @__errno_location() #12
  %12574 = load i32, ptr %12573, align 4, !tbaa !5
  %12575 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12562, ptr noundef @.str.5, i32 noundef %12563, ptr noundef @.str.96, ptr noundef @.str.1, i32 noundef 587, ptr noundef %12566, ptr noundef %12569, ptr noundef %12572, i32 noundef %12574) #11
  br label %12576

12576:                                            ; preds = %12559, %12542
  call void @llvm.lifetime.end.p0(i64 4, ptr %292) #11
  br label %12577

12577:                                            ; preds = %12576
  br label %12578

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

12579:                                            ; No predecessors!
  br label %12580

12580:                                            ; preds = %12579
  br label %12581

12581:                                            ; preds = %12580, %12522
  br label %12582

12582:                                            ; preds = %12581
  br label %12583

12583:                                            ; preds = %12582
  call void @llvm.lifetime.start.p0(i64 8, ptr %293) #11
  %12584 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %12584, ptr %293, align 8, !tbaa !9
  br label %12585

12585:                                            ; preds = %12583
  %12586 = load i32, ptr @test_count, align 4, !tbaa !5
  %12587 = add nsw i32 %12586, 1
  store i32 %12587, ptr @test_count, align 4, !tbaa !5
  %12588 = load ptr, ptr %293, align 8, !tbaa !9
  %12589 = icmp eq ptr %12588, null
  br i1 %12589, label %12590, label %12643

12590:                                            ; preds = %12585
  br label %12591

12591:                                            ; preds = %12590
  br label %12592

12592:                                            ; preds = %12591
  call void @llvm.lifetime.start.p0(i64 4, ptr %294) #11
  %12593 = call ptr @__errno_location() #12
  %12594 = load i32, ptr %12593, align 4, !tbaa !5
  store i32 %12594, ptr %294, align 4, !tbaa !5
  %12595 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12596 = call i32 @s2n_print_stacktrace(ptr noundef %12595)
  %12597 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12598 = trunc i8 %12597 to i1
  br i1 %12598, label %12599, label %12621

12599:                                            ; preds = %12592
  %12600 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12601 = call i32 @fileno(ptr noundef %12600) #11
  %12602 = call i32 @isatty(i32 noundef %12601) #11
  %12603 = icmp ne i32 %12602, 0
  br i1 %12603, label %12604, label %12621

12604:                                            ; preds = %12599
  %12605 = load i32, ptr %294, align 4, !tbaa !5
  %12606 = call ptr @__errno_location() #12
  store i32 %12605, ptr %12606, align 4, !tbaa !5
  %12607 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12608 = load i32, ptr @test_count, align 4, !tbaa !5
  %12609 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12610 = load i32, ptr %12609, align 4, !tbaa !5
  %12611 = call ptr @s2n_strerror(i32 noundef %12610, ptr noundef @.str.4)
  %12612 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12613 = load i32, ptr %12612, align 4, !tbaa !5
  %12614 = call ptr @s2n_strerror_debug(i32 noundef %12613, ptr noundef @.str.4)
  %12615 = call ptr @__errno_location() #12
  %12616 = load i32, ptr %12615, align 4, !tbaa !5
  %12617 = call ptr @strerror(i32 noundef %12616) #11
  %12618 = call ptr @__errno_location() #12
  %12619 = load i32, ptr %12618, align 4, !tbaa !5
  %12620 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12607, ptr noundef @.str.2, i32 noundef %12608, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 590, ptr noundef %12611, ptr noundef %12614, ptr noundef %12617, i32 noundef %12619) #11
  br label %12638

12621:                                            ; preds = %12599, %12592
  %12622 = load i32, ptr %294, align 4, !tbaa !5
  %12623 = call ptr @__errno_location() #12
  store i32 %12622, ptr %12623, align 4, !tbaa !5
  %12624 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12625 = load i32, ptr @test_count, align 4, !tbaa !5
  %12626 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12627 = load i32, ptr %12626, align 4, !tbaa !5
  %12628 = call ptr @s2n_strerror(i32 noundef %12627, ptr noundef @.str.4)
  %12629 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12630 = load i32, ptr %12629, align 4, !tbaa !5
  %12631 = call ptr @s2n_strerror_debug(i32 noundef %12630, ptr noundef @.str.4)
  %12632 = call ptr @__errno_location() #12
  %12633 = load i32, ptr %12632, align 4, !tbaa !5
  %12634 = call ptr @strerror(i32 noundef %12633) #11
  %12635 = call ptr @__errno_location() #12
  %12636 = load i32, ptr %12635, align 4, !tbaa !5
  %12637 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12624, ptr noundef @.str.5, i32 noundef %12625, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 590, ptr noundef %12628, ptr noundef %12631, ptr noundef %12634, i32 noundef %12636) #11
  br label %12638

12638:                                            ; preds = %12621, %12604
  call void @llvm.lifetime.end.p0(i64 4, ptr %294) #11
  br label %12639

12639:                                            ; preds = %12638
  br label %12640

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

12641:                                            ; No predecessors!
  br label %12642

12642:                                            ; preds = %12641
  br label %12643

12643:                                            ; preds = %12642, %12585
  br label %12644

12644:                                            ; preds = %12643
  br label %12645

12645:                                            ; preds = %12644
  %12646 = load ptr, ptr %15, align 8, !tbaa !9
  %12647 = load ptr, ptr %293, align 8, !tbaa !9
  %12648 = getelementptr inbounds %struct.s2n_connection, ptr %12647, i32 0, i32 27
  %12649 = load ptr, ptr %12648, align 8, !tbaa !50
  %12650 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %12649, i32 0, i32 0
  store ptr %12646, ptr %12650, align 8, !tbaa !51
  %12651 = load ptr, ptr %293, align 8, !tbaa !9
  %12652 = getelementptr inbounds %struct.s2n_connection, ptr %12651, i32 0, i32 94
  call void @s2n_atomic_flag_clear(ptr noundef %12652)
  br label %12653

12653:                                            ; preds = %12645
  %12654 = load i32, ptr @test_count, align 4, !tbaa !5
  %12655 = add nsw i32 %12654, 1
  store i32 %12655, ptr @test_count, align 4, !tbaa !5
  %12656 = getelementptr inbounds [8 x i8], ptr %291, i64 0, i64 0
  %12657 = call i32 @s2n_write_uint64(i64 noundef 0, ptr noundef %12656)
  %12658 = getelementptr inbounds %struct.s2n_result, ptr %295, i32 0, i32 0
  store i32 %12657, ptr %12658, align 4
  %12659 = getelementptr inbounds %struct.s2n_result, ptr %295, i32 0, i32 0
  %12660 = load i32, ptr %12659, align 4
  %12661 = call zeroext i1 @s2n_result_is_ok(i32 %12660)
  br i1 %12661, label %12715, label %12662

12662:                                            ; preds = %12653
  br label %12663

12663:                                            ; preds = %12662
  br label %12664

12664:                                            ; preds = %12663
  call void @llvm.lifetime.start.p0(i64 4, ptr %296) #11
  %12665 = call ptr @__errno_location() #12
  %12666 = load i32, ptr %12665, align 4, !tbaa !5
  store i32 %12666, ptr %296, align 4, !tbaa !5
  %12667 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12668 = call i32 @s2n_print_stacktrace(ptr noundef %12667)
  %12669 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12670 = trunc i8 %12669 to i1
  br i1 %12670, label %12671, label %12693

12671:                                            ; preds = %12664
  %12672 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12673 = call i32 @fileno(ptr noundef %12672) #11
  %12674 = call i32 @isatty(i32 noundef %12673) #11
  %12675 = icmp ne i32 %12674, 0
  br i1 %12675, label %12676, label %12693

12676:                                            ; preds = %12671
  %12677 = load i32, ptr %296, align 4, !tbaa !5
  %12678 = call ptr @__errno_location() #12
  store i32 %12677, ptr %12678, align 4, !tbaa !5
  %12679 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12680 = load i32, ptr @test_count, align 4, !tbaa !5
  %12681 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12682 = load i32, ptr %12681, align 4, !tbaa !5
  %12683 = call ptr @s2n_strerror(i32 noundef %12682, ptr noundef @.str.4)
  %12684 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12685 = load i32, ptr %12684, align 4, !tbaa !5
  %12686 = call ptr @s2n_strerror_debug(i32 noundef %12685, ptr noundef @.str.4)
  %12687 = call ptr @__errno_location() #12
  %12688 = load i32, ptr %12687, align 4, !tbaa !5
  %12689 = call ptr @strerror(i32 noundef %12688) #11
  %12690 = call ptr @__errno_location() #12
  %12691 = load i32, ptr %12690, align 4, !tbaa !5
  %12692 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12679, ptr noundef @.str.2, i32 noundef %12680, ptr noundef @.str.97, ptr noundef @.str.1, i32 noundef 595, ptr noundef %12683, ptr noundef %12686, ptr noundef %12689, i32 noundef %12691) #11
  br label %12710

12693:                                            ; preds = %12671, %12664
  %12694 = load i32, ptr %296, align 4, !tbaa !5
  %12695 = call ptr @__errno_location() #12
  store i32 %12694, ptr %12695, align 4, !tbaa !5
  %12696 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12697 = load i32, ptr @test_count, align 4, !tbaa !5
  %12698 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12699 = load i32, ptr %12698, align 4, !tbaa !5
  %12700 = call ptr @s2n_strerror(i32 noundef %12699, ptr noundef @.str.4)
  %12701 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12702 = load i32, ptr %12701, align 4, !tbaa !5
  %12703 = call ptr @s2n_strerror_debug(i32 noundef %12702, ptr noundef @.str.4)
  %12704 = call ptr @__errno_location() #12
  %12705 = load i32, ptr %12704, align 4, !tbaa !5
  %12706 = call ptr @strerror(i32 noundef %12705) #11
  %12707 = call ptr @__errno_location() #12
  %12708 = load i32, ptr %12707, align 4, !tbaa !5
  %12709 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12696, ptr noundef @.str.5, i32 noundef %12697, ptr noundef @.str.97, ptr noundef @.str.1, i32 noundef 595, ptr noundef %12700, ptr noundef %12703, ptr noundef %12706, i32 noundef %12708) #11
  br label %12710

12710:                                            ; preds = %12693, %12676
  call void @llvm.lifetime.end.p0(i64 4, ptr %296) #11
  br label %12711

12711:                                            ; preds = %12710
  br label %12712

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

12713:                                            ; No predecessors!
  br label %12714

12714:                                            ; preds = %12713
  br label %12715

12715:                                            ; preds = %12714, %12653
  br label %12716

12716:                                            ; preds = %12715
  br label %12717

12717:                                            ; preds = %12716
  br label %12718

12718:                                            ; preds = %12717
  %12719 = load i32, ptr @test_count, align 4, !tbaa !5
  %12720 = add nsw i32 %12719, 1
  store i32 %12720, ptr @test_count, align 4, !tbaa !5
  %12721 = load ptr, ptr %293, align 8, !tbaa !9
  %12722 = call i32 @s2n_check_record_limit(ptr noundef %12721, ptr noundef %290)
  %12723 = icmp eq i32 %12722, -1
  br i1 %12723, label %12724, label %12777

12724:                                            ; preds = %12718
  br label %12725

12725:                                            ; preds = %12724
  br label %12726

12726:                                            ; preds = %12725
  call void @llvm.lifetime.start.p0(i64 4, ptr %297) #11
  %12727 = call ptr @__errno_location() #12
  %12728 = load i32, ptr %12727, align 4, !tbaa !5
  store i32 %12728, ptr %297, align 4, !tbaa !5
  %12729 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12730 = call i32 @s2n_print_stacktrace(ptr noundef %12729)
  %12731 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12732 = trunc i8 %12731 to i1
  br i1 %12732, label %12733, label %12755

12733:                                            ; preds = %12726
  %12734 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12735 = call i32 @fileno(ptr noundef %12734) #11
  %12736 = call i32 @isatty(i32 noundef %12735) #11
  %12737 = icmp ne i32 %12736, 0
  br i1 %12737, label %12738, label %12755

12738:                                            ; preds = %12733
  %12739 = load i32, ptr %297, align 4, !tbaa !5
  %12740 = call ptr @__errno_location() #12
  store i32 %12739, ptr %12740, align 4, !tbaa !5
  %12741 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12742 = load i32, ptr @test_count, align 4, !tbaa !5
  %12743 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12744 = load i32, ptr %12743, align 4, !tbaa !5
  %12745 = call ptr @s2n_strerror(i32 noundef %12744, ptr noundef @.str.4)
  %12746 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12747 = load i32, ptr %12746, align 4, !tbaa !5
  %12748 = call ptr @s2n_strerror_debug(i32 noundef %12747, ptr noundef @.str.4)
  %12749 = call ptr @__errno_location() #12
  %12750 = load i32, ptr %12749, align 4, !tbaa !5
  %12751 = call ptr @strerror(i32 noundef %12750) #11
  %12752 = call ptr @__errno_location() #12
  %12753 = load i32, ptr %12752, align 4, !tbaa !5
  %12754 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12741, ptr noundef @.str.2, i32 noundef %12742, ptr noundef @.str.98, ptr noundef @.str.1, i32 noundef 596, ptr noundef %12745, ptr noundef %12748, ptr noundef %12751, i32 noundef %12753) #11
  br label %12772

12755:                                            ; preds = %12733, %12726
  %12756 = load i32, ptr %297, align 4, !tbaa !5
  %12757 = call ptr @__errno_location() #12
  store i32 %12756, ptr %12757, align 4, !tbaa !5
  %12758 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12759 = load i32, ptr @test_count, align 4, !tbaa !5
  %12760 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12761 = load i32, ptr %12760, align 4, !tbaa !5
  %12762 = call ptr @s2n_strerror(i32 noundef %12761, ptr noundef @.str.4)
  %12763 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12764 = load i32, ptr %12763, align 4, !tbaa !5
  %12765 = call ptr @s2n_strerror_debug(i32 noundef %12764, ptr noundef @.str.4)
  %12766 = call ptr @__errno_location() #12
  %12767 = load i32, ptr %12766, align 4, !tbaa !5
  %12768 = call ptr @strerror(i32 noundef %12767) #11
  %12769 = call ptr @__errno_location() #12
  %12770 = load i32, ptr %12769, align 4, !tbaa !5
  %12771 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12758, ptr noundef @.str.5, i32 noundef %12759, ptr noundef @.str.98, ptr noundef @.str.1, i32 noundef 596, ptr noundef %12762, ptr noundef %12765, ptr noundef %12768, i32 noundef %12770) #11
  br label %12772

12772:                                            ; preds = %12755, %12738
  call void @llvm.lifetime.end.p0(i64 4, ptr %297) #11
  br label %12773

12773:                                            ; preds = %12772
  br label %12774

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

12775:                                            ; No predecessors!
  br label %12776

12776:                                            ; preds = %12775
  br label %12777

12777:                                            ; preds = %12776, %12718
  br label %12778

12778:                                            ; preds = %12777
  br label %12779

12779:                                            ; preds = %12778
  br label %12780

12780:                                            ; preds = %12779
  %12781 = load i32, ptr @test_count, align 4, !tbaa !5
  %12782 = add nsw i32 %12781, 1
  store i32 %12782, ptr @test_count, align 4, !tbaa !5
  %12783 = load ptr, ptr %293, align 8, !tbaa !9
  %12784 = getelementptr inbounds %struct.s2n_connection, ptr %12783, i32 0, i32 94
  %12785 = call zeroext i1 @s2n_atomic_flag_test(ptr noundef %12784)
  br i1 %12785, label %12786, label %12839

12786:                                            ; preds = %12780
  br label %12787

12787:                                            ; preds = %12786
  br label %12788

12788:                                            ; preds = %12787
  call void @llvm.lifetime.start.p0(i64 4, ptr %298) #11
  %12789 = call ptr @__errno_location() #12
  %12790 = load i32, ptr %12789, align 4, !tbaa !5
  store i32 %12790, ptr %298, align 4, !tbaa !5
  %12791 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12792 = call i32 @s2n_print_stacktrace(ptr noundef %12791)
  %12793 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12794 = trunc i8 %12793 to i1
  br i1 %12794, label %12795, label %12817

12795:                                            ; preds = %12788
  %12796 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12797 = call i32 @fileno(ptr noundef %12796) #11
  %12798 = call i32 @isatty(i32 noundef %12797) #11
  %12799 = icmp ne i32 %12798, 0
  br i1 %12799, label %12800, label %12817

12800:                                            ; preds = %12795
  %12801 = load i32, ptr %298, align 4, !tbaa !5
  %12802 = call ptr @__errno_location() #12
  store i32 %12801, ptr %12802, align 4, !tbaa !5
  %12803 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12804 = load i32, ptr @test_count, align 4, !tbaa !5
  %12805 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12806 = load i32, ptr %12805, align 4, !tbaa !5
  %12807 = call ptr @s2n_strerror(i32 noundef %12806, ptr noundef @.str.4)
  %12808 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12809 = load i32, ptr %12808, align 4, !tbaa !5
  %12810 = call ptr @s2n_strerror_debug(i32 noundef %12809, ptr noundef @.str.4)
  %12811 = call ptr @__errno_location() #12
  %12812 = load i32, ptr %12811, align 4, !tbaa !5
  %12813 = call ptr @strerror(i32 noundef %12812) #11
  %12814 = call ptr @__errno_location() #12
  %12815 = load i32, ptr %12814, align 4, !tbaa !5
  %12816 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12803, ptr noundef @.str.2, i32 noundef %12804, ptr noundef @.str.94, ptr noundef @.str.1, i32 noundef 597, ptr noundef %12807, ptr noundef %12810, ptr noundef %12813, i32 noundef %12815) #11
  br label %12834

12817:                                            ; preds = %12795, %12788
  %12818 = load i32, ptr %298, align 4, !tbaa !5
  %12819 = call ptr @__errno_location() #12
  store i32 %12818, ptr %12819, align 4, !tbaa !5
  %12820 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12821 = load i32, ptr @test_count, align 4, !tbaa !5
  %12822 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12823 = load i32, ptr %12822, align 4, !tbaa !5
  %12824 = call ptr @s2n_strerror(i32 noundef %12823, ptr noundef @.str.4)
  %12825 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12826 = load i32, ptr %12825, align 4, !tbaa !5
  %12827 = call ptr @s2n_strerror_debug(i32 noundef %12826, ptr noundef @.str.4)
  %12828 = call ptr @__errno_location() #12
  %12829 = load i32, ptr %12828, align 4, !tbaa !5
  %12830 = call ptr @strerror(i32 noundef %12829) #11
  %12831 = call ptr @__errno_location() #12
  %12832 = load i32, ptr %12831, align 4, !tbaa !5
  %12833 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12820, ptr noundef @.str.5, i32 noundef %12821, ptr noundef @.str.94, ptr noundef @.str.1, i32 noundef 597, ptr noundef %12824, ptr noundef %12827, ptr noundef %12830, i32 noundef %12832) #11
  br label %12834

12834:                                            ; preds = %12817, %12800
  call void @llvm.lifetime.end.p0(i64 4, ptr %298) #11
  br label %12835

12835:                                            ; preds = %12834
  br label %12836

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

12837:                                            ; No predecessors!
  br label %12838

12838:                                            ; preds = %12837
  br label %12839

12839:                                            ; preds = %12838, %12780
  br label %12840

12840:                                            ; preds = %12839
  br label %12841

12841:                                            ; preds = %12840
  %12842 = load ptr, ptr %293, align 8, !tbaa !9
  %12843 = getelementptr inbounds %struct.s2n_connection, ptr %12842, i32 0, i32 94
  call void @s2n_atomic_flag_clear(ptr noundef %12843)
  br label %12844

12844:                                            ; preds = %12841
  %12845 = load i32, ptr @test_count, align 4, !tbaa !5
  %12846 = add nsw i32 %12845, 1
  store i32 %12846, ptr @test_count, align 4, !tbaa !5
  %12847 = getelementptr inbounds [8 x i8], ptr %291, i64 0, i64 0
  %12848 = call i32 @s2n_write_uint64(i64 noundef -3, ptr noundef %12847)
  %12849 = getelementptr inbounds %struct.s2n_result, ptr %299, i32 0, i32 0
  store i32 %12848, ptr %12849, align 4
  %12850 = getelementptr inbounds %struct.s2n_result, ptr %299, i32 0, i32 0
  %12851 = load i32, ptr %12850, align 4
  %12852 = call zeroext i1 @s2n_result_is_ok(i32 %12851)
  br i1 %12852, label %12906, label %12853

12853:                                            ; preds = %12844
  br label %12854

12854:                                            ; preds = %12853
  br label %12855

12855:                                            ; preds = %12854
  call void @llvm.lifetime.start.p0(i64 4, ptr %300) #11
  %12856 = call ptr @__errno_location() #12
  %12857 = load i32, ptr %12856, align 4, !tbaa !5
  store i32 %12857, ptr %300, align 4, !tbaa !5
  %12858 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12859 = call i32 @s2n_print_stacktrace(ptr noundef %12858)
  %12860 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12861 = trunc i8 %12860 to i1
  br i1 %12861, label %12862, label %12884

12862:                                            ; preds = %12855
  %12863 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12864 = call i32 @fileno(ptr noundef %12863) #11
  %12865 = call i32 @isatty(i32 noundef %12864) #11
  %12866 = icmp ne i32 %12865, 0
  br i1 %12866, label %12867, label %12884

12867:                                            ; preds = %12862
  %12868 = load i32, ptr %300, align 4, !tbaa !5
  %12869 = call ptr @__errno_location() #12
  store i32 %12868, ptr %12869, align 4, !tbaa !5
  %12870 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12871 = load i32, ptr @test_count, align 4, !tbaa !5
  %12872 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12873 = load i32, ptr %12872, align 4, !tbaa !5
  %12874 = call ptr @s2n_strerror(i32 noundef %12873, ptr noundef @.str.4)
  %12875 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12876 = load i32, ptr %12875, align 4, !tbaa !5
  %12877 = call ptr @s2n_strerror_debug(i32 noundef %12876, ptr noundef @.str.4)
  %12878 = call ptr @__errno_location() #12
  %12879 = load i32, ptr %12878, align 4, !tbaa !5
  %12880 = call ptr @strerror(i32 noundef %12879) #11
  %12881 = call ptr @__errno_location() #12
  %12882 = load i32, ptr %12881, align 4, !tbaa !5
  %12883 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12870, ptr noundef @.str.2, i32 noundef %12871, ptr noundef @.str.103, ptr noundef @.str.1, i32 noundef 601, ptr noundef %12874, ptr noundef %12877, ptr noundef %12880, i32 noundef %12882) #11
  br label %12901

12884:                                            ; preds = %12862, %12855
  %12885 = load i32, ptr %300, align 4, !tbaa !5
  %12886 = call ptr @__errno_location() #12
  store i32 %12885, ptr %12886, align 4, !tbaa !5
  %12887 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12888 = load i32, ptr @test_count, align 4, !tbaa !5
  %12889 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12890 = load i32, ptr %12889, align 4, !tbaa !5
  %12891 = call ptr @s2n_strerror(i32 noundef %12890, ptr noundef @.str.4)
  %12892 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12893 = load i32, ptr %12892, align 4, !tbaa !5
  %12894 = call ptr @s2n_strerror_debug(i32 noundef %12893, ptr noundef @.str.4)
  %12895 = call ptr @__errno_location() #12
  %12896 = load i32, ptr %12895, align 4, !tbaa !5
  %12897 = call ptr @strerror(i32 noundef %12896) #11
  %12898 = call ptr @__errno_location() #12
  %12899 = load i32, ptr %12898, align 4, !tbaa !5
  %12900 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12887, ptr noundef @.str.5, i32 noundef %12888, ptr noundef @.str.103, ptr noundef @.str.1, i32 noundef 601, ptr noundef %12891, ptr noundef %12894, ptr noundef %12897, i32 noundef %12899) #11
  br label %12901

12901:                                            ; preds = %12884, %12867
  call void @llvm.lifetime.end.p0(i64 4, ptr %300) #11
  br label %12902

12902:                                            ; preds = %12901
  br label %12903

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

12904:                                            ; No predecessors!
  br label %12905

12905:                                            ; preds = %12904
  br label %12906

12906:                                            ; preds = %12905, %12844
  br label %12907

12907:                                            ; preds = %12906
  br label %12908

12908:                                            ; preds = %12907
  br label %12909

12909:                                            ; preds = %12908
  %12910 = load i32, ptr @test_count, align 4, !tbaa !5
  %12911 = add nsw i32 %12910, 1
  store i32 %12911, ptr @test_count, align 4, !tbaa !5
  %12912 = load ptr, ptr %293, align 8, !tbaa !9
  %12913 = call i32 @s2n_check_record_limit(ptr noundef %12912, ptr noundef %290)
  %12914 = icmp eq i32 %12913, -1
  br i1 %12914, label %12915, label %12968

12915:                                            ; preds = %12909
  br label %12916

12916:                                            ; preds = %12915
  br label %12917

12917:                                            ; preds = %12916
  call void @llvm.lifetime.start.p0(i64 4, ptr %301) #11
  %12918 = call ptr @__errno_location() #12
  %12919 = load i32, ptr %12918, align 4, !tbaa !5
  store i32 %12919, ptr %301, align 4, !tbaa !5
  %12920 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12921 = call i32 @s2n_print_stacktrace(ptr noundef %12920)
  %12922 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12923 = trunc i8 %12922 to i1
  br i1 %12923, label %12924, label %12946

12924:                                            ; preds = %12917
  %12925 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12926 = call i32 @fileno(ptr noundef %12925) #11
  %12927 = call i32 @isatty(i32 noundef %12926) #11
  %12928 = icmp ne i32 %12927, 0
  br i1 %12928, label %12929, label %12946

12929:                                            ; preds = %12924
  %12930 = load i32, ptr %301, align 4, !tbaa !5
  %12931 = call ptr @__errno_location() #12
  store i32 %12930, ptr %12931, align 4, !tbaa !5
  %12932 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12933 = load i32, ptr @test_count, align 4, !tbaa !5
  %12934 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12935 = load i32, ptr %12934, align 4, !tbaa !5
  %12936 = call ptr @s2n_strerror(i32 noundef %12935, ptr noundef @.str.4)
  %12937 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12938 = load i32, ptr %12937, align 4, !tbaa !5
  %12939 = call ptr @s2n_strerror_debug(i32 noundef %12938, ptr noundef @.str.4)
  %12940 = call ptr @__errno_location() #12
  %12941 = load i32, ptr %12940, align 4, !tbaa !5
  %12942 = call ptr @strerror(i32 noundef %12941) #11
  %12943 = call ptr @__errno_location() #12
  %12944 = load i32, ptr %12943, align 4, !tbaa !5
  %12945 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12932, ptr noundef @.str.2, i32 noundef %12933, ptr noundef @.str.98, ptr noundef @.str.1, i32 noundef 602, ptr noundef %12936, ptr noundef %12939, ptr noundef %12942, i32 noundef %12944) #11
  br label %12963

12946:                                            ; preds = %12924, %12917
  %12947 = load i32, ptr %301, align 4, !tbaa !5
  %12948 = call ptr @__errno_location() #12
  store i32 %12947, ptr %12948, align 4, !tbaa !5
  %12949 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12950 = load i32, ptr @test_count, align 4, !tbaa !5
  %12951 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12952 = load i32, ptr %12951, align 4, !tbaa !5
  %12953 = call ptr @s2n_strerror(i32 noundef %12952, ptr noundef @.str.4)
  %12954 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12955 = load i32, ptr %12954, align 4, !tbaa !5
  %12956 = call ptr @s2n_strerror_debug(i32 noundef %12955, ptr noundef @.str.4)
  %12957 = call ptr @__errno_location() #12
  %12958 = load i32, ptr %12957, align 4, !tbaa !5
  %12959 = call ptr @strerror(i32 noundef %12958) #11
  %12960 = call ptr @__errno_location() #12
  %12961 = load i32, ptr %12960, align 4, !tbaa !5
  %12962 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12949, ptr noundef @.str.5, i32 noundef %12950, ptr noundef @.str.98, ptr noundef @.str.1, i32 noundef 602, ptr noundef %12953, ptr noundef %12956, ptr noundef %12959, i32 noundef %12961) #11
  br label %12963

12963:                                            ; preds = %12946, %12929
  call void @llvm.lifetime.end.p0(i64 4, ptr %301) #11
  br label %12964

12964:                                            ; preds = %12963
  br label %12965

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

12966:                                            ; No predecessors!
  br label %12967

12967:                                            ; preds = %12966
  br label %12968

12968:                                            ; preds = %12967, %12909
  br label %12969

12969:                                            ; preds = %12968
  br label %12970

12970:                                            ; preds = %12969
  br label %12971

12971:                                            ; preds = %12970
  %12972 = load i32, ptr @test_count, align 4, !tbaa !5
  %12973 = add nsw i32 %12972, 1
  store i32 %12973, ptr @test_count, align 4, !tbaa !5
  %12974 = load ptr, ptr %293, align 8, !tbaa !9
  %12975 = getelementptr inbounds %struct.s2n_connection, ptr %12974, i32 0, i32 94
  %12976 = call zeroext i1 @s2n_atomic_flag_test(ptr noundef %12975)
  br i1 %12976, label %12977, label %13030

12977:                                            ; preds = %12971
  br label %12978

12978:                                            ; preds = %12977
  br label %12979

12979:                                            ; preds = %12978
  call void @llvm.lifetime.start.p0(i64 4, ptr %302) #11
  %12980 = call ptr @__errno_location() #12
  %12981 = load i32, ptr %12980, align 4, !tbaa !5
  store i32 %12981, ptr %302, align 4, !tbaa !5
  %12982 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12983 = call i32 @s2n_print_stacktrace(ptr noundef %12982)
  %12984 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12985 = trunc i8 %12984 to i1
  br i1 %12985, label %12986, label %13008

12986:                                            ; preds = %12979
  %12987 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12988 = call i32 @fileno(ptr noundef %12987) #11
  %12989 = call i32 @isatty(i32 noundef %12988) #11
  %12990 = icmp ne i32 %12989, 0
  br i1 %12990, label %12991, label %13008

12991:                                            ; preds = %12986
  %12992 = load i32, ptr %302, align 4, !tbaa !5
  %12993 = call ptr @__errno_location() #12
  store i32 %12992, ptr %12993, align 4, !tbaa !5
  %12994 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12995 = load i32, ptr @test_count, align 4, !tbaa !5
  %12996 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12997 = load i32, ptr %12996, align 4, !tbaa !5
  %12998 = call ptr @s2n_strerror(i32 noundef %12997, ptr noundef @.str.4)
  %12999 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13000 = load i32, ptr %12999, align 4, !tbaa !5
  %13001 = call ptr @s2n_strerror_debug(i32 noundef %13000, ptr noundef @.str.4)
  %13002 = call ptr @__errno_location() #12
  %13003 = load i32, ptr %13002, align 4, !tbaa !5
  %13004 = call ptr @strerror(i32 noundef %13003) #11
  %13005 = call ptr @__errno_location() #12
  %13006 = load i32, ptr %13005, align 4, !tbaa !5
  %13007 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12994, ptr noundef @.str.2, i32 noundef %12995, ptr noundef @.str.94, ptr noundef @.str.1, i32 noundef 603, ptr noundef %12998, ptr noundef %13001, ptr noundef %13004, i32 noundef %13006) #11
  br label %13025

13008:                                            ; preds = %12986, %12979
  %13009 = load i32, ptr %302, align 4, !tbaa !5
  %13010 = call ptr @__errno_location() #12
  store i32 %13009, ptr %13010, align 4, !tbaa !5
  %13011 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13012 = load i32, ptr @test_count, align 4, !tbaa !5
  %13013 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13014 = load i32, ptr %13013, align 4, !tbaa !5
  %13015 = call ptr @s2n_strerror(i32 noundef %13014, ptr noundef @.str.4)
  %13016 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13017 = load i32, ptr %13016, align 4, !tbaa !5
  %13018 = call ptr @s2n_strerror_debug(i32 noundef %13017, ptr noundef @.str.4)
  %13019 = call ptr @__errno_location() #12
  %13020 = load i32, ptr %13019, align 4, !tbaa !5
  %13021 = call ptr @strerror(i32 noundef %13020) #11
  %13022 = call ptr @__errno_location() #12
  %13023 = load i32, ptr %13022, align 4, !tbaa !5
  %13024 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13011, ptr noundef @.str.5, i32 noundef %13012, ptr noundef @.str.94, ptr noundef @.str.1, i32 noundef 603, ptr noundef %13015, ptr noundef %13018, ptr noundef %13021, i32 noundef %13023) #11
  br label %13025

13025:                                            ; preds = %13008, %12991
  call void @llvm.lifetime.end.p0(i64 4, ptr %302) #11
  br label %13026

13026:                                            ; preds = %13025
  br label %13027

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

13028:                                            ; No predecessors!
  br label %13029

13029:                                            ; preds = %13028
  br label %13030

13030:                                            ; preds = %13029, %12971
  br label %13031

13031:                                            ; preds = %13030
  br label %13032

13032:                                            ; preds = %13031
  %13033 = load ptr, ptr %293, align 8, !tbaa !9
  %13034 = getelementptr inbounds %struct.s2n_connection, ptr %13033, i32 0, i32 94
  call void @s2n_atomic_flag_clear(ptr noundef %13034)
  br label %13035

13035:                                            ; preds = %13032
  %13036 = load i32, ptr @test_count, align 4, !tbaa !5
  %13037 = add nsw i32 %13036, 1
  store i32 %13037, ptr @test_count, align 4, !tbaa !5
  %13038 = getelementptr inbounds [8 x i8], ptr %291, i64 0, i64 0
  %13039 = call i32 @s2n_write_uint64(i64 noundef -2, ptr noundef %13038)
  %13040 = getelementptr inbounds %struct.s2n_result, ptr %303, i32 0, i32 0
  store i32 %13039, ptr %13040, align 4
  %13041 = getelementptr inbounds %struct.s2n_result, ptr %303, i32 0, i32 0
  %13042 = load i32, ptr %13041, align 4
  %13043 = call zeroext i1 @s2n_result_is_ok(i32 %13042)
  br i1 %13043, label %13097, label %13044

13044:                                            ; preds = %13035
  br label %13045

13045:                                            ; preds = %13044
  br label %13046

13046:                                            ; preds = %13045
  call void @llvm.lifetime.start.p0(i64 4, ptr %304) #11
  %13047 = call ptr @__errno_location() #12
  %13048 = load i32, ptr %13047, align 4, !tbaa !5
  store i32 %13048, ptr %304, align 4, !tbaa !5
  %13049 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13050 = call i32 @s2n_print_stacktrace(ptr noundef %13049)
  %13051 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13052 = trunc i8 %13051 to i1
  br i1 %13052, label %13053, label %13075

13053:                                            ; preds = %13046
  %13054 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13055 = call i32 @fileno(ptr noundef %13054) #11
  %13056 = call i32 @isatty(i32 noundef %13055) #11
  %13057 = icmp ne i32 %13056, 0
  br i1 %13057, label %13058, label %13075

13058:                                            ; preds = %13053
  %13059 = load i32, ptr %304, align 4, !tbaa !5
  %13060 = call ptr @__errno_location() #12
  store i32 %13059, ptr %13060, align 4, !tbaa !5
  %13061 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13062 = load i32, ptr @test_count, align 4, !tbaa !5
  %13063 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13064 = load i32, ptr %13063, align 4, !tbaa !5
  %13065 = call ptr @s2n_strerror(i32 noundef %13064, ptr noundef @.str.4)
  %13066 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13067 = load i32, ptr %13066, align 4, !tbaa !5
  %13068 = call ptr @s2n_strerror_debug(i32 noundef %13067, ptr noundef @.str.4)
  %13069 = call ptr @__errno_location() #12
  %13070 = load i32, ptr %13069, align 4, !tbaa !5
  %13071 = call ptr @strerror(i32 noundef %13070) #11
  %13072 = call ptr @__errno_location() #12
  %13073 = load i32, ptr %13072, align 4, !tbaa !5
  %13074 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13061, ptr noundef @.str.2, i32 noundef %13062, ptr noundef @.str.104, ptr noundef @.str.1, i32 noundef 607, ptr noundef %13065, ptr noundef %13068, ptr noundef %13071, i32 noundef %13073) #11
  br label %13092

13075:                                            ; preds = %13053, %13046
  %13076 = load i32, ptr %304, align 4, !tbaa !5
  %13077 = call ptr @__errno_location() #12
  store i32 %13076, ptr %13077, align 4, !tbaa !5
  %13078 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13079 = load i32, ptr @test_count, align 4, !tbaa !5
  %13080 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13081 = load i32, ptr %13080, align 4, !tbaa !5
  %13082 = call ptr @s2n_strerror(i32 noundef %13081, ptr noundef @.str.4)
  %13083 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13084 = load i32, ptr %13083, align 4, !tbaa !5
  %13085 = call ptr @s2n_strerror_debug(i32 noundef %13084, ptr noundef @.str.4)
  %13086 = call ptr @__errno_location() #12
  %13087 = load i32, ptr %13086, align 4, !tbaa !5
  %13088 = call ptr @strerror(i32 noundef %13087) #11
  %13089 = call ptr @__errno_location() #12
  %13090 = load i32, ptr %13089, align 4, !tbaa !5
  %13091 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13078, ptr noundef @.str.5, i32 noundef %13079, ptr noundef @.str.104, ptr noundef @.str.1, i32 noundef 607, ptr noundef %13082, ptr noundef %13085, ptr noundef %13088, i32 noundef %13090) #11
  br label %13092

13092:                                            ; preds = %13075, %13058
  call void @llvm.lifetime.end.p0(i64 4, ptr %304) #11
  br label %13093

13093:                                            ; preds = %13092
  br label %13094

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

13095:                                            ; No predecessors!
  br label %13096

13096:                                            ; preds = %13095
  br label %13097

13097:                                            ; preds = %13096, %13035
  br label %13098

13098:                                            ; preds = %13097
  br label %13099

13099:                                            ; preds = %13098
  br label %13100

13100:                                            ; preds = %13099
  %13101 = load i32, ptr @test_count, align 4, !tbaa !5
  %13102 = add nsw i32 %13101, 1
  store i32 %13102, ptr @test_count, align 4, !tbaa !5
  %13103 = load ptr, ptr %293, align 8, !tbaa !9
  %13104 = call i32 @s2n_check_record_limit(ptr noundef %13103, ptr noundef %290)
  %13105 = icmp eq i32 %13104, -1
  br i1 %13105, label %13106, label %13159

13106:                                            ; preds = %13100
  br label %13107

13107:                                            ; preds = %13106
  br label %13108

13108:                                            ; preds = %13107
  call void @llvm.lifetime.start.p0(i64 4, ptr %305) #11
  %13109 = call ptr @__errno_location() #12
  %13110 = load i32, ptr %13109, align 4, !tbaa !5
  store i32 %13110, ptr %305, align 4, !tbaa !5
  %13111 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13112 = call i32 @s2n_print_stacktrace(ptr noundef %13111)
  %13113 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13114 = trunc i8 %13113 to i1
  br i1 %13114, label %13115, label %13137

13115:                                            ; preds = %13108
  %13116 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13117 = call i32 @fileno(ptr noundef %13116) #11
  %13118 = call i32 @isatty(i32 noundef %13117) #11
  %13119 = icmp ne i32 %13118, 0
  br i1 %13119, label %13120, label %13137

13120:                                            ; preds = %13115
  %13121 = load i32, ptr %305, align 4, !tbaa !5
  %13122 = call ptr @__errno_location() #12
  store i32 %13121, ptr %13122, align 4, !tbaa !5
  %13123 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13124 = load i32, ptr @test_count, align 4, !tbaa !5
  %13125 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13126 = load i32, ptr %13125, align 4, !tbaa !5
  %13127 = call ptr @s2n_strerror(i32 noundef %13126, ptr noundef @.str.4)
  %13128 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13129 = load i32, ptr %13128, align 4, !tbaa !5
  %13130 = call ptr @s2n_strerror_debug(i32 noundef %13129, ptr noundef @.str.4)
  %13131 = call ptr @__errno_location() #12
  %13132 = load i32, ptr %13131, align 4, !tbaa !5
  %13133 = call ptr @strerror(i32 noundef %13132) #11
  %13134 = call ptr @__errno_location() #12
  %13135 = load i32, ptr %13134, align 4, !tbaa !5
  %13136 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13123, ptr noundef @.str.2, i32 noundef %13124, ptr noundef @.str.98, ptr noundef @.str.1, i32 noundef 608, ptr noundef %13127, ptr noundef %13130, ptr noundef %13133, i32 noundef %13135) #11
  br label %13154

13137:                                            ; preds = %13115, %13108
  %13138 = load i32, ptr %305, align 4, !tbaa !5
  %13139 = call ptr @__errno_location() #12
  store i32 %13138, ptr %13139, align 4, !tbaa !5
  %13140 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13141 = load i32, ptr @test_count, align 4, !tbaa !5
  %13142 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13143 = load i32, ptr %13142, align 4, !tbaa !5
  %13144 = call ptr @s2n_strerror(i32 noundef %13143, ptr noundef @.str.4)
  %13145 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13146 = load i32, ptr %13145, align 4, !tbaa !5
  %13147 = call ptr @s2n_strerror_debug(i32 noundef %13146, ptr noundef @.str.4)
  %13148 = call ptr @__errno_location() #12
  %13149 = load i32, ptr %13148, align 4, !tbaa !5
  %13150 = call ptr @strerror(i32 noundef %13149) #11
  %13151 = call ptr @__errno_location() #12
  %13152 = load i32, ptr %13151, align 4, !tbaa !5
  %13153 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13140, ptr noundef @.str.5, i32 noundef %13141, ptr noundef @.str.98, ptr noundef @.str.1, i32 noundef 608, ptr noundef %13144, ptr noundef %13147, ptr noundef %13150, i32 noundef %13152) #11
  br label %13154

13154:                                            ; preds = %13137, %13120
  call void @llvm.lifetime.end.p0(i64 4, ptr %305) #11
  br label %13155

13155:                                            ; preds = %13154
  br label %13156

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

13157:                                            ; No predecessors!
  br label %13158

13158:                                            ; preds = %13157
  br label %13159

13159:                                            ; preds = %13158, %13100
  br label %13160

13160:                                            ; preds = %13159
  br label %13161

13161:                                            ; preds = %13160
  br label %13162

13162:                                            ; preds = %13161
  %13163 = load i32, ptr @test_count, align 4, !tbaa !5
  %13164 = add nsw i32 %13163, 1
  store i32 %13164, ptr @test_count, align 4, !tbaa !5
  %13165 = load ptr, ptr %293, align 8, !tbaa !9
  %13166 = getelementptr inbounds %struct.s2n_connection, ptr %13165, i32 0, i32 94
  %13167 = call zeroext i1 @s2n_atomic_flag_test(ptr noundef %13166)
  br i1 %13167, label %13168, label %13221

13168:                                            ; preds = %13162
  br label %13169

13169:                                            ; preds = %13168
  br label %13170

13170:                                            ; preds = %13169
  call void @llvm.lifetime.start.p0(i64 4, ptr %306) #11
  %13171 = call ptr @__errno_location() #12
  %13172 = load i32, ptr %13171, align 4, !tbaa !5
  store i32 %13172, ptr %306, align 4, !tbaa !5
  %13173 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13174 = call i32 @s2n_print_stacktrace(ptr noundef %13173)
  %13175 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13176 = trunc i8 %13175 to i1
  br i1 %13176, label %13177, label %13199

13177:                                            ; preds = %13170
  %13178 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13179 = call i32 @fileno(ptr noundef %13178) #11
  %13180 = call i32 @isatty(i32 noundef %13179) #11
  %13181 = icmp ne i32 %13180, 0
  br i1 %13181, label %13182, label %13199

13182:                                            ; preds = %13177
  %13183 = load i32, ptr %306, align 4, !tbaa !5
  %13184 = call ptr @__errno_location() #12
  store i32 %13183, ptr %13184, align 4, !tbaa !5
  %13185 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13186 = load i32, ptr @test_count, align 4, !tbaa !5
  %13187 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13188 = load i32, ptr %13187, align 4, !tbaa !5
  %13189 = call ptr @s2n_strerror(i32 noundef %13188, ptr noundef @.str.4)
  %13190 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13191 = load i32, ptr %13190, align 4, !tbaa !5
  %13192 = call ptr @s2n_strerror_debug(i32 noundef %13191, ptr noundef @.str.4)
  %13193 = call ptr @__errno_location() #12
  %13194 = load i32, ptr %13193, align 4, !tbaa !5
  %13195 = call ptr @strerror(i32 noundef %13194) #11
  %13196 = call ptr @__errno_location() #12
  %13197 = load i32, ptr %13196, align 4, !tbaa !5
  %13198 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13185, ptr noundef @.str.2, i32 noundef %13186, ptr noundef @.str.94, ptr noundef @.str.1, i32 noundef 609, ptr noundef %13189, ptr noundef %13192, ptr noundef %13195, i32 noundef %13197) #11
  br label %13216

13199:                                            ; preds = %13177, %13170
  %13200 = load i32, ptr %306, align 4, !tbaa !5
  %13201 = call ptr @__errno_location() #12
  store i32 %13200, ptr %13201, align 4, !tbaa !5
  %13202 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13203 = load i32, ptr @test_count, align 4, !tbaa !5
  %13204 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13205 = load i32, ptr %13204, align 4, !tbaa !5
  %13206 = call ptr @s2n_strerror(i32 noundef %13205, ptr noundef @.str.4)
  %13207 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13208 = load i32, ptr %13207, align 4, !tbaa !5
  %13209 = call ptr @s2n_strerror_debug(i32 noundef %13208, ptr noundef @.str.4)
  %13210 = call ptr @__errno_location() #12
  %13211 = load i32, ptr %13210, align 4, !tbaa !5
  %13212 = call ptr @strerror(i32 noundef %13211) #11
  %13213 = call ptr @__errno_location() #12
  %13214 = load i32, ptr %13213, align 4, !tbaa !5
  %13215 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13202, ptr noundef @.str.5, i32 noundef %13203, ptr noundef @.str.94, ptr noundef @.str.1, i32 noundef 609, ptr noundef %13206, ptr noundef %13209, ptr noundef %13212, i32 noundef %13214) #11
  br label %13216

13216:                                            ; preds = %13199, %13182
  call void @llvm.lifetime.end.p0(i64 4, ptr %306) #11
  br label %13217

13217:                                            ; preds = %13216
  br label %13218

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

13219:                                            ; No predecessors!
  br label %13220

13220:                                            ; preds = %13219
  br label %13221

13221:                                            ; preds = %13220, %13162
  br label %13222

13222:                                            ; preds = %13221
  br label %13223

13223:                                            ; preds = %13222
  %13224 = load ptr, ptr %293, align 8, !tbaa !9
  %13225 = getelementptr inbounds %struct.s2n_connection, ptr %13224, i32 0, i32 94
  call void @s2n_atomic_flag_clear(ptr noundef %13225)
  br label %13226

13226:                                            ; preds = %13223
  %13227 = load i32, ptr @test_count, align 4, !tbaa !5
  %13228 = add nsw i32 %13227, 1
  store i32 %13228, ptr @test_count, align 4, !tbaa !5
  %13229 = getelementptr inbounds [8 x i8], ptr %291, i64 0, i64 0
  %13230 = call i32 @s2n_write_uint64(i64 noundef -1, ptr noundef %13229)
  %13231 = getelementptr inbounds %struct.s2n_result, ptr %307, i32 0, i32 0
  store i32 %13230, ptr %13231, align 4
  %13232 = getelementptr inbounds %struct.s2n_result, ptr %307, i32 0, i32 0
  %13233 = load i32, ptr %13232, align 4
  %13234 = call zeroext i1 @s2n_result_is_ok(i32 %13233)
  br i1 %13234, label %13288, label %13235

13235:                                            ; preds = %13226
  br label %13236

13236:                                            ; preds = %13235
  br label %13237

13237:                                            ; preds = %13236
  call void @llvm.lifetime.start.p0(i64 4, ptr %308) #11
  %13238 = call ptr @__errno_location() #12
  %13239 = load i32, ptr %13238, align 4, !tbaa !5
  store i32 %13239, ptr %308, align 4, !tbaa !5
  %13240 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13241 = call i32 @s2n_print_stacktrace(ptr noundef %13240)
  %13242 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13243 = trunc i8 %13242 to i1
  br i1 %13243, label %13244, label %13266

13244:                                            ; preds = %13237
  %13245 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13246 = call i32 @fileno(ptr noundef %13245) #11
  %13247 = call i32 @isatty(i32 noundef %13246) #11
  %13248 = icmp ne i32 %13247, 0
  br i1 %13248, label %13249, label %13266

13249:                                            ; preds = %13244
  %13250 = load i32, ptr %308, align 4, !tbaa !5
  %13251 = call ptr @__errno_location() #12
  store i32 %13250, ptr %13251, align 4, !tbaa !5
  %13252 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13253 = load i32, ptr @test_count, align 4, !tbaa !5
  %13254 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13255 = load i32, ptr %13254, align 4, !tbaa !5
  %13256 = call ptr @s2n_strerror(i32 noundef %13255, ptr noundef @.str.4)
  %13257 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13258 = load i32, ptr %13257, align 4, !tbaa !5
  %13259 = call ptr @s2n_strerror_debug(i32 noundef %13258, ptr noundef @.str.4)
  %13260 = call ptr @__errno_location() #12
  %13261 = load i32, ptr %13260, align 4, !tbaa !5
  %13262 = call ptr @strerror(i32 noundef %13261) #11
  %13263 = call ptr @__errno_location() #12
  %13264 = load i32, ptr %13263, align 4, !tbaa !5
  %13265 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13252, ptr noundef @.str.2, i32 noundef %13253, ptr noundef @.str.105, ptr noundef @.str.1, i32 noundef 613, ptr noundef %13256, ptr noundef %13259, ptr noundef %13262, i32 noundef %13264) #11
  br label %13283

13266:                                            ; preds = %13244, %13237
  %13267 = load i32, ptr %308, align 4, !tbaa !5
  %13268 = call ptr @__errno_location() #12
  store i32 %13267, ptr %13268, align 4, !tbaa !5
  %13269 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13270 = load i32, ptr @test_count, align 4, !tbaa !5
  %13271 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13272 = load i32, ptr %13271, align 4, !tbaa !5
  %13273 = call ptr @s2n_strerror(i32 noundef %13272, ptr noundef @.str.4)
  %13274 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13275 = load i32, ptr %13274, align 4, !tbaa !5
  %13276 = call ptr @s2n_strerror_debug(i32 noundef %13275, ptr noundef @.str.4)
  %13277 = call ptr @__errno_location() #12
  %13278 = load i32, ptr %13277, align 4, !tbaa !5
  %13279 = call ptr @strerror(i32 noundef %13278) #11
  %13280 = call ptr @__errno_location() #12
  %13281 = load i32, ptr %13280, align 4, !tbaa !5
  %13282 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13269, ptr noundef @.str.5, i32 noundef %13270, ptr noundef @.str.105, ptr noundef @.str.1, i32 noundef 613, ptr noundef %13273, ptr noundef %13276, ptr noundef %13279, i32 noundef %13281) #11
  br label %13283

13283:                                            ; preds = %13266, %13249
  call void @llvm.lifetime.end.p0(i64 4, ptr %308) #11
  br label %13284

13284:                                            ; preds = %13283
  br label %13285

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

13286:                                            ; No predecessors!
  br label %13287

13287:                                            ; preds = %13286
  br label %13288

13288:                                            ; preds = %13287, %13226
  br label %13289

13289:                                            ; preds = %13288
  br label %13290

13290:                                            ; preds = %13289
  br label %13291

13291:                                            ; preds = %13290
  %13292 = load i32, ptr @test_count, align 4, !tbaa !5
  %13293 = add nsw i32 %13292, 1
  store i32 %13293, ptr @test_count, align 4, !tbaa !5
  %13294 = load ptr, ptr %293, align 8, !tbaa !9
  %13295 = call i32 @s2n_check_record_limit(ptr noundef %13294, ptr noundef %290)
  %13296 = icmp eq i32 %13295, -1
  br i1 %13296, label %13297, label %13350

13297:                                            ; preds = %13291
  br label %13298

13298:                                            ; preds = %13297
  br label %13299

13299:                                            ; preds = %13298
  call void @llvm.lifetime.start.p0(i64 4, ptr %309) #11
  %13300 = call ptr @__errno_location() #12
  %13301 = load i32, ptr %13300, align 4, !tbaa !5
  store i32 %13301, ptr %309, align 4, !tbaa !5
  %13302 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13303 = call i32 @s2n_print_stacktrace(ptr noundef %13302)
  %13304 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13305 = trunc i8 %13304 to i1
  br i1 %13305, label %13306, label %13328

13306:                                            ; preds = %13299
  %13307 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13308 = call i32 @fileno(ptr noundef %13307) #11
  %13309 = call i32 @isatty(i32 noundef %13308) #11
  %13310 = icmp ne i32 %13309, 0
  br i1 %13310, label %13311, label %13328

13311:                                            ; preds = %13306
  %13312 = load i32, ptr %309, align 4, !tbaa !5
  %13313 = call ptr @__errno_location() #12
  store i32 %13312, ptr %13313, align 4, !tbaa !5
  %13314 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13315 = load i32, ptr @test_count, align 4, !tbaa !5
  %13316 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13317 = load i32, ptr %13316, align 4, !tbaa !5
  %13318 = call ptr @s2n_strerror(i32 noundef %13317, ptr noundef @.str.4)
  %13319 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13320 = load i32, ptr %13319, align 4, !tbaa !5
  %13321 = call ptr @s2n_strerror_debug(i32 noundef %13320, ptr noundef @.str.4)
  %13322 = call ptr @__errno_location() #12
  %13323 = load i32, ptr %13322, align 4, !tbaa !5
  %13324 = call ptr @strerror(i32 noundef %13323) #11
  %13325 = call ptr @__errno_location() #12
  %13326 = load i32, ptr %13325, align 4, !tbaa !5
  %13327 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13314, ptr noundef @.str.2, i32 noundef %13315, ptr noundef @.str.98, ptr noundef @.str.1, i32 noundef 614, ptr noundef %13318, ptr noundef %13321, ptr noundef %13324, i32 noundef %13326) #11
  br label %13345

13328:                                            ; preds = %13306, %13299
  %13329 = load i32, ptr %309, align 4, !tbaa !5
  %13330 = call ptr @__errno_location() #12
  store i32 %13329, ptr %13330, align 4, !tbaa !5
  %13331 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13332 = load i32, ptr @test_count, align 4, !tbaa !5
  %13333 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13334 = load i32, ptr %13333, align 4, !tbaa !5
  %13335 = call ptr @s2n_strerror(i32 noundef %13334, ptr noundef @.str.4)
  %13336 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13337 = load i32, ptr %13336, align 4, !tbaa !5
  %13338 = call ptr @s2n_strerror_debug(i32 noundef %13337, ptr noundef @.str.4)
  %13339 = call ptr @__errno_location() #12
  %13340 = load i32, ptr %13339, align 4, !tbaa !5
  %13341 = call ptr @strerror(i32 noundef %13340) #11
  %13342 = call ptr @__errno_location() #12
  %13343 = load i32, ptr %13342, align 4, !tbaa !5
  %13344 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13331, ptr noundef @.str.5, i32 noundef %13332, ptr noundef @.str.98, ptr noundef @.str.1, i32 noundef 614, ptr noundef %13335, ptr noundef %13338, ptr noundef %13341, i32 noundef %13343) #11
  br label %13345

13345:                                            ; preds = %13328, %13311
  call void @llvm.lifetime.end.p0(i64 4, ptr %309) #11
  br label %13346

13346:                                            ; preds = %13345
  br label %13347

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

13348:                                            ; No predecessors!
  br label %13349

13349:                                            ; preds = %13348
  br label %13350

13350:                                            ; preds = %13349, %13291
  br label %13351

13351:                                            ; preds = %13350
  br label %13352

13352:                                            ; preds = %13351
  br label %13353

13353:                                            ; preds = %13352
  %13354 = load i32, ptr @test_count, align 4, !tbaa !5
  %13355 = add nsw i32 %13354, 1
  store i32 %13355, ptr @test_count, align 4, !tbaa !5
  %13356 = load ptr, ptr %293, align 8, !tbaa !9
  %13357 = getelementptr inbounds %struct.s2n_connection, ptr %13356, i32 0, i32 94
  %13358 = call zeroext i1 @s2n_atomic_flag_test(ptr noundef %13357)
  br i1 %13358, label %13412, label %13359

13359:                                            ; preds = %13353
  br label %13360

13360:                                            ; preds = %13359
  br label %13361

13361:                                            ; preds = %13360
  call void @llvm.lifetime.start.p0(i64 4, ptr %310) #11
  %13362 = call ptr @__errno_location() #12
  %13363 = load i32, ptr %13362, align 4, !tbaa !5
  store i32 %13363, ptr %310, align 4, !tbaa !5
  %13364 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13365 = call i32 @s2n_print_stacktrace(ptr noundef %13364)
  %13366 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13367 = trunc i8 %13366 to i1
  br i1 %13367, label %13368, label %13390

13368:                                            ; preds = %13361
  %13369 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13370 = call i32 @fileno(ptr noundef %13369) #11
  %13371 = call i32 @isatty(i32 noundef %13370) #11
  %13372 = icmp ne i32 %13371, 0
  br i1 %13372, label %13373, label %13390

13373:                                            ; preds = %13368
  %13374 = load i32, ptr %310, align 4, !tbaa !5
  %13375 = call ptr @__errno_location() #12
  store i32 %13374, ptr %13375, align 4, !tbaa !5
  %13376 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13377 = load i32, ptr @test_count, align 4, !tbaa !5
  %13378 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13379 = load i32, ptr %13378, align 4, !tbaa !5
  %13380 = call ptr @s2n_strerror(i32 noundef %13379, ptr noundef @.str.4)
  %13381 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13382 = load i32, ptr %13381, align 4, !tbaa !5
  %13383 = call ptr @s2n_strerror_debug(i32 noundef %13382, ptr noundef @.str.4)
  %13384 = call ptr @__errno_location() #12
  %13385 = load i32, ptr %13384, align 4, !tbaa !5
  %13386 = call ptr @strerror(i32 noundef %13385) #11
  %13387 = call ptr @__errno_location() #12
  %13388 = load i32, ptr %13387, align 4, !tbaa !5
  %13389 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13376, ptr noundef @.str.2, i32 noundef %13377, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 615, ptr noundef %13380, ptr noundef %13383, ptr noundef %13386, i32 noundef %13388) #11
  br label %13407

13390:                                            ; preds = %13368, %13361
  %13391 = load i32, ptr %310, align 4, !tbaa !5
  %13392 = call ptr @__errno_location() #12
  store i32 %13391, ptr %13392, align 4, !tbaa !5
  %13393 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13394 = load i32, ptr @test_count, align 4, !tbaa !5
  %13395 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13396 = load i32, ptr %13395, align 4, !tbaa !5
  %13397 = call ptr @s2n_strerror(i32 noundef %13396, ptr noundef @.str.4)
  %13398 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13399 = load i32, ptr %13398, align 4, !tbaa !5
  %13400 = call ptr @s2n_strerror_debug(i32 noundef %13399, ptr noundef @.str.4)
  %13401 = call ptr @__errno_location() #12
  %13402 = load i32, ptr %13401, align 4, !tbaa !5
  %13403 = call ptr @strerror(i32 noundef %13402) #11
  %13404 = call ptr @__errno_location() #12
  %13405 = load i32, ptr %13404, align 4, !tbaa !5
  %13406 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13393, ptr noundef @.str.5, i32 noundef %13394, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 615, ptr noundef %13397, ptr noundef %13400, ptr noundef %13403, i32 noundef %13405) #11
  br label %13407

13407:                                            ; preds = %13390, %13373
  call void @llvm.lifetime.end.p0(i64 4, ptr %310) #11
  br label %13408

13408:                                            ; preds = %13407
  br label %13409

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

13410:                                            ; No predecessors!
  br label %13411

13411:                                            ; preds = %13410
  br label %13412

13412:                                            ; preds = %13411, %13353
  br label %13413

13413:                                            ; preds = %13412
  br label %13414

13414:                                            ; preds = %13413
  br label %13415

13415:                                            ; preds = %13414
  %13416 = load i32, ptr @test_count, align 4, !tbaa !5
  %13417 = add nsw i32 %13416, 1
  store i32 %13417, ptr @test_count, align 4, !tbaa !5
  %13418 = getelementptr inbounds [8 x i8], ptr %291, i64 0, i64 0
  %13419 = call i32 @s2n_write_uint64(i64 noundef 0, ptr noundef %13418)
  %13420 = getelementptr inbounds %struct.s2n_result, ptr %311, i32 0, i32 0
  store i32 %13419, ptr %13420, align 4
  %13421 = getelementptr inbounds %struct.s2n_result, ptr %311, i32 0, i32 0
  %13422 = load i32, ptr %13421, align 4
  %13423 = call zeroext i1 @s2n_result_is_ok(i32 %13422)
  br i1 %13423, label %13477, label %13424

13424:                                            ; preds = %13415
  br label %13425

13425:                                            ; preds = %13424
  br label %13426

13426:                                            ; preds = %13425
  call void @llvm.lifetime.start.p0(i64 4, ptr %312) #11
  %13427 = call ptr @__errno_location() #12
  %13428 = load i32, ptr %13427, align 4, !tbaa !5
  store i32 %13428, ptr %312, align 4, !tbaa !5
  %13429 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13430 = call i32 @s2n_print_stacktrace(ptr noundef %13429)
  %13431 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13432 = trunc i8 %13431 to i1
  br i1 %13432, label %13433, label %13455

13433:                                            ; preds = %13426
  %13434 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13435 = call i32 @fileno(ptr noundef %13434) #11
  %13436 = call i32 @isatty(i32 noundef %13435) #11
  %13437 = icmp ne i32 %13436, 0
  br i1 %13437, label %13438, label %13455

13438:                                            ; preds = %13433
  %13439 = load i32, ptr %312, align 4, !tbaa !5
  %13440 = call ptr @__errno_location() #12
  store i32 %13439, ptr %13440, align 4, !tbaa !5
  %13441 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13442 = load i32, ptr @test_count, align 4, !tbaa !5
  %13443 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13444 = load i32, ptr %13443, align 4, !tbaa !5
  %13445 = call ptr @s2n_strerror(i32 noundef %13444, ptr noundef @.str.4)
  %13446 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13447 = load i32, ptr %13446, align 4, !tbaa !5
  %13448 = call ptr @s2n_strerror_debug(i32 noundef %13447, ptr noundef @.str.4)
  %13449 = call ptr @__errno_location() #12
  %13450 = load i32, ptr %13449, align 4, !tbaa !5
  %13451 = call ptr @strerror(i32 noundef %13450) #11
  %13452 = call ptr @__errno_location() #12
  %13453 = load i32, ptr %13452, align 4, !tbaa !5
  %13454 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13441, ptr noundef @.str.2, i32 noundef %13442, ptr noundef @.str.97, ptr noundef @.str.1, i32 noundef 618, ptr noundef %13445, ptr noundef %13448, ptr noundef %13451, i32 noundef %13453) #11
  br label %13472

13455:                                            ; preds = %13433, %13426
  %13456 = load i32, ptr %312, align 4, !tbaa !5
  %13457 = call ptr @__errno_location() #12
  store i32 %13456, ptr %13457, align 4, !tbaa !5
  %13458 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13459 = load i32, ptr @test_count, align 4, !tbaa !5
  %13460 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13461 = load i32, ptr %13460, align 4, !tbaa !5
  %13462 = call ptr @s2n_strerror(i32 noundef %13461, ptr noundef @.str.4)
  %13463 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13464 = load i32, ptr %13463, align 4, !tbaa !5
  %13465 = call ptr @s2n_strerror_debug(i32 noundef %13464, ptr noundef @.str.4)
  %13466 = call ptr @__errno_location() #12
  %13467 = load i32, ptr %13466, align 4, !tbaa !5
  %13468 = call ptr @strerror(i32 noundef %13467) #11
  %13469 = call ptr @__errno_location() #12
  %13470 = load i32, ptr %13469, align 4, !tbaa !5
  %13471 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13458, ptr noundef @.str.5, i32 noundef %13459, ptr noundef @.str.97, ptr noundef @.str.1, i32 noundef 618, ptr noundef %13462, ptr noundef %13465, ptr noundef %13468, i32 noundef %13470) #11
  br label %13472

13472:                                            ; preds = %13455, %13438
  call void @llvm.lifetime.end.p0(i64 4, ptr %312) #11
  br label %13473

13473:                                            ; preds = %13472
  br label %13474

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

13475:                                            ; No predecessors!
  br label %13476

13476:                                            ; preds = %13475
  br label %13477

13477:                                            ; preds = %13476, %13415
  br label %13478

13478:                                            ; preds = %13477
  br label %13479

13479:                                            ; preds = %13478
  br label %13480

13480:                                            ; preds = %13479
  %13481 = load i32, ptr @test_count, align 4, !tbaa !5
  %13482 = add nsw i32 %13481, 1
  store i32 %13482, ptr @test_count, align 4, !tbaa !5
  %13483 = load ptr, ptr %293, align 8, !tbaa !9
  %13484 = call i32 @s2n_check_record_limit(ptr noundef %13483, ptr noundef %290)
  %13485 = icmp eq i32 %13484, -1
  br i1 %13485, label %13486, label %13539

13486:                                            ; preds = %13480
  br label %13487

13487:                                            ; preds = %13486
  br label %13488

13488:                                            ; preds = %13487
  call void @llvm.lifetime.start.p0(i64 4, ptr %313) #11
  %13489 = call ptr @__errno_location() #12
  %13490 = load i32, ptr %13489, align 4, !tbaa !5
  store i32 %13490, ptr %313, align 4, !tbaa !5
  %13491 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13492 = call i32 @s2n_print_stacktrace(ptr noundef %13491)
  %13493 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13494 = trunc i8 %13493 to i1
  br i1 %13494, label %13495, label %13517

13495:                                            ; preds = %13488
  %13496 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13497 = call i32 @fileno(ptr noundef %13496) #11
  %13498 = call i32 @isatty(i32 noundef %13497) #11
  %13499 = icmp ne i32 %13498, 0
  br i1 %13499, label %13500, label %13517

13500:                                            ; preds = %13495
  %13501 = load i32, ptr %313, align 4, !tbaa !5
  %13502 = call ptr @__errno_location() #12
  store i32 %13501, ptr %13502, align 4, !tbaa !5
  %13503 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13504 = load i32, ptr @test_count, align 4, !tbaa !5
  %13505 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13506 = load i32, ptr %13505, align 4, !tbaa !5
  %13507 = call ptr @s2n_strerror(i32 noundef %13506, ptr noundef @.str.4)
  %13508 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13509 = load i32, ptr %13508, align 4, !tbaa !5
  %13510 = call ptr @s2n_strerror_debug(i32 noundef %13509, ptr noundef @.str.4)
  %13511 = call ptr @__errno_location() #12
  %13512 = load i32, ptr %13511, align 4, !tbaa !5
  %13513 = call ptr @strerror(i32 noundef %13512) #11
  %13514 = call ptr @__errno_location() #12
  %13515 = load i32, ptr %13514, align 4, !tbaa !5
  %13516 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13503, ptr noundef @.str.2, i32 noundef %13504, ptr noundef @.str.98, ptr noundef @.str.1, i32 noundef 619, ptr noundef %13507, ptr noundef %13510, ptr noundef %13513, i32 noundef %13515) #11
  br label %13534

13517:                                            ; preds = %13495, %13488
  %13518 = load i32, ptr %313, align 4, !tbaa !5
  %13519 = call ptr @__errno_location() #12
  store i32 %13518, ptr %13519, align 4, !tbaa !5
  %13520 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13521 = load i32, ptr @test_count, align 4, !tbaa !5
  %13522 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13523 = load i32, ptr %13522, align 4, !tbaa !5
  %13524 = call ptr @s2n_strerror(i32 noundef %13523, ptr noundef @.str.4)
  %13525 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13526 = load i32, ptr %13525, align 4, !tbaa !5
  %13527 = call ptr @s2n_strerror_debug(i32 noundef %13526, ptr noundef @.str.4)
  %13528 = call ptr @__errno_location() #12
  %13529 = load i32, ptr %13528, align 4, !tbaa !5
  %13530 = call ptr @strerror(i32 noundef %13529) #11
  %13531 = call ptr @__errno_location() #12
  %13532 = load i32, ptr %13531, align 4, !tbaa !5
  %13533 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13520, ptr noundef @.str.5, i32 noundef %13521, ptr noundef @.str.98, ptr noundef @.str.1, i32 noundef 619, ptr noundef %13524, ptr noundef %13527, ptr noundef %13530, i32 noundef %13532) #11
  br label %13534

13534:                                            ; preds = %13517, %13500
  call void @llvm.lifetime.end.p0(i64 4, ptr %313) #11
  br label %13535

13535:                                            ; preds = %13534
  br label %13536

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

13537:                                            ; No predecessors!
  br label %13538

13538:                                            ; preds = %13537
  br label %13539

13539:                                            ; preds = %13538, %13480
  br label %13540

13540:                                            ; preds = %13539
  br label %13541

13541:                                            ; preds = %13540
  br label %13542

13542:                                            ; preds = %13541
  %13543 = load i32, ptr @test_count, align 4, !tbaa !5
  %13544 = add nsw i32 %13543, 1
  store i32 %13544, ptr @test_count, align 4, !tbaa !5
  %13545 = load ptr, ptr %293, align 8, !tbaa !9
  %13546 = getelementptr inbounds %struct.s2n_connection, ptr %13545, i32 0, i32 94
  %13547 = call zeroext i1 @s2n_atomic_flag_test(ptr noundef %13546)
  br i1 %13547, label %13601, label %13548

13548:                                            ; preds = %13542
  br label %13549

13549:                                            ; preds = %13548
  br label %13550

13550:                                            ; preds = %13549
  call void @llvm.lifetime.start.p0(i64 4, ptr %314) #11
  %13551 = call ptr @__errno_location() #12
  %13552 = load i32, ptr %13551, align 4, !tbaa !5
  store i32 %13552, ptr %314, align 4, !tbaa !5
  %13553 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13554 = call i32 @s2n_print_stacktrace(ptr noundef %13553)
  %13555 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13556 = trunc i8 %13555 to i1
  br i1 %13556, label %13557, label %13579

13557:                                            ; preds = %13550
  %13558 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13559 = call i32 @fileno(ptr noundef %13558) #11
  %13560 = call i32 @isatty(i32 noundef %13559) #11
  %13561 = icmp ne i32 %13560, 0
  br i1 %13561, label %13562, label %13579

13562:                                            ; preds = %13557
  %13563 = load i32, ptr %314, align 4, !tbaa !5
  %13564 = call ptr @__errno_location() #12
  store i32 %13563, ptr %13564, align 4, !tbaa !5
  %13565 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13566 = load i32, ptr @test_count, align 4, !tbaa !5
  %13567 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13568 = load i32, ptr %13567, align 4, !tbaa !5
  %13569 = call ptr @s2n_strerror(i32 noundef %13568, ptr noundef @.str.4)
  %13570 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13571 = load i32, ptr %13570, align 4, !tbaa !5
  %13572 = call ptr @s2n_strerror_debug(i32 noundef %13571, ptr noundef @.str.4)
  %13573 = call ptr @__errno_location() #12
  %13574 = load i32, ptr %13573, align 4, !tbaa !5
  %13575 = call ptr @strerror(i32 noundef %13574) #11
  %13576 = call ptr @__errno_location() #12
  %13577 = load i32, ptr %13576, align 4, !tbaa !5
  %13578 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13565, ptr noundef @.str.2, i32 noundef %13566, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 620, ptr noundef %13569, ptr noundef %13572, ptr noundef %13575, i32 noundef %13577) #11
  br label %13596

13579:                                            ; preds = %13557, %13550
  %13580 = load i32, ptr %314, align 4, !tbaa !5
  %13581 = call ptr @__errno_location() #12
  store i32 %13580, ptr %13581, align 4, !tbaa !5
  %13582 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13583 = load i32, ptr @test_count, align 4, !tbaa !5
  %13584 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13585 = load i32, ptr %13584, align 4, !tbaa !5
  %13586 = call ptr @s2n_strerror(i32 noundef %13585, ptr noundef @.str.4)
  %13587 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13588 = load i32, ptr %13587, align 4, !tbaa !5
  %13589 = call ptr @s2n_strerror_debug(i32 noundef %13588, ptr noundef @.str.4)
  %13590 = call ptr @__errno_location() #12
  %13591 = load i32, ptr %13590, align 4, !tbaa !5
  %13592 = call ptr @strerror(i32 noundef %13591) #11
  %13593 = call ptr @__errno_location() #12
  %13594 = load i32, ptr %13593, align 4, !tbaa !5
  %13595 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13582, ptr noundef @.str.5, i32 noundef %13583, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 620, ptr noundef %13586, ptr noundef %13589, ptr noundef %13592, i32 noundef %13594) #11
  br label %13596

13596:                                            ; preds = %13579, %13562
  call void @llvm.lifetime.end.p0(i64 4, ptr %314) #11
  br label %13597

13597:                                            ; preds = %13596
  br label %13598

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

13599:                                            ; No predecessors!
  br label %13600

13600:                                            ; preds = %13599
  br label %13601

13601:                                            ; preds = %13600, %13542
  br label %13602

13602:                                            ; preds = %13601
  br label %13603

13603:                                            ; preds = %13602
  %13604 = call i32 @s2n_connection_ptr_free(ptr noundef %293)
  %13605 = getelementptr inbounds %struct.s2n_result, ptr %315, i32 0, i32 0
  store i32 %13604, ptr %13605, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %293) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %291) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %290) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %316) #11
  store i64 1034, ptr %316, align 8, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 8, ptr %317) #11
  %13606 = call ptr @s2n_config_new()
  store ptr %13606, ptr %317, align 8, !tbaa !9
  br label %13607

13607:                                            ; preds = %13603
  br label %13608

13608:                                            ; preds = %13607
  br label %13609

13609:                                            ; preds = %13608
  %13610 = load i32, ptr @test_count, align 4, !tbaa !5
  %13611 = add nsw i32 %13610, 1
  store i32 %13611, ptr @test_count, align 4, !tbaa !5
  %13612 = load ptr, ptr %317, align 8, !tbaa !9
  %13613 = call i32 @s2n_config_set_send_buffer_size(ptr noundef %13612, i32 noundef 1033)
  %13614 = icmp eq i32 %13613, -1
  br i1 %13614, label %13668, label %13615

13615:                                            ; preds = %13609
  br label %13616

13616:                                            ; preds = %13615
  br label %13617

13617:                                            ; preds = %13616
  call void @llvm.lifetime.start.p0(i64 4, ptr %318) #11
  %13618 = call ptr @__errno_location() #12
  %13619 = load i32, ptr %13618, align 4, !tbaa !5
  store i32 %13619, ptr %318, align 4, !tbaa !5
  %13620 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13621 = call i32 @s2n_print_stacktrace(ptr noundef %13620)
  %13622 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13623 = trunc i8 %13622 to i1
  br i1 %13623, label %13624, label %13646

13624:                                            ; preds = %13617
  %13625 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13626 = call i32 @fileno(ptr noundef %13625) #11
  %13627 = call i32 @isatty(i32 noundef %13626) #11
  %13628 = icmp ne i32 %13627, 0
  br i1 %13628, label %13629, label %13646

13629:                                            ; preds = %13624
  %13630 = load i32, ptr %318, align 4, !tbaa !5
  %13631 = call ptr @__errno_location() #12
  store i32 %13630, ptr %13631, align 4, !tbaa !5
  %13632 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13633 = load i32, ptr @test_count, align 4, !tbaa !5
  %13634 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13635 = load i32, ptr %13634, align 4, !tbaa !5
  %13636 = call ptr @s2n_strerror(i32 noundef %13635, ptr noundef @.str.4)
  %13637 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13638 = load i32, ptr %13637, align 4, !tbaa !5
  %13639 = call ptr @s2n_strerror_debug(i32 noundef %13638, ptr noundef @.str.4)
  %13640 = call ptr @__errno_location() #12
  %13641 = load i32, ptr %13640, align 4, !tbaa !5
  %13642 = call ptr @strerror(i32 noundef %13641) #11
  %13643 = call ptr @__errno_location() #12
  %13644 = load i32, ptr %13643, align 4, !tbaa !5
  %13645 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13632, ptr noundef @.str.2, i32 noundef %13633, ptr noundef @.str.106, ptr noundef @.str.1, i32 noundef 634, ptr noundef %13636, ptr noundef %13639, ptr noundef %13642, i32 noundef %13644) #11
  br label %13663

13646:                                            ; preds = %13624, %13617
  %13647 = load i32, ptr %318, align 4, !tbaa !5
  %13648 = call ptr @__errno_location() #12
  store i32 %13647, ptr %13648, align 4, !tbaa !5
  %13649 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13650 = load i32, ptr @test_count, align 4, !tbaa !5
  %13651 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13652 = load i32, ptr %13651, align 4, !tbaa !5
  %13653 = call ptr @s2n_strerror(i32 noundef %13652, ptr noundef @.str.4)
  %13654 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13655 = load i32, ptr %13654, align 4, !tbaa !5
  %13656 = call ptr @s2n_strerror_debug(i32 noundef %13655, ptr noundef @.str.4)
  %13657 = call ptr @__errno_location() #12
  %13658 = load i32, ptr %13657, align 4, !tbaa !5
  %13659 = call ptr @strerror(i32 noundef %13658) #11
  %13660 = call ptr @__errno_location() #12
  %13661 = load i32, ptr %13660, align 4, !tbaa !5
  %13662 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13649, ptr noundef @.str.5, i32 noundef %13650, ptr noundef @.str.106, ptr noundef @.str.1, i32 noundef 634, ptr noundef %13653, ptr noundef %13656, ptr noundef %13659, i32 noundef %13661) #11
  br label %13663

13663:                                            ; preds = %13646, %13629
  call void @llvm.lifetime.end.p0(i64 4, ptr %318) #11
  br label %13664

13664:                                            ; preds = %13663
  br label %13665

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

13666:                                            ; No predecessors!
  br label %13667

13667:                                            ; preds = %13666
  br label %13668

13668:                                            ; preds = %13667, %13609
  br label %13669

13669:                                            ; preds = %13668
  br label %13670

13670:                                            ; preds = %13669
  br label %13671

13671:                                            ; preds = %13670
  %13672 = load i32, ptr @test_count, align 4, !tbaa !5
  %13673 = add nsw i32 %13672, 1
  store i32 %13673, ptr @test_count, align 4, !tbaa !5
  %13674 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13675 = load i32, ptr %13674, align 4, !tbaa !5
  %13676 = icmp eq i32 %13675, 469762089
  br i1 %13676, label %13730, label %13677

13677:                                            ; preds = %13671
  br label %13678

13678:                                            ; preds = %13677
  br label %13679

13679:                                            ; preds = %13678
  call void @llvm.lifetime.start.p0(i64 4, ptr %319) #11
  %13680 = call ptr @__errno_location() #12
  %13681 = load i32, ptr %13680, align 4, !tbaa !5
  store i32 %13681, ptr %319, align 4, !tbaa !5
  %13682 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13683 = call i32 @s2n_print_stacktrace(ptr noundef %13682)
  %13684 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13685 = trunc i8 %13684 to i1
  br i1 %13685, label %13686, label %13708

13686:                                            ; preds = %13679
  %13687 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13688 = call i32 @fileno(ptr noundef %13687) #11
  %13689 = call i32 @isatty(i32 noundef %13688) #11
  %13690 = icmp ne i32 %13689, 0
  br i1 %13690, label %13691, label %13708

13691:                                            ; preds = %13686
  %13692 = load i32, ptr %319, align 4, !tbaa !5
  %13693 = call ptr @__errno_location() #12
  store i32 %13692, ptr %13693, align 4, !tbaa !5
  %13694 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13695 = load i32, ptr @test_count, align 4, !tbaa !5
  %13696 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13697 = load i32, ptr %13696, align 4, !tbaa !5
  %13698 = call ptr @s2n_strerror(i32 noundef %13697, ptr noundef @.str.4)
  %13699 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13700 = load i32, ptr %13699, align 4, !tbaa !5
  %13701 = call ptr @s2n_strerror_debug(i32 noundef %13700, ptr noundef @.str.4)
  %13702 = call ptr @__errno_location() #12
  %13703 = load i32, ptr %13702, align 4, !tbaa !5
  %13704 = call ptr @strerror(i32 noundef %13703) #11
  %13705 = call ptr @__errno_location() #12
  %13706 = load i32, ptr %13705, align 4, !tbaa !5
  %13707 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13694, ptr noundef @.str.2, i32 noundef %13695, ptr noundef @.str.107, ptr noundef @.str.1, i32 noundef 634, ptr noundef %13698, ptr noundef %13701, ptr noundef %13704, i32 noundef %13706) #11
  br label %13725

13708:                                            ; preds = %13686, %13679
  %13709 = load i32, ptr %319, align 4, !tbaa !5
  %13710 = call ptr @__errno_location() #12
  store i32 %13709, ptr %13710, align 4, !tbaa !5
  %13711 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13712 = load i32, ptr @test_count, align 4, !tbaa !5
  %13713 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13714 = load i32, ptr %13713, align 4, !tbaa !5
  %13715 = call ptr @s2n_strerror(i32 noundef %13714, ptr noundef @.str.4)
  %13716 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13717 = load i32, ptr %13716, align 4, !tbaa !5
  %13718 = call ptr @s2n_strerror_debug(i32 noundef %13717, ptr noundef @.str.4)
  %13719 = call ptr @__errno_location() #12
  %13720 = load i32, ptr %13719, align 4, !tbaa !5
  %13721 = call ptr @strerror(i32 noundef %13720) #11
  %13722 = call ptr @__errno_location() #12
  %13723 = load i32, ptr %13722, align 4, !tbaa !5
  %13724 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13711, ptr noundef @.str.5, i32 noundef %13712, ptr noundef @.str.107, ptr noundef @.str.1, i32 noundef 634, ptr noundef %13715, ptr noundef %13718, ptr noundef %13721, i32 noundef %13723) #11
  br label %13725

13725:                                            ; preds = %13708, %13691
  call void @llvm.lifetime.end.p0(i64 4, ptr %319) #11
  br label %13726

13726:                                            ; preds = %13725
  br label %13727

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

13728:                                            ; No predecessors!
  br label %13729

13729:                                            ; preds = %13728
  br label %13730

13730:                                            ; preds = %13729, %13671
  br label %13731

13731:                                            ; preds = %13730
  br label %13732

13732:                                            ; preds = %13731
  br label %13733

13733:                                            ; preds = %13732
  %13734 = load i32, ptr @test_count, align 4, !tbaa !5
  %13735 = add nsw i32 %13734, 1
  store i32 %13735, ptr @test_count, align 4, !tbaa !5
  %13736 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13737 = load i32, ptr %13736, align 4, !tbaa !5
  %13738 = call ptr @s2n_strerror_debug(i32 noundef %13737, ptr noundef @.str.4)
  %13739 = icmp eq ptr %13738, null
  br i1 %13739, label %13740, label %13793

13740:                                            ; preds = %13733
  br label %13741

13741:                                            ; preds = %13740
  br label %13742

13742:                                            ; preds = %13741
  call void @llvm.lifetime.start.p0(i64 4, ptr %320) #11
  %13743 = call ptr @__errno_location() #12
  %13744 = load i32, ptr %13743, align 4, !tbaa !5
  store i32 %13744, ptr %320, align 4, !tbaa !5
  %13745 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13746 = call i32 @s2n_print_stacktrace(ptr noundef %13745)
  %13747 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13748 = trunc i8 %13747 to i1
  br i1 %13748, label %13749, label %13771

13749:                                            ; preds = %13742
  %13750 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13751 = call i32 @fileno(ptr noundef %13750) #11
  %13752 = call i32 @isatty(i32 noundef %13751) #11
  %13753 = icmp ne i32 %13752, 0
  br i1 %13753, label %13754, label %13771

13754:                                            ; preds = %13749
  %13755 = load i32, ptr %320, align 4, !tbaa !5
  %13756 = call ptr @__errno_location() #12
  store i32 %13755, ptr %13756, align 4, !tbaa !5
  %13757 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13758 = load i32, ptr @test_count, align 4, !tbaa !5
  %13759 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13760 = load i32, ptr %13759, align 4, !tbaa !5
  %13761 = call ptr @s2n_strerror(i32 noundef %13760, ptr noundef @.str.4)
  %13762 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13763 = load i32, ptr %13762, align 4, !tbaa !5
  %13764 = call ptr @s2n_strerror_debug(i32 noundef %13763, ptr noundef @.str.4)
  %13765 = call ptr @__errno_location() #12
  %13766 = load i32, ptr %13765, align 4, !tbaa !5
  %13767 = call ptr @strerror(i32 noundef %13766) #11
  %13768 = call ptr @__errno_location() #12
  %13769 = load i32, ptr %13768, align 4, !tbaa !5
  %13770 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13757, ptr noundef @.str.2, i32 noundef %13758, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 634, ptr noundef %13761, ptr noundef %13764, ptr noundef %13767, i32 noundef %13769) #11
  br label %13788

13771:                                            ; preds = %13749, %13742
  %13772 = load i32, ptr %320, align 4, !tbaa !5
  %13773 = call ptr @__errno_location() #12
  store i32 %13772, ptr %13773, align 4, !tbaa !5
  %13774 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13775 = load i32, ptr @test_count, align 4, !tbaa !5
  %13776 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13777 = load i32, ptr %13776, align 4, !tbaa !5
  %13778 = call ptr @s2n_strerror(i32 noundef %13777, ptr noundef @.str.4)
  %13779 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13780 = load i32, ptr %13779, align 4, !tbaa !5
  %13781 = call ptr @s2n_strerror_debug(i32 noundef %13780, ptr noundef @.str.4)
  %13782 = call ptr @__errno_location() #12
  %13783 = load i32, ptr %13782, align 4, !tbaa !5
  %13784 = call ptr @strerror(i32 noundef %13783) #11
  %13785 = call ptr @__errno_location() #12
  %13786 = load i32, ptr %13785, align 4, !tbaa !5
  %13787 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13774, ptr noundef @.str.5, i32 noundef %13775, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 634, ptr noundef %13778, ptr noundef %13781, ptr noundef %13784, i32 noundef %13786) #11
  br label %13788

13788:                                            ; preds = %13771, %13754
  call void @llvm.lifetime.end.p0(i64 4, ptr %320) #11
  br label %13789

13789:                                            ; preds = %13788
  br label %13790

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

13791:                                            ; No predecessors!
  br label %13792

13792:                                            ; preds = %13791
  br label %13793

13793:                                            ; preds = %13792, %13733
  br label %13794

13794:                                            ; preds = %13793
  br label %13795

13795:                                            ; preds = %13794
  br label %13796

13796:                                            ; preds = %13795
  br label %13797

13797:                                            ; preds = %13796
  br label %13798

13798:                                            ; preds = %13797
  %13799 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %13799, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %13800 = call ptr @__errno_location() #12
  store i32 0, ptr %13800, align 4, !tbaa !5
  br label %13801

13801:                                            ; preds = %13798
  br label %13802

13802:                                            ; preds = %13801
  br label %13803

13803:                                            ; preds = %13802
  br label %13804

13804:                                            ; preds = %13803
  %13805 = call i32 @s2n_config_ptr_free(ptr noundef %317)
  %13806 = getelementptr inbounds %struct.s2n_result, ptr %321, i32 0, i32 0
  store i32 %13805, ptr %13806, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %317) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %322) #11
  %13807 = call ptr @s2n_config_new()
  store ptr %13807, ptr %322, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %323) #11
  store i32 0, ptr %323, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %324) #11
  %13808 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %13808, ptr %324, align 8, !tbaa !9
  br label %13809

13809:                                            ; preds = %13804
  %13810 = load i32, ptr @test_count, align 4, !tbaa !5
  %13811 = add nsw i32 %13810, 1
  store i32 %13811, ptr @test_count, align 4, !tbaa !5
  %13812 = load ptr, ptr %324, align 8, !tbaa !9
  %13813 = call i32 @s2n_connection_set_secrets(ptr noundef %13812)
  %13814 = getelementptr inbounds %struct.s2n_result, ptr %325, i32 0, i32 0
  store i32 %13813, ptr %13814, align 4
  %13815 = getelementptr inbounds %struct.s2n_result, ptr %325, i32 0, i32 0
  %13816 = load i32, ptr %13815, align 4
  %13817 = call zeroext i1 @s2n_result_is_ok(i32 %13816)
  br i1 %13817, label %13871, label %13818

13818:                                            ; preds = %13809
  br label %13819

13819:                                            ; preds = %13818
  br label %13820

13820:                                            ; preds = %13819
  call void @llvm.lifetime.start.p0(i64 4, ptr %326) #11
  %13821 = call ptr @__errno_location() #12
  %13822 = load i32, ptr %13821, align 4, !tbaa !5
  store i32 %13822, ptr %326, align 4, !tbaa !5
  %13823 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13824 = call i32 @s2n_print_stacktrace(ptr noundef %13823)
  %13825 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13826 = trunc i8 %13825 to i1
  br i1 %13826, label %13827, label %13849

13827:                                            ; preds = %13820
  %13828 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13829 = call i32 @fileno(ptr noundef %13828) #11
  %13830 = call i32 @isatty(i32 noundef %13829) #11
  %13831 = icmp ne i32 %13830, 0
  br i1 %13831, label %13832, label %13849

13832:                                            ; preds = %13827
  %13833 = load i32, ptr %326, align 4, !tbaa !5
  %13834 = call ptr @__errno_location() #12
  store i32 %13833, ptr %13834, align 4, !tbaa !5
  %13835 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13836 = load i32, ptr @test_count, align 4, !tbaa !5
  %13837 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13838 = load i32, ptr %13837, align 4, !tbaa !5
  %13839 = call ptr @s2n_strerror(i32 noundef %13838, ptr noundef @.str.4)
  %13840 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13841 = load i32, ptr %13840, align 4, !tbaa !5
  %13842 = call ptr @s2n_strerror_debug(i32 noundef %13841, ptr noundef @.str.4)
  %13843 = call ptr @__errno_location() #12
  %13844 = load i32, ptr %13843, align 4, !tbaa !5
  %13845 = call ptr @strerror(i32 noundef %13844) #11
  %13846 = call ptr @__errno_location() #12
  %13847 = load i32, ptr %13846, align 4, !tbaa !5
  %13848 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13835, ptr noundef @.str.2, i32 noundef %13836, ptr noundef @.str.108, ptr noundef @.str.1, i32 noundef 643, ptr noundef %13839, ptr noundef %13842, ptr noundef %13845, i32 noundef %13847) #11
  br label %13866

13849:                                            ; preds = %13827, %13820
  %13850 = load i32, ptr %326, align 4, !tbaa !5
  %13851 = call ptr @__errno_location() #12
  store i32 %13850, ptr %13851, align 4, !tbaa !5
  %13852 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13853 = load i32, ptr @test_count, align 4, !tbaa !5
  %13854 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13855 = load i32, ptr %13854, align 4, !tbaa !5
  %13856 = call ptr @s2n_strerror(i32 noundef %13855, ptr noundef @.str.4)
  %13857 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13858 = load i32, ptr %13857, align 4, !tbaa !5
  %13859 = call ptr @s2n_strerror_debug(i32 noundef %13858, ptr noundef @.str.4)
  %13860 = call ptr @__errno_location() #12
  %13861 = load i32, ptr %13860, align 4, !tbaa !5
  %13862 = call ptr @strerror(i32 noundef %13861) #11
  %13863 = call ptr @__errno_location() #12
  %13864 = load i32, ptr %13863, align 4, !tbaa !5
  %13865 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13852, ptr noundef @.str.5, i32 noundef %13853, ptr noundef @.str.108, ptr noundef @.str.1, i32 noundef 643, ptr noundef %13856, ptr noundef %13859, ptr noundef %13862, i32 noundef %13864) #11
  br label %13866

13866:                                            ; preds = %13849, %13832
  call void @llvm.lifetime.end.p0(i64 4, ptr %326) #11
  br label %13867

13867:                                            ; preds = %13866
  br label %13868

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

13869:                                            ; No predecessors!
  br label %13870

13870:                                            ; preds = %13869
  br label %13871

13871:                                            ; preds = %13870, %13809
  br label %13872

13872:                                            ; preds = %13871
  br label %13873

13873:                                            ; preds = %13872
  %13874 = load ptr, ptr %324, align 8, !tbaa !9
  %13875 = getelementptr inbounds %struct.s2n_connection, ptr %13874, i32 0, i32 23
  store i8 34, ptr %13875, align 4, !tbaa !26
  call void @llvm.lifetime.start.p0(i64 40, ptr %327) #11
  call void @llvm.memset.p0.i64(ptr align 8 %327, i8 0, i64 40, i1 false)
  br label %13876

13876:                                            ; preds = %13873
  %13877 = load i32, ptr @test_count, align 4, !tbaa !5
  %13878 = add nsw i32 %13877, 1
  store i32 %13878, ptr @test_count, align 4, !tbaa !5
  %13879 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %327, i32 noundef 0)
  %13880 = icmp eq i32 %13879, -1
  br i1 %13880, label %13881, label %13934

13881:                                            ; preds = %13876
  br label %13882

13882:                                            ; preds = %13881
  br label %13883

13883:                                            ; preds = %13882
  call void @llvm.lifetime.start.p0(i64 4, ptr %328) #11
  %13884 = call ptr @__errno_location() #12
  %13885 = load i32, ptr %13884, align 4, !tbaa !5
  store i32 %13885, ptr %328, align 4, !tbaa !5
  %13886 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13887 = call i32 @s2n_print_stacktrace(ptr noundef %13886)
  %13888 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13889 = trunc i8 %13888 to i1
  br i1 %13889, label %13890, label %13912

13890:                                            ; preds = %13883
  %13891 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13892 = call i32 @fileno(ptr noundef %13891) #11
  %13893 = call i32 @isatty(i32 noundef %13892) #11
  %13894 = icmp ne i32 %13893, 0
  br i1 %13894, label %13895, label %13912

13895:                                            ; preds = %13890
  %13896 = load i32, ptr %328, align 4, !tbaa !5
  %13897 = call ptr @__errno_location() #12
  store i32 %13896, ptr %13897, align 4, !tbaa !5
  %13898 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13899 = load i32, ptr @test_count, align 4, !tbaa !5
  %13900 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13901 = load i32, ptr %13900, align 4, !tbaa !5
  %13902 = call ptr @s2n_strerror(i32 noundef %13901, ptr noundef @.str.4)
  %13903 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13904 = load i32, ptr %13903, align 4, !tbaa !5
  %13905 = call ptr @s2n_strerror_debug(i32 noundef %13904, ptr noundef @.str.4)
  %13906 = call ptr @__errno_location() #12
  %13907 = load i32, ptr %13906, align 4, !tbaa !5
  %13908 = call ptr @strerror(i32 noundef %13907) #11
  %13909 = call ptr @__errno_location() #12
  %13910 = load i32, ptr %13909, align 4, !tbaa !5
  %13911 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13898, ptr noundef @.str.2, i32 noundef %13899, ptr noundef @.str.65, ptr noundef @.str.1, i32 noundef 647, ptr noundef %13902, ptr noundef %13905, ptr noundef %13908, i32 noundef %13910) #11
  br label %13929

13912:                                            ; preds = %13890, %13883
  %13913 = load i32, ptr %328, align 4, !tbaa !5
  %13914 = call ptr @__errno_location() #12
  store i32 %13913, ptr %13914, align 4, !tbaa !5
  %13915 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13916 = load i32, ptr @test_count, align 4, !tbaa !5
  %13917 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13918 = load i32, ptr %13917, align 4, !tbaa !5
  %13919 = call ptr @s2n_strerror(i32 noundef %13918, ptr noundef @.str.4)
  %13920 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13921 = load i32, ptr %13920, align 4, !tbaa !5
  %13922 = call ptr @s2n_strerror_debug(i32 noundef %13921, ptr noundef @.str.4)
  %13923 = call ptr @__errno_location() #12
  %13924 = load i32, ptr %13923, align 4, !tbaa !5
  %13925 = call ptr @strerror(i32 noundef %13924) #11
  %13926 = call ptr @__errno_location() #12
  %13927 = load i32, ptr %13926, align 4, !tbaa !5
  %13928 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13915, ptr noundef @.str.5, i32 noundef %13916, ptr noundef @.str.65, ptr noundef @.str.1, i32 noundef 647, ptr noundef %13919, ptr noundef %13922, ptr noundef %13925, i32 noundef %13927) #11
  br label %13929

13929:                                            ; preds = %13912, %13895
  call void @llvm.lifetime.end.p0(i64 4, ptr %328) #11
  br label %13930

13930:                                            ; preds = %13929
  br label %13931

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

13932:                                            ; No predecessors!
  br label %13933

13933:                                            ; preds = %13932
  br label %13934

13934:                                            ; preds = %13933, %13876
  br label %13935

13935:                                            ; preds = %13934
  br label %13936

13936:                                            ; preds = %13935
  br label %13937

13937:                                            ; preds = %13936
  %13938 = load i32, ptr @test_count, align 4, !tbaa !5
  %13939 = add nsw i32 %13938, 1
  store i32 %13939, ptr @test_count, align 4, !tbaa !5
  %13940 = load ptr, ptr %324, align 8, !tbaa !9
  %13941 = call i32 @s2n_connection_set_io_stuffers(ptr noundef %327, ptr noundef %327, ptr noundef %13940)
  %13942 = icmp eq i32 %13941, -1
  br i1 %13942, label %13943, label %13996

13943:                                            ; preds = %13937
  br label %13944

13944:                                            ; preds = %13943
  br label %13945

13945:                                            ; preds = %13944
  call void @llvm.lifetime.start.p0(i64 4, ptr %329) #11
  %13946 = call ptr @__errno_location() #12
  %13947 = load i32, ptr %13946, align 4, !tbaa !5
  store i32 %13947, ptr %329, align 4, !tbaa !5
  %13948 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13949 = call i32 @s2n_print_stacktrace(ptr noundef %13948)
  %13950 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13951 = trunc i8 %13950 to i1
  br i1 %13951, label %13952, label %13974

13952:                                            ; preds = %13945
  %13953 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13954 = call i32 @fileno(ptr noundef %13953) #11
  %13955 = call i32 @isatty(i32 noundef %13954) #11
  %13956 = icmp ne i32 %13955, 0
  br i1 %13956, label %13957, label %13974

13957:                                            ; preds = %13952
  %13958 = load i32, ptr %329, align 4, !tbaa !5
  %13959 = call ptr @__errno_location() #12
  store i32 %13958, ptr %13959, align 4, !tbaa !5
  %13960 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13961 = load i32, ptr @test_count, align 4, !tbaa !5
  %13962 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13963 = load i32, ptr %13962, align 4, !tbaa !5
  %13964 = call ptr @s2n_strerror(i32 noundef %13963, ptr noundef @.str.4)
  %13965 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13966 = load i32, ptr %13965, align 4, !tbaa !5
  %13967 = call ptr @s2n_strerror_debug(i32 noundef %13966, ptr noundef @.str.4)
  %13968 = call ptr @__errno_location() #12
  %13969 = load i32, ptr %13968, align 4, !tbaa !5
  %13970 = call ptr @strerror(i32 noundef %13969) #11
  %13971 = call ptr @__errno_location() #12
  %13972 = load i32, ptr %13971, align 4, !tbaa !5
  %13973 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13960, ptr noundef @.str.2, i32 noundef %13961, ptr noundef @.str.77, ptr noundef @.str.1, i32 noundef 648, ptr noundef %13964, ptr noundef %13967, ptr noundef %13970, i32 noundef %13972) #11
  br label %13991

13974:                                            ; preds = %13952, %13945
  %13975 = load i32, ptr %329, align 4, !tbaa !5
  %13976 = call ptr @__errno_location() #12
  store i32 %13975, ptr %13976, align 4, !tbaa !5
  %13977 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13978 = load i32, ptr @test_count, align 4, !tbaa !5
  %13979 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13980 = load i32, ptr %13979, align 4, !tbaa !5
  %13981 = call ptr @s2n_strerror(i32 noundef %13980, ptr noundef @.str.4)
  %13982 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13983 = load i32, ptr %13982, align 4, !tbaa !5
  %13984 = call ptr @s2n_strerror_debug(i32 noundef %13983, ptr noundef @.str.4)
  %13985 = call ptr @__errno_location() #12
  %13986 = load i32, ptr %13985, align 4, !tbaa !5
  %13987 = call ptr @strerror(i32 noundef %13986) #11
  %13988 = call ptr @__errno_location() #12
  %13989 = load i32, ptr %13988, align 4, !tbaa !5
  %13990 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13977, ptr noundef @.str.5, i32 noundef %13978, ptr noundef @.str.77, ptr noundef @.str.1, i32 noundef 648, ptr noundef %13981, ptr noundef %13984, ptr noundef %13987, i32 noundef %13989) #11
  br label %13991

13991:                                            ; preds = %13974, %13957
  call void @llvm.lifetime.end.p0(i64 4, ptr %329) #11
  br label %13992

13992:                                            ; preds = %13991
  br label %13993

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

13994:                                            ; No predecessors!
  br label %13995

13995:                                            ; preds = %13994
  br label %13996

13996:                                            ; preds = %13995, %13937
  br label %13997

13997:                                            ; preds = %13996
  br label %13998

13998:                                            ; preds = %13997
  %13999 = load ptr, ptr %322, align 8, !tbaa !9
  %14000 = getelementptr inbounds %struct.s2n_config, ptr %13999, i32 0, i32 52
  store i32 1034, ptr %14000, align 4, !tbaa !66
  br label %14001

14001:                                            ; preds = %13998
  %14002 = load i32, ptr @test_count, align 4, !tbaa !5
  %14003 = add nsw i32 %14002, 1
  store i32 %14003, ptr @test_count, align 4, !tbaa !5
  %14004 = load ptr, ptr %324, align 8, !tbaa !9
  %14005 = load ptr, ptr %322, align 8, !tbaa !9
  %14006 = call i32 @s2n_connection_set_config(ptr noundef %14004, ptr noundef %14005)
  %14007 = icmp eq i32 %14006, -1
  br i1 %14007, label %14008, label %14061

14008:                                            ; preds = %14001
  br label %14009

14009:                                            ; preds = %14008
  br label %14010

14010:                                            ; preds = %14009
  call void @llvm.lifetime.start.p0(i64 4, ptr %330) #11
  %14011 = call ptr @__errno_location() #12
  %14012 = load i32, ptr %14011, align 4, !tbaa !5
  store i32 %14012, ptr %330, align 4, !tbaa !5
  %14013 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14014 = call i32 @s2n_print_stacktrace(ptr noundef %14013)
  %14015 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14016 = trunc i8 %14015 to i1
  br i1 %14016, label %14017, label %14039

14017:                                            ; preds = %14010
  %14018 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14019 = call i32 @fileno(ptr noundef %14018) #11
  %14020 = call i32 @isatty(i32 noundef %14019) #11
  %14021 = icmp ne i32 %14020, 0
  br i1 %14021, label %14022, label %14039

14022:                                            ; preds = %14017
  %14023 = load i32, ptr %330, align 4, !tbaa !5
  %14024 = call ptr @__errno_location() #12
  store i32 %14023, ptr %14024, align 4, !tbaa !5
  %14025 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14026 = load i32, ptr @test_count, align 4, !tbaa !5
  %14027 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14028 = load i32, ptr %14027, align 4, !tbaa !5
  %14029 = call ptr @s2n_strerror(i32 noundef %14028, ptr noundef @.str.4)
  %14030 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14031 = load i32, ptr %14030, align 4, !tbaa !5
  %14032 = call ptr @s2n_strerror_debug(i32 noundef %14031, ptr noundef @.str.4)
  %14033 = call ptr @__errno_location() #12
  %14034 = load i32, ptr %14033, align 4, !tbaa !5
  %14035 = call ptr @strerror(i32 noundef %14034) #11
  %14036 = call ptr @__errno_location() #12
  %14037 = load i32, ptr %14036, align 4, !tbaa !5
  %14038 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14025, ptr noundef @.str.2, i32 noundef %14026, ptr noundef @.str.109, ptr noundef @.str.1, i32 noundef 652, ptr noundef %14029, ptr noundef %14032, ptr noundef %14035, i32 noundef %14037) #11
  br label %14056

14039:                                            ; preds = %14017, %14010
  %14040 = load i32, ptr %330, align 4, !tbaa !5
  %14041 = call ptr @__errno_location() #12
  store i32 %14040, ptr %14041, align 4, !tbaa !5
  %14042 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14043 = load i32, ptr @test_count, align 4, !tbaa !5
  %14044 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14045 = load i32, ptr %14044, align 4, !tbaa !5
  %14046 = call ptr @s2n_strerror(i32 noundef %14045, ptr noundef @.str.4)
  %14047 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14048 = load i32, ptr %14047, align 4, !tbaa !5
  %14049 = call ptr @s2n_strerror_debug(i32 noundef %14048, ptr noundef @.str.4)
  %14050 = call ptr @__errno_location() #12
  %14051 = load i32, ptr %14050, align 4, !tbaa !5
  %14052 = call ptr @strerror(i32 noundef %14051) #11
  %14053 = call ptr @__errno_location() #12
  %14054 = load i32, ptr %14053, align 4, !tbaa !5
  %14055 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14042, ptr noundef @.str.5, i32 noundef %14043, ptr noundef @.str.109, ptr noundef @.str.1, i32 noundef 652, ptr noundef %14046, ptr noundef %14049, ptr noundef %14052, i32 noundef %14054) #11
  br label %14056

14056:                                            ; preds = %14039, %14022
  call void @llvm.lifetime.end.p0(i64 4, ptr %330) #11
  br label %14057

14057:                                            ; preds = %14056
  br label %14058

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

14059:                                            ; No predecessors!
  br label %14060

14060:                                            ; preds = %14059
  br label %14061

14061:                                            ; preds = %14060, %14001
  br label %14062

14062:                                            ; preds = %14061
  br label %14063

14063:                                            ; preds = %14062
  %14064 = load ptr, ptr %324, align 8, !tbaa !9
  %14065 = getelementptr inbounds %struct.s2n_connection, ptr %14064, i32 0, i32 94
  call void @s2n_atomic_flag_set(ptr noundef %14065)
  br label %14066

14066:                                            ; preds = %14063
  %14067 = load i32, ptr @test_count, align 4, !tbaa !5
  %14068 = add nsw i32 %14067, 1
  store i32 %14068, ptr @test_count, align 4, !tbaa !5
  %14069 = load ptr, ptr %324, align 8, !tbaa !9
  %14070 = call i32 @s2n_key_update_send(ptr noundef %14069, ptr noundef %323)
  %14071 = icmp eq i32 %14070, -1
  br i1 %14071, label %14072, label %14125

14072:                                            ; preds = %14066
  br label %14073

14073:                                            ; preds = %14072
  br label %14074

14074:                                            ; preds = %14073
  call void @llvm.lifetime.start.p0(i64 4, ptr %331) #11
  %14075 = call ptr @__errno_location() #12
  %14076 = load i32, ptr %14075, align 4, !tbaa !5
  store i32 %14076, ptr %331, align 4, !tbaa !5
  %14077 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14078 = call i32 @s2n_print_stacktrace(ptr noundef %14077)
  %14079 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14080 = trunc i8 %14079 to i1
  br i1 %14080, label %14081, label %14103

14081:                                            ; preds = %14074
  %14082 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14083 = call i32 @fileno(ptr noundef %14082) #11
  %14084 = call i32 @isatty(i32 noundef %14083) #11
  %14085 = icmp ne i32 %14084, 0
  br i1 %14085, label %14086, label %14103

14086:                                            ; preds = %14081
  %14087 = load i32, ptr %331, align 4, !tbaa !5
  %14088 = call ptr @__errno_location() #12
  store i32 %14087, ptr %14088, align 4, !tbaa !5
  %14089 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14090 = load i32, ptr @test_count, align 4, !tbaa !5
  %14091 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14092 = load i32, ptr %14091, align 4, !tbaa !5
  %14093 = call ptr @s2n_strerror(i32 noundef %14092, ptr noundef @.str.4)
  %14094 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14095 = load i32, ptr %14094, align 4, !tbaa !5
  %14096 = call ptr @s2n_strerror_debug(i32 noundef %14095, ptr noundef @.str.4)
  %14097 = call ptr @__errno_location() #12
  %14098 = load i32, ptr %14097, align 4, !tbaa !5
  %14099 = call ptr @strerror(i32 noundef %14098) #11
  %14100 = call ptr @__errno_location() #12
  %14101 = load i32, ptr %14100, align 4, !tbaa !5
  %14102 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14089, ptr noundef @.str.2, i32 noundef %14090, ptr noundef @.str.93, ptr noundef @.str.1, i32 noundef 654, ptr noundef %14093, ptr noundef %14096, ptr noundef %14099, i32 noundef %14101) #11
  br label %14120

14103:                                            ; preds = %14081, %14074
  %14104 = load i32, ptr %331, align 4, !tbaa !5
  %14105 = call ptr @__errno_location() #12
  store i32 %14104, ptr %14105, align 4, !tbaa !5
  %14106 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14107 = load i32, ptr @test_count, align 4, !tbaa !5
  %14108 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14109 = load i32, ptr %14108, align 4, !tbaa !5
  %14110 = call ptr @s2n_strerror(i32 noundef %14109, ptr noundef @.str.4)
  %14111 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14112 = load i32, ptr %14111, align 4, !tbaa !5
  %14113 = call ptr @s2n_strerror_debug(i32 noundef %14112, ptr noundef @.str.4)
  %14114 = call ptr @__errno_location() #12
  %14115 = load i32, ptr %14114, align 4, !tbaa !5
  %14116 = call ptr @strerror(i32 noundef %14115) #11
  %14117 = call ptr @__errno_location() #12
  %14118 = load i32, ptr %14117, align 4, !tbaa !5
  %14119 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14106, ptr noundef @.str.5, i32 noundef %14107, ptr noundef @.str.93, ptr noundef @.str.1, i32 noundef 654, ptr noundef %14110, ptr noundef %14113, ptr noundef %14116, i32 noundef %14118) #11
  br label %14120

14120:                                            ; preds = %14103, %14086
  call void @llvm.lifetime.end.p0(i64 4, ptr %331) #11
  br label %14121

14121:                                            ; preds = %14120
  br label %14122

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

14123:                                            ; No predecessors!
  br label %14124

14124:                                            ; preds = %14123
  br label %14125

14125:                                            ; preds = %14124, %14066
  br label %14126

14126:                                            ; preds = %14125
  br label %14127

14127:                                            ; preds = %14126
  br label %14128

14128:                                            ; preds = %14127
  %14129 = load i32, ptr @test_count, align 4, !tbaa !5
  %14130 = add nsw i32 %14129, 1
  store i32 %14130, ptr @test_count, align 4, !tbaa !5
  %14131 = load ptr, ptr %324, align 8, !tbaa !9
  %14132 = call i32 @s2n_connection_release_buffers(ptr noundef %14131)
  %14133 = icmp eq i32 %14132, -1
  br i1 %14133, label %14134, label %14187

14134:                                            ; preds = %14128
  br label %14135

14135:                                            ; preds = %14134
  br label %14136

14136:                                            ; preds = %14135
  call void @llvm.lifetime.start.p0(i64 4, ptr %332) #11
  %14137 = call ptr @__errno_location() #12
  %14138 = load i32, ptr %14137, align 4, !tbaa !5
  store i32 %14138, ptr %332, align 4, !tbaa !5
  %14139 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14140 = call i32 @s2n_print_stacktrace(ptr noundef %14139)
  %14141 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14142 = trunc i8 %14141 to i1
  br i1 %14142, label %14143, label %14165

14143:                                            ; preds = %14136
  %14144 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14145 = call i32 @fileno(ptr noundef %14144) #11
  %14146 = call i32 @isatty(i32 noundef %14145) #11
  %14147 = icmp ne i32 %14146, 0
  br i1 %14147, label %14148, label %14165

14148:                                            ; preds = %14143
  %14149 = load i32, ptr %332, align 4, !tbaa !5
  %14150 = call ptr @__errno_location() #12
  store i32 %14149, ptr %14150, align 4, !tbaa !5
  %14151 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14152 = load i32, ptr @test_count, align 4, !tbaa !5
  %14153 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14154 = load i32, ptr %14153, align 4, !tbaa !5
  %14155 = call ptr @s2n_strerror(i32 noundef %14154, ptr noundef @.str.4)
  %14156 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14157 = load i32, ptr %14156, align 4, !tbaa !5
  %14158 = call ptr @s2n_strerror_debug(i32 noundef %14157, ptr noundef @.str.4)
  %14159 = call ptr @__errno_location() #12
  %14160 = load i32, ptr %14159, align 4, !tbaa !5
  %14161 = call ptr @strerror(i32 noundef %14160) #11
  %14162 = call ptr @__errno_location() #12
  %14163 = load i32, ptr %14162, align 4, !tbaa !5
  %14164 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14151, ptr noundef @.str.2, i32 noundef %14152, ptr noundef @.str.110, ptr noundef @.str.1, i32 noundef 656, ptr noundef %14155, ptr noundef %14158, ptr noundef %14161, i32 noundef %14163) #11
  br label %14182

14165:                                            ; preds = %14143, %14136
  %14166 = load i32, ptr %332, align 4, !tbaa !5
  %14167 = call ptr @__errno_location() #12
  store i32 %14166, ptr %14167, align 4, !tbaa !5
  %14168 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14169 = load i32, ptr @test_count, align 4, !tbaa !5
  %14170 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14171 = load i32, ptr %14170, align 4, !tbaa !5
  %14172 = call ptr @s2n_strerror(i32 noundef %14171, ptr noundef @.str.4)
  %14173 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14174 = load i32, ptr %14173, align 4, !tbaa !5
  %14175 = call ptr @s2n_strerror_debug(i32 noundef %14174, ptr noundef @.str.4)
  %14176 = call ptr @__errno_location() #12
  %14177 = load i32, ptr %14176, align 4, !tbaa !5
  %14178 = call ptr @strerror(i32 noundef %14177) #11
  %14179 = call ptr @__errno_location() #12
  %14180 = load i32, ptr %14179, align 4, !tbaa !5
  %14181 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14168, ptr noundef @.str.5, i32 noundef %14169, ptr noundef @.str.110, ptr noundef @.str.1, i32 noundef 656, ptr noundef %14172, ptr noundef %14175, ptr noundef %14178, i32 noundef %14180) #11
  br label %14182

14182:                                            ; preds = %14165, %14148
  call void @llvm.lifetime.end.p0(i64 4, ptr %332) #11
  br label %14183

14183:                                            ; preds = %14182
  br label %14184

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

14185:                                            ; No predecessors!
  br label %14186

14186:                                            ; preds = %14185
  br label %14187

14187:                                            ; preds = %14186, %14128
  br label %14188

14188:                                            ; preds = %14187
  br label %14189

14189:                                            ; preds = %14188
  %14190 = load ptr, ptr %322, align 8, !tbaa !9
  %14191 = getelementptr inbounds %struct.s2n_config, ptr %14190, i32 0, i32 52
  store i32 1033, ptr %14191, align 4, !tbaa !66
  br label %14192

14192:                                            ; preds = %14189
  %14193 = load i32, ptr @test_count, align 4, !tbaa !5
  %14194 = add nsw i32 %14193, 1
  store i32 %14194, ptr @test_count, align 4, !tbaa !5
  %14195 = load ptr, ptr %324, align 8, !tbaa !9
  %14196 = load ptr, ptr %322, align 8, !tbaa !9
  %14197 = call i32 @s2n_connection_set_config(ptr noundef %14195, ptr noundef %14196)
  %14198 = icmp eq i32 %14197, -1
  br i1 %14198, label %14199, label %14252

14199:                                            ; preds = %14192
  br label %14200

14200:                                            ; preds = %14199
  br label %14201

14201:                                            ; preds = %14200
  call void @llvm.lifetime.start.p0(i64 4, ptr %333) #11
  %14202 = call ptr @__errno_location() #12
  %14203 = load i32, ptr %14202, align 4, !tbaa !5
  store i32 %14203, ptr %333, align 4, !tbaa !5
  %14204 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14205 = call i32 @s2n_print_stacktrace(ptr noundef %14204)
  %14206 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14207 = trunc i8 %14206 to i1
  br i1 %14207, label %14208, label %14230

14208:                                            ; preds = %14201
  %14209 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14210 = call i32 @fileno(ptr noundef %14209) #11
  %14211 = call i32 @isatty(i32 noundef %14210) #11
  %14212 = icmp ne i32 %14211, 0
  br i1 %14212, label %14213, label %14230

14213:                                            ; preds = %14208
  %14214 = load i32, ptr %333, align 4, !tbaa !5
  %14215 = call ptr @__errno_location() #12
  store i32 %14214, ptr %14215, align 4, !tbaa !5
  %14216 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14217 = load i32, ptr @test_count, align 4, !tbaa !5
  %14218 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14219 = load i32, ptr %14218, align 4, !tbaa !5
  %14220 = call ptr @s2n_strerror(i32 noundef %14219, ptr noundef @.str.4)
  %14221 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14222 = load i32, ptr %14221, align 4, !tbaa !5
  %14223 = call ptr @s2n_strerror_debug(i32 noundef %14222, ptr noundef @.str.4)
  %14224 = call ptr @__errno_location() #12
  %14225 = load i32, ptr %14224, align 4, !tbaa !5
  %14226 = call ptr @strerror(i32 noundef %14225) #11
  %14227 = call ptr @__errno_location() #12
  %14228 = load i32, ptr %14227, align 4, !tbaa !5
  %14229 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14216, ptr noundef @.str.2, i32 noundef %14217, ptr noundef @.str.109, ptr noundef @.str.1, i32 noundef 660, ptr noundef %14220, ptr noundef %14223, ptr noundef %14226, i32 noundef %14228) #11
  br label %14247

14230:                                            ; preds = %14208, %14201
  %14231 = load i32, ptr %333, align 4, !tbaa !5
  %14232 = call ptr @__errno_location() #12
  store i32 %14231, ptr %14232, align 4, !tbaa !5
  %14233 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14234 = load i32, ptr @test_count, align 4, !tbaa !5
  %14235 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14236 = load i32, ptr %14235, align 4, !tbaa !5
  %14237 = call ptr @s2n_strerror(i32 noundef %14236, ptr noundef @.str.4)
  %14238 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14239 = load i32, ptr %14238, align 4, !tbaa !5
  %14240 = call ptr @s2n_strerror_debug(i32 noundef %14239, ptr noundef @.str.4)
  %14241 = call ptr @__errno_location() #12
  %14242 = load i32, ptr %14241, align 4, !tbaa !5
  %14243 = call ptr @strerror(i32 noundef %14242) #11
  %14244 = call ptr @__errno_location() #12
  %14245 = load i32, ptr %14244, align 4, !tbaa !5
  %14246 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14233, ptr noundef @.str.5, i32 noundef %14234, ptr noundef @.str.109, ptr noundef @.str.1, i32 noundef 660, ptr noundef %14237, ptr noundef %14240, ptr noundef %14243, i32 noundef %14245) #11
  br label %14247

14247:                                            ; preds = %14230, %14213
  call void @llvm.lifetime.end.p0(i64 4, ptr %333) #11
  br label %14248

14248:                                            ; preds = %14247
  br label %14249

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

14250:                                            ; No predecessors!
  br label %14251

14251:                                            ; preds = %14250
  br label %14252

14252:                                            ; preds = %14251, %14192
  br label %14253

14253:                                            ; preds = %14252
  br label %14254

14254:                                            ; preds = %14253
  %14255 = load ptr, ptr %324, align 8, !tbaa !9
  %14256 = getelementptr inbounds %struct.s2n_connection, ptr %14255, i32 0, i32 94
  call void @s2n_atomic_flag_set(ptr noundef %14256)
  br label %14257

14257:                                            ; preds = %14254
  br label %14258

14258:                                            ; preds = %14257
  br label %14259

14259:                                            ; preds = %14258
  %14260 = load i32, ptr @test_count, align 4, !tbaa !5
  %14261 = add nsw i32 %14260, 1
  store i32 %14261, ptr @test_count, align 4, !tbaa !5
  %14262 = load ptr, ptr %324, align 8, !tbaa !9
  %14263 = call i32 @s2n_key_update_send(ptr noundef %14262, ptr noundef %323)
  %14264 = icmp eq i32 %14263, -1
  br i1 %14264, label %14318, label %14265

14265:                                            ; preds = %14259
  br label %14266

14266:                                            ; preds = %14265
  br label %14267

14267:                                            ; preds = %14266
  call void @llvm.lifetime.start.p0(i64 4, ptr %334) #11
  %14268 = call ptr @__errno_location() #12
  %14269 = load i32, ptr %14268, align 4, !tbaa !5
  store i32 %14269, ptr %334, align 4, !tbaa !5
  %14270 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14271 = call i32 @s2n_print_stacktrace(ptr noundef %14270)
  %14272 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14273 = trunc i8 %14272 to i1
  br i1 %14273, label %14274, label %14296

14274:                                            ; preds = %14267
  %14275 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14276 = call i32 @fileno(ptr noundef %14275) #11
  %14277 = call i32 @isatty(i32 noundef %14276) #11
  %14278 = icmp ne i32 %14277, 0
  br i1 %14278, label %14279, label %14296

14279:                                            ; preds = %14274
  %14280 = load i32, ptr %334, align 4, !tbaa !5
  %14281 = call ptr @__errno_location() #12
  store i32 %14280, ptr %14281, align 4, !tbaa !5
  %14282 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14283 = load i32, ptr @test_count, align 4, !tbaa !5
  %14284 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14285 = load i32, ptr %14284, align 4, !tbaa !5
  %14286 = call ptr @s2n_strerror(i32 noundef %14285, ptr noundef @.str.4)
  %14287 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14288 = load i32, ptr %14287, align 4, !tbaa !5
  %14289 = call ptr @s2n_strerror_debug(i32 noundef %14288, ptr noundef @.str.4)
  %14290 = call ptr @__errno_location() #12
  %14291 = load i32, ptr %14290, align 4, !tbaa !5
  %14292 = call ptr @strerror(i32 noundef %14291) #11
  %14293 = call ptr @__errno_location() #12
  %14294 = load i32, ptr %14293, align 4, !tbaa !5
  %14295 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14282, ptr noundef @.str.2, i32 noundef %14283, ptr noundef @.str.79, ptr noundef @.str.1, i32 noundef 662, ptr noundef %14286, ptr noundef %14289, ptr noundef %14292, i32 noundef %14294) #11
  br label %14313

14296:                                            ; preds = %14274, %14267
  %14297 = load i32, ptr %334, align 4, !tbaa !5
  %14298 = call ptr @__errno_location() #12
  store i32 %14297, ptr %14298, align 4, !tbaa !5
  %14299 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14300 = load i32, ptr @test_count, align 4, !tbaa !5
  %14301 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14302 = load i32, ptr %14301, align 4, !tbaa !5
  %14303 = call ptr @s2n_strerror(i32 noundef %14302, ptr noundef @.str.4)
  %14304 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14305 = load i32, ptr %14304, align 4, !tbaa !5
  %14306 = call ptr @s2n_strerror_debug(i32 noundef %14305, ptr noundef @.str.4)
  %14307 = call ptr @__errno_location() #12
  %14308 = load i32, ptr %14307, align 4, !tbaa !5
  %14309 = call ptr @strerror(i32 noundef %14308) #11
  %14310 = call ptr @__errno_location() #12
  %14311 = load i32, ptr %14310, align 4, !tbaa !5
  %14312 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14299, ptr noundef @.str.5, i32 noundef %14300, ptr noundef @.str.79, ptr noundef @.str.1, i32 noundef 662, ptr noundef %14303, ptr noundef %14306, ptr noundef %14309, i32 noundef %14311) #11
  br label %14313

14313:                                            ; preds = %14296, %14279
  call void @llvm.lifetime.end.p0(i64 4, ptr %334) #11
  br label %14314

14314:                                            ; preds = %14313
  br label %14315

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

14316:                                            ; No predecessors!
  br label %14317

14317:                                            ; preds = %14316
  br label %14318

14318:                                            ; preds = %14317, %14259
  br label %14319

14319:                                            ; preds = %14318
  br label %14320

14320:                                            ; preds = %14319
  br label %14321

14321:                                            ; preds = %14320
  %14322 = load i32, ptr @test_count, align 4, !tbaa !5
  %14323 = add nsw i32 %14322, 1
  store i32 %14323, ptr @test_count, align 4, !tbaa !5
  %14324 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14325 = load i32, ptr %14324, align 4, !tbaa !5
  %14326 = icmp eq i32 %14325, 335544390
  br i1 %14326, label %14380, label %14327

14327:                                            ; preds = %14321
  br label %14328

14328:                                            ; preds = %14327
  br label %14329

14329:                                            ; preds = %14328
  call void @llvm.lifetime.start.p0(i64 4, ptr %335) #11
  %14330 = call ptr @__errno_location() #12
  %14331 = load i32, ptr %14330, align 4, !tbaa !5
  store i32 %14331, ptr %335, align 4, !tbaa !5
  %14332 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14333 = call i32 @s2n_print_stacktrace(ptr noundef %14332)
  %14334 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14335 = trunc i8 %14334 to i1
  br i1 %14335, label %14336, label %14358

14336:                                            ; preds = %14329
  %14337 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14338 = call i32 @fileno(ptr noundef %14337) #11
  %14339 = call i32 @isatty(i32 noundef %14338) #11
  %14340 = icmp ne i32 %14339, 0
  br i1 %14340, label %14341, label %14358

14341:                                            ; preds = %14336
  %14342 = load i32, ptr %335, align 4, !tbaa !5
  %14343 = call ptr @__errno_location() #12
  store i32 %14342, ptr %14343, align 4, !tbaa !5
  %14344 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14345 = load i32, ptr @test_count, align 4, !tbaa !5
  %14346 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14347 = load i32, ptr %14346, align 4, !tbaa !5
  %14348 = call ptr @s2n_strerror(i32 noundef %14347, ptr noundef @.str.4)
  %14349 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14350 = load i32, ptr %14349, align 4, !tbaa !5
  %14351 = call ptr @s2n_strerror_debug(i32 noundef %14350, ptr noundef @.str.4)
  %14352 = call ptr @__errno_location() #12
  %14353 = load i32, ptr %14352, align 4, !tbaa !5
  %14354 = call ptr @strerror(i32 noundef %14353) #11
  %14355 = call ptr @__errno_location() #12
  %14356 = load i32, ptr %14355, align 4, !tbaa !5
  %14357 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14344, ptr noundef @.str.2, i32 noundef %14345, ptr noundef @.str.111, ptr noundef @.str.1, i32 noundef 662, ptr noundef %14348, ptr noundef %14351, ptr noundef %14354, i32 noundef %14356) #11
  br label %14375

14358:                                            ; preds = %14336, %14329
  %14359 = load i32, ptr %335, align 4, !tbaa !5
  %14360 = call ptr @__errno_location() #12
  store i32 %14359, ptr %14360, align 4, !tbaa !5
  %14361 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14362 = load i32, ptr @test_count, align 4, !tbaa !5
  %14363 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14364 = load i32, ptr %14363, align 4, !tbaa !5
  %14365 = call ptr @s2n_strerror(i32 noundef %14364, ptr noundef @.str.4)
  %14366 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14367 = load i32, ptr %14366, align 4, !tbaa !5
  %14368 = call ptr @s2n_strerror_debug(i32 noundef %14367, ptr noundef @.str.4)
  %14369 = call ptr @__errno_location() #12
  %14370 = load i32, ptr %14369, align 4, !tbaa !5
  %14371 = call ptr @strerror(i32 noundef %14370) #11
  %14372 = call ptr @__errno_location() #12
  %14373 = load i32, ptr %14372, align 4, !tbaa !5
  %14374 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14361, ptr noundef @.str.5, i32 noundef %14362, ptr noundef @.str.111, ptr noundef @.str.1, i32 noundef 662, ptr noundef %14365, ptr noundef %14368, ptr noundef %14371, i32 noundef %14373) #11
  br label %14375

14375:                                            ; preds = %14358, %14341
  call void @llvm.lifetime.end.p0(i64 4, ptr %335) #11
  br label %14376

14376:                                            ; preds = %14375
  br label %14377

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

14378:                                            ; No predecessors!
  br label %14379

14379:                                            ; preds = %14378
  br label %14380

14380:                                            ; preds = %14379, %14321
  br label %14381

14381:                                            ; preds = %14380
  br label %14382

14382:                                            ; preds = %14381
  br label %14383

14383:                                            ; preds = %14382
  %14384 = load i32, ptr @test_count, align 4, !tbaa !5
  %14385 = add nsw i32 %14384, 1
  store i32 %14385, ptr @test_count, align 4, !tbaa !5
  %14386 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14387 = load i32, ptr %14386, align 4, !tbaa !5
  %14388 = call ptr @s2n_strerror_debug(i32 noundef %14387, ptr noundef @.str.4)
  %14389 = icmp eq ptr %14388, null
  br i1 %14389, label %14390, label %14443

14390:                                            ; preds = %14383
  br label %14391

14391:                                            ; preds = %14390
  br label %14392

14392:                                            ; preds = %14391
  call void @llvm.lifetime.start.p0(i64 4, ptr %336) #11
  %14393 = call ptr @__errno_location() #12
  %14394 = load i32, ptr %14393, align 4, !tbaa !5
  store i32 %14394, ptr %336, align 4, !tbaa !5
  %14395 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14396 = call i32 @s2n_print_stacktrace(ptr noundef %14395)
  %14397 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14398 = trunc i8 %14397 to i1
  br i1 %14398, label %14399, label %14421

14399:                                            ; preds = %14392
  %14400 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14401 = call i32 @fileno(ptr noundef %14400) #11
  %14402 = call i32 @isatty(i32 noundef %14401) #11
  %14403 = icmp ne i32 %14402, 0
  br i1 %14403, label %14404, label %14421

14404:                                            ; preds = %14399
  %14405 = load i32, ptr %336, align 4, !tbaa !5
  %14406 = call ptr @__errno_location() #12
  store i32 %14405, ptr %14406, align 4, !tbaa !5
  %14407 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14408 = load i32, ptr @test_count, align 4, !tbaa !5
  %14409 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14410 = load i32, ptr %14409, align 4, !tbaa !5
  %14411 = call ptr @s2n_strerror(i32 noundef %14410, ptr noundef @.str.4)
  %14412 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14413 = load i32, ptr %14412, align 4, !tbaa !5
  %14414 = call ptr @s2n_strerror_debug(i32 noundef %14413, ptr noundef @.str.4)
  %14415 = call ptr @__errno_location() #12
  %14416 = load i32, ptr %14415, align 4, !tbaa !5
  %14417 = call ptr @strerror(i32 noundef %14416) #11
  %14418 = call ptr @__errno_location() #12
  %14419 = load i32, ptr %14418, align 4, !tbaa !5
  %14420 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14407, ptr noundef @.str.2, i32 noundef %14408, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 662, ptr noundef %14411, ptr noundef %14414, ptr noundef %14417, i32 noundef %14419) #11
  br label %14438

14421:                                            ; preds = %14399, %14392
  %14422 = load i32, ptr %336, align 4, !tbaa !5
  %14423 = call ptr @__errno_location() #12
  store i32 %14422, ptr %14423, align 4, !tbaa !5
  %14424 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14425 = load i32, ptr @test_count, align 4, !tbaa !5
  %14426 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14427 = load i32, ptr %14426, align 4, !tbaa !5
  %14428 = call ptr @s2n_strerror(i32 noundef %14427, ptr noundef @.str.4)
  %14429 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14430 = load i32, ptr %14429, align 4, !tbaa !5
  %14431 = call ptr @s2n_strerror_debug(i32 noundef %14430, ptr noundef @.str.4)
  %14432 = call ptr @__errno_location() #12
  %14433 = load i32, ptr %14432, align 4, !tbaa !5
  %14434 = call ptr @strerror(i32 noundef %14433) #11
  %14435 = call ptr @__errno_location() #12
  %14436 = load i32, ptr %14435, align 4, !tbaa !5
  %14437 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14424, ptr noundef @.str.5, i32 noundef %14425, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 662, ptr noundef %14428, ptr noundef %14431, ptr noundef %14434, i32 noundef %14436) #11
  br label %14438

14438:                                            ; preds = %14421, %14404
  call void @llvm.lifetime.end.p0(i64 4, ptr %336) #11
  br label %14439

14439:                                            ; preds = %14438
  br label %14440

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

14441:                                            ; No predecessors!
  br label %14442

14442:                                            ; preds = %14441
  br label %14443

14443:                                            ; preds = %14442, %14383
  br label %14444

14444:                                            ; preds = %14443
  br label %14445

14445:                                            ; preds = %14444
  br label %14446

14446:                                            ; preds = %14445
  br label %14447

14447:                                            ; preds = %14446
  br label %14448

14448:                                            ; preds = %14447
  %14449 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %14449, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %14450 = call ptr @__errno_location() #12
  store i32 0, ptr %14450, align 4, !tbaa !5
  br label %14451

14451:                                            ; preds = %14448
  br label %14452

14452:                                            ; preds = %14451
  br label %14453

14453:                                            ; preds = %14452
  br label %14454

14454:                                            ; preds = %14453
  %14455 = call i32 @s2n_stuffer_free(ptr noundef %327)
  call void @llvm.lifetime.end.p0(i64 40, ptr %327) #11
  %14456 = call i32 @s2n_connection_ptr_free(ptr noundef %324)
  %14457 = getelementptr inbounds %struct.s2n_result, ptr %337, i32 0, i32 0
  store i32 %14456, ptr %14457, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %324) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %323) #11
  %14458 = call i32 @s2n_config_ptr_free(ptr noundef %322)
  %14459 = getelementptr inbounds %struct.s2n_result, ptr %338, i32 0, i32 0
  store i32 %14458, ptr %14459, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %322) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %316) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %339) #11
  store i64 0, ptr %339, align 8, !tbaa !20
  br label %14460

14460:                                            ; preds = %14667, %14454
  %14461 = load i64, ptr %339, align 8, !tbaa !20
  %14462 = load i16, ptr @cipher_preferences_test_all, align 8, !tbaa !70
  %14463 = zext i16 %14462 to i64
  %14464 = icmp ult i64 %14461, %14463
  br i1 %14464, label %14466, label %14465

14465:                                            ; preds = %14460
  store i32 1392, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %339) #11
  br label %14670

14466:                                            ; preds = %14460
  call void @llvm.lifetime.start.p0(i64 8, ptr %340) #11
  %14467 = load ptr, ptr getelementptr inbounds (%struct.s2n_cipher_preferences, ptr @cipher_preferences_test_all, i32 0, i32 1), align 8, !tbaa !72
  %14468 = load i64, ptr %339, align 8, !tbaa !20
  %14469 = getelementptr inbounds ptr, ptr %14467, i64 %14468
  %14470 = load ptr, ptr %14469, align 8, !tbaa !9
  store ptr %14470, ptr %340, align 8, !tbaa !9
  br label %14471

14471:                                            ; preds = %14466
  %14472 = load i32, ptr @test_count, align 4, !tbaa !5
  %14473 = add nsw i32 %14472, 1
  store i32 %14473, ptr @test_count, align 4, !tbaa !5
  %14474 = load ptr, ptr %340, align 8, !tbaa !9
  %14475 = icmp eq ptr %14474, null
  br i1 %14475, label %14476, label %14529

14476:                                            ; preds = %14471
  br label %14477

14477:                                            ; preds = %14476
  br label %14478

14478:                                            ; preds = %14477
  call void @llvm.lifetime.start.p0(i64 4, ptr %341) #11
  %14479 = call ptr @__errno_location() #12
  %14480 = load i32, ptr %14479, align 4, !tbaa !5
  store i32 %14480, ptr %341, align 4, !tbaa !5
  %14481 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14482 = call i32 @s2n_print_stacktrace(ptr noundef %14481)
  %14483 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14484 = trunc i8 %14483 to i1
  br i1 %14484, label %14485, label %14507

14485:                                            ; preds = %14478
  %14486 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14487 = call i32 @fileno(ptr noundef %14486) #11
  %14488 = call i32 @isatty(i32 noundef %14487) #11
  %14489 = icmp ne i32 %14488, 0
  br i1 %14489, label %14490, label %14507

14490:                                            ; preds = %14485
  %14491 = load i32, ptr %341, align 4, !tbaa !5
  %14492 = call ptr @__errno_location() #12
  store i32 %14491, ptr %14492, align 4, !tbaa !5
  %14493 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14494 = load i32, ptr @test_count, align 4, !tbaa !5
  %14495 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14496 = load i32, ptr %14495, align 4, !tbaa !5
  %14497 = call ptr @s2n_strerror(i32 noundef %14496, ptr noundef @.str.4)
  %14498 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14499 = load i32, ptr %14498, align 4, !tbaa !5
  %14500 = call ptr @s2n_strerror_debug(i32 noundef %14499, ptr noundef @.str.4)
  %14501 = call ptr @__errno_location() #12
  %14502 = load i32, ptr %14501, align 4, !tbaa !5
  %14503 = call ptr @strerror(i32 noundef %14502) #11
  %14504 = call ptr @__errno_location() #12
  %14505 = load i32, ptr %14504, align 4, !tbaa !5
  %14506 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14493, ptr noundef @.str.2, i32 noundef %14494, ptr noundef @.str.112, ptr noundef @.str.1, i32 noundef 673, ptr noundef %14497, ptr noundef %14500, ptr noundef %14503, i32 noundef %14505) #11
  br label %14524

14507:                                            ; preds = %14485, %14478
  %14508 = load i32, ptr %341, align 4, !tbaa !5
  %14509 = call ptr @__errno_location() #12
  store i32 %14508, ptr %14509, align 4, !tbaa !5
  %14510 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14511 = load i32, ptr @test_count, align 4, !tbaa !5
  %14512 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14513 = load i32, ptr %14512, align 4, !tbaa !5
  %14514 = call ptr @s2n_strerror(i32 noundef %14513, ptr noundef @.str.4)
  %14515 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14516 = load i32, ptr %14515, align 4, !tbaa !5
  %14517 = call ptr @s2n_strerror_debug(i32 noundef %14516, ptr noundef @.str.4)
  %14518 = call ptr @__errno_location() #12
  %14519 = load i32, ptr %14518, align 4, !tbaa !5
  %14520 = call ptr @strerror(i32 noundef %14519) #11
  %14521 = call ptr @__errno_location() #12
  %14522 = load i32, ptr %14521, align 4, !tbaa !5
  %14523 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14510, ptr noundef @.str.5, i32 noundef %14511, ptr noundef @.str.112, ptr noundef @.str.1, i32 noundef 673, ptr noundef %14514, ptr noundef %14517, ptr noundef %14520, i32 noundef %14522) #11
  br label %14524

14524:                                            ; preds = %14507, %14490
  call void @llvm.lifetime.end.p0(i64 4, ptr %341) #11
  br label %14525

14525:                                            ; preds = %14524
  br label %14526

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

14527:                                            ; No predecessors!
  br label %14528

14528:                                            ; preds = %14527
  br label %14529

14529:                                            ; preds = %14528, %14471
  br label %14530

14530:                                            ; preds = %14529
  br label %14531

14531:                                            ; preds = %14530
  %14532 = load ptr, ptr %340, align 8, !tbaa !9
  %14533 = load i8, ptr %14532, align 8
  %14534 = and i8 %14533, 1
  %14535 = zext i8 %14534 to i32
  %14536 = icmp ne i32 %14535, 0
  br i1 %14536, label %14537, label %14666

14537:                                            ; preds = %14531
  br label %14538

14538:                                            ; preds = %14537
  %14539 = load i32, ptr @test_count, align 4, !tbaa !5
  %14540 = add nsw i32 %14539, 1
  store i32 %14540, ptr @test_count, align 4, !tbaa !5
  %14541 = load ptr, ptr %340, align 8, !tbaa !9
  %14542 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %14541, i32 0, i32 6
  %14543 = load ptr, ptr %14542, align 8, !tbaa !15
  %14544 = icmp eq ptr %14543, null
  br i1 %14544, label %14545, label %14598

14545:                                            ; preds = %14538
  br label %14546

14546:                                            ; preds = %14545
  br label %14547

14547:                                            ; preds = %14546
  call void @llvm.lifetime.start.p0(i64 4, ptr %342) #11
  %14548 = call ptr @__errno_location() #12
  %14549 = load i32, ptr %14548, align 4, !tbaa !5
  store i32 %14549, ptr %342, align 4, !tbaa !5
  %14550 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14551 = call i32 @s2n_print_stacktrace(ptr noundef %14550)
  %14552 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14553 = trunc i8 %14552 to i1
  br i1 %14553, label %14554, label %14576

14554:                                            ; preds = %14547
  %14555 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14556 = call i32 @fileno(ptr noundef %14555) #11
  %14557 = call i32 @isatty(i32 noundef %14556) #11
  %14558 = icmp ne i32 %14557, 0
  br i1 %14558, label %14559, label %14576

14559:                                            ; preds = %14554
  %14560 = load i32, ptr %342, align 4, !tbaa !5
  %14561 = call ptr @__errno_location() #12
  store i32 %14560, ptr %14561, align 4, !tbaa !5
  %14562 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14563 = load i32, ptr @test_count, align 4, !tbaa !5
  %14564 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14565 = load i32, ptr %14564, align 4, !tbaa !5
  %14566 = call ptr @s2n_strerror(i32 noundef %14565, ptr noundef @.str.4)
  %14567 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14568 = load i32, ptr %14567, align 4, !tbaa !5
  %14569 = call ptr @s2n_strerror_debug(i32 noundef %14568, ptr noundef @.str.4)
  %14570 = call ptr @__errno_location() #12
  %14571 = load i32, ptr %14570, align 4, !tbaa !5
  %14572 = call ptr @strerror(i32 noundef %14571) #11
  %14573 = call ptr @__errno_location() #12
  %14574 = load i32, ptr %14573, align 4, !tbaa !5
  %14575 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14562, ptr noundef @.str.2, i32 noundef %14563, ptr noundef @.str.113, ptr noundef @.str.1, i32 noundef 675, ptr noundef %14566, ptr noundef %14569, ptr noundef %14572, i32 noundef %14574) #11
  br label %14593

14576:                                            ; preds = %14554, %14547
  %14577 = load i32, ptr %342, align 4, !tbaa !5
  %14578 = call ptr @__errno_location() #12
  store i32 %14577, ptr %14578, align 4, !tbaa !5
  %14579 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14580 = load i32, ptr @test_count, align 4, !tbaa !5
  %14581 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14582 = load i32, ptr %14581, align 4, !tbaa !5
  %14583 = call ptr @s2n_strerror(i32 noundef %14582, ptr noundef @.str.4)
  %14584 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14585 = load i32, ptr %14584, align 4, !tbaa !5
  %14586 = call ptr @s2n_strerror_debug(i32 noundef %14585, ptr noundef @.str.4)
  %14587 = call ptr @__errno_location() #12
  %14588 = load i32, ptr %14587, align 4, !tbaa !5
  %14589 = call ptr @strerror(i32 noundef %14588) #11
  %14590 = call ptr @__errno_location() #12
  %14591 = load i32, ptr %14590, align 4, !tbaa !5
  %14592 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14579, ptr noundef @.str.5, i32 noundef %14580, ptr noundef @.str.113, ptr noundef @.str.1, i32 noundef 675, ptr noundef %14583, ptr noundef %14586, ptr noundef %14589, i32 noundef %14591) #11
  br label %14593

14593:                                            ; preds = %14576, %14559
  call void @llvm.lifetime.end.p0(i64 4, ptr %342) #11
  br label %14594

14594:                                            ; preds = %14593
  br label %14595

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

14596:                                            ; No predecessors!
  br label %14597

14597:                                            ; preds = %14596
  br label %14598

14598:                                            ; preds = %14597, %14538
  br label %14599

14599:                                            ; preds = %14598
  br label %14600

14600:                                            ; preds = %14599
  br label %14601

14601:                                            ; preds = %14600
  %14602 = load i32, ptr @test_count, align 4, !tbaa !5
  %14603 = add nsw i32 %14602, 1
  store i32 %14603, ptr @test_count, align 4, !tbaa !5
  %14604 = load ptr, ptr %340, align 8, !tbaa !9
  %14605 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %14604, i32 0, i32 6
  %14606 = load ptr, ptr %14605, align 8, !tbaa !15
  %14607 = getelementptr inbounds %struct.s2n_record_algorithm, ptr %14606, i32 0, i32 3
  %14608 = load i64, ptr %14607, align 8, !tbaa !17
  %14609 = icmp ugt i64 %14608, 0
  br i1 %14609, label %14663, label %14610

14610:                                            ; preds = %14601
  br label %14611

14611:                                            ; preds = %14610
  br label %14612

14612:                                            ; preds = %14611
  call void @llvm.lifetime.start.p0(i64 4, ptr %343) #11
  %14613 = call ptr @__errno_location() #12
  %14614 = load i32, ptr %14613, align 4, !tbaa !5
  store i32 %14614, ptr %343, align 4, !tbaa !5
  %14615 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14616 = call i32 @s2n_print_stacktrace(ptr noundef %14615)
  %14617 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14618 = trunc i8 %14617 to i1
  br i1 %14618, label %14619, label %14641

14619:                                            ; preds = %14612
  %14620 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14621 = call i32 @fileno(ptr noundef %14620) #11
  %14622 = call i32 @isatty(i32 noundef %14621) #11
  %14623 = icmp ne i32 %14622, 0
  br i1 %14623, label %14624, label %14641

14624:                                            ; preds = %14619
  %14625 = load i32, ptr %343, align 4, !tbaa !5
  %14626 = call ptr @__errno_location() #12
  store i32 %14625, ptr %14626, align 4, !tbaa !5
  %14627 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14628 = load i32, ptr @test_count, align 4, !tbaa !5
  %14629 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14630 = load i32, ptr %14629, align 4, !tbaa !5
  %14631 = call ptr @s2n_strerror(i32 noundef %14630, ptr noundef @.str.4)
  %14632 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14633 = load i32, ptr %14632, align 4, !tbaa !5
  %14634 = call ptr @s2n_strerror_debug(i32 noundef %14633, ptr noundef @.str.4)
  %14635 = call ptr @__errno_location() #12
  %14636 = load i32, ptr %14635, align 4, !tbaa !5
  %14637 = call ptr @strerror(i32 noundef %14636) #11
  %14638 = call ptr @__errno_location() #12
  %14639 = load i32, ptr %14638, align 4, !tbaa !5
  %14640 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14627, ptr noundef @.str.2, i32 noundef %14628, ptr noundef @.str.114, ptr noundef @.str.1, i32 noundef 676, ptr noundef %14631, ptr noundef %14634, ptr noundef %14637, i32 noundef %14639) #11
  br label %14658

14641:                                            ; preds = %14619, %14612
  %14642 = load i32, ptr %343, align 4, !tbaa !5
  %14643 = call ptr @__errno_location() #12
  store i32 %14642, ptr %14643, align 4, !tbaa !5
  %14644 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14645 = load i32, ptr @test_count, align 4, !tbaa !5
  %14646 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14647 = load i32, ptr %14646, align 4, !tbaa !5
  %14648 = call ptr @s2n_strerror(i32 noundef %14647, ptr noundef @.str.4)
  %14649 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14650 = load i32, ptr %14649, align 4, !tbaa !5
  %14651 = call ptr @s2n_strerror_debug(i32 noundef %14650, ptr noundef @.str.4)
  %14652 = call ptr @__errno_location() #12
  %14653 = load i32, ptr %14652, align 4, !tbaa !5
  %14654 = call ptr @strerror(i32 noundef %14653) #11
  %14655 = call ptr @__errno_location() #12
  %14656 = load i32, ptr %14655, align 4, !tbaa !5
  %14657 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14644, ptr noundef @.str.5, i32 noundef %14645, ptr noundef @.str.114, ptr noundef @.str.1, i32 noundef 676, ptr noundef %14648, ptr noundef %14651, ptr noundef %14654, i32 noundef %14656) #11
  br label %14658

14658:                                            ; preds = %14641, %14624
  call void @llvm.lifetime.end.p0(i64 4, ptr %343) #11
  br label %14659

14659:                                            ; preds = %14658
  br label %14660

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

14661:                                            ; No predecessors!
  br label %14662

14662:                                            ; preds = %14661
  br label %14663

14663:                                            ; preds = %14662, %14601
  br label %14664

14664:                                            ; preds = %14663
  br label %14665

14665:                                            ; preds = %14664
  br label %14666

14666:                                            ; preds = %14665, %14531
  call void @llvm.lifetime.end.p0(i64 8, ptr %340) #11
  br label %14667

14667:                                            ; preds = %14666
  %14668 = load i64, ptr %339, align 8, !tbaa !20
  %14669 = add i64 %14668, 1
  store i64 %14669, ptr %339, align 8, !tbaa !20
  br label %14460, !llvm.loop !73

14670:                                            ; preds = %14465
  br label %14671

14671:                                            ; preds = %14670
  br label %14672

14672:                                            ; preds = %14671
  br label %14673

14673:                                            ; preds = %14672
  %14674 = load i32, ptr @test_count, align 4, !tbaa !5
  %14675 = add nsw i32 %14674, 1
  store i32 %14675, ptr @test_count, align 4, !tbaa !5
  %14676 = call i32 @s2n_connection_request_key_update(ptr noundef null, i32 noundef 0)
  %14677 = icmp eq i32 %14676, -1
  br i1 %14677, label %14731, label %14678

14678:                                            ; preds = %14673
  br label %14679

14679:                                            ; preds = %14678
  br label %14680

14680:                                            ; preds = %14679
  call void @llvm.lifetime.start.p0(i64 4, ptr %344) #11
  %14681 = call ptr @__errno_location() #12
  %14682 = load i32, ptr %14681, align 4, !tbaa !5
  store i32 %14682, ptr %344, align 4, !tbaa !5
  %14683 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14684 = call i32 @s2n_print_stacktrace(ptr noundef %14683)
  %14685 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14686 = trunc i8 %14685 to i1
  br i1 %14686, label %14687, label %14709

14687:                                            ; preds = %14680
  %14688 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14689 = call i32 @fileno(ptr noundef %14688) #11
  %14690 = call i32 @isatty(i32 noundef %14689) #11
  %14691 = icmp ne i32 %14690, 0
  br i1 %14691, label %14692, label %14709

14692:                                            ; preds = %14687
  %14693 = load i32, ptr %344, align 4, !tbaa !5
  %14694 = call ptr @__errno_location() #12
  store i32 %14693, ptr %14694, align 4, !tbaa !5
  %14695 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14696 = load i32, ptr @test_count, align 4, !tbaa !5
  %14697 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14698 = load i32, ptr %14697, align 4, !tbaa !5
  %14699 = call ptr @s2n_strerror(i32 noundef %14698, ptr noundef @.str.4)
  %14700 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14701 = load i32, ptr %14700, align 4, !tbaa !5
  %14702 = call ptr @s2n_strerror_debug(i32 noundef %14701, ptr noundef @.str.4)
  %14703 = call ptr @__errno_location() #12
  %14704 = load i32, ptr %14703, align 4, !tbaa !5
  %14705 = call ptr @strerror(i32 noundef %14704) #11
  %14706 = call ptr @__errno_location() #12
  %14707 = load i32, ptr %14706, align 4, !tbaa !5
  %14708 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14695, ptr noundef @.str.2, i32 noundef %14696, ptr noundef @.str.115, ptr noundef @.str.1, i32 noundef 684, ptr noundef %14699, ptr noundef %14702, ptr noundef %14705, i32 noundef %14707) #11
  br label %14726

14709:                                            ; preds = %14687, %14680
  %14710 = load i32, ptr %344, align 4, !tbaa !5
  %14711 = call ptr @__errno_location() #12
  store i32 %14710, ptr %14711, align 4, !tbaa !5
  %14712 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14713 = load i32, ptr @test_count, align 4, !tbaa !5
  %14714 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14715 = load i32, ptr %14714, align 4, !tbaa !5
  %14716 = call ptr @s2n_strerror(i32 noundef %14715, ptr noundef @.str.4)
  %14717 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14718 = load i32, ptr %14717, align 4, !tbaa !5
  %14719 = call ptr @s2n_strerror_debug(i32 noundef %14718, ptr noundef @.str.4)
  %14720 = call ptr @__errno_location() #12
  %14721 = load i32, ptr %14720, align 4, !tbaa !5
  %14722 = call ptr @strerror(i32 noundef %14721) #11
  %14723 = call ptr @__errno_location() #12
  %14724 = load i32, ptr %14723, align 4, !tbaa !5
  %14725 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14712, ptr noundef @.str.5, i32 noundef %14713, ptr noundef @.str.115, ptr noundef @.str.1, i32 noundef 684, ptr noundef %14716, ptr noundef %14719, ptr noundef %14722, i32 noundef %14724) #11
  br label %14726

14726:                                            ; preds = %14709, %14692
  call void @llvm.lifetime.end.p0(i64 4, ptr %344) #11
  br label %14727

14727:                                            ; preds = %14726
  br label %14728

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

14729:                                            ; No predecessors!
  br label %14730

14730:                                            ; preds = %14729
  br label %14731

14731:                                            ; preds = %14730, %14673
  br label %14732

14732:                                            ; preds = %14731
  br label %14733

14733:                                            ; preds = %14732
  br label %14734

14734:                                            ; preds = %14733
  %14735 = load i32, ptr @test_count, align 4, !tbaa !5
  %14736 = add nsw i32 %14735, 1
  store i32 %14736, ptr @test_count, align 4, !tbaa !5
  %14737 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14738 = load i32, ptr %14737, align 4, !tbaa !5
  %14739 = icmp eq i32 %14738, 402653193
  br i1 %14739, label %14793, label %14740

14740:                                            ; preds = %14734
  br label %14741

14741:                                            ; preds = %14740
  br label %14742

14742:                                            ; preds = %14741
  call void @llvm.lifetime.start.p0(i64 4, ptr %345) #11
  %14743 = call ptr @__errno_location() #12
  %14744 = load i32, ptr %14743, align 4, !tbaa !5
  store i32 %14744, ptr %345, align 4, !tbaa !5
  %14745 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14746 = call i32 @s2n_print_stacktrace(ptr noundef %14745)
  %14747 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14748 = trunc i8 %14747 to i1
  br i1 %14748, label %14749, label %14771

14749:                                            ; preds = %14742
  %14750 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14751 = call i32 @fileno(ptr noundef %14750) #11
  %14752 = call i32 @isatty(i32 noundef %14751) #11
  %14753 = icmp ne i32 %14752, 0
  br i1 %14753, label %14754, label %14771

14754:                                            ; preds = %14749
  %14755 = load i32, ptr %345, align 4, !tbaa !5
  %14756 = call ptr @__errno_location() #12
  store i32 %14755, ptr %14756, align 4, !tbaa !5
  %14757 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14758 = load i32, ptr @test_count, align 4, !tbaa !5
  %14759 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14760 = load i32, ptr %14759, align 4, !tbaa !5
  %14761 = call ptr @s2n_strerror(i32 noundef %14760, ptr noundef @.str.4)
  %14762 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14763 = load i32, ptr %14762, align 4, !tbaa !5
  %14764 = call ptr @s2n_strerror_debug(i32 noundef %14763, ptr noundef @.str.4)
  %14765 = call ptr @__errno_location() #12
  %14766 = load i32, ptr %14765, align 4, !tbaa !5
  %14767 = call ptr @strerror(i32 noundef %14766) #11
  %14768 = call ptr @__errno_location() #12
  %14769 = load i32, ptr %14768, align 4, !tbaa !5
  %14770 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14757, ptr noundef @.str.2, i32 noundef %14758, ptr noundef @.str.116, ptr noundef @.str.1, i32 noundef 684, ptr noundef %14761, ptr noundef %14764, ptr noundef %14767, i32 noundef %14769) #11
  br label %14788

14771:                                            ; preds = %14749, %14742
  %14772 = load i32, ptr %345, align 4, !tbaa !5
  %14773 = call ptr @__errno_location() #12
  store i32 %14772, ptr %14773, align 4, !tbaa !5
  %14774 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14775 = load i32, ptr @test_count, align 4, !tbaa !5
  %14776 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14777 = load i32, ptr %14776, align 4, !tbaa !5
  %14778 = call ptr @s2n_strerror(i32 noundef %14777, ptr noundef @.str.4)
  %14779 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14780 = load i32, ptr %14779, align 4, !tbaa !5
  %14781 = call ptr @s2n_strerror_debug(i32 noundef %14780, ptr noundef @.str.4)
  %14782 = call ptr @__errno_location() #12
  %14783 = load i32, ptr %14782, align 4, !tbaa !5
  %14784 = call ptr @strerror(i32 noundef %14783) #11
  %14785 = call ptr @__errno_location() #12
  %14786 = load i32, ptr %14785, align 4, !tbaa !5
  %14787 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14774, ptr noundef @.str.5, i32 noundef %14775, ptr noundef @.str.116, ptr noundef @.str.1, i32 noundef 684, ptr noundef %14778, ptr noundef %14781, ptr noundef %14784, i32 noundef %14786) #11
  br label %14788

14788:                                            ; preds = %14771, %14754
  call void @llvm.lifetime.end.p0(i64 4, ptr %345) #11
  br label %14789

14789:                                            ; preds = %14788
  br label %14790

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

14791:                                            ; No predecessors!
  br label %14792

14792:                                            ; preds = %14791
  br label %14793

14793:                                            ; preds = %14792, %14734
  br label %14794

14794:                                            ; preds = %14793
  br label %14795

14795:                                            ; preds = %14794
  br label %14796

14796:                                            ; preds = %14795
  %14797 = load i32, ptr @test_count, align 4, !tbaa !5
  %14798 = add nsw i32 %14797, 1
  store i32 %14798, ptr @test_count, align 4, !tbaa !5
  %14799 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14800 = load i32, ptr %14799, align 4, !tbaa !5
  %14801 = call ptr @s2n_strerror_debug(i32 noundef %14800, ptr noundef @.str.4)
  %14802 = icmp eq ptr %14801, null
  br i1 %14802, label %14803, label %14856

14803:                                            ; preds = %14796
  br label %14804

14804:                                            ; preds = %14803
  br label %14805

14805:                                            ; preds = %14804
  call void @llvm.lifetime.start.p0(i64 4, ptr %346) #11
  %14806 = call ptr @__errno_location() #12
  %14807 = load i32, ptr %14806, align 4, !tbaa !5
  store i32 %14807, ptr %346, align 4, !tbaa !5
  %14808 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14809 = call i32 @s2n_print_stacktrace(ptr noundef %14808)
  %14810 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14811 = trunc i8 %14810 to i1
  br i1 %14811, label %14812, label %14834

14812:                                            ; preds = %14805
  %14813 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14814 = call i32 @fileno(ptr noundef %14813) #11
  %14815 = call i32 @isatty(i32 noundef %14814) #11
  %14816 = icmp ne i32 %14815, 0
  br i1 %14816, label %14817, label %14834

14817:                                            ; preds = %14812
  %14818 = load i32, ptr %346, align 4, !tbaa !5
  %14819 = call ptr @__errno_location() #12
  store i32 %14818, ptr %14819, align 4, !tbaa !5
  %14820 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14821 = load i32, ptr @test_count, align 4, !tbaa !5
  %14822 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14823 = load i32, ptr %14822, align 4, !tbaa !5
  %14824 = call ptr @s2n_strerror(i32 noundef %14823, ptr noundef @.str.4)
  %14825 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14826 = load i32, ptr %14825, align 4, !tbaa !5
  %14827 = call ptr @s2n_strerror_debug(i32 noundef %14826, ptr noundef @.str.4)
  %14828 = call ptr @__errno_location() #12
  %14829 = load i32, ptr %14828, align 4, !tbaa !5
  %14830 = call ptr @strerror(i32 noundef %14829) #11
  %14831 = call ptr @__errno_location() #12
  %14832 = load i32, ptr %14831, align 4, !tbaa !5
  %14833 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14820, ptr noundef @.str.2, i32 noundef %14821, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 684, ptr noundef %14824, ptr noundef %14827, ptr noundef %14830, i32 noundef %14832) #11
  br label %14851

14834:                                            ; preds = %14812, %14805
  %14835 = load i32, ptr %346, align 4, !tbaa !5
  %14836 = call ptr @__errno_location() #12
  store i32 %14835, ptr %14836, align 4, !tbaa !5
  %14837 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14838 = load i32, ptr @test_count, align 4, !tbaa !5
  %14839 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14840 = load i32, ptr %14839, align 4, !tbaa !5
  %14841 = call ptr @s2n_strerror(i32 noundef %14840, ptr noundef @.str.4)
  %14842 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14843 = load i32, ptr %14842, align 4, !tbaa !5
  %14844 = call ptr @s2n_strerror_debug(i32 noundef %14843, ptr noundef @.str.4)
  %14845 = call ptr @__errno_location() #12
  %14846 = load i32, ptr %14845, align 4, !tbaa !5
  %14847 = call ptr @strerror(i32 noundef %14846) #11
  %14848 = call ptr @__errno_location() #12
  %14849 = load i32, ptr %14848, align 4, !tbaa !5
  %14850 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14837, ptr noundef @.str.5, i32 noundef %14838, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 684, ptr noundef %14841, ptr noundef %14844, ptr noundef %14847, i32 noundef %14849) #11
  br label %14851

14851:                                            ; preds = %14834, %14817
  call void @llvm.lifetime.end.p0(i64 4, ptr %346) #11
  br label %14852

14852:                                            ; preds = %14851
  br label %14853

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

14854:                                            ; No predecessors!
  br label %14855

14855:                                            ; preds = %14854
  br label %14856

14856:                                            ; preds = %14855, %14796
  br label %14857

14857:                                            ; preds = %14856
  br label %14858

14858:                                            ; preds = %14857
  br label %14859

14859:                                            ; preds = %14858
  br label %14860

14860:                                            ; preds = %14859
  br label %14861

14861:                                            ; preds = %14860
  %14862 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %14862, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %14863 = call ptr @__errno_location() #12
  store i32 0, ptr %14863, align 4, !tbaa !5
  br label %14864

14864:                                            ; preds = %14861
  br label %14865

14865:                                            ; preds = %14864
  br label %14866

14866:                                            ; preds = %14865
  br label %14867

14867:                                            ; preds = %14866
  call void @llvm.lifetime.start.p0(i64 8, ptr %347) #11
  %14868 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %14868, ptr %347, align 8, !tbaa !9
  br label %14869

14869:                                            ; preds = %14867
  br label %14870

14870:                                            ; preds = %14869
  br label %14871

14871:                                            ; preds = %14870
  %14872 = load i32, ptr @test_count, align 4, !tbaa !5
  %14873 = add nsw i32 %14872, 1
  store i32 %14873, ptr @test_count, align 4, !tbaa !5
  %14874 = load ptr, ptr %347, align 8, !tbaa !9
  %14875 = call i32 @s2n_connection_request_key_update(ptr noundef %14874, i32 noundef 1)
  %14876 = icmp eq i32 %14875, -1
  br i1 %14876, label %14930, label %14877

14877:                                            ; preds = %14871
  br label %14878

14878:                                            ; preds = %14877
  br label %14879

14879:                                            ; preds = %14878
  call void @llvm.lifetime.start.p0(i64 4, ptr %348) #11
  %14880 = call ptr @__errno_location() #12
  %14881 = load i32, ptr %14880, align 4, !tbaa !5
  store i32 %14881, ptr %348, align 4, !tbaa !5
  %14882 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14883 = call i32 @s2n_print_stacktrace(ptr noundef %14882)
  %14884 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14885 = trunc i8 %14884 to i1
  br i1 %14885, label %14886, label %14908

14886:                                            ; preds = %14879
  %14887 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14888 = call i32 @fileno(ptr noundef %14887) #11
  %14889 = call i32 @isatty(i32 noundef %14888) #11
  %14890 = icmp ne i32 %14889, 0
  br i1 %14890, label %14891, label %14908

14891:                                            ; preds = %14886
  %14892 = load i32, ptr %348, align 4, !tbaa !5
  %14893 = call ptr @__errno_location() #12
  store i32 %14892, ptr %14893, align 4, !tbaa !5
  %14894 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14895 = load i32, ptr @test_count, align 4, !tbaa !5
  %14896 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14897 = load i32, ptr %14896, align 4, !tbaa !5
  %14898 = call ptr @s2n_strerror(i32 noundef %14897, ptr noundef @.str.4)
  %14899 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14900 = load i32, ptr %14899, align 4, !tbaa !5
  %14901 = call ptr @s2n_strerror_debug(i32 noundef %14900, ptr noundef @.str.4)
  %14902 = call ptr @__errno_location() #12
  %14903 = load i32, ptr %14902, align 4, !tbaa !5
  %14904 = call ptr @strerror(i32 noundef %14903) #11
  %14905 = call ptr @__errno_location() #12
  %14906 = load i32, ptr %14905, align 4, !tbaa !5
  %14907 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14894, ptr noundef @.str.2, i32 noundef %14895, ptr noundef @.str.117, ptr noundef @.str.1, i32 noundef 690, ptr noundef %14898, ptr noundef %14901, ptr noundef %14904, i32 noundef %14906) #11
  br label %14925

14908:                                            ; preds = %14886, %14879
  %14909 = load i32, ptr %348, align 4, !tbaa !5
  %14910 = call ptr @__errno_location() #12
  store i32 %14909, ptr %14910, align 4, !tbaa !5
  %14911 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14912 = load i32, ptr @test_count, align 4, !tbaa !5
  %14913 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14914 = load i32, ptr %14913, align 4, !tbaa !5
  %14915 = call ptr @s2n_strerror(i32 noundef %14914, ptr noundef @.str.4)
  %14916 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14917 = load i32, ptr %14916, align 4, !tbaa !5
  %14918 = call ptr @s2n_strerror_debug(i32 noundef %14917, ptr noundef @.str.4)
  %14919 = call ptr @__errno_location() #12
  %14920 = load i32, ptr %14919, align 4, !tbaa !5
  %14921 = call ptr @strerror(i32 noundef %14920) #11
  %14922 = call ptr @__errno_location() #12
  %14923 = load i32, ptr %14922, align 4, !tbaa !5
  %14924 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14911, ptr noundef @.str.5, i32 noundef %14912, ptr noundef @.str.117, ptr noundef @.str.1, i32 noundef 690, ptr noundef %14915, ptr noundef %14918, ptr noundef %14921, i32 noundef %14923) #11
  br label %14925

14925:                                            ; preds = %14908, %14891
  call void @llvm.lifetime.end.p0(i64 4, ptr %348) #11
  br label %14926

14926:                                            ; preds = %14925
  br label %14927

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

14928:                                            ; No predecessors!
  br label %14929

14929:                                            ; preds = %14928
  br label %14930

14930:                                            ; preds = %14929, %14871
  br label %14931

14931:                                            ; preds = %14930
  br label %14932

14932:                                            ; preds = %14931
  br label %14933

14933:                                            ; preds = %14932
  %14934 = load i32, ptr @test_count, align 4, !tbaa !5
  %14935 = add nsw i32 %14934, 1
  store i32 %14935, ptr @test_count, align 4, !tbaa !5
  %14936 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14937 = load i32, ptr %14936, align 4, !tbaa !5
  %14938 = icmp eq i32 %14937, 469762089
  br i1 %14938, label %14992, label %14939

14939:                                            ; preds = %14933
  br label %14940

14940:                                            ; preds = %14939
  br label %14941

14941:                                            ; preds = %14940
  call void @llvm.lifetime.start.p0(i64 4, ptr %349) #11
  %14942 = call ptr @__errno_location() #12
  %14943 = load i32, ptr %14942, align 4, !tbaa !5
  store i32 %14943, ptr %349, align 4, !tbaa !5
  %14944 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14945 = call i32 @s2n_print_stacktrace(ptr noundef %14944)
  %14946 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14947 = trunc i8 %14946 to i1
  br i1 %14947, label %14948, label %14970

14948:                                            ; preds = %14941
  %14949 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14950 = call i32 @fileno(ptr noundef %14949) #11
  %14951 = call i32 @isatty(i32 noundef %14950) #11
  %14952 = icmp ne i32 %14951, 0
  br i1 %14952, label %14953, label %14970

14953:                                            ; preds = %14948
  %14954 = load i32, ptr %349, align 4, !tbaa !5
  %14955 = call ptr @__errno_location() #12
  store i32 %14954, ptr %14955, align 4, !tbaa !5
  %14956 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14957 = load i32, ptr @test_count, align 4, !tbaa !5
  %14958 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14959 = load i32, ptr %14958, align 4, !tbaa !5
  %14960 = call ptr @s2n_strerror(i32 noundef %14959, ptr noundef @.str.4)
  %14961 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14962 = load i32, ptr %14961, align 4, !tbaa !5
  %14963 = call ptr @s2n_strerror_debug(i32 noundef %14962, ptr noundef @.str.4)
  %14964 = call ptr @__errno_location() #12
  %14965 = load i32, ptr %14964, align 4, !tbaa !5
  %14966 = call ptr @strerror(i32 noundef %14965) #11
  %14967 = call ptr @__errno_location() #12
  %14968 = load i32, ptr %14967, align 4, !tbaa !5
  %14969 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14956, ptr noundef @.str.2, i32 noundef %14957, ptr noundef @.str.107, ptr noundef @.str.1, i32 noundef 690, ptr noundef %14960, ptr noundef %14963, ptr noundef %14966, i32 noundef %14968) #11
  br label %14987

14970:                                            ; preds = %14948, %14941
  %14971 = load i32, ptr %349, align 4, !tbaa !5
  %14972 = call ptr @__errno_location() #12
  store i32 %14971, ptr %14972, align 4, !tbaa !5
  %14973 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14974 = load i32, ptr @test_count, align 4, !tbaa !5
  %14975 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14976 = load i32, ptr %14975, align 4, !tbaa !5
  %14977 = call ptr @s2n_strerror(i32 noundef %14976, ptr noundef @.str.4)
  %14978 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14979 = load i32, ptr %14978, align 4, !tbaa !5
  %14980 = call ptr @s2n_strerror_debug(i32 noundef %14979, ptr noundef @.str.4)
  %14981 = call ptr @__errno_location() #12
  %14982 = load i32, ptr %14981, align 4, !tbaa !5
  %14983 = call ptr @strerror(i32 noundef %14982) #11
  %14984 = call ptr @__errno_location() #12
  %14985 = load i32, ptr %14984, align 4, !tbaa !5
  %14986 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14973, ptr noundef @.str.5, i32 noundef %14974, ptr noundef @.str.107, ptr noundef @.str.1, i32 noundef 690, ptr noundef %14977, ptr noundef %14980, ptr noundef %14983, i32 noundef %14985) #11
  br label %14987

14987:                                            ; preds = %14970, %14953
  call void @llvm.lifetime.end.p0(i64 4, ptr %349) #11
  br label %14988

14988:                                            ; preds = %14987
  br label %14989

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

14990:                                            ; No predecessors!
  br label %14991

14991:                                            ; preds = %14990
  br label %14992

14992:                                            ; preds = %14991, %14933
  br label %14993

14993:                                            ; preds = %14992
  br label %14994

14994:                                            ; preds = %14993
  br label %14995

14995:                                            ; preds = %14994
  %14996 = load i32, ptr @test_count, align 4, !tbaa !5
  %14997 = add nsw i32 %14996, 1
  store i32 %14997, ptr @test_count, align 4, !tbaa !5
  %14998 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14999 = load i32, ptr %14998, align 4, !tbaa !5
  %15000 = call ptr @s2n_strerror_debug(i32 noundef %14999, ptr noundef @.str.4)
  %15001 = icmp eq ptr %15000, null
  br i1 %15001, label %15002, label %15055

15002:                                            ; preds = %14995
  br label %15003

15003:                                            ; preds = %15002
  br label %15004

15004:                                            ; preds = %15003
  call void @llvm.lifetime.start.p0(i64 4, ptr %350) #11
  %15005 = call ptr @__errno_location() #12
  %15006 = load i32, ptr %15005, align 4, !tbaa !5
  store i32 %15006, ptr %350, align 4, !tbaa !5
  %15007 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15008 = call i32 @s2n_print_stacktrace(ptr noundef %15007)
  %15009 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15010 = trunc i8 %15009 to i1
  br i1 %15010, label %15011, label %15033

15011:                                            ; preds = %15004
  %15012 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15013 = call i32 @fileno(ptr noundef %15012) #11
  %15014 = call i32 @isatty(i32 noundef %15013) #11
  %15015 = icmp ne i32 %15014, 0
  br i1 %15015, label %15016, label %15033

15016:                                            ; preds = %15011
  %15017 = load i32, ptr %350, align 4, !tbaa !5
  %15018 = call ptr @__errno_location() #12
  store i32 %15017, ptr %15018, align 4, !tbaa !5
  %15019 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15020 = load i32, ptr @test_count, align 4, !tbaa !5
  %15021 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15022 = load i32, ptr %15021, align 4, !tbaa !5
  %15023 = call ptr @s2n_strerror(i32 noundef %15022, ptr noundef @.str.4)
  %15024 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15025 = load i32, ptr %15024, align 4, !tbaa !5
  %15026 = call ptr @s2n_strerror_debug(i32 noundef %15025, ptr noundef @.str.4)
  %15027 = call ptr @__errno_location() #12
  %15028 = load i32, ptr %15027, align 4, !tbaa !5
  %15029 = call ptr @strerror(i32 noundef %15028) #11
  %15030 = call ptr @__errno_location() #12
  %15031 = load i32, ptr %15030, align 4, !tbaa !5
  %15032 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15019, ptr noundef @.str.2, i32 noundef %15020, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 690, ptr noundef %15023, ptr noundef %15026, ptr noundef %15029, i32 noundef %15031) #11
  br label %15050

15033:                                            ; preds = %15011, %15004
  %15034 = load i32, ptr %350, align 4, !tbaa !5
  %15035 = call ptr @__errno_location() #12
  store i32 %15034, ptr %15035, align 4, !tbaa !5
  %15036 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15037 = load i32, ptr @test_count, align 4, !tbaa !5
  %15038 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15039 = load i32, ptr %15038, align 4, !tbaa !5
  %15040 = call ptr @s2n_strerror(i32 noundef %15039, ptr noundef @.str.4)
  %15041 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15042 = load i32, ptr %15041, align 4, !tbaa !5
  %15043 = call ptr @s2n_strerror_debug(i32 noundef %15042, ptr noundef @.str.4)
  %15044 = call ptr @__errno_location() #12
  %15045 = load i32, ptr %15044, align 4, !tbaa !5
  %15046 = call ptr @strerror(i32 noundef %15045) #11
  %15047 = call ptr @__errno_location() #12
  %15048 = load i32, ptr %15047, align 4, !tbaa !5
  %15049 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15036, ptr noundef @.str.5, i32 noundef %15037, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 690, ptr noundef %15040, ptr noundef %15043, ptr noundef %15046, i32 noundef %15048) #11
  br label %15050

15050:                                            ; preds = %15033, %15016
  call void @llvm.lifetime.end.p0(i64 4, ptr %350) #11
  br label %15051

15051:                                            ; preds = %15050
  br label %15052

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

15053:                                            ; No predecessors!
  br label %15054

15054:                                            ; preds = %15053
  br label %15055

15055:                                            ; preds = %15054, %14995
  br label %15056

15056:                                            ; preds = %15055
  br label %15057

15057:                                            ; preds = %15056
  br label %15058

15058:                                            ; preds = %15057
  br label %15059

15059:                                            ; preds = %15058
  br label %15060

15060:                                            ; preds = %15059
  %15061 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %15061, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %15062 = call ptr @__errno_location() #12
  store i32 0, ptr %15062, align 4, !tbaa !5
  br label %15063

15063:                                            ; preds = %15060
  br label %15064

15064:                                            ; preds = %15063
  br label %15065

15065:                                            ; preds = %15064
  br label %15066

15066:                                            ; preds = %15065
  %15067 = call i32 @s2n_connection_ptr_free(ptr noundef %347)
  %15068 = getelementptr inbounds %struct.s2n_result, ptr %351, i32 0, i32 0
  store i32 %15067, ptr %15068, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %347) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %352) #11
  %15069 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %15069, ptr %352, align 8, !tbaa !9
  br label %15070

15070:                                            ; preds = %15066
  %15071 = load i32, ptr @test_count, align 4, !tbaa !5
  %15072 = add nsw i32 %15071, 1
  store i32 %15072, ptr @test_count, align 4, !tbaa !5
  %15073 = load ptr, ptr %352, align 8, !tbaa !9
  %15074 = getelementptr inbounds %struct.s2n_connection, ptr %15073, i32 0, i32 94
  %15075 = call zeroext i1 @s2n_atomic_flag_test(ptr noundef %15074)
  br i1 %15075, label %15076, label %15129

15076:                                            ; preds = %15070
  br label %15077

15077:                                            ; preds = %15076
  br label %15078

15078:                                            ; preds = %15077
  call void @llvm.lifetime.start.p0(i64 4, ptr %353) #11
  %15079 = call ptr @__errno_location() #12
  %15080 = load i32, ptr %15079, align 4, !tbaa !5
  store i32 %15080, ptr %353, align 4, !tbaa !5
  %15081 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15082 = call i32 @s2n_print_stacktrace(ptr noundef %15081)
  %15083 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15084 = trunc i8 %15083 to i1
  br i1 %15084, label %15085, label %15107

15085:                                            ; preds = %15078
  %15086 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15087 = call i32 @fileno(ptr noundef %15086) #11
  %15088 = call i32 @isatty(i32 noundef %15087) #11
  %15089 = icmp ne i32 %15088, 0
  br i1 %15089, label %15090, label %15107

15090:                                            ; preds = %15085
  %15091 = load i32, ptr %353, align 4, !tbaa !5
  %15092 = call ptr @__errno_location() #12
  store i32 %15091, ptr %15092, align 4, !tbaa !5
  %15093 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15094 = load i32, ptr @test_count, align 4, !tbaa !5
  %15095 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15096 = load i32, ptr %15095, align 4, !tbaa !5
  %15097 = call ptr @s2n_strerror(i32 noundef %15096, ptr noundef @.str.4)
  %15098 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15099 = load i32, ptr %15098, align 4, !tbaa !5
  %15100 = call ptr @s2n_strerror_debug(i32 noundef %15099, ptr noundef @.str.4)
  %15101 = call ptr @__errno_location() #12
  %15102 = load i32, ptr %15101, align 4, !tbaa !5
  %15103 = call ptr @strerror(i32 noundef %15102) #11
  %15104 = call ptr @__errno_location() #12
  %15105 = load i32, ptr %15104, align 4, !tbaa !5
  %15106 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15093, ptr noundef @.str.2, i32 noundef %15094, ptr noundef @.str.94, ptr noundef @.str.1, i32 noundef 696, ptr noundef %15097, ptr noundef %15100, ptr noundef %15103, i32 noundef %15105) #11
  br label %15124

15107:                                            ; preds = %15085, %15078
  %15108 = load i32, ptr %353, align 4, !tbaa !5
  %15109 = call ptr @__errno_location() #12
  store i32 %15108, ptr %15109, align 4, !tbaa !5
  %15110 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15111 = load i32, ptr @test_count, align 4, !tbaa !5
  %15112 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15113 = load i32, ptr %15112, align 4, !tbaa !5
  %15114 = call ptr @s2n_strerror(i32 noundef %15113, ptr noundef @.str.4)
  %15115 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15116 = load i32, ptr %15115, align 4, !tbaa !5
  %15117 = call ptr @s2n_strerror_debug(i32 noundef %15116, ptr noundef @.str.4)
  %15118 = call ptr @__errno_location() #12
  %15119 = load i32, ptr %15118, align 4, !tbaa !5
  %15120 = call ptr @strerror(i32 noundef %15119) #11
  %15121 = call ptr @__errno_location() #12
  %15122 = load i32, ptr %15121, align 4, !tbaa !5
  %15123 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15110, ptr noundef @.str.5, i32 noundef %15111, ptr noundef @.str.94, ptr noundef @.str.1, i32 noundef 696, ptr noundef %15114, ptr noundef %15117, ptr noundef %15120, i32 noundef %15122) #11
  br label %15124

15124:                                            ; preds = %15107, %15090
  call void @llvm.lifetime.end.p0(i64 4, ptr %353) #11
  br label %15125

15125:                                            ; preds = %15124
  br label %15126

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

15127:                                            ; No predecessors!
  br label %15128

15128:                                            ; preds = %15127
  br label %15129

15129:                                            ; preds = %15128, %15070
  br label %15130

15130:                                            ; preds = %15129
  br label %15131

15131:                                            ; preds = %15130
  br label %15132

15132:                                            ; preds = %15131
  %15133 = load i32, ptr @test_count, align 4, !tbaa !5
  %15134 = add nsw i32 %15133, 1
  store i32 %15134, ptr @test_count, align 4, !tbaa !5
  %15135 = load ptr, ptr %352, align 8, !tbaa !9
  %15136 = call i32 @s2n_connection_request_key_update(ptr noundef %15135, i32 noundef 0)
  %15137 = icmp eq i32 %15136, -1
  br i1 %15137, label %15138, label %15191

15138:                                            ; preds = %15132
  br label %15139

15139:                                            ; preds = %15138
  br label %15140

15140:                                            ; preds = %15139
  call void @llvm.lifetime.start.p0(i64 4, ptr %354) #11
  %15141 = call ptr @__errno_location() #12
  %15142 = load i32, ptr %15141, align 4, !tbaa !5
  store i32 %15142, ptr %354, align 4, !tbaa !5
  %15143 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15144 = call i32 @s2n_print_stacktrace(ptr noundef %15143)
  %15145 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15146 = trunc i8 %15145 to i1
  br i1 %15146, label %15147, label %15169

15147:                                            ; preds = %15140
  %15148 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15149 = call i32 @fileno(ptr noundef %15148) #11
  %15150 = call i32 @isatty(i32 noundef %15149) #11
  %15151 = icmp ne i32 %15150, 0
  br i1 %15151, label %15152, label %15169

15152:                                            ; preds = %15147
  %15153 = load i32, ptr %354, align 4, !tbaa !5
  %15154 = call ptr @__errno_location() #12
  store i32 %15153, ptr %15154, align 4, !tbaa !5
  %15155 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15156 = load i32, ptr @test_count, align 4, !tbaa !5
  %15157 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15158 = load i32, ptr %15157, align 4, !tbaa !5
  %15159 = call ptr @s2n_strerror(i32 noundef %15158, ptr noundef @.str.4)
  %15160 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15161 = load i32, ptr %15160, align 4, !tbaa !5
  %15162 = call ptr @s2n_strerror_debug(i32 noundef %15161, ptr noundef @.str.4)
  %15163 = call ptr @__errno_location() #12
  %15164 = load i32, ptr %15163, align 4, !tbaa !5
  %15165 = call ptr @strerror(i32 noundef %15164) #11
  %15166 = call ptr @__errno_location() #12
  %15167 = load i32, ptr %15166, align 4, !tbaa !5
  %15168 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15155, ptr noundef @.str.2, i32 noundef %15156, ptr noundef @.str.118, ptr noundef @.str.1, i32 noundef 697, ptr noundef %15159, ptr noundef %15162, ptr noundef %15165, i32 noundef %15167) #11
  br label %15186

15169:                                            ; preds = %15147, %15140
  %15170 = load i32, ptr %354, align 4, !tbaa !5
  %15171 = call ptr @__errno_location() #12
  store i32 %15170, ptr %15171, align 4, !tbaa !5
  %15172 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15173 = load i32, ptr @test_count, align 4, !tbaa !5
  %15174 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15175 = load i32, ptr %15174, align 4, !tbaa !5
  %15176 = call ptr @s2n_strerror(i32 noundef %15175, ptr noundef @.str.4)
  %15177 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15178 = load i32, ptr %15177, align 4, !tbaa !5
  %15179 = call ptr @s2n_strerror_debug(i32 noundef %15178, ptr noundef @.str.4)
  %15180 = call ptr @__errno_location() #12
  %15181 = load i32, ptr %15180, align 4, !tbaa !5
  %15182 = call ptr @strerror(i32 noundef %15181) #11
  %15183 = call ptr @__errno_location() #12
  %15184 = load i32, ptr %15183, align 4, !tbaa !5
  %15185 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15172, ptr noundef @.str.5, i32 noundef %15173, ptr noundef @.str.118, ptr noundef @.str.1, i32 noundef 697, ptr noundef %15176, ptr noundef %15179, ptr noundef %15182, i32 noundef %15184) #11
  br label %15186

15186:                                            ; preds = %15169, %15152
  call void @llvm.lifetime.end.p0(i64 4, ptr %354) #11
  br label %15187

15187:                                            ; preds = %15186
  br label %15188

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

15189:                                            ; No predecessors!
  br label %15190

15190:                                            ; preds = %15189
  br label %15191

15191:                                            ; preds = %15190, %15132
  br label %15192

15192:                                            ; preds = %15191
  br label %15193

15193:                                            ; preds = %15192
  br label %15194

15194:                                            ; preds = %15193
  %15195 = load i32, ptr @test_count, align 4, !tbaa !5
  %15196 = add nsw i32 %15195, 1
  store i32 %15196, ptr @test_count, align 4, !tbaa !5
  %15197 = load ptr, ptr %352, align 8, !tbaa !9
  %15198 = getelementptr inbounds %struct.s2n_connection, ptr %15197, i32 0, i32 94
  %15199 = call zeroext i1 @s2n_atomic_flag_test(ptr noundef %15198)
  br i1 %15199, label %15253, label %15200

15200:                                            ; preds = %15194
  br label %15201

15201:                                            ; preds = %15200
  br label %15202

15202:                                            ; preds = %15201
  call void @llvm.lifetime.start.p0(i64 4, ptr %355) #11
  %15203 = call ptr @__errno_location() #12
  %15204 = load i32, ptr %15203, align 4, !tbaa !5
  store i32 %15204, ptr %355, align 4, !tbaa !5
  %15205 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15206 = call i32 @s2n_print_stacktrace(ptr noundef %15205)
  %15207 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15208 = trunc i8 %15207 to i1
  br i1 %15208, label %15209, label %15231

15209:                                            ; preds = %15202
  %15210 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15211 = call i32 @fileno(ptr noundef %15210) #11
  %15212 = call i32 @isatty(i32 noundef %15211) #11
  %15213 = icmp ne i32 %15212, 0
  br i1 %15213, label %15214, label %15231

15214:                                            ; preds = %15209
  %15215 = load i32, ptr %355, align 4, !tbaa !5
  %15216 = call ptr @__errno_location() #12
  store i32 %15215, ptr %15216, align 4, !tbaa !5
  %15217 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15218 = load i32, ptr @test_count, align 4, !tbaa !5
  %15219 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15220 = load i32, ptr %15219, align 4, !tbaa !5
  %15221 = call ptr @s2n_strerror(i32 noundef %15220, ptr noundef @.str.4)
  %15222 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15223 = load i32, ptr %15222, align 4, !tbaa !5
  %15224 = call ptr @s2n_strerror_debug(i32 noundef %15223, ptr noundef @.str.4)
  %15225 = call ptr @__errno_location() #12
  %15226 = load i32, ptr %15225, align 4, !tbaa !5
  %15227 = call ptr @strerror(i32 noundef %15226) #11
  %15228 = call ptr @__errno_location() #12
  %15229 = load i32, ptr %15228, align 4, !tbaa !5
  %15230 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15217, ptr noundef @.str.2, i32 noundef %15218, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 698, ptr noundef %15221, ptr noundef %15224, ptr noundef %15227, i32 noundef %15229) #11
  br label %15248

15231:                                            ; preds = %15209, %15202
  %15232 = load i32, ptr %355, align 4, !tbaa !5
  %15233 = call ptr @__errno_location() #12
  store i32 %15232, ptr %15233, align 4, !tbaa !5
  %15234 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15235 = load i32, ptr @test_count, align 4, !tbaa !5
  %15236 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15237 = load i32, ptr %15236, align 4, !tbaa !5
  %15238 = call ptr @s2n_strerror(i32 noundef %15237, ptr noundef @.str.4)
  %15239 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15240 = load i32, ptr %15239, align 4, !tbaa !5
  %15241 = call ptr @s2n_strerror_debug(i32 noundef %15240, ptr noundef @.str.4)
  %15242 = call ptr @__errno_location() #12
  %15243 = load i32, ptr %15242, align 4, !tbaa !5
  %15244 = call ptr @strerror(i32 noundef %15243) #11
  %15245 = call ptr @__errno_location() #12
  %15246 = load i32, ptr %15245, align 4, !tbaa !5
  %15247 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15234, ptr noundef @.str.5, i32 noundef %15235, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 698, ptr noundef %15238, ptr noundef %15241, ptr noundef %15244, i32 noundef %15246) #11
  br label %15248

15248:                                            ; preds = %15231, %15214
  call void @llvm.lifetime.end.p0(i64 4, ptr %355) #11
  br label %15249

15249:                                            ; preds = %15248
  br label %15250

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

15251:                                            ; No predecessors!
  br label %15252

15252:                                            ; preds = %15251
  br label %15253

15253:                                            ; preds = %15252, %15194
  br label %15254

15254:                                            ; preds = %15253
  br label %15255

15255:                                            ; preds = %15254
  %15256 = call i32 @s2n_connection_ptr_free(ptr noundef %352)
  %15257 = getelementptr inbounds %struct.s2n_result, ptr %356, i32 0, i32 0
  store i32 %15256, ptr %15257, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %352) #11
  br label %15258

15258:                                            ; preds = %15255
  br label %15259

15259:                                            ; preds = %15258
  %15260 = call i32 @s2n_cleanup()
  %15261 = icmp eq i32 %15260, -1
  br i1 %15261, label %15262, label %15315

15262:                                            ; preds = %15259
  br label %15263

15263:                                            ; preds = %15262
  br label %15264

15264:                                            ; preds = %15263
  call void @llvm.lifetime.start.p0(i64 4, ptr %357) #11
  %15265 = call ptr @__errno_location() #12
  %15266 = load i32, ptr %15265, align 4, !tbaa !5
  store i32 %15266, ptr %357, align 4, !tbaa !5
  %15267 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15268 = call i32 @s2n_print_stacktrace(ptr noundef %15267)
  %15269 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15270 = trunc i8 %15269 to i1
  br i1 %15270, label %15271, label %15293

15271:                                            ; preds = %15264
  %15272 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15273 = call i32 @fileno(ptr noundef %15272) #11
  %15274 = call i32 @isatty(i32 noundef %15273) #11
  %15275 = icmp ne i32 %15274, 0
  br i1 %15275, label %15276, label %15293

15276:                                            ; preds = %15271
  %15277 = load i32, ptr %357, align 4, !tbaa !5
  %15278 = call ptr @__errno_location() #12
  store i32 %15277, ptr %15278, align 4, !tbaa !5
  %15279 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15280 = load i32, ptr @test_count, align 4, !tbaa !5
  %15281 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15282 = load i32, ptr %15281, align 4, !tbaa !5
  %15283 = call ptr @s2n_strerror(i32 noundef %15282, ptr noundef @.str.4)
  %15284 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15285 = load i32, ptr %15284, align 4, !tbaa !5
  %15286 = call ptr @s2n_strerror_debug(i32 noundef %15285, ptr noundef @.str.4)
  %15287 = call ptr @__errno_location() #12
  %15288 = load i32, ptr %15287, align 4, !tbaa !5
  %15289 = call ptr @strerror(i32 noundef %15288) #11
  %15290 = call ptr @__errno_location() #12
  %15291 = load i32, ptr %15290, align 4, !tbaa !5
  %15292 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15279, ptr noundef @.str.2, i32 noundef %15280, ptr noundef @.str.119, ptr noundef @.str.1, i32 noundef 702, ptr noundef %15283, ptr noundef %15286, ptr noundef %15289, i32 noundef %15291) #11
  br label %15310

15293:                                            ; preds = %15271, %15264
  %15294 = load i32, ptr %357, align 4, !tbaa !5
  %15295 = call ptr @__errno_location() #12
  store i32 %15294, ptr %15295, align 4, !tbaa !5
  %15296 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15297 = load i32, ptr @test_count, align 4, !tbaa !5
  %15298 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15299 = load i32, ptr %15298, align 4, !tbaa !5
  %15300 = call ptr @s2n_strerror(i32 noundef %15299, ptr noundef @.str.4)
  %15301 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15302 = load i32, ptr %15301, align 4, !tbaa !5
  %15303 = call ptr @s2n_strerror_debug(i32 noundef %15302, ptr noundef @.str.4)
  %15304 = call ptr @__errno_location() #12
  %15305 = load i32, ptr %15304, align 4, !tbaa !5
  %15306 = call ptr @strerror(i32 noundef %15305) #11
  %15307 = call ptr @__errno_location() #12
  %15308 = load i32, ptr %15307, align 4, !tbaa !5
  %15309 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15296, ptr noundef @.str.5, i32 noundef %15297, ptr noundef @.str.119, ptr noundef @.str.1, i32 noundef 702, ptr noundef %15300, ptr noundef %15303, ptr noundef %15306, i32 noundef %15308) #11
  br label %15310

15310:                                            ; preds = %15293, %15276
  call void @llvm.lifetime.end.p0(i64 4, ptr %357) #11
  br label %15311

15311:                                            ; preds = %15310
  br label %15312

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

15313:                                            ; No predecessors!
  br label %15314

15314:                                            ; preds = %15313
  br label %15315

15315:                                            ; preds = %15314, %15259
  br label %15316

15316:                                            ; preds = %15315
  br label %15317

15317:                                            ; preds = %15316
  br label %15318

15318:                                            ; preds = %15317
  br label %15319

15319:                                            ; preds = %15318
  %15320 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %15321 = icmp eq i32 %15320, -1
  br i1 %15321, label %15322, label %15375

15322:                                            ; preds = %15319
  br label %15323

15323:                                            ; preds = %15322
  br label %15324

15324:                                            ; preds = %15323
  call void @llvm.lifetime.start.p0(i64 4, ptr %358) #11
  %15325 = call ptr @__errno_location() #12
  %15326 = load i32, ptr %15325, align 4, !tbaa !5
  store i32 %15326, ptr %358, align 4, !tbaa !5
  %15327 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15328 = call i32 @s2n_print_stacktrace(ptr noundef %15327)
  %15329 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15330 = trunc i8 %15329 to i1
  br i1 %15330, label %15331, label %15353

15331:                                            ; preds = %15324
  %15332 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15333 = call i32 @fileno(ptr noundef %15332) #11
  %15334 = call i32 @isatty(i32 noundef %15333) #11
  %15335 = icmp ne i32 %15334, 0
  br i1 %15335, label %15336, label %15353

15336:                                            ; preds = %15331
  %15337 = load i32, ptr %358, align 4, !tbaa !5
  %15338 = call ptr @__errno_location() #12
  store i32 %15337, ptr %15338, align 4, !tbaa !5
  %15339 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15340 = load i32, ptr @test_count, align 4, !tbaa !5
  %15341 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15342 = load i32, ptr %15341, align 4, !tbaa !5
  %15343 = call ptr @s2n_strerror(i32 noundef %15342, ptr noundef @.str.4)
  %15344 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15345 = load i32, ptr %15344, align 4, !tbaa !5
  %15346 = call ptr @s2n_strerror_debug(i32 noundef %15345, ptr noundef @.str.4)
  %15347 = call ptr @__errno_location() #12
  %15348 = load i32, ptr %15347, align 4, !tbaa !5
  %15349 = call ptr @strerror(i32 noundef %15348) #11
  %15350 = call ptr @__errno_location() #12
  %15351 = load i32, ptr %15350, align 4, !tbaa !5
  %15352 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15339, ptr noundef @.str.2, i32 noundef %15340, ptr noundef @.str.120, ptr noundef @.str.1, i32 noundef 702, ptr noundef %15343, ptr noundef %15346, ptr noundef %15349, i32 noundef %15351) #11
  br label %15370

15353:                                            ; preds = %15331, %15324
  %15354 = load i32, ptr %358, align 4, !tbaa !5
  %15355 = call ptr @__errno_location() #12
  store i32 %15354, ptr %15355, align 4, !tbaa !5
  %15356 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15357 = load i32, ptr @test_count, align 4, !tbaa !5
  %15358 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15359 = load i32, ptr %15358, align 4, !tbaa !5
  %15360 = call ptr @s2n_strerror(i32 noundef %15359, ptr noundef @.str.4)
  %15361 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15362 = load i32, ptr %15361, align 4, !tbaa !5
  %15363 = call ptr @s2n_strerror_debug(i32 noundef %15362, ptr noundef @.str.4)
  %15364 = call ptr @__errno_location() #12
  %15365 = load i32, ptr %15364, align 4, !tbaa !5
  %15366 = call ptr @strerror(i32 noundef %15365) #11
  %15367 = call ptr @__errno_location() #12
  %15368 = load i32, ptr %15367, align 4, !tbaa !5
  %15369 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15356, ptr noundef @.str.5, i32 noundef %15357, ptr noundef @.str.120, ptr noundef @.str.1, i32 noundef 702, ptr noundef %15360, ptr noundef %15363, ptr noundef %15366, i32 noundef %15368) #11
  br label %15370

15370:                                            ; preds = %15353, %15336
  call void @llvm.lifetime.end.p0(i64 4, ptr %358) #11
  br label %15371

15371:                                            ; preds = %15370
  br label %15372

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

15373:                                            ; No predecessors!
  br label %15374

15374:                                            ; preds = %15373
  br label %15375

15375:                                            ; preds = %15374, %15319
  br label %15376

15376:                                            ; preds = %15375
  br label %15377

15377:                                            ; preds = %15376
  %15378 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15379 = trunc i8 %15378 to i1
  br i1 %15379, label %15380, label %15396

15380:                                            ; preds = %15377
  %15381 = load ptr, ptr @stdout, align 8, !tbaa !9
  %15382 = call i32 @fileno(ptr noundef %15381) #11
  %15383 = call i32 @isatty(i32 noundef %15382) #11
  %15384 = icmp ne i32 %15383, 0
  br i1 %15384, label %15385, label %15396

15385:                                            ; preds = %15380
  %15386 = load i32, ptr @test_count, align 4, !tbaa !5
  %15387 = icmp ne i32 %15386, 0
  br i1 %15387, label %15388, label %15392

15388:                                            ; preds = %15385
  %15389 = load ptr, ptr @stdout, align 8, !tbaa !9
  %15390 = load i32, ptr @test_count, align 4, !tbaa !5
  %15391 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15389, ptr noundef @.str.121, i32 noundef %15390) #11
  br label %15395

15392:                                            ; preds = %15385
  %15393 = load ptr, ptr @stdout, align 8, !tbaa !9
  %15394 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15393, ptr noundef @.str.122) #11
  br label %15395

15395:                                            ; preds = %15392, %15388
  br label %15407

15396:                                            ; preds = %15380, %15377
  %15397 = load i32, ptr @test_count, align 4, !tbaa !5
  %15398 = icmp ne i32 %15397, 0
  br i1 %15398, label %15399, label %15403

15399:                                            ; preds = %15396
  %15400 = load ptr, ptr @stdout, align 8, !tbaa !9
  %15401 = load i32, ptr @test_count, align 4, !tbaa !5
  %15402 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15400, ptr noundef @.str.123, i32 noundef %15401) #11
  br label %15406

15403:                                            ; preds = %15396
  %15404 = load ptr, ptr @stdout, align 8, !tbaa !9
  %15405 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15404, ptr noundef @.str.124) #11
  br label %15406

15406:                                            ; preds = %15403, %15399
  br label %15407

15407:                                            ; preds = %15406, %15395
  store i32 0, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %15412

15408:                                            ; No predecessors!
  br label %15409

15409:                                            ; preds = %15408
  br label %15410

15410:                                            ; preds = %15409
  br label %15411

15411:                                            ; preds = %15410
  store i32 0, ptr %12, align 4
  br label %15412

15412:                                            ; preds = %15411, %15407, %10704, %10095, %9482, %8824, %8217, %7433, %5416, %4830
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #11
  br label %15413

15413:                                            ; preds = %15412, %601
  %15414 = call i32 @s2n_free(ptr noundef %10)
  call void @llvm.lifetime.end.p0(i64 24, ptr %10) #11
  %15415 = load i32, ptr %12, align 4
  switch i32 %15415, label %15418 [
    i32 0, label %15416
    i32 1, label %15416
  ]

15416:                                            ; preds = %15413, %15413
  %15417 = load i32, ptr %3, align 4
  ret i32 %15417

15418:                                            ; preds = %15413
  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 i32 @s2n_disable_tls13_in_test(...) #2

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

declare i32 @s2n_free(ptr noundef) #2

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

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

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

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

declare i32 @s2n_key_update_write(ptr noundef) #2

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

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

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

declare i32 @s2n_stuffer_free(ptr noundef) #2

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

declare ptr @s2n_config_new() #2

declare i32 @s2n_config_enable_quic(ptr noundef) #2

declare ptr @s2n_connection_new(i32 noundef) #2

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

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

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

declare void @s2n_debug_info_reset() #2

declare i32 @s2n_connection_free(ptr noundef) #2

declare i32 @s2n_config_free(ptr noundef) #2

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

declare i32 @s2n_connection_ptr_free(ptr noundef) #2

declare i32 @s2n_stuffer_write_uint8(ptr noundef, i8 noundef zeroext) #2

declare i32 @s2n_stuffer_wipe(ptr noundef) #2

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

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

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

declare i32 @s2n_calculate_stacktrace() #2

declare zeroext i1 @s2n_atomic_flag_test(ptr noundef) #2

declare void @s2n_atomic_flag_clear(ptr noundef) #2

declare void @s2n_atomic_flag_set(ptr noundef) #2

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

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

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

; Function Attrs: nounwind willreturn memory(read)
declare i32 @memcmp(ptr noundef, ptr noundef, i64 noundef) #10

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

declare i32 @s2n_increment_sequence_number(ptr noundef) #2

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

declare i32 @s2n_config_ptr_free(ptr noundef) #2

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

declare i32 @s2n_connection_set_secrets(ptr noundef) #2

declare i32 @s2n_connection_release_buffers(ptr noundef) #2

declare i32 @s2n_cleanup() #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 = { nocallback nofree nounwind willreturn memory(argmem: write) }
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 = { nocallback nofree nosync nounwind willreturn memory(none) }
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, !10, i64 48}
!16 = !{!"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}
!17 = !{!18, !19, i64 16}
!18 = !{!"s2n_record_algorithm", !10, i64 0, !6, i64 8, !6, i64 12, !19, i64 16}
!19 = !{!"long", !7, i64 0}
!20 = !{!19, !19, i64 0}
!21 = !{!7, !7, i64 0}
!22 = !{!23, !6, i64 28}
!23 = !{!"s2n_stuffer", !24, i64 0, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 36, !6, i64 36}
!24 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!25 = !{!23, !6, i64 24}
!26 = !{!27, !7, i64 220}
!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, !19, i64 168, !19, 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, !29, i64 240, !10, i64 632, !10, i64 640, !30, i64 648, !35, i64 1144, !38, i64 1688, !10, i64 1752, !7, i64 1760, !6, i64 1764, !7, i64 1768, !23, i64 1776, !23, i64 1816, !23, i64 1856, !23, i64 1896, !6, i64 1936, !19, i64 1944, !7, i64 1952, !23, i64 1960, !7, i64 2000, !7, i64 2001, !7, i64 2002, !12, i64 2003, !41, i64 2004, !41, i64 2008, !42, i64 2016, !40, i64 2208, !6, i64 2212, !40, i64 2216, !19, i64 2224, !7, i64 2232, !19, i64 2240, !19, i64 2248, !19, i64 2256, !41, i64 2264, !41, i64 2268, !7, i64 2272, !7, i64 2528, !6, i64 2784, !24, i64 2792, !6, i64 2816, !24, i64 2824, !24, i64 2848, !24, i64 2872, !44, i64 2896, !46, i64 3704, !10, i64 3760, !10, i64 3768, !7, i64 3776, !6, i64 3780, !24, i64 3784, !6, i64 3808, !48, i64 3816, !7, i64 3848, !23, i64 3992, !24, i64 4032, !24, i64 4056, !12, i64 4080, !12, i64 4081, !12, i64 4082, !40, i64 4084, !40, i64 4086, !6, i64 4088, !6, i64 4092, !24, i64 4096, !6, i64 4120, !49, i64 4128, !41, i64 4176, !7, i64 4180, !7, i64 4181}
!28 = !{!"s2n_timer", !19, i64 0}
!29 = !{!"s2n_secrets", !7, i64 0, !6, i64 388}
!30 = !{!"s2n_kex_parameters", !31, i64 0, !32, i64 8, !7, i64 24, !32, i64 56, !33, i64 72, !33, i64 184, !7, i64 296, !34, i64 360, !24, i64 448, !24, i64 472}
!31 = !{!"s2n_dh_params", !10, i64 0}
!32 = !{!"s2n_ecc_evp_params", !10, i64 0, !10, i64 8}
!33 = !{!"s2n_kem_group_params", !10, i64 0, !34, i64 8, !32, i64 96}
!34 = !{!"s2n_kem_params", !10, i64 0, !24, i64 8, !24, i64 32, !24, i64 56, !12, i64 80}
!35 = !{!"s2n_handshake_parameters", !36, i64 0, !36, i64 48, !24, i64 96, !6, i64 120, !37, 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}
!36 = !{!"s2n_pkey", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40}
!37 = !{!"s2n_sig_scheme_list", !7, i64 0, !7, i64 256}
!38 = !{!"s2n_psk_parameters", !6, i64 0, !39, i64 8, !40, i64 40, !40, i64 42, !10, i64 48, !6, i64 56}
!39 = !{!"s2n_array", !24, i64 0, !6, i64 24, !6, i64 28}
!40 = !{!"short", !7, i64 0}
!41 = !{!"", !6, i64 0}
!42 = !{!"s2n_handshake", !23, 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, !43, i64 176, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 188}
!43 = !{!"s2n_offered_early_data", !10, i64 0}
!44 = !{!"s2n_client_hello", !24, i64 0, !45, i64 24, !24, i64 728, !24, i64 752, !24, 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}
!45 = !{!"", !7, i64 0, !24, i64 672, !40, i64 696}
!46 = !{!"s2n_x509_validator", !10, i64 0, !10, i64 8, !7, i64 16, !7, i64 17, !40, i64 18, !10, i64 24, !6, i64 32, !10, i64 40, !47, i64 48, !12, i64 52}
!47 = !{!"s2n_cert_validation_info", !6, i64 0, !6, i64 0}
!48 = !{!"s2n_ticket_fields", !24, i64 0, !6, i64 24}
!49 = !{!"s2n_post_handshake", !23, i64 0, !7, i64 40}
!50 = !{!27, !10, i64 232}
!51 = !{!52, !10, i64 0}
!52 = !{!"s2n_crypto_parameters", !10, i64 0, !53, i64 8, !53, i64 16, !54, i64 24, !54, i64 456, !7, i64 888, !7, i64 904, !7, i64 920, !7, i64 928}
!53 = !{!"s2n_session_key", !10, i64 0}
!54 = !{!"s2n_hmac_state", !6, i64 0, !40, i64 4, !6, i64 8, !40, i64 12, !7, i64 14, !55, i64 16, !55, i64 72, !55, i64 128, !55, i64 184, !7, i64 240, !7, i64 368}
!55 = !{!"s2n_hash_state", !10, i64 0, !6, i64 8, !7, i64 12, !19, i64 16, !7, i64 24}
!56 = !{!24, !6, i64 8}
!57 = !{!24, !10, i64 0}
!58 = !{!59, !10, i64 0}
!59 = !{!"s2n_debug_info", !10, i64 0, !10, i64 8}
!60 = !{!59, !10, i64 8}
!61 = !{!27, !7, i64 4181}
!62 = !{!27, !7, i64 4180}
!63 = distinct !{!63, !64}
!64 = !{!"llvm.loop.mustprogress"}
!65 = distinct !{!65, !64}
!66 = !{!67, !6, i64 420}
!67 = !{!"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, !68, i64 24, !24, 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, !19, i64 144, !10, i64 152, !19, i64 160, !19, 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, !69, i64 304, !40, 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, !24, i64 448}
!68 = !{!"certs_by_type", !7, i64 0}
!69 = !{!"s2n_x509_trust_store", !10, i64 0, !6, i64 8}
!70 = !{!71, !40, i64 0}
!71 = !{!"s2n_cipher_preferences", !40, i64 0, !10, i64 8, !12, i64 16}
!72 = !{!71, !10, i64 8}
!73 = distinct !{!73, !64}


; 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_suite = type { i8, ptr, ptr, [2 x i8], ptr, i32, ptr, [2 x ptr], i8, ptr, ptr, i32, i8 }
%struct.s2n_debug_info = type { ptr, ptr }
%struct.s2n_cipher_preferences = type { i16, ptr, i8 }
%struct.s2n_blob = type { ptr, i32, i32, i8 }
%struct.s2n_stuffer = type { %struct.s2n_blob, i32, i32, i32, i8 }

@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 [78 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 [56 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [97 x i8], align 1
@s2n_tls13_aes_256_gcm_sha384 = external global %struct.s2n_cipher_suite, align 8
@s2n_tls13_chacha20_poly1305_sha256 = external global %struct.s2n_cipher_suite, align 8
@s2n_ecdhe_ecdsa_with_aes_256_gcm_sha384 = external global %struct.s2n_cipher_suite, align 8
@.str.10 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [102 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [103 x i8], align 1
@_s2n_debug_info = external thread_local local_unnamed_addr global %struct.s2n_debug_info, align 8
@.str.48 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [109 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [107 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.81 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [111 x i8], align 1
@.str.85 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.86 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.88 = external hidden unnamed_addr constant [108 x i8], align 1
@.str.89 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.91 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.92 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.93 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.94 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.95 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.96 = external hidden unnamed_addr constant [114 x i8], align 1
@.str.97 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.98 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.99 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.100 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.101 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.102 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.103 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.104 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.105 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.106 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.107 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.108 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.109 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.110 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.111 = external hidden unnamed_addr constant [64 x i8], align 1
@cipher_preferences_test_all = external local_unnamed_addr constant %struct.s2n_cipher_preferences, align 8
@.str.112 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.113 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.114 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.115 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.116 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.117 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.118 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.119 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.120 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.121 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.122 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.123 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.124 = external hidden unnamed_addr constant [25 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local range(i32 -1, 1) i32 @main(i32 noundef %0, ptr nocapture noundef readnone %1) local_unnamed_addr #0 {
  %3 = alloca %struct.s2n_blob, align 8
  %4 = alloca [8 x i8], align 8
  %5 = alloca [5 x i8], align 1
  %6 = alloca %struct.s2n_blob, align 8
  %7 = alloca %struct.s2n_stuffer, align 8
  %8 = alloca i8, align 1
  %9 = alloca i32, align 4
  %10 = alloca i8, align 1
  %11 = alloca %struct.s2n_stuffer, align 8
  %12 = alloca i8, align 1
  %13 = alloca %struct.s2n_stuffer, align 8
  %14 = alloca %struct.s2n_stuffer, align 8
  %15 = alloca ptr, align 8
  %16 = alloca %struct.s2n_stuffer, align 8
  %17 = alloca %struct.s2n_stuffer, align 8
  %18 = alloca %struct.s2n_stuffer, align 8
  %19 = alloca %struct.s2n_stuffer, align 8
  %20 = alloca ptr, align 8
  %21 = alloca %struct.s2n_stuffer, align 8
  %22 = alloca ptr, align 8
  %23 = alloca %struct.s2n_stuffer, align 8
  %24 = alloca ptr, align 8
  %25 = alloca %struct.s2n_stuffer, align 8
  %26 = alloca i32, align 4
  %27 = alloca %struct.s2n_stuffer, align 8
  %28 = alloca i32, align 4
  %29 = alloca ptr, align 8
  %30 = alloca %struct.s2n_stuffer, align 8
  %31 = alloca i32, align 4
  %32 = alloca [8 x i8], align 8
  %33 = alloca %struct.s2n_stuffer, align 8
  %34 = alloca i32, align 4
  %35 = alloca ptr, align 8
  %36 = alloca %struct.s2n_stuffer, align 8
  %37 = alloca %struct.s2n_blob, align 8
  %38 = alloca i32, align 4
  %39 = alloca ptr, align 8
  %40 = alloca %struct.s2n_stuffer, align 8
  %41 = alloca %struct.s2n_blob, align 8
  %42 = alloca i32, align 4
  %43 = alloca ptr, align 8
  %44 = alloca i32, align 4
  %45 = alloca %struct.s2n_blob, align 8
  %46 = alloca [8 x i8], align 8
  %47 = alloca ptr, align 8
  %48 = alloca %struct.s2n_blob, align 8
  %49 = alloca [8 x i8], align 8
  %50 = alloca ptr, align 8
  %51 = alloca ptr, align 8
  %52 = alloca ptr, align 8
  %53 = alloca i32, align 4
  %54 = alloca ptr, align 8
  %55 = alloca %struct.s2n_stuffer, align 8
  %56 = alloca ptr, align 8
  %57 = alloca ptr, align 8
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %58 = load ptr, ptr @stdout, align 8, !tbaa !9
  %59 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %58, ptr noundef nonnull @.str, ptr noundef nonnull @.str.1) #12
  %60 = load ptr, ptr @stdout, align 8, !tbaa !9
  %61 = tail call i32 @fflush(ptr noundef %60)
  %62 = tail call i32 @s2n_in_unit_test_set(i1 noundef zeroext true) #12
  %63 = icmp eq i32 %62, -1
  br i1 %63, label %64, label %88

64:                                               ; preds = %2
  %65 = tail call ptr @__errno_location() #13
  %66 = load i32, ptr %65, align 4, !tbaa !5
  %67 = load ptr, ptr @stderr, align 8, !tbaa !9
  %68 = tail call i32 @s2n_print_stacktrace(ptr noundef %67) #12
  %69 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %70 = trunc nuw i8 %69 to i1
  br i1 %70, label %71, label %75

71:                                               ; preds = %64
  %72 = load ptr, ptr @stderr, align 8, !tbaa !9
  %73 = tail call i32 @fileno(ptr noundef %72) #12
  %74 = tail call i32 @isatty(i32 noundef %73) #12
  %.not991 = icmp eq i32 %74, 0
  br i1 %.not991, label %75, label %76

75:                                               ; preds = %71, %64
  br label %76

76:                                               ; preds = %71, %75
  %.str.5.sink = phi ptr [ @.str.5, %75 ], [ @.str.2, %71 ]
  store i32 %66, ptr %65, align 4, !tbaa !5
  %77 = load ptr, ptr @stderr, align 8, !tbaa !9
  %78 = load i32, ptr @test_count, align 4, !tbaa !5
  %79 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %80 = load i32, ptr %79, align 4, !tbaa !5
  %81 = tail call ptr @s2n_strerror(i32 noundef %80, ptr noundef nonnull @.str.4) #12
  %82 = load i32, ptr %79, align 4, !tbaa !5
  %83 = tail call ptr @s2n_strerror_debug(i32 noundef %82, ptr noundef nonnull @.str.4) #12
  %84 = load i32, ptr %65, align 4, !tbaa !5
  %85 = tail call ptr @strerror(i32 noundef %84) #12
  %86 = load i32, ptr %65, align 4, !tbaa !5
  %87 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %77, ptr noundef nonnull %.str.5.sink, i32 noundef %78, ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.1, i32 noundef 46, ptr noundef %81, ptr noundef %83, ptr noundef %85, i32 noundef %86) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

88:                                               ; preds = %2
  %89 = load i32, ptr @test_count, align 4, !tbaa !5
  %90 = add nsw i32 %89, 1
  store i32 %90, ptr @test_count, align 4, !tbaa !5
  %91 = tail call i32 @s2n_enable_atexit() #12
  %92 = icmp eq i32 %91, -1
  br i1 %92, label %93, label %117

93:                                               ; preds = %88
  %94 = tail call ptr @__errno_location() #13
  %95 = load i32, ptr %94, align 4, !tbaa !5
  %96 = load ptr, ptr @stderr, align 8, !tbaa !9
  %97 = tail call i32 @s2n_print_stacktrace(ptr noundef %96) #12
  %98 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %99 = trunc nuw i8 %98 to i1
  br i1 %99, label %100, label %104

100:                                              ; preds = %93
  %101 = load ptr, ptr @stderr, align 8, !tbaa !9
  %102 = tail call i32 @fileno(ptr noundef %101) #12
  %103 = tail call i32 @isatty(i32 noundef %102) #12
  %.not990 = icmp eq i32 %103, 0
  br i1 %.not990, label %104, label %105

104:                                              ; preds = %100, %93
  br label %105

105:                                              ; preds = %100, %104
  %.str.5.sink1118 = phi ptr [ @.str.5, %104 ], [ @.str.2, %100 ]
  store i32 %95, ptr %94, align 4, !tbaa !5
  %106 = load ptr, ptr @stderr, align 8, !tbaa !9
  %107 = load i32, ptr @test_count, align 4, !tbaa !5
  %108 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %109 = load i32, ptr %108, align 4, !tbaa !5
  %110 = tail call ptr @s2n_strerror(i32 noundef %109, ptr noundef nonnull @.str.4) #12
  %111 = load i32, ptr %108, align 4, !tbaa !5
  %112 = tail call ptr @s2n_strerror_debug(i32 noundef %111, ptr noundef nonnull @.str.4) #12
  %113 = load i32, ptr %94, align 4, !tbaa !5
  %114 = tail call ptr @strerror(i32 noundef %113) #12
  %115 = load i32, ptr %94, align 4, !tbaa !5
  %116 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %106, ptr noundef nonnull %.str.5.sink1118, i32 noundef %107, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.1, i32 noundef 46, ptr noundef %110, ptr noundef %112, ptr noundef %114, i32 noundef %115) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

117:                                              ; preds = %88
  %118 = tail call i32 @s2n_init() #12
  %119 = icmp eq i32 %118, -1
  br i1 %119, label %120, label %144

120:                                              ; preds = %117
  %121 = tail call ptr @__errno_location() #13
  %122 = load i32, ptr %121, align 4, !tbaa !5
  %123 = load ptr, ptr @stderr, align 8, !tbaa !9
  %124 = tail call i32 @s2n_print_stacktrace(ptr noundef %123) #12
  %125 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %126 = trunc nuw i8 %125 to i1
  br i1 %126, label %127, label %131

127:                                              ; preds = %120
  %128 = load ptr, ptr @stderr, align 8, !tbaa !9
  %129 = tail call i32 @fileno(ptr noundef %128) #12
  %130 = tail call i32 @isatty(i32 noundef %129) #12
  %.not989 = icmp eq i32 %130, 0
  br i1 %.not989, label %131, label %132

131:                                              ; preds = %127, %120
  br label %132

132:                                              ; preds = %127, %131
  %.str.5.sink1129 = phi ptr [ @.str.5, %131 ], [ @.str.2, %127 ]
  store i32 %122, ptr %121, align 4, !tbaa !5
  %133 = load ptr, ptr @stderr, align 8, !tbaa !9
  %134 = load i32, ptr @test_count, align 4, !tbaa !5
  %135 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %136 = load i32, ptr %135, align 4, !tbaa !5
  %137 = tail call ptr @s2n_strerror(i32 noundef %136, ptr noundef nonnull @.str.4) #12
  %138 = load i32, ptr %135, align 4, !tbaa !5
  %139 = tail call ptr @s2n_strerror_debug(i32 noundef %138, ptr noundef nonnull @.str.4) #12
  %140 = load i32, ptr %121, align 4, !tbaa !5
  %141 = tail call ptr @strerror(i32 noundef %140) #12
  %142 = load i32, ptr %121, align 4, !tbaa !5
  %143 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %133, ptr noundef nonnull %.str.5.sink1129, i32 noundef %134, ptr noundef nonnull @.str.7, ptr noundef nonnull @.str.1, i32 noundef 46, ptr noundef %137, ptr noundef %139, ptr noundef %141, i32 noundef %142) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

144:                                              ; preds = %117
  %145 = load i32, ptr @test_count, align 4, !tbaa !5
  %146 = add nsw i32 %145, 1
  store i32 %146, ptr @test_count, align 4, !tbaa !5
  %147 = tail call i32 (...) @s2n_disable_tls13_in_test() #12
  %148 = icmp eq i32 %147, -1
  br i1 %148, label %149, label %173

149:                                              ; preds = %144
  %150 = tail call ptr @__errno_location() #13
  %151 = load i32, ptr %150, align 4, !tbaa !5
  %152 = load ptr, ptr @stderr, align 8, !tbaa !9
  %153 = tail call i32 @s2n_print_stacktrace(ptr noundef %152) #12
  %154 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %155 = trunc nuw i8 %154 to i1
  br i1 %155, label %156, label %160

156:                                              ; preds = %149
  %157 = load ptr, ptr @stderr, align 8, !tbaa !9
  %158 = tail call i32 @fileno(ptr noundef %157) #12
  %159 = tail call i32 @isatty(i32 noundef %158) #12
  %.not988 = icmp eq i32 %159, 0
  br i1 %.not988, label %160, label %161

160:                                              ; preds = %156, %149
  br label %161

161:                                              ; preds = %156, %160
  %.str.5.sink1140 = phi ptr [ @.str.5, %160 ], [ @.str.2, %156 ]
  store i32 %151, ptr %150, align 4, !tbaa !5
  %162 = load ptr, ptr @stderr, align 8, !tbaa !9
  %163 = load i32, ptr @test_count, align 4, !tbaa !5
  %164 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %165 = load i32, ptr %164, align 4, !tbaa !5
  %166 = tail call ptr @s2n_strerror(i32 noundef %165, ptr noundef nonnull @.str.4) #12
  %167 = load i32, ptr %164, align 4, !tbaa !5
  %168 = tail call ptr @s2n_strerror_debug(i32 noundef %167, ptr noundef nonnull @.str.4) #12
  %169 = load i32, ptr %150, align 4, !tbaa !5
  %170 = tail call ptr @strerror(i32 noundef %169) #12
  %171 = load i32, ptr %150, align 4, !tbaa !5
  %172 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %162, ptr noundef nonnull %.str.5.sink1140, i32 noundef %163, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 47, ptr noundef %166, ptr noundef %168, ptr noundef %170, i32 noundef %171) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

173:                                              ; preds = %144
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %3) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %3, i8 0, i64 24, i1 false)
  %174 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef nonnull %3, ptr noundef nonnull @.str.9) #12
  %175 = call zeroext i1 @s2n_result_is_ok(i32 %174)
  br i1 %175, label %176, label %6527

176:                                              ; preds = %173
  %177 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_tls13_aes_256_gcm_sha384, i64 48), align 8, !tbaa !15
  %178 = getelementptr inbounds i8, ptr %177, i64 16
  %179 = load i64, ptr %178, align 8, !tbaa !17
  %180 = load i8, ptr @s2n_tls13_chacha20_poly1305_sha256, align 8
  %181 = and i8 %180, 1
  %.not = icmp eq i8 %181, 0
  %spec.store.select = select i1 %.not, ptr @s2n_ecdhe_ecdsa_with_aes_256_gcm_sha384, ptr @s2n_tls13_chacha20_poly1305_sha256
  %182 = load i32, ptr @test_count, align 4, !tbaa !5
  %183 = add nsw i32 %182, 1
  store i32 %183, ptr @test_count, align 4, !tbaa !5
  %184 = load i8, ptr @s2n_tls13_aes_256_gcm_sha384, align 8
  %185 = and i8 %184, 1
  %.not731 = icmp eq i8 %185, 0
  br i1 %.not731, label %186, label %210

186:                                              ; preds = %176
  %187 = tail call ptr @__errno_location() #13
  %188 = load i32, ptr %187, align 4, !tbaa !5
  %189 = load ptr, ptr @stderr, align 8, !tbaa !9
  %190 = call i32 @s2n_print_stacktrace(ptr noundef %189) #12
  %191 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %192 = trunc nuw i8 %191 to i1
  br i1 %192, label %193, label %197

193:                                              ; preds = %186
  %194 = load ptr, ptr @stderr, align 8, !tbaa !9
  %195 = call i32 @fileno(ptr noundef %194) #12
  %196 = call i32 @isatty(i32 noundef %195) #12
  %.not732 = icmp eq i32 %196, 0
  br i1 %.not732, label %197, label %198

197:                                              ; preds = %193, %186
  br label %198

198:                                              ; preds = %193, %197
  %.str.5.sink1151 = phi ptr [ @.str.5, %197 ], [ @.str.2, %193 ]
  store i32 %188, ptr %187, align 4, !tbaa !5
  %199 = load ptr, ptr @stderr, align 8, !tbaa !9
  %200 = load i32, ptr @test_count, align 4, !tbaa !5
  %201 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %202 = load i32, ptr %201, align 4, !tbaa !5
  %203 = call ptr @s2n_strerror(i32 noundef %202, ptr noundef nonnull @.str.4) #12
  %204 = load i32, ptr %201, align 4, !tbaa !5
  %205 = call ptr @s2n_strerror_debug(i32 noundef %204, ptr noundef nonnull @.str.4) #12
  %206 = load i32, ptr %187, align 4, !tbaa !5
  %207 = call ptr @strerror(i32 noundef %206) #12
  %208 = load i32, ptr %187, align 4, !tbaa !5
  %209 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %199, ptr noundef nonnull %.str.5.sink1151, i32 noundef %200, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 64, ptr noundef %203, ptr noundef %205, ptr noundef %207, i32 noundef %208) #14
  call void @exit(i32 noundef 1) #15
  unreachable

210:                                              ; preds = %176
  %211 = add nsw i32 %182, 2
  store i32 %211, ptr @test_count, align 4, !tbaa !5
  %212 = load i8, ptr %spec.store.select, align 8
  %213 = and i8 %212, 1
  %.not733 = icmp eq i8 %213, 0
  br i1 %.not733, label %214, label %238

214:                                              ; preds = %210
  %215 = tail call ptr @__errno_location() #13
  %216 = load i32, ptr %215, align 4, !tbaa !5
  %217 = load ptr, ptr @stderr, align 8, !tbaa !9
  %218 = call i32 @s2n_print_stacktrace(ptr noundef %217) #12
  %219 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %220 = trunc nuw i8 %219 to i1
  br i1 %220, label %221, label %225

221:                                              ; preds = %214
  %222 = load ptr, ptr @stderr, align 8, !tbaa !9
  %223 = call i32 @fileno(ptr noundef %222) #12
  %224 = call i32 @isatty(i32 noundef %223) #12
  %.not734 = icmp eq i32 %224, 0
  br i1 %.not734, label %225, label %226

225:                                              ; preds = %221, %214
  br label %226

226:                                              ; preds = %221, %225
  %.str.5.sink1162 = phi ptr [ @.str.5, %225 ], [ @.str.2, %221 ]
  store i32 %216, ptr %215, align 4, !tbaa !5
  %227 = load ptr, ptr @stderr, align 8, !tbaa !9
  %228 = load i32, ptr @test_count, align 4, !tbaa !5
  %229 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %230 = load i32, ptr %229, align 4, !tbaa !5
  %231 = call ptr @s2n_strerror(i32 noundef %230, ptr noundef nonnull @.str.4) #12
  %232 = load i32, ptr %229, align 4, !tbaa !5
  %233 = call ptr @s2n_strerror_debug(i32 noundef %232, ptr noundef nonnull @.str.4) #12
  %234 = load i32, ptr %215, align 4, !tbaa !5
  %235 = call ptr @strerror(i32 noundef %234) #12
  %236 = load i32, ptr %215, align 4, !tbaa !5
  %237 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %227, ptr noundef nonnull %.str.5.sink1162, i32 noundef %228, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 65, ptr noundef %231, ptr noundef %233, ptr noundef %235, i32 noundef %236) #14
  call void @exit(i32 noundef 1) #15
  unreachable

238:                                              ; preds = %210
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %4) #12
  store i64 0, ptr %4, align 8
  call void @llvm.lifetime.start.p0(i64 5, ptr nonnull %5) #12
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %6) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %6, i8 0, i64 24, i1 false)
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %7) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %7, i8 0, i64 40, i1 false)
  %239 = add nsw i32 %182, 3
  store i32 %239, ptr @test_count, align 4, !tbaa !5
  %240 = call i32 @s2n_blob_init(ptr noundef nonnull %6, ptr noundef nonnull %5, i32 noundef 5) #12
  %241 = icmp eq i32 %240, -1
  br i1 %241, label %242, label %266

242:                                              ; preds = %238
  %243 = tail call ptr @__errno_location() #13
  %244 = load i32, ptr %243, align 4, !tbaa !5
  %245 = load ptr, ptr @stderr, align 8, !tbaa !9
  %246 = call i32 @s2n_print_stacktrace(ptr noundef %245) #12
  %247 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %248 = trunc nuw i8 %247 to i1
  br i1 %248, label %249, label %253

249:                                              ; preds = %242
  %250 = load ptr, ptr @stderr, align 8, !tbaa !9
  %251 = call i32 @fileno(ptr noundef %250) #12
  %252 = call i32 @isatty(i32 noundef %251) #12
  %.not987 = icmp eq i32 %252, 0
  br i1 %.not987, label %253, label %254

253:                                              ; preds = %249, %242
  br label %254

254:                                              ; preds = %249, %253
  %.str.5.sink1173 = phi ptr [ @.str.5, %253 ], [ @.str.2, %249 ]
  store i32 %244, ptr %243, align 4, !tbaa !5
  %255 = load ptr, ptr @stderr, align 8, !tbaa !9
  %256 = load i32, ptr @test_count, align 4, !tbaa !5
  %257 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %258 = load i32, ptr %257, align 4, !tbaa !5
  %259 = call ptr @s2n_strerror(i32 noundef %258, ptr noundef nonnull @.str.4) #12
  %260 = load i32, ptr %257, align 4, !tbaa !5
  %261 = call ptr @s2n_strerror_debug(i32 noundef %260, ptr noundef nonnull @.str.4) #12
  %262 = load i32, ptr %243, align 4, !tbaa !5
  %263 = call ptr @strerror(i32 noundef %262) #12
  %264 = load i32, ptr %243, align 4, !tbaa !5
  %265 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %255, ptr noundef nonnull %.str.5.sink1173, i32 noundef %256, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 76, ptr noundef %259, ptr noundef %261, ptr noundef %263, i32 noundef %264) #14
  call void @exit(i32 noundef 1) #15
  unreachable

266:                                              ; preds = %238
  %267 = load i32, ptr @test_count, align 4, !tbaa !5
  %268 = add nsw i32 %267, 1
  store i32 %268, ptr @test_count, align 4, !tbaa !5
  %269 = call i32 @s2n_stuffer_init(ptr noundef nonnull %7, ptr noundef nonnull %6) #12
  %270 = icmp eq i32 %269, -1
  br i1 %270, label %271, label %295

271:                                              ; preds = %266
  %272 = tail call ptr @__errno_location() #13
  %273 = load i32, ptr %272, align 4, !tbaa !5
  %274 = load ptr, ptr @stderr, align 8, !tbaa !9
  %275 = call i32 @s2n_print_stacktrace(ptr noundef %274) #12
  %276 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %277 = trunc nuw i8 %276 to i1
  br i1 %277, label %278, label %282

278:                                              ; preds = %271
  %279 = load ptr, ptr @stderr, align 8, !tbaa !9
  %280 = call i32 @fileno(ptr noundef %279) #12
  %281 = call i32 @isatty(i32 noundef %280) #12
  %.not986 = icmp eq i32 %281, 0
  br i1 %.not986, label %282, label %283

282:                                              ; preds = %278, %271
  br label %283

283:                                              ; preds = %278, %282
  %.str.5.sink1184 = phi ptr [ @.str.5, %282 ], [ @.str.2, %278 ]
  store i32 %273, ptr %272, align 4, !tbaa !5
  %284 = load ptr, ptr @stderr, align 8, !tbaa !9
  %285 = load i32, ptr @test_count, align 4, !tbaa !5
  %286 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %287 = load i32, ptr %286, align 4, !tbaa !5
  %288 = call ptr @s2n_strerror(i32 noundef %287, ptr noundef nonnull @.str.4) #12
  %289 = load i32, ptr %286, align 4, !tbaa !5
  %290 = call ptr @s2n_strerror_debug(i32 noundef %289, ptr noundef nonnull @.str.4) #12
  %291 = load i32, ptr %272, align 4, !tbaa !5
  %292 = call ptr @strerror(i32 noundef %291) #12
  %293 = load i32, ptr %272, align 4, !tbaa !5
  %294 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %284, ptr noundef nonnull %.str.5.sink1184, i32 noundef %285, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 77, ptr noundef %288, ptr noundef %290, ptr noundef %292, i32 noundef %293) #14
  call void @exit(i32 noundef 1) #15
  unreachable

295:                                              ; preds = %266
  %296 = load i32, ptr @test_count, align 4, !tbaa !5
  %297 = add nsw i32 %296, 1
  store i32 %297, ptr @test_count, align 4, !tbaa !5
  %298 = call i32 @s2n_key_update_write(ptr noundef nonnull %6) #12
  %299 = icmp eq i32 %298, -1
  br i1 %299, label %300, label %324

300:                                              ; preds = %295
  %301 = tail call ptr @__errno_location() #13
  %302 = load i32, ptr %301, align 4, !tbaa !5
  %303 = load ptr, ptr @stderr, align 8, !tbaa !9
  %304 = call i32 @s2n_print_stacktrace(ptr noundef %303) #12
  %305 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %306 = trunc nuw i8 %305 to i1
  br i1 %306, label %307, label %311

307:                                              ; preds = %300
  %308 = load ptr, ptr @stderr, align 8, !tbaa !9
  %309 = call i32 @fileno(ptr noundef %308) #12
  %310 = call i32 @isatty(i32 noundef %309) #12
  %.not985 = icmp eq i32 %310, 0
  br i1 %.not985, label %311, label %312

311:                                              ; preds = %307, %300
  br label %312

312:                                              ; preds = %307, %311
  %.str.5.sink1195 = phi ptr [ @.str.5, %311 ], [ @.str.2, %307 ]
  store i32 %302, ptr %301, align 4, !tbaa !5
  %313 = load ptr, ptr @stderr, align 8, !tbaa !9
  %314 = load i32, ptr @test_count, align 4, !tbaa !5
  %315 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %316 = load i32, ptr %315, align 4, !tbaa !5
  %317 = call ptr @s2n_strerror(i32 noundef %316, ptr noundef nonnull @.str.4) #12
  %318 = load i32, ptr %315, align 4, !tbaa !5
  %319 = call ptr @s2n_strerror_debug(i32 noundef %318, ptr noundef nonnull @.str.4) #12
  %320 = load i32, ptr %301, align 4, !tbaa !5
  %321 = call ptr @strerror(i32 noundef %320) #12
  %322 = load i32, ptr %301, align 4, !tbaa !5
  %323 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %313, ptr noundef nonnull %.str.5.sink1195, i32 noundef %314, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 80, ptr noundef %317, ptr noundef %319, ptr noundef %321, i32 noundef %322) #14
  call void @exit(i32 noundef 1) #15
  unreachable

324:                                              ; preds = %295
  %325 = load i32, ptr @test_count, align 4, !tbaa !5
  %326 = add nsw i32 %325, 1
  store i32 %326, ptr @test_count, align 4, !tbaa !5
  %327 = call i32 @s2n_stuffer_skip_write(ptr noundef nonnull %7, i32 noundef 5) #12
  %328 = icmp eq i32 %327, -1
  br i1 %328, label %329, label %353

329:                                              ; preds = %324
  %330 = tail call ptr @__errno_location() #13
  %331 = load i32, ptr %330, align 4, !tbaa !5
  %332 = load ptr, ptr @stderr, align 8, !tbaa !9
  %333 = call i32 @s2n_print_stacktrace(ptr noundef %332) #12
  %334 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %335 = trunc nuw i8 %334 to i1
  br i1 %335, label %336, label %340

336:                                              ; preds = %329
  %337 = load ptr, ptr @stderr, align 8, !tbaa !9
  %338 = call i32 @fileno(ptr noundef %337) #12
  %339 = call i32 @isatty(i32 noundef %338) #12
  %.not984 = icmp eq i32 %339, 0
  br i1 %.not984, label %340, label %341

340:                                              ; preds = %336, %329
  br label %341

341:                                              ; preds = %336, %340
  %.str.5.sink1206 = phi ptr [ @.str.5, %340 ], [ @.str.2, %336 ]
  store i32 %331, ptr %330, align 4, !tbaa !5
  %342 = load ptr, ptr @stderr, align 8, !tbaa !9
  %343 = load i32, ptr @test_count, align 4, !tbaa !5
  %344 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %345 = load i32, ptr %344, align 4, !tbaa !5
  %346 = call ptr @s2n_strerror(i32 noundef %345, ptr noundef nonnull @.str.4) #12
  %347 = load i32, ptr %344, align 4, !tbaa !5
  %348 = call ptr @s2n_strerror_debug(i32 noundef %347, ptr noundef nonnull @.str.4) #12
  %349 = load i32, ptr %330, align 4, !tbaa !5
  %350 = call ptr @strerror(i32 noundef %349) #12
  %351 = load i32, ptr %330, align 4, !tbaa !5
  %352 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %342, ptr noundef nonnull %.str.5.sink1206, i32 noundef %343, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 83, ptr noundef %346, ptr noundef %348, ptr noundef %350, i32 noundef %351) #14
  call void @exit(i32 noundef 1) #15
  unreachable

353:                                              ; preds = %324
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %8) #12
  store i8 0, ptr %8, align 1, !tbaa !20
  %354 = load i32, ptr @test_count, align 4, !tbaa !5
  %355 = add nsw i32 %354, 1
  store i32 %355, ptr @test_count, align 4, !tbaa !5
  %356 = call i32 @s2n_stuffer_read_uint8(ptr noundef nonnull %7, ptr noundef nonnull %8) #12
  %357 = icmp eq i32 %356, -1
  br i1 %357, label %358, label %382

358:                                              ; preds = %353
  %359 = tail call ptr @__errno_location() #13
  %360 = load i32, ptr %359, align 4, !tbaa !5
  %361 = load ptr, ptr @stderr, align 8, !tbaa !9
  %362 = call i32 @s2n_print_stacktrace(ptr noundef %361) #12
  %363 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %364 = trunc nuw i8 %363 to i1
  br i1 %364, label %365, label %369

365:                                              ; preds = %358
  %366 = load ptr, ptr @stderr, align 8, !tbaa !9
  %367 = call i32 @fileno(ptr noundef %366) #12
  %368 = call i32 @isatty(i32 noundef %367) #12
  %.not983 = icmp eq i32 %368, 0
  br i1 %.not983, label %369, label %370

369:                                              ; preds = %365, %358
  br label %370

370:                                              ; preds = %365, %369
  %.str.5.sink1217 = phi ptr [ @.str.5, %369 ], [ @.str.2, %365 ]
  store i32 %360, ptr %359, align 4, !tbaa !5
  %371 = load ptr, ptr @stderr, align 8, !tbaa !9
  %372 = load i32, ptr @test_count, align 4, !tbaa !5
  %373 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %374 = load i32, ptr %373, align 4, !tbaa !5
  %375 = call ptr @s2n_strerror(i32 noundef %374, ptr noundef nonnull @.str.4) #12
  %376 = load i32, ptr %373, align 4, !tbaa !5
  %377 = call ptr @s2n_strerror_debug(i32 noundef %376, ptr noundef nonnull @.str.4) #12
  %378 = load i32, ptr %359, align 4, !tbaa !5
  %379 = call ptr @strerror(i32 noundef %378) #12
  %380 = load i32, ptr %359, align 4, !tbaa !5
  %381 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %371, ptr noundef nonnull %.str.5.sink1217, i32 noundef %372, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 86, ptr noundef %375, ptr noundef %377, ptr noundef %379, i32 noundef %380) #14
  call void @exit(i32 noundef 1) #15
  unreachable

382:                                              ; preds = %353
  %383 = load i32, ptr @test_count, align 4, !tbaa !5
  %384 = add nsw i32 %383, 1
  store i32 %384, ptr @test_count, align 4, !tbaa !5
  %385 = load i8, ptr %8, align 1, !tbaa !20
  %386 = icmp eq i8 %385, 24
  br i1 %386, label %411, label %387

387:                                              ; preds = %382
  %388 = tail call ptr @__errno_location() #13
  %389 = load i32, ptr %388, align 4, !tbaa !5
  %390 = load ptr, ptr @stderr, align 8, !tbaa !9
  %391 = call i32 @s2n_print_stacktrace(ptr noundef %390) #12
  %392 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %393 = trunc nuw i8 %392 to i1
  br i1 %393, label %394, label %398

394:                                              ; preds = %387
  %395 = load ptr, ptr @stderr, align 8, !tbaa !9
  %396 = call i32 @fileno(ptr noundef %395) #12
  %397 = call i32 @isatty(i32 noundef %396) #12
  %.not735 = icmp eq i32 %397, 0
  br i1 %.not735, label %398, label %399

398:                                              ; preds = %394, %387
  br label %399

399:                                              ; preds = %394, %398
  %.str.5.sink1228 = phi ptr [ @.str.5, %398 ], [ @.str.2, %394 ]
  store i32 %389, ptr %388, align 4, !tbaa !5
  %400 = load ptr, ptr @stderr, align 8, !tbaa !9
  %401 = load i32, ptr @test_count, align 4, !tbaa !5
  %402 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %403 = load i32, ptr %402, align 4, !tbaa !5
  %404 = call ptr @s2n_strerror(i32 noundef %403, ptr noundef nonnull @.str.4) #12
  %405 = load i32, ptr %402, align 4, !tbaa !5
  %406 = call ptr @s2n_strerror_debug(i32 noundef %405, ptr noundef nonnull @.str.4) #12
  %407 = load i32, ptr %388, align 4, !tbaa !5
  %408 = call ptr @strerror(i32 noundef %407) #12
  %409 = load i32, ptr %388, align 4, !tbaa !5
  %410 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %400, ptr noundef nonnull %.str.5.sink1228, i32 noundef %401, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 87, ptr noundef %404, ptr noundef %406, ptr noundef %408, i32 noundef %409) #14
  call void @exit(i32 noundef 1) #15
  unreachable

411:                                              ; preds = %382
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %9) #12
  store i32 0, ptr %9, align 4, !tbaa !5
  %412 = add nsw i32 %383, 2
  store i32 %412, ptr @test_count, align 4, !tbaa !5
  %413 = call i32 @s2n_stuffer_read_uint24(ptr noundef nonnull %7, ptr noundef nonnull %9) #12
  %414 = icmp eq i32 %413, -1
  br i1 %414, label %415, label %439

415:                                              ; preds = %411
  %416 = tail call ptr @__errno_location() #13
  %417 = load i32, ptr %416, align 4, !tbaa !5
  %418 = load ptr, ptr @stderr, align 8, !tbaa !9
  %419 = call i32 @s2n_print_stacktrace(ptr noundef %418) #12
  %420 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %421 = trunc nuw i8 %420 to i1
  br i1 %421, label %422, label %426

422:                                              ; preds = %415
  %423 = load ptr, ptr @stderr, align 8, !tbaa !9
  %424 = call i32 @fileno(ptr noundef %423) #12
  %425 = call i32 @isatty(i32 noundef %424) #12
  %.not982 = icmp eq i32 %425, 0
  br i1 %.not982, label %426, label %427

426:                                              ; preds = %422, %415
  br label %427

427:                                              ; preds = %422, %426
  %.str.5.sink1239 = phi ptr [ @.str.5, %426 ], [ @.str.2, %422 ]
  store i32 %417, ptr %416, align 4, !tbaa !5
  %428 = load ptr, ptr @stderr, align 8, !tbaa !9
  %429 = load i32, ptr @test_count, align 4, !tbaa !5
  %430 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %431 = load i32, ptr %430, align 4, !tbaa !5
  %432 = call ptr @s2n_strerror(i32 noundef %431, ptr noundef nonnull @.str.4) #12
  %433 = load i32, ptr %430, align 4, !tbaa !5
  %434 = call ptr @s2n_strerror_debug(i32 noundef %433, ptr noundef nonnull @.str.4) #12
  %435 = load i32, ptr %416, align 4, !tbaa !5
  %436 = call ptr @strerror(i32 noundef %435) #12
  %437 = load i32, ptr %416, align 4, !tbaa !5
  %438 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %428, ptr noundef nonnull %.str.5.sink1239, i32 noundef %429, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 90, ptr noundef %432, ptr noundef %434, ptr noundef %436, i32 noundef %437) #14
  call void @exit(i32 noundef 1) #15
  unreachable

439:                                              ; preds = %411
  %440 = load i32, ptr @test_count, align 4, !tbaa !5
  %441 = add nsw i32 %440, 1
  store i32 %441, ptr @test_count, align 4, !tbaa !5
  %442 = load i32, ptr %9, align 4, !tbaa !5
  %443 = icmp eq i32 %442, 1
  br i1 %443, label %468, label %444

444:                                              ; preds = %439
  %445 = tail call ptr @__errno_location() #13
  %446 = load i32, ptr %445, align 4, !tbaa !5
  %447 = load ptr, ptr @stderr, align 8, !tbaa !9
  %448 = call i32 @s2n_print_stacktrace(ptr noundef %447) #12
  %449 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %450 = trunc nuw i8 %449 to i1
  br i1 %450, label %451, label %455

451:                                              ; preds = %444
  %452 = load ptr, ptr @stderr, align 8, !tbaa !9
  %453 = call i32 @fileno(ptr noundef %452) #12
  %454 = call i32 @isatty(i32 noundef %453) #12
  %.not736 = icmp eq i32 %454, 0
  br i1 %.not736, label %455, label %456

455:                                              ; preds = %451, %444
  br label %456

456:                                              ; preds = %451, %455
  %.str.5.sink1250 = phi ptr [ @.str.5, %455 ], [ @.str.2, %451 ]
  store i32 %446, ptr %445, align 4, !tbaa !5
  %457 = load ptr, ptr @stderr, align 8, !tbaa !9
  %458 = load i32, ptr @test_count, align 4, !tbaa !5
  %459 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %460 = load i32, ptr %459, align 4, !tbaa !5
  %461 = call ptr @s2n_strerror(i32 noundef %460, ptr noundef nonnull @.str.4) #12
  %462 = load i32, ptr %459, align 4, !tbaa !5
  %463 = call ptr @s2n_strerror_debug(i32 noundef %462, ptr noundef nonnull @.str.4) #12
  %464 = load i32, ptr %445, align 4, !tbaa !5
  %465 = call ptr @strerror(i32 noundef %464) #12
  %466 = load i32, ptr %445, align 4, !tbaa !5
  %467 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %457, ptr noundef nonnull %.str.5.sink1250, i32 noundef %458, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 91, ptr noundef %461, ptr noundef %463, ptr noundef %465, i32 noundef %466) #14
  call void @exit(i32 noundef 1) #15
  unreachable

468:                                              ; preds = %439
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %10) #12
  store i8 0, ptr %10, align 1, !tbaa !20
  %469 = add nsw i32 %440, 2
  store i32 %469, ptr @test_count, align 4, !tbaa !5
  %470 = call i32 @s2n_stuffer_read_uint8(ptr noundef nonnull %7, ptr noundef nonnull %10) #12
  %471 = icmp eq i32 %470, -1
  br i1 %471, label %472, label %496

472:                                              ; preds = %468
  %473 = tail call ptr @__errno_location() #13
  %474 = load i32, ptr %473, align 4, !tbaa !5
  %475 = load ptr, ptr @stderr, align 8, !tbaa !9
  %476 = call i32 @s2n_print_stacktrace(ptr noundef %475) #12
  %477 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %478 = trunc nuw i8 %477 to i1
  br i1 %478, label %479, label %483

479:                                              ; preds = %472
  %480 = load ptr, ptr @stderr, align 8, !tbaa !9
  %481 = call i32 @fileno(ptr noundef %480) #12
  %482 = call i32 @isatty(i32 noundef %481) #12
  %.not981 = icmp eq i32 %482, 0
  br i1 %.not981, label %483, label %484

483:                                              ; preds = %479, %472
  br label %484

484:                                              ; preds = %479, %483
  %.str.5.sink1261 = phi ptr [ @.str.5, %483 ], [ @.str.2, %479 ]
  store i32 %474, ptr %473, align 4, !tbaa !5
  %485 = load ptr, ptr @stderr, align 8, !tbaa !9
  %486 = load i32, ptr @test_count, align 4, !tbaa !5
  %487 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %488 = load i32, ptr %487, align 4, !tbaa !5
  %489 = call ptr @s2n_strerror(i32 noundef %488, ptr noundef nonnull @.str.4) #12
  %490 = load i32, ptr %487, align 4, !tbaa !5
  %491 = call ptr @s2n_strerror_debug(i32 noundef %490, ptr noundef nonnull @.str.4) #12
  %492 = load i32, ptr %473, align 4, !tbaa !5
  %493 = call ptr @strerror(i32 noundef %492) #12
  %494 = load i32, ptr %473, align 4, !tbaa !5
  %495 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %485, ptr noundef nonnull %.str.5.sink1261, i32 noundef %486, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 94, ptr noundef %489, ptr noundef %491, ptr noundef %493, i32 noundef %494) #14
  call void @exit(i32 noundef 1) #15
  unreachable

496:                                              ; preds = %468
  %497 = load i32, ptr @test_count, align 4, !tbaa !5
  %498 = add nsw i32 %497, 1
  store i32 %498, ptr @test_count, align 4, !tbaa !5
  %499 = load i8, ptr %10, align 1, !tbaa !20
  %500 = icmp eq i8 %499, 0
  br i1 %500, label %525, label %501

501:                                              ; preds = %496
  %502 = tail call ptr @__errno_location() #13
  %503 = load i32, ptr %502, align 4, !tbaa !5
  %504 = load ptr, ptr @stderr, align 8, !tbaa !9
  %505 = call i32 @s2n_print_stacktrace(ptr noundef %504) #12
  %506 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %507 = trunc nuw i8 %506 to i1
  br i1 %507, label %508, label %512

508:                                              ; preds = %501
  %509 = load ptr, ptr @stderr, align 8, !tbaa !9
  %510 = call i32 @fileno(ptr noundef %509) #12
  %511 = call i32 @isatty(i32 noundef %510) #12
  %.not737 = icmp eq i32 %511, 0
  br i1 %.not737, label %512, label %513

512:                                              ; preds = %508, %501
  br label %513

513:                                              ; preds = %508, %512
  %.str.5.sink1272 = phi ptr [ @.str.5, %512 ], [ @.str.2, %508 ]
  store i32 %503, ptr %502, align 4, !tbaa !5
  %514 = load ptr, ptr @stderr, align 8, !tbaa !9
  %515 = load i32, ptr @test_count, align 4, !tbaa !5
  %516 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %517 = load i32, ptr %516, align 4, !tbaa !5
  %518 = call ptr @s2n_strerror(i32 noundef %517, ptr noundef nonnull @.str.4) #12
  %519 = load i32, ptr %516, align 4, !tbaa !5
  %520 = call ptr @s2n_strerror_debug(i32 noundef %519, ptr noundef nonnull @.str.4) #12
  %521 = load i32, ptr %502, align 4, !tbaa !5
  %522 = call ptr @strerror(i32 noundef %521) #12
  %523 = load i32, ptr %502, align 4, !tbaa !5
  %524 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %514, ptr noundef nonnull %.str.5.sink1272, i32 noundef %515, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 95, ptr noundef %518, ptr noundef %520, ptr noundef %522, i32 noundef %523) #14
  call void @exit(i32 noundef 1) #15
  unreachable

525:                                              ; preds = %496
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %10) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %9) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %8) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %7) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %6) #12
  call void @llvm.lifetime.end.p0(i64 5, ptr nonnull %5) #12
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %11) #12
  %526 = add nsw i32 %497, 2
  store i32 %526, ptr @test_count, align 4, !tbaa !5
  %527 = call i32 @s2n_stuffer_alloc(ptr noundef nonnull %11, i32 noundef 10) #12
  %528 = icmp eq i32 %527, -1
  br i1 %528, label %529, label %553

529:                                              ; preds = %525
  %530 = tail call ptr @__errno_location() #13
  %531 = load i32, ptr %530, align 4, !tbaa !5
  %532 = load ptr, ptr @stderr, align 8, !tbaa !9
  %533 = call i32 @s2n_print_stacktrace(ptr noundef %532) #12
  %534 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %535 = trunc nuw i8 %534 to i1
  br i1 %535, label %536, label %540

536:                                              ; preds = %529
  %537 = load ptr, ptr @stderr, align 8, !tbaa !9
  %538 = call i32 @fileno(ptr noundef %537) #12
  %539 = call i32 @isatty(i32 noundef %538) #12
  %.not980 = icmp eq i32 %539, 0
  br i1 %.not980, label %540, label %541

540:                                              ; preds = %536, %529
  br label %541

541:                                              ; preds = %536, %540
  %.str.5.sink1283 = phi ptr [ @.str.5, %540 ], [ @.str.2, %536 ]
  store i32 %531, ptr %530, align 4, !tbaa !5
  %542 = load ptr, ptr @stderr, align 8, !tbaa !9
  %543 = load i32, ptr @test_count, align 4, !tbaa !5
  %544 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %545 = load i32, ptr %544, align 4, !tbaa !5
  %546 = call ptr @s2n_strerror(i32 noundef %545, ptr noundef nonnull @.str.4) #12
  %547 = load i32, ptr %544, align 4, !tbaa !5
  %548 = call ptr @s2n_strerror_debug(i32 noundef %547, ptr noundef nonnull @.str.4) #12
  %549 = load i32, ptr %530, align 4, !tbaa !5
  %550 = call ptr @strerror(i32 noundef %549) #12
  %551 = load i32, ptr %530, align 4, !tbaa !5
  %552 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %542, ptr noundef nonnull %.str.5.sink1283, i32 noundef %543, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 111, ptr noundef %546, ptr noundef %548, ptr noundef %550, i32 noundef %551) #14
  call void @exit(i32 noundef 1) #15
  unreachable

553:                                              ; preds = %525
  %554 = load i32, ptr @test_count, align 4, !tbaa !5
  %555 = add nsw i32 %554, 1
  store i32 %555, ptr @test_count, align 4, !tbaa !5
  %556 = call i32 @s2n_stuffer_skip_write(ptr noundef nonnull %11, i32 noundef 10) #12
  %557 = icmp eq i32 %556, -1
  br i1 %557, label %558, label %582

558:                                              ; preds = %553
  %559 = tail call ptr @__errno_location() #13
  %560 = load i32, ptr %559, align 4, !tbaa !5
  %561 = load ptr, ptr @stderr, align 8, !tbaa !9
  %562 = call i32 @s2n_print_stacktrace(ptr noundef %561) #12
  %563 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %564 = trunc nuw i8 %563 to i1
  br i1 %564, label %565, label %569

565:                                              ; preds = %558
  %566 = load ptr, ptr @stderr, align 8, !tbaa !9
  %567 = call i32 @fileno(ptr noundef %566) #12
  %568 = call i32 @isatty(i32 noundef %567) #12
  %.not979 = icmp eq i32 %568, 0
  br i1 %.not979, label %569, label %570

569:                                              ; preds = %565, %558
  br label %570

570:                                              ; preds = %565, %569
  %.str.5.sink1294 = phi ptr [ @.str.5, %569 ], [ @.str.2, %565 ]
  store i32 %560, ptr %559, align 4, !tbaa !5
  %571 = load ptr, ptr @stderr, align 8, !tbaa !9
  %572 = load i32, ptr @test_count, align 4, !tbaa !5
  %573 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %574 = load i32, ptr %573, align 4, !tbaa !5
  %575 = call ptr @s2n_strerror(i32 noundef %574, ptr noundef nonnull @.str.4) #12
  %576 = load i32, ptr %573, align 4, !tbaa !5
  %577 = call ptr @s2n_strerror_debug(i32 noundef %576, ptr noundef nonnull @.str.4) #12
  %578 = load i32, ptr %559, align 4, !tbaa !5
  %579 = call ptr @strerror(i32 noundef %578) #12
  %580 = load i32, ptr %559, align 4, !tbaa !5
  %581 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %571, ptr noundef nonnull %.str.5.sink1294, i32 noundef %572, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 112, ptr noundef %575, ptr noundef %577, ptr noundef %579, i32 noundef %580) #14
  call void @exit(i32 noundef 1) #15
  unreachable

582:                                              ; preds = %553
  %583 = load i32, ptr @test_count, align 4, !tbaa !5
  %584 = add nsw i32 %583, 1
  store i32 %584, ptr @test_count, align 4, !tbaa !5
  %585 = call ptr @s2n_config_new() #12
  %586 = icmp eq ptr %585, null
  br i1 %586, label %587, label %611

587:                                              ; preds = %582
  %588 = tail call ptr @__errno_location() #13
  %589 = load i32, ptr %588, align 4, !tbaa !5
  %590 = load ptr, ptr @stderr, align 8, !tbaa !9
  %591 = call i32 @s2n_print_stacktrace(ptr noundef %590) #12
  %592 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %593 = trunc nuw i8 %592 to i1
  br i1 %593, label %594, label %598

594:                                              ; preds = %587
  %595 = load ptr, ptr @stderr, align 8, !tbaa !9
  %596 = call i32 @fileno(ptr noundef %595) #12
  %597 = call i32 @isatty(i32 noundef %596) #12
  %.not978 = icmp eq i32 %597, 0
  br i1 %.not978, label %598, label %599

598:                                              ; preds = %594, %587
  br label %599

599:                                              ; preds = %594, %598
  %.str.5.sink1305 = phi ptr [ @.str.5, %598 ], [ @.str.2, %594 ]
  store i32 %589, ptr %588, align 4, !tbaa !5
  %600 = load ptr, ptr @stderr, align 8, !tbaa !9
  %601 = load i32, ptr @test_count, align 4, !tbaa !5
  %602 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %603 = load i32, ptr %602, align 4, !tbaa !5
  %604 = call ptr @s2n_strerror(i32 noundef %603, ptr noundef nonnull @.str.4) #12
  %605 = load i32, ptr %602, align 4, !tbaa !5
  %606 = call ptr @s2n_strerror_debug(i32 noundef %605, ptr noundef nonnull @.str.4) #12
  %607 = load i32, ptr %588, align 4, !tbaa !5
  %608 = call ptr @strerror(i32 noundef %607) #12
  %609 = load i32, ptr %588, align 4, !tbaa !5
  %610 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %600, ptr noundef nonnull %.str.5.sink1305, i32 noundef %601, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 115, ptr noundef %604, ptr noundef %606, ptr noundef %608, i32 noundef %609) #14
  call void @exit(i32 noundef 1) #15
  unreachable

611:                                              ; preds = %582
  %612 = load i32, ptr @test_count, align 4, !tbaa !5
  %613 = add nsw i32 %612, 1
  store i32 %613, ptr @test_count, align 4, !tbaa !5
  %614 = call i32 @s2n_config_enable_quic(ptr noundef nonnull %585) #12
  %615 = icmp eq i32 %614, -1
  br i1 %615, label %616, label %640

616:                                              ; preds = %611
  %617 = tail call ptr @__errno_location() #13
  %618 = load i32, ptr %617, align 4, !tbaa !5
  %619 = load ptr, ptr @stderr, align 8, !tbaa !9
  %620 = call i32 @s2n_print_stacktrace(ptr noundef %619) #12
  %621 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %622 = trunc nuw i8 %621 to i1
  br i1 %622, label %623, label %627

623:                                              ; preds = %616
  %624 = load ptr, ptr @stderr, align 8, !tbaa !9
  %625 = call i32 @fileno(ptr noundef %624) #12
  %626 = call i32 @isatty(i32 noundef %625) #12
  %.not977 = icmp eq i32 %626, 0
  br i1 %.not977, label %627, label %628

627:                                              ; preds = %623, %616
  br label %628

628:                                              ; preds = %623, %627
  %.str.5.sink1316 = phi ptr [ @.str.5, %627 ], [ @.str.2, %623 ]
  store i32 %618, ptr %617, align 4, !tbaa !5
  %629 = load ptr, ptr @stderr, align 8, !tbaa !9
  %630 = load i32, ptr @test_count, align 4, !tbaa !5
  %631 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %632 = load i32, ptr %631, align 4, !tbaa !5
  %633 = call ptr @s2n_strerror(i32 noundef %632, ptr noundef nonnull @.str.4) #12
  %634 = load i32, ptr %631, align 4, !tbaa !5
  %635 = call ptr @s2n_strerror_debug(i32 noundef %634, ptr noundef nonnull @.str.4) #12
  %636 = load i32, ptr %617, align 4, !tbaa !5
  %637 = call ptr @strerror(i32 noundef %636) #12
  %638 = load i32, ptr %617, align 4, !tbaa !5
  %639 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %629, ptr noundef nonnull %.str.5.sink1316, i32 noundef %630, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 116, ptr noundef %633, ptr noundef %635, ptr noundef %637, i32 noundef %638) #14
  call void @exit(i32 noundef 1) #15
  unreachable

640:                                              ; preds = %611
  %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 ptr @s2n_connection_new(i32 noundef 0) #12
  %644 = icmp eq ptr %643, null
  br i1 %644, label %645, label %669

645:                                              ; preds = %640
  %646 = tail call ptr @__errno_location() #13
  %647 = load i32, ptr %646, align 4, !tbaa !5
  %648 = load ptr, ptr @stderr, align 8, !tbaa !9
  %649 = call i32 @s2n_print_stacktrace(ptr noundef %648) #12
  %650 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %651 = trunc nuw i8 %650 to i1
  br i1 %651, label %652, label %656

652:                                              ; preds = %645
  %653 = load ptr, ptr @stderr, align 8, !tbaa !9
  %654 = call i32 @fileno(ptr noundef %653) #12
  %655 = call i32 @isatty(i32 noundef %654) #12
  %.not976 = icmp eq i32 %655, 0
  br i1 %.not976, label %656, label %657

656:                                              ; preds = %652, %645
  br label %657

657:                                              ; preds = %652, %656
  %.str.5.sink1327 = phi ptr [ @.str.5, %656 ], [ @.str.2, %652 ]
  store i32 %647, ptr %646, align 4, !tbaa !5
  %658 = load ptr, ptr @stderr, align 8, !tbaa !9
  %659 = load i32, ptr @test_count, align 4, !tbaa !5
  %660 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %661 = load i32, ptr %660, align 4, !tbaa !5
  %662 = call ptr @s2n_strerror(i32 noundef %661, ptr noundef nonnull @.str.4) #12
  %663 = load i32, ptr %660, align 4, !tbaa !5
  %664 = call ptr @s2n_strerror_debug(i32 noundef %663, ptr noundef nonnull @.str.4) #12
  %665 = load i32, ptr %646, align 4, !tbaa !5
  %666 = call ptr @strerror(i32 noundef %665) #12
  %667 = load i32, ptr %646, align 4, !tbaa !5
  %668 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %658, ptr noundef nonnull %.str.5.sink1327, i32 noundef %659, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 119, ptr noundef %662, ptr noundef %664, ptr noundef %666, i32 noundef %667) #14
  call void @exit(i32 noundef 1) #15
  unreachable

669:                                              ; preds = %640
  %670 = load i32, ptr @test_count, align 4, !tbaa !5
  %671 = add nsw i32 %670, 1
  store i32 %671, ptr @test_count, align 4, !tbaa !5
  %672 = call i32 @s2n_connection_set_config(ptr noundef nonnull %643, ptr noundef nonnull %585) #12
  %673 = icmp eq i32 %672, -1
  br i1 %673, label %674, label %698

674:                                              ; preds = %669
  %675 = tail call ptr @__errno_location() #13
  %676 = load i32, ptr %675, align 4, !tbaa !5
  %677 = load ptr, ptr @stderr, align 8, !tbaa !9
  %678 = call i32 @s2n_print_stacktrace(ptr noundef %677) #12
  %679 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %680 = trunc nuw i8 %679 to i1
  br i1 %680, label %681, label %685

681:                                              ; preds = %674
  %682 = load ptr, ptr @stderr, align 8, !tbaa !9
  %683 = call i32 @fileno(ptr noundef %682) #12
  %684 = call i32 @isatty(i32 noundef %683) #12
  %.not975 = icmp eq i32 %684, 0
  br i1 %.not975, label %685, label %686

685:                                              ; preds = %681, %674
  br label %686

686:                                              ; preds = %681, %685
  %.str.5.sink1338 = phi ptr [ @.str.5, %685 ], [ @.str.2, %681 ]
  store i32 %676, ptr %675, align 4, !tbaa !5
  %687 = load ptr, ptr @stderr, align 8, !tbaa !9
  %688 = load i32, ptr @test_count, align 4, !tbaa !5
  %689 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %690 = load i32, ptr %689, align 4, !tbaa !5
  %691 = call ptr @s2n_strerror(i32 noundef %690, ptr noundef nonnull @.str.4) #12
  %692 = load i32, ptr %689, align 4, !tbaa !5
  %693 = call ptr @s2n_strerror_debug(i32 noundef %692, ptr noundef nonnull @.str.4) #12
  %694 = load i32, ptr %675, align 4, !tbaa !5
  %695 = call ptr @strerror(i32 noundef %694) #12
  %696 = load i32, ptr %675, align 4, !tbaa !5
  %697 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %687, ptr noundef nonnull %.str.5.sink1338, i32 noundef %688, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 120, ptr noundef %691, ptr noundef %693, ptr noundef %695, i32 noundef %696) #14
  call void @exit(i32 noundef 1) #15
  unreachable

698:                                              ; preds = %669
  %699 = load i32, ptr @test_count, align 4, !tbaa !5
  %700 = add nsw i32 %699, 1
  store i32 %700, ptr @test_count, align 4, !tbaa !5
  %701 = call i32 @s2n_key_update_recv(ptr noundef nonnull %643, ptr noundef nonnull %11) #12
  %702 = icmp eq i32 %701, -1
  br i1 %702, label %727, label %703

703:                                              ; preds = %698
  %704 = tail call ptr @__errno_location() #13
  %705 = load i32, ptr %704, align 4, !tbaa !5
  %706 = load ptr, ptr @stderr, align 8, !tbaa !9
  %707 = call i32 @s2n_print_stacktrace(ptr noundef %706) #12
  %708 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %709 = trunc nuw i8 %708 to i1
  br i1 %709, label %710, label %714

710:                                              ; preds = %703
  %711 = load ptr, ptr @stderr, align 8, !tbaa !9
  %712 = call i32 @fileno(ptr noundef %711) #12
  %713 = call i32 @isatty(i32 noundef %712) #12
  %.not738 = icmp eq i32 %713, 0
  br i1 %.not738, label %714, label %715

714:                                              ; preds = %710, %703
  br label %715

715:                                              ; preds = %710, %714
  %.str.5.sink1349 = phi ptr [ @.str.5, %714 ], [ @.str.2, %710 ]
  store i32 %705, ptr %704, align 4, !tbaa !5
  %716 = load ptr, ptr @stderr, align 8, !tbaa !9
  %717 = load i32, ptr @test_count, align 4, !tbaa !5
  %718 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %719 = load i32, ptr %718, align 4, !tbaa !5
  %720 = call ptr @s2n_strerror(i32 noundef %719, ptr noundef nonnull @.str.4) #12
  %721 = load i32, ptr %718, align 4, !tbaa !5
  %722 = call ptr @s2n_strerror_debug(i32 noundef %721, ptr noundef nonnull @.str.4) #12
  %723 = load i32, ptr %704, align 4, !tbaa !5
  %724 = call ptr @strerror(i32 noundef %723) #12
  %725 = load i32, ptr %704, align 4, !tbaa !5
  %726 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %716, ptr noundef nonnull %.str.5.sink1349, i32 noundef %717, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 123, ptr noundef %720, ptr noundef %722, ptr noundef %724, i32 noundef %725) #14
  call void @exit(i32 noundef 1) #15
  unreachable

727:                                              ; preds = %698
  %728 = load i32, ptr @test_count, align 4, !tbaa !5
  %729 = add nsw i32 %728, 1
  store i32 %729, ptr @test_count, align 4, !tbaa !5
  %730 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %731 = load i32, ptr %730, align 4, !tbaa !5
  %732 = icmp eq i32 %731, 335544322
  br i1 %732, label %756, label %733

733:                                              ; preds = %727
  %734 = tail call ptr @__errno_location() #13
  %735 = load i32, ptr %734, align 4, !tbaa !5
  %736 = load ptr, ptr @stderr, align 8, !tbaa !9
  %737 = call i32 @s2n_print_stacktrace(ptr noundef %736) #12
  %738 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %739 = trunc nuw i8 %738 to i1
  br i1 %739, label %740, label %744

740:                                              ; preds = %733
  %741 = load ptr, ptr @stderr, align 8, !tbaa !9
  %742 = call i32 @fileno(ptr noundef %741) #12
  %743 = call i32 @isatty(i32 noundef %742) #12
  %.not739 = icmp eq i32 %743, 0
  br i1 %.not739, label %744, label %745

744:                                              ; preds = %740, %733
  br label %745

745:                                              ; preds = %740, %744
  %.str.5.sink1360 = phi ptr [ @.str.5, %744 ], [ @.str.2, %740 ]
  store i32 %735, ptr %734, align 4, !tbaa !5
  %746 = load ptr, ptr @stderr, align 8, !tbaa !9
  %747 = load i32, ptr @test_count, align 4, !tbaa !5
  %748 = load i32, ptr %730, align 4, !tbaa !5
  %749 = call ptr @s2n_strerror(i32 noundef %748, ptr noundef nonnull @.str.4) #12
  %750 = load i32, ptr %730, align 4, !tbaa !5
  %751 = call ptr @s2n_strerror_debug(i32 noundef %750, ptr noundef nonnull @.str.4) #12
  %752 = load i32, ptr %734, align 4, !tbaa !5
  %753 = call ptr @strerror(i32 noundef %752) #12
  %754 = load i32, ptr %734, align 4, !tbaa !5
  %755 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %746, ptr noundef nonnull %.str.5.sink1360, i32 noundef %747, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 123, ptr noundef %749, ptr noundef %751, ptr noundef %753, i32 noundef %754) #14
  call void @exit(i32 noundef 1) #15
  unreachable

756:                                              ; preds = %727
  %757 = add nsw i32 %728, 2
  store i32 %757, ptr @test_count, align 4, !tbaa !5
  %758 = call ptr @s2n_strerror_debug(i32 noundef 335544322, ptr noundef nonnull @.str.4) #12
  %759 = icmp eq ptr %758, null
  br i1 %759, label %760, label %783

760:                                              ; preds = %756
  %761 = tail call ptr @__errno_location() #13
  %762 = load i32, ptr %761, align 4, !tbaa !5
  %763 = load ptr, ptr @stderr, align 8, !tbaa !9
  %764 = call i32 @s2n_print_stacktrace(ptr noundef %763) #12
  %765 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %766 = trunc nuw i8 %765 to i1
  br i1 %766, label %767, label %771

767:                                              ; preds = %760
  %768 = load ptr, ptr @stderr, align 8, !tbaa !9
  %769 = call i32 @fileno(ptr noundef %768) #12
  %770 = call i32 @isatty(i32 noundef %769) #12
  %.not974 = icmp eq i32 %770, 0
  br i1 %.not974, label %771, label %772

771:                                              ; preds = %767, %760
  br label %772

772:                                              ; preds = %767, %771
  %.str.5.sink1369 = phi ptr [ @.str.5, %771 ], [ @.str.2, %767 ]
  store i32 %762, ptr %761, align 4, !tbaa !5
  %773 = load ptr, ptr @stderr, align 8, !tbaa !9
  %774 = load i32, ptr @test_count, align 4, !tbaa !5
  %775 = load i32, ptr %730, align 4, !tbaa !5
  %776 = call ptr @s2n_strerror(i32 noundef %775, ptr noundef nonnull @.str.4) #12
  %777 = load i32, ptr %730, align 4, !tbaa !5
  %778 = call ptr @s2n_strerror_debug(i32 noundef %777, ptr noundef nonnull @.str.4) #12
  %779 = load i32, ptr %761, align 4, !tbaa !5
  %780 = call ptr @strerror(i32 noundef %779) #12
  %781 = load i32, ptr %761, align 4, !tbaa !5
  %782 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %773, ptr noundef nonnull %.str.5.sink1369, i32 noundef %774, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 123, ptr noundef %776, ptr noundef %778, ptr noundef %780, i32 noundef %781) #14
  call void @exit(i32 noundef 1) #15
  unreachable

783:                                              ; preds = %756
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %12) #12
  store i8 0, ptr %12, align 1, !tbaa !20
  %784 = load i32, ptr @test_count, align 4, !tbaa !5
  %785 = add nsw i32 %784, 1
  store i32 %785, ptr @test_count, align 4, !tbaa !5
  %786 = load i32, ptr %730, align 4, !tbaa !5
  %787 = call i32 @s2n_error_get_alert(i32 noundef %786, ptr noundef nonnull %12) #12
  %788 = icmp eq i32 %787, -1
  br i1 %788, label %789, label %812

789:                                              ; preds = %783
  %790 = tail call ptr @__errno_location() #13
  %791 = load i32, ptr %790, align 4, !tbaa !5
  %792 = load ptr, ptr @stderr, align 8, !tbaa !9
  %793 = call i32 @s2n_print_stacktrace(ptr noundef %792) #12
  %794 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %795 = trunc nuw i8 %794 to i1
  br i1 %795, label %796, label %800

796:                                              ; preds = %789
  %797 = load ptr, ptr @stderr, align 8, !tbaa !9
  %798 = call i32 @fileno(ptr noundef %797) #12
  %799 = call i32 @isatty(i32 noundef %798) #12
  %.not973 = icmp eq i32 %799, 0
  br i1 %.not973, label %800, label %801

800:                                              ; preds = %796, %789
  br label %801

801:                                              ; preds = %796, %800
  %.str.5.sink1378 = phi ptr [ @.str.5, %800 ], [ @.str.2, %796 ]
  store i32 %791, ptr %790, align 4, !tbaa !5
  %802 = load ptr, ptr @stderr, align 8, !tbaa !9
  %803 = load i32, ptr @test_count, align 4, !tbaa !5
  %804 = load i32, ptr %730, align 4, !tbaa !5
  %805 = call ptr @s2n_strerror(i32 noundef %804, ptr noundef nonnull @.str.4) #12
  %806 = load i32, ptr %730, align 4, !tbaa !5
  %807 = call ptr @s2n_strerror_debug(i32 noundef %806, ptr noundef nonnull @.str.4) #12
  %808 = load i32, ptr %790, align 4, !tbaa !5
  %809 = call ptr @strerror(i32 noundef %808) #12
  %810 = load i32, ptr %790, align 4, !tbaa !5
  %811 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %802, ptr noundef nonnull %.str.5.sink1378, i32 noundef %803, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 123, ptr noundef %805, ptr noundef %807, ptr noundef %809, i32 noundef %810) #14
  call void @exit(i32 noundef 1) #15
  unreachable

812:                                              ; preds = %783
  %813 = load i32, ptr @test_count, align 4, !tbaa !5
  %814 = add nsw i32 %813, 1
  store i32 %814, ptr @test_count, align 4, !tbaa !5
  %815 = load i8, ptr %12, align 1, !tbaa !20
  %816 = icmp eq i8 %815, 10
  br i1 %816, label %840, label %817

817:                                              ; preds = %812
  %818 = tail call ptr @__errno_location() #13
  %819 = load i32, ptr %818, align 4, !tbaa !5
  %820 = load ptr, ptr @stderr, align 8, !tbaa !9
  %821 = call i32 @s2n_print_stacktrace(ptr noundef %820) #12
  %822 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %823 = trunc nuw i8 %822 to i1
  br i1 %823, label %824, label %828

824:                                              ; preds = %817
  %825 = load ptr, ptr @stderr, align 8, !tbaa !9
  %826 = call i32 @fileno(ptr noundef %825) #12
  %827 = call i32 @isatty(i32 noundef %826) #12
  %.not740 = icmp eq i32 %827, 0
  br i1 %.not740, label %828, label %829

828:                                              ; preds = %824, %817
  br label %829

829:                                              ; preds = %824, %828
  %.str.5.sink1387 = phi ptr [ @.str.5, %828 ], [ @.str.2, %824 ]
  store i32 %819, ptr %818, align 4, !tbaa !5
  %830 = load ptr, ptr @stderr, align 8, !tbaa !9
  %831 = load i32, ptr @test_count, align 4, !tbaa !5
  %832 = load i32, ptr %730, align 4, !tbaa !5
  %833 = call ptr @s2n_strerror(i32 noundef %832, ptr noundef nonnull @.str.4) #12
  %834 = load i32, ptr %730, align 4, !tbaa !5
  %835 = call ptr @s2n_strerror_debug(i32 noundef %834, ptr noundef nonnull @.str.4) #12
  %836 = load i32, ptr %818, align 4, !tbaa !5
  %837 = call ptr @strerror(i32 noundef %836) #12
  %838 = load i32, ptr %818, align 4, !tbaa !5
  %839 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %830, ptr noundef nonnull %.str.5.sink1387, i32 noundef %831, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 123, ptr noundef %833, ptr noundef %835, ptr noundef %837, i32 noundef %838) #14
  call void @exit(i32 noundef 1) #15
  unreachable

840:                                              ; preds = %812
  store i32 0, ptr %730, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  %841 = tail call ptr @__errno_location() #13
  store i32 0, ptr %841, align 4, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %12) #12
  %842 = load i32, ptr @test_count, align 4, !tbaa !5
  %843 = add nsw i32 %842, 1
  store i32 %843, ptr @test_count, align 4, !tbaa !5
  %844 = getelementptr inbounds i8, ptr %11, i64 28
  %845 = load i32, ptr %844, align 4, !tbaa !21
  %846 = getelementptr inbounds i8, ptr %11, i64 24
  %847 = load i32, ptr %846, align 8, !tbaa !24
  %848 = sub i32 %845, %847
  %849 = icmp eq i32 %848, 10
  br i1 %849, label %872, label %850

850:                                              ; preds = %840
  %851 = load i32, ptr %841, align 4, !tbaa !5
  %852 = load ptr, ptr @stderr, align 8, !tbaa !9
  %853 = call i32 @s2n_print_stacktrace(ptr noundef %852) #12
  %854 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %855 = trunc nuw i8 %854 to i1
  br i1 %855, label %856, label %860

856:                                              ; preds = %850
  %857 = load ptr, ptr @stderr, align 8, !tbaa !9
  %858 = call i32 @fileno(ptr noundef %857) #12
  %859 = call i32 @isatty(i32 noundef %858) #12
  %.not741 = icmp eq i32 %859, 0
  br i1 %.not741, label %860, label %861

860:                                              ; preds = %856, %850
  br label %861

861:                                              ; preds = %856, %860
  %.str.5.sink1396 = phi ptr [ @.str.5, %860 ], [ @.str.2, %856 ]
  store i32 %851, ptr %841, align 4, !tbaa !5
  %862 = load ptr, ptr @stderr, align 8, !tbaa !9
  %863 = load i32, ptr @test_count, align 4, !tbaa !5
  %864 = load i32, ptr %730, align 4, !tbaa !5
  %865 = call ptr @s2n_strerror(i32 noundef %864, ptr noundef nonnull @.str.4) #12
  %866 = load i32, ptr %730, align 4, !tbaa !5
  %867 = call ptr @s2n_strerror_debug(i32 noundef %866, ptr noundef nonnull @.str.4) #12
  %868 = load i32, ptr %841, align 4, !tbaa !5
  %869 = call ptr @strerror(i32 noundef %868) #12
  %870 = load i32, ptr %841, align 4, !tbaa !5
  %871 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %862, ptr noundef nonnull %.str.5.sink1396, i32 noundef %863, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 126, ptr noundef %865, ptr noundef %867, ptr noundef %869, i32 noundef %870) #14
  call void @exit(i32 noundef 1) #15
  unreachable

872:                                              ; preds = %840
  %873 = add nsw i32 %842, 2
  store i32 %873, ptr @test_count, align 4, !tbaa !5
  %874 = call i32 @s2n_connection_free(ptr noundef nonnull %643) #12
  %875 = icmp eq i32 %874, -1
  br i1 %875, label %876, label %898

876:                                              ; preds = %872
  %877 = load i32, ptr %841, align 4, !tbaa !5
  %878 = load ptr, ptr @stderr, align 8, !tbaa !9
  %879 = call i32 @s2n_print_stacktrace(ptr noundef %878) #12
  %880 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %881 = trunc nuw i8 %880 to i1
  br i1 %881, label %882, label %886

882:                                              ; preds = %876
  %883 = load ptr, ptr @stderr, align 8, !tbaa !9
  %884 = call i32 @fileno(ptr noundef %883) #12
  %885 = call i32 @isatty(i32 noundef %884) #12
  %.not972 = icmp eq i32 %885, 0
  br i1 %.not972, label %886, label %887

886:                                              ; preds = %882, %876
  br label %887

887:                                              ; preds = %882, %886
  %.str.5.sink1405 = phi ptr [ @.str.5, %886 ], [ @.str.2, %882 ]
  store i32 %877, ptr %841, align 4, !tbaa !5
  %888 = load ptr, ptr @stderr, align 8, !tbaa !9
  %889 = load i32, ptr @test_count, align 4, !tbaa !5
  %890 = load i32, ptr %730, align 4, !tbaa !5
  %891 = call ptr @s2n_strerror(i32 noundef %890, ptr noundef nonnull @.str.4) #12
  %892 = load i32, ptr %730, align 4, !tbaa !5
  %893 = call ptr @s2n_strerror_debug(i32 noundef %892, ptr noundef nonnull @.str.4) #12
  %894 = load i32, ptr %841, align 4, !tbaa !5
  %895 = call ptr @strerror(i32 noundef %894) #12
  %896 = load i32, ptr %841, align 4, !tbaa !5
  %897 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %888, ptr noundef nonnull %.str.5.sink1405, i32 noundef %889, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 128, ptr noundef %891, ptr noundef %893, ptr noundef %895, i32 noundef %896) #14
  call void @exit(i32 noundef 1) #15
  unreachable

898:                                              ; preds = %872
  %899 = load i32, ptr @test_count, align 4, !tbaa !5
  %900 = add nsw i32 %899, 1
  store i32 %900, ptr @test_count, align 4, !tbaa !5
  %901 = call i32 @s2n_config_free(ptr noundef nonnull %585) #12
  %902 = icmp eq i32 %901, -1
  br i1 %902, label %903, label %925

903:                                              ; preds = %898
  %904 = load i32, ptr %841, align 4, !tbaa !5
  %905 = load ptr, ptr @stderr, align 8, !tbaa !9
  %906 = call i32 @s2n_print_stacktrace(ptr noundef %905) #12
  %907 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %908 = trunc nuw i8 %907 to i1
  br i1 %908, label %909, label %913

909:                                              ; preds = %903
  %910 = load ptr, ptr @stderr, align 8, !tbaa !9
  %911 = call i32 @fileno(ptr noundef %910) #12
  %912 = call i32 @isatty(i32 noundef %911) #12
  %.not971 = icmp eq i32 %912, 0
  br i1 %.not971, label %913, label %914

913:                                              ; preds = %909, %903
  br label %914

914:                                              ; preds = %909, %913
  %.str.5.sink1414 = phi ptr [ @.str.5, %913 ], [ @.str.2, %909 ]
  store i32 %904, ptr %841, align 4, !tbaa !5
  %915 = load ptr, ptr @stderr, align 8, !tbaa !9
  %916 = load i32, ptr @test_count, align 4, !tbaa !5
  %917 = load i32, ptr %730, align 4, !tbaa !5
  %918 = call ptr @s2n_strerror(i32 noundef %917, ptr noundef nonnull @.str.4) #12
  %919 = load i32, ptr %730, align 4, !tbaa !5
  %920 = call ptr @s2n_strerror_debug(i32 noundef %919, ptr noundef nonnull @.str.4) #12
  %921 = load i32, ptr %841, align 4, !tbaa !5
  %922 = call ptr @strerror(i32 noundef %921) #12
  %923 = load i32, ptr %841, align 4, !tbaa !5
  %924 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %915, ptr noundef nonnull %.str.5.sink1414, i32 noundef %916, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 129, ptr noundef %918, ptr noundef %920, ptr noundef %922, i32 noundef %923) #14
  call void @exit(i32 noundef 1) #15
  unreachable

925:                                              ; preds = %898
  %926 = call i32 @s2n_stuffer_free(ptr noundef nonnull %11) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %11) #12
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %13) #12
  %927 = load i32, ptr @test_count, align 4, !tbaa !5
  %928 = add nsw i32 %927, 1
  store i32 %928, ptr @test_count, align 4, !tbaa !5
  %929 = call i32 @s2n_stuffer_alloc(ptr noundef nonnull %13, i32 noundef 10) #12
  %930 = icmp eq i32 %929, -1
  br i1 %930, label %931, label %953

931:                                              ; preds = %925
  %932 = load i32, ptr %841, align 4, !tbaa !5
  %933 = load ptr, ptr @stderr, align 8, !tbaa !9
  %934 = call i32 @s2n_print_stacktrace(ptr noundef %933) #12
  %935 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %936 = trunc nuw i8 %935 to i1
  br i1 %936, label %937, label %941

937:                                              ; preds = %931
  %938 = load ptr, ptr @stderr, align 8, !tbaa !9
  %939 = call i32 @fileno(ptr noundef %938) #12
  %940 = call i32 @isatty(i32 noundef %939) #12
  %.not970 = icmp eq i32 %940, 0
  br i1 %.not970, label %941, label %942

941:                                              ; preds = %937, %931
  br label %942

942:                                              ; preds = %937, %941
  %.str.5.sink1423 = phi ptr [ @.str.5, %941 ], [ @.str.2, %937 ]
  store i32 %932, ptr %841, align 4, !tbaa !5
  %943 = load ptr, ptr @stderr, align 8, !tbaa !9
  %944 = load i32, ptr @test_count, align 4, !tbaa !5
  %945 = load i32, ptr %730, align 4, !tbaa !5
  %946 = call ptr @s2n_strerror(i32 noundef %945, ptr noundef nonnull @.str.4) #12
  %947 = load i32, ptr %730, align 4, !tbaa !5
  %948 = call ptr @s2n_strerror_debug(i32 noundef %947, ptr noundef nonnull @.str.4) #12
  %949 = load i32, ptr %841, align 4, !tbaa !5
  %950 = call ptr @strerror(i32 noundef %949) #12
  %951 = load i32, ptr %841, align 4, !tbaa !5
  %952 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %943, ptr noundef nonnull %.str.5.sink1423, i32 noundef %944, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 136, ptr noundef %946, ptr noundef %948, ptr noundef %950, i32 noundef %951) #14
  call void @exit(i32 noundef 1) #15
  unreachable

953:                                              ; preds = %925
  %954 = load i32, ptr @test_count, align 4, !tbaa !5
  %955 = add nsw i32 %954, 1
  store i32 %955, ptr @test_count, align 4, !tbaa !5
  %956 = call i32 @s2n_stuffer_skip_write(ptr noundef nonnull %13, i32 noundef 10) #12
  %957 = icmp eq i32 %956, -1
  br i1 %957, label %958, label %980

958:                                              ; preds = %953
  %959 = load i32, ptr %841, align 4, !tbaa !5
  %960 = load ptr, ptr @stderr, align 8, !tbaa !9
  %961 = call i32 @s2n_print_stacktrace(ptr noundef %960) #12
  %962 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %963 = trunc nuw i8 %962 to i1
  br i1 %963, label %964, label %968

964:                                              ; preds = %958
  %965 = load ptr, ptr @stderr, align 8, !tbaa !9
  %966 = call i32 @fileno(ptr noundef %965) #12
  %967 = call i32 @isatty(i32 noundef %966) #12
  %.not969 = icmp eq i32 %967, 0
  br i1 %.not969, label %968, label %969

968:                                              ; preds = %964, %958
  br label %969

969:                                              ; preds = %964, %968
  %.str.5.sink1432 = phi ptr [ @.str.5, %968 ], [ @.str.2, %964 ]
  store i32 %959, ptr %841, align 4, !tbaa !5
  %970 = load ptr, ptr @stderr, align 8, !tbaa !9
  %971 = load i32, ptr @test_count, align 4, !tbaa !5
  %972 = load i32, ptr %730, align 4, !tbaa !5
  %973 = call ptr @s2n_strerror(i32 noundef %972, ptr noundef nonnull @.str.4) #12
  %974 = load i32, ptr %730, align 4, !tbaa !5
  %975 = call ptr @s2n_strerror_debug(i32 noundef %974, ptr noundef nonnull @.str.4) #12
  %976 = load i32, ptr %841, align 4, !tbaa !5
  %977 = call ptr @strerror(i32 noundef %976) #12
  %978 = load i32, ptr %841, align 4, !tbaa !5
  %979 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %970, ptr noundef nonnull %.str.5.sink1432, i32 noundef %971, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 137, ptr noundef %973, ptr noundef %975, ptr noundef %977, i32 noundef %978) #14
  call void @exit(i32 noundef 1) #15
  unreachable

980:                                              ; preds = %953
  %981 = load i32, ptr @test_count, align 4, !tbaa !5
  %982 = add nsw i32 %981, 1
  store i32 %982, ptr @test_count, align 4, !tbaa !5
  %983 = call ptr @s2n_connection_new(i32 noundef 0) #12
  %984 = icmp eq ptr %983, null
  br i1 %984, label %985, label %1007

985:                                              ; preds = %980
  %986 = load i32, ptr %841, align 4, !tbaa !5
  %987 = load ptr, ptr @stderr, align 8, !tbaa !9
  %988 = call i32 @s2n_print_stacktrace(ptr noundef %987) #12
  %989 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %990 = trunc nuw i8 %989 to i1
  br i1 %990, label %991, label %995

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

995:                                              ; preds = %991, %985
  br label %996

996:                                              ; preds = %991, %995
  %.str.5.sink1441 = phi ptr [ @.str.5, %995 ], [ @.str.2, %991 ]
  store i32 %986, ptr %841, align 4, !tbaa !5
  %997 = load ptr, ptr @stderr, align 8, !tbaa !9
  %998 = load i32, ptr @test_count, align 4, !tbaa !5
  %999 = load i32, ptr %730, align 4, !tbaa !5
  %1000 = call ptr @s2n_strerror(i32 noundef %999, ptr noundef nonnull @.str.4) #12
  %1001 = load i32, ptr %730, align 4, !tbaa !5
  %1002 = call ptr @s2n_strerror_debug(i32 noundef %1001, ptr noundef nonnull @.str.4) #12
  %1003 = load i32, ptr %841, align 4, !tbaa !5
  %1004 = call ptr @strerror(i32 noundef %1003) #12
  %1005 = load i32, ptr %841, align 4, !tbaa !5
  %1006 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %997, ptr noundef nonnull %.str.5.sink1441, i32 noundef %998, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 140, ptr noundef %1000, ptr noundef %1002, ptr noundef %1004, i32 noundef %1005) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1007:                                             ; preds = %980
  %1008 = getelementptr inbounds i8, ptr %983, i64 220
  store i8 33, ptr %1008, align 4, !tbaa !25
  %1009 = load i32, ptr @test_count, align 4, !tbaa !5
  %1010 = add nsw i32 %1009, 1
  store i32 %1010, ptr @test_count, align 4, !tbaa !5
  %1011 = call i32 @s2n_key_update_recv(ptr noundef nonnull %983, ptr noundef nonnull %13) #12
  %1012 = icmp eq i32 %1011, -1
  br i1 %1012, label %1035, label %1013

1013:                                             ; preds = %1007
  %1014 = load i32, ptr %841, align 4, !tbaa !5
  %1015 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1016 = call i32 @s2n_print_stacktrace(ptr noundef %1015) #12
  %1017 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1018 = trunc nuw i8 %1017 to i1
  br i1 %1018, label %1019, label %1023

1019:                                             ; preds = %1013
  %1020 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1021 = call i32 @fileno(ptr noundef %1020) #12
  %1022 = call i32 @isatty(i32 noundef %1021) #12
  %.not742 = icmp eq i32 %1022, 0
  br i1 %.not742, label %1023, label %1024

1023:                                             ; preds = %1019, %1013
  br label %1024

1024:                                             ; preds = %1019, %1023
  %.str.5.sink1450 = phi ptr [ @.str.5, %1023 ], [ @.str.2, %1019 ]
  store i32 %1014, ptr %841, align 4, !tbaa !5
  %1025 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1026 = load i32, ptr @test_count, align 4, !tbaa !5
  %1027 = load i32, ptr %730, align 4, !tbaa !5
  %1028 = call ptr @s2n_strerror(i32 noundef %1027, ptr noundef nonnull @.str.4) #12
  %1029 = load i32, ptr %730, align 4, !tbaa !5
  %1030 = call ptr @s2n_strerror_debug(i32 noundef %1029, ptr noundef nonnull @.str.4) #12
  %1031 = load i32, ptr %841, align 4, !tbaa !5
  %1032 = call ptr @strerror(i32 noundef %1031) #12
  %1033 = load i32, ptr %841, align 4, !tbaa !5
  %1034 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1025, ptr noundef nonnull %.str.5.sink1450, i32 noundef %1026, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 143, ptr noundef %1028, ptr noundef %1030, ptr noundef %1032, i32 noundef %1033) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1035:                                             ; preds = %1007
  %1036 = load i32, ptr @test_count, align 4, !tbaa !5
  %1037 = add nsw i32 %1036, 1
  store i32 %1037, ptr @test_count, align 4, !tbaa !5
  %1038 = load i32, ptr %730, align 4, !tbaa !5
  %1039 = icmp eq i32 %1038, 335544322
  br i1 %1039, label %1062, label %1040

1040:                                             ; preds = %1035
  %1041 = load i32, ptr %841, align 4, !tbaa !5
  %1042 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1043 = call i32 @s2n_print_stacktrace(ptr noundef %1042) #12
  %1044 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1045 = trunc nuw i8 %1044 to i1
  br i1 %1045, label %1046, label %1050

1046:                                             ; preds = %1040
  %1047 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1048 = call i32 @fileno(ptr noundef %1047) #12
  %1049 = call i32 @isatty(i32 noundef %1048) #12
  %.not743 = icmp eq i32 %1049, 0
  br i1 %.not743, label %1050, label %1051

1050:                                             ; preds = %1046, %1040
  br label %1051

1051:                                             ; preds = %1046, %1050
  %.str.5.sink1459 = phi ptr [ @.str.5, %1050 ], [ @.str.2, %1046 ]
  store i32 %1041, ptr %841, align 4, !tbaa !5
  %1052 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1053 = load i32, ptr @test_count, align 4, !tbaa !5
  %1054 = load i32, ptr %730, align 4, !tbaa !5
  %1055 = call ptr @s2n_strerror(i32 noundef %1054, ptr noundef nonnull @.str.4) #12
  %1056 = load i32, ptr %730, align 4, !tbaa !5
  %1057 = call ptr @s2n_strerror_debug(i32 noundef %1056, ptr noundef nonnull @.str.4) #12
  %1058 = load i32, ptr %841, align 4, !tbaa !5
  %1059 = call ptr @strerror(i32 noundef %1058) #12
  %1060 = load i32, ptr %841, align 4, !tbaa !5
  %1061 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1052, ptr noundef nonnull %.str.5.sink1459, i32 noundef %1053, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 143, ptr noundef %1055, ptr noundef %1057, ptr noundef %1059, i32 noundef %1060) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1062:                                             ; preds = %1035
  %1063 = add nsw i32 %1036, 2
  store i32 %1063, ptr @test_count, align 4, !tbaa !5
  %1064 = call ptr @s2n_strerror_debug(i32 noundef 335544322, ptr noundef nonnull @.str.4) #12
  %1065 = icmp eq ptr %1064, null
  br i1 %1065, label %1066, label %1088

1066:                                             ; preds = %1062
  %1067 = load i32, ptr %841, align 4, !tbaa !5
  %1068 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1069 = call i32 @s2n_print_stacktrace(ptr noundef %1068) #12
  %1070 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1071 = trunc nuw i8 %1070 to i1
  br i1 %1071, label %1072, label %1076

1072:                                             ; preds = %1066
  %1073 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1074 = call i32 @fileno(ptr noundef %1073) #12
  %1075 = call i32 @isatty(i32 noundef %1074) #12
  %.not967 = icmp eq i32 %1075, 0
  br i1 %.not967, label %1076, label %1077

1076:                                             ; preds = %1072, %1066
  br label %1077

1077:                                             ; preds = %1072, %1076
  %.str.5.sink1468 = phi ptr [ @.str.5, %1076 ], [ @.str.2, %1072 ]
  store i32 %1067, ptr %841, align 4, !tbaa !5
  %1078 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1079 = load i32, ptr @test_count, align 4, !tbaa !5
  %1080 = load i32, ptr %730, align 4, !tbaa !5
  %1081 = call ptr @s2n_strerror(i32 noundef %1080, ptr noundef nonnull @.str.4) #12
  %1082 = load i32, ptr %730, align 4, !tbaa !5
  %1083 = call ptr @s2n_strerror_debug(i32 noundef %1082, ptr noundef nonnull @.str.4) #12
  %1084 = load i32, ptr %841, align 4, !tbaa !5
  %1085 = call ptr @strerror(i32 noundef %1084) #12
  %1086 = load i32, ptr %841, align 4, !tbaa !5
  %1087 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1078, ptr noundef nonnull %.str.5.sink1468, i32 noundef %1079, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 143, ptr noundef %1081, ptr noundef %1083, ptr noundef %1085, i32 noundef %1086) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1088:                                             ; preds = %1062
  store i32 0, ptr %730, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %841, align 4, !tbaa !5
  %1089 = load i32, ptr @test_count, align 4, !tbaa !5
  %1090 = add nsw i32 %1089, 1
  store i32 %1090, ptr @test_count, align 4, !tbaa !5
  %1091 = getelementptr inbounds i8, ptr %13, i64 28
  %1092 = load i32, ptr %1091, align 4, !tbaa !21
  %1093 = getelementptr inbounds i8, ptr %13, i64 24
  %1094 = load i32, ptr %1093, align 8, !tbaa !24
  %1095 = sub i32 %1092, %1094
  %1096 = icmp eq i32 %1095, 10
  br i1 %1096, label %1119, label %1097

1097:                                             ; preds = %1088
  %1098 = load i32, ptr %841, align 4, !tbaa !5
  %1099 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1100 = call i32 @s2n_print_stacktrace(ptr noundef %1099) #12
  %1101 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1102 = trunc nuw i8 %1101 to i1
  br i1 %1102, label %1103, label %1107

1103:                                             ; preds = %1097
  %1104 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1105 = call i32 @fileno(ptr noundef %1104) #12
  %1106 = call i32 @isatty(i32 noundef %1105) #12
  %.not744 = icmp eq i32 %1106, 0
  br i1 %.not744, label %1107, label %1108

1107:                                             ; preds = %1103, %1097
  br label %1108

1108:                                             ; preds = %1103, %1107
  %.str.5.sink1477 = phi ptr [ @.str.5, %1107 ], [ @.str.2, %1103 ]
  store i32 %1098, ptr %841, align 4, !tbaa !5
  %1109 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1110 = load i32, ptr @test_count, align 4, !tbaa !5
  %1111 = load i32, ptr %730, align 4, !tbaa !5
  %1112 = call ptr @s2n_strerror(i32 noundef %1111, ptr noundef nonnull @.str.4) #12
  %1113 = load i32, ptr %730, align 4, !tbaa !5
  %1114 = call ptr @s2n_strerror_debug(i32 noundef %1113, ptr noundef nonnull @.str.4) #12
  %1115 = load i32, ptr %841, align 4, !tbaa !5
  %1116 = call ptr @strerror(i32 noundef %1115) #12
  %1117 = load i32, ptr %841, align 4, !tbaa !5
  %1118 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1109, ptr noundef nonnull %.str.5.sink1477, i32 noundef %1110, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 146, ptr noundef %1112, ptr noundef %1114, ptr noundef %1116, i32 noundef %1117) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1119:                                             ; preds = %1088
  %1120 = add nsw i32 %1089, 2
  store i32 %1120, ptr @test_count, align 4, !tbaa !5
  %1121 = call i32 @s2n_connection_free(ptr noundef nonnull %983) #12
  %1122 = icmp eq i32 %1121, -1
  br i1 %1122, label %1123, label %1145

1123:                                             ; preds = %1119
  %1124 = load i32, ptr %841, align 4, !tbaa !5
  %1125 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1126 = call i32 @s2n_print_stacktrace(ptr noundef %1125) #12
  %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 = %1123
  %1130 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1131 = call i32 @fileno(ptr noundef %1130) #12
  %1132 = call i32 @isatty(i32 noundef %1131) #12
  %.not966 = icmp eq i32 %1132, 0
  br i1 %.not966, label %1133, label %1134

1133:                                             ; preds = %1129, %1123
  br label %1134

1134:                                             ; preds = %1129, %1133
  %.str.5.sink1486 = phi ptr [ @.str.5, %1133 ], [ @.str.2, %1129 ]
  store i32 %1124, ptr %841, align 4, !tbaa !5
  %1135 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1136 = load i32, ptr @test_count, align 4, !tbaa !5
  %1137 = load i32, ptr %730, align 4, !tbaa !5
  %1138 = call ptr @s2n_strerror(i32 noundef %1137, ptr noundef nonnull @.str.4) #12
  %1139 = load i32, ptr %730, align 4, !tbaa !5
  %1140 = call ptr @s2n_strerror_debug(i32 noundef %1139, ptr noundef nonnull @.str.4) #12
  %1141 = load i32, ptr %841, align 4, !tbaa !5
  %1142 = call ptr @strerror(i32 noundef %1141) #12
  %1143 = load i32, ptr %841, align 4, !tbaa !5
  %1144 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1135, ptr noundef nonnull %.str.5.sink1486, i32 noundef %1136, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 148, ptr noundef %1138, ptr noundef %1140, ptr noundef %1142, i32 noundef %1143) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1145:                                             ; preds = %1119
  %1146 = call i32 @s2n_stuffer_free(ptr noundef nonnull %13) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %13) #12
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %14) #12
  %1147 = load i32, ptr @test_count, align 4, !tbaa !5
  %1148 = add nsw i32 %1147, 1
  store i32 %1148, ptr @test_count, align 4, !tbaa !5
  %1149 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %14, i32 noundef 0) #12
  %1150 = icmp eq i32 %1149, -1
  br i1 %1150, label %1151, label %1173

1151:                                             ; preds = %1145
  %1152 = load i32, ptr %841, align 4, !tbaa !5
  %1153 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1154 = call i32 @s2n_print_stacktrace(ptr noundef %1153) #12
  %1155 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1156 = trunc nuw i8 %1155 to i1
  br i1 %1156, label %1157, label %1161

1157:                                             ; preds = %1151
  %1158 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1159 = call i32 @fileno(ptr noundef %1158) #12
  %1160 = call i32 @isatty(i32 noundef %1159) #12
  %.not965 = icmp eq i32 %1160, 0
  br i1 %.not965, label %1161, label %1162

1161:                                             ; preds = %1157, %1151
  br label %1162

1162:                                             ; preds = %1157, %1161
  %.str.5.sink1495 = phi ptr [ @.str.5, %1161 ], [ @.str.2, %1157 ]
  store i32 %1152, ptr %841, align 4, !tbaa !5
  %1163 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1164 = load i32, ptr @test_count, align 4, !tbaa !5
  %1165 = load i32, ptr %730, align 4, !tbaa !5
  %1166 = call ptr @s2n_strerror(i32 noundef %1165, ptr noundef nonnull @.str.4) #12
  %1167 = load i32, ptr %730, align 4, !tbaa !5
  %1168 = call ptr @s2n_strerror_debug(i32 noundef %1167, ptr noundef nonnull @.str.4) #12
  %1169 = load i32, ptr %841, align 4, !tbaa !5
  %1170 = call ptr @strerror(i32 noundef %1169) #12
  %1171 = load i32, ptr %841, align 4, !tbaa !5
  %1172 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1163, ptr noundef nonnull %.str.5.sink1495, i32 noundef %1164, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 154, ptr noundef %1166, ptr noundef %1168, ptr noundef %1170, i32 noundef %1171) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1173:                                             ; preds = %1145
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #12
  %1174 = call ptr @s2n_connection_new(i32 noundef 0) #12
  store ptr %1174, ptr %15, align 8, !tbaa !9
  %1175 = load i32, ptr @test_count, align 4, !tbaa !5
  %1176 = add nsw i32 %1175, 1
  store i32 %1176, ptr @test_count, align 4, !tbaa !5
  %1177 = icmp eq ptr %1174, null
  br i1 %1177, label %1178, label %1200

1178:                                             ; preds = %1173
  %1179 = load i32, ptr %841, align 4, !tbaa !5
  %1180 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1181 = call i32 @s2n_print_stacktrace(ptr noundef %1180) #12
  %1182 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1183 = trunc nuw i8 %1182 to i1
  br i1 %1183, label %1184, label %1188

1184:                                             ; preds = %1178
  %1185 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1186 = call i32 @fileno(ptr noundef %1185) #12
  %1187 = call i32 @isatty(i32 noundef %1186) #12
  %.not964 = icmp eq i32 %1187, 0
  br i1 %.not964, label %1188, label %1189

1188:                                             ; preds = %1184, %1178
  br label %1189

1189:                                             ; preds = %1184, %1188
  %.str.5.sink1504 = phi ptr [ @.str.5, %1188 ], [ @.str.2, %1184 ]
  store i32 %1179, ptr %841, align 4, !tbaa !5
  %1190 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1191 = load i32, ptr @test_count, align 4, !tbaa !5
  %1192 = load i32, ptr %730, align 4, !tbaa !5
  %1193 = call ptr @s2n_strerror(i32 noundef %1192, ptr noundef nonnull @.str.4) #12
  %1194 = load i32, ptr %730, align 4, !tbaa !5
  %1195 = call ptr @s2n_strerror_debug(i32 noundef %1194, ptr noundef nonnull @.str.4) #12
  %1196 = load i32, ptr %841, align 4, !tbaa !5
  %1197 = call ptr @strerror(i32 noundef %1196) #12
  %1198 = load i32, ptr %841, align 4, !tbaa !5
  %1199 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1190, ptr noundef nonnull %.str.5.sink1504, i32 noundef %1191, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 158, ptr noundef %1193, ptr noundef %1195, ptr noundef %1197, i32 noundef %1198) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1200:                                             ; preds = %1173
  %1201 = getelementptr inbounds i8, ptr %1174, i64 220
  store i8 34, ptr %1201, align 4, !tbaa !25
  %1202 = add nsw i32 %1175, 2
  store i32 %1202, ptr @test_count, align 4, !tbaa !5
  %1203 = getelementptr inbounds i8, ptr %1174, i64 232
  %1204 = load ptr, ptr %1203, align 8, !tbaa !49
  %1205 = icmp eq ptr %1204, null
  br i1 %1205, label %1206, label %1228

1206:                                             ; preds = %1200
  %1207 = load i32, ptr %841, align 4, !tbaa !5
  %1208 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1209 = call i32 @s2n_print_stacktrace(ptr noundef %1208) #12
  %1210 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1211 = trunc nuw i8 %1210 to i1
  br i1 %1211, label %1212, label %1216

1212:                                             ; preds = %1206
  %1213 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1214 = call i32 @fileno(ptr noundef %1213) #12
  %1215 = call i32 @isatty(i32 noundef %1214) #12
  %.not963 = icmp eq i32 %1215, 0
  br i1 %.not963, label %1216, label %1217

1216:                                             ; preds = %1212, %1206
  br label %1217

1217:                                             ; preds = %1212, %1216
  %.str.5.sink1513 = phi ptr [ @.str.5, %1216 ], [ @.str.2, %1212 ]
  store i32 %1207, ptr %841, align 4, !tbaa !5
  %1218 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1219 = load i32, ptr @test_count, align 4, !tbaa !5
  %1220 = load i32, ptr %730, align 4, !tbaa !5
  %1221 = call ptr @s2n_strerror(i32 noundef %1220, ptr noundef nonnull @.str.4) #12
  %1222 = load i32, ptr %730, align 4, !tbaa !5
  %1223 = call ptr @s2n_strerror_debug(i32 noundef %1222, ptr noundef nonnull @.str.4) #12
  %1224 = load i32, ptr %841, align 4, !tbaa !5
  %1225 = call ptr @strerror(i32 noundef %1224) #12
  %1226 = load i32, ptr %841, align 4, !tbaa !5
  %1227 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1218, ptr noundef nonnull %.str.5.sink1513, i32 noundef %1219, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.1, i32 noundef 160, ptr noundef %1221, ptr noundef %1223, ptr noundef %1225, i32 noundef %1226) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1228:                                             ; preds = %1200
  store ptr @s2n_tls13_aes_256_gcm_sha384, ptr %1204, align 8, !tbaa !50
  %1229 = load ptr, ptr %15, align 8, !tbaa !9
  %1230 = load i32, ptr %1229, align 8
  %1231 = or i32 %1230, 262144
  store i32 %1231, ptr %1229, align 8
  %1232 = load ptr, ptr %15, align 8, !tbaa !9
  %1233 = load i32, ptr %1232, align 8
  %1234 = or i32 %1233, 524288
  store i32 %1234, ptr %1232, align 8
  %1235 = load i32, ptr @test_count, align 4, !tbaa !5
  %1236 = add nsw i32 %1235, 1
  store i32 %1236, ptr @test_count, align 4, !tbaa !5
  %1237 = call i32 @s2n_stuffer_write_uint8(ptr noundef nonnull %14, i8 noundef zeroext 0) #12
  %1238 = icmp eq i32 %1237, -1
  br i1 %1238, label %1239, label %1261

1239:                                             ; preds = %1228
  %1240 = load i32, ptr %841, align 4, !tbaa !5
  %1241 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1242 = call i32 @s2n_print_stacktrace(ptr noundef %1241) #12
  %1243 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1244 = trunc nuw i8 %1243 to i1
  br i1 %1244, label %1245, label %1249

1245:                                             ; preds = %1239
  %1246 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1247 = call i32 @fileno(ptr noundef %1246) #12
  %1248 = call i32 @isatty(i32 noundef %1247) #12
  %.not962 = icmp eq i32 %1248, 0
  br i1 %.not962, label %1249, label %1250

1249:                                             ; preds = %1245, %1239
  br label %1250

1250:                                             ; preds = %1245, %1249
  %.str.5.sink1522 = phi ptr [ @.str.5, %1249 ], [ @.str.2, %1245 ]
  store i32 %1240, ptr %841, align 4, !tbaa !5
  %1251 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1252 = load i32, ptr @test_count, align 4, !tbaa !5
  %1253 = load i32, ptr %730, align 4, !tbaa !5
  %1254 = call ptr @s2n_strerror(i32 noundef %1253, ptr noundef nonnull @.str.4) #12
  %1255 = load i32, ptr %730, align 4, !tbaa !5
  %1256 = call ptr @s2n_strerror_debug(i32 noundef %1255, ptr noundef nonnull @.str.4) #12
  %1257 = load i32, ptr %841, align 4, !tbaa !5
  %1258 = call ptr @strerror(i32 noundef %1257) #12
  %1259 = load i32, ptr %841, align 4, !tbaa !5
  %1260 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1251, ptr noundef nonnull %.str.5.sink1522, i32 noundef %1252, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 168, ptr noundef %1254, ptr noundef %1256, ptr noundef %1258, i32 noundef %1259) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1261:                                             ; preds = %1228
  %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 %15, align 8, !tbaa !9
  %1265 = call i32 @s2n_key_update_recv(ptr noundef %1264, ptr noundef nonnull %14) #12
  %1266 = icmp eq i32 %1265, -1
  br i1 %1266, label %1289, label %1267

1267:                                             ; preds = %1261
  %1268 = load i32, ptr %841, align 4, !tbaa !5
  %1269 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1270 = call i32 @s2n_print_stacktrace(ptr noundef %1269) #12
  %1271 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1272 = trunc nuw i8 %1271 to i1
  br i1 %1272, label %1273, label %1277

1273:                                             ; preds = %1267
  %1274 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1275 = call i32 @fileno(ptr noundef %1274) #12
  %1276 = call i32 @isatty(i32 noundef %1275) #12
  %.not745 = icmp eq i32 %1276, 0
  br i1 %.not745, label %1277, label %1278

1277:                                             ; preds = %1273, %1267
  br label %1278

1278:                                             ; preds = %1273, %1277
  %.str.5.sink1531 = phi ptr [ @.str.5, %1277 ], [ @.str.2, %1273 ]
  store i32 %1268, ptr %841, align 4, !tbaa !5
  %1279 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1280 = load i32, ptr @test_count, align 4, !tbaa !5
  %1281 = load i32, ptr %730, align 4, !tbaa !5
  %1282 = call ptr @s2n_strerror(i32 noundef %1281, ptr noundef nonnull @.str.4) #12
  %1283 = load i32, ptr %730, align 4, !tbaa !5
  %1284 = call ptr @s2n_strerror_debug(i32 noundef %1283, ptr noundef nonnull @.str.4) #12
  %1285 = load i32, ptr %841, align 4, !tbaa !5
  %1286 = call ptr @strerror(i32 noundef %1285) #12
  %1287 = load i32, ptr %841, align 4, !tbaa !5
  %1288 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1279, ptr noundef nonnull %.str.5.sink1531, i32 noundef %1280, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 169, ptr noundef %1282, ptr noundef %1284, ptr noundef %1286, i32 noundef %1287) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1289:                                             ; preds = %1261
  %1290 = load i32, ptr @test_count, align 4, !tbaa !5
  %1291 = add nsw i32 %1290, 1
  store i32 %1291, ptr @test_count, align 4, !tbaa !5
  %1292 = load i32, ptr %730, align 4, !tbaa !5
  %1293 = icmp eq i32 %1292, 335544399
  br i1 %1293, label %1316, label %1294

1294:                                             ; preds = %1289
  %1295 = load i32, ptr %841, align 4, !tbaa !5
  %1296 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1297 = call i32 @s2n_print_stacktrace(ptr noundef %1296) #12
  %1298 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1299 = trunc nuw i8 %1298 to i1
  br i1 %1299, label %1300, label %1304

1300:                                             ; preds = %1294
  %1301 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1302 = call i32 @fileno(ptr noundef %1301) #12
  %1303 = call i32 @isatty(i32 noundef %1302) #12
  %.not746 = icmp eq i32 %1303, 0
  br i1 %.not746, label %1304, label %1305

1304:                                             ; preds = %1300, %1294
  br label %1305

1305:                                             ; preds = %1300, %1304
  %.str.5.sink1540 = phi ptr [ @.str.5, %1304 ], [ @.str.2, %1300 ]
  store i32 %1295, ptr %841, align 4, !tbaa !5
  %1306 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1307 = load i32, ptr @test_count, align 4, !tbaa !5
  %1308 = load i32, ptr %730, align 4, !tbaa !5
  %1309 = call ptr @s2n_strerror(i32 noundef %1308, ptr noundef nonnull @.str.4) #12
  %1310 = load i32, ptr %730, align 4, !tbaa !5
  %1311 = call ptr @s2n_strerror_debug(i32 noundef %1310, ptr noundef nonnull @.str.4) #12
  %1312 = load i32, ptr %841, align 4, !tbaa !5
  %1313 = call ptr @strerror(i32 noundef %1312) #12
  %1314 = load i32, ptr %841, align 4, !tbaa !5
  %1315 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1306, ptr noundef nonnull %.str.5.sink1540, i32 noundef %1307, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.1, i32 noundef 169, ptr noundef %1309, ptr noundef %1311, ptr noundef %1313, i32 noundef %1314) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1316:                                             ; preds = %1289
  %1317 = add nsw i32 %1290, 2
  store i32 %1317, ptr @test_count, align 4, !tbaa !5
  %1318 = call ptr @s2n_strerror_debug(i32 noundef 335544399, ptr noundef nonnull @.str.4) #12
  %1319 = icmp eq ptr %1318, null
  br i1 %1319, label %1320, label %1342

1320:                                             ; preds = %1316
  %1321 = load i32, ptr %841, align 4, !tbaa !5
  %1322 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1323 = call i32 @s2n_print_stacktrace(ptr noundef %1322) #12
  %1324 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1325 = trunc nuw i8 %1324 to i1
  br i1 %1325, label %1326, label %1330

1326:                                             ; preds = %1320
  %1327 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1328 = call i32 @fileno(ptr noundef %1327) #12
  %1329 = call i32 @isatty(i32 noundef %1328) #12
  %.not961 = icmp eq i32 %1329, 0
  br i1 %.not961, label %1330, label %1331

1330:                                             ; preds = %1326, %1320
  br label %1331

1331:                                             ; preds = %1326, %1330
  %.str.5.sink1549 = phi ptr [ @.str.5, %1330 ], [ @.str.2, %1326 ]
  store i32 %1321, ptr %841, align 4, !tbaa !5
  %1332 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1333 = load i32, ptr @test_count, align 4, !tbaa !5
  %1334 = load i32, ptr %730, align 4, !tbaa !5
  %1335 = call ptr @s2n_strerror(i32 noundef %1334, ptr noundef nonnull @.str.4) #12
  %1336 = load i32, ptr %730, align 4, !tbaa !5
  %1337 = call ptr @s2n_strerror_debug(i32 noundef %1336, ptr noundef nonnull @.str.4) #12
  %1338 = load i32, ptr %841, align 4, !tbaa !5
  %1339 = call ptr @strerror(i32 noundef %1338) #12
  %1340 = load i32, ptr %841, align 4, !tbaa !5
  %1341 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1332, ptr noundef nonnull %.str.5.sink1549, i32 noundef %1333, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 169, ptr noundef %1335, ptr noundef %1337, ptr noundef %1339, i32 noundef %1340) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1342:                                             ; preds = %1316
  store i32 0, ptr %730, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %841, align 4, !tbaa !5
  %1343 = load i32, ptr @test_count, align 4, !tbaa !5
  %1344 = add nsw i32 %1343, 1
  store i32 %1344, ptr @test_count, align 4, !tbaa !5
  %1345 = call i32 @s2n_stuffer_wipe(ptr noundef nonnull %14) #12
  %1346 = icmp eq i32 %1345, -1
  br i1 %1346, label %1347, label %1369

1347:                                             ; preds = %1342
  %1348 = load i32, ptr %841, align 4, !tbaa !5
  %1349 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1350 = call i32 @s2n_print_stacktrace(ptr noundef %1349) #12
  %1351 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1352 = trunc nuw i8 %1351 to i1
  br i1 %1352, label %1353, label %1357

1353:                                             ; preds = %1347
  %1354 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1355 = call i32 @fileno(ptr noundef %1354) #12
  %1356 = call i32 @isatty(i32 noundef %1355) #12
  %.not960 = icmp eq i32 %1356, 0
  br i1 %.not960, label %1357, label %1358

1357:                                             ; preds = %1353, %1347
  br label %1358

1358:                                             ; preds = %1353, %1357
  %.str.5.sink1558 = phi ptr [ @.str.5, %1357 ], [ @.str.2, %1353 ]
  store i32 %1348, ptr %841, align 4, !tbaa !5
  %1359 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1360 = load i32, ptr @test_count, align 4, !tbaa !5
  %1361 = load i32, ptr %730, align 4, !tbaa !5
  %1362 = call ptr @s2n_strerror(i32 noundef %1361, ptr noundef nonnull @.str.4) #12
  %1363 = load i32, ptr %730, align 4, !tbaa !5
  %1364 = call ptr @s2n_strerror_debug(i32 noundef %1363, ptr noundef nonnull @.str.4) #12
  %1365 = load i32, ptr %841, align 4, !tbaa !5
  %1366 = call ptr @strerror(i32 noundef %1365) #12
  %1367 = load i32, ptr %841, align 4, !tbaa !5
  %1368 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1359, ptr noundef nonnull %.str.5.sink1558, i32 noundef %1360, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.1, i32 noundef 170, ptr noundef %1362, ptr noundef %1364, ptr noundef %1366, i32 noundef %1367) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1369:                                             ; preds = %1342
  %1370 = load ptr, ptr %15, align 8, !tbaa !9
  %1371 = load i32, ptr %1370, align 8
  %1372 = or i32 %1371, 262144
  store i32 %1372, ptr %1370, align 8
  %1373 = load ptr, ptr %15, align 8, !tbaa !9
  %1374 = load i32, ptr %1373, align 8
  %1375 = and i32 %1374, -524289
  store i32 %1375, ptr %1373, align 8
  %1376 = load i32, ptr @test_count, align 4, !tbaa !5
  %1377 = add nsw i32 %1376, 1
  store i32 %1377, ptr @test_count, align 4, !tbaa !5
  %1378 = call i32 @s2n_stuffer_write_uint8(ptr noundef nonnull %14, i8 noundef zeroext 1) #12
  %1379 = icmp eq i32 %1378, -1
  br i1 %1379, label %1380, label %1402

1380:                                             ; preds = %1369
  %1381 = load i32, ptr %841, align 4, !tbaa !5
  %1382 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1383 = call i32 @s2n_print_stacktrace(ptr noundef %1382) #12
  %1384 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1385 = trunc nuw i8 %1384 to i1
  br i1 %1385, label %1386, label %1390

1386:                                             ; preds = %1380
  %1387 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1388 = call i32 @fileno(ptr noundef %1387) #12
  %1389 = call i32 @isatty(i32 noundef %1388) #12
  %.not959 = icmp eq i32 %1389, 0
  br i1 %.not959, label %1390, label %1391

1390:                                             ; preds = %1386, %1380
  br label %1391

1391:                                             ; preds = %1386, %1390
  %.str.5.sink1567 = phi ptr [ @.str.5, %1390 ], [ @.str.2, %1386 ]
  store i32 %1381, ptr %841, align 4, !tbaa !5
  %1392 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1393 = load i32, ptr @test_count, align 4, !tbaa !5
  %1394 = load i32, ptr %730, align 4, !tbaa !5
  %1395 = call ptr @s2n_strerror(i32 noundef %1394, ptr noundef nonnull @.str.4) #12
  %1396 = load i32, ptr %730, align 4, !tbaa !5
  %1397 = call ptr @s2n_strerror_debug(i32 noundef %1396, ptr noundef nonnull @.str.4) #12
  %1398 = load i32, ptr %841, align 4, !tbaa !5
  %1399 = call ptr @strerror(i32 noundef %1398) #12
  %1400 = load i32, ptr %841, align 4, !tbaa !5
  %1401 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1392, ptr noundef nonnull %.str.5.sink1567, i32 noundef %1393, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 177, ptr noundef %1395, ptr noundef %1397, ptr noundef %1399, i32 noundef %1400) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1402:                                             ; preds = %1369
  %1403 = load i32, ptr @test_count, align 4, !tbaa !5
  %1404 = add nsw i32 %1403, 1
  store i32 %1404, ptr @test_count, align 4, !tbaa !5
  %1405 = load ptr, ptr %15, align 8, !tbaa !9
  %1406 = call i32 @s2n_key_update_recv(ptr noundef %1405, ptr noundef nonnull %14) #12
  %1407 = icmp eq i32 %1406, -1
  br i1 %1407, label %1430, label %1408

1408:                                             ; preds = %1402
  %1409 = load i32, ptr %841, align 4, !tbaa !5
  %1410 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1411 = call i32 @s2n_print_stacktrace(ptr noundef %1410) #12
  %1412 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1413 = trunc nuw i8 %1412 to i1
  br i1 %1413, label %1414, label %1418

1414:                                             ; preds = %1408
  %1415 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1416 = call i32 @fileno(ptr noundef %1415) #12
  %1417 = call i32 @isatty(i32 noundef %1416) #12
  %.not747 = icmp eq i32 %1417, 0
  br i1 %.not747, label %1418, label %1419

1418:                                             ; preds = %1414, %1408
  br label %1419

1419:                                             ; preds = %1414, %1418
  %.str.5.sink1576 = phi ptr [ @.str.5, %1418 ], [ @.str.2, %1414 ]
  store i32 %1409, ptr %841, align 4, !tbaa !5
  %1420 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1421 = load i32, ptr @test_count, align 4, !tbaa !5
  %1422 = load i32, ptr %730, align 4, !tbaa !5
  %1423 = call ptr @s2n_strerror(i32 noundef %1422, ptr noundef nonnull @.str.4) #12
  %1424 = load i32, ptr %730, align 4, !tbaa !5
  %1425 = call ptr @s2n_strerror_debug(i32 noundef %1424, ptr noundef nonnull @.str.4) #12
  %1426 = load i32, ptr %841, align 4, !tbaa !5
  %1427 = call ptr @strerror(i32 noundef %1426) #12
  %1428 = load i32, ptr %841, align 4, !tbaa !5
  %1429 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1420, ptr noundef nonnull %.str.5.sink1576, i32 noundef %1421, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 178, ptr noundef %1423, ptr noundef %1425, ptr noundef %1427, i32 noundef %1428) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1430:                                             ; preds = %1402
  %1431 = load i32, ptr @test_count, align 4, !tbaa !5
  %1432 = add nsw i32 %1431, 1
  store i32 %1432, ptr @test_count, align 4, !tbaa !5
  %1433 = load i32, ptr %730, align 4, !tbaa !5
  %1434 = icmp eq i32 %1433, 335544399
  br i1 %1434, label %1457, label %1435

1435:                                             ; preds = %1430
  %1436 = load i32, ptr %841, align 4, !tbaa !5
  %1437 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1438 = call i32 @s2n_print_stacktrace(ptr noundef %1437) #12
  %1439 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1440 = trunc nuw i8 %1439 to i1
  br i1 %1440, label %1441, label %1445

1441:                                             ; preds = %1435
  %1442 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1443 = call i32 @fileno(ptr noundef %1442) #12
  %1444 = call i32 @isatty(i32 noundef %1443) #12
  %.not748 = icmp eq i32 %1444, 0
  br i1 %.not748, label %1445, label %1446

1445:                                             ; preds = %1441, %1435
  br label %1446

1446:                                             ; preds = %1441, %1445
  %.str.5.sink1585 = phi ptr [ @.str.5, %1445 ], [ @.str.2, %1441 ]
  store i32 %1436, ptr %841, align 4, !tbaa !5
  %1447 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1448 = load i32, ptr @test_count, align 4, !tbaa !5
  %1449 = load i32, ptr %730, align 4, !tbaa !5
  %1450 = call ptr @s2n_strerror(i32 noundef %1449, ptr noundef nonnull @.str.4) #12
  %1451 = load i32, ptr %730, align 4, !tbaa !5
  %1452 = call ptr @s2n_strerror_debug(i32 noundef %1451, ptr noundef nonnull @.str.4) #12
  %1453 = load i32, ptr %841, align 4, !tbaa !5
  %1454 = call ptr @strerror(i32 noundef %1453) #12
  %1455 = load i32, ptr %841, align 4, !tbaa !5
  %1456 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1447, ptr noundef nonnull %.str.5.sink1585, i32 noundef %1448, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.1, i32 noundef 178, ptr noundef %1450, ptr noundef %1452, ptr noundef %1454, i32 noundef %1455) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1457:                                             ; preds = %1430
  %1458 = add nsw i32 %1431, 2
  store i32 %1458, ptr @test_count, align 4, !tbaa !5
  %1459 = call ptr @s2n_strerror_debug(i32 noundef 335544399, ptr noundef nonnull @.str.4) #12
  %1460 = icmp eq ptr %1459, null
  br i1 %1460, label %1461, label %1483

1461:                                             ; preds = %1457
  %1462 = load i32, ptr %841, align 4, !tbaa !5
  %1463 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1464 = call i32 @s2n_print_stacktrace(ptr noundef %1463) #12
  %1465 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1466 = trunc nuw i8 %1465 to i1
  br i1 %1466, label %1467, label %1471

1467:                                             ; preds = %1461
  %1468 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1469 = call i32 @fileno(ptr noundef %1468) #12
  %1470 = call i32 @isatty(i32 noundef %1469) #12
  %.not958 = icmp eq i32 %1470, 0
  br i1 %.not958, label %1471, label %1472

1471:                                             ; preds = %1467, %1461
  br label %1472

1472:                                             ; preds = %1467, %1471
  %.str.5.sink1594 = phi ptr [ @.str.5, %1471 ], [ @.str.2, %1467 ]
  store i32 %1462, ptr %841, align 4, !tbaa !5
  %1473 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1474 = load i32, ptr @test_count, align 4, !tbaa !5
  %1475 = load i32, ptr %730, align 4, !tbaa !5
  %1476 = call ptr @s2n_strerror(i32 noundef %1475, ptr noundef nonnull @.str.4) #12
  %1477 = load i32, ptr %730, align 4, !tbaa !5
  %1478 = call ptr @s2n_strerror_debug(i32 noundef %1477, ptr noundef nonnull @.str.4) #12
  %1479 = load i32, ptr %841, align 4, !tbaa !5
  %1480 = call ptr @strerror(i32 noundef %1479) #12
  %1481 = load i32, ptr %841, align 4, !tbaa !5
  %1482 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1473, ptr noundef nonnull %.str.5.sink1594, i32 noundef %1474, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 178, ptr noundef %1476, ptr noundef %1478, ptr noundef %1480, i32 noundef %1481) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1483:                                             ; preds = %1457
  store i32 0, ptr %730, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %841, align 4, !tbaa !5
  %1484 = load i32, ptr @test_count, align 4, !tbaa !5
  %1485 = add nsw i32 %1484, 1
  store i32 %1485, ptr @test_count, align 4, !tbaa !5
  %1486 = getelementptr inbounds i8, ptr %14, i64 28
  %1487 = load i32, ptr %1486, align 4, !tbaa !21
  %1488 = getelementptr inbounds i8, ptr %14, i64 24
  %1489 = load i32, ptr %1488, align 8, !tbaa !24
  %1490 = icmp eq i32 %1487, %1489
  br i1 %1490, label %1513, label %1491

1491:                                             ; preds = %1483
  %1492 = load i32, ptr %841, align 4, !tbaa !5
  %1493 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1494 = call i32 @s2n_print_stacktrace(ptr noundef %1493) #12
  %1495 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1496 = trunc nuw i8 %1495 to i1
  br i1 %1496, label %1497, label %1501

1497:                                             ; preds = %1491
  %1498 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1499 = call i32 @fileno(ptr noundef %1498) #12
  %1500 = call i32 @isatty(i32 noundef %1499) #12
  %.not749 = icmp eq i32 %1500, 0
  br i1 %.not749, label %1501, label %1502

1501:                                             ; preds = %1497, %1491
  br label %1502

1502:                                             ; preds = %1497, %1501
  %.str.5.sink1603 = phi ptr [ @.str.5, %1501 ], [ @.str.2, %1497 ]
  store i32 %1492, ptr %841, align 4, !tbaa !5
  %1503 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1504 = load i32, ptr @test_count, align 4, !tbaa !5
  %1505 = load i32, ptr %730, align 4, !tbaa !5
  %1506 = call ptr @s2n_strerror(i32 noundef %1505, ptr noundef nonnull @.str.4) #12
  %1507 = load i32, ptr %730, align 4, !tbaa !5
  %1508 = call ptr @s2n_strerror_debug(i32 noundef %1507, ptr noundef nonnull @.str.4) #12
  %1509 = load i32, ptr %841, align 4, !tbaa !5
  %1510 = call ptr @strerror(i32 noundef %1509) #12
  %1511 = load i32, ptr %841, align 4, !tbaa !5
  %1512 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1503, ptr noundef nonnull %.str.5.sink1603, i32 noundef %1504, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 179, ptr noundef %1506, ptr noundef %1508, ptr noundef %1510, i32 noundef %1511) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1513:                                             ; preds = %1483
  %1514 = load ptr, ptr %15, align 8, !tbaa !9
  %1515 = load i32, ptr %1514, align 8
  %1516 = or i32 %1515, 262144
  store i32 %1516, ptr %1514, align 8
  %1517 = load ptr, ptr %15, align 8, !tbaa !9
  %1518 = load i32, ptr %1517, align 8
  %1519 = and i32 %1518, -524289
  store i32 %1519, ptr %1517, align 8
  %1520 = load i32, ptr @test_count, align 4, !tbaa !5
  %1521 = add nsw i32 %1520, 1
  store i32 %1521, ptr @test_count, align 4, !tbaa !5
  %1522 = call i32 @s2n_stuffer_write_uint8(ptr noundef nonnull %14, i8 noundef zeroext 0) #12
  %1523 = icmp eq i32 %1522, -1
  br i1 %1523, label %1524, label %1546

1524:                                             ; preds = %1513
  %1525 = load i32, ptr %841, align 4, !tbaa !5
  %1526 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1527 = call i32 @s2n_print_stacktrace(ptr noundef %1526) #12
  %1528 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1529 = trunc nuw i8 %1528 to i1
  br i1 %1529, label %1530, label %1534

1530:                                             ; preds = %1524
  %1531 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1532 = call i32 @fileno(ptr noundef %1531) #12
  %1533 = call i32 @isatty(i32 noundef %1532) #12
  %.not957 = icmp eq i32 %1533, 0
  br i1 %.not957, label %1534, label %1535

1534:                                             ; preds = %1530, %1524
  br label %1535

1535:                                             ; preds = %1530, %1534
  %.str.5.sink1612 = phi ptr [ @.str.5, %1534 ], [ @.str.2, %1530 ]
  store i32 %1525, ptr %841, align 4, !tbaa !5
  %1536 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1537 = load i32, ptr @test_count, align 4, !tbaa !5
  %1538 = load i32, ptr %730, align 4, !tbaa !5
  %1539 = call ptr @s2n_strerror(i32 noundef %1538, ptr noundef nonnull @.str.4) #12
  %1540 = load i32, ptr %730, align 4, !tbaa !5
  %1541 = call ptr @s2n_strerror_debug(i32 noundef %1540, ptr noundef nonnull @.str.4) #12
  %1542 = load i32, ptr %841, align 4, !tbaa !5
  %1543 = call ptr @strerror(i32 noundef %1542) #12
  %1544 = load i32, ptr %841, align 4, !tbaa !5
  %1545 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1536, ptr noundef nonnull %.str.5.sink1612, i32 noundef %1537, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 186, ptr noundef %1539, ptr noundef %1541, ptr noundef %1543, i32 noundef %1544) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1546:                                             ; preds = %1513
  %1547 = load i32, ptr @test_count, align 4, !tbaa !5
  %1548 = add nsw i32 %1547, 1
  store i32 %1548, ptr @test_count, align 4, !tbaa !5
  %1549 = load ptr, ptr %15, align 8, !tbaa !9
  %1550 = call i32 @s2n_key_update_recv(ptr noundef %1549, ptr noundef nonnull %14) #12
  %1551 = icmp eq i32 %1550, -1
  br i1 %1551, label %1552, label %1574

1552:                                             ; preds = %1546
  %1553 = load i32, ptr %841, align 4, !tbaa !5
  %1554 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1555 = call i32 @s2n_print_stacktrace(ptr noundef %1554) #12
  %1556 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1557 = trunc nuw i8 %1556 to i1
  br i1 %1557, label %1558, label %1562

1558:                                             ; preds = %1552
  %1559 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1560 = call i32 @fileno(ptr noundef %1559) #12
  %1561 = call i32 @isatty(i32 noundef %1560) #12
  %.not956 = icmp eq i32 %1561, 0
  br i1 %.not956, label %1562, label %1563

1562:                                             ; preds = %1558, %1552
  br label %1563

1563:                                             ; preds = %1558, %1562
  %.str.5.sink1621 = phi ptr [ @.str.5, %1562 ], [ @.str.2, %1558 ]
  store i32 %1553, ptr %841, align 4, !tbaa !5
  %1564 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1565 = load i32, ptr @test_count, align 4, !tbaa !5
  %1566 = load i32, ptr %730, align 4, !tbaa !5
  %1567 = call ptr @s2n_strerror(i32 noundef %1566, ptr noundef nonnull @.str.4) #12
  %1568 = load i32, ptr %730, align 4, !tbaa !5
  %1569 = call ptr @s2n_strerror_debug(i32 noundef %1568, ptr noundef nonnull @.str.4) #12
  %1570 = load i32, ptr %841, align 4, !tbaa !5
  %1571 = call ptr @strerror(i32 noundef %1570) #12
  %1572 = load i32, ptr %841, align 4, !tbaa !5
  %1573 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1564, ptr noundef nonnull %.str.5.sink1621, i32 noundef %1565, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.1, i32 noundef 187, ptr noundef %1567, ptr noundef %1569, ptr noundef %1571, i32 noundef %1572) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1574:                                             ; preds = %1546
  %1575 = load i32, ptr @test_count, align 4, !tbaa !5
  %1576 = add nsw i32 %1575, 1
  store i32 %1576, ptr @test_count, align 4, !tbaa !5
  %1577 = load i32, ptr %1486, align 4, !tbaa !21
  %1578 = load i32, ptr %1488, align 8, !tbaa !24
  %1579 = icmp eq i32 %1577, %1578
  br i1 %1579, label %1602, label %1580

1580:                                             ; preds = %1574
  %1581 = load i32, ptr %841, align 4, !tbaa !5
  %1582 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1583 = call i32 @s2n_print_stacktrace(ptr noundef %1582) #12
  %1584 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1585 = trunc nuw i8 %1584 to i1
  br i1 %1585, label %1586, label %1590

1586:                                             ; preds = %1580
  %1587 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1588 = call i32 @fileno(ptr noundef %1587) #12
  %1589 = call i32 @isatty(i32 noundef %1588) #12
  %.not750 = icmp eq i32 %1589, 0
  br i1 %.not750, label %1590, label %1591

1590:                                             ; preds = %1586, %1580
  br label %1591

1591:                                             ; preds = %1586, %1590
  %.str.5.sink1630 = phi ptr [ @.str.5, %1590 ], [ @.str.2, %1586 ]
  store i32 %1581, ptr %841, align 4, !tbaa !5
  %1592 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1593 = load i32, ptr @test_count, align 4, !tbaa !5
  %1594 = load i32, ptr %730, align 4, !tbaa !5
  %1595 = call ptr @s2n_strerror(i32 noundef %1594, ptr noundef nonnull @.str.4) #12
  %1596 = load i32, ptr %730, align 4, !tbaa !5
  %1597 = call ptr @s2n_strerror_debug(i32 noundef %1596, ptr noundef nonnull @.str.4) #12
  %1598 = load i32, ptr %841, align 4, !tbaa !5
  %1599 = call ptr @strerror(i32 noundef %1598) #12
  %1600 = load i32, ptr %841, align 4, !tbaa !5
  %1601 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1592, ptr noundef nonnull %.str.5.sink1630, i32 noundef %1593, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 188, ptr noundef %1595, ptr noundef %1597, ptr noundef %1599, i32 noundef %1600) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1602:                                             ; preds = %1574
  %1603 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %15) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #12
  %1604 = call i32 @s2n_stuffer_free(ptr noundef nonnull %14) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %14) #12
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %16) #12
  %1605 = load i32, ptr @test_count, align 4, !tbaa !5
  %1606 = add nsw i32 %1605, 1
  store i32 %1606, ptr @test_count, align 4, !tbaa !5
  %1607 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %16, i32 noundef 0) #12
  %1608 = icmp eq i32 %1607, -1
  br i1 %1608, label %1609, label %1631

1609:                                             ; preds = %1602
  %1610 = load i32, ptr %841, align 4, !tbaa !5
  %1611 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1612 = call i32 @s2n_print_stacktrace(ptr noundef %1611) #12
  %1613 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1614 = trunc nuw i8 %1613 to i1
  br i1 %1614, label %1615, label %1619

1615:                                             ; preds = %1609
  %1616 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1617 = call i32 @fileno(ptr noundef %1616) #12
  %1618 = call i32 @isatty(i32 noundef %1617) #12
  %.not955 = icmp eq i32 %1618, 0
  br i1 %.not955, label %1619, label %1620

1619:                                             ; preds = %1615, %1609
  br label %1620

1620:                                             ; preds = %1615, %1619
  %.str.5.sink1639 = phi ptr [ @.str.5, %1619 ], [ @.str.2, %1615 ]
  store i32 %1610, ptr %841, align 4, !tbaa !5
  %1621 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1622 = load i32, ptr @test_count, align 4, !tbaa !5
  %1623 = load i32, ptr %730, align 4, !tbaa !5
  %1624 = call ptr @s2n_strerror(i32 noundef %1623, ptr noundef nonnull @.str.4) #12
  %1625 = load i32, ptr %730, align 4, !tbaa !5
  %1626 = call ptr @s2n_strerror_debug(i32 noundef %1625, ptr noundef nonnull @.str.4) #12
  %1627 = load i32, ptr %841, align 4, !tbaa !5
  %1628 = call ptr @strerror(i32 noundef %1627) #12
  %1629 = load i32, ptr %841, align 4, !tbaa !5
  %1630 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1621, ptr noundef nonnull %.str.5.sink1639, i32 noundef %1622, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 194, ptr noundef %1624, ptr noundef %1626, ptr noundef %1628, i32 noundef %1629) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1631:                                             ; preds = %1602
  %1632 = load i32, ptr @test_count, align 4, !tbaa !5
  %1633 = add nsw i32 %1632, 1
  store i32 %1633, ptr @test_count, align 4, !tbaa !5
  %1634 = call ptr @s2n_connection_new(i32 noundef 0) #12
  %1635 = icmp eq ptr %1634, null
  br i1 %1635, label %1636, label %1658

1636:                                             ; preds = %1631
  %1637 = load i32, ptr %841, align 4, !tbaa !5
  %1638 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1639 = call i32 @s2n_print_stacktrace(ptr noundef %1638) #12
  %1640 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1641 = trunc nuw i8 %1640 to i1
  br i1 %1641, label %1642, label %1646

1642:                                             ; preds = %1636
  %1643 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1644 = call i32 @fileno(ptr noundef %1643) #12
  %1645 = call i32 @isatty(i32 noundef %1644) #12
  %.not954 = icmp eq i32 %1645, 0
  br i1 %.not954, label %1646, label %1647

1646:                                             ; preds = %1642, %1636
  br label %1647

1647:                                             ; preds = %1642, %1646
  %.str.5.sink1648 = phi ptr [ @.str.5, %1646 ], [ @.str.2, %1642 ]
  store i32 %1637, ptr %841, align 4, !tbaa !5
  %1648 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1649 = load i32, ptr @test_count, align 4, !tbaa !5
  %1650 = load i32, ptr %730, align 4, !tbaa !5
  %1651 = call ptr @s2n_strerror(i32 noundef %1650, ptr noundef nonnull @.str.4) #12
  %1652 = load i32, ptr %730, align 4, !tbaa !5
  %1653 = call ptr @s2n_strerror_debug(i32 noundef %1652, ptr noundef nonnull @.str.4) #12
  %1654 = load i32, ptr %841, align 4, !tbaa !5
  %1655 = call ptr @strerror(i32 noundef %1654) #12
  %1656 = load i32, ptr %841, align 4, !tbaa !5
  %1657 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1648, ptr noundef nonnull %.str.5.sink1648, i32 noundef %1649, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 197, ptr noundef %1651, ptr noundef %1653, ptr noundef %1655, i32 noundef %1656) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1658:                                             ; preds = %1631
  %1659 = load i32, ptr @test_count, align 4, !tbaa !5
  %1660 = add nsw i32 %1659, 1
  store i32 %1660, ptr @test_count, align 4, !tbaa !5
  %1661 = call i32 @s2n_stuffer_write_uint8(ptr noundef nonnull %16, i8 noundef zeroext -1) #12
  %1662 = icmp eq i32 %1661, -1
  br i1 %1662, label %1663, label %1685

1663:                                             ; preds = %1658
  %1664 = load i32, ptr %841, align 4, !tbaa !5
  %1665 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1666 = call i32 @s2n_print_stacktrace(ptr noundef %1665) #12
  %1667 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1668 = trunc nuw i8 %1667 to i1
  br i1 %1668, label %1669, label %1673

1669:                                             ; preds = %1663
  %1670 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1671 = call i32 @fileno(ptr noundef %1670) #12
  %1672 = call i32 @isatty(i32 noundef %1671) #12
  %.not953 = icmp eq i32 %1672, 0
  br i1 %.not953, label %1673, label %1674

1673:                                             ; preds = %1669, %1663
  br label %1674

1674:                                             ; preds = %1669, %1673
  %.str.5.sink1657 = phi ptr [ @.str.5, %1673 ], [ @.str.2, %1669 ]
  store i32 %1664, ptr %841, align 4, !tbaa !5
  %1675 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1676 = load i32, ptr @test_count, align 4, !tbaa !5
  %1677 = load i32, ptr %730, align 4, !tbaa !5
  %1678 = call ptr @s2n_strerror(i32 noundef %1677, ptr noundef nonnull @.str.4) #12
  %1679 = load i32, ptr %730, align 4, !tbaa !5
  %1680 = call ptr @s2n_strerror_debug(i32 noundef %1679, ptr noundef nonnull @.str.4) #12
  %1681 = load i32, ptr %841, align 4, !tbaa !5
  %1682 = call ptr @strerror(i32 noundef %1681) #12
  %1683 = load i32, ptr %841, align 4, !tbaa !5
  %1684 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1675, ptr noundef nonnull %.str.5.sink1657, i32 noundef %1676, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.1, i32 noundef 199, ptr noundef %1678, ptr noundef %1680, ptr noundef %1682, i32 noundef %1683) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1685:                                             ; preds = %1658
  %1686 = load i32, ptr @test_count, align 4, !tbaa !5
  %1687 = add nsw i32 %1686, 1
  store i32 %1687, ptr @test_count, align 4, !tbaa !5
  %1688 = call i32 @s2n_key_update_recv(ptr noundef nonnull %1634, ptr noundef nonnull %16) #12
  %1689 = icmp eq i32 %1688, -1
  br i1 %1689, label %1712, label %1690

1690:                                             ; preds = %1685
  %1691 = load i32, ptr %841, align 4, !tbaa !5
  %1692 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1693 = call i32 @s2n_print_stacktrace(ptr noundef %1692) #12
  %1694 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1695 = trunc nuw i8 %1694 to i1
  br i1 %1695, label %1696, label %1700

1696:                                             ; preds = %1690
  %1697 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1698 = call i32 @fileno(ptr noundef %1697) #12
  %1699 = call i32 @isatty(i32 noundef %1698) #12
  %.not751 = icmp eq i32 %1699, 0
  br i1 %.not751, label %1700, label %1701

1700:                                             ; preds = %1696, %1690
  br label %1701

1701:                                             ; preds = %1696, %1700
  %.str.5.sink1666 = phi ptr [ @.str.5, %1700 ], [ @.str.2, %1696 ]
  store i32 %1691, ptr %841, align 4, !tbaa !5
  %1702 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1703 = load i32, ptr @test_count, align 4, !tbaa !5
  %1704 = load i32, ptr %730, align 4, !tbaa !5
  %1705 = call ptr @s2n_strerror(i32 noundef %1704, ptr noundef nonnull @.str.4) #12
  %1706 = load i32, ptr %730, align 4, !tbaa !5
  %1707 = call ptr @s2n_strerror_debug(i32 noundef %1706, ptr noundef nonnull @.str.4) #12
  %1708 = load i32, ptr %841, align 4, !tbaa !5
  %1709 = call ptr @strerror(i32 noundef %1708) #12
  %1710 = load i32, ptr %841, align 4, !tbaa !5
  %1711 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1702, ptr noundef nonnull %.str.5.sink1666, i32 noundef %1703, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 201, ptr noundef %1705, ptr noundef %1707, ptr noundef %1709, i32 noundef %1710) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1712:                                             ; preds = %1685
  %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 = load i32, ptr %730, align 4, !tbaa !5
  %1716 = icmp eq i32 %1715, 335544322
  br i1 %1716, label %1739, label %1717

1717:                                             ; preds = %1712
  %1718 = load i32, ptr %841, align 4, !tbaa !5
  %1719 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1720 = call i32 @s2n_print_stacktrace(ptr noundef %1719) #12
  %1721 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1722 = trunc nuw i8 %1721 to i1
  br i1 %1722, label %1723, label %1727

1723:                                             ; preds = %1717
  %1724 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1725 = call i32 @fileno(ptr noundef %1724) #12
  %1726 = call i32 @isatty(i32 noundef %1725) #12
  %.not752 = icmp eq i32 %1726, 0
  br i1 %.not752, label %1727, label %1728

1727:                                             ; preds = %1723, %1717
  br label %1728

1728:                                             ; preds = %1723, %1727
  %.str.5.sink1675 = phi ptr [ @.str.5, %1727 ], [ @.str.2, %1723 ]
  store i32 %1718, ptr %841, align 4, !tbaa !5
  %1729 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1730 = load i32, ptr @test_count, align 4, !tbaa !5
  %1731 = load i32, ptr %730, align 4, !tbaa !5
  %1732 = call ptr @s2n_strerror(i32 noundef %1731, ptr noundef nonnull @.str.4) #12
  %1733 = load i32, ptr %730, align 4, !tbaa !5
  %1734 = call ptr @s2n_strerror_debug(i32 noundef %1733, ptr noundef nonnull @.str.4) #12
  %1735 = load i32, ptr %841, align 4, !tbaa !5
  %1736 = call ptr @strerror(i32 noundef %1735) #12
  %1737 = load i32, ptr %841, align 4, !tbaa !5
  %1738 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1729, ptr noundef nonnull %.str.5.sink1675, i32 noundef %1730, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 201, ptr noundef %1732, ptr noundef %1734, ptr noundef %1736, i32 noundef %1737) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1739:                                             ; preds = %1712
  %1740 = add nsw i32 %1713, 2
  store i32 %1740, ptr @test_count, align 4, !tbaa !5
  %1741 = call ptr @s2n_strerror_debug(i32 noundef 335544322, ptr noundef nonnull @.str.4) #12
  %1742 = icmp eq ptr %1741, null
  br i1 %1742, label %1743, label %1765

1743:                                             ; preds = %1739
  %1744 = load i32, ptr %841, align 4, !tbaa !5
  %1745 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1746 = call i32 @s2n_print_stacktrace(ptr noundef %1745) #12
  %1747 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1748 = trunc nuw i8 %1747 to i1
  br i1 %1748, label %1749, label %1753

1749:                                             ; preds = %1743
  %1750 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1751 = call i32 @fileno(ptr noundef %1750) #12
  %1752 = call i32 @isatty(i32 noundef %1751) #12
  %.not952 = icmp eq i32 %1752, 0
  br i1 %.not952, label %1753, label %1754

1753:                                             ; preds = %1749, %1743
  br label %1754

1754:                                             ; preds = %1749, %1753
  %.str.5.sink1684 = phi ptr [ @.str.5, %1753 ], [ @.str.2, %1749 ]
  store i32 %1744, ptr %841, align 4, !tbaa !5
  %1755 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1756 = load i32, ptr @test_count, align 4, !tbaa !5
  %1757 = load i32, ptr %730, align 4, !tbaa !5
  %1758 = call ptr @s2n_strerror(i32 noundef %1757, ptr noundef nonnull @.str.4) #12
  %1759 = load i32, ptr %730, align 4, !tbaa !5
  %1760 = call ptr @s2n_strerror_debug(i32 noundef %1759, ptr noundef nonnull @.str.4) #12
  %1761 = load i32, ptr %841, align 4, !tbaa !5
  %1762 = call ptr @strerror(i32 noundef %1761) #12
  %1763 = load i32, ptr %841, align 4, !tbaa !5
  %1764 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1755, ptr noundef nonnull %.str.5.sink1684, i32 noundef %1756, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 201, ptr noundef %1758, ptr noundef %1760, ptr noundef %1762, i32 noundef %1763) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1765:                                             ; preds = %1739
  store i32 0, ptr %730, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %841, align 4, !tbaa !5
  %1766 = load i32, ptr @test_count, align 4, !tbaa !5
  %1767 = add nsw i32 %1766, 1
  store i32 %1767, ptr @test_count, align 4, !tbaa !5
  %1768 = call i32 @s2n_connection_free(ptr noundef nonnull %1634) #12
  %1769 = icmp eq i32 %1768, -1
  br i1 %1769, label %1770, label %1792

1770:                                             ; preds = %1765
  %1771 = load i32, ptr %841, align 4, !tbaa !5
  %1772 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1773 = call i32 @s2n_print_stacktrace(ptr noundef %1772) #12
  %1774 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1775 = trunc nuw i8 %1774 to i1
  br i1 %1775, label %1776, label %1780

1776:                                             ; preds = %1770
  %1777 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1778 = call i32 @fileno(ptr noundef %1777) #12
  %1779 = call i32 @isatty(i32 noundef %1778) #12
  %.not951 = icmp eq i32 %1779, 0
  br i1 %.not951, label %1780, label %1781

1780:                                             ; preds = %1776, %1770
  br label %1781

1781:                                             ; preds = %1776, %1780
  %.str.5.sink1693 = phi ptr [ @.str.5, %1780 ], [ @.str.2, %1776 ]
  store i32 %1771, ptr %841, align 4, !tbaa !5
  %1782 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1783 = load i32, ptr @test_count, align 4, !tbaa !5
  %1784 = load i32, ptr %730, align 4, !tbaa !5
  %1785 = call ptr @s2n_strerror(i32 noundef %1784, ptr noundef nonnull @.str.4) #12
  %1786 = load i32, ptr %730, align 4, !tbaa !5
  %1787 = call ptr @s2n_strerror_debug(i32 noundef %1786, ptr noundef nonnull @.str.4) #12
  %1788 = load i32, ptr %841, align 4, !tbaa !5
  %1789 = call ptr @strerror(i32 noundef %1788) #12
  %1790 = load i32, ptr %841, align 4, !tbaa !5
  %1791 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1782, ptr noundef nonnull %.str.5.sink1693, i32 noundef %1783, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 203, ptr noundef %1785, ptr noundef %1787, ptr noundef %1789, i32 noundef %1790) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1792:                                             ; preds = %1765
  %1793 = call i32 @s2n_stuffer_free(ptr noundef nonnull %16) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %16) #12
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %17) #12
  %1794 = load i32, ptr @test_count, align 4, !tbaa !5
  %1795 = add nsw i32 %1794, 1
  store i32 %1795, ptr @test_count, align 4, !tbaa !5
  %1796 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %17, i32 noundef 0) #12
  %1797 = icmp eq i32 %1796, -1
  br i1 %1797, label %1798, label %1820

1798:                                             ; preds = %1792
  %1799 = load i32, ptr %841, align 4, !tbaa !5
  %1800 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1801 = call i32 @s2n_print_stacktrace(ptr noundef %1800) #12
  %1802 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1803 = trunc nuw i8 %1802 to i1
  br i1 %1803, label %1804, label %1808

1804:                                             ; preds = %1798
  %1805 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1806 = call i32 @fileno(ptr noundef %1805) #12
  %1807 = call i32 @isatty(i32 noundef %1806) #12
  %.not950 = icmp eq i32 %1807, 0
  br i1 %.not950, label %1808, label %1809

1808:                                             ; preds = %1804, %1798
  br label %1809

1809:                                             ; preds = %1804, %1808
  %.str.5.sink1702 = phi ptr [ @.str.5, %1808 ], [ @.str.2, %1804 ]
  store i32 %1799, ptr %841, align 4, !tbaa !5
  %1810 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1811 = load i32, ptr @test_count, align 4, !tbaa !5
  %1812 = load i32, ptr %730, align 4, !tbaa !5
  %1813 = call ptr @s2n_strerror(i32 noundef %1812, ptr noundef nonnull @.str.4) #12
  %1814 = load i32, ptr %730, align 4, !tbaa !5
  %1815 = call ptr @s2n_strerror_debug(i32 noundef %1814, ptr noundef nonnull @.str.4) #12
  %1816 = load i32, ptr %841, align 4, !tbaa !5
  %1817 = call ptr @strerror(i32 noundef %1816) #12
  %1818 = load i32, ptr %841, align 4, !tbaa !5
  %1819 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1810, ptr noundef nonnull %.str.5.sink1702, i32 noundef %1811, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 209, ptr noundef %1813, ptr noundef %1815, ptr noundef %1817, i32 noundef %1818) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1820:                                             ; preds = %1792
  %1821 = load i32, ptr @test_count, align 4, !tbaa !5
  %1822 = add nsw i32 %1821, 1
  store i32 %1822, ptr @test_count, align 4, !tbaa !5
  %1823 = call ptr @s2n_connection_new(i32 noundef 0) #12
  %1824 = icmp eq ptr %1823, null
  br i1 %1824, label %1825, label %1847

1825:                                             ; preds = %1820
  %1826 = load i32, ptr %841, align 4, !tbaa !5
  %1827 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1828 = call i32 @s2n_print_stacktrace(ptr noundef %1827) #12
  %1829 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1830 = trunc nuw i8 %1829 to i1
  br i1 %1830, label %1831, label %1835

1831:                                             ; preds = %1825
  %1832 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1833 = call i32 @fileno(ptr noundef %1832) #12
  %1834 = call i32 @isatty(i32 noundef %1833) #12
  %.not949 = icmp eq i32 %1834, 0
  br i1 %.not949, label %1835, label %1836

1835:                                             ; preds = %1831, %1825
  br label %1836

1836:                                             ; preds = %1831, %1835
  %.str.5.sink1711 = phi ptr [ @.str.5, %1835 ], [ @.str.2, %1831 ]
  store i32 %1826, ptr %841, align 4, !tbaa !5
  %1837 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1838 = load i32, ptr @test_count, align 4, !tbaa !5
  %1839 = load i32, ptr %730, align 4, !tbaa !5
  %1840 = call ptr @s2n_strerror(i32 noundef %1839, ptr noundef nonnull @.str.4) #12
  %1841 = load i32, ptr %730, align 4, !tbaa !5
  %1842 = call ptr @s2n_strerror_debug(i32 noundef %1841, ptr noundef nonnull @.str.4) #12
  %1843 = load i32, ptr %841, align 4, !tbaa !5
  %1844 = call ptr @strerror(i32 noundef %1843) #12
  %1845 = load i32, ptr %841, align 4, !tbaa !5
  %1846 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1837, ptr noundef nonnull %.str.5.sink1711, i32 noundef %1838, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.1, i32 noundef 212, ptr noundef %1840, ptr noundef %1842, ptr noundef %1844, i32 noundef %1845) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1847:                                             ; preds = %1820
  %1848 = getelementptr inbounds i8, ptr %1823, i64 220
  store i8 34, ptr %1848, align 4, !tbaa !25
  %1849 = getelementptr inbounds i8, ptr %1823, i64 232
  %1850 = load ptr, ptr %1849, align 8, !tbaa !49
  store ptr @s2n_tls13_aes_256_gcm_sha384, ptr %1850, align 8, !tbaa !50
  %1851 = getelementptr inbounds i8, ptr %3, i64 8
  %1852 = load i32, ptr %1851, align 8, !tbaa !55
  %.not753 = icmp eq i32 %1852, 0
  br i1 %.not753, label %.thread, label %1853, !prof !56

1853:                                             ; preds = %1847
  %1854 = getelementptr inbounds i8, ptr %1823, i64 432
  %1855 = load ptr, ptr %3, align 8, !tbaa !57
  %1856 = zext i32 %1852 to i64
  %1857 = call ptr @s2n_ensure_memmove_trace(ptr noundef nonnull %1854, ptr noundef %1855, i64 noundef %1856) #12
  %.not754.not = icmp eq ptr %1857, null
  br i1 %.not754.not, label %.critedge, label %..thread_crit_edge

..thread_crit_edge:                               ; preds = %1853
  %.pre = load ptr, ptr %1849, align 8, !tbaa !49
  br label %.thread

.thread:                                          ; preds = %..thread_crit_edge, %1847
  %1858 = phi ptr [ %.pre, %..thread_crit_edge ], [ %1850, %1847 ]
  %1859 = getelementptr inbounds i8, ptr %1858, i64 920
  store i8 1, ptr %1859, align 8, !tbaa !20
  %1860 = load i32, ptr @test_count, align 4, !tbaa !5
  %1861 = add nsw i32 %1860, 1
  store i32 %1861, ptr @test_count, align 4, !tbaa !5
  %1862 = call i32 @s2n_stuffer_write_uint8(ptr noundef nonnull %17, i8 noundef zeroext 0) #12
  %1863 = icmp eq i32 %1862, -1
  br i1 %1863, label %1864, label %1886

1864:                                             ; preds = %.thread
  %1865 = load i32, ptr %841, align 4, !tbaa !5
  %1866 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1867 = call i32 @s2n_print_stacktrace(ptr noundef %1866) #12
  %1868 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1869 = trunc nuw i8 %1868 to i1
  br i1 %1869, label %1870, label %1874

1870:                                             ; preds = %1864
  %1871 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1872 = call i32 @fileno(ptr noundef %1871) #12
  %1873 = call i32 @isatty(i32 noundef %1872) #12
  %.not948 = icmp eq i32 %1873, 0
  br i1 %.not948, label %1874, label %1875

1874:                                             ; preds = %1870, %1864
  br label %1875

1875:                                             ; preds = %1870, %1874
  %.str.5.sink1720 = phi ptr [ @.str.5, %1874 ], [ @.str.2, %1870 ]
  store i32 %1865, ptr %841, align 4, !tbaa !5
  %1876 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1877 = load i32, ptr @test_count, align 4, !tbaa !5
  %1878 = load i32, ptr %730, align 4, !tbaa !5
  %1879 = call ptr @s2n_strerror(i32 noundef %1878, ptr noundef nonnull @.str.4) #12
  %1880 = load i32, ptr %730, align 4, !tbaa !5
  %1881 = call ptr @s2n_strerror_debug(i32 noundef %1880, ptr noundef nonnull @.str.4) #12
  %1882 = load i32, ptr %841, align 4, !tbaa !5
  %1883 = call ptr @strerror(i32 noundef %1882) #12
  %1884 = load i32, ptr %841, align 4, !tbaa !5
  %1885 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1876, ptr noundef nonnull %.str.5.sink1720, i32 noundef %1877, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 219, ptr noundef %1879, ptr noundef %1881, ptr noundef %1883, i32 noundef %1884) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1886:                                             ; preds = %.thread
  %1887 = load i32, ptr @test_count, align 4, !tbaa !5
  %1888 = add nsw i32 %1887, 1
  store i32 %1888, ptr @test_count, align 4, !tbaa !5
  %1889 = call i32 @s2n_key_update_recv(ptr noundef nonnull %1823, ptr noundef nonnull %17) #12
  %1890 = icmp eq i32 %1889, -1
  br i1 %1890, label %1891, label %1913

1891:                                             ; preds = %1886
  %1892 = load i32, ptr %841, align 4, !tbaa !5
  %1893 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1894 = call i32 @s2n_print_stacktrace(ptr noundef %1893) #12
  %1895 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1896 = trunc nuw i8 %1895 to i1
  br i1 %1896, label %1897, label %1901

1897:                                             ; preds = %1891
  %1898 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1899 = call i32 @fileno(ptr noundef %1898) #12
  %1900 = call i32 @isatty(i32 noundef %1899) #12
  %.not947 = icmp eq i32 %1900, 0
  br i1 %.not947, label %1901, label %1902

1901:                                             ; preds = %1897, %1891
  br label %1902

1902:                                             ; preds = %1897, %1901
  %.str.5.sink1729 = phi ptr [ @.str.5, %1901 ], [ @.str.2, %1897 ]
  store i32 %1892, ptr %841, align 4, !tbaa !5
  %1903 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1904 = load i32, ptr @test_count, align 4, !tbaa !5
  %1905 = load i32, ptr %730, align 4, !tbaa !5
  %1906 = call ptr @s2n_strerror(i32 noundef %1905, ptr noundef nonnull @.str.4) #12
  %1907 = load i32, ptr %730, align 4, !tbaa !5
  %1908 = call ptr @s2n_strerror_debug(i32 noundef %1907, ptr noundef nonnull @.str.4) #12
  %1909 = load i32, ptr %841, align 4, !tbaa !5
  %1910 = call ptr @strerror(i32 noundef %1909) #12
  %1911 = load i32, ptr %841, align 4, !tbaa !5
  %1912 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1903, ptr noundef nonnull %.str.5.sink1729, i32 noundef %1904, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.1, i32 noundef 221, ptr noundef %1906, ptr noundef %1908, ptr noundef %1910, i32 noundef %1911) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1913:                                             ; preds = %1886
  %1914 = load i32, ptr @test_count, align 4, !tbaa !5
  %1915 = add nsw i32 %1914, 1
  store i32 %1915, ptr @test_count, align 4, !tbaa !5
  %1916 = load ptr, ptr %1849, align 8, !tbaa !49
  %1917 = getelementptr inbounds i8, ptr %1916, i64 920
  %1918 = load i8, ptr %1917, align 8, !tbaa !20
  %1919 = icmp eq i8 %1918, 0
  br i1 %1919, label %1942, label %1920

1920:                                             ; preds = %1913
  %1921 = load i32, ptr %841, align 4, !tbaa !5
  %1922 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1923 = call i32 @s2n_print_stacktrace(ptr noundef %1922) #12
  %1924 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1925 = trunc nuw i8 %1924 to i1
  br i1 %1925, label %1926, label %1930

1926:                                             ; preds = %1920
  %1927 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1928 = call i32 @fileno(ptr noundef %1927) #12
  %1929 = call i32 @isatty(i32 noundef %1928) #12
  %.not756 = icmp eq i32 %1929, 0
  br i1 %.not756, label %1930, label %1931

1930:                                             ; preds = %1926, %1920
  br label %1931

1931:                                             ; preds = %1926, %1930
  %.str.5.sink1738 = phi ptr [ @.str.5, %1930 ], [ @.str.2, %1926 ]
  store i32 %1921, ptr %841, align 4, !tbaa !5
  %1932 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1933 = load i32, ptr @test_count, align 4, !tbaa !5
  %1934 = load i32, ptr %730, align 4, !tbaa !5
  %1935 = call ptr @s2n_strerror(i32 noundef %1934, ptr noundef nonnull @.str.4) #12
  %1936 = load i32, ptr %730, align 4, !tbaa !5
  %1937 = call ptr @s2n_strerror_debug(i32 noundef %1936, ptr noundef nonnull @.str.4) #12
  %1938 = load i32, ptr %841, align 4, !tbaa !5
  %1939 = call ptr @strerror(i32 noundef %1938) #12
  %1940 = load i32, ptr %841, align 4, !tbaa !5
  %1941 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1932, ptr noundef nonnull %.str.5.sink1738, i32 noundef %1933, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.1, i32 noundef 222, ptr noundef %1935, ptr noundef %1937, ptr noundef %1939, i32 noundef %1940) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1942:                                             ; preds = %1913
  %1943 = add nsw i32 %1914, 2
  store i32 %1943, ptr @test_count, align 4, !tbaa !5
  %1944 = getelementptr inbounds i8, ptr %1823, i64 4176
  %1945 = call zeroext i1 @s2n_atomic_flag_test(ptr noundef nonnull %1944) #12
  br i1 %1945, label %1946, label %1968

1946:                                             ; preds = %1942
  %1947 = load i32, ptr %841, align 4, !tbaa !5
  %1948 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1949 = call i32 @s2n_print_stacktrace(ptr noundef %1948) #12
  %1950 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1951 = trunc nuw i8 %1950 to i1
  br i1 %1951, label %1952, label %1956

1952:                                             ; preds = %1946
  %1953 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1954 = call i32 @fileno(ptr noundef %1953) #12
  %1955 = call i32 @isatty(i32 noundef %1954) #12
  %.not946 = icmp eq i32 %1955, 0
  br i1 %.not946, label %1956, label %1957

1956:                                             ; preds = %1952, %1946
  br label %1957

1957:                                             ; preds = %1952, %1956
  %.str.5.sink1747 = phi ptr [ @.str.5, %1956 ], [ @.str.2, %1952 ]
  store i32 %1947, ptr %841, align 4, !tbaa !5
  %1958 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1959 = load i32, ptr @test_count, align 4, !tbaa !5
  %1960 = load i32, ptr %730, align 4, !tbaa !5
  %1961 = call ptr @s2n_strerror(i32 noundef %1960, ptr noundef nonnull @.str.4) #12
  %1962 = load i32, ptr %730, align 4, !tbaa !5
  %1963 = call ptr @s2n_strerror_debug(i32 noundef %1962, ptr noundef nonnull @.str.4) #12
  %1964 = load i32, ptr %841, align 4, !tbaa !5
  %1965 = call ptr @strerror(i32 noundef %1964) #12
  %1966 = load i32, ptr %841, align 4, !tbaa !5
  %1967 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1958, ptr noundef nonnull %.str.5.sink1747, i32 noundef %1959, ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.1, i32 noundef 223, ptr noundef %1961, ptr noundef %1963, ptr noundef %1965, i32 noundef %1966) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1968:                                             ; preds = %1942
  %1969 = load i32, ptr @test_count, align 4, !tbaa !5
  %1970 = add nsw i32 %1969, 1
  store i32 %1970, ptr @test_count, align 4, !tbaa !5
  %1971 = getelementptr inbounds i8, ptr %1823, i64 4181
  %1972 = load i8, ptr %1971, align 1, !tbaa !58
  %1973 = icmp eq i8 %1972, 1
  br i1 %1973, label %1996, label %1974

1974:                                             ; preds = %1968
  %1975 = load i32, ptr %841, align 4, !tbaa !5
  %1976 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1977 = call i32 @s2n_print_stacktrace(ptr noundef %1976) #12
  %1978 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1979 = trunc nuw i8 %1978 to i1
  br i1 %1979, label %1980, label %1984

1980:                                             ; preds = %1974
  %1981 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1982 = call i32 @fileno(ptr noundef %1981) #12
  %1983 = call i32 @isatty(i32 noundef %1982) #12
  %.not757 = icmp eq i32 %1983, 0
  br i1 %.not757, label %1984, label %1985

1984:                                             ; preds = %1980, %1974
  br label %1985

1985:                                             ; preds = %1980, %1984
  %.str.5.sink1756 = phi ptr [ @.str.5, %1984 ], [ @.str.2, %1980 ]
  store i32 %1975, ptr %841, align 4, !tbaa !5
  %1986 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1987 = load i32, ptr @test_count, align 4, !tbaa !5
  %1988 = load i32, ptr %730, align 4, !tbaa !5
  %1989 = call ptr @s2n_strerror(i32 noundef %1988, ptr noundef nonnull @.str.4) #12
  %1990 = load i32, ptr %730, align 4, !tbaa !5
  %1991 = call ptr @s2n_strerror_debug(i32 noundef %1990, ptr noundef nonnull @.str.4) #12
  %1992 = load i32, ptr %841, align 4, !tbaa !5
  %1993 = call ptr @strerror(i32 noundef %1992) #12
  %1994 = load i32, ptr %841, align 4, !tbaa !5
  %1995 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1986, ptr noundef nonnull %.str.5.sink1756, i32 noundef %1987, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.1, i32 noundef 224, ptr noundef %1989, ptr noundef %1991, ptr noundef %1993, i32 noundef %1994) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1996:                                             ; preds = %1968
  %1997 = add nsw i32 %1969, 2
  store i32 %1997, ptr @test_count, align 4, !tbaa !5
  %1998 = call i32 @s2n_connection_free(ptr noundef nonnull %1823) #12
  %1999 = icmp eq i32 %1998, -1
  br i1 %1999, label %2000, label %2022

2000:                                             ; preds = %1996
  %2001 = load i32, ptr %841, align 4, !tbaa !5
  %2002 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2003 = call i32 @s2n_print_stacktrace(ptr noundef %2002) #12
  %2004 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2005 = trunc nuw i8 %2004 to i1
  br i1 %2005, label %2006, label %2010

2006:                                             ; preds = %2000
  %2007 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2008 = call i32 @fileno(ptr noundef %2007) #12
  %2009 = call i32 @isatty(i32 noundef %2008) #12
  %.not945 = icmp eq i32 %2009, 0
  br i1 %.not945, label %2010, label %2011

2010:                                             ; preds = %2006, %2000
  br label %2011

2011:                                             ; preds = %2006, %2010
  %.str.5.sink1765 = phi ptr [ @.str.5, %2010 ], [ @.str.2, %2006 ]
  store i32 %2001, ptr %841, align 4, !tbaa !5
  %2012 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2013 = load i32, ptr @test_count, align 4, !tbaa !5
  %2014 = load i32, ptr %730, align 4, !tbaa !5
  %2015 = call ptr @s2n_strerror(i32 noundef %2014, ptr noundef nonnull @.str.4) #12
  %2016 = load i32, ptr %730, align 4, !tbaa !5
  %2017 = call ptr @s2n_strerror_debug(i32 noundef %2016, ptr noundef nonnull @.str.4) #12
  %2018 = load i32, ptr %841, align 4, !tbaa !5
  %2019 = call ptr @strerror(i32 noundef %2018) #12
  %2020 = load i32, ptr %841, align 4, !tbaa !5
  %2021 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2012, ptr noundef nonnull %.str.5.sink1765, i32 noundef %2013, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 226, ptr noundef %2015, ptr noundef %2017, ptr noundef %2019, i32 noundef %2020) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2022:                                             ; preds = %1996
  %2023 = call i32 @s2n_stuffer_free(ptr noundef nonnull %17) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %17) #12
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %18) #12
  %2024 = load i32, ptr @test_count, align 4, !tbaa !5
  %2025 = add nsw i32 %2024, 1
  store i32 %2025, ptr @test_count, align 4, !tbaa !5
  %2026 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %18, i32 noundef 0) #12
  %2027 = icmp eq i32 %2026, -1
  br i1 %2027, label %2028, label %2050

2028:                                             ; preds = %2022
  %2029 = load i32, ptr %841, align 4, !tbaa !5
  %2030 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2031 = call i32 @s2n_print_stacktrace(ptr noundef %2030) #12
  %2032 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2033 = trunc nuw i8 %2032 to i1
  br i1 %2033, label %2034, label %2038

2034:                                             ; preds = %2028
  %2035 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2036 = call i32 @fileno(ptr noundef %2035) #12
  %2037 = call i32 @isatty(i32 noundef %2036) #12
  %.not944 = icmp eq i32 %2037, 0
  br i1 %.not944, label %2038, label %2039

2038:                                             ; preds = %2034, %2028
  br label %2039

2039:                                             ; preds = %2034, %2038
  %.str.5.sink1774 = phi ptr [ @.str.5, %2038 ], [ @.str.2, %2034 ]
  store i32 %2029, ptr %841, align 4, !tbaa !5
  %2040 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2041 = load i32, ptr @test_count, align 4, !tbaa !5
  %2042 = load i32, ptr %730, align 4, !tbaa !5
  %2043 = call ptr @s2n_strerror(i32 noundef %2042, ptr noundef nonnull @.str.4) #12
  %2044 = load i32, ptr %730, align 4, !tbaa !5
  %2045 = call ptr @s2n_strerror_debug(i32 noundef %2044, ptr noundef nonnull @.str.4) #12
  %2046 = load i32, ptr %841, align 4, !tbaa !5
  %2047 = call ptr @strerror(i32 noundef %2046) #12
  %2048 = load i32, ptr %841, align 4, !tbaa !5
  %2049 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2040, ptr noundef nonnull %.str.5.sink1774, i32 noundef %2041, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 232, ptr noundef %2043, ptr noundef %2045, ptr noundef %2047, i32 noundef %2048) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2050:                                             ; preds = %2022
  %2051 = load i32, ptr @test_count, align 4, !tbaa !5
  %2052 = add nsw i32 %2051, 1
  store i32 %2052, ptr @test_count, align 4, !tbaa !5
  %2053 = call ptr @s2n_connection_new(i32 noundef 1) #12
  %2054 = icmp eq ptr %2053, null
  br i1 %2054, label %2055, label %2077

2055:                                             ; preds = %2050
  %2056 = load i32, ptr %841, align 4, !tbaa !5
  %2057 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2058 = call i32 @s2n_print_stacktrace(ptr noundef %2057) #12
  %2059 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2060 = trunc nuw i8 %2059 to i1
  br i1 %2060, label %2061, label %2065

2061:                                             ; preds = %2055
  %2062 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2063 = call i32 @fileno(ptr noundef %2062) #12
  %2064 = call i32 @isatty(i32 noundef %2063) #12
  %.not943 = icmp eq i32 %2064, 0
  br i1 %.not943, label %2065, label %2066

2065:                                             ; preds = %2061, %2055
  br label %2066

2066:                                             ; preds = %2061, %2065
  %.str.5.sink1783 = phi ptr [ @.str.5, %2065 ], [ @.str.2, %2061 ]
  store i32 %2056, ptr %841, align 4, !tbaa !5
  %2067 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2068 = load i32, ptr @test_count, align 4, !tbaa !5
  %2069 = load i32, ptr %730, align 4, !tbaa !5
  %2070 = call ptr @s2n_strerror(i32 noundef %2069, ptr noundef nonnull @.str.4) #12
  %2071 = load i32, ptr %730, align 4, !tbaa !5
  %2072 = call ptr @s2n_strerror_debug(i32 noundef %2071, ptr noundef nonnull @.str.4) #12
  %2073 = load i32, ptr %841, align 4, !tbaa !5
  %2074 = call ptr @strerror(i32 noundef %2073) #12
  %2075 = load i32, ptr %841, align 4, !tbaa !5
  %2076 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2067, ptr noundef nonnull %.str.5.sink1783, i32 noundef %2068, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.1, i32 noundef 235, ptr noundef %2070, ptr noundef %2072, ptr noundef %2074, i32 noundef %2075) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2077:                                             ; preds = %2050
  %2078 = getelementptr inbounds i8, ptr %2053, i64 220
  store i8 34, ptr %2078, align 4, !tbaa !25
  %2079 = getelementptr inbounds i8, ptr %2053, i64 232
  %2080 = load ptr, ptr %2079, align 8, !tbaa !49
  store ptr @s2n_tls13_aes_256_gcm_sha384, ptr %2080, align 8, !tbaa !50
  %2081 = load i32, ptr %1851, align 8, !tbaa !55
  %.not758 = icmp eq i32 %2081, 0
  br i1 %.not758, label %.thread1020, label %2082, !prof !56

2082:                                             ; preds = %2077
  %2083 = getelementptr inbounds i8, ptr %2053, i64 480
  %2084 = load ptr, ptr %3, align 8, !tbaa !57
  %2085 = zext i32 %2081 to i64
  %2086 = call ptr @s2n_ensure_memmove_trace(ptr noundef nonnull %2083, ptr noundef %2084, i64 noundef %2085) #12
  %.not759.not = icmp eq ptr %2086, null
  br i1 %.not759.not, label %.critedge993, label %..thread1020_crit_edge

..thread1020_crit_edge:                           ; preds = %2082
  %.pre1100 = load ptr, ptr %2079, align 8, !tbaa !49
  br label %.thread1020

.thread1020:                                      ; preds = %..thread1020_crit_edge, %2077
  %2087 = phi ptr [ %.pre1100, %..thread1020_crit_edge ], [ %2080, %2077 ]
  %2088 = getelementptr inbounds i8, ptr %2087, i64 928
  store i8 1, ptr %2088, align 8, !tbaa !20
  %2089 = load i32, ptr @test_count, align 4, !tbaa !5
  %2090 = add nsw i32 %2089, 1
  store i32 %2090, ptr @test_count, align 4, !tbaa !5
  %2091 = call i32 @s2n_stuffer_write_uint8(ptr noundef nonnull %18, i8 noundef zeroext 0) #12
  %2092 = icmp eq i32 %2091, -1
  br i1 %2092, label %2093, label %2115

2093:                                             ; preds = %.thread1020
  %2094 = load i32, ptr %841, align 4, !tbaa !5
  %2095 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2096 = call i32 @s2n_print_stacktrace(ptr noundef %2095) #12
  %2097 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2098 = trunc nuw i8 %2097 to i1
  br i1 %2098, label %2099, label %2103

2099:                                             ; preds = %2093
  %2100 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2101 = call i32 @fileno(ptr noundef %2100) #12
  %2102 = call i32 @isatty(i32 noundef %2101) #12
  %.not942 = icmp eq i32 %2102, 0
  br i1 %.not942, label %2103, label %2104

2103:                                             ; preds = %2099, %2093
  br label %2104

2104:                                             ; preds = %2099, %2103
  %.str.5.sink1792 = phi ptr [ @.str.5, %2103 ], [ @.str.2, %2099 ]
  store i32 %2094, ptr %841, align 4, !tbaa !5
  %2105 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2106 = load i32, ptr @test_count, align 4, !tbaa !5
  %2107 = load i32, ptr %730, align 4, !tbaa !5
  %2108 = call ptr @s2n_strerror(i32 noundef %2107, ptr noundef nonnull @.str.4) #12
  %2109 = load i32, ptr %730, align 4, !tbaa !5
  %2110 = call ptr @s2n_strerror_debug(i32 noundef %2109, ptr noundef nonnull @.str.4) #12
  %2111 = load i32, ptr %841, align 4, !tbaa !5
  %2112 = call ptr @strerror(i32 noundef %2111) #12
  %2113 = load i32, ptr %841, align 4, !tbaa !5
  %2114 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2105, ptr noundef nonnull %.str.5.sink1792, i32 noundef %2106, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 242, ptr noundef %2108, ptr noundef %2110, ptr noundef %2112, i32 noundef %2113) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2115:                                             ; preds = %.thread1020
  %2116 = load i32, ptr @test_count, align 4, !tbaa !5
  %2117 = add nsw i32 %2116, 1
  store i32 %2117, ptr @test_count, align 4, !tbaa !5
  %2118 = call i32 @s2n_key_update_recv(ptr noundef nonnull %2053, ptr noundef nonnull %18) #12
  %2119 = icmp eq i32 %2118, -1
  br i1 %2119, label %2120, label %2142

2120:                                             ; preds = %2115
  %2121 = load i32, ptr %841, align 4, !tbaa !5
  %2122 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2123 = call i32 @s2n_print_stacktrace(ptr noundef %2122) #12
  %2124 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2125 = trunc nuw i8 %2124 to i1
  br i1 %2125, label %2126, label %2130

2126:                                             ; preds = %2120
  %2127 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2128 = call i32 @fileno(ptr noundef %2127) #12
  %2129 = call i32 @isatty(i32 noundef %2128) #12
  %.not941 = icmp eq i32 %2129, 0
  br i1 %.not941, label %2130, label %2131

2130:                                             ; preds = %2126, %2120
  br label %2131

2131:                                             ; preds = %2126, %2130
  %.str.5.sink1801 = phi ptr [ @.str.5, %2130 ], [ @.str.2, %2126 ]
  store i32 %2121, ptr %841, align 4, !tbaa !5
  %2132 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2133 = load i32, ptr @test_count, align 4, !tbaa !5
  %2134 = load i32, ptr %730, align 4, !tbaa !5
  %2135 = call ptr @s2n_strerror(i32 noundef %2134, ptr noundef nonnull @.str.4) #12
  %2136 = load i32, ptr %730, align 4, !tbaa !5
  %2137 = call ptr @s2n_strerror_debug(i32 noundef %2136, ptr noundef nonnull @.str.4) #12
  %2138 = load i32, ptr %841, align 4, !tbaa !5
  %2139 = call ptr @strerror(i32 noundef %2138) #12
  %2140 = load i32, ptr %841, align 4, !tbaa !5
  %2141 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2132, ptr noundef nonnull %.str.5.sink1801, i32 noundef %2133, ptr noundef nonnull @.str.55, ptr noundef nonnull @.str.1, i32 noundef 244, ptr noundef %2135, ptr noundef %2137, ptr noundef %2139, i32 noundef %2140) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2142:                                             ; preds = %2115
  %2143 = load i32, ptr @test_count, align 4, !tbaa !5
  %2144 = add nsw i32 %2143, 1
  store i32 %2144, ptr @test_count, align 4, !tbaa !5
  %2145 = load ptr, ptr %2079, align 8, !tbaa !49
  %2146 = getelementptr inbounds i8, ptr %2145, i64 928
  %2147 = load i8, ptr %2146, align 8, !tbaa !20
  %2148 = icmp eq i8 %2147, 0
  br i1 %2148, label %2171, label %2149

2149:                                             ; preds = %2142
  %2150 = load i32, ptr %841, align 4, !tbaa !5
  %2151 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2152 = call i32 @s2n_print_stacktrace(ptr noundef %2151) #12
  %2153 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2154 = trunc nuw i8 %2153 to i1
  br i1 %2154, label %2155, label %2159

2155:                                             ; preds = %2149
  %2156 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2157 = call i32 @fileno(ptr noundef %2156) #12
  %2158 = call i32 @isatty(i32 noundef %2157) #12
  %.not761 = icmp eq i32 %2158, 0
  br i1 %.not761, label %2159, label %2160

2159:                                             ; preds = %2155, %2149
  br label %2160

2160:                                             ; preds = %2155, %2159
  %.str.5.sink1810 = phi ptr [ @.str.5, %2159 ], [ @.str.2, %2155 ]
  store i32 %2150, ptr %841, align 4, !tbaa !5
  %2161 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2162 = load i32, ptr @test_count, align 4, !tbaa !5
  %2163 = load i32, ptr %730, align 4, !tbaa !5
  %2164 = call ptr @s2n_strerror(i32 noundef %2163, ptr noundef nonnull @.str.4) #12
  %2165 = load i32, ptr %730, align 4, !tbaa !5
  %2166 = call ptr @s2n_strerror_debug(i32 noundef %2165, ptr noundef nonnull @.str.4) #12
  %2167 = load i32, ptr %841, align 4, !tbaa !5
  %2168 = call ptr @strerror(i32 noundef %2167) #12
  %2169 = load i32, ptr %841, align 4, !tbaa !5
  %2170 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2161, ptr noundef nonnull %.str.5.sink1810, i32 noundef %2162, ptr noundef nonnull @.str.56, ptr noundef nonnull @.str.1, i32 noundef 245, ptr noundef %2164, ptr noundef %2166, ptr noundef %2168, i32 noundef %2169) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2171:                                             ; preds = %2142
  %2172 = add nsw i32 %2143, 2
  store i32 %2172, ptr @test_count, align 4, !tbaa !5
  %2173 = getelementptr inbounds i8, ptr %2053, i64 4176
  %2174 = call zeroext i1 @s2n_atomic_flag_test(ptr noundef nonnull %2173) #12
  br i1 %2174, label %2175, label %2197

2175:                                             ; preds = %2171
  %2176 = load i32, ptr %841, align 4, !tbaa !5
  %2177 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2178 = call i32 @s2n_print_stacktrace(ptr noundef %2177) #12
  %2179 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2180 = trunc nuw i8 %2179 to i1
  br i1 %2180, label %2181, label %2185

2181:                                             ; preds = %2175
  %2182 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2183 = call i32 @fileno(ptr noundef %2182) #12
  %2184 = call i32 @isatty(i32 noundef %2183) #12
  %.not940 = icmp eq i32 %2184, 0
  br i1 %.not940, label %2185, label %2186

2185:                                             ; preds = %2181, %2175
  br label %2186

2186:                                             ; preds = %2181, %2185
  %.str.5.sink1819 = phi ptr [ @.str.5, %2185 ], [ @.str.2, %2181 ]
  store i32 %2176, ptr %841, align 4, !tbaa !5
  %2187 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2188 = load i32, ptr @test_count, align 4, !tbaa !5
  %2189 = load i32, ptr %730, align 4, !tbaa !5
  %2190 = call ptr @s2n_strerror(i32 noundef %2189, ptr noundef nonnull @.str.4) #12
  %2191 = load i32, ptr %730, align 4, !tbaa !5
  %2192 = call ptr @s2n_strerror_debug(i32 noundef %2191, ptr noundef nonnull @.str.4) #12
  %2193 = load i32, ptr %841, align 4, !tbaa !5
  %2194 = call ptr @strerror(i32 noundef %2193) #12
  %2195 = load i32, ptr %841, align 4, !tbaa !5
  %2196 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2187, ptr noundef nonnull %.str.5.sink1819, i32 noundef %2188, ptr noundef nonnull @.str.57, ptr noundef nonnull @.str.1, i32 noundef 246, ptr noundef %2190, ptr noundef %2192, ptr noundef %2194, i32 noundef %2195) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2197:                                             ; preds = %2171
  %2198 = load i32, ptr @test_count, align 4, !tbaa !5
  %2199 = add nsw i32 %2198, 1
  store i32 %2199, ptr @test_count, align 4, !tbaa !5
  %2200 = getelementptr inbounds i8, ptr %2053, i64 4181
  %2201 = load i8, ptr %2200, align 1, !tbaa !58
  %2202 = icmp eq i8 %2201, 1
  br i1 %2202, label %2225, label %2203

2203:                                             ; preds = %2197
  %2204 = load i32, ptr %841, align 4, !tbaa !5
  %2205 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2206 = call i32 @s2n_print_stacktrace(ptr noundef %2205) #12
  %2207 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2208 = trunc nuw i8 %2207 to i1
  br i1 %2208, label %2209, label %2213

2209:                                             ; preds = %2203
  %2210 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2211 = call i32 @fileno(ptr noundef %2210) #12
  %2212 = call i32 @isatty(i32 noundef %2211) #12
  %.not762 = icmp eq i32 %2212, 0
  br i1 %.not762, label %2213, label %2214

2213:                                             ; preds = %2209, %2203
  br label %2214

2214:                                             ; preds = %2209, %2213
  %.str.5.sink1828 = phi ptr [ @.str.5, %2213 ], [ @.str.2, %2209 ]
  store i32 %2204, ptr %841, align 4, !tbaa !5
  %2215 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2216 = load i32, ptr @test_count, align 4, !tbaa !5
  %2217 = load i32, ptr %730, align 4, !tbaa !5
  %2218 = call ptr @s2n_strerror(i32 noundef %2217, ptr noundef nonnull @.str.4) #12
  %2219 = load i32, ptr %730, align 4, !tbaa !5
  %2220 = call ptr @s2n_strerror_debug(i32 noundef %2219, ptr noundef nonnull @.str.4) #12
  %2221 = load i32, ptr %841, align 4, !tbaa !5
  %2222 = call ptr @strerror(i32 noundef %2221) #12
  %2223 = load i32, ptr %841, align 4, !tbaa !5
  %2224 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2215, ptr noundef nonnull %.str.5.sink1828, i32 noundef %2216, ptr noundef nonnull @.str.58, ptr noundef nonnull @.str.1, i32 noundef 247, ptr noundef %2218, ptr noundef %2220, ptr noundef %2222, i32 noundef %2223) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2225:                                             ; preds = %2197
  %2226 = add nsw i32 %2198, 2
  store i32 %2226, ptr @test_count, align 4, !tbaa !5
  %2227 = call i32 @s2n_connection_free(ptr noundef nonnull %2053) #12
  %2228 = icmp eq i32 %2227, -1
  br i1 %2228, label %2229, label %2251

2229:                                             ; preds = %2225
  %2230 = load i32, ptr %841, align 4, !tbaa !5
  %2231 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2232 = call i32 @s2n_print_stacktrace(ptr noundef %2231) #12
  %2233 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2234 = trunc nuw i8 %2233 to i1
  br i1 %2234, label %2235, label %2239

2235:                                             ; preds = %2229
  %2236 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2237 = call i32 @fileno(ptr noundef %2236) #12
  %2238 = call i32 @isatty(i32 noundef %2237) #12
  %.not939 = icmp eq i32 %2238, 0
  br i1 %.not939, label %2239, label %2240

2239:                                             ; preds = %2235, %2229
  br label %2240

2240:                                             ; preds = %2235, %2239
  %.str.5.sink1837 = phi ptr [ @.str.5, %2239 ], [ @.str.2, %2235 ]
  store i32 %2230, ptr %841, align 4, !tbaa !5
  %2241 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2242 = load i32, ptr @test_count, align 4, !tbaa !5
  %2243 = load i32, ptr %730, align 4, !tbaa !5
  %2244 = call ptr @s2n_strerror(i32 noundef %2243, ptr noundef nonnull @.str.4) #12
  %2245 = load i32, ptr %730, align 4, !tbaa !5
  %2246 = call ptr @s2n_strerror_debug(i32 noundef %2245, ptr noundef nonnull @.str.4) #12
  %2247 = load i32, ptr %841, align 4, !tbaa !5
  %2248 = call ptr @strerror(i32 noundef %2247) #12
  %2249 = load i32, ptr %841, align 4, !tbaa !5
  %2250 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2241, ptr noundef nonnull %.str.5.sink1837, i32 noundef %2242, ptr noundef nonnull @.str.59, ptr noundef nonnull @.str.1, i32 noundef 249, ptr noundef %2244, ptr noundef %2246, ptr noundef %2248, i32 noundef %2249) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2251:                                             ; preds = %2225
  %2252 = call i32 @s2n_stuffer_free(ptr noundef nonnull %18) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %18) #12
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %19) #12
  %2253 = load i32, ptr @test_count, align 4, !tbaa !5
  %2254 = add nsw i32 %2253, 1
  store i32 %2254, ptr @test_count, align 4, !tbaa !5
  %2255 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %19, i32 noundef 0) #12
  %2256 = icmp eq i32 %2255, -1
  br i1 %2256, label %2257, label %2279

2257:                                             ; preds = %2251
  %2258 = load i32, ptr %841, align 4, !tbaa !5
  %2259 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2260 = call i32 @s2n_print_stacktrace(ptr noundef %2259) #12
  %2261 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2262 = trunc nuw i8 %2261 to i1
  br i1 %2262, label %2263, label %2267

2263:                                             ; preds = %2257
  %2264 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2265 = call i32 @fileno(ptr noundef %2264) #12
  %2266 = call i32 @isatty(i32 noundef %2265) #12
  %.not938 = icmp eq i32 %2266, 0
  br i1 %.not938, label %2267, label %2268

2267:                                             ; preds = %2263, %2257
  br label %2268

2268:                                             ; preds = %2263, %2267
  %.str.5.sink1846 = phi ptr [ @.str.5, %2267 ], [ @.str.2, %2263 ]
  store i32 %2258, ptr %841, align 4, !tbaa !5
  %2269 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2270 = load i32, ptr @test_count, align 4, !tbaa !5
  %2271 = load i32, ptr %730, align 4, !tbaa !5
  %2272 = call ptr @s2n_strerror(i32 noundef %2271, ptr noundef nonnull @.str.4) #12
  %2273 = load i32, ptr %730, align 4, !tbaa !5
  %2274 = call ptr @s2n_strerror_debug(i32 noundef %2273, ptr noundef nonnull @.str.4) #12
  %2275 = load i32, ptr %841, align 4, !tbaa !5
  %2276 = call ptr @strerror(i32 noundef %2275) #12
  %2277 = load i32, ptr %841, align 4, !tbaa !5
  %2278 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2269, ptr noundef nonnull %.str.5.sink1846, i32 noundef %2270, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 255, ptr noundef %2272, ptr noundef %2274, ptr noundef %2276, i32 noundef %2277) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2279:                                             ; preds = %2251
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %20) #12
  %2280 = call ptr @s2n_connection_new(i32 noundef 0) #12
  store ptr %2280, ptr %20, align 8, !tbaa !9
  %2281 = load i32, ptr @test_count, align 4, !tbaa !5
  %2282 = add nsw i32 %2281, 1
  store i32 %2282, ptr @test_count, align 4, !tbaa !5
  %2283 = icmp eq ptr %2280, null
  br i1 %2283, label %2284, label %2306

2284:                                             ; preds = %2279
  %2285 = load i32, ptr %841, align 4, !tbaa !5
  %2286 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2287 = call i32 @s2n_print_stacktrace(ptr noundef %2286) #12
  %2288 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2289 = trunc nuw i8 %2288 to i1
  br i1 %2289, label %2290, label %2294

2290:                                             ; preds = %2284
  %2291 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2292 = call i32 @fileno(ptr noundef %2291) #12
  %2293 = call i32 @isatty(i32 noundef %2292) #12
  %.not937 = icmp eq i32 %2293, 0
  br i1 %.not937, label %2294, label %2295

2294:                                             ; preds = %2290, %2284
  br label %2295

2295:                                             ; preds = %2290, %2294
  %.str.5.sink1855 = phi ptr [ @.str.5, %2294 ], [ @.str.2, %2290 ]
  store i32 %2285, ptr %841, align 4, !tbaa !5
  %2296 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2297 = load i32, ptr @test_count, align 4, !tbaa !5
  %2298 = load i32, ptr %730, align 4, !tbaa !5
  %2299 = call ptr @s2n_strerror(i32 noundef %2298, ptr noundef nonnull @.str.4) #12
  %2300 = load i32, ptr %730, align 4, !tbaa !5
  %2301 = call ptr @s2n_strerror_debug(i32 noundef %2300, ptr noundef nonnull @.str.4) #12
  %2302 = load i32, ptr %841, align 4, !tbaa !5
  %2303 = call ptr @strerror(i32 noundef %2302) #12
  %2304 = load i32, ptr %841, align 4, !tbaa !5
  %2305 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2296, ptr noundef nonnull %.str.5.sink1855, i32 noundef %2297, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 259, ptr noundef %2299, ptr noundef %2301, ptr noundef %2303, i32 noundef %2304) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2306:                                             ; preds = %2279
  %2307 = getelementptr inbounds i8, ptr %2280, i64 220
  store i8 34, ptr %2307, align 4, !tbaa !25
  %2308 = getelementptr inbounds i8, ptr %2280, i64 232
  %2309 = load ptr, ptr %2308, align 8, !tbaa !49
  store ptr @s2n_tls13_aes_256_gcm_sha384, ptr %2309, align 8, !tbaa !50
  %2310 = load ptr, ptr %20, align 8, !tbaa !9
  %2311 = getelementptr inbounds i8, ptr %2310, i64 4176
  call void @s2n_atomic_flag_clear(ptr noundef nonnull %2311) #12
  %2312 = load ptr, ptr %20, align 8, !tbaa !9
  %2313 = getelementptr inbounds i8, ptr %2312, i64 232
  %2314 = load ptr, ptr %2313, align 8, !tbaa !49
  %2315 = getelementptr inbounds i8, ptr %2314, i64 920
  store i8 1, ptr %2315, align 8, !tbaa !20
  %2316 = load i32, ptr @test_count, align 4, !tbaa !5
  %2317 = add nsw i32 %2316, 1
  store i32 %2317, ptr @test_count, align 4, !tbaa !5
  %2318 = call i32 @s2n_stuffer_write_uint8(ptr noundef nonnull %19, i8 noundef zeroext 1) #12
  %2319 = icmp eq i32 %2318, -1
  br i1 %2319, label %2320, label %2342

2320:                                             ; preds = %2306
  %2321 = load i32, ptr %841, align 4, !tbaa !5
  %2322 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2323 = call i32 @s2n_print_stacktrace(ptr noundef %2322) #12
  %2324 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2325 = trunc nuw i8 %2324 to i1
  br i1 %2325, label %2326, label %2330

2326:                                             ; preds = %2320
  %2327 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2328 = call i32 @fileno(ptr noundef %2327) #12
  %2329 = call i32 @isatty(i32 noundef %2328) #12
  %.not936 = icmp eq i32 %2329, 0
  br i1 %.not936, label %2330, label %2331

2330:                                             ; preds = %2326, %2320
  br label %2331

2331:                                             ; preds = %2326, %2330
  %.str.5.sink1864 = phi ptr [ @.str.5, %2330 ], [ @.str.2, %2326 ]
  store i32 %2321, ptr %841, align 4, !tbaa !5
  %2332 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2333 = load i32, ptr @test_count, align 4, !tbaa !5
  %2334 = load i32, ptr %730, align 4, !tbaa !5
  %2335 = call ptr @s2n_strerror(i32 noundef %2334, ptr noundef nonnull @.str.4) #12
  %2336 = load i32, ptr %730, align 4, !tbaa !5
  %2337 = call ptr @s2n_strerror_debug(i32 noundef %2336, ptr noundef nonnull @.str.4) #12
  %2338 = load i32, ptr %841, align 4, !tbaa !5
  %2339 = call ptr @strerror(i32 noundef %2338) #12
  %2340 = load i32, ptr %841, align 4, !tbaa !5
  %2341 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2332, ptr noundef nonnull %.str.5.sink1864, i32 noundef %2333, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 268, ptr noundef %2335, ptr noundef %2337, ptr noundef %2339, i32 noundef %2340) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2342:                                             ; preds = %2306
  %2343 = load i32, ptr @test_count, align 4, !tbaa !5
  %2344 = add nsw i32 %2343, 1
  store i32 %2344, ptr @test_count, align 4, !tbaa !5
  %2345 = load ptr, ptr %20, align 8, !tbaa !9
  %2346 = call i32 @s2n_key_update_recv(ptr noundef %2345, ptr noundef nonnull %19) #12
  %2347 = icmp eq i32 %2346, -1
  br i1 %2347, label %2348, label %2370

2348:                                             ; preds = %2342
  %2349 = load i32, ptr %841, align 4, !tbaa !5
  %2350 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2351 = call i32 @s2n_print_stacktrace(ptr noundef %2350) #12
  %2352 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2353 = trunc nuw i8 %2352 to i1
  br i1 %2353, label %2354, label %2358

2354:                                             ; preds = %2348
  %2355 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2356 = call i32 @fileno(ptr noundef %2355) #12
  %2357 = call i32 @isatty(i32 noundef %2356) #12
  %.not935 = icmp eq i32 %2357, 0
  br i1 %.not935, label %2358, label %2359

2358:                                             ; preds = %2354, %2348
  br label %2359

2359:                                             ; preds = %2354, %2358
  %.str.5.sink1873 = phi ptr [ @.str.5, %2358 ], [ @.str.2, %2354 ]
  store i32 %2349, ptr %841, align 4, !tbaa !5
  %2360 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2361 = load i32, ptr @test_count, align 4, !tbaa !5
  %2362 = load i32, ptr %730, align 4, !tbaa !5
  %2363 = call ptr @s2n_strerror(i32 noundef %2362, ptr noundef nonnull @.str.4) #12
  %2364 = load i32, ptr %730, align 4, !tbaa !5
  %2365 = call ptr @s2n_strerror_debug(i32 noundef %2364, ptr noundef nonnull @.str.4) #12
  %2366 = load i32, ptr %841, align 4, !tbaa !5
  %2367 = call ptr @strerror(i32 noundef %2366) #12
  %2368 = load i32, ptr %841, align 4, !tbaa !5
  %2369 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2360, ptr noundef nonnull %.str.5.sink1873, i32 noundef %2361, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.1, i32 noundef 269, ptr noundef %2363, ptr noundef %2365, ptr noundef %2367, i32 noundef %2368) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2370:                                             ; preds = %2342
  %2371 = load i32, ptr @test_count, align 4, !tbaa !5
  %2372 = add nsw i32 %2371, 1
  store i32 %2372, ptr @test_count, align 4, !tbaa !5
  %2373 = load ptr, ptr %20, align 8, !tbaa !9
  %2374 = getelementptr inbounds i8, ptr %2373, i64 232
  %2375 = load ptr, ptr %2374, align 8, !tbaa !49
  %2376 = getelementptr inbounds i8, ptr %2375, i64 920
  %2377 = load i8, ptr %2376, align 8, !tbaa !20
  %2378 = icmp eq i8 %2377, 0
  br i1 %2378, label %2401, label %2379

2379:                                             ; preds = %2370
  %2380 = load i32, ptr %841, align 4, !tbaa !5
  %2381 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2382 = call i32 @s2n_print_stacktrace(ptr noundef %2381) #12
  %2383 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2384 = trunc nuw i8 %2383 to i1
  br i1 %2384, label %2385, label %2389

2385:                                             ; preds = %2379
  %2386 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2387 = call i32 @fileno(ptr noundef %2386) #12
  %2388 = call i32 @isatty(i32 noundef %2387) #12
  %.not763 = icmp eq i32 %2388, 0
  br i1 %.not763, label %2389, label %2390

2389:                                             ; preds = %2385, %2379
  br label %2390

2390:                                             ; preds = %2385, %2389
  %.str.5.sink1882 = phi ptr [ @.str.5, %2389 ], [ @.str.2, %2385 ]
  store i32 %2380, ptr %841, align 4, !tbaa !5
  %2391 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2392 = load i32, ptr @test_count, align 4, !tbaa !5
  %2393 = load i32, ptr %730, align 4, !tbaa !5
  %2394 = call ptr @s2n_strerror(i32 noundef %2393, ptr noundef nonnull @.str.4) #12
  %2395 = load i32, ptr %730, align 4, !tbaa !5
  %2396 = call ptr @s2n_strerror_debug(i32 noundef %2395, ptr noundef nonnull @.str.4) #12
  %2397 = load i32, ptr %841, align 4, !tbaa !5
  %2398 = call ptr @strerror(i32 noundef %2397) #12
  %2399 = load i32, ptr %841, align 4, !tbaa !5
  %2400 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2391, ptr noundef nonnull %.str.5.sink1882, i32 noundef %2392, ptr noundef nonnull @.str.60, ptr noundef nonnull @.str.1, i32 noundef 270, ptr noundef %2394, ptr noundef %2396, ptr noundef %2398, i32 noundef %2399) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2401:                                             ; preds = %2370
  %2402 = add nsw i32 %2371, 2
  store i32 %2402, ptr @test_count, align 4, !tbaa !5
  %2403 = getelementptr inbounds i8, ptr %2373, i64 4176
  %2404 = call zeroext i1 @s2n_atomic_flag_test(ptr noundef nonnull %2403) #12
  br i1 %2404, label %2427, label %2405

2405:                                             ; preds = %2401
  %2406 = load i32, ptr %841, align 4, !tbaa !5
  %2407 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2408 = call i32 @s2n_print_stacktrace(ptr noundef %2407) #12
  %2409 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2410 = trunc nuw i8 %2409 to i1
  br i1 %2410, label %2411, label %2415

2411:                                             ; preds = %2405
  %2412 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2413 = call i32 @fileno(ptr noundef %2412) #12
  %2414 = call i32 @isatty(i32 noundef %2413) #12
  %.not764 = icmp eq i32 %2414, 0
  br i1 %.not764, label %2415, label %2416

2415:                                             ; preds = %2411, %2405
  br label %2416

2416:                                             ; preds = %2411, %2415
  %.str.5.sink1891 = phi ptr [ @.str.5, %2415 ], [ @.str.2, %2411 ]
  store i32 %2406, ptr %841, align 4, !tbaa !5
  %2417 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2418 = load i32, ptr @test_count, align 4, !tbaa !5
  %2419 = load i32, ptr %730, align 4, !tbaa !5
  %2420 = call ptr @s2n_strerror(i32 noundef %2419, ptr noundef nonnull @.str.4) #12
  %2421 = load i32, ptr %730, align 4, !tbaa !5
  %2422 = call ptr @s2n_strerror_debug(i32 noundef %2421, ptr noundef nonnull @.str.4) #12
  %2423 = load i32, ptr %841, align 4, !tbaa !5
  %2424 = call ptr @strerror(i32 noundef %2423) #12
  %2425 = load i32, ptr %841, align 4, !tbaa !5
  %2426 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2417, ptr noundef nonnull %.str.5.sink1891, i32 noundef %2418, ptr noundef nonnull @.str.61, ptr noundef nonnull @.str.1, i32 noundef 273, ptr noundef %2420, ptr noundef %2422, ptr noundef %2424, i32 noundef %2425) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2427:                                             ; preds = %2401
  %2428 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %20) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #12
  %2429 = call i32 @s2n_stuffer_free(ptr noundef nonnull %19) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %19) #12
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %21) #12
  %2430 = load i32, ptr @test_count, align 4, !tbaa !5
  %2431 = add nsw i32 %2430, 1
  store i32 %2431, ptr @test_count, align 4, !tbaa !5
  %2432 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %21, i32 noundef 0) #12
  %2433 = icmp eq i32 %2432, -1
  br i1 %2433, label %2434, label %2456

2434:                                             ; preds = %2427
  %2435 = load i32, ptr %841, align 4, !tbaa !5
  %2436 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2437 = call i32 @s2n_print_stacktrace(ptr noundef %2436) #12
  %2438 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2439 = trunc nuw i8 %2438 to i1
  br i1 %2439, label %2440, label %2444

2440:                                             ; preds = %2434
  %2441 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2442 = call i32 @fileno(ptr noundef %2441) #12
  %2443 = call i32 @isatty(i32 noundef %2442) #12
  %.not934 = icmp eq i32 %2443, 0
  br i1 %.not934, label %2444, label %2445

2444:                                             ; preds = %2440, %2434
  br label %2445

2445:                                             ; preds = %2440, %2444
  %.str.5.sink1900 = phi ptr [ @.str.5, %2444 ], [ @.str.2, %2440 ]
  store i32 %2435, ptr %841, align 4, !tbaa !5
  %2446 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2447 = load i32, ptr @test_count, align 4, !tbaa !5
  %2448 = load i32, ptr %730, align 4, !tbaa !5
  %2449 = call ptr @s2n_strerror(i32 noundef %2448, ptr noundef nonnull @.str.4) #12
  %2450 = load i32, ptr %730, align 4, !tbaa !5
  %2451 = call ptr @s2n_strerror_debug(i32 noundef %2450, ptr noundef nonnull @.str.4) #12
  %2452 = load i32, ptr %841, align 4, !tbaa !5
  %2453 = call ptr @strerror(i32 noundef %2452) #12
  %2454 = load i32, ptr %841, align 4, !tbaa !5
  %2455 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2446, ptr noundef nonnull %.str.5.sink1900, i32 noundef %2447, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 279, ptr noundef %2449, ptr noundef %2451, ptr noundef %2453, i32 noundef %2454) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2456:                                             ; preds = %2427
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %22) #12
  %2457 = call ptr @s2n_connection_new(i32 noundef 0) #12
  store ptr %2457, ptr %22, align 8, !tbaa !9
  %2458 = load i32, ptr @test_count, align 4, !tbaa !5
  %2459 = add nsw i32 %2458, 1
  store i32 %2459, ptr @test_count, align 4, !tbaa !5
  %2460 = icmp eq ptr %2457, null
  br i1 %2460, label %2461, label %2483

2461:                                             ; preds = %2456
  %2462 = load i32, ptr %841, align 4, !tbaa !5
  %2463 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2464 = call i32 @s2n_print_stacktrace(ptr noundef %2463) #12
  %2465 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2466 = trunc nuw i8 %2465 to i1
  br i1 %2466, label %2467, label %2471

2467:                                             ; preds = %2461
  %2468 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2469 = call i32 @fileno(ptr noundef %2468) #12
  %2470 = call i32 @isatty(i32 noundef %2469) #12
  %.not933 = icmp eq i32 %2470, 0
  br i1 %.not933, label %2471, label %2472

2471:                                             ; preds = %2467, %2461
  br label %2472

2472:                                             ; preds = %2467, %2471
  %.str.5.sink1909 = phi ptr [ @.str.5, %2471 ], [ @.str.2, %2467 ]
  store i32 %2462, ptr %841, align 4, !tbaa !5
  %2473 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2474 = load i32, ptr @test_count, align 4, !tbaa !5
  %2475 = load i32, ptr %730, align 4, !tbaa !5
  %2476 = call ptr @s2n_strerror(i32 noundef %2475, ptr noundef nonnull @.str.4) #12
  %2477 = load i32, ptr %730, align 4, !tbaa !5
  %2478 = call ptr @s2n_strerror_debug(i32 noundef %2477, ptr noundef nonnull @.str.4) #12
  %2479 = load i32, ptr %841, align 4, !tbaa !5
  %2480 = call ptr @strerror(i32 noundef %2479) #12
  %2481 = load i32, ptr %841, align 4, !tbaa !5
  %2482 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2473, ptr noundef nonnull %.str.5.sink1909, i32 noundef %2474, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 283, ptr noundef %2476, ptr noundef %2478, ptr noundef %2480, i32 noundef %2481) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2483:                                             ; preds = %2456
  %2484 = getelementptr inbounds i8, ptr %2457, i64 220
  store i8 34, ptr %2484, align 4, !tbaa !25
  %2485 = getelementptr inbounds i8, ptr %2457, i64 232
  %2486 = load ptr, ptr %2485, align 8, !tbaa !49
  store ptr @s2n_tls13_aes_256_gcm_sha384, ptr %2486, align 8, !tbaa !50
  %2487 = load ptr, ptr %22, align 8, !tbaa !9
  %2488 = getelementptr inbounds i8, ptr %2487, i64 4176
  call void @s2n_atomic_flag_set(ptr noundef nonnull %2488) #12
  %2489 = load ptr, ptr %22, align 8, !tbaa !9
  %2490 = getelementptr inbounds i8, ptr %2489, i64 232
  %2491 = load ptr, ptr %2490, align 8, !tbaa !49
  %2492 = getelementptr inbounds i8, ptr %2491, i64 920
  store i8 1, ptr %2492, align 8, !tbaa !20
  %2493 = load i32, ptr @test_count, align 4, !tbaa !5
  %2494 = add nsw i32 %2493, 1
  store i32 %2494, ptr @test_count, align 4, !tbaa !5
  %2495 = call i32 @s2n_stuffer_write_uint8(ptr noundef nonnull %21, i8 noundef zeroext 0) #12
  %2496 = icmp eq i32 %2495, -1
  br i1 %2496, label %2497, label %2519

2497:                                             ; preds = %2483
  %2498 = load i32, ptr %841, align 4, !tbaa !5
  %2499 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2500 = call i32 @s2n_print_stacktrace(ptr noundef %2499) #12
  %2501 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2502 = trunc nuw i8 %2501 to i1
  br i1 %2502, label %2503, label %2507

2503:                                             ; preds = %2497
  %2504 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2505 = call i32 @fileno(ptr noundef %2504) #12
  %2506 = call i32 @isatty(i32 noundef %2505) #12
  %.not932 = icmp eq i32 %2506, 0
  br i1 %.not932, label %2507, label %2508

2507:                                             ; preds = %2503, %2497
  br label %2508

2508:                                             ; preds = %2503, %2507
  %.str.5.sink1918 = phi ptr [ @.str.5, %2507 ], [ @.str.2, %2503 ]
  store i32 %2498, ptr %841, align 4, !tbaa !5
  %2509 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2510 = load i32, ptr @test_count, align 4, !tbaa !5
  %2511 = load i32, ptr %730, align 4, !tbaa !5
  %2512 = call ptr @s2n_strerror(i32 noundef %2511, ptr noundef nonnull @.str.4) #12
  %2513 = load i32, ptr %730, align 4, !tbaa !5
  %2514 = call ptr @s2n_strerror_debug(i32 noundef %2513, ptr noundef nonnull @.str.4) #12
  %2515 = load i32, ptr %841, align 4, !tbaa !5
  %2516 = call ptr @strerror(i32 noundef %2515) #12
  %2517 = load i32, ptr %841, align 4, !tbaa !5
  %2518 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2509, ptr noundef nonnull %.str.5.sink1918, i32 noundef %2510, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 292, ptr noundef %2512, ptr noundef %2514, ptr noundef %2516, i32 noundef %2517) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2519:                                             ; preds = %2483
  %2520 = load i32, ptr @test_count, align 4, !tbaa !5
  %2521 = add nsw i32 %2520, 1
  store i32 %2521, ptr @test_count, align 4, !tbaa !5
  %2522 = load ptr, ptr %22, align 8, !tbaa !9
  %2523 = call i32 @s2n_key_update_recv(ptr noundef %2522, ptr noundef nonnull %21) #12
  %2524 = icmp eq i32 %2523, -1
  br i1 %2524, label %2525, label %2547

2525:                                             ; preds = %2519
  %2526 = load i32, ptr %841, align 4, !tbaa !5
  %2527 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2528 = call i32 @s2n_print_stacktrace(ptr noundef %2527) #12
  %2529 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2530 = trunc nuw i8 %2529 to i1
  br i1 %2530, label %2531, label %2535

2531:                                             ; preds = %2525
  %2532 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2533 = call i32 @fileno(ptr noundef %2532) #12
  %2534 = call i32 @isatty(i32 noundef %2533) #12
  %.not931 = icmp eq i32 %2534, 0
  br i1 %.not931, label %2535, label %2536

2535:                                             ; preds = %2531, %2525
  br label %2536

2536:                                             ; preds = %2531, %2535
  %.str.5.sink1927 = phi ptr [ @.str.5, %2535 ], [ @.str.2, %2531 ]
  store i32 %2526, ptr %841, align 4, !tbaa !5
  %2537 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2538 = load i32, ptr @test_count, align 4, !tbaa !5
  %2539 = load i32, ptr %730, align 4, !tbaa !5
  %2540 = call ptr @s2n_strerror(i32 noundef %2539, ptr noundef nonnull @.str.4) #12
  %2541 = load i32, ptr %730, align 4, !tbaa !5
  %2542 = call ptr @s2n_strerror_debug(i32 noundef %2541, ptr noundef nonnull @.str.4) #12
  %2543 = load i32, ptr %841, align 4, !tbaa !5
  %2544 = call ptr @strerror(i32 noundef %2543) #12
  %2545 = load i32, ptr %841, align 4, !tbaa !5
  %2546 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2537, ptr noundef nonnull %.str.5.sink1927, i32 noundef %2538, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.1, i32 noundef 293, ptr noundef %2540, ptr noundef %2542, ptr noundef %2544, i32 noundef %2545) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2547:                                             ; preds = %2519
  %2548 = load i32, ptr @test_count, align 4, !tbaa !5
  %2549 = add nsw i32 %2548, 1
  store i32 %2549, ptr @test_count, align 4, !tbaa !5
  %2550 = load ptr, ptr %22, align 8, !tbaa !9
  %2551 = getelementptr inbounds i8, ptr %2550, i64 232
  %2552 = load ptr, ptr %2551, align 8, !tbaa !49
  %2553 = getelementptr inbounds i8, ptr %2552, i64 920
  %2554 = load i8, ptr %2553, align 8, !tbaa !20
  %2555 = icmp eq i8 %2554, 0
  br i1 %2555, label %2578, label %2556

2556:                                             ; preds = %2547
  %2557 = load i32, ptr %841, align 4, !tbaa !5
  %2558 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2559 = call i32 @s2n_print_stacktrace(ptr noundef %2558) #12
  %2560 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2561 = trunc nuw i8 %2560 to i1
  br i1 %2561, label %2562, label %2566

2562:                                             ; preds = %2556
  %2563 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2564 = call i32 @fileno(ptr noundef %2563) #12
  %2565 = call i32 @isatty(i32 noundef %2564) #12
  %.not765 = icmp eq i32 %2565, 0
  br i1 %.not765, label %2566, label %2567

2566:                                             ; preds = %2562, %2556
  br label %2567

2567:                                             ; preds = %2562, %2566
  %.str.5.sink1936 = phi ptr [ @.str.5, %2566 ], [ @.str.2, %2562 ]
  store i32 %2557, ptr %841, align 4, !tbaa !5
  %2568 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2569 = load i32, ptr @test_count, align 4, !tbaa !5
  %2570 = load i32, ptr %730, align 4, !tbaa !5
  %2571 = call ptr @s2n_strerror(i32 noundef %2570, ptr noundef nonnull @.str.4) #12
  %2572 = load i32, ptr %730, align 4, !tbaa !5
  %2573 = call ptr @s2n_strerror_debug(i32 noundef %2572, ptr noundef nonnull @.str.4) #12
  %2574 = load i32, ptr %841, align 4, !tbaa !5
  %2575 = call ptr @strerror(i32 noundef %2574) #12
  %2576 = load i32, ptr %841, align 4, !tbaa !5
  %2577 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2568, ptr noundef nonnull %.str.5.sink1936, i32 noundef %2569, ptr noundef nonnull @.str.60, ptr noundef nonnull @.str.1, i32 noundef 294, ptr noundef %2571, ptr noundef %2573, ptr noundef %2575, i32 noundef %2576) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2578:                                             ; preds = %2547
  %2579 = add nsw i32 %2548, 2
  store i32 %2579, ptr @test_count, align 4, !tbaa !5
  %2580 = getelementptr inbounds i8, ptr %2550, i64 4176
  %2581 = call zeroext i1 @s2n_atomic_flag_test(ptr noundef nonnull %2580) #12
  br i1 %2581, label %2604, label %2582

2582:                                             ; preds = %2578
  %2583 = load i32, ptr %841, align 4, !tbaa !5
  %2584 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2585 = call i32 @s2n_print_stacktrace(ptr noundef %2584) #12
  %2586 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2587 = trunc nuw i8 %2586 to i1
  br i1 %2587, label %2588, label %2592

2588:                                             ; preds = %2582
  %2589 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2590 = call i32 @fileno(ptr noundef %2589) #12
  %2591 = call i32 @isatty(i32 noundef %2590) #12
  %.not766 = icmp eq i32 %2591, 0
  br i1 %.not766, label %2592, label %2593

2592:                                             ; preds = %2588, %2582
  br label %2593

2593:                                             ; preds = %2588, %2592
  %.str.5.sink1945 = phi ptr [ @.str.5, %2592 ], [ @.str.2, %2588 ]
  store i32 %2583, ptr %841, align 4, !tbaa !5
  %2594 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2595 = load i32, ptr @test_count, align 4, !tbaa !5
  %2596 = load i32, ptr %730, align 4, !tbaa !5
  %2597 = call ptr @s2n_strerror(i32 noundef %2596, ptr noundef nonnull @.str.4) #12
  %2598 = load i32, ptr %730, align 4, !tbaa !5
  %2599 = call ptr @s2n_strerror_debug(i32 noundef %2598, ptr noundef nonnull @.str.4) #12
  %2600 = load i32, ptr %841, align 4, !tbaa !5
  %2601 = call ptr @strerror(i32 noundef %2600) #12
  %2602 = load i32, ptr %841, align 4, !tbaa !5
  %2603 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2594, ptr noundef nonnull %.str.5.sink1945, i32 noundef %2595, ptr noundef nonnull @.str.61, ptr noundef nonnull @.str.1, i32 noundef 297, ptr noundef %2597, ptr noundef %2599, ptr noundef %2601, i32 noundef %2602) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2604:                                             ; preds = %2578
  %2605 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %22) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #12
  %2606 = call i32 @s2n_stuffer_free(ptr noundef nonnull %21) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %21) #12
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %23) #12
  %2607 = load i32, ptr @test_count, align 4, !tbaa !5
  %2608 = add nsw i32 %2607, 1
  store i32 %2608, ptr @test_count, align 4, !tbaa !5
  %2609 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %23, i32 noundef 0) #12
  %2610 = icmp eq i32 %2609, -1
  br i1 %2610, label %2611, label %2633

2611:                                             ; preds = %2604
  %2612 = load i32, ptr %841, align 4, !tbaa !5
  %2613 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2614 = call i32 @s2n_print_stacktrace(ptr noundef %2613) #12
  %2615 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2616 = trunc nuw i8 %2615 to i1
  br i1 %2616, label %2617, label %2621

2617:                                             ; preds = %2611
  %2618 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2619 = call i32 @fileno(ptr noundef %2618) #12
  %2620 = call i32 @isatty(i32 noundef %2619) #12
  %.not930 = icmp eq i32 %2620, 0
  br i1 %.not930, label %2621, label %2622

2621:                                             ; preds = %2617, %2611
  br label %2622

2622:                                             ; preds = %2617, %2621
  %.str.5.sink1954 = phi ptr [ @.str.5, %2621 ], [ @.str.2, %2617 ]
  store i32 %2612, ptr %841, align 4, !tbaa !5
  %2623 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2624 = load i32, ptr @test_count, align 4, !tbaa !5
  %2625 = load i32, ptr %730, align 4, !tbaa !5
  %2626 = call ptr @s2n_strerror(i32 noundef %2625, ptr noundef nonnull @.str.4) #12
  %2627 = load i32, ptr %730, align 4, !tbaa !5
  %2628 = call ptr @s2n_strerror_debug(i32 noundef %2627, ptr noundef nonnull @.str.4) #12
  %2629 = load i32, ptr %841, align 4, !tbaa !5
  %2630 = call ptr @strerror(i32 noundef %2629) #12
  %2631 = load i32, ptr %841, align 4, !tbaa !5
  %2632 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2623, ptr noundef nonnull %.str.5.sink1954, i32 noundef %2624, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 303, ptr noundef %2626, ptr noundef %2628, ptr noundef %2630, i32 noundef %2631) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2633:                                             ; preds = %2604
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %24) #12
  %2634 = call ptr @s2n_connection_new(i32 noundef 0) #12
  store ptr %2634, ptr %24, align 8, !tbaa !9
  %2635 = load i32, ptr @test_count, align 4, !tbaa !5
  %2636 = add nsw i32 %2635, 1
  store i32 %2636, ptr @test_count, align 4, !tbaa !5
  %2637 = icmp eq ptr %2634, null
  br i1 %2637, label %2638, label %2660

2638:                                             ; preds = %2633
  %2639 = load i32, ptr %841, align 4, !tbaa !5
  %2640 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2641 = call i32 @s2n_print_stacktrace(ptr noundef %2640) #12
  %2642 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2643 = trunc nuw i8 %2642 to i1
  br i1 %2643, label %2644, label %2648

2644:                                             ; preds = %2638
  %2645 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2646 = call i32 @fileno(ptr noundef %2645) #12
  %2647 = call i32 @isatty(i32 noundef %2646) #12
  %.not929 = icmp eq i32 %2647, 0
  br i1 %.not929, label %2648, label %2649

2648:                                             ; preds = %2644, %2638
  br label %2649

2649:                                             ; preds = %2644, %2648
  %.str.5.sink1963 = phi ptr [ @.str.5, %2648 ], [ @.str.2, %2644 ]
  store i32 %2639, ptr %841, align 4, !tbaa !5
  %2650 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2651 = load i32, ptr @test_count, align 4, !tbaa !5
  %2652 = load i32, ptr %730, align 4, !tbaa !5
  %2653 = call ptr @s2n_strerror(i32 noundef %2652, ptr noundef nonnull @.str.4) #12
  %2654 = load i32, ptr %730, align 4, !tbaa !5
  %2655 = call ptr @s2n_strerror_debug(i32 noundef %2654, ptr noundef nonnull @.str.4) #12
  %2656 = load i32, ptr %841, align 4, !tbaa !5
  %2657 = call ptr @strerror(i32 noundef %2656) #12
  %2658 = load i32, ptr %841, align 4, !tbaa !5
  %2659 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2650, ptr noundef nonnull %.str.5.sink1963, i32 noundef %2651, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 307, ptr noundef %2653, ptr noundef %2655, ptr noundef %2657, i32 noundef %2658) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2660:                                             ; preds = %2633
  %2661 = getelementptr inbounds i8, ptr %2634, i64 220
  store i8 34, ptr %2661, align 4, !tbaa !25
  %2662 = getelementptr inbounds i8, ptr %2634, i64 232
  %2663 = load ptr, ptr %2662, align 8, !tbaa !49
  store ptr @s2n_tls13_aes_256_gcm_sha384, ptr %2663, align 8, !tbaa !50
  %2664 = load ptr, ptr %24, align 8, !tbaa !9
  %2665 = getelementptr inbounds i8, ptr %2664, i64 4181
  store i8 -1, ptr %2665, align 1, !tbaa !58
  %2666 = getelementptr inbounds i8, ptr %2664, i64 232
  %2667 = load ptr, ptr %2666, align 8, !tbaa !49
  %2668 = getelementptr inbounds i8, ptr %2667, i64 920
  store i8 1, ptr %2668, align 8, !tbaa !20
  %2669 = add nsw i32 %2635, 2
  store i32 %2669, ptr @test_count, align 4, !tbaa !5
  %2670 = call i32 @s2n_stuffer_write_uint8(ptr noundef nonnull %23, i8 noundef zeroext 0) #12
  %2671 = icmp eq i32 %2670, -1
  br i1 %2671, label %2672, label %2694

2672:                                             ; preds = %2660
  %2673 = load i32, ptr %841, align 4, !tbaa !5
  %2674 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2675 = call i32 @s2n_print_stacktrace(ptr noundef %2674) #12
  %2676 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2677 = trunc nuw i8 %2676 to i1
  br i1 %2677, label %2678, label %2682

2678:                                             ; preds = %2672
  %2679 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2680 = call i32 @fileno(ptr noundef %2679) #12
  %2681 = call i32 @isatty(i32 noundef %2680) #12
  %.not928 = icmp eq i32 %2681, 0
  br i1 %.not928, label %2682, label %2683

2682:                                             ; preds = %2678, %2672
  br label %2683

2683:                                             ; preds = %2678, %2682
  %.str.5.sink1972 = phi ptr [ @.str.5, %2682 ], [ @.str.2, %2678 ]
  store i32 %2673, ptr %841, align 4, !tbaa !5
  %2684 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2685 = load i32, ptr @test_count, align 4, !tbaa !5
  %2686 = load i32, ptr %730, align 4, !tbaa !5
  %2687 = call ptr @s2n_strerror(i32 noundef %2686, ptr noundef nonnull @.str.4) #12
  %2688 = load i32, ptr %730, align 4, !tbaa !5
  %2689 = call ptr @s2n_strerror_debug(i32 noundef %2688, ptr noundef nonnull @.str.4) #12
  %2690 = load i32, ptr %841, align 4, !tbaa !5
  %2691 = call ptr @strerror(i32 noundef %2690) #12
  %2692 = load i32, ptr %841, align 4, !tbaa !5
  %2693 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2684, ptr noundef nonnull %.str.5.sink1972, i32 noundef %2685, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 313, ptr noundef %2687, ptr noundef %2689, ptr noundef %2691, i32 noundef %2692) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2694:                                             ; preds = %2660
  %2695 = load i32, ptr @test_count, align 4, !tbaa !5
  %2696 = add nsw i32 %2695, 1
  store i32 %2696, ptr @test_count, align 4, !tbaa !5
  %2697 = load ptr, ptr %24, align 8, !tbaa !9
  %2698 = call i32 @s2n_key_update_recv(ptr noundef %2697, ptr noundef nonnull %23) #12
  %2699 = icmp eq i32 %2698, -1
  br i1 %2699, label %2700, label %2722

2700:                                             ; preds = %2694
  %2701 = load i32, ptr %841, align 4, !tbaa !5
  %2702 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2703 = call i32 @s2n_print_stacktrace(ptr noundef %2702) #12
  %2704 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2705 = trunc nuw i8 %2704 to i1
  br i1 %2705, label %2706, label %2710

2706:                                             ; preds = %2700
  %2707 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2708 = call i32 @fileno(ptr noundef %2707) #12
  %2709 = call i32 @isatty(i32 noundef %2708) #12
  %.not927 = icmp eq i32 %2709, 0
  br i1 %.not927, label %2710, label %2711

2710:                                             ; preds = %2706, %2700
  br label %2711

2711:                                             ; preds = %2706, %2710
  %.str.5.sink1981 = phi ptr [ @.str.5, %2710 ], [ @.str.2, %2706 ]
  store i32 %2701, ptr %841, align 4, !tbaa !5
  %2712 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2713 = load i32, ptr @test_count, align 4, !tbaa !5
  %2714 = load i32, ptr %730, align 4, !tbaa !5
  %2715 = call ptr @s2n_strerror(i32 noundef %2714, ptr noundef nonnull @.str.4) #12
  %2716 = load i32, ptr %730, align 4, !tbaa !5
  %2717 = call ptr @s2n_strerror_debug(i32 noundef %2716, ptr noundef nonnull @.str.4) #12
  %2718 = load i32, ptr %841, align 4, !tbaa !5
  %2719 = call ptr @strerror(i32 noundef %2718) #12
  %2720 = load i32, ptr %841, align 4, !tbaa !5
  %2721 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2712, ptr noundef nonnull %.str.5.sink1981, i32 noundef %2713, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.1, i32 noundef 314, ptr noundef %2715, ptr noundef %2717, ptr noundef %2719, i32 noundef %2720) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2722:                                             ; preds = %2694
  %2723 = load i32, ptr @test_count, align 4, !tbaa !5
  %2724 = add nsw i32 %2723, 1
  store i32 %2724, ptr @test_count, align 4, !tbaa !5
  %2725 = load ptr, ptr %24, align 8, !tbaa !9
  %2726 = getelementptr inbounds i8, ptr %2725, i64 232
  %2727 = load ptr, ptr %2726, align 8, !tbaa !49
  %2728 = getelementptr inbounds i8, ptr %2727, i64 920
  %2729 = load i8, ptr %2728, align 8, !tbaa !20
  %2730 = icmp eq i8 %2729, 0
  br i1 %2730, label %2753, label %2731

2731:                                             ; preds = %2722
  %2732 = load i32, ptr %841, align 4, !tbaa !5
  %2733 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2734 = call i32 @s2n_print_stacktrace(ptr noundef %2733) #12
  %2735 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2736 = trunc nuw i8 %2735 to i1
  br i1 %2736, label %2737, label %2741

2737:                                             ; preds = %2731
  %2738 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2739 = call i32 @fileno(ptr noundef %2738) #12
  %2740 = call i32 @isatty(i32 noundef %2739) #12
  %.not767 = icmp eq i32 %2740, 0
  br i1 %.not767, label %2741, label %2742

2741:                                             ; preds = %2737, %2731
  br label %2742

2742:                                             ; preds = %2737, %2741
  %.str.5.sink1990 = phi ptr [ @.str.5, %2741 ], [ @.str.2, %2737 ]
  store i32 %2732, ptr %841, align 4, !tbaa !5
  %2743 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2744 = load i32, ptr @test_count, align 4, !tbaa !5
  %2745 = load i32, ptr %730, align 4, !tbaa !5
  %2746 = call ptr @s2n_strerror(i32 noundef %2745, ptr noundef nonnull @.str.4) #12
  %2747 = load i32, ptr %730, align 4, !tbaa !5
  %2748 = call ptr @s2n_strerror_debug(i32 noundef %2747, ptr noundef nonnull @.str.4) #12
  %2749 = load i32, ptr %841, align 4, !tbaa !5
  %2750 = call ptr @strerror(i32 noundef %2749) #12
  %2751 = load i32, ptr %841, align 4, !tbaa !5
  %2752 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2743, ptr noundef nonnull %.str.5.sink1990, i32 noundef %2744, ptr noundef nonnull @.str.60, ptr noundef nonnull @.str.1, i32 noundef 315, ptr noundef %2746, ptr noundef %2748, ptr noundef %2750, i32 noundef %2751) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2753:                                             ; preds = %2722
  %2754 = add nsw i32 %2723, 2
  store i32 %2754, ptr @test_count, align 4, !tbaa !5
  %2755 = getelementptr inbounds i8, ptr %2725, i64 4181
  %2756 = load i8, ptr %2755, align 1, !tbaa !58
  %2757 = icmp eq i8 %2756, -1
  br i1 %2757, label %2780, label %2758

2758:                                             ; preds = %2753
  %2759 = load i32, ptr %841, align 4, !tbaa !5
  %2760 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2761 = call i32 @s2n_print_stacktrace(ptr noundef %2760) #12
  %2762 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2763 = trunc nuw i8 %2762 to i1
  br i1 %2763, label %2764, label %2768

2764:                                             ; preds = %2758
  %2765 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2766 = call i32 @fileno(ptr noundef %2765) #12
  %2767 = call i32 @isatty(i32 noundef %2766) #12
  %.not768 = icmp eq i32 %2767, 0
  br i1 %.not768, label %2768, label %2769

2768:                                             ; preds = %2764, %2758
  br label %2769

2769:                                             ; preds = %2764, %2768
  %.str.5.sink1999 = phi ptr [ @.str.5, %2768 ], [ @.str.2, %2764 ]
  store i32 %2759, ptr %841, align 4, !tbaa !5
  %2770 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2771 = load i32, ptr @test_count, align 4, !tbaa !5
  %2772 = load i32, ptr %730, align 4, !tbaa !5
  %2773 = call ptr @s2n_strerror(i32 noundef %2772, ptr noundef nonnull @.str.4) #12
  %2774 = load i32, ptr %730, align 4, !tbaa !5
  %2775 = call ptr @s2n_strerror_debug(i32 noundef %2774, ptr noundef nonnull @.str.4) #12
  %2776 = load i32, ptr %841, align 4, !tbaa !5
  %2777 = call ptr @strerror(i32 noundef %2776) #12
  %2778 = load i32, ptr %841, align 4, !tbaa !5
  %2779 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2770, ptr noundef nonnull %.str.5.sink1999, i32 noundef %2771, ptr noundef nonnull @.str.62, ptr noundef nonnull @.str.1, i32 noundef 316, ptr noundef %2773, ptr noundef %2775, ptr noundef %2777, i32 noundef %2778) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2780:                                             ; preds = %2753
  %2781 = add nsw i32 %2723, 3
  store i32 %2781, ptr @test_count, align 4, !tbaa !5
  %2782 = getelementptr inbounds i8, ptr %2725, i64 4180
  %2783 = load i8, ptr %2782, align 4, !tbaa !59
  %2784 = icmp eq i8 %2783, 0
  br i1 %2784, label %2807, label %2785

2785:                                             ; preds = %2780
  %2786 = load i32, ptr %841, align 4, !tbaa !5
  %2787 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2788 = call i32 @s2n_print_stacktrace(ptr noundef %2787) #12
  %2789 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2790 = trunc nuw i8 %2789 to i1
  br i1 %2790, label %2791, label %2795

2791:                                             ; preds = %2785
  %2792 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2793 = call i32 @fileno(ptr noundef %2792) #12
  %2794 = call i32 @isatty(i32 noundef %2793) #12
  %.not769 = icmp eq i32 %2794, 0
  br i1 %.not769, label %2795, label %2796

2795:                                             ; preds = %2791, %2785
  br label %2796

2796:                                             ; preds = %2791, %2795
  %.str.5.sink2008 = phi ptr [ @.str.5, %2795 ], [ @.str.2, %2791 ]
  store i32 %2786, ptr %841, align 4, !tbaa !5
  %2797 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2798 = load i32, ptr @test_count, align 4, !tbaa !5
  %2799 = load i32, ptr %730, align 4, !tbaa !5
  %2800 = call ptr @s2n_strerror(i32 noundef %2799, ptr noundef nonnull @.str.4) #12
  %2801 = load i32, ptr %730, align 4, !tbaa !5
  %2802 = call ptr @s2n_strerror_debug(i32 noundef %2801, ptr noundef nonnull @.str.4) #12
  %2803 = load i32, ptr %841, align 4, !tbaa !5
  %2804 = call ptr @strerror(i32 noundef %2803) #12
  %2805 = load i32, ptr %841, align 4, !tbaa !5
  %2806 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2797, ptr noundef nonnull %.str.5.sink2008, i32 noundef %2798, ptr noundef nonnull @.str.63, ptr noundef nonnull @.str.1, i32 noundef 317, ptr noundef %2800, ptr noundef %2802, ptr noundef %2804, i32 noundef %2805) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2807:                                             ; preds = %2780
  %2808 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %24) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #12
  %2809 = call i32 @s2n_stuffer_free(ptr noundef nonnull %23) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %23) #12
  %2810 = load i32, ptr @test_count, align 4, !tbaa !5
  %2811 = add nsw i32 %2810, 1
  store i32 %2811, ptr @test_count, align 4, !tbaa !5
  %2812 = call ptr @s2n_connection_new(i32 noundef 1) #12
  %2813 = icmp eq ptr %2812, null
  br i1 %2813, label %2814, label %2836

2814:                                             ; preds = %2807
  %2815 = load i32, ptr %841, align 4, !tbaa !5
  %2816 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2817 = call i32 @s2n_print_stacktrace(ptr noundef %2816) #12
  %2818 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2819 = trunc nuw i8 %2818 to i1
  br i1 %2819, label %2820, label %2824

2820:                                             ; preds = %2814
  %2821 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2822 = call i32 @fileno(ptr noundef %2821) #12
  %2823 = call i32 @isatty(i32 noundef %2822) #12
  %.not926 = icmp eq i32 %2823, 0
  br i1 %.not926, label %2824, label %2825

2824:                                             ; preds = %2820, %2814
  br label %2825

2825:                                             ; preds = %2820, %2824
  %.str.5.sink2017 = phi ptr [ @.str.5, %2824 ], [ @.str.2, %2820 ]
  store i32 %2815, ptr %841, align 4, !tbaa !5
  %2826 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2827 = load i32, ptr @test_count, align 4, !tbaa !5
  %2828 = load i32, ptr %730, align 4, !tbaa !5
  %2829 = call ptr @s2n_strerror(i32 noundef %2828, ptr noundef nonnull @.str.4) #12
  %2830 = load i32, ptr %730, align 4, !tbaa !5
  %2831 = call ptr @s2n_strerror_debug(i32 noundef %2830, ptr noundef nonnull @.str.4) #12
  %2832 = load i32, ptr %841, align 4, !tbaa !5
  %2833 = call ptr @strerror(i32 noundef %2832) #12
  %2834 = load i32, ptr %841, align 4, !tbaa !5
  %2835 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2826, ptr noundef nonnull %.str.5.sink2017, i32 noundef %2827, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.1, i32 noundef 326, ptr noundef %2829, ptr noundef %2831, ptr noundef %2833, i32 noundef %2834) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2836:                                             ; preds = %2807
  %2837 = getelementptr inbounds i8, ptr %2812, i64 220
  store i8 34, ptr %2837, align 4, !tbaa !25
  %2838 = getelementptr inbounds i8, ptr %2812, i64 232
  %2839 = load ptr, ptr %2838, align 8, !tbaa !49
  store ptr @s2n_tls13_aes_256_gcm_sha384, ptr %2839, align 8, !tbaa !50
  %2840 = load i32, ptr %1851, align 8, !tbaa !55
  %.not770 = icmp eq i32 %2840, 0
  br i1 %.not770, label %.thread1028, label %2841, !prof !56

2841:                                             ; preds = %2836
  %2842 = getelementptr inbounds i8, ptr %2812, i64 432
  %2843 = load ptr, ptr %3, align 8, !tbaa !57
  %2844 = zext i32 %2840 to i64
  %2845 = call ptr @s2n_ensure_memmove_trace(ptr noundef nonnull %2842, ptr noundef %2843, i64 noundef %2844) #12
  %.not771.not = icmp eq ptr %2845, null
  br i1 %.not771.not, label %2846, label %.thread1028

2846:                                             ; preds = %2841
  %2847 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  store ptr @.str.64, ptr %2847, align 8, !tbaa !60
  %2848 = call ptr @strrchr(ptr noundef nonnull dereferenceable(1) getelementptr inbounds (i8, ptr @.str.64, i64 21), i32 noundef 47) #16
  %.not772 = icmp eq ptr %2848, null
  %2849 = getelementptr inbounds i8, ptr %2848, i64 1
  %2850 = select i1 %.not772, ptr getelementptr inbounds (i8, ptr @.str.64, i64 21), ptr %2849
  %2851 = getelementptr inbounds i8, ptr %2847, i64 8
  store ptr %2850, ptr %2851, align 8, !tbaa !62
  store i32 402653193, ptr %730, align 4, !tbaa !5
  %2852 = call i32 @s2n_calculate_stacktrace() #12
  br label %.critedge995

.thread1028:                                      ; preds = %2841, %2836
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %25) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %25, i8 0, i64 40, i1 false)
  %2853 = load i32, ptr @test_count, align 4, !tbaa !5
  %2854 = add nsw i32 %2853, 1
  store i32 %2854, ptr @test_count, align 4, !tbaa !5
  %2855 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %25, i32 noundef 0) #12
  %2856 = icmp eq i32 %2855, -1
  br i1 %2856, label %2857, label %2879

2857:                                             ; preds = %.thread1028
  %2858 = load i32, ptr %841, align 4, !tbaa !5
  %2859 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2860 = call i32 @s2n_print_stacktrace(ptr noundef %2859) #12
  %2861 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2862 = trunc nuw i8 %2861 to i1
  br i1 %2862, label %2863, label %2867

2863:                                             ; preds = %2857
  %2864 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2865 = call i32 @fileno(ptr noundef %2864) #12
  %2866 = call i32 @isatty(i32 noundef %2865) #12
  %.not925 = icmp eq i32 %2866, 0
  br i1 %.not925, label %2867, label %2868

2867:                                             ; preds = %2863, %2857
  br label %2868

2868:                                             ; preds = %2863, %2867
  %.str.5.sink2026 = phi ptr [ @.str.5, %2867 ], [ @.str.2, %2863 ]
  store i32 %2858, ptr %841, align 4, !tbaa !5
  %2869 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2870 = load i32, ptr @test_count, align 4, !tbaa !5
  %2871 = load i32, ptr %730, align 4, !tbaa !5
  %2872 = call ptr @s2n_strerror(i32 noundef %2871, ptr noundef nonnull @.str.4) #12
  %2873 = load i32, ptr %730, align 4, !tbaa !5
  %2874 = call ptr @s2n_strerror_debug(i32 noundef %2873, ptr noundef nonnull @.str.4) #12
  %2875 = load i32, ptr %841, align 4, !tbaa !5
  %2876 = call ptr @strerror(i32 noundef %2875) #12
  %2877 = load i32, ptr %841, align 4, !tbaa !5
  %2878 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2869, ptr noundef nonnull %.str.5.sink2026, i32 noundef %2870, ptr noundef nonnull @.str.65, ptr noundef nonnull @.str.1, i32 noundef 333, ptr noundef %2872, ptr noundef %2874, ptr noundef %2876, i32 noundef %2877) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2879:                                             ; preds = %.thread1028
  %2880 = load i32, ptr @test_count, align 4, !tbaa !5
  %2881 = add nsw i32 %2880, 1
  store i32 %2881, ptr @test_count, align 4, !tbaa !5
  %2882 = call i32 @s2n_connection_set_io_stuffers(ptr noundef nonnull %25, ptr noundef nonnull %25, ptr noundef nonnull %2812) #12
  %2883 = icmp eq i32 %2882, -1
  br i1 %2883, label %2884, label %2906

2884:                                             ; preds = %2879
  %2885 = load i32, ptr %841, align 4, !tbaa !5
  %2886 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2887 = call i32 @s2n_print_stacktrace(ptr noundef %2886) #12
  %2888 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2889 = trunc nuw i8 %2888 to i1
  br i1 %2889, label %2890, label %2894

2890:                                             ; preds = %2884
  %2891 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2892 = call i32 @fileno(ptr noundef %2891) #12
  %2893 = call i32 @isatty(i32 noundef %2892) #12
  %.not924 = icmp eq i32 %2893, 0
  br i1 %.not924, label %2894, label %2895

2894:                                             ; preds = %2890, %2884
  br label %2895

2895:                                             ; preds = %2890, %2894
  %.str.5.sink2035 = phi ptr [ @.str.5, %2894 ], [ @.str.2, %2890 ]
  store i32 %2885, ptr %841, align 4, !tbaa !5
  %2896 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2897 = load i32, ptr @test_count, align 4, !tbaa !5
  %2898 = load i32, ptr %730, align 4, !tbaa !5
  %2899 = call ptr @s2n_strerror(i32 noundef %2898, ptr noundef nonnull @.str.4) #12
  %2900 = load i32, ptr %730, align 4, !tbaa !5
  %2901 = call ptr @s2n_strerror_debug(i32 noundef %2900, ptr noundef nonnull @.str.4) #12
  %2902 = load i32, ptr %841, align 4, !tbaa !5
  %2903 = call ptr @strerror(i32 noundef %2902) #12
  %2904 = load i32, ptr %841, align 4, !tbaa !5
  %2905 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2896, ptr noundef nonnull %.str.5.sink2035, i32 noundef %2897, ptr noundef nonnull @.str.66, ptr noundef nonnull @.str.1, i32 noundef 334, ptr noundef %2899, ptr noundef %2901, ptr noundef %2903, i32 noundef %2904) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2906:                                             ; preds = %2879
  %2907 = load i32, ptr @test_count, align 4, !tbaa !5
  %2908 = add nsw i32 %2907, 1
  store i32 %2908, ptr @test_count, align 4, !tbaa !5
  %2909 = call i32 @s2n_connection_request_key_update(ptr noundef nonnull %2812, i32 noundef 0) #12
  %2910 = icmp eq i32 %2909, -1
  br i1 %2910, label %2911, label %2933

2911:                                             ; preds = %2906
  %2912 = load i32, ptr %841, align 4, !tbaa !5
  %2913 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2914 = call i32 @s2n_print_stacktrace(ptr noundef %2913) #12
  %2915 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2916 = trunc nuw i8 %2915 to i1
  br i1 %2916, label %2917, label %2921

2917:                                             ; preds = %2911
  %2918 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2919 = call i32 @fileno(ptr noundef %2918) #12
  %2920 = call i32 @isatty(i32 noundef %2919) #12
  %.not923 = icmp eq i32 %2920, 0
  br i1 %.not923, label %2921, label %2922

2921:                                             ; preds = %2917, %2911
  br label %2922

2922:                                             ; preds = %2917, %2921
  %.str.5.sink2044 = phi ptr [ @.str.5, %2921 ], [ @.str.2, %2917 ]
  store i32 %2912, ptr %841, align 4, !tbaa !5
  %2923 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2924 = load i32, ptr @test_count, align 4, !tbaa !5
  %2925 = load i32, ptr %730, align 4, !tbaa !5
  %2926 = call ptr @s2n_strerror(i32 noundef %2925, ptr noundef nonnull @.str.4) #12
  %2927 = load i32, ptr %730, align 4, !tbaa !5
  %2928 = call ptr @s2n_strerror_debug(i32 noundef %2927, ptr noundef nonnull @.str.4) #12
  %2929 = load i32, ptr %841, align 4, !tbaa !5
  %2930 = call ptr @strerror(i32 noundef %2929) #12
  %2931 = load i32, ptr %841, align 4, !tbaa !5
  %2932 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2923, ptr noundef nonnull %.str.5.sink2044, i32 noundef %2924, ptr noundef nonnull @.str.67, ptr noundef nonnull @.str.1, i32 noundef 336, ptr noundef %2926, ptr noundef %2928, ptr noundef %2930, i32 noundef %2931) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2933:                                             ; preds = %2906
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %26) #12
  store i32 0, ptr %26, align 4, !tbaa !5
  %2934 = load i32, ptr @test_count, align 4, !tbaa !5
  %2935 = add nsw i32 %2934, 1
  store i32 %2935, ptr @test_count, align 4, !tbaa !5
  %2936 = call i32 @s2n_key_update_send(ptr noundef nonnull %2812, ptr noundef nonnull %26) #12
  %2937 = icmp eq i32 %2936, -1
  br i1 %2937, label %2938, label %2960

2938:                                             ; preds = %2933
  %2939 = load i32, ptr %841, align 4, !tbaa !5
  %2940 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2941 = call i32 @s2n_print_stacktrace(ptr noundef %2940) #12
  %2942 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2943 = trunc nuw i8 %2942 to i1
  br i1 %2943, label %2944, label %2948

2944:                                             ; preds = %2938
  %2945 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2946 = call i32 @fileno(ptr noundef %2945) #12
  %2947 = call i32 @isatty(i32 noundef %2946) #12
  %.not922 = icmp eq i32 %2947, 0
  br i1 %.not922, label %2948, label %2949

2948:                                             ; preds = %2944, %2938
  br label %2949

2949:                                             ; preds = %2944, %2948
  %.str.5.sink2053 = phi ptr [ @.str.5, %2948 ], [ @.str.2, %2944 ]
  store i32 %2939, ptr %841, align 4, !tbaa !5
  %2950 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2951 = load i32, ptr @test_count, align 4, !tbaa !5
  %2952 = load i32, ptr %730, align 4, !tbaa !5
  %2953 = call ptr @s2n_strerror(i32 noundef %2952, ptr noundef nonnull @.str.4) #12
  %2954 = load i32, ptr %730, align 4, !tbaa !5
  %2955 = call ptr @s2n_strerror_debug(i32 noundef %2954, ptr noundef nonnull @.str.4) #12
  %2956 = load i32, ptr %841, align 4, !tbaa !5
  %2957 = call ptr @strerror(i32 noundef %2956) #12
  %2958 = load i32, ptr %841, align 4, !tbaa !5
  %2959 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2950, ptr noundef nonnull %.str.5.sink2053, i32 noundef %2951, ptr noundef nonnull @.str.68, ptr noundef nonnull @.str.1, i32 noundef 339, ptr noundef %2953, ptr noundef %2955, ptr noundef %2957, i32 noundef %2958) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2960:                                             ; preds = %2933
  %2961 = load i32, ptr @test_count, align 4, !tbaa !5
  %2962 = add nsw i32 %2961, 1
  store i32 %2962, ptr @test_count, align 4, !tbaa !5
  %2963 = getelementptr inbounds i8, ptr %2812, i64 4176
  %2964 = call zeroext i1 @s2n_atomic_flag_test(ptr noundef nonnull %2963) #12
  br i1 %2964, label %2965, label %2987

2965:                                             ; preds = %2960
  %2966 = load i32, ptr %841, align 4, !tbaa !5
  %2967 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2968 = call i32 @s2n_print_stacktrace(ptr noundef %2967) #12
  %2969 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2970 = trunc nuw i8 %2969 to i1
  br i1 %2970, label %2971, label %2975

2971:                                             ; preds = %2965
  %2972 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2973 = call i32 @fileno(ptr noundef %2972) #12
  %2974 = call i32 @isatty(i32 noundef %2973) #12
  %.not773 = icmp eq i32 %2974, 0
  br i1 %.not773, label %2975, label %2976

2975:                                             ; preds = %2971, %2965
  br label %2976

2976:                                             ; preds = %2971, %2975
  %.str.5.sink2062 = phi ptr [ @.str.5, %2975 ], [ @.str.2, %2971 ]
  store i32 %2966, ptr %841, align 4, !tbaa !5
  %2977 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2978 = load i32, ptr @test_count, align 4, !tbaa !5
  %2979 = load i32, ptr %730, align 4, !tbaa !5
  %2980 = call ptr @s2n_strerror(i32 noundef %2979, ptr noundef nonnull @.str.4) #12
  %2981 = load i32, ptr %730, align 4, !tbaa !5
  %2982 = call ptr @s2n_strerror_debug(i32 noundef %2981, ptr noundef nonnull @.str.4) #12
  %2983 = load i32, ptr %841, align 4, !tbaa !5
  %2984 = call ptr @strerror(i32 noundef %2983) #12
  %2985 = load i32, ptr %841, align 4, !tbaa !5
  %2986 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2977, ptr noundef nonnull %.str.5.sink2062, i32 noundef %2978, ptr noundef nonnull @.str.69, ptr noundef nonnull @.str.1, i32 noundef 341, ptr noundef %2980, ptr noundef %2982, ptr noundef %2984, i32 noundef %2985) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2987:                                             ; preds = %2960
  %2988 = load i32, ptr @test_count, align 4, !tbaa !5
  %2989 = add nsw i32 %2988, 1
  store i32 %2989, ptr @test_count, align 4, !tbaa !5
  %2990 = load ptr, ptr %2838, align 8, !tbaa !49
  %2991 = getelementptr inbounds i8, ptr %2990, i64 920
  %bcmp = call i32 @bcmp(ptr noundef nonnull dereferenceable(8) %2991, ptr noundef nonnull dereferenceable(8) %4, i64 8)
  %2992 = icmp eq i32 %bcmp, 0
  br i1 %2992, label %3015, label %2993

2993:                                             ; preds = %2987
  %2994 = load i32, ptr %841, align 4, !tbaa !5
  %2995 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2996 = call i32 @s2n_print_stacktrace(ptr noundef %2995) #12
  %2997 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2998 = trunc nuw i8 %2997 to i1
  br i1 %2998, label %2999, label %3003

2999:                                             ; preds = %2993
  %3000 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3001 = call i32 @fileno(ptr noundef %3000) #12
  %3002 = call i32 @isatty(i32 noundef %3001) #12
  %.not774 = icmp eq i32 %3002, 0
  br i1 %.not774, label %3003, label %3004

3003:                                             ; preds = %2999, %2993
  br label %3004

3004:                                             ; preds = %2999, %3003
  %.str.5.sink2071 = phi ptr [ @.str.5, %3003 ], [ @.str.2, %2999 ]
  store i32 %2994, ptr %841, align 4, !tbaa !5
  %3005 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3006 = load i32, ptr @test_count, align 4, !tbaa !5
  %3007 = load i32, ptr %730, align 4, !tbaa !5
  %3008 = call ptr @s2n_strerror(i32 noundef %3007, ptr noundef nonnull @.str.4) #12
  %3009 = load i32, ptr %730, align 4, !tbaa !5
  %3010 = call ptr @s2n_strerror_debug(i32 noundef %3009, ptr noundef nonnull @.str.4) #12
  %3011 = load i32, ptr %841, align 4, !tbaa !5
  %3012 = call ptr @strerror(i32 noundef %3011) #12
  %3013 = load i32, ptr %841, align 4, !tbaa !5
  %3014 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3005, ptr noundef nonnull %.str.5.sink2071, i32 noundef %3006, ptr noundef nonnull @.str.70, ptr noundef nonnull @.str.1, i32 noundef 342, ptr noundef %3008, ptr noundef %3010, ptr noundef %3012, i32 noundef %3013) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3015:                                             ; preds = %2987
  %3016 = add nsw i32 %2988, 2
  store i32 %3016, ptr @test_count, align 4, !tbaa !5
  %3017 = getelementptr inbounds i8, ptr %25, i64 28
  %3018 = load i32, ptr %3017, align 4, !tbaa !21
  %3019 = getelementptr inbounds i8, ptr %25, i64 24
  %3020 = load i32, ptr %3019, align 8, !tbaa !24
  %.not775 = icmp eq i32 %3018, %3020
  br i1 %.not775, label %3021, label %3043

3021:                                             ; preds = %3015
  %3022 = load i32, ptr %841, align 4, !tbaa !5
  %3023 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3024 = call i32 @s2n_print_stacktrace(ptr noundef %3023) #12
  %3025 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3026 = trunc nuw i8 %3025 to i1
  br i1 %3026, label %3027, label %3031

3027:                                             ; preds = %3021
  %3028 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3029 = call i32 @fileno(ptr noundef %3028) #12
  %3030 = call i32 @isatty(i32 noundef %3029) #12
  %.not776 = icmp eq i32 %3030, 0
  br i1 %.not776, label %3031, label %3032

3031:                                             ; preds = %3027, %3021
  br label %3032

3032:                                             ; preds = %3027, %3031
  %.str.5.sink2080 = phi ptr [ @.str.5, %3031 ], [ @.str.2, %3027 ]
  store i32 %3022, ptr %841, align 4, !tbaa !5
  %3033 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3034 = load i32, ptr @test_count, align 4, !tbaa !5
  %3035 = load i32, ptr %730, align 4, !tbaa !5
  %3036 = call ptr @s2n_strerror(i32 noundef %3035, ptr noundef nonnull @.str.4) #12
  %3037 = load i32, ptr %730, align 4, !tbaa !5
  %3038 = call ptr @s2n_strerror_debug(i32 noundef %3037, ptr noundef nonnull @.str.4) #12
  %3039 = load i32, ptr %841, align 4, !tbaa !5
  %3040 = call ptr @strerror(i32 noundef %3039) #12
  %3041 = load i32, ptr %841, align 4, !tbaa !5
  %3042 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3033, ptr noundef nonnull %.str.5.sink2080, i32 noundef %3034, ptr noundef nonnull @.str.71, ptr noundef nonnull @.str.1, i32 noundef 343, ptr noundef %3036, ptr noundef %3038, ptr noundef %3040, i32 noundef %3041) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3043:                                             ; preds = %3015
  %3044 = add nsw i32 %2988, 3
  store i32 %3044, ptr @test_count, align 4, !tbaa !5
  %3045 = getelementptr inbounds i8, ptr %2812, i64 4180
  %3046 = load i8, ptr %3045, align 4, !tbaa !59
  %3047 = icmp eq i8 %3046, 1
  br i1 %3047, label %3070, label %3048

3048:                                             ; preds = %3043
  %3049 = load i32, ptr %841, align 4, !tbaa !5
  %3050 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3051 = call i32 @s2n_print_stacktrace(ptr noundef %3050) #12
  %3052 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3053 = trunc nuw i8 %3052 to i1
  br i1 %3053, label %3054, label %3058

3054:                                             ; preds = %3048
  %3055 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3056 = call i32 @fileno(ptr noundef %3055) #12
  %3057 = call i32 @isatty(i32 noundef %3056) #12
  %.not777 = icmp eq i32 %3057, 0
  br i1 %.not777, label %3058, label %3059

3058:                                             ; preds = %3054, %3048
  br label %3059

3059:                                             ; preds = %3054, %3058
  %.str.5.sink2089 = phi ptr [ @.str.5, %3058 ], [ @.str.2, %3054 ]
  store i32 %3049, ptr %841, align 4, !tbaa !5
  %3060 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3061 = load i32, ptr @test_count, align 4, !tbaa !5
  %3062 = load i32, ptr %730, align 4, !tbaa !5
  %3063 = call ptr @s2n_strerror(i32 noundef %3062, ptr noundef nonnull @.str.4) #12
  %3064 = load i32, ptr %730, align 4, !tbaa !5
  %3065 = call ptr @s2n_strerror_debug(i32 noundef %3064, ptr noundef nonnull @.str.4) #12
  %3066 = load i32, ptr %841, align 4, !tbaa !5
  %3067 = call ptr @strerror(i32 noundef %3066) #12
  %3068 = load i32, ptr %841, align 4, !tbaa !5
  %3069 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3060, ptr noundef nonnull %.str.5.sink2089, i32 noundef %3061, ptr noundef nonnull @.str.72, ptr noundef nonnull @.str.1, i32 noundef 344, ptr noundef %3063, ptr noundef %3065, ptr noundef %3067, i32 noundef %3068) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3070:                                             ; preds = %3043
  %3071 = add nsw i32 %2988, 4
  store i32 %3071, ptr @test_count, align 4, !tbaa !5
  %3072 = call i32 @s2n_stuffer_free(ptr noundef nonnull %25) #12
  %3073 = icmp eq i32 %3072, -1
  br i1 %3073, label %3074, label %3096

3074:                                             ; preds = %3070
  %3075 = load i32, ptr %841, align 4, !tbaa !5
  %3076 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3077 = call i32 @s2n_print_stacktrace(ptr noundef %3076) #12
  %3078 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3079 = trunc nuw i8 %3078 to i1
  br i1 %3079, label %3080, label %3084

3080:                                             ; preds = %3074
  %3081 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3082 = call i32 @fileno(ptr noundef %3081) #12
  %3083 = call i32 @isatty(i32 noundef %3082) #12
  %.not921 = icmp eq i32 %3083, 0
  br i1 %.not921, label %3084, label %3085

3084:                                             ; preds = %3080, %3074
  br label %3085

3085:                                             ; preds = %3080, %3084
  %.str.5.sink2098 = phi ptr [ @.str.5, %3084 ], [ @.str.2, %3080 ]
  store i32 %3075, ptr %841, align 4, !tbaa !5
  %3086 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3087 = load i32, ptr @test_count, align 4, !tbaa !5
  %3088 = load i32, ptr %730, align 4, !tbaa !5
  %3089 = call ptr @s2n_strerror(i32 noundef %3088, ptr noundef nonnull @.str.4) #12
  %3090 = load i32, ptr %730, align 4, !tbaa !5
  %3091 = call ptr @s2n_strerror_debug(i32 noundef %3090, ptr noundef nonnull @.str.4) #12
  %3092 = load i32, ptr %841, align 4, !tbaa !5
  %3093 = call ptr @strerror(i32 noundef %3092) #12
  %3094 = load i32, ptr %841, align 4, !tbaa !5
  %3095 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3086, ptr noundef nonnull %.str.5.sink2098, i32 noundef %3087, ptr noundef nonnull @.str.73, ptr noundef nonnull @.str.1, i32 noundef 346, ptr noundef %3089, ptr noundef %3091, ptr noundef %3093, i32 noundef %3094) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3096:                                             ; preds = %3070
  %3097 = load i32, ptr @test_count, align 4, !tbaa !5
  %3098 = add nsw i32 %3097, 1
  store i32 %3098, ptr @test_count, align 4, !tbaa !5
  %3099 = call i32 @s2n_connection_free(ptr noundef nonnull %2812) #12
  %3100 = icmp eq i32 %3099, -1
  br i1 %3100, label %3101, label %3123

3101:                                             ; preds = %3096
  %3102 = load i32, ptr %841, align 4, !tbaa !5
  %3103 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3104 = call i32 @s2n_print_stacktrace(ptr noundef %3103) #12
  %3105 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3106 = trunc nuw i8 %3105 to i1
  br i1 %3106, label %3107, label %3111

3107:                                             ; preds = %3101
  %3108 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3109 = call i32 @fileno(ptr noundef %3108) #12
  %3110 = call i32 @isatty(i32 noundef %3109) #12
  %.not920 = icmp eq i32 %3110, 0
  br i1 %.not920, label %3111, label %3112

3111:                                             ; preds = %3107, %3101
  br label %3112

3112:                                             ; preds = %3107, %3111
  %.str.5.sink2107 = phi ptr [ @.str.5, %3111 ], [ @.str.2, %3107 ]
  store i32 %3102, ptr %841, align 4, !tbaa !5
  %3113 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3114 = load i32, ptr @test_count, align 4, !tbaa !5
  %3115 = load i32, ptr %730, align 4, !tbaa !5
  %3116 = call ptr @s2n_strerror(i32 noundef %3115, ptr noundef nonnull @.str.4) #12
  %3117 = load i32, ptr %730, align 4, !tbaa !5
  %3118 = call ptr @s2n_strerror_debug(i32 noundef %3117, ptr noundef nonnull @.str.4) #12
  %3119 = load i32, ptr %841, align 4, !tbaa !5
  %3120 = call ptr @strerror(i32 noundef %3119) #12
  %3121 = load i32, ptr %841, align 4, !tbaa !5
  %3122 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3113, ptr noundef nonnull %.str.5.sink2107, i32 noundef %3114, ptr noundef nonnull @.str.59, ptr noundef nonnull @.str.1, i32 noundef 347, ptr noundef %3116, ptr noundef %3118, ptr noundef %3120, i32 noundef %3121) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3123:                                             ; preds = %3096
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %26) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %25) #12
  %3124 = load i32, ptr @test_count, align 4, !tbaa !5
  %3125 = add nsw i32 %3124, 1
  store i32 %3125, ptr @test_count, align 4, !tbaa !5
  %3126 = call ptr @s2n_connection_new(i32 noundef 1) #12
  %3127 = icmp eq ptr %3126, null
  br i1 %3127, label %3128, label %3150

3128:                                             ; preds = %3123
  %3129 = load i32, ptr %841, align 4, !tbaa !5
  %3130 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3131 = call i32 @s2n_print_stacktrace(ptr noundef %3130) #12
  %3132 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3133 = trunc nuw i8 %3132 to i1
  br i1 %3133, label %3134, label %3138

3134:                                             ; preds = %3128
  %3135 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3136 = call i32 @fileno(ptr noundef %3135) #12
  %3137 = call i32 @isatty(i32 noundef %3136) #12
  %.not919 = icmp eq i32 %3137, 0
  br i1 %.not919, label %3138, label %3139

3138:                                             ; preds = %3134, %3128
  br label %3139

3139:                                             ; preds = %3134, %3138
  %.str.5.sink2116 = phi ptr [ @.str.5, %3138 ], [ @.str.2, %3134 ]
  store i32 %3129, ptr %841, align 4, !tbaa !5
  %3140 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3141 = load i32, ptr @test_count, align 4, !tbaa !5
  %3142 = load i32, ptr %730, align 4, !tbaa !5
  %3143 = call ptr @s2n_strerror(i32 noundef %3142, ptr noundef nonnull @.str.4) #12
  %3144 = load i32, ptr %730, align 4, !tbaa !5
  %3145 = call ptr @s2n_strerror_debug(i32 noundef %3144, ptr noundef nonnull @.str.4) #12
  %3146 = load i32, ptr %841, align 4, !tbaa !5
  %3147 = call ptr @strerror(i32 noundef %3146) #12
  %3148 = load i32, ptr %841, align 4, !tbaa !5
  %3149 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3140, ptr noundef nonnull %.str.5.sink2116, i32 noundef %3141, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.1, i32 noundef 353, ptr noundef %3143, ptr noundef %3145, ptr noundef %3147, i32 noundef %3148) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3150:                                             ; preds = %3123
  %3151 = getelementptr inbounds i8, ptr %3126, i64 220
  store i8 34, ptr %3151, align 4, !tbaa !25
  %3152 = getelementptr inbounds i8, ptr %3126, i64 232
  %3153 = load ptr, ptr %3152, align 8, !tbaa !49
  store ptr @s2n_tls13_aes_256_gcm_sha384, ptr %3153, align 8, !tbaa !50
  %3154 = load i32, ptr %1851, align 8, !tbaa !55
  %.not778 = icmp eq i32 %3154, 0
  br i1 %.not778, label %.thread1036, label %3155, !prof !56

3155:                                             ; preds = %3150
  %3156 = getelementptr inbounds i8, ptr %3126, i64 432
  %3157 = load ptr, ptr %3, align 8, !tbaa !57
  %3158 = zext i32 %3154 to i64
  %3159 = call ptr @s2n_ensure_memmove_trace(ptr noundef nonnull %3156, ptr noundef %3157, i64 noundef %3158) #12
  %.not779.not = icmp eq ptr %3159, null
  br i1 %.not779.not, label %3160, label %.thread1036

3160:                                             ; preds = %3155
  %3161 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  store ptr @.str.74, ptr %3161, align 8, !tbaa !60
  %3162 = call ptr @strrchr(ptr noundef nonnull dereferenceable(1) getelementptr inbounds (i8, ptr @.str.74, i64 21), i32 noundef 47) #16
  %.not780 = icmp eq ptr %3162, null
  %3163 = getelementptr inbounds i8, ptr %3162, i64 1
  %3164 = select i1 %.not780, ptr getelementptr inbounds (i8, ptr @.str.74, i64 21), ptr %3163
  %3165 = getelementptr inbounds i8, ptr %3161, i64 8
  store ptr %3164, ptr %3165, align 8, !tbaa !62
  store i32 402653193, ptr %730, align 4, !tbaa !5
  %3166 = call i32 @s2n_calculate_stacktrace() #12
  br label %.critedge995

.thread1036:                                      ; preds = %3155, %3150
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %27) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %27, i8 0, i64 40, i1 false)
  %3167 = load i32, ptr @test_count, align 4, !tbaa !5
  %3168 = add nsw i32 %3167, 1
  store i32 %3168, ptr @test_count, align 4, !tbaa !5
  %3169 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %27, i32 noundef 0) #12
  %3170 = icmp eq i32 %3169, -1
  br i1 %3170, label %3171, label %3193

3171:                                             ; preds = %.thread1036
  %3172 = load i32, ptr %841, align 4, !tbaa !5
  %3173 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3174 = call i32 @s2n_print_stacktrace(ptr noundef %3173) #12
  %3175 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3176 = trunc nuw i8 %3175 to i1
  br i1 %3176, label %3177, label %3181

3177:                                             ; preds = %3171
  %3178 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3179 = call i32 @fileno(ptr noundef %3178) #12
  %3180 = call i32 @isatty(i32 noundef %3179) #12
  %.not918 = icmp eq i32 %3180, 0
  br i1 %.not918, label %3181, label %3182

3181:                                             ; preds = %3177, %3171
  br label %3182

3182:                                             ; preds = %3177, %3181
  %.str.5.sink2125 = phi ptr [ @.str.5, %3181 ], [ @.str.2, %3177 ]
  store i32 %3172, ptr %841, align 4, !tbaa !5
  %3183 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3184 = load i32, ptr @test_count, align 4, !tbaa !5
  %3185 = load i32, ptr %730, align 4, !tbaa !5
  %3186 = call ptr @s2n_strerror(i32 noundef %3185, ptr noundef nonnull @.str.4) #12
  %3187 = load i32, ptr %730, align 4, !tbaa !5
  %3188 = call ptr @s2n_strerror_debug(i32 noundef %3187, ptr noundef nonnull @.str.4) #12
  %3189 = load i32, ptr %841, align 4, !tbaa !5
  %3190 = call ptr @strerror(i32 noundef %3189) #12
  %3191 = load i32, ptr %841, align 4, !tbaa !5
  %3192 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3183, ptr noundef nonnull %.str.5.sink2125, i32 noundef %3184, ptr noundef nonnull @.str.65, ptr noundef nonnull @.str.1, i32 noundef 360, ptr noundef %3186, ptr noundef %3188, ptr noundef %3190, i32 noundef %3191) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3193:                                             ; preds = %.thread1036
  %3194 = load i32, ptr @test_count, align 4, !tbaa !5
  %3195 = add nsw i32 %3194, 1
  store i32 %3195, ptr @test_count, align 4, !tbaa !5
  %3196 = call i32 @s2n_connection_set_io_stuffers(ptr noundef nonnull %27, ptr noundef nonnull %27, ptr noundef nonnull %3126) #12
  %3197 = icmp eq i32 %3196, -1
  br i1 %3197, label %3198, label %3220

3198:                                             ; preds = %3193
  %3199 = load i32, ptr %841, align 4, !tbaa !5
  %3200 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3201 = call i32 @s2n_print_stacktrace(ptr noundef %3200) #12
  %3202 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3203 = trunc nuw i8 %3202 to i1
  br i1 %3203, label %3204, label %3208

3204:                                             ; preds = %3198
  %3205 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3206 = call i32 @fileno(ptr noundef %3205) #12
  %3207 = call i32 @isatty(i32 noundef %3206) #12
  %.not917 = icmp eq i32 %3207, 0
  br i1 %.not917, label %3208, label %3209

3208:                                             ; preds = %3204, %3198
  br label %3209

3209:                                             ; preds = %3204, %3208
  %.str.5.sink2134 = phi ptr [ @.str.5, %3208 ], [ @.str.2, %3204 ]
  store i32 %3199, ptr %841, align 4, !tbaa !5
  %3210 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3211 = load i32, ptr @test_count, align 4, !tbaa !5
  %3212 = load i32, ptr %730, align 4, !tbaa !5
  %3213 = call ptr @s2n_strerror(i32 noundef %3212, ptr noundef nonnull @.str.4) #12
  %3214 = load i32, ptr %730, align 4, !tbaa !5
  %3215 = call ptr @s2n_strerror_debug(i32 noundef %3214, ptr noundef nonnull @.str.4) #12
  %3216 = load i32, ptr %841, align 4, !tbaa !5
  %3217 = call ptr @strerror(i32 noundef %3216) #12
  %3218 = load i32, ptr %841, align 4, !tbaa !5
  %3219 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3210, ptr noundef nonnull %.str.5.sink2134, i32 noundef %3211, ptr noundef nonnull @.str.66, ptr noundef nonnull @.str.1, i32 noundef 361, ptr noundef %3213, ptr noundef %3215, ptr noundef %3217, i32 noundef %3218) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3220:                                             ; preds = %3193
  %3221 = getelementptr inbounds i8, ptr %3126, i64 4176
  call void @s2n_atomic_flag_clear(ptr noundef nonnull %3221) #12
  %3222 = load i32, ptr @test_count, align 4, !tbaa !5
  %3223 = add nsw i32 %3222, 1
  store i32 %3223, ptr @test_count, align 4, !tbaa !5
  %3224 = load ptr, ptr %3152, align 8, !tbaa !49
  %3225 = getelementptr inbounds i8, ptr %3224, i64 920
  %3226 = call i32 @s2n_write_uint64(i64 noundef %179, ptr noundef nonnull %3225)
  %3227 = call zeroext i1 @s2n_result_is_ok(i32 %3226)
  br i1 %3227, label %3250, label %3228

3228:                                             ; preds = %3220
  %3229 = load i32, ptr %841, align 4, !tbaa !5
  %3230 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3231 = call i32 @s2n_print_stacktrace(ptr noundef %3230) #12
  %3232 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3233 = trunc nuw i8 %3232 to i1
  br i1 %3233, label %3234, label %3238

3234:                                             ; preds = %3228
  %3235 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3236 = call i32 @fileno(ptr noundef %3235) #12
  %3237 = call i32 @isatty(i32 noundef %3236) #12
  %.not781 = icmp eq i32 %3237, 0
  br i1 %.not781, label %3238, label %3239

3238:                                             ; preds = %3234, %3228
  br label %3239

3239:                                             ; preds = %3234, %3238
  %.str.5.sink2143 = phi ptr [ @.str.5, %3238 ], [ @.str.2, %3234 ]
  store i32 %3229, ptr %841, align 4, !tbaa !5
  %3240 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3241 = load i32, ptr @test_count, align 4, !tbaa !5
  %3242 = load i32, ptr %730, align 4, !tbaa !5
  %3243 = call ptr @s2n_strerror(i32 noundef %3242, ptr noundef nonnull @.str.4) #12
  %3244 = load i32, ptr %730, align 4, !tbaa !5
  %3245 = call ptr @s2n_strerror_debug(i32 noundef %3244, ptr noundef nonnull @.str.4) #12
  %3246 = load i32, ptr %841, align 4, !tbaa !5
  %3247 = call ptr @strerror(i32 noundef %3246) #12
  %3248 = load i32, ptr %841, align 4, !tbaa !5
  %3249 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3240, ptr noundef nonnull %.str.5.sink2143, i32 noundef %3241, ptr noundef nonnull @.str.75, ptr noundef nonnull @.str.1, i32 noundef 364, ptr noundef %3243, ptr noundef %3245, ptr noundef %3247, i32 noundef %3248) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3250:                                             ; preds = %3220
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %28) #12
  store i32 0, ptr %28, align 4, !tbaa !5
  %3251 = load i32, ptr @test_count, align 4, !tbaa !5
  %3252 = add nsw i32 %3251, 1
  store i32 %3252, ptr @test_count, align 4, !tbaa !5
  %3253 = call i32 @s2n_key_update_send(ptr noundef nonnull %3126, ptr noundef nonnull %28) #12
  %3254 = icmp eq i32 %3253, -1
  br i1 %3254, label %3255, label %3277

3255:                                             ; preds = %3250
  %3256 = load i32, ptr %841, align 4, !tbaa !5
  %3257 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3258 = call i32 @s2n_print_stacktrace(ptr noundef %3257) #12
  %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) #12
  %3264 = call i32 @isatty(i32 noundef %3263) #12
  %.not916 = icmp eq i32 %3264, 0
  br i1 %.not916, label %3265, label %3266

3265:                                             ; preds = %3261, %3255
  br label %3266

3266:                                             ; preds = %3261, %3265
  %.str.5.sink2152 = phi ptr [ @.str.5, %3265 ], [ @.str.2, %3261 ]
  store i32 %3256, ptr %841, 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 %730, align 4, !tbaa !5
  %3270 = call ptr @s2n_strerror(i32 noundef %3269, ptr noundef nonnull @.str.4) #12
  %3271 = load i32, ptr %730, align 4, !tbaa !5
  %3272 = call ptr @s2n_strerror_debug(i32 noundef %3271, ptr noundef nonnull @.str.4) #12
  %3273 = load i32, ptr %841, align 4, !tbaa !5
  %3274 = call ptr @strerror(i32 noundef %3273) #12
  %3275 = load i32, ptr %841, align 4, !tbaa !5
  %3276 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3267, ptr noundef nonnull %.str.5.sink2152, i32 noundef %3268, ptr noundef nonnull @.str.68, ptr noundef nonnull @.str.1, i32 noundef 367, ptr noundef %3270, ptr noundef %3272, ptr noundef %3274, i32 noundef %3275) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3277:                                             ; preds = %3250
  %3278 = load i32, ptr @test_count, align 4, !tbaa !5
  %3279 = add nsw i32 %3278, 1
  store i32 %3279, ptr @test_count, align 4, !tbaa !5
  %3280 = call zeroext i1 @s2n_atomic_flag_test(ptr noundef nonnull %3221) #12
  br i1 %3280, label %3281, label %3303

3281:                                             ; preds = %3277
  %3282 = load i32, ptr %841, align 4, !tbaa !5
  %3283 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3284 = call i32 @s2n_print_stacktrace(ptr noundef %3283) #12
  %3285 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3286 = trunc nuw i8 %3285 to i1
  br i1 %3286, label %3287, label %3291

3287:                                             ; preds = %3281
  %3288 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3289 = call i32 @fileno(ptr noundef %3288) #12
  %3290 = call i32 @isatty(i32 noundef %3289) #12
  %.not782 = icmp eq i32 %3290, 0
  br i1 %.not782, label %3291, label %3292

3291:                                             ; preds = %3287, %3281
  br label %3292

3292:                                             ; preds = %3287, %3291
  %.str.5.sink2161 = phi ptr [ @.str.5, %3291 ], [ @.str.2, %3287 ]
  store i32 %3282, ptr %841, align 4, !tbaa !5
  %3293 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3294 = load i32, ptr @test_count, align 4, !tbaa !5
  %3295 = load i32, ptr %730, align 4, !tbaa !5
  %3296 = call ptr @s2n_strerror(i32 noundef %3295, ptr noundef nonnull @.str.4) #12
  %3297 = load i32, ptr %730, align 4, !tbaa !5
  %3298 = call ptr @s2n_strerror_debug(i32 noundef %3297, ptr noundef nonnull @.str.4) #12
  %3299 = load i32, ptr %841, align 4, !tbaa !5
  %3300 = call ptr @strerror(i32 noundef %3299) #12
  %3301 = load i32, ptr %841, align 4, !tbaa !5
  %3302 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3293, ptr noundef nonnull %.str.5.sink2161, i32 noundef %3294, ptr noundef nonnull @.str.69, ptr noundef nonnull @.str.1, i32 noundef 369, ptr noundef %3296, ptr noundef %3298, ptr noundef %3300, i32 noundef %3301) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3303:                                             ; preds = %3277
  %3304 = load i32, ptr @test_count, align 4, !tbaa !5
  %3305 = add nsw i32 %3304, 1
  store i32 %3305, ptr @test_count, align 4, !tbaa !5
  %3306 = load ptr, ptr %3152, align 8, !tbaa !49
  %3307 = getelementptr inbounds i8, ptr %3306, i64 920
  %bcmp783 = call i32 @bcmp(ptr noundef nonnull dereferenceable(8) %3307, ptr noundef nonnull dereferenceable(8) %4, i64 8)
  %3308 = icmp eq i32 %bcmp783, 0
  br i1 %3308, label %3331, label %3309

3309:                                             ; preds = %3303
  %3310 = load i32, ptr %841, align 4, !tbaa !5
  %3311 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3312 = call i32 @s2n_print_stacktrace(ptr noundef %3311) #12
  %3313 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3314 = trunc nuw i8 %3313 to i1
  br i1 %3314, label %3315, label %3319

3315:                                             ; preds = %3309
  %3316 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3317 = call i32 @fileno(ptr noundef %3316) #12
  %3318 = call i32 @isatty(i32 noundef %3317) #12
  %.not784 = icmp eq i32 %3318, 0
  br i1 %.not784, label %3319, label %3320

3319:                                             ; preds = %3315, %3309
  br label %3320

3320:                                             ; preds = %3315, %3319
  %.str.5.sink2170 = phi ptr [ @.str.5, %3319 ], [ @.str.2, %3315 ]
  store i32 %3310, ptr %841, align 4, !tbaa !5
  %3321 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3322 = load i32, ptr @test_count, align 4, !tbaa !5
  %3323 = load i32, ptr %730, align 4, !tbaa !5
  %3324 = call ptr @s2n_strerror(i32 noundef %3323, ptr noundef nonnull @.str.4) #12
  %3325 = load i32, ptr %730, align 4, !tbaa !5
  %3326 = call ptr @s2n_strerror_debug(i32 noundef %3325, ptr noundef nonnull @.str.4) #12
  %3327 = load i32, ptr %841, align 4, !tbaa !5
  %3328 = call ptr @strerror(i32 noundef %3327) #12
  %3329 = load i32, ptr %841, align 4, !tbaa !5
  %3330 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3321, ptr noundef nonnull %.str.5.sink2170, i32 noundef %3322, ptr noundef nonnull @.str.70, ptr noundef nonnull @.str.1, i32 noundef 370, ptr noundef %3324, ptr noundef %3326, ptr noundef %3328, i32 noundef %3329) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3331:                                             ; preds = %3303
  %3332 = add nsw i32 %3304, 2
  store i32 %3332, ptr @test_count, align 4, !tbaa !5
  %3333 = getelementptr inbounds i8, ptr %27, i64 28
  %3334 = load i32, ptr %3333, align 4, !tbaa !21
  %3335 = getelementptr inbounds i8, ptr %27, i64 24
  %3336 = load i32, ptr %3335, align 8, !tbaa !24
  %.not785 = icmp eq i32 %3334, %3336
  br i1 %.not785, label %3337, label %3359

3337:                                             ; preds = %3331
  %3338 = load i32, ptr %841, align 4, !tbaa !5
  %3339 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3340 = call i32 @s2n_print_stacktrace(ptr noundef %3339) #12
  %3341 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3342 = trunc nuw i8 %3341 to i1
  br i1 %3342, label %3343, label %3347

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

3347:                                             ; preds = %3343, %3337
  br label %3348

3348:                                             ; preds = %3343, %3347
  %.str.5.sink2179 = phi ptr [ @.str.5, %3347 ], [ @.str.2, %3343 ]
  store i32 %3338, ptr %841, align 4, !tbaa !5
  %3349 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3350 = load i32, ptr @test_count, align 4, !tbaa !5
  %3351 = load i32, ptr %730, align 4, !tbaa !5
  %3352 = call ptr @s2n_strerror(i32 noundef %3351, ptr noundef nonnull @.str.4) #12
  %3353 = load i32, ptr %730, align 4, !tbaa !5
  %3354 = call ptr @s2n_strerror_debug(i32 noundef %3353, ptr noundef nonnull @.str.4) #12
  %3355 = load i32, ptr %841, align 4, !tbaa !5
  %3356 = call ptr @strerror(i32 noundef %3355) #12
  %3357 = load i32, ptr %841, align 4, !tbaa !5
  %3358 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3349, ptr noundef nonnull %.str.5.sink2179, i32 noundef %3350, ptr noundef nonnull @.str.71, ptr noundef nonnull @.str.1, i32 noundef 371, ptr noundef %3352, ptr noundef %3354, ptr noundef %3356, i32 noundef %3357) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3359:                                             ; preds = %3331
  %3360 = add nsw i32 %3304, 3
  store i32 %3360, ptr @test_count, align 4, !tbaa !5
  %3361 = getelementptr inbounds i8, ptr %3126, i64 4180
  %3362 = load i8, ptr %3361, align 4, !tbaa !59
  %3363 = icmp eq i8 %3362, 1
  br i1 %3363, label %3386, label %3364

3364:                                             ; preds = %3359
  %3365 = load i32, ptr %841, align 4, !tbaa !5
  %3366 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3367 = call i32 @s2n_print_stacktrace(ptr noundef %3366) #12
  %3368 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3369 = trunc nuw i8 %3368 to i1
  br i1 %3369, label %3370, label %3374

3370:                                             ; preds = %3364
  %3371 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3372 = call i32 @fileno(ptr noundef %3371) #12
  %3373 = call i32 @isatty(i32 noundef %3372) #12
  %.not787 = icmp eq i32 %3373, 0
  br i1 %.not787, label %3374, label %3375

3374:                                             ; preds = %3370, %3364
  br label %3375

3375:                                             ; preds = %3370, %3374
  %.str.5.sink2188 = phi ptr [ @.str.5, %3374 ], [ @.str.2, %3370 ]
  store i32 %3365, ptr %841, align 4, !tbaa !5
  %3376 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3377 = load i32, ptr @test_count, align 4, !tbaa !5
  %3378 = load i32, ptr %730, align 4, !tbaa !5
  %3379 = call ptr @s2n_strerror(i32 noundef %3378, ptr noundef nonnull @.str.4) #12
  %3380 = load i32, ptr %730, align 4, !tbaa !5
  %3381 = call ptr @s2n_strerror_debug(i32 noundef %3380, ptr noundef nonnull @.str.4) #12
  %3382 = load i32, ptr %841, align 4, !tbaa !5
  %3383 = call ptr @strerror(i32 noundef %3382) #12
  %3384 = load i32, ptr %841, align 4, !tbaa !5
  %3385 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3376, ptr noundef nonnull %.str.5.sink2188, i32 noundef %3377, ptr noundef nonnull @.str.72, ptr noundef nonnull @.str.1, i32 noundef 372, ptr noundef %3379, ptr noundef %3381, ptr noundef %3383, i32 noundef %3384) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3386:                                             ; preds = %3359
  %3387 = add nsw i32 %3304, 4
  store i32 %3387, ptr @test_count, align 4, !tbaa !5
  %3388 = call i32 @s2n_stuffer_free(ptr noundef nonnull %27) #12
  %3389 = icmp eq i32 %3388, -1
  br i1 %3389, label %3390, label %3412

3390:                                             ; preds = %3386
  %3391 = load i32, ptr %841, align 4, !tbaa !5
  %3392 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3393 = call i32 @s2n_print_stacktrace(ptr noundef %3392) #12
  %3394 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3395 = trunc nuw i8 %3394 to i1
  br i1 %3395, label %3396, label %3400

3396:                                             ; preds = %3390
  %3397 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3398 = call i32 @fileno(ptr noundef %3397) #12
  %3399 = call i32 @isatty(i32 noundef %3398) #12
  %.not915 = icmp eq i32 %3399, 0
  br i1 %.not915, label %3400, label %3401

3400:                                             ; preds = %3396, %3390
  br label %3401

3401:                                             ; preds = %3396, %3400
  %.str.5.sink2197 = phi ptr [ @.str.5, %3400 ], [ @.str.2, %3396 ]
  store i32 %3391, ptr %841, align 4, !tbaa !5
  %3402 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3403 = load i32, ptr @test_count, align 4, !tbaa !5
  %3404 = load i32, ptr %730, align 4, !tbaa !5
  %3405 = call ptr @s2n_strerror(i32 noundef %3404, ptr noundef nonnull @.str.4) #12
  %3406 = load i32, ptr %730, align 4, !tbaa !5
  %3407 = call ptr @s2n_strerror_debug(i32 noundef %3406, ptr noundef nonnull @.str.4) #12
  %3408 = load i32, ptr %841, align 4, !tbaa !5
  %3409 = call ptr @strerror(i32 noundef %3408) #12
  %3410 = load i32, ptr %841, align 4, !tbaa !5
  %3411 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3402, ptr noundef nonnull %.str.5.sink2197, i32 noundef %3403, ptr noundef nonnull @.str.73, ptr noundef nonnull @.str.1, i32 noundef 374, ptr noundef %3405, ptr noundef %3407, ptr noundef %3409, i32 noundef %3410) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3412:                                             ; preds = %3386
  %3413 = load i32, ptr @test_count, align 4, !tbaa !5
  %3414 = add nsw i32 %3413, 1
  store i32 %3414, ptr @test_count, align 4, !tbaa !5
  %3415 = call i32 @s2n_connection_free(ptr noundef nonnull %3126) #12
  %3416 = icmp eq i32 %3415, -1
  br i1 %3416, label %3417, label %3439

3417:                                             ; preds = %3412
  %3418 = load i32, ptr %841, align 4, !tbaa !5
  %3419 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3420 = call i32 @s2n_print_stacktrace(ptr noundef %3419) #12
  %3421 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3422 = trunc nuw i8 %3421 to i1
  br i1 %3422, label %3423, label %3427

3423:                                             ; preds = %3417
  %3424 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3425 = call i32 @fileno(ptr noundef %3424) #12
  %3426 = call i32 @isatty(i32 noundef %3425) #12
  %.not914 = icmp eq i32 %3426, 0
  br i1 %.not914, label %3427, label %3428

3427:                                             ; preds = %3423, %3417
  br label %3428

3428:                                             ; preds = %3423, %3427
  %.str.5.sink2206 = phi ptr [ @.str.5, %3427 ], [ @.str.2, %3423 ]
  store i32 %3418, ptr %841, align 4, !tbaa !5
  %3429 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3430 = load i32, ptr @test_count, align 4, !tbaa !5
  %3431 = load i32, ptr %730, align 4, !tbaa !5
  %3432 = call ptr @s2n_strerror(i32 noundef %3431, ptr noundef nonnull @.str.4) #12
  %3433 = load i32, ptr %730, align 4, !tbaa !5
  %3434 = call ptr @s2n_strerror_debug(i32 noundef %3433, ptr noundef nonnull @.str.4) #12
  %3435 = load i32, ptr %841, align 4, !tbaa !5
  %3436 = call ptr @strerror(i32 noundef %3435) #12
  %3437 = load i32, ptr %841, align 4, !tbaa !5
  %3438 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3429, ptr noundef nonnull %.str.5.sink2206, i32 noundef %3430, ptr noundef nonnull @.str.59, ptr noundef nonnull @.str.1, i32 noundef 375, ptr noundef %3432, ptr noundef %3434, ptr noundef %3436, i32 noundef %3437) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3439:                                             ; preds = %3412
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %28) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %27) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %29) #12
  %3440 = call ptr @s2n_connection_new(i32 noundef 1) #12
  store ptr %3440, ptr %29, align 8, !tbaa !9
  %3441 = getelementptr inbounds i8, ptr %3440, i64 220
  store i8 33, ptr %3441, align 4, !tbaa !25
  %3442 = getelementptr inbounds i8, ptr %3440, i64 232
  %3443 = load ptr, ptr %3442, align 8, !tbaa !49
  store ptr @s2n_tls13_aes_256_gcm_sha384, ptr %3443, align 8, !tbaa !50
  %3444 = load i32, ptr %1851, align 8, !tbaa !55
  %.not788 = icmp eq i32 %3444, 0
  br i1 %.not788, label %.thread1044, label %3445, !prof !56

3445:                                             ; preds = %3439
  %3446 = load ptr, ptr %29, align 8, !tbaa !9
  %3447 = getelementptr inbounds i8, ptr %3446, i64 432
  %3448 = load ptr, ptr %3, align 8, !tbaa !57
  %3449 = zext i32 %3444 to i64
  %3450 = call ptr @s2n_ensure_memmove_trace(ptr noundef nonnull %3447, ptr noundef %3448, i64 noundef %3449) #12
  %.not789.not = icmp eq ptr %3450, null
  br i1 %.not789.not, label %.critedge999, label %.thread1044

.thread1044:                                      ; preds = %3445, %3439
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %30) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %30, i8 0, i64 40, i1 false)
  %3451 = load i32, ptr @test_count, align 4, !tbaa !5
  %3452 = add nsw i32 %3451, 1
  store i32 %3452, ptr @test_count, align 4, !tbaa !5
  %3453 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %30, i32 noundef 0) #12
  %3454 = icmp eq i32 %3453, -1
  br i1 %3454, label %3455, label %3477

3455:                                             ; preds = %.thread1044
  %3456 = load i32, ptr %841, align 4, !tbaa !5
  %3457 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3458 = call i32 @s2n_print_stacktrace(ptr noundef %3457) #12
  %3459 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3460 = trunc nuw i8 %3459 to i1
  br i1 %3460, label %3461, label %3465

3461:                                             ; preds = %3455
  %3462 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3463 = call i32 @fileno(ptr noundef %3462) #12
  %3464 = call i32 @isatty(i32 noundef %3463) #12
  %.not913 = icmp eq i32 %3464, 0
  br i1 %.not913, label %3465, label %3466

3465:                                             ; preds = %3461, %3455
  br label %3466

3466:                                             ; preds = %3461, %3465
  %.str.5.sink2215 = phi ptr [ @.str.5, %3465 ], [ @.str.2, %3461 ]
  store i32 %3456, ptr %841, align 4, !tbaa !5
  %3467 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3468 = load i32, ptr @test_count, align 4, !tbaa !5
  %3469 = load i32, ptr %730, align 4, !tbaa !5
  %3470 = call ptr @s2n_strerror(i32 noundef %3469, ptr noundef nonnull @.str.4) #12
  %3471 = load i32, ptr %730, align 4, !tbaa !5
  %3472 = call ptr @s2n_strerror_debug(i32 noundef %3471, ptr noundef nonnull @.str.4) #12
  %3473 = load i32, ptr %841, align 4, !tbaa !5
  %3474 = call ptr @strerror(i32 noundef %3473) #12
  %3475 = load i32, ptr %841, align 4, !tbaa !5
  %3476 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3467, ptr noundef nonnull %.str.5.sink2215, i32 noundef %3468, ptr noundef nonnull @.str.65, ptr noundef nonnull @.str.1, i32 noundef 389, ptr noundef %3470, ptr noundef %3472, ptr noundef %3474, i32 noundef %3475) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3477:                                             ; preds = %.thread1044
  %3478 = load i32, ptr @test_count, align 4, !tbaa !5
  %3479 = add nsw i32 %3478, 1
  store i32 %3479, ptr @test_count, align 4, !tbaa !5
  %3480 = load ptr, ptr %29, align 8, !tbaa !9
  %3481 = call i32 @s2n_connection_set_io_stuffers(ptr noundef nonnull %30, ptr noundef nonnull %30, ptr noundef %3480) #12
  %3482 = icmp eq i32 %3481, -1
  br i1 %3482, label %3483, label %3505

3483:                                             ; preds = %3477
  %3484 = load i32, ptr %841, align 4, !tbaa !5
  %3485 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3486 = call i32 @s2n_print_stacktrace(ptr noundef %3485) #12
  %3487 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3488 = trunc nuw i8 %3487 to i1
  br i1 %3488, label %3489, label %3493

3489:                                             ; preds = %3483
  %3490 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3491 = call i32 @fileno(ptr noundef %3490) #12
  %3492 = call i32 @isatty(i32 noundef %3491) #12
  %.not912 = icmp eq i32 %3492, 0
  br i1 %.not912, label %3493, label %3494

3493:                                             ; preds = %3489, %3483
  br label %3494

3494:                                             ; preds = %3489, %3493
  %.str.5.sink2224 = phi ptr [ @.str.5, %3493 ], [ @.str.2, %3489 ]
  store i32 %3484, ptr %841, align 4, !tbaa !5
  %3495 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3496 = load i32, ptr @test_count, align 4, !tbaa !5
  %3497 = load i32, ptr %730, align 4, !tbaa !5
  %3498 = call ptr @s2n_strerror(i32 noundef %3497, ptr noundef nonnull @.str.4) #12
  %3499 = load i32, ptr %730, align 4, !tbaa !5
  %3500 = call ptr @s2n_strerror_debug(i32 noundef %3499, ptr noundef nonnull @.str.4) #12
  %3501 = load i32, ptr %841, align 4, !tbaa !5
  %3502 = call ptr @strerror(i32 noundef %3501) #12
  %3503 = load i32, ptr %841, align 4, !tbaa !5
  %3504 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3495, ptr noundef nonnull %.str.5.sink2224, i32 noundef %3496, ptr noundef nonnull @.str.77, ptr noundef nonnull @.str.1, i32 noundef 390, ptr noundef %3498, ptr noundef %3500, ptr noundef %3502, i32 noundef %3503) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3505:                                             ; preds = %3477
  %3506 = load ptr, ptr %29, align 8, !tbaa !9
  %3507 = getelementptr inbounds i8, ptr %3506, i64 4176
  call void @s2n_atomic_flag_set(ptr noundef nonnull %3507) #12
  %3508 = load i32, ptr @test_count, align 4, !tbaa !5
  %3509 = add nsw i32 %3508, 1
  store i32 %3509, ptr @test_count, align 4, !tbaa !5
  %3510 = load ptr, ptr %29, align 8, !tbaa !9
  %3511 = getelementptr inbounds i8, ptr %3510, i64 232
  %3512 = load ptr, ptr %3511, align 8, !tbaa !49
  %3513 = getelementptr inbounds i8, ptr %3512, i64 920
  %3514 = call i32 @s2n_write_uint64(i64 noundef %179, ptr noundef nonnull %3513)
  %3515 = call zeroext i1 @s2n_result_is_ok(i32 %3514)
  br i1 %3515, label %3538, label %3516

3516:                                             ; preds = %3505
  %3517 = load i32, ptr %841, align 4, !tbaa !5
  %3518 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3519 = call i32 @s2n_print_stacktrace(ptr noundef %3518) #12
  %3520 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3521 = trunc nuw i8 %3520 to i1
  br i1 %3521, label %3522, label %3526

3522:                                             ; preds = %3516
  %3523 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3524 = call i32 @fileno(ptr noundef %3523) #12
  %3525 = call i32 @isatty(i32 noundef %3524) #12
  %.not791 = icmp eq i32 %3525, 0
  br i1 %.not791, label %3526, label %3527

3526:                                             ; preds = %3522, %3516
  br label %3527

3527:                                             ; preds = %3522, %3526
  %.str.5.sink2233 = phi ptr [ @.str.5, %3526 ], [ @.str.2, %3522 ]
  store i32 %3517, ptr %841, align 4, !tbaa !5
  %3528 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3529 = load i32, ptr @test_count, align 4, !tbaa !5
  %3530 = load i32, ptr %730, align 4, !tbaa !5
  %3531 = call ptr @s2n_strerror(i32 noundef %3530, ptr noundef nonnull @.str.4) #12
  %3532 = load i32, ptr %730, align 4, !tbaa !5
  %3533 = call ptr @s2n_strerror_debug(i32 noundef %3532, ptr noundef nonnull @.str.4) #12
  %3534 = load i32, ptr %841, align 4, !tbaa !5
  %3535 = call ptr @strerror(i32 noundef %3534) #12
  %3536 = load i32, ptr %841, align 4, !tbaa !5
  %3537 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3528, ptr noundef nonnull %.str.5.sink2233, i32 noundef %3529, ptr noundef nonnull @.str.78, ptr noundef nonnull @.str.1, i32 noundef 394, ptr noundef %3531, ptr noundef %3533, ptr noundef %3535, i32 noundef %3536) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3538:                                             ; preds = %3505
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %31) #12
  store i32 0, ptr %31, align 4, !tbaa !5
  %3539 = load i32, ptr @test_count, align 4, !tbaa !5
  %3540 = add nsw i32 %3539, 1
  store i32 %3540, ptr @test_count, align 4, !tbaa !5
  %3541 = load ptr, ptr %29, align 8, !tbaa !9
  %3542 = call i32 @s2n_key_update_send(ptr noundef %3541, ptr noundef nonnull %31) #12
  %3543 = icmp eq i32 %3542, -1
  br i1 %3543, label %3566, label %3544

3544:                                             ; preds = %3538
  %3545 = load i32, ptr %841, align 4, !tbaa !5
  %3546 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3547 = call i32 @s2n_print_stacktrace(ptr noundef %3546) #12
  %3548 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3549 = trunc nuw i8 %3548 to i1
  br i1 %3549, label %3550, label %3554

3550:                                             ; preds = %3544
  %3551 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3552 = call i32 @fileno(ptr noundef %3551) #12
  %3553 = call i32 @isatty(i32 noundef %3552) #12
  %.not792 = icmp eq i32 %3553, 0
  br i1 %.not792, label %3554, label %3555

3554:                                             ; preds = %3550, %3544
  br label %3555

3555:                                             ; preds = %3550, %3554
  %.str.5.sink2242 = phi ptr [ @.str.5, %3554 ], [ @.str.2, %3550 ]
  store i32 %3545, ptr %841, align 4, !tbaa !5
  %3556 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3557 = load i32, ptr @test_count, align 4, !tbaa !5
  %3558 = load i32, ptr %730, align 4, !tbaa !5
  %3559 = call ptr @s2n_strerror(i32 noundef %3558, ptr noundef nonnull @.str.4) #12
  %3560 = load i32, ptr %730, align 4, !tbaa !5
  %3561 = call ptr @s2n_strerror_debug(i32 noundef %3560, ptr noundef nonnull @.str.4) #12
  %3562 = load i32, ptr %841, align 4, !tbaa !5
  %3563 = call ptr @strerror(i32 noundef %3562) #12
  %3564 = load i32, ptr %841, align 4, !tbaa !5
  %3565 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3556, ptr noundef nonnull %.str.5.sink2242, i32 noundef %3557, ptr noundef nonnull @.str.79, ptr noundef nonnull @.str.1, i32 noundef 397, ptr noundef %3559, ptr noundef %3561, ptr noundef %3563, i32 noundef %3564) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3566:                                             ; preds = %3538
  %3567 = load i32, ptr @test_count, align 4, !tbaa !5
  %3568 = add nsw i32 %3567, 1
  store i32 %3568, ptr @test_count, align 4, !tbaa !5
  %3569 = load i32, ptr %730, align 4, !tbaa !5
  %3570 = icmp eq i32 %3569, 402653194
  br i1 %3570, label %3593, label %3571

3571:                                             ; preds = %3566
  %3572 = load i32, ptr %841, align 4, !tbaa !5
  %3573 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3574 = call i32 @s2n_print_stacktrace(ptr noundef %3573) #12
  %3575 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3576 = trunc nuw i8 %3575 to i1
  br i1 %3576, label %3577, label %3581

3577:                                             ; preds = %3571
  %3578 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3579 = call i32 @fileno(ptr noundef %3578) #12
  %3580 = call i32 @isatty(i32 noundef %3579) #12
  %.not793 = icmp eq i32 %3580, 0
  br i1 %.not793, label %3581, label %3582

3581:                                             ; preds = %3577, %3571
  br label %3582

3582:                                             ; preds = %3577, %3581
  %.str.5.sink2251 = phi ptr [ @.str.5, %3581 ], [ @.str.2, %3577 ]
  store i32 %3572, ptr %841, align 4, !tbaa !5
  %3583 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3584 = load i32, ptr @test_count, align 4, !tbaa !5
  %3585 = load i32, ptr %730, align 4, !tbaa !5
  %3586 = call ptr @s2n_strerror(i32 noundef %3585, ptr noundef nonnull @.str.4) #12
  %3587 = load i32, ptr %730, align 4, !tbaa !5
  %3588 = call ptr @s2n_strerror_debug(i32 noundef %3587, ptr noundef nonnull @.str.4) #12
  %3589 = load i32, ptr %841, align 4, !tbaa !5
  %3590 = call ptr @strerror(i32 noundef %3589) #12
  %3591 = load i32, ptr %841, align 4, !tbaa !5
  %3592 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3583, ptr noundef nonnull %.str.5.sink2251, i32 noundef %3584, ptr noundef nonnull @.str.80, ptr noundef nonnull @.str.1, i32 noundef 397, ptr noundef %3586, ptr noundef %3588, ptr noundef %3590, i32 noundef %3591) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3593:                                             ; preds = %3566
  %3594 = add nsw i32 %3567, 2
  store i32 %3594, ptr @test_count, align 4, !tbaa !5
  %3595 = call ptr @s2n_strerror_debug(i32 noundef 402653194, ptr noundef nonnull @.str.4) #12
  %3596 = icmp eq ptr %3595, null
  br i1 %3596, label %3597, label %3619

3597:                                             ; preds = %3593
  %3598 = load i32, ptr %841, align 4, !tbaa !5
  %3599 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3600 = call i32 @s2n_print_stacktrace(ptr noundef %3599) #12
  %3601 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3602 = trunc nuw i8 %3601 to i1
  br i1 %3602, label %3603, label %3607

3603:                                             ; preds = %3597
  %3604 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3605 = call i32 @fileno(ptr noundef %3604) #12
  %3606 = call i32 @isatty(i32 noundef %3605) #12
  %.not911 = icmp eq i32 %3606, 0
  br i1 %.not911, label %3607, label %3608

3607:                                             ; preds = %3603, %3597
  br label %3608

3608:                                             ; preds = %3603, %3607
  %.str.5.sink2260 = phi ptr [ @.str.5, %3607 ], [ @.str.2, %3603 ]
  store i32 %3598, ptr %841, align 4, !tbaa !5
  %3609 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3610 = load i32, ptr @test_count, align 4, !tbaa !5
  %3611 = load i32, ptr %730, align 4, !tbaa !5
  %3612 = call ptr @s2n_strerror(i32 noundef %3611, ptr noundef nonnull @.str.4) #12
  %3613 = load i32, ptr %730, align 4, !tbaa !5
  %3614 = call ptr @s2n_strerror_debug(i32 noundef %3613, ptr noundef nonnull @.str.4) #12
  %3615 = load i32, ptr %841, align 4, !tbaa !5
  %3616 = call ptr @strerror(i32 noundef %3615) #12
  %3617 = load i32, ptr %841, align 4, !tbaa !5
  %3618 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3609, ptr noundef nonnull %.str.5.sink2260, i32 noundef %3610, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 397, ptr noundef %3612, ptr noundef %3614, ptr noundef %3616, i32 noundef %3617) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3619:                                             ; preds = %3593
  store i32 0, ptr %730, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %841, align 4, !tbaa !5
  %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 = load ptr, ptr %29, align 8, !tbaa !9
  %3623 = getelementptr inbounds i8, ptr %3622, i64 232
  %3624 = load ptr, ptr %3623, align 8, !tbaa !49
  %3625 = getelementptr inbounds i8, ptr %3624, i64 920
  %bcmp794 = call i32 @bcmp(ptr noundef nonnull dereferenceable(8) %3625, ptr noundef nonnull dereferenceable(8) %4, i64 8)
  %3626 = icmp eq i32 %bcmp794, 0
  br i1 %3626, label %3627, label %3649

3627:                                             ; preds = %3619
  %3628 = load i32, ptr %841, align 4, !tbaa !5
  %3629 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3630 = call i32 @s2n_print_stacktrace(ptr noundef %3629) #12
  %3631 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3632 = trunc nuw i8 %3631 to i1
  br i1 %3632, label %3633, label %3637

3633:                                             ; preds = %3627
  %3634 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3635 = call i32 @fileno(ptr noundef %3634) #12
  %3636 = call i32 @isatty(i32 noundef %3635) #12
  %.not910 = icmp eq i32 %3636, 0
  br i1 %.not910, label %3637, label %3638

3637:                                             ; preds = %3633, %3627
  br label %3638

3638:                                             ; preds = %3633, %3637
  %.str.5.sink2269 = phi ptr [ @.str.5, %3637 ], [ @.str.2, %3633 ]
  store i32 %3628, ptr %841, align 4, !tbaa !5
  %3639 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3640 = load i32, ptr @test_count, align 4, !tbaa !5
  %3641 = load i32, ptr %730, align 4, !tbaa !5
  %3642 = call ptr @s2n_strerror(i32 noundef %3641, ptr noundef nonnull @.str.4) #12
  %3643 = load i32, ptr %730, align 4, !tbaa !5
  %3644 = call ptr @s2n_strerror_debug(i32 noundef %3643, ptr noundef nonnull @.str.4) #12
  %3645 = load i32, ptr %841, align 4, !tbaa !5
  %3646 = call ptr @strerror(i32 noundef %3645) #12
  %3647 = load i32, ptr %841, align 4, !tbaa !5
  %3648 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3639, ptr noundef nonnull %.str.5.sink2269, i32 noundef %3640, ptr noundef nonnull @.str.81, ptr noundef nonnull @.str.1, i32 noundef 401, ptr noundef %3642, ptr noundef %3644, ptr noundef %3646, i32 noundef %3647) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3649:                                             ; preds = %3619
  %3650 = add nsw i32 %3620, 2
  store i32 %3650, ptr @test_count, align 4, !tbaa !5
  %3651 = getelementptr inbounds i8, ptr %30, i64 28
  %3652 = load i32, ptr %3651, align 4, !tbaa !21
  %3653 = getelementptr inbounds i8, ptr %30, i64 24
  %3654 = load i32, ptr %3653, align 8, !tbaa !24
  %3655 = icmp eq i32 %3652, %3654
  br i1 %3655, label %3678, label %3656

3656:                                             ; preds = %3649
  %3657 = load i32, ptr %841, align 4, !tbaa !5
  %3658 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3659 = call i32 @s2n_print_stacktrace(ptr noundef %3658) #12
  %3660 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3661 = trunc nuw i8 %3660 to i1
  br i1 %3661, label %3662, label %3666

3662:                                             ; preds = %3656
  %3663 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3664 = call i32 @fileno(ptr noundef %3663) #12
  %3665 = call i32 @isatty(i32 noundef %3664) #12
  %.not795 = icmp eq i32 %3665, 0
  br i1 %.not795, label %3666, label %3667

3666:                                             ; preds = %3662, %3656
  br label %3667

3667:                                             ; preds = %3662, %3666
  %.str.5.sink2278 = phi ptr [ @.str.5, %3666 ], [ @.str.2, %3662 ]
  store i32 %3657, ptr %841, align 4, !tbaa !5
  %3668 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3669 = load i32, ptr @test_count, align 4, !tbaa !5
  %3670 = load i32, ptr %730, align 4, !tbaa !5
  %3671 = call ptr @s2n_strerror(i32 noundef %3670, ptr noundef nonnull @.str.4) #12
  %3672 = load i32, ptr %730, align 4, !tbaa !5
  %3673 = call ptr @s2n_strerror_debug(i32 noundef %3672, ptr noundef nonnull @.str.4) #12
  %3674 = load i32, ptr %841, align 4, !tbaa !5
  %3675 = call ptr @strerror(i32 noundef %3674) #12
  %3676 = load i32, ptr %841, align 4, !tbaa !5
  %3677 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3668, ptr noundef nonnull %.str.5.sink2278, i32 noundef %3669, ptr noundef nonnull @.str.82, ptr noundef nonnull @.str.1, i32 noundef 402, ptr noundef %3671, ptr noundef %3673, ptr noundef %3675, i32 noundef %3676) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3678:                                             ; preds = %3649
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %31) #12
  %3679 = call i32 @s2n_stuffer_free(ptr noundef nonnull %30) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %30) #12
  %3680 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %29) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #12
  %3681 = load i32, ptr @test_count, align 4, !tbaa !5
  %3682 = add nsw i32 %3681, 1
  store i32 %3682, ptr @test_count, align 4, !tbaa !5
  %3683 = call ptr @s2n_connection_new(i32 noundef 1) #12
  %3684 = icmp eq ptr %3683, null
  br i1 %3684, label %3685, label %3707

3685:                                             ; preds = %3678
  %3686 = load i32, ptr %841, align 4, !tbaa !5
  %3687 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3688 = call i32 @s2n_print_stacktrace(ptr noundef %3687) #12
  %3689 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3690 = trunc nuw i8 %3689 to i1
  br i1 %3690, label %3691, label %3695

3691:                                             ; preds = %3685
  %3692 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3693 = call i32 @fileno(ptr noundef %3692) #12
  %3694 = call i32 @isatty(i32 noundef %3693) #12
  %.not909 = icmp eq i32 %3694, 0
  br i1 %.not909, label %3695, label %3696

3695:                                             ; preds = %3691, %3685
  br label %3696

3696:                                             ; preds = %3691, %3695
  %.str.5.sink2287 = phi ptr [ @.str.5, %3695 ], [ @.str.2, %3691 ]
  store i32 %3686, ptr %841, align 4, !tbaa !5
  %3697 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3698 = load i32, ptr @test_count, align 4, !tbaa !5
  %3699 = load i32, ptr %730, align 4, !tbaa !5
  %3700 = call ptr @s2n_strerror(i32 noundef %3699, ptr noundef nonnull @.str.4) #12
  %3701 = load i32, ptr %730, align 4, !tbaa !5
  %3702 = call ptr @s2n_strerror_debug(i32 noundef %3701, ptr noundef nonnull @.str.4) #12
  %3703 = load i32, ptr %841, align 4, !tbaa !5
  %3704 = call ptr @strerror(i32 noundef %3703) #12
  %3705 = load i32, ptr %841, align 4, !tbaa !5
  %3706 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3697, ptr noundef nonnull %.str.5.sink2287, i32 noundef %3698, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.1, i32 noundef 408, ptr noundef %3700, ptr noundef %3702, ptr noundef %3704, i32 noundef %3705) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3707:                                             ; preds = %3678
  %3708 = getelementptr inbounds i8, ptr %3683, i64 220
  store i8 34, ptr %3708, align 4, !tbaa !25
  %3709 = getelementptr inbounds i8, ptr %3683, i64 232
  %3710 = load ptr, ptr %3709, align 8, !tbaa !49
  store ptr @s2n_tls13_aes_256_gcm_sha384, ptr %3710, align 8, !tbaa !50
  %3711 = load i32, ptr %1851, align 8, !tbaa !55
  %.not796 = icmp eq i32 %3711, 0
  br i1 %.not796, label %.thread1052, label %3712, !prof !56

3712:                                             ; preds = %3707
  %3713 = getelementptr inbounds i8, ptr %3683, i64 432
  %3714 = load ptr, ptr %3, align 8, !tbaa !57
  %3715 = zext i32 %3711 to i64
  %3716 = call ptr @s2n_ensure_memmove_trace(ptr noundef nonnull %3713, ptr noundef %3714, i64 noundef %3715) #12
  %.not797.not = icmp eq ptr %3716, null
  br i1 %.not797.not, label %3717, label %.thread1052

3717:                                             ; preds = %3712
  %3718 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  store ptr @.str.83, ptr %3718, align 8, !tbaa !60
  %3719 = call ptr @strrchr(ptr noundef nonnull dereferenceable(1) getelementptr inbounds (i8, ptr @.str.83, i64 21), i32 noundef 47) #16
  %.not798 = icmp eq ptr %3719, null
  %3720 = getelementptr inbounds i8, ptr %3719, i64 1
  %3721 = select i1 %.not798, ptr getelementptr inbounds (i8, ptr @.str.83, i64 21), ptr %3720
  %3722 = getelementptr inbounds i8, ptr %3718, i64 8
  store ptr %3721, ptr %3722, align 8, !tbaa !62
  store i32 402653193, ptr %730, align 4, !tbaa !5
  %3723 = call i32 @s2n_calculate_stacktrace() #12
  br label %.critedge995

.thread1052:                                      ; preds = %3712, %3707
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %32) #12
  store i64 72057594037927936, ptr %32, align 8
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %33) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %33, i8 0, i64 40, i1 false)
  %3724 = load i32, ptr @test_count, align 4, !tbaa !5
  %3725 = add nsw i32 %3724, 1
  store i32 %3725, ptr @test_count, align 4, !tbaa !5
  %3726 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %33, i32 noundef 0) #12
  %3727 = icmp eq i32 %3726, -1
  br i1 %3727, label %3728, label %3750

3728:                                             ; preds = %.thread1052
  %3729 = load i32, ptr %841, align 4, !tbaa !5
  %3730 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3731 = call i32 @s2n_print_stacktrace(ptr noundef %3730) #12
  %3732 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3733 = trunc nuw i8 %3732 to i1
  br i1 %3733, label %3734, label %3738

3734:                                             ; preds = %3728
  %3735 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3736 = call i32 @fileno(ptr noundef %3735) #12
  %3737 = call i32 @isatty(i32 noundef %3736) #12
  %.not908 = icmp eq i32 %3737, 0
  br i1 %.not908, label %3738, label %3739

3738:                                             ; preds = %3734, %3728
  br label %3739

3739:                                             ; preds = %3734, %3738
  %.str.5.sink2296 = phi ptr [ @.str.5, %3738 ], [ @.str.2, %3734 ]
  store i32 %3729, ptr %841, align 4, !tbaa !5
  %3740 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3741 = load i32, ptr @test_count, align 4, !tbaa !5
  %3742 = load i32, ptr %730, align 4, !tbaa !5
  %3743 = call ptr @s2n_strerror(i32 noundef %3742, ptr noundef nonnull @.str.4) #12
  %3744 = load i32, ptr %730, align 4, !tbaa !5
  %3745 = call ptr @s2n_strerror_debug(i32 noundef %3744, ptr noundef nonnull @.str.4) #12
  %3746 = load i32, ptr %841, align 4, !tbaa !5
  %3747 = call ptr @strerror(i32 noundef %3746) #12
  %3748 = load i32, ptr %841, align 4, !tbaa !5
  %3749 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3740, ptr noundef nonnull %.str.5.sink2296, i32 noundef %3741, ptr noundef nonnull @.str.65, ptr noundef nonnull @.str.1, i32 noundef 416, ptr noundef %3743, ptr noundef %3745, ptr noundef %3747, i32 noundef %3748) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3750:                                             ; preds = %.thread1052
  %3751 = load i32, ptr @test_count, align 4, !tbaa !5
  %3752 = add nsw i32 %3751, 1
  store i32 %3752, ptr @test_count, align 4, !tbaa !5
  %3753 = call i32 @s2n_connection_set_io_stuffers(ptr noundef nonnull %33, ptr noundef nonnull %33, ptr noundef nonnull %3683) #12
  %3754 = icmp eq i32 %3753, -1
  br i1 %3754, label %3755, label %3777

3755:                                             ; preds = %3750
  %3756 = load i32, ptr %841, align 4, !tbaa !5
  %3757 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3758 = call i32 @s2n_print_stacktrace(ptr noundef %3757) #12
  %3759 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3760 = trunc nuw i8 %3759 to i1
  br i1 %3760, label %3761, label %3765

3761:                                             ; preds = %3755
  %3762 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3763 = call i32 @fileno(ptr noundef %3762) #12
  %3764 = call i32 @isatty(i32 noundef %3763) #12
  %.not907 = icmp eq i32 %3764, 0
  br i1 %.not907, label %3765, label %3766

3765:                                             ; preds = %3761, %3755
  br label %3766

3766:                                             ; preds = %3761, %3765
  %.str.5.sink2305 = phi ptr [ @.str.5, %3765 ], [ @.str.2, %3761 ]
  store i32 %3756, ptr %841, align 4, !tbaa !5
  %3767 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3768 = load i32, ptr @test_count, align 4, !tbaa !5
  %3769 = load i32, ptr %730, align 4, !tbaa !5
  %3770 = call ptr @s2n_strerror(i32 noundef %3769, ptr noundef nonnull @.str.4) #12
  %3771 = load i32, ptr %730, align 4, !tbaa !5
  %3772 = call ptr @s2n_strerror_debug(i32 noundef %3771, ptr noundef nonnull @.str.4) #12
  %3773 = load i32, ptr %841, align 4, !tbaa !5
  %3774 = call ptr @strerror(i32 noundef %3773) #12
  %3775 = load i32, ptr %841, align 4, !tbaa !5
  %3776 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3767, ptr noundef nonnull %.str.5.sink2305, i32 noundef %3768, ptr noundef nonnull @.str.66, ptr noundef nonnull @.str.1, i32 noundef 417, ptr noundef %3770, ptr noundef %3772, ptr noundef %3774, i32 noundef %3775) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3777:                                             ; preds = %3750
  %3778 = load ptr, ptr %3709, align 8, !tbaa !49
  %3779 = getelementptr inbounds i8, ptr %3778, i64 927
  store i8 1, ptr %3779, align 1, !tbaa !20
  %3780 = getelementptr inbounds i8, ptr %3683, i64 4176
  call void @s2n_atomic_flag_clear(ptr noundef nonnull %3780) #12
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %34) #12
  store i32 0, ptr %34, align 4, !tbaa !5
  %3781 = load i32, ptr @test_count, align 4, !tbaa !5
  %3782 = add nsw i32 %3781, 1
  store i32 %3782, ptr @test_count, align 4, !tbaa !5
  %3783 = call i32 @s2n_key_update_send(ptr noundef nonnull %3683, ptr noundef nonnull %34) #12
  %3784 = icmp eq i32 %3783, -1
  br i1 %3784, label %3785, label %3807

3785:                                             ; preds = %3777
  %3786 = load i32, ptr %841, align 4, !tbaa !5
  %3787 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3788 = call i32 @s2n_print_stacktrace(ptr noundef %3787) #12
  %3789 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3790 = trunc nuw i8 %3789 to i1
  br i1 %3790, label %3791, label %3795

3791:                                             ; preds = %3785
  %3792 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3793 = call i32 @fileno(ptr noundef %3792) #12
  %3794 = call i32 @isatty(i32 noundef %3793) #12
  %.not906 = icmp eq i32 %3794, 0
  br i1 %.not906, label %3795, label %3796

3795:                                             ; preds = %3791, %3785
  br label %3796

3796:                                             ; preds = %3791, %3795
  %.str.5.sink2314 = phi ptr [ @.str.5, %3795 ], [ @.str.2, %3791 ]
  store i32 %3786, ptr %841, align 4, !tbaa !5
  %3797 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3798 = load i32, ptr @test_count, align 4, !tbaa !5
  %3799 = load i32, ptr %730, align 4, !tbaa !5
  %3800 = call ptr @s2n_strerror(i32 noundef %3799, ptr noundef nonnull @.str.4) #12
  %3801 = load i32, ptr %730, align 4, !tbaa !5
  %3802 = call ptr @s2n_strerror_debug(i32 noundef %3801, ptr noundef nonnull @.str.4) #12
  %3803 = load i32, ptr %841, align 4, !tbaa !5
  %3804 = call ptr @strerror(i32 noundef %3803) #12
  %3805 = load i32, ptr %841, align 4, !tbaa !5
  %3806 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3797, ptr noundef nonnull %.str.5.sink2314, i32 noundef %3798, ptr noundef nonnull @.str.68, ptr noundef nonnull @.str.1, i32 noundef 424, ptr noundef %3800, ptr noundef %3802, ptr noundef %3804, i32 noundef %3805) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3807:                                             ; preds = %3777
  %3808 = load i32, ptr @test_count, align 4, !tbaa !5
  %3809 = add nsw i32 %3808, 1
  store i32 %3809, ptr @test_count, align 4, !tbaa !5
  %3810 = call zeroext i1 @s2n_atomic_flag_test(ptr noundef nonnull %3780) #12
  br i1 %3810, label %3811, label %3833

3811:                                             ; preds = %3807
  %3812 = load i32, ptr %841, align 4, !tbaa !5
  %3813 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3814 = call i32 @s2n_print_stacktrace(ptr noundef %3813) #12
  %3815 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3816 = trunc nuw i8 %3815 to i1
  br i1 %3816, label %3817, label %3821

3817:                                             ; preds = %3811
  %3818 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3819 = call i32 @fileno(ptr noundef %3818) #12
  %3820 = call i32 @isatty(i32 noundef %3819) #12
  %.not799 = icmp eq i32 %3820, 0
  br i1 %.not799, label %3821, label %3822

3821:                                             ; preds = %3817, %3811
  br label %3822

3822:                                             ; preds = %3817, %3821
  %.str.5.sink2323 = phi ptr [ @.str.5, %3821 ], [ @.str.2, %3817 ]
  store i32 %3812, ptr %841, align 4, !tbaa !5
  %3823 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3824 = load i32, ptr @test_count, align 4, !tbaa !5
  %3825 = load i32, ptr %730, align 4, !tbaa !5
  %3826 = call ptr @s2n_strerror(i32 noundef %3825, ptr noundef nonnull @.str.4) #12
  %3827 = load i32, ptr %730, align 4, !tbaa !5
  %3828 = call ptr @s2n_strerror_debug(i32 noundef %3827, ptr noundef nonnull @.str.4) #12
  %3829 = load i32, ptr %841, align 4, !tbaa !5
  %3830 = call ptr @strerror(i32 noundef %3829) #12
  %3831 = load i32, ptr %841, align 4, !tbaa !5
  %3832 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3823, ptr noundef nonnull %.str.5.sink2323, i32 noundef %3824, ptr noundef nonnull @.str.69, ptr noundef nonnull @.str.1, i32 noundef 426, ptr noundef %3826, ptr noundef %3828, ptr noundef %3830, i32 noundef %3831) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3833:                                             ; preds = %3807
  %3834 = load i32, ptr @test_count, align 4, !tbaa !5
  %3835 = add nsw i32 %3834, 1
  store i32 %3835, ptr @test_count, align 4, !tbaa !5
  %3836 = load ptr, ptr %3709, align 8, !tbaa !49
  %3837 = getelementptr inbounds i8, ptr %3836, i64 920
  %bcmp800 = call i32 @bcmp(ptr noundef nonnull dereferenceable(8) %3837, ptr noundef nonnull dereferenceable(8) %32, i64 8)
  %3838 = icmp eq i32 %bcmp800, 0
  br i1 %3838, label %3861, label %3839

3839:                                             ; preds = %3833
  %3840 = load i32, ptr %841, align 4, !tbaa !5
  %3841 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3842 = call i32 @s2n_print_stacktrace(ptr noundef %3841) #12
  %3843 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3844 = trunc nuw i8 %3843 to i1
  br i1 %3844, label %3845, label %3849

3845:                                             ; preds = %3839
  %3846 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3847 = call i32 @fileno(ptr noundef %3846) #12
  %3848 = call i32 @isatty(i32 noundef %3847) #12
  %.not801 = icmp eq i32 %3848, 0
  br i1 %.not801, label %3849, label %3850

3849:                                             ; preds = %3845, %3839
  br label %3850

3850:                                             ; preds = %3845, %3849
  %.str.5.sink2332 = phi ptr [ @.str.5, %3849 ], [ @.str.2, %3845 ]
  store i32 %3840, ptr %841, align 4, !tbaa !5
  %3851 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3852 = load i32, ptr @test_count, align 4, !tbaa !5
  %3853 = load i32, ptr %730, align 4, !tbaa !5
  %3854 = call ptr @s2n_strerror(i32 noundef %3853, ptr noundef nonnull @.str.4) #12
  %3855 = load i32, ptr %730, align 4, !tbaa !5
  %3856 = call ptr @s2n_strerror_debug(i32 noundef %3855, ptr noundef nonnull @.str.4) #12
  %3857 = load i32, ptr %841, align 4, !tbaa !5
  %3858 = call ptr @strerror(i32 noundef %3857) #12
  %3859 = load i32, ptr %841, align 4, !tbaa !5
  %3860 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3851, ptr noundef nonnull %.str.5.sink2332, i32 noundef %3852, ptr noundef nonnull @.str.84, ptr noundef nonnull @.str.1, i32 noundef 427, ptr noundef %3854, ptr noundef %3856, ptr noundef %3858, i32 noundef %3859) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3861:                                             ; preds = %3833
  %3862 = add nsw i32 %3834, 2
  store i32 %3862, ptr @test_count, align 4, !tbaa !5
  %3863 = getelementptr inbounds i8, ptr %33, i64 28
  %3864 = load i32, ptr %3863, align 4, !tbaa !21
  %3865 = getelementptr inbounds i8, ptr %33, i64 24
  %3866 = load i32, ptr %3865, align 8, !tbaa !24
  %3867 = icmp eq i32 %3864, %3866
  br i1 %3867, label %3890, label %3868

3868:                                             ; preds = %3861
  %3869 = load i32, ptr %841, align 4, !tbaa !5
  %3870 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3871 = call i32 @s2n_print_stacktrace(ptr noundef %3870) #12
  %3872 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3873 = trunc nuw i8 %3872 to i1
  br i1 %3873, label %3874, label %3878

3874:                                             ; preds = %3868
  %3875 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3876 = call i32 @fileno(ptr noundef %3875) #12
  %3877 = call i32 @isatty(i32 noundef %3876) #12
  %.not802 = icmp eq i32 %3877, 0
  br i1 %.not802, label %3878, label %3879

3878:                                             ; preds = %3874, %3868
  br label %3879

3879:                                             ; preds = %3874, %3878
  %.str.5.sink2341 = phi ptr [ @.str.5, %3878 ], [ @.str.2, %3874 ]
  store i32 %3869, ptr %841, align 4, !tbaa !5
  %3880 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3881 = load i32, ptr @test_count, align 4, !tbaa !5
  %3882 = load i32, ptr %730, align 4, !tbaa !5
  %3883 = call ptr @s2n_strerror(i32 noundef %3882, ptr noundef nonnull @.str.4) #12
  %3884 = load i32, ptr %730, align 4, !tbaa !5
  %3885 = call ptr @s2n_strerror_debug(i32 noundef %3884, ptr noundef nonnull @.str.4) #12
  %3886 = load i32, ptr %841, align 4, !tbaa !5
  %3887 = call ptr @strerror(i32 noundef %3886) #12
  %3888 = load i32, ptr %841, align 4, !tbaa !5
  %3889 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3880, ptr noundef nonnull %.str.5.sink2341, i32 noundef %3881, ptr noundef nonnull @.str.85, ptr noundef nonnull @.str.1, i32 noundef 428, ptr noundef %3883, ptr noundef %3885, ptr noundef %3887, i32 noundef %3888) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3890:                                             ; preds = %3861
  %3891 = add nsw i32 %3834, 3
  store i32 %3891, ptr @test_count, align 4, !tbaa !5
  %3892 = call i32 @s2n_stuffer_free(ptr noundef nonnull %33) #12
  %3893 = icmp eq i32 %3892, -1
  br i1 %3893, label %3894, label %3916

3894:                                             ; preds = %3890
  %3895 = load i32, ptr %841, align 4, !tbaa !5
  %3896 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3897 = call i32 @s2n_print_stacktrace(ptr noundef %3896) #12
  %3898 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3899 = trunc nuw i8 %3898 to i1
  br i1 %3899, label %3900, label %3904

3900:                                             ; preds = %3894
  %3901 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3902 = call i32 @fileno(ptr noundef %3901) #12
  %3903 = call i32 @isatty(i32 noundef %3902) #12
  %.not905 = icmp eq i32 %3903, 0
  br i1 %.not905, label %3904, label %3905

3904:                                             ; preds = %3900, %3894
  br label %3905

3905:                                             ; preds = %3900, %3904
  %.str.5.sink2350 = phi ptr [ @.str.5, %3904 ], [ @.str.2, %3900 ]
  store i32 %3895, ptr %841, align 4, !tbaa !5
  %3906 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3907 = load i32, ptr @test_count, align 4, !tbaa !5
  %3908 = load i32, ptr %730, align 4, !tbaa !5
  %3909 = call ptr @s2n_strerror(i32 noundef %3908, ptr noundef nonnull @.str.4) #12
  %3910 = load i32, ptr %730, align 4, !tbaa !5
  %3911 = call ptr @s2n_strerror_debug(i32 noundef %3910, ptr noundef nonnull @.str.4) #12
  %3912 = load i32, ptr %841, align 4, !tbaa !5
  %3913 = call ptr @strerror(i32 noundef %3912) #12
  %3914 = load i32, ptr %841, align 4, !tbaa !5
  %3915 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3906, ptr noundef nonnull %.str.5.sink2350, i32 noundef %3907, ptr noundef nonnull @.str.73, ptr noundef nonnull @.str.1, i32 noundef 430, ptr noundef %3909, ptr noundef %3911, ptr noundef %3913, i32 noundef %3914) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3916:                                             ; preds = %3890
  %3917 = load i32, ptr @test_count, align 4, !tbaa !5
  %3918 = add nsw i32 %3917, 1
  store i32 %3918, ptr @test_count, align 4, !tbaa !5
  %3919 = call i32 @s2n_connection_free(ptr noundef nonnull %3683) #12
  %3920 = icmp eq i32 %3919, -1
  br i1 %3920, label %3921, label %3943

3921:                                             ; preds = %3916
  %3922 = load i32, ptr %841, align 4, !tbaa !5
  %3923 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3924 = call i32 @s2n_print_stacktrace(ptr noundef %3923) #12
  %3925 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3926 = trunc nuw i8 %3925 to i1
  br i1 %3926, label %3927, label %3931

3927:                                             ; preds = %3921
  %3928 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3929 = call i32 @fileno(ptr noundef %3928) #12
  %3930 = call i32 @isatty(i32 noundef %3929) #12
  %.not904 = icmp eq i32 %3930, 0
  br i1 %.not904, label %3931, label %3932

3931:                                             ; preds = %3927, %3921
  br label %3932

3932:                                             ; preds = %3927, %3931
  %.str.5.sink2359 = phi ptr [ @.str.5, %3931 ], [ @.str.2, %3927 ]
  store i32 %3922, ptr %841, align 4, !tbaa !5
  %3933 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3934 = load i32, ptr @test_count, align 4, !tbaa !5
  %3935 = load i32, ptr %730, align 4, !tbaa !5
  %3936 = call ptr @s2n_strerror(i32 noundef %3935, ptr noundef nonnull @.str.4) #12
  %3937 = load i32, ptr %730, align 4, !tbaa !5
  %3938 = call ptr @s2n_strerror_debug(i32 noundef %3937, ptr noundef nonnull @.str.4) #12
  %3939 = load i32, ptr %841, align 4, !tbaa !5
  %3940 = call ptr @strerror(i32 noundef %3939) #12
  %3941 = load i32, ptr %841, align 4, !tbaa !5
  %3942 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3933, ptr noundef nonnull %.str.5.sink2359, i32 noundef %3934, ptr noundef nonnull @.str.59, ptr noundef nonnull @.str.1, i32 noundef 431, ptr noundef %3936, ptr noundef %3938, ptr noundef %3940, i32 noundef %3941) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3943:                                             ; preds = %3916
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %34) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %33) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %32) #12
  %3944 = add i64 %179, -100
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %35) #12
  %3945 = call ptr @s2n_connection_new(i32 noundef 1) #12
  store ptr %3945, ptr %35, align 8, !tbaa !9
  %3946 = load i32, ptr @test_count, align 4, !tbaa !5
  %3947 = add nsw i32 %3946, 1
  store i32 %3947, ptr @test_count, align 4, !tbaa !5
  %3948 = icmp eq ptr %3945, null
  br i1 %3948, label %3949, label %3971

3949:                                             ; preds = %3943
  %3950 = load i32, ptr %841, align 4, !tbaa !5
  %3951 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3952 = call i32 @s2n_print_stacktrace(ptr noundef %3951) #12
  %3953 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3954 = trunc nuw i8 %3953 to i1
  br i1 %3954, label %3955, label %3959

3955:                                             ; preds = %3949
  %3956 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3957 = call i32 @fileno(ptr noundef %3956) #12
  %3958 = call i32 @isatty(i32 noundef %3957) #12
  %.not903 = icmp eq i32 %3958, 0
  br i1 %.not903, label %3959, label %3960

3959:                                             ; preds = %3955, %3949
  br label %3960

3960:                                             ; preds = %3955, %3959
  %.str.5.sink2368 = phi ptr [ @.str.5, %3959 ], [ @.str.2, %3955 ]
  store i32 %3950, ptr %841, align 4, !tbaa !5
  %3961 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3962 = load i32, ptr @test_count, align 4, !tbaa !5
  %3963 = load i32, ptr %730, align 4, !tbaa !5
  %3964 = call ptr @s2n_strerror(i32 noundef %3963, ptr noundef nonnull @.str.4) #12
  %3965 = load i32, ptr %730, align 4, !tbaa !5
  %3966 = call ptr @s2n_strerror_debug(i32 noundef %3965, ptr noundef nonnull @.str.4) #12
  %3967 = load i32, ptr %841, align 4, !tbaa !5
  %3968 = call ptr @strerror(i32 noundef %3967) #12
  %3969 = load i32, ptr %841, align 4, !tbaa !5
  %3970 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3961, ptr noundef nonnull %.str.5.sink2368, i32 noundef %3962, ptr noundef nonnull @.str.86, ptr noundef nonnull @.str.1, i32 noundef 441, ptr noundef %3964, ptr noundef %3966, ptr noundef %3968, i32 noundef %3969) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3971:                                             ; preds = %3943
  %3972 = getelementptr inbounds i8, ptr %3945, i64 220
  store i8 34, ptr %3972, align 4, !tbaa !25
  %3973 = getelementptr inbounds i8, ptr %3945, i64 232
  %3974 = load ptr, ptr %3973, align 8, !tbaa !49
  store ptr @s2n_tls13_aes_256_gcm_sha384, ptr %3974, align 8, !tbaa !50
  %3975 = load i32, ptr %1851, align 8, !tbaa !55
  %.not803 = icmp eq i32 %3975, 0
  br i1 %.not803, label %.thread1060, label %3976, !prof !56

3976:                                             ; preds = %3971
  %3977 = load ptr, ptr %35, align 8, !tbaa !9
  %3978 = getelementptr inbounds i8, ptr %3977, i64 432
  %3979 = load ptr, ptr %3, align 8, !tbaa !57
  %3980 = zext i32 %3975 to i64
  %3981 = call ptr @s2n_ensure_memmove_trace(ptr noundef nonnull %3978, ptr noundef %3979, i64 noundef %3980) #12
  %.not804.not = icmp eq ptr %3981, null
  br i1 %.not804.not, label %.critedge1003, label %..thread1060_crit_edge

..thread1060_crit_edge:                           ; preds = %3976
  %.pre1101 = load i32, ptr @test_count, align 4, !tbaa !5
  br label %.thread1060

.thread1060:                                      ; preds = %..thread1060_crit_edge, %3971
  %3982 = phi i32 [ %.pre1101, %..thread1060_crit_edge ], [ %3947, %3971 ]
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %36) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %36, i8 0, i64 40, i1 false)
  %3983 = add nsw i32 %3982, 1
  store i32 %3983, ptr @test_count, align 4, !tbaa !5
  %3984 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %36, i32 noundef 0) #12
  %3985 = icmp eq i32 %3984, -1
  br i1 %3985, label %3986, label %4008

3986:                                             ; preds = %.thread1060
  %3987 = load i32, ptr %841, align 4, !tbaa !5
  %3988 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3989 = call i32 @s2n_print_stacktrace(ptr noundef %3988) #12
  %3990 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3991 = trunc nuw i8 %3990 to i1
  br i1 %3991, label %3992, label %3996

3992:                                             ; preds = %3986
  %3993 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3994 = call i32 @fileno(ptr noundef %3993) #12
  %3995 = call i32 @isatty(i32 noundef %3994) #12
  %.not902 = icmp eq i32 %3995, 0
  br i1 %.not902, label %3996, label %3997

3996:                                             ; preds = %3992, %3986
  br label %3997

3997:                                             ; preds = %3992, %3996
  %.str.5.sink2377 = phi ptr [ @.str.5, %3996 ], [ @.str.2, %3992 ]
  store i32 %3987, ptr %841, align 4, !tbaa !5
  %3998 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3999 = load i32, ptr @test_count, align 4, !tbaa !5
  %4000 = load i32, ptr %730, align 4, !tbaa !5
  %4001 = call ptr @s2n_strerror(i32 noundef %4000, ptr noundef nonnull @.str.4) #12
  %4002 = load i32, ptr %730, align 4, !tbaa !5
  %4003 = call ptr @s2n_strerror_debug(i32 noundef %4002, ptr noundef nonnull @.str.4) #12
  %4004 = load i32, ptr %841, align 4, !tbaa !5
  %4005 = call ptr @strerror(i32 noundef %4004) #12
  %4006 = load i32, ptr %841, align 4, !tbaa !5
  %4007 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3998, ptr noundef nonnull %.str.5.sink2377, i32 noundef %3999, ptr noundef nonnull @.str.65, ptr noundef nonnull @.str.1, i32 noundef 448, ptr noundef %4001, ptr noundef %4003, ptr noundef %4005, i32 noundef %4006) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4008:                                             ; preds = %.thread1060
  %4009 = load i32, ptr @test_count, align 4, !tbaa !5
  %4010 = add nsw i32 %4009, 1
  store i32 %4010, ptr @test_count, align 4, !tbaa !5
  %4011 = load ptr, ptr %35, align 8, !tbaa !9
  %4012 = call i32 @s2n_connection_set_io_stuffers(ptr noundef nonnull %36, ptr noundef nonnull %36, ptr noundef %4011) #12
  %4013 = icmp eq i32 %4012, -1
  br i1 %4013, label %4014, label %4036

4014:                                             ; preds = %4008
  %4015 = load i32, ptr %841, align 4, !tbaa !5
  %4016 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4017 = call i32 @s2n_print_stacktrace(ptr noundef %4016) #12
  %4018 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4019 = trunc nuw i8 %4018 to i1
  br i1 %4019, label %4020, label %4024

4020:                                             ; preds = %4014
  %4021 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4022 = call i32 @fileno(ptr noundef %4021) #12
  %4023 = call i32 @isatty(i32 noundef %4022) #12
  %.not901 = icmp eq i32 %4023, 0
  br i1 %.not901, label %4024, label %4025

4024:                                             ; preds = %4020, %4014
  br label %4025

4025:                                             ; preds = %4020, %4024
  %.str.5.sink2386 = phi ptr [ @.str.5, %4024 ], [ @.str.2, %4020 ]
  store i32 %4015, ptr %841, align 4, !tbaa !5
  %4026 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4027 = load i32, ptr @test_count, align 4, !tbaa !5
  %4028 = load i32, ptr %730, align 4, !tbaa !5
  %4029 = call ptr @s2n_strerror(i32 noundef %4028, ptr noundef nonnull @.str.4) #12
  %4030 = load i32, ptr %730, align 4, !tbaa !5
  %4031 = call ptr @s2n_strerror_debug(i32 noundef %4030, ptr noundef nonnull @.str.4) #12
  %4032 = load i32, ptr %841, align 4, !tbaa !5
  %4033 = call ptr @strerror(i32 noundef %4032) #12
  %4034 = load i32, ptr %841, align 4, !tbaa !5
  %4035 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4026, ptr noundef nonnull %.str.5.sink2386, i32 noundef %4027, ptr noundef nonnull @.str.66, ptr noundef nonnull @.str.1, i32 noundef 449, ptr noundef %4029, ptr noundef %4031, ptr noundef %4033, i32 noundef %4034) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4036:                                             ; preds = %4008
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %37) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %37, i8 0, i64 24, i1 false)
  %4037 = load i32, ptr @test_count, align 4, !tbaa !5
  %4038 = add nsw i32 %4037, 1
  store i32 %4038, ptr @test_count, align 4, !tbaa !5
  %4039 = load ptr, ptr %35, align 8, !tbaa !9
  %4040 = getelementptr inbounds i8, ptr %4039, i64 232
  %4041 = load ptr, ptr %4040, align 8, !tbaa !49
  %4042 = getelementptr inbounds i8, ptr %4041, i64 920
  %4043 = call i32 @s2n_blob_init(ptr noundef nonnull %37, ptr noundef nonnull %4042, i32 noundef 8) #12
  %4044 = icmp eq i32 %4043, -1
  br i1 %4044, label %4045, label %4067

4045:                                             ; preds = %4036
  %4046 = load i32, ptr %841, align 4, !tbaa !5
  %4047 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4048 = call i32 @s2n_print_stacktrace(ptr noundef %4047) #12
  %4049 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4050 = trunc nuw i8 %4049 to i1
  br i1 %4050, label %4051, label %4055

4051:                                             ; preds = %4045
  %4052 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4053 = call i32 @fileno(ptr noundef %4052) #12
  %4054 = call i32 @isatty(i32 noundef %4053) #12
  %.not900 = icmp eq i32 %4054, 0
  br i1 %.not900, label %4055, label %4056

4055:                                             ; preds = %4051, %4045
  br label %4056

4056:                                             ; preds = %4051, %4055
  %.str.5.sink2395 = phi ptr [ @.str.5, %4055 ], [ @.str.2, %4051 ]
  store i32 %4046, ptr %841, align 4, !tbaa !5
  %4057 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4058 = load i32, ptr @test_count, align 4, !tbaa !5
  %4059 = load i32, ptr %730, align 4, !tbaa !5
  %4060 = call ptr @s2n_strerror(i32 noundef %4059, ptr noundef nonnull @.str.4) #12
  %4061 = load i32, ptr %730, align 4, !tbaa !5
  %4062 = call ptr @s2n_strerror_debug(i32 noundef %4061, ptr noundef nonnull @.str.4) #12
  %4063 = load i32, ptr %841, align 4, !tbaa !5
  %4064 = call ptr @strerror(i32 noundef %4063) #12
  %4065 = load i32, ptr %841, align 4, !tbaa !5
  %4066 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4057, ptr noundef nonnull %.str.5.sink2395, i32 noundef %4058, ptr noundef nonnull @.str.88, ptr noundef nonnull @.str.1, i32 noundef 453, ptr noundef %4060, ptr noundef %4062, ptr noundef %4064, i32 noundef %4065) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4067:                                             ; preds = %4036
  %4068 = load i32, ptr @test_count, align 4, !tbaa !5
  %4069 = add nsw i32 %4068, 1
  store i32 %4069, ptr @test_count, align 4, !tbaa !5
  %4070 = load ptr, ptr %35, align 8, !tbaa !9
  %4071 = getelementptr inbounds i8, ptr %4070, i64 232
  %4072 = load ptr, ptr %4071, align 8, !tbaa !49
  %4073 = getelementptr inbounds i8, ptr %4072, i64 920
  %4074 = call i32 @s2n_write_uint64(i64 noundef %3944, ptr noundef nonnull %4073)
  %4075 = call zeroext i1 @s2n_result_is_ok(i32 %4074)
  br i1 %4075, label %.preheader1082, label %4083

.preheader1082:                                   ; preds = %4067
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %38) #12
  store i32 0, ptr %38, align 4, !tbaa !5
  %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 %35, align 8, !tbaa !9
  %4079 = call i32 @s2n_key_update_send(ptr noundef %4078, ptr noundef nonnull %38) #12
  %4080 = icmp eq i32 %4079, -1
  br i1 %4080, label %._crit_edge, label %.lr.ph

.lr.ph:                                           ; preds = %.preheader1082
  %4081 = getelementptr inbounds i8, ptr %36, i64 28
  %4082 = getelementptr inbounds i8, ptr %36, i64 24
  br label %4126

4083:                                             ; preds = %4067
  %4084 = load i32, ptr %841, align 4, !tbaa !5
  %4085 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4086 = call i32 @s2n_print_stacktrace(ptr noundef %4085) #12
  %4087 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4088 = trunc nuw i8 %4087 to i1
  br i1 %4088, label %4089, label %4093

4089:                                             ; preds = %4083
  %4090 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4091 = call i32 @fileno(ptr noundef %4090) #12
  %4092 = call i32 @isatty(i32 noundef %4091) #12
  %.not806 = icmp eq i32 %4092, 0
  br i1 %.not806, label %4093, label %4094

4093:                                             ; preds = %4089, %4083
  br label %4094

4094:                                             ; preds = %4089, %4093
  %.str.5.sink2404 = phi ptr [ @.str.5, %4093 ], [ @.str.2, %4089 ]
  store i32 %4084, ptr %841, align 4, !tbaa !5
  %4095 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4096 = load i32, ptr @test_count, align 4, !tbaa !5
  %4097 = load i32, ptr %730, align 4, !tbaa !5
  %4098 = call ptr @s2n_strerror(i32 noundef %4097, ptr noundef nonnull @.str.4) #12
  %4099 = load i32, ptr %730, align 4, !tbaa !5
  %4100 = call ptr @s2n_strerror_debug(i32 noundef %4099, ptr noundef nonnull @.str.4) #12
  %4101 = load i32, ptr %841, align 4, !tbaa !5
  %4102 = call ptr @strerror(i32 noundef %4101) #12
  %4103 = load i32, ptr %841, align 4, !tbaa !5
  %4104 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4095, ptr noundef nonnull %.str.5.sink2404, i32 noundef %4096, ptr noundef nonnull @.str.89, ptr noundef nonnull @.str.1, i32 noundef 454, ptr noundef %4098, ptr noundef %4100, ptr noundef %4102, i32 noundef %4103) #14
  call void @exit(i32 noundef 1) #15
  unreachable

._crit_edge:                                      ; preds = %4156, %.preheader1082
  %4105 = load i32, ptr %841, align 4, !tbaa !5
  %4106 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4107 = call i32 @s2n_print_stacktrace(ptr noundef %4106) #12
  %4108 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4109 = trunc nuw i8 %4108 to i1
  br i1 %4109, label %4110, label %4114

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

4114:                                             ; preds = %4110, %._crit_edge
  br label %4115

4115:                                             ; preds = %4110, %4114
  %.str.5.sink2413 = phi ptr [ @.str.5, %4114 ], [ @.str.2, %4110 ]
  store i32 %4105, ptr %841, align 4, !tbaa !5
  %4116 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4117 = load i32, ptr @test_count, align 4, !tbaa !5
  %4118 = load i32, ptr %730, align 4, !tbaa !5
  %4119 = call ptr @s2n_strerror(i32 noundef %4118, ptr noundef nonnull @.str.4) #12
  %4120 = load i32, ptr %730, align 4, !tbaa !5
  %4121 = call ptr @s2n_strerror_debug(i32 noundef %4120, ptr noundef nonnull @.str.4) #12
  %4122 = load i32, ptr %841, align 4, !tbaa !5
  %4123 = call ptr @strerror(i32 noundef %4122) #12
  %4124 = load i32, ptr %841, align 4, !tbaa !5
  %4125 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4116, ptr noundef nonnull %.str.5.sink2413, i32 noundef %4117, ptr noundef nonnull @.str.68, ptr noundef nonnull @.str.1, i32 noundef 459, ptr noundef %4119, ptr noundef %4121, ptr noundef %4123, i32 noundef %4124) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4126:                                             ; preds = %.lr.ph, %4156
  %.06871087 = phi i64 [ %3944, %.lr.ph ], [ %4157, %4156 ]
  %4127 = load i32, ptr %4081, align 4, !tbaa !21
  %4128 = load i32, ptr %4082, align 8, !tbaa !24
  %.not807 = icmp eq i32 %4127, %4128
  br i1 %.not807, label %4129, label %4163

4129:                                             ; preds = %4126
  %4130 = load i32, ptr @test_count, align 4, !tbaa !5
  %4131 = add nsw i32 %4130, 1
  store i32 %4131, ptr @test_count, align 4, !tbaa !5
  %4132 = call i32 @s2n_increment_sequence_number(ptr noundef nonnull %37) #12
  %4133 = icmp eq i32 %4132, -1
  br i1 %4133, label %4134, label %4156

4134:                                             ; preds = %4129
  %4135 = load i32, ptr %841, align 4, !tbaa !5
  %4136 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4137 = call i32 @s2n_print_stacktrace(ptr noundef %4136) #12
  %4138 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4139 = trunc nuw i8 %4138 to i1
  br i1 %4139, label %4140, label %4144

4140:                                             ; preds = %4134
  %4141 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4142 = call i32 @fileno(ptr noundef %4141) #12
  %4143 = call i32 @isatty(i32 noundef %4142) #12
  %.not808 = icmp eq i32 %4143, 0
  br i1 %.not808, label %4144, label %4145

4144:                                             ; preds = %4140, %4134
  br label %4145

4145:                                             ; preds = %4140, %4144
  %.str.5.sink2422 = phi ptr [ @.str.5, %4144 ], [ @.str.2, %4140 ]
  store i32 %4135, ptr %841, align 4, !tbaa !5
  %4146 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4147 = load i32, ptr @test_count, align 4, !tbaa !5
  %4148 = load i32, ptr %730, align 4, !tbaa !5
  %4149 = call ptr @s2n_strerror(i32 noundef %4148, ptr noundef nonnull @.str.4) #12
  %4150 = load i32, ptr %730, align 4, !tbaa !5
  %4151 = call ptr @s2n_strerror_debug(i32 noundef %4150, ptr noundef nonnull @.str.4) #12
  %4152 = load i32, ptr %841, align 4, !tbaa !5
  %4153 = call ptr @strerror(i32 noundef %4152) #12
  %4154 = load i32, ptr %841, align 4, !tbaa !5
  %4155 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4146, ptr noundef nonnull %.str.5.sink2422, i32 noundef %4147, ptr noundef nonnull @.str.90, ptr noundef nonnull @.str.1, i32 noundef 466, ptr noundef %4149, ptr noundef %4151, ptr noundef %4153, i32 noundef %4154) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4156:                                             ; preds = %4129
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %38) #12
  %4157 = add i64 %.06871087, 1
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %38) #12
  store i32 0, ptr %38, align 4, !tbaa !5
  %4158 = load i32, ptr @test_count, align 4, !tbaa !5
  %4159 = add nsw i32 %4158, 1
  store i32 %4159, ptr @test_count, align 4, !tbaa !5
  %4160 = load ptr, ptr %35, align 8, !tbaa !9
  %4161 = call i32 @s2n_key_update_send(ptr noundef %4160, ptr noundef nonnull %38) #12
  %4162 = icmp eq i32 %4161, -1
  br i1 %4162, label %._crit_edge, label %4126, !llvm.loop !63

4163:                                             ; preds = %4126
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %38) #12
  %4164 = load i32, ptr @test_count, align 4, !tbaa !5
  %4165 = add nsw i32 %4164, 1
  store i32 %4165, ptr @test_count, align 4, !tbaa !5
  %4166 = icmp eq i64 %.06871087, %179
  br i1 %4166, label %4189, label %4167

4167:                                             ; preds = %4163
  %4168 = load i32, ptr %841, align 4, !tbaa !5
  %4169 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4170 = call i32 @s2n_print_stacktrace(ptr noundef %4169) #12
  %4171 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4172 = trunc nuw i8 %4171 to i1
  br i1 %4172, label %4173, label %4177

4173:                                             ; preds = %4167
  %4174 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4175 = call i32 @fileno(ptr noundef %4174) #12
  %4176 = call i32 @isatty(i32 noundef %4175) #12
  %.not809 = icmp eq i32 %4176, 0
  br i1 %.not809, label %4177, label %4178

4177:                                             ; preds = %4173, %4167
  br label %4178

4178:                                             ; preds = %4173, %4177
  %.str.5.sink2431 = phi ptr [ @.str.5, %4177 ], [ @.str.2, %4173 ]
  store i32 %4168, ptr %841, align 4, !tbaa !5
  %4179 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4180 = load i32, ptr @test_count, align 4, !tbaa !5
  %4181 = load i32, ptr %730, align 4, !tbaa !5
  %4182 = call ptr @s2n_strerror(i32 noundef %4181, ptr noundef nonnull @.str.4) #12
  %4183 = load i32, ptr %730, align 4, !tbaa !5
  %4184 = call ptr @s2n_strerror_debug(i32 noundef %4183, ptr noundef nonnull @.str.4) #12
  %4185 = load i32, ptr %841, align 4, !tbaa !5
  %4186 = call ptr @strerror(i32 noundef %4185) #12
  %4187 = load i32, ptr %841, align 4, !tbaa !5
  %4188 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4179, ptr noundef nonnull %.str.5.sink2431, i32 noundef %4180, ptr noundef nonnull @.str.91, ptr noundef nonnull @.str.1, i32 noundef 469, ptr noundef %4182, ptr noundef %4184, ptr noundef %4186, i32 noundef %4187) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4189:                                             ; preds = %4163
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %37) #12
  %4190 = call i32 @s2n_stuffer_free(ptr noundef nonnull %36) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %36) #12
  %4191 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %35) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %35) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %39) #12
  %4192 = call ptr @s2n_connection_new(i32 noundef 1) #12
  store ptr %4192, ptr %39, align 8, !tbaa !9
  %4193 = load i32, ptr @test_count, align 4, !tbaa !5
  %4194 = add nsw i32 %4193, 1
  store i32 %4194, ptr @test_count, align 4, !tbaa !5
  %4195 = icmp eq ptr %4192, null
  br i1 %4195, label %4196, label %4218

4196:                                             ; preds = %4189
  %4197 = load i32, ptr %841, align 4, !tbaa !5
  %4198 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4199 = call i32 @s2n_print_stacktrace(ptr noundef %4198) #12
  %4200 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4201 = trunc nuw i8 %4200 to i1
  br i1 %4201, label %4202, label %4206

4202:                                             ; preds = %4196
  %4203 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4204 = call i32 @fileno(ptr noundef %4203) #12
  %4205 = call i32 @isatty(i32 noundef %4204) #12
  %.not898 = icmp eq i32 %4205, 0
  br i1 %.not898, label %4206, label %4207

4206:                                             ; preds = %4202, %4196
  br label %4207

4207:                                             ; preds = %4202, %4206
  %.str.5.sink2440 = phi ptr [ @.str.5, %4206 ], [ @.str.2, %4202 ]
  store i32 %4197, ptr %841, align 4, !tbaa !5
  %4208 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4209 = load i32, ptr @test_count, align 4, !tbaa !5
  %4210 = load i32, ptr %730, align 4, !tbaa !5
  %4211 = call ptr @s2n_strerror(i32 noundef %4210, ptr noundef nonnull @.str.4) #12
  %4212 = load i32, ptr %730, align 4, !tbaa !5
  %4213 = call ptr @s2n_strerror_debug(i32 noundef %4212, ptr noundef nonnull @.str.4) #12
  %4214 = load i32, ptr %841, align 4, !tbaa !5
  %4215 = call ptr @strerror(i32 noundef %4214) #12
  %4216 = load i32, ptr %841, align 4, !tbaa !5
  %4217 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4208, ptr noundef nonnull %.str.5.sink2440, i32 noundef %4209, ptr noundef nonnull @.str.86, ptr noundef nonnull @.str.1, i32 noundef 479, ptr noundef %4211, ptr noundef %4213, ptr noundef %4215, i32 noundef %4216) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4218:                                             ; preds = %4189
  %4219 = getelementptr inbounds i8, ptr %4192, i64 220
  store i8 34, ptr %4219, align 4, !tbaa !25
  %4220 = getelementptr inbounds i8, ptr %4192, i64 232
  %4221 = load ptr, ptr %4220, align 8, !tbaa !49
  store ptr %spec.store.select, ptr %4221, align 8, !tbaa !50
  %4222 = load i32, ptr %1851, align 8, !tbaa !55
  %.not810 = icmp eq i32 %4222, 0
  br i1 %.not810, label %.thread1071, label %4223, !prof !56

4223:                                             ; preds = %4218
  %4224 = load ptr, ptr %39, align 8, !tbaa !9
  %4225 = getelementptr inbounds i8, ptr %4224, i64 432
  %4226 = load ptr, ptr %3, align 8, !tbaa !57
  %4227 = zext i32 %4222 to i64
  %4228 = call ptr @s2n_ensure_memmove_trace(ptr noundef nonnull %4225, ptr noundef %4226, i64 noundef %4227) #12
  %.not811.not = icmp eq ptr %4228, null
  br i1 %.not811.not, label %.critedge1005, label %..thread1071_crit_edge

..thread1071_crit_edge:                           ; preds = %4223
  %.pre1102 = load i32, ptr @test_count, align 4, !tbaa !5
  br label %.thread1071

.thread1071:                                      ; preds = %..thread1071_crit_edge, %4218
  %4229 = phi i32 [ %.pre1102, %..thread1071_crit_edge ], [ %4194, %4218 ]
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %40) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %40, i8 0, i64 40, i1 false)
  %4230 = add nsw i32 %4229, 1
  store i32 %4230, ptr @test_count, align 4, !tbaa !5
  %4231 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %40, i32 noundef 0) #12
  %4232 = icmp eq i32 %4231, -1
  br i1 %4232, label %4233, label %4255

4233:                                             ; preds = %.thread1071
  %4234 = load i32, ptr %841, align 4, !tbaa !5
  %4235 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4236 = call i32 @s2n_print_stacktrace(ptr noundef %4235) #12
  %4237 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4238 = trunc nuw i8 %4237 to i1
  br i1 %4238, label %4239, label %4243

4239:                                             ; preds = %4233
  %4240 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4241 = call i32 @fileno(ptr noundef %4240) #12
  %4242 = call i32 @isatty(i32 noundef %4241) #12
  %.not897 = icmp eq i32 %4242, 0
  br i1 %.not897, label %4243, label %4244

4243:                                             ; preds = %4239, %4233
  br label %4244

4244:                                             ; preds = %4239, %4243
  %.str.5.sink2449 = phi ptr [ @.str.5, %4243 ], [ @.str.2, %4239 ]
  store i32 %4234, ptr %841, align 4, !tbaa !5
  %4245 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4246 = load i32, ptr @test_count, align 4, !tbaa !5
  %4247 = load i32, ptr %730, align 4, !tbaa !5
  %4248 = call ptr @s2n_strerror(i32 noundef %4247, ptr noundef nonnull @.str.4) #12
  %4249 = load i32, ptr %730, align 4, !tbaa !5
  %4250 = call ptr @s2n_strerror_debug(i32 noundef %4249, ptr noundef nonnull @.str.4) #12
  %4251 = load i32, ptr %841, align 4, !tbaa !5
  %4252 = call ptr @strerror(i32 noundef %4251) #12
  %4253 = load i32, ptr %841, align 4, !tbaa !5
  %4254 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4245, ptr noundef nonnull %.str.5.sink2449, i32 noundef %4246, ptr noundef nonnull @.str.65, ptr noundef nonnull @.str.1, i32 noundef 486, ptr noundef %4248, ptr noundef %4250, ptr noundef %4252, i32 noundef %4253) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4255:                                             ; preds = %.thread1071
  %4256 = load i32, ptr @test_count, align 4, !tbaa !5
  %4257 = add nsw i32 %4256, 1
  store i32 %4257, ptr @test_count, align 4, !tbaa !5
  %4258 = load ptr, ptr %39, align 8, !tbaa !9
  %4259 = call i32 @s2n_connection_set_io_stuffers(ptr noundef nonnull %40, ptr noundef nonnull %40, ptr noundef %4258) #12
  %4260 = icmp eq i32 %4259, -1
  br i1 %4260, label %4261, label %4283

4261:                                             ; preds = %4255
  %4262 = load i32, ptr %841, align 4, !tbaa !5
  %4263 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4264 = call i32 @s2n_print_stacktrace(ptr noundef %4263) #12
  %4265 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4266 = trunc nuw i8 %4265 to i1
  br i1 %4266, label %4267, label %4271

4267:                                             ; preds = %4261
  %4268 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4269 = call i32 @fileno(ptr noundef %4268) #12
  %4270 = call i32 @isatty(i32 noundef %4269) #12
  %.not896 = icmp eq i32 %4270, 0
  br i1 %.not896, label %4271, label %4272

4271:                                             ; preds = %4267, %4261
  br label %4272

4272:                                             ; preds = %4267, %4271
  %.str.5.sink2458 = phi ptr [ @.str.5, %4271 ], [ @.str.2, %4267 ]
  store i32 %4262, ptr %841, align 4, !tbaa !5
  %4273 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4274 = load i32, ptr @test_count, align 4, !tbaa !5
  %4275 = load i32, ptr %730, align 4, !tbaa !5
  %4276 = call ptr @s2n_strerror(i32 noundef %4275, ptr noundef nonnull @.str.4) #12
  %4277 = load i32, ptr %730, align 4, !tbaa !5
  %4278 = call ptr @s2n_strerror_debug(i32 noundef %4277, ptr noundef nonnull @.str.4) #12
  %4279 = load i32, ptr %841, align 4, !tbaa !5
  %4280 = call ptr @strerror(i32 noundef %4279) #12
  %4281 = load i32, ptr %841, align 4, !tbaa !5
  %4282 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4273, ptr noundef nonnull %.str.5.sink2458, i32 noundef %4274, ptr noundef nonnull @.str.66, ptr noundef nonnull @.str.1, i32 noundef 487, ptr noundef %4276, ptr noundef %4278, ptr noundef %4280, i32 noundef %4281) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4283:                                             ; preds = %4255
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %41) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %41, i8 0, i64 24, i1 false)
  %4284 = load i32, ptr @test_count, align 4, !tbaa !5
  %4285 = add nsw i32 %4284, 1
  store i32 %4285, ptr @test_count, align 4, !tbaa !5
  %4286 = load ptr, ptr %39, align 8, !tbaa !9
  %4287 = getelementptr inbounds i8, ptr %4286, i64 232
  %4288 = load ptr, ptr %4287, align 8, !tbaa !49
  %4289 = getelementptr inbounds i8, ptr %4288, i64 920
  %4290 = call i32 @s2n_blob_init(ptr noundef nonnull %41, ptr noundef nonnull %4289, i32 noundef 8) #12
  %4291 = icmp eq i32 %4290, -1
  br i1 %4291, label %4292, label %4314

4292:                                             ; preds = %4283
  %4293 = load i32, ptr %841, align 4, !tbaa !5
  %4294 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4295 = call i32 @s2n_print_stacktrace(ptr noundef %4294) #12
  %4296 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4297 = trunc nuw i8 %4296 to i1
  br i1 %4297, label %4298, label %4302

4298:                                             ; preds = %4292
  %4299 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4300 = call i32 @fileno(ptr noundef %4299) #12
  %4301 = call i32 @isatty(i32 noundef %4300) #12
  %.not895 = icmp eq i32 %4301, 0
  br i1 %.not895, label %4302, label %4303

4302:                                             ; preds = %4298, %4292
  br label %4303

4303:                                             ; preds = %4298, %4302
  %.str.5.sink2467 = phi ptr [ @.str.5, %4302 ], [ @.str.2, %4298 ]
  store i32 %4293, ptr %841, align 4, !tbaa !5
  %4304 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4305 = load i32, ptr @test_count, align 4, !tbaa !5
  %4306 = load i32, ptr %730, align 4, !tbaa !5
  %4307 = call ptr @s2n_strerror(i32 noundef %4306, ptr noundef nonnull @.str.4) #12
  %4308 = load i32, ptr %730, align 4, !tbaa !5
  %4309 = call ptr @s2n_strerror_debug(i32 noundef %4308, ptr noundef nonnull @.str.4) #12
  %4310 = load i32, ptr %841, align 4, !tbaa !5
  %4311 = call ptr @strerror(i32 noundef %4310) #12
  %4312 = load i32, ptr %841, align 4, !tbaa !5
  %4313 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4304, ptr noundef nonnull %.str.5.sink2467, i32 noundef %4305, ptr noundef nonnull @.str.88, ptr noundef nonnull @.str.1, i32 noundef 491, ptr noundef %4307, ptr noundef %4309, ptr noundef %4311, i32 noundef %4312) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4314:                                             ; preds = %4283
  %4315 = load i32, ptr @test_count, align 4, !tbaa !5
  %4316 = add nsw i32 %4315, 1
  store i32 %4316, ptr @test_count, align 4, !tbaa !5
  %4317 = load ptr, ptr %39, align 8, !tbaa !9
  %4318 = getelementptr inbounds i8, ptr %4317, i64 232
  %4319 = load ptr, ptr %4318, align 8, !tbaa !49
  %4320 = getelementptr inbounds i8, ptr %4319, i64 920
  %4321 = call i32 @s2n_write_uint64(i64 noundef -101, ptr noundef nonnull %4320)
  %4322 = call zeroext i1 @s2n_result_is_ok(i32 %4321)
  br i1 %4322, label %.preheader, label %4330

.preheader:                                       ; preds = %4314
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %42) #12
  store i32 0, ptr %42, align 4, !tbaa !5
  %4323 = load i32, ptr @test_count, align 4, !tbaa !5
  %4324 = add nsw i32 %4323, 1
  store i32 %4324, ptr @test_count, align 4, !tbaa !5
  %4325 = load ptr, ptr %39, align 8, !tbaa !9
  %4326 = call i32 @s2n_key_update_send(ptr noundef %4325, ptr noundef nonnull %42) #12
  %4327 = icmp eq i32 %4326, -1
  br i1 %4327, label %._crit_edge1090, label %.lr.ph1089

.lr.ph1089:                                       ; preds = %.preheader
  %4328 = getelementptr inbounds i8, ptr %40, i64 28
  %4329 = getelementptr inbounds i8, ptr %40, i64 24
  br label %4373

4330:                                             ; preds = %4314
  %4331 = load i32, ptr %841, align 4, !tbaa !5
  %4332 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4333 = call i32 @s2n_print_stacktrace(ptr noundef %4332) #12
  %4334 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4335 = trunc nuw i8 %4334 to i1
  br i1 %4335, label %4336, label %4340

4336:                                             ; preds = %4330
  %4337 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4338 = call i32 @fileno(ptr noundef %4337) #12
  %4339 = call i32 @isatty(i32 noundef %4338) #12
  %.not813 = icmp eq i32 %4339, 0
  br i1 %.not813, label %4340, label %4341

4340:                                             ; preds = %4336, %4330
  br label %4341

4341:                                             ; preds = %4336, %4340
  %.str.5.sink2476 = phi ptr [ @.str.5, %4340 ], [ @.str.2, %4336 ]
  store i32 %4331, ptr %841, align 4, !tbaa !5
  %4342 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4343 = load i32, ptr @test_count, align 4, !tbaa !5
  %4344 = load i32, ptr %730, align 4, !tbaa !5
  %4345 = call ptr @s2n_strerror(i32 noundef %4344, ptr noundef nonnull @.str.4) #12
  %4346 = load i32, ptr %730, align 4, !tbaa !5
  %4347 = call ptr @s2n_strerror_debug(i32 noundef %4346, ptr noundef nonnull @.str.4) #12
  %4348 = load i32, ptr %841, align 4, !tbaa !5
  %4349 = call ptr @strerror(i32 noundef %4348) #12
  %4350 = load i32, ptr %841, align 4, !tbaa !5
  %4351 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4342, ptr noundef nonnull %.str.5.sink2476, i32 noundef %4343, ptr noundef nonnull @.str.89, ptr noundef nonnull @.str.1, i32 noundef 492, ptr noundef %4345, ptr noundef %4347, ptr noundef %4349, i32 noundef %4350) #14
  call void @exit(i32 noundef 1) #15
  unreachable

._crit_edge1090:                                  ; preds = %4403, %.preheader
  %4352 = load i32, ptr %841, align 4, !tbaa !5
  %4353 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4354 = call i32 @s2n_print_stacktrace(ptr noundef %4353) #12
  %4355 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4356 = trunc nuw i8 %4355 to i1
  br i1 %4356, label %4357, label %4361

4357:                                             ; preds = %._crit_edge1090
  %4358 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4359 = call i32 @fileno(ptr noundef %4358) #12
  %4360 = call i32 @isatty(i32 noundef %4359) #12
  %.not894 = icmp eq i32 %4360, 0
  br i1 %.not894, label %4361, label %4362

4361:                                             ; preds = %4357, %._crit_edge1090
  br label %4362

4362:                                             ; preds = %4357, %4361
  %.str.5.sink2485 = phi ptr [ @.str.5, %4361 ], [ @.str.2, %4357 ]
  store i32 %4352, ptr %841, align 4, !tbaa !5
  %4363 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4364 = load i32, ptr @test_count, align 4, !tbaa !5
  %4365 = load i32, ptr %730, align 4, !tbaa !5
  %4366 = call ptr @s2n_strerror(i32 noundef %4365, ptr noundef nonnull @.str.4) #12
  %4367 = load i32, ptr %730, align 4, !tbaa !5
  %4368 = call ptr @s2n_strerror_debug(i32 noundef %4367, ptr noundef nonnull @.str.4) #12
  %4369 = load i32, ptr %841, align 4, !tbaa !5
  %4370 = call ptr @strerror(i32 noundef %4369) #12
  %4371 = load i32, ptr %841, align 4, !tbaa !5
  %4372 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4363, ptr noundef nonnull %.str.5.sink2485, i32 noundef %4364, ptr noundef nonnull @.str.68, ptr noundef nonnull @.str.1, i32 noundef 497, ptr noundef %4366, ptr noundef %4368, ptr noundef %4370, i32 noundef %4371) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4373:                                             ; preds = %.lr.ph1089, %4403
  %.06911088 = phi i64 [ -101, %.lr.ph1089 ], [ %4404, %4403 ]
  %4374 = load i32, ptr %4328, align 4, !tbaa !21
  %4375 = load i32, ptr %4329, align 8, !tbaa !24
  %.not814 = icmp eq i32 %4374, %4375
  br i1 %.not814, label %4376, label %4410

4376:                                             ; preds = %4373
  %4377 = load i32, ptr @test_count, align 4, !tbaa !5
  %4378 = add nsw i32 %4377, 1
  store i32 %4378, ptr @test_count, align 4, !tbaa !5
  %4379 = call i32 @s2n_increment_sequence_number(ptr noundef nonnull %41) #12
  %4380 = icmp eq i32 %4379, -1
  br i1 %4380, label %4381, label %4403

4381:                                             ; preds = %4376
  %4382 = load i32, ptr %841, align 4, !tbaa !5
  %4383 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4384 = call i32 @s2n_print_stacktrace(ptr noundef %4383) #12
  %4385 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4386 = trunc nuw i8 %4385 to i1
  br i1 %4386, label %4387, label %4391

4387:                                             ; preds = %4381
  %4388 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4389 = call i32 @fileno(ptr noundef %4388) #12
  %4390 = call i32 @isatty(i32 noundef %4389) #12
  %.not815 = icmp eq i32 %4390, 0
  br i1 %.not815, label %4391, label %4392

4391:                                             ; preds = %4387, %4381
  br label %4392

4392:                                             ; preds = %4387, %4391
  %.str.5.sink2494 = phi ptr [ @.str.5, %4391 ], [ @.str.2, %4387 ]
  store i32 %4382, ptr %841, align 4, !tbaa !5
  %4393 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4394 = load i32, ptr @test_count, align 4, !tbaa !5
  %4395 = load i32, ptr %730, align 4, !tbaa !5
  %4396 = call ptr @s2n_strerror(i32 noundef %4395, ptr noundef nonnull @.str.4) #12
  %4397 = load i32, ptr %730, align 4, !tbaa !5
  %4398 = call ptr @s2n_strerror_debug(i32 noundef %4397, ptr noundef nonnull @.str.4) #12
  %4399 = load i32, ptr %841, align 4, !tbaa !5
  %4400 = call ptr @strerror(i32 noundef %4399) #12
  %4401 = load i32, ptr %841, align 4, !tbaa !5
  %4402 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4393, ptr noundef nonnull %.str.5.sink2494, i32 noundef %4394, ptr noundef nonnull @.str.90, ptr noundef nonnull @.str.1, i32 noundef 504, ptr noundef %4396, ptr noundef %4398, ptr noundef %4400, i32 noundef %4401) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4403:                                             ; preds = %4376
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %42) #12
  %4404 = add i64 %.06911088, 1
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %42) #12
  store i32 0, ptr %42, align 4, !tbaa !5
  %4405 = load i32, ptr @test_count, align 4, !tbaa !5
  %4406 = add nsw i32 %4405, 1
  store i32 %4406, ptr @test_count, align 4, !tbaa !5
  %4407 = load ptr, ptr %39, align 8, !tbaa !9
  %4408 = call i32 @s2n_key_update_send(ptr noundef %4407, ptr noundef nonnull %42) #12
  %4409 = icmp eq i32 %4408, -1
  br i1 %4409, label %._crit_edge1090, label %4373, !llvm.loop !65

4410:                                             ; preds = %4373
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %42) #12
  %4411 = load i32, ptr @test_count, align 4, !tbaa !5
  %4412 = add nsw i32 %4411, 1
  store i32 %4412, ptr @test_count, align 4, !tbaa !5
  %4413 = icmp eq i64 %.06911088, -1
  br i1 %4413, label %4436, label %4414

4414:                                             ; preds = %4410
  %4415 = load i32, ptr %841, align 4, !tbaa !5
  %4416 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4417 = call i32 @s2n_print_stacktrace(ptr noundef %4416) #12
  %4418 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4419 = trunc nuw i8 %4418 to i1
  br i1 %4419, label %4420, label %4424

4420:                                             ; preds = %4414
  %4421 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4422 = call i32 @fileno(ptr noundef %4421) #12
  %4423 = call i32 @isatty(i32 noundef %4422) #12
  %.not816 = icmp eq i32 %4423, 0
  br i1 %.not816, label %4424, label %4425

4424:                                             ; preds = %4420, %4414
  br label %4425

4425:                                             ; preds = %4420, %4424
  %.str.5.sink2503 = phi ptr [ @.str.5, %4424 ], [ @.str.2, %4420 ]
  store i32 %4415, ptr %841, align 4, !tbaa !5
  %4426 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4427 = load i32, ptr @test_count, align 4, !tbaa !5
  %4428 = load i32, ptr %730, align 4, !tbaa !5
  %4429 = call ptr @s2n_strerror(i32 noundef %4428, ptr noundef nonnull @.str.4) #12
  %4430 = load i32, ptr %730, align 4, !tbaa !5
  %4431 = call ptr @s2n_strerror_debug(i32 noundef %4430, ptr noundef nonnull @.str.4) #12
  %4432 = load i32, ptr %841, align 4, !tbaa !5
  %4433 = call ptr @strerror(i32 noundef %4432) #12
  %4434 = load i32, ptr %841, align 4, !tbaa !5
  %4435 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4426, ptr noundef nonnull %.str.5.sink2503, i32 noundef %4427, ptr noundef nonnull @.str.91, ptr noundef nonnull @.str.1, i32 noundef 507, ptr noundef %4429, ptr noundef %4431, ptr noundef %4433, i32 noundef %4434) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4436:                                             ; preds = %4410
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %41) #12
  %4437 = call i32 @s2n_stuffer_free(ptr noundef nonnull %40) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %40) #12
  %4438 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %39) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %39) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %43) #12
  %4439 = call ptr @s2n_connection_new(i32 noundef 1) #12
  store ptr %4439, ptr %43, align 8, !tbaa !9
  %4440 = getelementptr inbounds i8, ptr %4439, i64 220
  store i8 34, ptr %4440, align 4, !tbaa !25
  %4441 = load i32, ptr %4439, align 8
  %4442 = or i32 %4441, 262144
  store i32 %4442, ptr %4439, align 8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %44) #12
  store i32 0, ptr %44, align 4, !tbaa !5
  %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 = load ptr, ptr %43, align 8, !tbaa !9
  %4446 = call i32 @s2n_key_update_send(ptr noundef %4445, ptr noundef nonnull %44) #12
  %4447 = icmp eq i32 %4446, -1
  br i1 %4447, label %4448, label %4470

4448:                                             ; preds = %4436
  %4449 = load i32, ptr %841, align 4, !tbaa !5
  %4450 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4451 = call i32 @s2n_print_stacktrace(ptr noundef %4450) #12
  %4452 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4453 = trunc nuw i8 %4452 to i1
  br i1 %4453, label %4454, label %4458

4454:                                             ; preds = %4448
  %4455 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4456 = call i32 @fileno(ptr noundef %4455) #12
  %4457 = call i32 @isatty(i32 noundef %4456) #12
  %.not893 = icmp eq i32 %4457, 0
  br i1 %.not893, label %4458, label %4459

4458:                                             ; preds = %4454, %4448
  br label %4459

4459:                                             ; preds = %4454, %4458
  %.str.5.sink2512 = phi ptr [ @.str.5, %4458 ], [ @.str.2, %4454 ]
  store i32 %4449, ptr %841, align 4, !tbaa !5
  %4460 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4461 = load i32, ptr @test_count, align 4, !tbaa !5
  %4462 = load i32, ptr %730, align 4, !tbaa !5
  %4463 = call ptr @s2n_strerror(i32 noundef %4462, ptr noundef nonnull @.str.4) #12
  %4464 = load i32, ptr %730, align 4, !tbaa !5
  %4465 = call ptr @s2n_strerror_debug(i32 noundef %4464, ptr noundef nonnull @.str.4) #12
  %4466 = load i32, ptr %841, align 4, !tbaa !5
  %4467 = call ptr @strerror(i32 noundef %4466) #12
  %4468 = load i32, ptr %841, align 4, !tbaa !5
  %4469 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4460, ptr noundef nonnull %.str.5.sink2512, i32 noundef %4461, ptr noundef nonnull @.str.93, ptr noundef nonnull @.str.1, i32 noundef 519, ptr noundef %4463, ptr noundef %4465, ptr noundef %4467, i32 noundef %4468) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4470:                                             ; preds = %4436
  %4471 = load i32, ptr @test_count, align 4, !tbaa !5
  %4472 = add nsw i32 %4471, 1
  store i32 %4472, ptr @test_count, align 4, !tbaa !5
  %4473 = load ptr, ptr %43, align 8, !tbaa !9
  %4474 = getelementptr inbounds i8, ptr %4473, i64 4176
  %4475 = call zeroext i1 @s2n_atomic_flag_test(ptr noundef nonnull %4474) #12
  br i1 %4475, label %4476, label %4498

4476:                                             ; preds = %4470
  %4477 = load i32, ptr %841, align 4, !tbaa !5
  %4478 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4479 = call i32 @s2n_print_stacktrace(ptr noundef %4478) #12
  %4480 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4481 = trunc nuw i8 %4480 to i1
  br i1 %4481, label %4482, label %4486

4482:                                             ; preds = %4476
  %4483 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4484 = call i32 @fileno(ptr noundef %4483) #12
  %4485 = call i32 @isatty(i32 noundef %4484) #12
  %.not892 = icmp eq i32 %4485, 0
  br i1 %.not892, label %4486, label %4487

4486:                                             ; preds = %4482, %4476
  br label %4487

4487:                                             ; preds = %4482, %4486
  %.str.5.sink2521 = phi ptr [ @.str.5, %4486 ], [ @.str.2, %4482 ]
  store i32 %4477, ptr %841, align 4, !tbaa !5
  %4488 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4489 = load i32, ptr @test_count, align 4, !tbaa !5
  %4490 = load i32, ptr %730, align 4, !tbaa !5
  %4491 = call ptr @s2n_strerror(i32 noundef %4490, ptr noundef nonnull @.str.4) #12
  %4492 = load i32, ptr %730, align 4, !tbaa !5
  %4493 = call ptr @s2n_strerror_debug(i32 noundef %4492, ptr noundef nonnull @.str.4) #12
  %4494 = load i32, ptr %841, align 4, !tbaa !5
  %4495 = call ptr @strerror(i32 noundef %4494) #12
  %4496 = load i32, ptr %841, align 4, !tbaa !5
  %4497 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4488, ptr noundef nonnull %.str.5.sink2521, i32 noundef %4489, ptr noundef nonnull @.str.94, ptr noundef nonnull @.str.1, i32 noundef 520, ptr noundef %4491, ptr noundef %4493, ptr noundef %4495, i32 noundef %4496) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4498:                                             ; preds = %4470
  %4499 = load i32, ptr @test_count, align 4, !tbaa !5
  %4500 = add nsw i32 %4499, 1
  store i32 %4500, ptr @test_count, align 4, !tbaa !5
  %4501 = load ptr, ptr %43, align 8, !tbaa !9
  %4502 = getelementptr inbounds i8, ptr %4501, i64 232
  %4503 = load ptr, ptr %4502, align 8, !tbaa !49
  %4504 = icmp eq ptr %4503, null
  br i1 %4504, label %4505, label %4527

4505:                                             ; preds = %4498
  %4506 = load i32, ptr %841, align 4, !tbaa !5
  %4507 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4508 = call i32 @s2n_print_stacktrace(ptr noundef %4507) #12
  %4509 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4510 = trunc nuw i8 %4509 to i1
  br i1 %4510, label %4511, label %4515

4511:                                             ; preds = %4505
  %4512 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4513 = call i32 @fileno(ptr noundef %4512) #12
  %4514 = call i32 @isatty(i32 noundef %4513) #12
  %.not891 = icmp eq i32 %4514, 0
  br i1 %.not891, label %4515, label %4516

4515:                                             ; preds = %4511, %4505
  br label %4516

4516:                                             ; preds = %4511, %4515
  %.str.5.sink2530 = phi ptr [ @.str.5, %4515 ], [ @.str.2, %4511 ]
  store i32 %4506, ptr %841, align 4, !tbaa !5
  %4517 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4518 = load i32, ptr @test_count, align 4, !tbaa !5
  %4519 = load i32, ptr %730, align 4, !tbaa !5
  %4520 = call ptr @s2n_strerror(i32 noundef %4519, ptr noundef nonnull @.str.4) #12
  %4521 = load i32, ptr %730, align 4, !tbaa !5
  %4522 = call ptr @s2n_strerror_debug(i32 noundef %4521, ptr noundef nonnull @.str.4) #12
  %4523 = load i32, ptr %841, align 4, !tbaa !5
  %4524 = call ptr @strerror(i32 noundef %4523) #12
  %4525 = load i32, ptr %841, align 4, !tbaa !5
  %4526 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4517, ptr noundef nonnull %.str.5.sink2530, i32 noundef %4518, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.1, i32 noundef 523, ptr noundef %4520, ptr noundef %4522, ptr noundef %4524, i32 noundef %4525) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4527:                                             ; preds = %4498
  store ptr @s2n_tls13_aes_256_gcm_sha384, ptr %4503, align 8, !tbaa !50
  %4528 = add nsw i32 %4499, 2
  store i32 %4528, ptr @test_count, align 4, !tbaa !5
  %4529 = load ptr, ptr %43, align 8, !tbaa !9
  %4530 = getelementptr inbounds i8, ptr %4529, i64 232
  %4531 = load ptr, ptr %4530, align 8, !tbaa !49
  %4532 = getelementptr inbounds i8, ptr %4531, i64 920
  %4533 = call i32 @s2n_write_uint64(i64 noundef %179, ptr noundef nonnull %4532)
  %4534 = call zeroext i1 @s2n_result_is_ok(i32 %4533)
  br i1 %4534, label %4557, label %4535

4535:                                             ; preds = %4527
  %4536 = load i32, ptr %841, align 4, !tbaa !5
  %4537 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4538 = call i32 @s2n_print_stacktrace(ptr noundef %4537) #12
  %4539 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4540 = trunc nuw i8 %4539 to i1
  br i1 %4540, label %4541, label %4545

4541:                                             ; preds = %4535
  %4542 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4543 = call i32 @fileno(ptr noundef %4542) #12
  %4544 = call i32 @isatty(i32 noundef %4543) #12
  %.not817 = icmp eq i32 %4544, 0
  br i1 %.not817, label %4545, label %4546

4545:                                             ; preds = %4541, %4535
  br label %4546

4546:                                             ; preds = %4541, %4545
  %.str.5.sink2539 = phi ptr [ @.str.5, %4545 ], [ @.str.2, %4541 ]
  store i32 %4536, ptr %841, align 4, !tbaa !5
  %4547 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4548 = load i32, ptr @test_count, align 4, !tbaa !5
  %4549 = load i32, ptr %730, align 4, !tbaa !5
  %4550 = call ptr @s2n_strerror(i32 noundef %4549, ptr noundef nonnull @.str.4) #12
  %4551 = load i32, ptr %730, align 4, !tbaa !5
  %4552 = call ptr @s2n_strerror_debug(i32 noundef %4551, ptr noundef nonnull @.str.4) #12
  %4553 = load i32, ptr %841, align 4, !tbaa !5
  %4554 = call ptr @strerror(i32 noundef %4553) #12
  %4555 = load i32, ptr %841, align 4, !tbaa !5
  %4556 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4547, ptr noundef nonnull %.str.5.sink2539, i32 noundef %4548, ptr noundef nonnull @.str.78, ptr noundef nonnull @.str.1, i32 noundef 525, ptr noundef %4550, ptr noundef %4552, ptr noundef %4554, i32 noundef %4555) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4557:                                             ; preds = %4527
  %4558 = load i32, ptr @test_count, align 4, !tbaa !5
  %4559 = add nsw i32 %4558, 1
  store i32 %4559, ptr @test_count, align 4, !tbaa !5
  %4560 = load ptr, ptr %43, align 8, !tbaa !9
  %4561 = call i32 @s2n_key_update_send(ptr noundef %4560, ptr noundef nonnull %44) #12
  %4562 = icmp eq i32 %4561, -1
  br i1 %4562, label %4585, label %4563

4563:                                             ; preds = %4557
  %4564 = load i32, ptr %841, align 4, !tbaa !5
  %4565 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4566 = call i32 @s2n_print_stacktrace(ptr noundef %4565) #12
  %4567 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4568 = trunc nuw i8 %4567 to i1
  br i1 %4568, label %4569, label %4573

4569:                                             ; preds = %4563
  %4570 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4571 = call i32 @fileno(ptr noundef %4570) #12
  %4572 = call i32 @isatty(i32 noundef %4571) #12
  %.not818 = icmp eq i32 %4572, 0
  br i1 %.not818, label %4573, label %4574

4573:                                             ; preds = %4569, %4563
  br label %4574

4574:                                             ; preds = %4569, %4573
  %.str.5.sink2548 = phi ptr [ @.str.5, %4573 ], [ @.str.2, %4569 ]
  store i32 %4564, ptr %841, align 4, !tbaa !5
  %4575 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4576 = load i32, ptr @test_count, align 4, !tbaa !5
  %4577 = load i32, ptr %730, align 4, !tbaa !5
  %4578 = call ptr @s2n_strerror(i32 noundef %4577, ptr noundef nonnull @.str.4) #12
  %4579 = load i32, ptr %730, align 4, !tbaa !5
  %4580 = call ptr @s2n_strerror_debug(i32 noundef %4579, ptr noundef nonnull @.str.4) #12
  %4581 = load i32, ptr %841, align 4, !tbaa !5
  %4582 = call ptr @strerror(i32 noundef %4581) #12
  %4583 = load i32, ptr %841, align 4, !tbaa !5
  %4584 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4575, ptr noundef nonnull %.str.5.sink2548, i32 noundef %4576, ptr noundef nonnull @.str.79, ptr noundef nonnull @.str.1, i32 noundef 530, ptr noundef %4578, ptr noundef %4580, ptr noundef %4582, i32 noundef %4583) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4585:                                             ; preds = %4557
  %4586 = load i32, ptr @test_count, align 4, !tbaa !5
  %4587 = add nsw i32 %4586, 1
  store i32 %4587, ptr @test_count, align 4, !tbaa !5
  %4588 = load i32, ptr %730, align 4, !tbaa !5
  %4589 = icmp eq i32 %4588, 469762132
  br i1 %4589, label %4612, label %4590

4590:                                             ; preds = %4585
  %4591 = load i32, ptr %841, align 4, !tbaa !5
  %4592 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4593 = call i32 @s2n_print_stacktrace(ptr noundef %4592) #12
  %4594 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4595 = trunc nuw i8 %4594 to i1
  br i1 %4595, label %4596, label %4600

4596:                                             ; preds = %4590
  %4597 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4598 = call i32 @fileno(ptr noundef %4597) #12
  %4599 = call i32 @isatty(i32 noundef %4598) #12
  %.not819 = icmp eq i32 %4599, 0
  br i1 %.not819, label %4600, label %4601

4600:                                             ; preds = %4596, %4590
  br label %4601

4601:                                             ; preds = %4596, %4600
  %.str.5.sink2557 = phi ptr [ @.str.5, %4600 ], [ @.str.2, %4596 ]
  store i32 %4591, ptr %841, align 4, !tbaa !5
  %4602 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4603 = load i32, ptr @test_count, align 4, !tbaa !5
  %4604 = load i32, ptr %730, align 4, !tbaa !5
  %4605 = call ptr @s2n_strerror(i32 noundef %4604, ptr noundef nonnull @.str.4) #12
  %4606 = load i32, ptr %730, align 4, !tbaa !5
  %4607 = call ptr @s2n_strerror_debug(i32 noundef %4606, ptr noundef nonnull @.str.4) #12
  %4608 = load i32, ptr %841, align 4, !tbaa !5
  %4609 = call ptr @strerror(i32 noundef %4608) #12
  %4610 = load i32, ptr %841, align 4, !tbaa !5
  %4611 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4602, ptr noundef nonnull %.str.5.sink2557, i32 noundef %4603, ptr noundef nonnull @.str.95, ptr noundef nonnull @.str.1, i32 noundef 530, ptr noundef %4605, ptr noundef %4607, ptr noundef %4609, i32 noundef %4610) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4612:                                             ; preds = %4585
  %4613 = add nsw i32 %4586, 2
  store i32 %4613, ptr @test_count, align 4, !tbaa !5
  %4614 = call ptr @s2n_strerror_debug(i32 noundef 469762132, ptr noundef nonnull @.str.4) #12
  %4615 = icmp eq ptr %4614, null
  br i1 %4615, label %4616, label %4638

4616:                                             ; preds = %4612
  %4617 = load i32, ptr %841, align 4, !tbaa !5
  %4618 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4619 = call i32 @s2n_print_stacktrace(ptr noundef %4618) #12
  %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) #12
  %4625 = call i32 @isatty(i32 noundef %4624) #12
  %.not890 = icmp eq i32 %4625, 0
  br i1 %.not890, label %4626, label %4627

4626:                                             ; preds = %4622, %4616
  br label %4627

4627:                                             ; preds = %4622, %4626
  %.str.5.sink2566 = phi ptr [ @.str.5, %4626 ], [ @.str.2, %4622 ]
  store i32 %4617, ptr %841, 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 %730, align 4, !tbaa !5
  %4631 = call ptr @s2n_strerror(i32 noundef %4630, ptr noundef nonnull @.str.4) #12
  %4632 = load i32, ptr %730, align 4, !tbaa !5
  %4633 = call ptr @s2n_strerror_debug(i32 noundef %4632, ptr noundef nonnull @.str.4) #12
  %4634 = load i32, ptr %841, align 4, !tbaa !5
  %4635 = call ptr @strerror(i32 noundef %4634) #12
  %4636 = load i32, ptr %841, align 4, !tbaa !5
  %4637 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4628, ptr noundef nonnull %.str.5.sink2566, i32 noundef %4629, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 530, ptr noundef %4631, ptr noundef %4633, ptr noundef %4635, i32 noundef %4636) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4638:                                             ; preds = %4612
  store i32 0, ptr %730, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %841, align 4, !tbaa !5
  %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 ptr, ptr %43, align 8, !tbaa !9
  %4642 = getelementptr inbounds i8, ptr %4641, i64 4176
  %4643 = call zeroext i1 @s2n_atomic_flag_test(ptr noundef nonnull %4642) #12
  br i1 %4643, label %4666, label %4644

4644:                                             ; preds = %4638
  %4645 = load i32, ptr %841, align 4, !tbaa !5
  %4646 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4647 = call i32 @s2n_print_stacktrace(ptr noundef %4646) #12
  %4648 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4649 = trunc nuw i8 %4648 to i1
  br i1 %4649, label %4650, label %4654

4650:                                             ; preds = %4644
  %4651 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4652 = call i32 @fileno(ptr noundef %4651) #12
  %4653 = call i32 @isatty(i32 noundef %4652) #12
  %.not820 = icmp eq i32 %4653, 0
  br i1 %.not820, label %4654, label %4655

4654:                                             ; preds = %4650, %4644
  br label %4655

4655:                                             ; preds = %4650, %4654
  %.str.5.sink2575 = phi ptr [ @.str.5, %4654 ], [ @.str.2, %4650 ]
  store i32 %4645, ptr %841, align 4, !tbaa !5
  %4656 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4657 = load i32, ptr @test_count, align 4, !tbaa !5
  %4658 = load i32, ptr %730, align 4, !tbaa !5
  %4659 = call ptr @s2n_strerror(i32 noundef %4658, ptr noundef nonnull @.str.4) #12
  %4660 = load i32, ptr %730, align 4, !tbaa !5
  %4661 = call ptr @s2n_strerror_debug(i32 noundef %4660, ptr noundef nonnull @.str.4) #12
  %4662 = load i32, ptr %841, align 4, !tbaa !5
  %4663 = call ptr @strerror(i32 noundef %4662) #12
  %4664 = load i32, ptr %841, align 4, !tbaa !5
  %4665 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4656, ptr noundef nonnull %.str.5.sink2575, i32 noundef %4657, ptr noundef nonnull @.str.61, ptr noundef nonnull @.str.1, i32 noundef 531, ptr noundef %4659, ptr noundef %4661, ptr noundef %4663, i32 noundef %4664) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4666:                                             ; preds = %4638
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %44) #12
  %4667 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %43) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %43) #12
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %45) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %45, i8 0, i64 24, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %46) #12
  store i64 0, ptr %46, align 8
  %4668 = load i32, ptr @test_count, align 4, !tbaa !5
  %4669 = add nsw i32 %4668, 1
  store i32 %4669, ptr @test_count, align 4, !tbaa !5
  %4670 = call i32 @s2n_blob_init(ptr noundef nonnull %45, ptr noundef nonnull %46, i32 noundef 8) #12
  %4671 = icmp eq i32 %4670, -1
  br i1 %4671, label %4672, label %4694

4672:                                             ; preds = %4666
  %4673 = load i32, ptr %841, align 4, !tbaa !5
  %4674 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4675 = call i32 @s2n_print_stacktrace(ptr noundef %4674) #12
  %4676 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4677 = trunc nuw i8 %4676 to i1
  br i1 %4677, label %4678, label %4682

4678:                                             ; preds = %4672
  %4679 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4680 = call i32 @fileno(ptr noundef %4679) #12
  %4681 = call i32 @isatty(i32 noundef %4680) #12
  %.not889 = icmp eq i32 %4681, 0
  br i1 %.not889, label %4682, label %4683

4682:                                             ; preds = %4678, %4672
  br label %4683

4683:                                             ; preds = %4678, %4682
  %.str.5.sink2584 = phi ptr [ @.str.5, %4682 ], [ @.str.2, %4678 ]
  store i32 %4673, ptr %841, align 4, !tbaa !5
  %4684 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4685 = load i32, ptr @test_count, align 4, !tbaa !5
  %4686 = load i32, ptr %730, align 4, !tbaa !5
  %4687 = call ptr @s2n_strerror(i32 noundef %4686, ptr noundef nonnull @.str.4) #12
  %4688 = load i32, ptr %730, align 4, !tbaa !5
  %4689 = call ptr @s2n_strerror_debug(i32 noundef %4688, ptr noundef nonnull @.str.4) #12
  %4690 = load i32, ptr %841, align 4, !tbaa !5
  %4691 = call ptr @strerror(i32 noundef %4690) #12
  %4692 = load i32, ptr %841, align 4, !tbaa !5
  %4693 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4684, ptr noundef nonnull %.str.5.sink2584, i32 noundef %4685, ptr noundef nonnull @.str.96, ptr noundef nonnull @.str.1, i32 noundef 541, ptr noundef %4687, ptr noundef %4689, ptr noundef %4691, i32 noundef %4692) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4694:                                             ; preds = %4666
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %47) #12
  %4695 = call ptr @s2n_connection_new(i32 noundef 0) #12
  store ptr %4695, ptr %47, align 8, !tbaa !9
  %4696 = load i32, ptr @test_count, align 4, !tbaa !5
  %4697 = add nsw i32 %4696, 1
  store i32 %4697, ptr @test_count, align 4, !tbaa !5
  %4698 = icmp eq ptr %4695, null
  br i1 %4698, label %4699, label %4721

4699:                                             ; preds = %4694
  %4700 = load i32, ptr %841, align 4, !tbaa !5
  %4701 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4702 = call i32 @s2n_print_stacktrace(ptr noundef %4701) #12
  %4703 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4704 = trunc nuw i8 %4703 to i1
  br i1 %4704, label %4705, label %4709

4705:                                             ; preds = %4699
  %4706 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4707 = call i32 @fileno(ptr noundef %4706) #12
  %4708 = call i32 @isatty(i32 noundef %4707) #12
  %.not888 = icmp eq i32 %4708, 0
  br i1 %.not888, label %4709, label %4710

4709:                                             ; preds = %4705, %4699
  br label %4710

4710:                                             ; preds = %4705, %4709
  %.str.5.sink2593 = phi ptr [ @.str.5, %4709 ], [ @.str.2, %4705 ]
  store i32 %4700, ptr %841, align 4, !tbaa !5
  %4711 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4712 = load i32, ptr @test_count, align 4, !tbaa !5
  %4713 = load i32, ptr %730, align 4, !tbaa !5
  %4714 = call ptr @s2n_strerror(i32 noundef %4713, ptr noundef nonnull @.str.4) #12
  %4715 = load i32, ptr %730, align 4, !tbaa !5
  %4716 = call ptr @s2n_strerror_debug(i32 noundef %4715, ptr noundef nonnull @.str.4) #12
  %4717 = load i32, ptr %841, align 4, !tbaa !5
  %4718 = call ptr @strerror(i32 noundef %4717) #12
  %4719 = load i32, ptr %841, align 4, !tbaa !5
  %4720 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4711, ptr noundef nonnull %.str.5.sink2593, i32 noundef %4712, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 544, ptr noundef %4714, ptr noundef %4716, ptr noundef %4718, i32 noundef %4719) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4721:                                             ; preds = %4694
  %4722 = getelementptr inbounds i8, ptr %4695, i64 232
  %4723 = load ptr, ptr %4722, align 8, !tbaa !49
  store ptr @s2n_tls13_aes_256_gcm_sha384, ptr %4723, align 8, !tbaa !50
  %4724 = load ptr, ptr %47, align 8, !tbaa !9
  %4725 = getelementptr inbounds i8, ptr %4724, i64 4176
  call void @s2n_atomic_flag_clear(ptr noundef nonnull %4725) #12
  %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 = call i32 @s2n_write_uint64(i64 noundef 0, ptr noundef nonnull %46)
  %4729 = call zeroext i1 @s2n_result_is_ok(i32 %4728)
  br i1 %4729, label %4752, label %4730

4730:                                             ; preds = %4721
  %4731 = load i32, ptr %841, align 4, !tbaa !5
  %4732 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4733 = call i32 @s2n_print_stacktrace(ptr noundef %4732) #12
  %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) #12
  %4739 = call i32 @isatty(i32 noundef %4738) #12
  %.not821 = icmp eq i32 %4739, 0
  br i1 %.not821, label %4740, label %4741

4740:                                             ; preds = %4736, %4730
  br label %4741

4741:                                             ; preds = %4736, %4740
  %.str.5.sink2602 = phi ptr [ @.str.5, %4740 ], [ @.str.2, %4736 ]
  store i32 %4731, ptr %841, 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 %730, align 4, !tbaa !5
  %4745 = call ptr @s2n_strerror(i32 noundef %4744, ptr noundef nonnull @.str.4) #12
  %4746 = load i32, ptr %730, align 4, !tbaa !5
  %4747 = call ptr @s2n_strerror_debug(i32 noundef %4746, ptr noundef nonnull @.str.4) #12
  %4748 = load i32, ptr %841, align 4, !tbaa !5
  %4749 = call ptr @strerror(i32 noundef %4748) #12
  %4750 = load i32, ptr %841, align 4, !tbaa !5
  %4751 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4742, ptr noundef nonnull %.str.5.sink2602, i32 noundef %4743, ptr noundef nonnull @.str.97, ptr noundef nonnull @.str.1, i32 noundef 549, ptr noundef %4745, ptr noundef %4747, ptr noundef %4749, i32 noundef %4750) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4752:                                             ; preds = %4721
  %4753 = load i32, ptr @test_count, align 4, !tbaa !5
  %4754 = add nsw i32 %4753, 1
  store i32 %4754, ptr @test_count, align 4, !tbaa !5
  %4755 = load ptr, ptr %47, align 8, !tbaa !9
  %4756 = call i32 @s2n_check_record_limit(ptr noundef %4755, ptr noundef nonnull %45) #12
  %4757 = icmp eq i32 %4756, -1
  br i1 %4757, label %4758, label %4780

4758:                                             ; preds = %4752
  %4759 = load i32, ptr %841, align 4, !tbaa !5
  %4760 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4761 = call i32 @s2n_print_stacktrace(ptr noundef %4760) #12
  %4762 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4763 = trunc nuw i8 %4762 to i1
  br i1 %4763, label %4764, label %4768

4764:                                             ; preds = %4758
  %4765 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4766 = call i32 @fileno(ptr noundef %4765) #12
  %4767 = call i32 @isatty(i32 noundef %4766) #12
  %.not887 = icmp eq i32 %4767, 0
  br i1 %.not887, label %4768, label %4769

4768:                                             ; preds = %4764, %4758
  br label %4769

4769:                                             ; preds = %4764, %4768
  %.str.5.sink2611 = phi ptr [ @.str.5, %4768 ], [ @.str.2, %4764 ]
  store i32 %4759, ptr %841, align 4, !tbaa !5
  %4770 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4771 = load i32, ptr @test_count, align 4, !tbaa !5
  %4772 = load i32, ptr %730, align 4, !tbaa !5
  %4773 = call ptr @s2n_strerror(i32 noundef %4772, ptr noundef nonnull @.str.4) #12
  %4774 = load i32, ptr %730, align 4, !tbaa !5
  %4775 = call ptr @s2n_strerror_debug(i32 noundef %4774, ptr noundef nonnull @.str.4) #12
  %4776 = load i32, ptr %841, align 4, !tbaa !5
  %4777 = call ptr @strerror(i32 noundef %4776) #12
  %4778 = load i32, ptr %841, align 4, !tbaa !5
  %4779 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4770, ptr noundef nonnull %.str.5.sink2611, i32 noundef %4771, ptr noundef nonnull @.str.98, ptr noundef nonnull @.str.1, i32 noundef 550, ptr noundef %4773, ptr noundef %4775, ptr noundef %4777, i32 noundef %4778) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4780:                                             ; preds = %4752
  %4781 = load i32, ptr @test_count, align 4, !tbaa !5
  %4782 = add nsw i32 %4781, 1
  store i32 %4782, ptr @test_count, align 4, !tbaa !5
  %4783 = load ptr, ptr %47, align 8, !tbaa !9
  %4784 = getelementptr inbounds i8, ptr %4783, i64 4176
  %4785 = call zeroext i1 @s2n_atomic_flag_test(ptr noundef nonnull %4784) #12
  br i1 %4785, label %4786, label %4808

4786:                                             ; preds = %4780
  %4787 = load i32, ptr %841, align 4, !tbaa !5
  %4788 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4789 = call i32 @s2n_print_stacktrace(ptr noundef %4788) #12
  %4790 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4791 = trunc nuw i8 %4790 to i1
  br i1 %4791, label %4792, label %4796

4792:                                             ; preds = %4786
  %4793 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4794 = call i32 @fileno(ptr noundef %4793) #12
  %4795 = call i32 @isatty(i32 noundef %4794) #12
  %.not886 = icmp eq i32 %4795, 0
  br i1 %.not886, label %4796, label %4797

4796:                                             ; preds = %4792, %4786
  br label %4797

4797:                                             ; preds = %4792, %4796
  %.str.5.sink2620 = phi ptr [ @.str.5, %4796 ], [ @.str.2, %4792 ]
  store i32 %4787, ptr %841, align 4, !tbaa !5
  %4798 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4799 = load i32, ptr @test_count, align 4, !tbaa !5
  %4800 = load i32, ptr %730, align 4, !tbaa !5
  %4801 = call ptr @s2n_strerror(i32 noundef %4800, ptr noundef nonnull @.str.4) #12
  %4802 = load i32, ptr %730, align 4, !tbaa !5
  %4803 = call ptr @s2n_strerror_debug(i32 noundef %4802, ptr noundef nonnull @.str.4) #12
  %4804 = load i32, ptr %841, align 4, !tbaa !5
  %4805 = call ptr @strerror(i32 noundef %4804) #12
  %4806 = load i32, ptr %841, align 4, !tbaa !5
  %4807 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4798, ptr noundef nonnull %.str.5.sink2620, i32 noundef %4799, ptr noundef nonnull @.str.94, ptr noundef nonnull @.str.1, i32 noundef 551, ptr noundef %4801, ptr noundef %4803, ptr noundef %4805, i32 noundef %4806) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4808:                                             ; preds = %4780
  %4809 = load ptr, ptr %47, align 8, !tbaa !9
  %4810 = getelementptr inbounds i8, ptr %4809, i64 4176
  call void @s2n_atomic_flag_clear(ptr noundef nonnull %4810) #12
  %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 = add i64 %179, -2
  %4814 = call i32 @s2n_write_uint64(i64 noundef %4813, ptr noundef nonnull %46)
  %4815 = call zeroext i1 @s2n_result_is_ok(i32 %4814)
  br i1 %4815, label %4838, label %4816

4816:                                             ; preds = %4808
  %4817 = load i32, ptr %841, align 4, !tbaa !5
  %4818 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4819 = call i32 @s2n_print_stacktrace(ptr noundef %4818) #12
  %4820 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4821 = trunc nuw i8 %4820 to i1
  br i1 %4821, label %4822, label %4826

4822:                                             ; preds = %4816
  %4823 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4824 = call i32 @fileno(ptr noundef %4823) #12
  %4825 = call i32 @isatty(i32 noundef %4824) #12
  %.not822 = icmp eq i32 %4825, 0
  br i1 %.not822, label %4826, label %4827

4826:                                             ; preds = %4822, %4816
  br label %4827

4827:                                             ; preds = %4822, %4826
  %.str.5.sink2629 = phi ptr [ @.str.5, %4826 ], [ @.str.2, %4822 ]
  store i32 %4817, ptr %841, align 4, !tbaa !5
  %4828 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4829 = load i32, ptr @test_count, align 4, !tbaa !5
  %4830 = load i32, ptr %730, align 4, !tbaa !5
  %4831 = call ptr @s2n_strerror(i32 noundef %4830, ptr noundef nonnull @.str.4) #12
  %4832 = load i32, ptr %730, align 4, !tbaa !5
  %4833 = call ptr @s2n_strerror_debug(i32 noundef %4832, ptr noundef nonnull @.str.4) #12
  %4834 = load i32, ptr %841, align 4, !tbaa !5
  %4835 = call ptr @strerror(i32 noundef %4834) #12
  %4836 = load i32, ptr %841, align 4, !tbaa !5
  %4837 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4828, ptr noundef nonnull %.str.5.sink2629, i32 noundef %4829, ptr noundef nonnull @.str.99, ptr noundef nonnull @.str.1, i32 noundef 555, ptr noundef %4831, ptr noundef %4833, ptr noundef %4835, i32 noundef %4836) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4838:                                             ; preds = %4808
  %4839 = load i32, ptr @test_count, align 4, !tbaa !5
  %4840 = add nsw i32 %4839, 1
  store i32 %4840, ptr @test_count, align 4, !tbaa !5
  %4841 = load ptr, ptr %47, align 8, !tbaa !9
  %4842 = call i32 @s2n_check_record_limit(ptr noundef %4841, ptr noundef nonnull %45) #12
  %4843 = icmp eq i32 %4842, -1
  br i1 %4843, label %4844, label %4866

4844:                                             ; preds = %4838
  %4845 = load i32, ptr %841, align 4, !tbaa !5
  %4846 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4847 = call i32 @s2n_print_stacktrace(ptr noundef %4846) #12
  %4848 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4849 = trunc nuw i8 %4848 to i1
  br i1 %4849, label %4850, label %4854

4850:                                             ; preds = %4844
  %4851 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4852 = call i32 @fileno(ptr noundef %4851) #12
  %4853 = call i32 @isatty(i32 noundef %4852) #12
  %.not885 = icmp eq i32 %4853, 0
  br i1 %.not885, label %4854, label %4855

4854:                                             ; preds = %4850, %4844
  br label %4855

4855:                                             ; preds = %4850, %4854
  %.str.5.sink2638 = phi ptr [ @.str.5, %4854 ], [ @.str.2, %4850 ]
  store i32 %4845, ptr %841, align 4, !tbaa !5
  %4856 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4857 = load i32, ptr @test_count, align 4, !tbaa !5
  %4858 = load i32, ptr %730, align 4, !tbaa !5
  %4859 = call ptr @s2n_strerror(i32 noundef %4858, ptr noundef nonnull @.str.4) #12
  %4860 = load i32, ptr %730, align 4, !tbaa !5
  %4861 = call ptr @s2n_strerror_debug(i32 noundef %4860, ptr noundef nonnull @.str.4) #12
  %4862 = load i32, ptr %841, align 4, !tbaa !5
  %4863 = call ptr @strerror(i32 noundef %4862) #12
  %4864 = load i32, ptr %841, align 4, !tbaa !5
  %4865 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4856, ptr noundef nonnull %.str.5.sink2638, i32 noundef %4857, ptr noundef nonnull @.str.98, ptr noundef nonnull @.str.1, i32 noundef 556, ptr noundef %4859, ptr noundef %4861, ptr noundef %4863, i32 noundef %4864) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4866:                                             ; preds = %4838
  %4867 = load i32, ptr @test_count, align 4, !tbaa !5
  %4868 = add nsw i32 %4867, 1
  store i32 %4868, ptr @test_count, align 4, !tbaa !5
  %4869 = load ptr, ptr %47, align 8, !tbaa !9
  %4870 = getelementptr inbounds i8, ptr %4869, i64 4176
  %4871 = call zeroext i1 @s2n_atomic_flag_test(ptr noundef nonnull %4870) #12
  br i1 %4871, label %4872, label %4894

4872:                                             ; preds = %4866
  %4873 = load i32, ptr %841, align 4, !tbaa !5
  %4874 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4875 = call i32 @s2n_print_stacktrace(ptr noundef %4874) #12
  %4876 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4877 = trunc nuw i8 %4876 to i1
  br i1 %4877, label %4878, label %4882

4878:                                             ; preds = %4872
  %4879 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4880 = call i32 @fileno(ptr noundef %4879) #12
  %4881 = call i32 @isatty(i32 noundef %4880) #12
  %.not884 = icmp eq i32 %4881, 0
  br i1 %.not884, label %4882, label %4883

4882:                                             ; preds = %4878, %4872
  br label %4883

4883:                                             ; preds = %4878, %4882
  %.str.5.sink2647 = phi ptr [ @.str.5, %4882 ], [ @.str.2, %4878 ]
  store i32 %4873, ptr %841, align 4, !tbaa !5
  %4884 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4885 = load i32, ptr @test_count, align 4, !tbaa !5
  %4886 = load i32, ptr %730, align 4, !tbaa !5
  %4887 = call ptr @s2n_strerror(i32 noundef %4886, ptr noundef nonnull @.str.4) #12
  %4888 = load i32, ptr %730, align 4, !tbaa !5
  %4889 = call ptr @s2n_strerror_debug(i32 noundef %4888, ptr noundef nonnull @.str.4) #12
  %4890 = load i32, ptr %841, align 4, !tbaa !5
  %4891 = call ptr @strerror(i32 noundef %4890) #12
  %4892 = load i32, ptr %841, align 4, !tbaa !5
  %4893 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4884, ptr noundef nonnull %.str.5.sink2647, i32 noundef %4885, ptr noundef nonnull @.str.94, ptr noundef nonnull @.str.1, i32 noundef 557, ptr noundef %4887, ptr noundef %4889, ptr noundef %4891, i32 noundef %4892) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4894:                                             ; preds = %4866
  %4895 = load ptr, ptr %47, align 8, !tbaa !9
  %4896 = getelementptr inbounds i8, ptr %4895, i64 4176
  call void @s2n_atomic_flag_clear(ptr noundef nonnull %4896) #12
  %4897 = load i32, ptr @test_count, align 4, !tbaa !5
  %4898 = add nsw i32 %4897, 1
  store i32 %4898, ptr @test_count, align 4, !tbaa !5
  %4899 = add i64 %179, -1
  %4900 = call i32 @s2n_write_uint64(i64 noundef %4899, ptr noundef nonnull %46)
  %4901 = call zeroext i1 @s2n_result_is_ok(i32 %4900)
  br i1 %4901, label %4924, label %4902

4902:                                             ; preds = %4894
  %4903 = load i32, ptr %841, align 4, !tbaa !5
  %4904 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4905 = call i32 @s2n_print_stacktrace(ptr noundef %4904) #12
  %4906 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4907 = trunc nuw i8 %4906 to i1
  br i1 %4907, label %4908, label %4912

4908:                                             ; preds = %4902
  %4909 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4910 = call i32 @fileno(ptr noundef %4909) #12
  %4911 = call i32 @isatty(i32 noundef %4910) #12
  %.not823 = icmp eq i32 %4911, 0
  br i1 %.not823, label %4912, label %4913

4912:                                             ; preds = %4908, %4902
  br label %4913

4913:                                             ; preds = %4908, %4912
  %.str.5.sink2656 = phi ptr [ @.str.5, %4912 ], [ @.str.2, %4908 ]
  store i32 %4903, ptr %841, align 4, !tbaa !5
  %4914 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4915 = load i32, ptr @test_count, align 4, !tbaa !5
  %4916 = load i32, ptr %730, align 4, !tbaa !5
  %4917 = call ptr @s2n_strerror(i32 noundef %4916, ptr noundef nonnull @.str.4) #12
  %4918 = load i32, ptr %730, align 4, !tbaa !5
  %4919 = call ptr @s2n_strerror_debug(i32 noundef %4918, ptr noundef nonnull @.str.4) #12
  %4920 = load i32, ptr %841, align 4, !tbaa !5
  %4921 = call ptr @strerror(i32 noundef %4920) #12
  %4922 = load i32, ptr %841, align 4, !tbaa !5
  %4923 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4914, ptr noundef nonnull %.str.5.sink2656, i32 noundef %4915, ptr noundef nonnull @.str.100, ptr noundef nonnull @.str.1, i32 noundef 561, ptr noundef %4917, ptr noundef %4919, ptr noundef %4921, i32 noundef %4922) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4924:                                             ; preds = %4894
  %4925 = load i32, ptr @test_count, align 4, !tbaa !5
  %4926 = add nsw i32 %4925, 1
  store i32 %4926, ptr @test_count, align 4, !tbaa !5
  %4927 = load ptr, ptr %47, align 8, !tbaa !9
  %4928 = call i32 @s2n_check_record_limit(ptr noundef %4927, ptr noundef nonnull %45) #12
  %4929 = icmp eq i32 %4928, -1
  br i1 %4929, label %4930, label %4952

4930:                                             ; preds = %4924
  %4931 = load i32, ptr %841, align 4, !tbaa !5
  %4932 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4933 = call i32 @s2n_print_stacktrace(ptr noundef %4932) #12
  %4934 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4935 = trunc nuw i8 %4934 to i1
  br i1 %4935, label %4936, label %4940

4936:                                             ; preds = %4930
  %4937 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4938 = call i32 @fileno(ptr noundef %4937) #12
  %4939 = call i32 @isatty(i32 noundef %4938) #12
  %.not883 = icmp eq i32 %4939, 0
  br i1 %.not883, label %4940, label %4941

4940:                                             ; preds = %4936, %4930
  br label %4941

4941:                                             ; preds = %4936, %4940
  %.str.5.sink2665 = phi ptr [ @.str.5, %4940 ], [ @.str.2, %4936 ]
  store i32 %4931, ptr %841, align 4, !tbaa !5
  %4942 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4943 = load i32, ptr @test_count, align 4, !tbaa !5
  %4944 = load i32, ptr %730, align 4, !tbaa !5
  %4945 = call ptr @s2n_strerror(i32 noundef %4944, ptr noundef nonnull @.str.4) #12
  %4946 = load i32, ptr %730, align 4, !tbaa !5
  %4947 = call ptr @s2n_strerror_debug(i32 noundef %4946, ptr noundef nonnull @.str.4) #12
  %4948 = load i32, ptr %841, align 4, !tbaa !5
  %4949 = call ptr @strerror(i32 noundef %4948) #12
  %4950 = load i32, ptr %841, align 4, !tbaa !5
  %4951 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4942, ptr noundef nonnull %.str.5.sink2665, i32 noundef %4943, ptr noundef nonnull @.str.98, ptr noundef nonnull @.str.1, i32 noundef 562, ptr noundef %4945, ptr noundef %4947, ptr noundef %4949, i32 noundef %4950) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4952:                                             ; preds = %4924
  %4953 = load i32, ptr @test_count, align 4, !tbaa !5
  %4954 = add nsw i32 %4953, 1
  store i32 %4954, ptr @test_count, align 4, !tbaa !5
  %4955 = load ptr, ptr %47, align 8, !tbaa !9
  %4956 = getelementptr inbounds i8, ptr %4955, i64 4176
  %4957 = call zeroext i1 @s2n_atomic_flag_test(ptr noundef nonnull %4956) #12
  br i1 %4957, label %4958, label %4980

4958:                                             ; preds = %4952
  %4959 = load i32, ptr %841, align 4, !tbaa !5
  %4960 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4961 = call i32 @s2n_print_stacktrace(ptr noundef %4960) #12
  %4962 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4963 = trunc nuw i8 %4962 to i1
  br i1 %4963, label %4964, label %4968

4964:                                             ; preds = %4958
  %4965 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4966 = call i32 @fileno(ptr noundef %4965) #12
  %4967 = call i32 @isatty(i32 noundef %4966) #12
  %.not882 = icmp eq i32 %4967, 0
  br i1 %.not882, label %4968, label %4969

4968:                                             ; preds = %4964, %4958
  br label %4969

4969:                                             ; preds = %4964, %4968
  %.str.5.sink2674 = phi ptr [ @.str.5, %4968 ], [ @.str.2, %4964 ]
  store i32 %4959, ptr %841, align 4, !tbaa !5
  %4970 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4971 = load i32, ptr @test_count, align 4, !tbaa !5
  %4972 = load i32, ptr %730, align 4, !tbaa !5
  %4973 = call ptr @s2n_strerror(i32 noundef %4972, ptr noundef nonnull @.str.4) #12
  %4974 = load i32, ptr %730, align 4, !tbaa !5
  %4975 = call ptr @s2n_strerror_debug(i32 noundef %4974, ptr noundef nonnull @.str.4) #12
  %4976 = load i32, ptr %841, align 4, !tbaa !5
  %4977 = call ptr @strerror(i32 noundef %4976) #12
  %4978 = load i32, ptr %841, align 4, !tbaa !5
  %4979 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4970, ptr noundef nonnull %.str.5.sink2674, i32 noundef %4971, ptr noundef nonnull @.str.94, ptr noundef nonnull @.str.1, i32 noundef 563, ptr noundef %4973, ptr noundef %4975, ptr noundef %4977, i32 noundef %4978) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4980:                                             ; preds = %4952
  %4981 = load ptr, ptr %47, align 8, !tbaa !9
  %4982 = getelementptr inbounds i8, ptr %4981, i64 4176
  call void @s2n_atomic_flag_clear(ptr noundef nonnull %4982) #12
  %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 = call i32 @s2n_write_uint64(i64 noundef %179, ptr noundef nonnull %46)
  %4986 = call zeroext i1 @s2n_result_is_ok(i32 %4985)
  br i1 %4986, label %5009, label %4987

4987:                                             ; preds = %4980
  %4988 = load i32, ptr %841, align 4, !tbaa !5
  %4989 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4990 = call i32 @s2n_print_stacktrace(ptr noundef %4989) #12
  %4991 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4992 = trunc nuw i8 %4991 to i1
  br i1 %4992, label %4993, label %4997

4993:                                             ; preds = %4987
  %4994 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4995 = call i32 @fileno(ptr noundef %4994) #12
  %4996 = call i32 @isatty(i32 noundef %4995) #12
  %.not824 = icmp eq i32 %4996, 0
  br i1 %.not824, label %4997, label %4998

4997:                                             ; preds = %4993, %4987
  br label %4998

4998:                                             ; preds = %4993, %4997
  %.str.5.sink2683 = phi ptr [ @.str.5, %4997 ], [ @.str.2, %4993 ]
  store i32 %4988, ptr %841, align 4, !tbaa !5
  %4999 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5000 = load i32, ptr @test_count, align 4, !tbaa !5
  %5001 = load i32, ptr %730, align 4, !tbaa !5
  %5002 = call ptr @s2n_strerror(i32 noundef %5001, ptr noundef nonnull @.str.4) #12
  %5003 = load i32, ptr %730, align 4, !tbaa !5
  %5004 = call ptr @s2n_strerror_debug(i32 noundef %5003, ptr noundef nonnull @.str.4) #12
  %5005 = load i32, ptr %841, align 4, !tbaa !5
  %5006 = call ptr @strerror(i32 noundef %5005) #12
  %5007 = load i32, ptr %841, align 4, !tbaa !5
  %5008 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4999, ptr noundef nonnull %.str.5.sink2683, i32 noundef %5000, ptr noundef nonnull @.str.101, ptr noundef nonnull @.str.1, i32 noundef 567, ptr noundef %5002, ptr noundef %5004, ptr noundef %5006, i32 noundef %5007) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5009:                                             ; preds = %4980
  %5010 = load i32, ptr @test_count, align 4, !tbaa !5
  %5011 = add nsw i32 %5010, 1
  store i32 %5011, ptr @test_count, align 4, !tbaa !5
  %5012 = load ptr, ptr %47, align 8, !tbaa !9
  %5013 = call i32 @s2n_check_record_limit(ptr noundef %5012, ptr noundef nonnull %45) #12
  %5014 = icmp eq i32 %5013, -1
  br i1 %5014, label %5015, label %5037

5015:                                             ; preds = %5009
  %5016 = load i32, ptr %841, align 4, !tbaa !5
  %5017 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5018 = call i32 @s2n_print_stacktrace(ptr noundef %5017) #12
  %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) #12
  %5024 = call i32 @isatty(i32 noundef %5023) #12
  %.not881 = icmp eq i32 %5024, 0
  br i1 %.not881, label %5025, label %5026

5025:                                             ; preds = %5021, %5015
  br label %5026

5026:                                             ; preds = %5021, %5025
  %.str.5.sink2692 = phi ptr [ @.str.5, %5025 ], [ @.str.2, %5021 ]
  store i32 %5016, ptr %841, 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 %730, align 4, !tbaa !5
  %5030 = call ptr @s2n_strerror(i32 noundef %5029, ptr noundef nonnull @.str.4) #12
  %5031 = load i32, ptr %730, align 4, !tbaa !5
  %5032 = call ptr @s2n_strerror_debug(i32 noundef %5031, ptr noundef nonnull @.str.4) #12
  %5033 = load i32, ptr %841, align 4, !tbaa !5
  %5034 = call ptr @strerror(i32 noundef %5033) #12
  %5035 = load i32, ptr %841, align 4, !tbaa !5
  %5036 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5027, ptr noundef nonnull %.str.5.sink2692, i32 noundef %5028, ptr noundef nonnull @.str.98, ptr noundef nonnull @.str.1, i32 noundef 568, ptr noundef %5030, ptr noundef %5032, ptr noundef %5034, i32 noundef %5035) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5037:                                             ; preds = %5009
  %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 %47, align 8, !tbaa !9
  %5041 = getelementptr inbounds i8, ptr %5040, i64 4176
  %5042 = call zeroext i1 @s2n_atomic_flag_test(ptr noundef nonnull %5041) #12
  br i1 %5042, label %5065, label %5043

5043:                                             ; preds = %5037
  %5044 = load i32, ptr %841, align 4, !tbaa !5
  %5045 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5046 = call i32 @s2n_print_stacktrace(ptr noundef %5045) #12
  %5047 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5048 = trunc nuw i8 %5047 to i1
  br i1 %5048, label %5049, label %5053

5049:                                             ; preds = %5043
  %5050 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5051 = call i32 @fileno(ptr noundef %5050) #12
  %5052 = call i32 @isatty(i32 noundef %5051) #12
  %.not825 = icmp eq i32 %5052, 0
  br i1 %.not825, label %5053, label %5054

5053:                                             ; preds = %5049, %5043
  br label %5054

5054:                                             ; preds = %5049, %5053
  %.str.5.sink2701 = phi ptr [ @.str.5, %5053 ], [ @.str.2, %5049 ]
  store i32 %5044, ptr %841, align 4, !tbaa !5
  %5055 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5056 = load i32, ptr @test_count, align 4, !tbaa !5
  %5057 = load i32, ptr %730, align 4, !tbaa !5
  %5058 = call ptr @s2n_strerror(i32 noundef %5057, ptr noundef nonnull @.str.4) #12
  %5059 = load i32, ptr %730, align 4, !tbaa !5
  %5060 = call ptr @s2n_strerror_debug(i32 noundef %5059, ptr noundef nonnull @.str.4) #12
  %5061 = load i32, ptr %841, align 4, !tbaa !5
  %5062 = call ptr @strerror(i32 noundef %5061) #12
  %5063 = load i32, ptr %841, align 4, !tbaa !5
  %5064 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5055, ptr noundef nonnull %.str.5.sink2701, i32 noundef %5056, ptr noundef nonnull @.str.61, ptr noundef nonnull @.str.1, i32 noundef 569, ptr noundef %5058, ptr noundef %5060, ptr noundef %5062, i32 noundef %5063) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5065:                                             ; preds = %5037
  %5066 = load i32, ptr @test_count, align 4, !tbaa !5
  %5067 = add nsw i32 %5066, 1
  store i32 %5067, ptr @test_count, align 4, !tbaa !5
  %5068 = call i32 @s2n_write_uint64(i64 noundef 0, ptr noundef nonnull %46)
  %5069 = call zeroext i1 @s2n_result_is_ok(i32 %5068)
  br i1 %5069, label %5092, label %5070

5070:                                             ; preds = %5065
  %5071 = load i32, ptr %841, align 4, !tbaa !5
  %5072 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5073 = call i32 @s2n_print_stacktrace(ptr noundef %5072) #12
  %5074 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5075 = trunc nuw i8 %5074 to i1
  br i1 %5075, label %5076, label %5080

5076:                                             ; preds = %5070
  %5077 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5078 = call i32 @fileno(ptr noundef %5077) #12
  %5079 = call i32 @isatty(i32 noundef %5078) #12
  %.not826 = icmp eq i32 %5079, 0
  br i1 %.not826, label %5080, label %5081

5080:                                             ; preds = %5076, %5070
  br label %5081

5081:                                             ; preds = %5076, %5080
  %.str.5.sink2710 = phi ptr [ @.str.5, %5080 ], [ @.str.2, %5076 ]
  store i32 %5071, ptr %841, align 4, !tbaa !5
  %5082 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5083 = load i32, ptr @test_count, align 4, !tbaa !5
  %5084 = load i32, ptr %730, align 4, !tbaa !5
  %5085 = call ptr @s2n_strerror(i32 noundef %5084, ptr noundef nonnull @.str.4) #12
  %5086 = load i32, ptr %730, align 4, !tbaa !5
  %5087 = call ptr @s2n_strerror_debug(i32 noundef %5086, ptr noundef nonnull @.str.4) #12
  %5088 = load i32, ptr %841, align 4, !tbaa !5
  %5089 = call ptr @strerror(i32 noundef %5088) #12
  %5090 = load i32, ptr %841, align 4, !tbaa !5
  %5091 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5082, ptr noundef nonnull %.str.5.sink2710, i32 noundef %5083, ptr noundef nonnull @.str.97, ptr noundef nonnull @.str.1, i32 noundef 572, ptr noundef %5085, ptr noundef %5087, ptr noundef %5089, i32 noundef %5090) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5092:                                             ; preds = %5065
  %5093 = load i32, ptr @test_count, align 4, !tbaa !5
  %5094 = add nsw i32 %5093, 1
  store i32 %5094, ptr @test_count, align 4, !tbaa !5
  %5095 = load ptr, ptr %47, align 8, !tbaa !9
  %5096 = call i32 @s2n_check_record_limit(ptr noundef %5095, ptr noundef nonnull %45) #12
  %5097 = icmp eq i32 %5096, -1
  br i1 %5097, label %5098, label %5120

5098:                                             ; preds = %5092
  %5099 = load i32, ptr %841, align 4, !tbaa !5
  %5100 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5101 = call i32 @s2n_print_stacktrace(ptr noundef %5100) #12
  %5102 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5103 = trunc nuw i8 %5102 to i1
  br i1 %5103, label %5104, label %5108

5104:                                             ; preds = %5098
  %5105 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5106 = call i32 @fileno(ptr noundef %5105) #12
  %5107 = call i32 @isatty(i32 noundef %5106) #12
  %.not880 = icmp eq i32 %5107, 0
  br i1 %.not880, label %5108, label %5109

5108:                                             ; preds = %5104, %5098
  br label %5109

5109:                                             ; preds = %5104, %5108
  %.str.5.sink2719 = phi ptr [ @.str.5, %5108 ], [ @.str.2, %5104 ]
  store i32 %5099, ptr %841, align 4, !tbaa !5
  %5110 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5111 = load i32, ptr @test_count, align 4, !tbaa !5
  %5112 = load i32, ptr %730, align 4, !tbaa !5
  %5113 = call ptr @s2n_strerror(i32 noundef %5112, ptr noundef nonnull @.str.4) #12
  %5114 = load i32, ptr %730, align 4, !tbaa !5
  %5115 = call ptr @s2n_strerror_debug(i32 noundef %5114, ptr noundef nonnull @.str.4) #12
  %5116 = load i32, ptr %841, align 4, !tbaa !5
  %5117 = call ptr @strerror(i32 noundef %5116) #12
  %5118 = load i32, ptr %841, align 4, !tbaa !5
  %5119 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5110, ptr noundef nonnull %.str.5.sink2719, i32 noundef %5111, ptr noundef nonnull @.str.98, ptr noundef nonnull @.str.1, i32 noundef 573, ptr noundef %5113, ptr noundef %5115, ptr noundef %5117, i32 noundef %5118) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5120:                                             ; preds = %5092
  %5121 = load i32, ptr @test_count, align 4, !tbaa !5
  %5122 = add nsw i32 %5121, 1
  store i32 %5122, ptr @test_count, align 4, !tbaa !5
  %5123 = load ptr, ptr %47, align 8, !tbaa !9
  %5124 = getelementptr inbounds i8, ptr %5123, i64 4176
  %5125 = call zeroext i1 @s2n_atomic_flag_test(ptr noundef nonnull %5124) #12
  br i1 %5125, label %5148, label %5126

5126:                                             ; preds = %5120
  %5127 = load i32, ptr %841, align 4, !tbaa !5
  %5128 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5129 = call i32 @s2n_print_stacktrace(ptr noundef %5128) #12
  %5130 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5131 = trunc nuw i8 %5130 to i1
  br i1 %5131, label %5132, label %5136

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

5136:                                             ; preds = %5132, %5126
  br label %5137

5137:                                             ; preds = %5132, %5136
  %.str.5.sink2728 = phi ptr [ @.str.5, %5136 ], [ @.str.2, %5132 ]
  store i32 %5127, ptr %841, align 4, !tbaa !5
  %5138 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5139 = load i32, ptr @test_count, align 4, !tbaa !5
  %5140 = load i32, ptr %730, align 4, !tbaa !5
  %5141 = call ptr @s2n_strerror(i32 noundef %5140, ptr noundef nonnull @.str.4) #12
  %5142 = load i32, ptr %730, align 4, !tbaa !5
  %5143 = call ptr @s2n_strerror_debug(i32 noundef %5142, ptr noundef nonnull @.str.4) #12
  %5144 = load i32, ptr %841, align 4, !tbaa !5
  %5145 = call ptr @strerror(i32 noundef %5144) #12
  %5146 = load i32, ptr %841, align 4, !tbaa !5
  %5147 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5138, ptr noundef nonnull %.str.5.sink2728, i32 noundef %5139, ptr noundef nonnull @.str.61, ptr noundef nonnull @.str.1, i32 noundef 574, ptr noundef %5141, ptr noundef %5143, ptr noundef %5145, i32 noundef %5146) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5148:                                             ; preds = %5120
  %5149 = load ptr, ptr %47, align 8, !tbaa !9
  %5150 = getelementptr inbounds i8, ptr %5149, i64 4176
  call void @s2n_atomic_flag_clear(ptr noundef nonnull %5150) #12
  %5151 = load i32, ptr @test_count, align 4, !tbaa !5
  %5152 = add nsw i32 %5151, 1
  store i32 %5152, ptr @test_count, align 4, !tbaa !5
  %5153 = add i64 %179, 1
  %5154 = call i32 @s2n_write_uint64(i64 noundef %5153, ptr noundef nonnull %46)
  %5155 = call zeroext i1 @s2n_result_is_ok(i32 %5154)
  br i1 %5155, label %5178, label %5156

5156:                                             ; preds = %5148
  %5157 = load i32, ptr %841, align 4, !tbaa !5
  %5158 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5159 = call i32 @s2n_print_stacktrace(ptr noundef %5158) #12
  %5160 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5161 = trunc nuw i8 %5160 to i1
  br i1 %5161, label %5162, label %5166

5162:                                             ; preds = %5156
  %5163 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5164 = call i32 @fileno(ptr noundef %5163) #12
  %5165 = call i32 @isatty(i32 noundef %5164) #12
  %.not828 = icmp eq i32 %5165, 0
  br i1 %.not828, label %5166, label %5167

5166:                                             ; preds = %5162, %5156
  br label %5167

5167:                                             ; preds = %5162, %5166
  %.str.5.sink2737 = phi ptr [ @.str.5, %5166 ], [ @.str.2, %5162 ]
  store i32 %5157, ptr %841, align 4, !tbaa !5
  %5168 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5169 = load i32, ptr @test_count, align 4, !tbaa !5
  %5170 = load i32, ptr %730, align 4, !tbaa !5
  %5171 = call ptr @s2n_strerror(i32 noundef %5170, ptr noundef nonnull @.str.4) #12
  %5172 = load i32, ptr %730, align 4, !tbaa !5
  %5173 = call ptr @s2n_strerror_debug(i32 noundef %5172, ptr noundef nonnull @.str.4) #12
  %5174 = load i32, ptr %841, align 4, !tbaa !5
  %5175 = call ptr @strerror(i32 noundef %5174) #12
  %5176 = load i32, ptr %841, align 4, !tbaa !5
  %5177 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5168, ptr noundef nonnull %.str.5.sink2737, i32 noundef %5169, ptr noundef nonnull @.str.102, ptr noundef nonnull @.str.1, i32 noundef 578, ptr noundef %5171, ptr noundef %5173, ptr noundef %5175, i32 noundef %5176) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5178:                                             ; preds = %5148
  %5179 = load i32, ptr @test_count, align 4, !tbaa !5
  %5180 = add nsw i32 %5179, 1
  store i32 %5180, ptr @test_count, align 4, !tbaa !5
  %5181 = load ptr, ptr %47, align 8, !tbaa !9
  %5182 = call i32 @s2n_check_record_limit(ptr noundef %5181, ptr noundef nonnull %45) #12
  %5183 = icmp eq i32 %5182, -1
  br i1 %5183, label %5184, label %5206

5184:                                             ; preds = %5178
  %5185 = load i32, ptr %841, align 4, !tbaa !5
  %5186 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5187 = call i32 @s2n_print_stacktrace(ptr noundef %5186) #12
  %5188 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5189 = trunc nuw i8 %5188 to i1
  br i1 %5189, label %5190, label %5194

5190:                                             ; preds = %5184
  %5191 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5192 = call i32 @fileno(ptr noundef %5191) #12
  %5193 = call i32 @isatty(i32 noundef %5192) #12
  %.not879 = icmp eq i32 %5193, 0
  br i1 %.not879, label %5194, label %5195

5194:                                             ; preds = %5190, %5184
  br label %5195

5195:                                             ; preds = %5190, %5194
  %.str.5.sink2746 = phi ptr [ @.str.5, %5194 ], [ @.str.2, %5190 ]
  store i32 %5185, ptr %841, align 4, !tbaa !5
  %5196 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5197 = load i32, ptr @test_count, align 4, !tbaa !5
  %5198 = load i32, ptr %730, align 4, !tbaa !5
  %5199 = call ptr @s2n_strerror(i32 noundef %5198, ptr noundef nonnull @.str.4) #12
  %5200 = load i32, ptr %730, align 4, !tbaa !5
  %5201 = call ptr @s2n_strerror_debug(i32 noundef %5200, ptr noundef nonnull @.str.4) #12
  %5202 = load i32, ptr %841, align 4, !tbaa !5
  %5203 = call ptr @strerror(i32 noundef %5202) #12
  %5204 = load i32, ptr %841, align 4, !tbaa !5
  %5205 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5196, ptr noundef nonnull %.str.5.sink2746, i32 noundef %5197, ptr noundef nonnull @.str.98, ptr noundef nonnull @.str.1, i32 noundef 579, ptr noundef %5199, ptr noundef %5201, ptr noundef %5203, i32 noundef %5204) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5206:                                             ; preds = %5178
  %5207 = load i32, ptr @test_count, align 4, !tbaa !5
  %5208 = add nsw i32 %5207, 1
  store i32 %5208, ptr @test_count, align 4, !tbaa !5
  %5209 = load ptr, ptr %47, align 8, !tbaa !9
  %5210 = getelementptr inbounds i8, ptr %5209, i64 4176
  %5211 = call zeroext i1 @s2n_atomic_flag_test(ptr noundef nonnull %5210) #12
  br i1 %5211, label %5234, label %5212

5212:                                             ; preds = %5206
  %5213 = load i32, ptr %841, align 4, !tbaa !5
  %5214 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5215 = call i32 @s2n_print_stacktrace(ptr noundef %5214) #12
  %5216 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5217 = trunc nuw i8 %5216 to i1
  br i1 %5217, label %5218, label %5222

5218:                                             ; preds = %5212
  %5219 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5220 = call i32 @fileno(ptr noundef %5219) #12
  %5221 = call i32 @isatty(i32 noundef %5220) #12
  %.not829 = icmp eq i32 %5221, 0
  br i1 %.not829, label %5222, label %5223

5222:                                             ; preds = %5218, %5212
  br label %5223

5223:                                             ; preds = %5218, %5222
  %.str.5.sink2755 = phi ptr [ @.str.5, %5222 ], [ @.str.2, %5218 ]
  store i32 %5213, ptr %841, align 4, !tbaa !5
  %5224 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5225 = load i32, ptr @test_count, align 4, !tbaa !5
  %5226 = load i32, ptr %730, align 4, !tbaa !5
  %5227 = call ptr @s2n_strerror(i32 noundef %5226, ptr noundef nonnull @.str.4) #12
  %5228 = load i32, ptr %730, align 4, !tbaa !5
  %5229 = call ptr @s2n_strerror_debug(i32 noundef %5228, ptr noundef nonnull @.str.4) #12
  %5230 = load i32, ptr %841, align 4, !tbaa !5
  %5231 = call ptr @strerror(i32 noundef %5230) #12
  %5232 = load i32, ptr %841, align 4, !tbaa !5
  %5233 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5224, ptr noundef nonnull %.str.5.sink2755, i32 noundef %5225, ptr noundef nonnull @.str.61, ptr noundef nonnull @.str.1, i32 noundef 580, ptr noundef %5227, ptr noundef %5229, ptr noundef %5231, i32 noundef %5232) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5234:                                             ; preds = %5206
  %5235 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %47) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %47) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %46) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %45) #12
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %48) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %48, i8 0, i64 24, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %49) #12
  store i64 0, ptr %49, align 8
  %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 = call i32 @s2n_blob_init(ptr noundef nonnull %48, ptr noundef nonnull %49, i32 noundef 8) #12
  %5239 = icmp eq i32 %5238, -1
  br i1 %5239, label %5240, label %5262

5240:                                             ; preds = %5234
  %5241 = load i32, ptr %841, align 4, !tbaa !5
  %5242 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5243 = call i32 @s2n_print_stacktrace(ptr noundef %5242) #12
  %5244 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5245 = trunc nuw i8 %5244 to i1
  br i1 %5245, label %5246, label %5250

5246:                                             ; preds = %5240
  %5247 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5248 = call i32 @fileno(ptr noundef %5247) #12
  %5249 = call i32 @isatty(i32 noundef %5248) #12
  %.not878 = icmp eq i32 %5249, 0
  br i1 %.not878, label %5250, label %5251

5250:                                             ; preds = %5246, %5240
  br label %5251

5251:                                             ; preds = %5246, %5250
  %.str.5.sink2764 = phi ptr [ @.str.5, %5250 ], [ @.str.2, %5246 ]
  store i32 %5241, ptr %841, align 4, !tbaa !5
  %5252 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5253 = load i32, ptr @test_count, align 4, !tbaa !5
  %5254 = load i32, ptr %730, align 4, !tbaa !5
  %5255 = call ptr @s2n_strerror(i32 noundef %5254, ptr noundef nonnull @.str.4) #12
  %5256 = load i32, ptr %730, align 4, !tbaa !5
  %5257 = call ptr @s2n_strerror_debug(i32 noundef %5256, ptr noundef nonnull @.str.4) #12
  %5258 = load i32, ptr %841, align 4, !tbaa !5
  %5259 = call ptr @strerror(i32 noundef %5258) #12
  %5260 = load i32, ptr %841, align 4, !tbaa !5
  %5261 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5252, ptr noundef nonnull %.str.5.sink2764, i32 noundef %5253, ptr noundef nonnull @.str.96, ptr noundef nonnull @.str.1, i32 noundef 587, ptr noundef %5255, ptr noundef %5257, ptr noundef %5259, i32 noundef %5260) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5262:                                             ; preds = %5234
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %50) #12
  %5263 = call ptr @s2n_connection_new(i32 noundef 0) #12
  store ptr %5263, ptr %50, align 8, !tbaa !9
  %5264 = load i32, ptr @test_count, align 4, !tbaa !5
  %5265 = add nsw i32 %5264, 1
  store i32 %5265, ptr @test_count, align 4, !tbaa !5
  %5266 = icmp eq ptr %5263, null
  br i1 %5266, label %5267, label %5289

5267:                                             ; preds = %5262
  %5268 = load i32, ptr %841, align 4, !tbaa !5
  %5269 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5270 = call i32 @s2n_print_stacktrace(ptr noundef %5269) #12
  %5271 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5272 = trunc nuw i8 %5271 to i1
  br i1 %5272, label %5273, label %5277

5273:                                             ; preds = %5267
  %5274 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5275 = call i32 @fileno(ptr noundef %5274) #12
  %5276 = call i32 @isatty(i32 noundef %5275) #12
  %.not877 = icmp eq i32 %5276, 0
  br i1 %.not877, label %5277, label %5278

5277:                                             ; preds = %5273, %5267
  br label %5278

5278:                                             ; preds = %5273, %5277
  %.str.5.sink2773 = phi ptr [ @.str.5, %5277 ], [ @.str.2, %5273 ]
  store i32 %5268, ptr %841, align 4, !tbaa !5
  %5279 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5280 = load i32, ptr @test_count, align 4, !tbaa !5
  %5281 = load i32, ptr %730, align 4, !tbaa !5
  %5282 = call ptr @s2n_strerror(i32 noundef %5281, ptr noundef nonnull @.str.4) #12
  %5283 = load i32, ptr %730, align 4, !tbaa !5
  %5284 = call ptr @s2n_strerror_debug(i32 noundef %5283, ptr noundef nonnull @.str.4) #12
  %5285 = load i32, ptr %841, align 4, !tbaa !5
  %5286 = call ptr @strerror(i32 noundef %5285) #12
  %5287 = load i32, ptr %841, align 4, !tbaa !5
  %5288 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5279, ptr noundef nonnull %.str.5.sink2773, i32 noundef %5280, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 590, ptr noundef %5282, ptr noundef %5284, ptr noundef %5286, i32 noundef %5287) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5289:                                             ; preds = %5262
  %5290 = getelementptr inbounds i8, ptr %5263, i64 232
  %5291 = load ptr, ptr %5290, align 8, !tbaa !49
  store ptr %spec.store.select, ptr %5291, align 8, !tbaa !50
  %5292 = load ptr, ptr %50, align 8, !tbaa !9
  %5293 = getelementptr inbounds i8, ptr %5292, i64 4176
  call void @s2n_atomic_flag_clear(ptr noundef nonnull %5293) #12
  %5294 = load i32, ptr @test_count, align 4, !tbaa !5
  %5295 = add nsw i32 %5294, 1
  store i32 %5295, ptr @test_count, align 4, !tbaa !5
  %5296 = call i32 @s2n_write_uint64(i64 noundef 0, ptr noundef nonnull %49)
  %5297 = call zeroext i1 @s2n_result_is_ok(i32 %5296)
  br i1 %5297, label %5320, label %5298

5298:                                             ; preds = %5289
  %5299 = load i32, ptr %841, align 4, !tbaa !5
  %5300 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5301 = call i32 @s2n_print_stacktrace(ptr noundef %5300) #12
  %5302 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5303 = trunc nuw i8 %5302 to i1
  br i1 %5303, label %5304, label %5308

5304:                                             ; preds = %5298
  %5305 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5306 = call i32 @fileno(ptr noundef %5305) #12
  %5307 = call i32 @isatty(i32 noundef %5306) #12
  %.not830 = icmp eq i32 %5307, 0
  br i1 %.not830, label %5308, label %5309

5308:                                             ; preds = %5304, %5298
  br label %5309

5309:                                             ; preds = %5304, %5308
  %.str.5.sink2782 = phi ptr [ @.str.5, %5308 ], [ @.str.2, %5304 ]
  store i32 %5299, ptr %841, align 4, !tbaa !5
  %5310 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5311 = load i32, ptr @test_count, align 4, !tbaa !5
  %5312 = load i32, ptr %730, align 4, !tbaa !5
  %5313 = call ptr @s2n_strerror(i32 noundef %5312, ptr noundef nonnull @.str.4) #12
  %5314 = load i32, ptr %730, align 4, !tbaa !5
  %5315 = call ptr @s2n_strerror_debug(i32 noundef %5314, ptr noundef nonnull @.str.4) #12
  %5316 = load i32, ptr %841, align 4, !tbaa !5
  %5317 = call ptr @strerror(i32 noundef %5316) #12
  %5318 = load i32, ptr %841, align 4, !tbaa !5
  %5319 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5310, ptr noundef nonnull %.str.5.sink2782, i32 noundef %5311, ptr noundef nonnull @.str.97, ptr noundef nonnull @.str.1, i32 noundef 595, ptr noundef %5313, ptr noundef %5315, ptr noundef %5317, i32 noundef %5318) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5320:                                             ; preds = %5289
  %5321 = load i32, ptr @test_count, align 4, !tbaa !5
  %5322 = add nsw i32 %5321, 1
  store i32 %5322, ptr @test_count, align 4, !tbaa !5
  %5323 = load ptr, ptr %50, align 8, !tbaa !9
  %5324 = call i32 @s2n_check_record_limit(ptr noundef %5323, ptr noundef nonnull %48) #12
  %5325 = icmp eq i32 %5324, -1
  br i1 %5325, label %5326, label %5348

5326:                                             ; preds = %5320
  %5327 = load i32, ptr %841, align 4, !tbaa !5
  %5328 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5329 = call i32 @s2n_print_stacktrace(ptr noundef %5328) #12
  %5330 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5331 = trunc nuw i8 %5330 to i1
  br i1 %5331, label %5332, label %5336

5332:                                             ; preds = %5326
  %5333 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5334 = call i32 @fileno(ptr noundef %5333) #12
  %5335 = call i32 @isatty(i32 noundef %5334) #12
  %.not876 = icmp eq i32 %5335, 0
  br i1 %.not876, label %5336, label %5337

5336:                                             ; preds = %5332, %5326
  br label %5337

5337:                                             ; preds = %5332, %5336
  %.str.5.sink2791 = phi ptr [ @.str.5, %5336 ], [ @.str.2, %5332 ]
  store i32 %5327, ptr %841, align 4, !tbaa !5
  %5338 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5339 = load i32, ptr @test_count, align 4, !tbaa !5
  %5340 = load i32, ptr %730, align 4, !tbaa !5
  %5341 = call ptr @s2n_strerror(i32 noundef %5340, ptr noundef nonnull @.str.4) #12
  %5342 = load i32, ptr %730, align 4, !tbaa !5
  %5343 = call ptr @s2n_strerror_debug(i32 noundef %5342, ptr noundef nonnull @.str.4) #12
  %5344 = load i32, ptr %841, align 4, !tbaa !5
  %5345 = call ptr @strerror(i32 noundef %5344) #12
  %5346 = load i32, ptr %841, align 4, !tbaa !5
  %5347 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5338, ptr noundef nonnull %.str.5.sink2791, i32 noundef %5339, ptr noundef nonnull @.str.98, ptr noundef nonnull @.str.1, i32 noundef 596, ptr noundef %5341, ptr noundef %5343, ptr noundef %5345, i32 noundef %5346) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5348:                                             ; preds = %5320
  %5349 = load i32, ptr @test_count, align 4, !tbaa !5
  %5350 = add nsw i32 %5349, 1
  store i32 %5350, ptr @test_count, align 4, !tbaa !5
  %5351 = load ptr, ptr %50, align 8, !tbaa !9
  %5352 = getelementptr inbounds i8, ptr %5351, i64 4176
  %5353 = call zeroext i1 @s2n_atomic_flag_test(ptr noundef nonnull %5352) #12
  br i1 %5353, label %5354, label %5376

5354:                                             ; preds = %5348
  %5355 = load i32, ptr %841, align 4, !tbaa !5
  %5356 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5357 = call i32 @s2n_print_stacktrace(ptr noundef %5356) #12
  %5358 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5359 = trunc nuw i8 %5358 to i1
  br i1 %5359, label %5360, label %5364

5360:                                             ; preds = %5354
  %5361 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5362 = call i32 @fileno(ptr noundef %5361) #12
  %5363 = call i32 @isatty(i32 noundef %5362) #12
  %.not875 = icmp eq i32 %5363, 0
  br i1 %.not875, label %5364, label %5365

5364:                                             ; preds = %5360, %5354
  br label %5365

5365:                                             ; preds = %5360, %5364
  %.str.5.sink2800 = phi ptr [ @.str.5, %5364 ], [ @.str.2, %5360 ]
  store i32 %5355, ptr %841, align 4, !tbaa !5
  %5366 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5367 = load i32, ptr @test_count, align 4, !tbaa !5
  %5368 = load i32, ptr %730, align 4, !tbaa !5
  %5369 = call ptr @s2n_strerror(i32 noundef %5368, ptr noundef nonnull @.str.4) #12
  %5370 = load i32, ptr %730, align 4, !tbaa !5
  %5371 = call ptr @s2n_strerror_debug(i32 noundef %5370, ptr noundef nonnull @.str.4) #12
  %5372 = load i32, ptr %841, align 4, !tbaa !5
  %5373 = call ptr @strerror(i32 noundef %5372) #12
  %5374 = load i32, ptr %841, align 4, !tbaa !5
  %5375 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5366, ptr noundef nonnull %.str.5.sink2800, i32 noundef %5367, ptr noundef nonnull @.str.94, ptr noundef nonnull @.str.1, i32 noundef 597, ptr noundef %5369, ptr noundef %5371, ptr noundef %5373, i32 noundef %5374) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5376:                                             ; preds = %5348
  %5377 = load ptr, ptr %50, align 8, !tbaa !9
  %5378 = getelementptr inbounds i8, ptr %5377, i64 4176
  call void @s2n_atomic_flag_clear(ptr noundef nonnull %5378) #12
  %5379 = load i32, ptr @test_count, align 4, !tbaa !5
  %5380 = add nsw i32 %5379, 1
  store i32 %5380, ptr @test_count, align 4, !tbaa !5
  %5381 = call i32 @s2n_write_uint64(i64 noundef -3, ptr noundef nonnull %49)
  %5382 = call zeroext i1 @s2n_result_is_ok(i32 %5381)
  br i1 %5382, label %5405, label %5383

5383:                                             ; preds = %5376
  %5384 = load i32, ptr %841, align 4, !tbaa !5
  %5385 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5386 = call i32 @s2n_print_stacktrace(ptr noundef %5385) #12
  %5387 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5388 = trunc nuw i8 %5387 to i1
  br i1 %5388, label %5389, label %5393

5389:                                             ; preds = %5383
  %5390 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5391 = call i32 @fileno(ptr noundef %5390) #12
  %5392 = call i32 @isatty(i32 noundef %5391) #12
  %.not831 = icmp eq i32 %5392, 0
  br i1 %.not831, label %5393, label %5394

5393:                                             ; preds = %5389, %5383
  br label %5394

5394:                                             ; preds = %5389, %5393
  %.str.5.sink2809 = phi ptr [ @.str.5, %5393 ], [ @.str.2, %5389 ]
  store i32 %5384, ptr %841, align 4, !tbaa !5
  %5395 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5396 = load i32, ptr @test_count, align 4, !tbaa !5
  %5397 = load i32, ptr %730, align 4, !tbaa !5
  %5398 = call ptr @s2n_strerror(i32 noundef %5397, ptr noundef nonnull @.str.4) #12
  %5399 = load i32, ptr %730, align 4, !tbaa !5
  %5400 = call ptr @s2n_strerror_debug(i32 noundef %5399, ptr noundef nonnull @.str.4) #12
  %5401 = load i32, ptr %841, align 4, !tbaa !5
  %5402 = call ptr @strerror(i32 noundef %5401) #12
  %5403 = load i32, ptr %841, align 4, !tbaa !5
  %5404 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5395, ptr noundef nonnull %.str.5.sink2809, i32 noundef %5396, ptr noundef nonnull @.str.103, ptr noundef nonnull @.str.1, i32 noundef 601, ptr noundef %5398, ptr noundef %5400, ptr noundef %5402, i32 noundef %5403) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5405:                                             ; preds = %5376
  %5406 = load i32, ptr @test_count, align 4, !tbaa !5
  %5407 = add nsw i32 %5406, 1
  store i32 %5407, ptr @test_count, align 4, !tbaa !5
  %5408 = load ptr, ptr %50, align 8, !tbaa !9
  %5409 = call i32 @s2n_check_record_limit(ptr noundef %5408, ptr noundef nonnull %48) #12
  %5410 = icmp eq i32 %5409, -1
  br i1 %5410, label %5411, label %5433

5411:                                             ; preds = %5405
  %5412 = load i32, ptr %841, align 4, !tbaa !5
  %5413 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5414 = call i32 @s2n_print_stacktrace(ptr noundef %5413) #12
  %5415 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5416 = trunc nuw i8 %5415 to i1
  br i1 %5416, label %5417, label %5421

5417:                                             ; preds = %5411
  %5418 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5419 = call i32 @fileno(ptr noundef %5418) #12
  %5420 = call i32 @isatty(i32 noundef %5419) #12
  %.not874 = icmp eq i32 %5420, 0
  br i1 %.not874, label %5421, label %5422

5421:                                             ; preds = %5417, %5411
  br label %5422

5422:                                             ; preds = %5417, %5421
  %.str.5.sink2818 = phi ptr [ @.str.5, %5421 ], [ @.str.2, %5417 ]
  store i32 %5412, ptr %841, align 4, !tbaa !5
  %5423 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5424 = load i32, ptr @test_count, align 4, !tbaa !5
  %5425 = load i32, ptr %730, align 4, !tbaa !5
  %5426 = call ptr @s2n_strerror(i32 noundef %5425, ptr noundef nonnull @.str.4) #12
  %5427 = load i32, ptr %730, align 4, !tbaa !5
  %5428 = call ptr @s2n_strerror_debug(i32 noundef %5427, ptr noundef nonnull @.str.4) #12
  %5429 = load i32, ptr %841, align 4, !tbaa !5
  %5430 = call ptr @strerror(i32 noundef %5429) #12
  %5431 = load i32, ptr %841, align 4, !tbaa !5
  %5432 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5423, ptr noundef nonnull %.str.5.sink2818, i32 noundef %5424, ptr noundef nonnull @.str.98, ptr noundef nonnull @.str.1, i32 noundef 602, ptr noundef %5426, ptr noundef %5428, ptr noundef %5430, i32 noundef %5431) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5433:                                             ; preds = %5405
  %5434 = load i32, ptr @test_count, align 4, !tbaa !5
  %5435 = add nsw i32 %5434, 1
  store i32 %5435, ptr @test_count, align 4, !tbaa !5
  %5436 = load ptr, ptr %50, align 8, !tbaa !9
  %5437 = getelementptr inbounds i8, ptr %5436, i64 4176
  %5438 = call zeroext i1 @s2n_atomic_flag_test(ptr noundef nonnull %5437) #12
  br i1 %5438, label %5439, label %5461

5439:                                             ; preds = %5433
  %5440 = load i32, ptr %841, align 4, !tbaa !5
  %5441 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5442 = call i32 @s2n_print_stacktrace(ptr noundef %5441) #12
  %5443 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5444 = trunc nuw i8 %5443 to i1
  br i1 %5444, label %5445, label %5449

5445:                                             ; preds = %5439
  %5446 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5447 = call i32 @fileno(ptr noundef %5446) #12
  %5448 = call i32 @isatty(i32 noundef %5447) #12
  %.not873 = icmp eq i32 %5448, 0
  br i1 %.not873, label %5449, label %5450

5449:                                             ; preds = %5445, %5439
  br label %5450

5450:                                             ; preds = %5445, %5449
  %.str.5.sink2827 = phi ptr [ @.str.5, %5449 ], [ @.str.2, %5445 ]
  store i32 %5440, ptr %841, align 4, !tbaa !5
  %5451 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5452 = load i32, ptr @test_count, align 4, !tbaa !5
  %5453 = load i32, ptr %730, align 4, !tbaa !5
  %5454 = call ptr @s2n_strerror(i32 noundef %5453, ptr noundef nonnull @.str.4) #12
  %5455 = load i32, ptr %730, align 4, !tbaa !5
  %5456 = call ptr @s2n_strerror_debug(i32 noundef %5455, ptr noundef nonnull @.str.4) #12
  %5457 = load i32, ptr %841, align 4, !tbaa !5
  %5458 = call ptr @strerror(i32 noundef %5457) #12
  %5459 = load i32, ptr %841, align 4, !tbaa !5
  %5460 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5451, ptr noundef nonnull %.str.5.sink2827, i32 noundef %5452, ptr noundef nonnull @.str.94, ptr noundef nonnull @.str.1, i32 noundef 603, ptr noundef %5454, ptr noundef %5456, ptr noundef %5458, i32 noundef %5459) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5461:                                             ; preds = %5433
  %5462 = load ptr, ptr %50, align 8, !tbaa !9
  %5463 = getelementptr inbounds i8, ptr %5462, i64 4176
  call void @s2n_atomic_flag_clear(ptr noundef nonnull %5463) #12
  %5464 = load i32, ptr @test_count, align 4, !tbaa !5
  %5465 = add nsw i32 %5464, 1
  store i32 %5465, ptr @test_count, align 4, !tbaa !5
  %5466 = call i32 @s2n_write_uint64(i64 noundef -2, ptr noundef nonnull %49)
  %5467 = call zeroext i1 @s2n_result_is_ok(i32 %5466)
  br i1 %5467, label %5490, label %5468

5468:                                             ; preds = %5461
  %5469 = load i32, ptr %841, align 4, !tbaa !5
  %5470 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5471 = call i32 @s2n_print_stacktrace(ptr noundef %5470) #12
  %5472 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5473 = trunc nuw i8 %5472 to i1
  br i1 %5473, label %5474, label %5478

5474:                                             ; preds = %5468
  %5475 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5476 = call i32 @fileno(ptr noundef %5475) #12
  %5477 = call i32 @isatty(i32 noundef %5476) #12
  %.not832 = icmp eq i32 %5477, 0
  br i1 %.not832, label %5478, label %5479

5478:                                             ; preds = %5474, %5468
  br label %5479

5479:                                             ; preds = %5474, %5478
  %.str.5.sink2836 = phi ptr [ @.str.5, %5478 ], [ @.str.2, %5474 ]
  store i32 %5469, ptr %841, align 4, !tbaa !5
  %5480 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5481 = load i32, ptr @test_count, align 4, !tbaa !5
  %5482 = load i32, ptr %730, align 4, !tbaa !5
  %5483 = call ptr @s2n_strerror(i32 noundef %5482, ptr noundef nonnull @.str.4) #12
  %5484 = load i32, ptr %730, align 4, !tbaa !5
  %5485 = call ptr @s2n_strerror_debug(i32 noundef %5484, ptr noundef nonnull @.str.4) #12
  %5486 = load i32, ptr %841, align 4, !tbaa !5
  %5487 = call ptr @strerror(i32 noundef %5486) #12
  %5488 = load i32, ptr %841, align 4, !tbaa !5
  %5489 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5480, ptr noundef nonnull %.str.5.sink2836, i32 noundef %5481, ptr noundef nonnull @.str.104, ptr noundef nonnull @.str.1, i32 noundef 607, ptr noundef %5483, ptr noundef %5485, ptr noundef %5487, i32 noundef %5488) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5490:                                             ; preds = %5461
  %5491 = load i32, ptr @test_count, align 4, !tbaa !5
  %5492 = add nsw i32 %5491, 1
  store i32 %5492, ptr @test_count, align 4, !tbaa !5
  %5493 = load ptr, ptr %50, align 8, !tbaa !9
  %5494 = call i32 @s2n_check_record_limit(ptr noundef %5493, ptr noundef nonnull %48) #12
  %5495 = icmp eq i32 %5494, -1
  br i1 %5495, label %5496, label %5518

5496:                                             ; preds = %5490
  %5497 = load i32, ptr %841, align 4, !tbaa !5
  %5498 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5499 = call i32 @s2n_print_stacktrace(ptr noundef %5498) #12
  %5500 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5501 = trunc nuw i8 %5500 to i1
  br i1 %5501, label %5502, label %5506

5502:                                             ; preds = %5496
  %5503 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5504 = call i32 @fileno(ptr noundef %5503) #12
  %5505 = call i32 @isatty(i32 noundef %5504) #12
  %.not872 = icmp eq i32 %5505, 0
  br i1 %.not872, label %5506, label %5507

5506:                                             ; preds = %5502, %5496
  br label %5507

5507:                                             ; preds = %5502, %5506
  %.str.5.sink2845 = phi ptr [ @.str.5, %5506 ], [ @.str.2, %5502 ]
  store i32 %5497, ptr %841, align 4, !tbaa !5
  %5508 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5509 = load i32, ptr @test_count, align 4, !tbaa !5
  %5510 = load i32, ptr %730, align 4, !tbaa !5
  %5511 = call ptr @s2n_strerror(i32 noundef %5510, ptr noundef nonnull @.str.4) #12
  %5512 = load i32, ptr %730, align 4, !tbaa !5
  %5513 = call ptr @s2n_strerror_debug(i32 noundef %5512, ptr noundef nonnull @.str.4) #12
  %5514 = load i32, ptr %841, align 4, !tbaa !5
  %5515 = call ptr @strerror(i32 noundef %5514) #12
  %5516 = load i32, ptr %841, align 4, !tbaa !5
  %5517 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5508, ptr noundef nonnull %.str.5.sink2845, i32 noundef %5509, ptr noundef nonnull @.str.98, ptr noundef nonnull @.str.1, i32 noundef 608, ptr noundef %5511, ptr noundef %5513, ptr noundef %5515, i32 noundef %5516) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5518:                                             ; preds = %5490
  %5519 = load i32, ptr @test_count, align 4, !tbaa !5
  %5520 = add nsw i32 %5519, 1
  store i32 %5520, ptr @test_count, align 4, !tbaa !5
  %5521 = load ptr, ptr %50, align 8, !tbaa !9
  %5522 = getelementptr inbounds i8, ptr %5521, i64 4176
  %5523 = call zeroext i1 @s2n_atomic_flag_test(ptr noundef nonnull %5522) #12
  br i1 %5523, label %5524, label %5546

5524:                                             ; preds = %5518
  %5525 = load i32, ptr %841, align 4, !tbaa !5
  %5526 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5527 = call i32 @s2n_print_stacktrace(ptr noundef %5526) #12
  %5528 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5529 = trunc nuw i8 %5528 to i1
  br i1 %5529, label %5530, label %5534

5530:                                             ; preds = %5524
  %5531 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5532 = call i32 @fileno(ptr noundef %5531) #12
  %5533 = call i32 @isatty(i32 noundef %5532) #12
  %.not871 = icmp eq i32 %5533, 0
  br i1 %.not871, label %5534, label %5535

5534:                                             ; preds = %5530, %5524
  br label %5535

5535:                                             ; preds = %5530, %5534
  %.str.5.sink2854 = phi ptr [ @.str.5, %5534 ], [ @.str.2, %5530 ]
  store i32 %5525, ptr %841, align 4, !tbaa !5
  %5536 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5537 = load i32, ptr @test_count, align 4, !tbaa !5
  %5538 = load i32, ptr %730, align 4, !tbaa !5
  %5539 = call ptr @s2n_strerror(i32 noundef %5538, ptr noundef nonnull @.str.4) #12
  %5540 = load i32, ptr %730, align 4, !tbaa !5
  %5541 = call ptr @s2n_strerror_debug(i32 noundef %5540, ptr noundef nonnull @.str.4) #12
  %5542 = load i32, ptr %841, align 4, !tbaa !5
  %5543 = call ptr @strerror(i32 noundef %5542) #12
  %5544 = load i32, ptr %841, align 4, !tbaa !5
  %5545 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5536, ptr noundef nonnull %.str.5.sink2854, i32 noundef %5537, ptr noundef nonnull @.str.94, ptr noundef nonnull @.str.1, i32 noundef 609, ptr noundef %5539, ptr noundef %5541, ptr noundef %5543, i32 noundef %5544) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5546:                                             ; preds = %5518
  %5547 = load ptr, ptr %50, align 8, !tbaa !9
  %5548 = getelementptr inbounds i8, ptr %5547, i64 4176
  call void @s2n_atomic_flag_clear(ptr noundef nonnull %5548) #12
  %5549 = load i32, ptr @test_count, align 4, !tbaa !5
  %5550 = add nsw i32 %5549, 1
  store i32 %5550, ptr @test_count, align 4, !tbaa !5
  %5551 = call i32 @s2n_write_uint64(i64 noundef -1, ptr noundef nonnull %49)
  %5552 = call zeroext i1 @s2n_result_is_ok(i32 %5551)
  br i1 %5552, label %5575, label %5553

5553:                                             ; preds = %5546
  %5554 = load i32, ptr %841, align 4, !tbaa !5
  %5555 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5556 = call i32 @s2n_print_stacktrace(ptr noundef %5555) #12
  %5557 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5558 = trunc nuw i8 %5557 to i1
  br i1 %5558, label %5559, label %5563

5559:                                             ; preds = %5553
  %5560 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5561 = call i32 @fileno(ptr noundef %5560) #12
  %5562 = call i32 @isatty(i32 noundef %5561) #12
  %.not833 = icmp eq i32 %5562, 0
  br i1 %.not833, label %5563, label %5564

5563:                                             ; preds = %5559, %5553
  br label %5564

5564:                                             ; preds = %5559, %5563
  %.str.5.sink2863 = phi ptr [ @.str.5, %5563 ], [ @.str.2, %5559 ]
  store i32 %5554, ptr %841, align 4, !tbaa !5
  %5565 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5566 = load i32, ptr @test_count, align 4, !tbaa !5
  %5567 = load i32, ptr %730, align 4, !tbaa !5
  %5568 = call ptr @s2n_strerror(i32 noundef %5567, ptr noundef nonnull @.str.4) #12
  %5569 = load i32, ptr %730, align 4, !tbaa !5
  %5570 = call ptr @s2n_strerror_debug(i32 noundef %5569, ptr noundef nonnull @.str.4) #12
  %5571 = load i32, ptr %841, align 4, !tbaa !5
  %5572 = call ptr @strerror(i32 noundef %5571) #12
  %5573 = load i32, ptr %841, align 4, !tbaa !5
  %5574 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5565, ptr noundef nonnull %.str.5.sink2863, i32 noundef %5566, ptr noundef nonnull @.str.105, ptr noundef nonnull @.str.1, i32 noundef 613, ptr noundef %5568, ptr noundef %5570, ptr noundef %5572, i32 noundef %5573) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5575:                                             ; preds = %5546
  %5576 = load i32, ptr @test_count, align 4, !tbaa !5
  %5577 = add nsw i32 %5576, 1
  store i32 %5577, ptr @test_count, align 4, !tbaa !5
  %5578 = load ptr, ptr %50, align 8, !tbaa !9
  %5579 = call i32 @s2n_check_record_limit(ptr noundef %5578, ptr noundef nonnull %48) #12
  %5580 = icmp eq i32 %5579, -1
  br i1 %5580, label %5581, label %5603

5581:                                             ; preds = %5575
  %5582 = load i32, ptr %841, align 4, !tbaa !5
  %5583 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5584 = call i32 @s2n_print_stacktrace(ptr noundef %5583) #12
  %5585 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5586 = trunc nuw i8 %5585 to i1
  br i1 %5586, label %5587, label %5591

5587:                                             ; preds = %5581
  %5588 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5589 = call i32 @fileno(ptr noundef %5588) #12
  %5590 = call i32 @isatty(i32 noundef %5589) #12
  %.not870 = icmp eq i32 %5590, 0
  br i1 %.not870, label %5591, label %5592

5591:                                             ; preds = %5587, %5581
  br label %5592

5592:                                             ; preds = %5587, %5591
  %.str.5.sink2872 = phi ptr [ @.str.5, %5591 ], [ @.str.2, %5587 ]
  store i32 %5582, ptr %841, align 4, !tbaa !5
  %5593 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5594 = load i32, ptr @test_count, align 4, !tbaa !5
  %5595 = load i32, ptr %730, align 4, !tbaa !5
  %5596 = call ptr @s2n_strerror(i32 noundef %5595, ptr noundef nonnull @.str.4) #12
  %5597 = load i32, ptr %730, align 4, !tbaa !5
  %5598 = call ptr @s2n_strerror_debug(i32 noundef %5597, ptr noundef nonnull @.str.4) #12
  %5599 = load i32, ptr %841, align 4, !tbaa !5
  %5600 = call ptr @strerror(i32 noundef %5599) #12
  %5601 = load i32, ptr %841, align 4, !tbaa !5
  %5602 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5593, ptr noundef nonnull %.str.5.sink2872, i32 noundef %5594, ptr noundef nonnull @.str.98, ptr noundef nonnull @.str.1, i32 noundef 614, ptr noundef %5596, ptr noundef %5598, ptr noundef %5600, i32 noundef %5601) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5603:                                             ; preds = %5575
  %5604 = load i32, ptr @test_count, align 4, !tbaa !5
  %5605 = add nsw i32 %5604, 1
  store i32 %5605, ptr @test_count, align 4, !tbaa !5
  %5606 = load ptr, ptr %50, align 8, !tbaa !9
  %5607 = getelementptr inbounds i8, ptr %5606, i64 4176
  %5608 = call zeroext i1 @s2n_atomic_flag_test(ptr noundef nonnull %5607) #12
  br i1 %5608, label %5631, label %5609

5609:                                             ; preds = %5603
  %5610 = load i32, ptr %841, align 4, !tbaa !5
  %5611 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5612 = call i32 @s2n_print_stacktrace(ptr noundef %5611) #12
  %5613 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5614 = trunc nuw i8 %5613 to i1
  br i1 %5614, label %5615, label %5619

5615:                                             ; preds = %5609
  %5616 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5617 = call i32 @fileno(ptr noundef %5616) #12
  %5618 = call i32 @isatty(i32 noundef %5617) #12
  %.not834 = icmp eq i32 %5618, 0
  br i1 %.not834, label %5619, label %5620

5619:                                             ; preds = %5615, %5609
  br label %5620

5620:                                             ; preds = %5615, %5619
  %.str.5.sink2881 = phi ptr [ @.str.5, %5619 ], [ @.str.2, %5615 ]
  store i32 %5610, ptr %841, align 4, !tbaa !5
  %5621 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5622 = load i32, ptr @test_count, align 4, !tbaa !5
  %5623 = load i32, ptr %730, align 4, !tbaa !5
  %5624 = call ptr @s2n_strerror(i32 noundef %5623, ptr noundef nonnull @.str.4) #12
  %5625 = load i32, ptr %730, align 4, !tbaa !5
  %5626 = call ptr @s2n_strerror_debug(i32 noundef %5625, ptr noundef nonnull @.str.4) #12
  %5627 = load i32, ptr %841, align 4, !tbaa !5
  %5628 = call ptr @strerror(i32 noundef %5627) #12
  %5629 = load i32, ptr %841, align 4, !tbaa !5
  %5630 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5621, ptr noundef nonnull %.str.5.sink2881, i32 noundef %5622, ptr noundef nonnull @.str.61, ptr noundef nonnull @.str.1, i32 noundef 615, ptr noundef %5624, ptr noundef %5626, ptr noundef %5628, i32 noundef %5629) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5631:                                             ; preds = %5603
  %5632 = load i32, ptr @test_count, align 4, !tbaa !5
  %5633 = add nsw i32 %5632, 1
  store i32 %5633, ptr @test_count, align 4, !tbaa !5
  %5634 = call i32 @s2n_write_uint64(i64 noundef 0, ptr noundef nonnull %49)
  %5635 = call zeroext i1 @s2n_result_is_ok(i32 %5634)
  br i1 %5635, label %5658, label %5636

5636:                                             ; preds = %5631
  %5637 = load i32, ptr %841, align 4, !tbaa !5
  %5638 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5639 = call i32 @s2n_print_stacktrace(ptr noundef %5638) #12
  %5640 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5641 = trunc nuw i8 %5640 to i1
  br i1 %5641, label %5642, label %5646

5642:                                             ; preds = %5636
  %5643 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5644 = call i32 @fileno(ptr noundef %5643) #12
  %5645 = call i32 @isatty(i32 noundef %5644) #12
  %.not835 = icmp eq i32 %5645, 0
  br i1 %.not835, label %5646, label %5647

5646:                                             ; preds = %5642, %5636
  br label %5647

5647:                                             ; preds = %5642, %5646
  %.str.5.sink2890 = phi ptr [ @.str.5, %5646 ], [ @.str.2, %5642 ]
  store i32 %5637, ptr %841, align 4, !tbaa !5
  %5648 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5649 = load i32, ptr @test_count, align 4, !tbaa !5
  %5650 = load i32, ptr %730, align 4, !tbaa !5
  %5651 = call ptr @s2n_strerror(i32 noundef %5650, ptr noundef nonnull @.str.4) #12
  %5652 = load i32, ptr %730, align 4, !tbaa !5
  %5653 = call ptr @s2n_strerror_debug(i32 noundef %5652, ptr noundef nonnull @.str.4) #12
  %5654 = load i32, ptr %841, align 4, !tbaa !5
  %5655 = call ptr @strerror(i32 noundef %5654) #12
  %5656 = load i32, ptr %841, align 4, !tbaa !5
  %5657 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5648, ptr noundef nonnull %.str.5.sink2890, i32 noundef %5649, ptr noundef nonnull @.str.97, ptr noundef nonnull @.str.1, i32 noundef 618, ptr noundef %5651, ptr noundef %5653, ptr noundef %5655, i32 noundef %5656) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5658:                                             ; preds = %5631
  %5659 = load i32, ptr @test_count, align 4, !tbaa !5
  %5660 = add nsw i32 %5659, 1
  store i32 %5660, ptr @test_count, align 4, !tbaa !5
  %5661 = load ptr, ptr %50, align 8, !tbaa !9
  %5662 = call i32 @s2n_check_record_limit(ptr noundef %5661, ptr noundef nonnull %48) #12
  %5663 = icmp eq i32 %5662, -1
  br i1 %5663, label %5664, label %5686

5664:                                             ; preds = %5658
  %5665 = load i32, ptr %841, align 4, !tbaa !5
  %5666 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5667 = call i32 @s2n_print_stacktrace(ptr noundef %5666) #12
  %5668 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5669 = trunc nuw i8 %5668 to i1
  br i1 %5669, label %5670, label %5674

5670:                                             ; preds = %5664
  %5671 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5672 = call i32 @fileno(ptr noundef %5671) #12
  %5673 = call i32 @isatty(i32 noundef %5672) #12
  %.not869 = icmp eq i32 %5673, 0
  br i1 %.not869, label %5674, label %5675

5674:                                             ; preds = %5670, %5664
  br label %5675

5675:                                             ; preds = %5670, %5674
  %.str.5.sink2899 = phi ptr [ @.str.5, %5674 ], [ @.str.2, %5670 ]
  store i32 %5665, ptr %841, align 4, !tbaa !5
  %5676 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5677 = load i32, ptr @test_count, align 4, !tbaa !5
  %5678 = load i32, ptr %730, align 4, !tbaa !5
  %5679 = call ptr @s2n_strerror(i32 noundef %5678, ptr noundef nonnull @.str.4) #12
  %5680 = load i32, ptr %730, align 4, !tbaa !5
  %5681 = call ptr @s2n_strerror_debug(i32 noundef %5680, ptr noundef nonnull @.str.4) #12
  %5682 = load i32, ptr %841, align 4, !tbaa !5
  %5683 = call ptr @strerror(i32 noundef %5682) #12
  %5684 = load i32, ptr %841, align 4, !tbaa !5
  %5685 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5676, ptr noundef nonnull %.str.5.sink2899, i32 noundef %5677, ptr noundef nonnull @.str.98, ptr noundef nonnull @.str.1, i32 noundef 619, ptr noundef %5679, ptr noundef %5681, ptr noundef %5683, i32 noundef %5684) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5686:                                             ; preds = %5658
  %5687 = load i32, ptr @test_count, align 4, !tbaa !5
  %5688 = add nsw i32 %5687, 1
  store i32 %5688, ptr @test_count, align 4, !tbaa !5
  %5689 = load ptr, ptr %50, align 8, !tbaa !9
  %5690 = getelementptr inbounds i8, ptr %5689, i64 4176
  %5691 = call zeroext i1 @s2n_atomic_flag_test(ptr noundef nonnull %5690) #12
  br i1 %5691, label %5714, label %5692

5692:                                             ; preds = %5686
  %5693 = load i32, ptr %841, align 4, !tbaa !5
  %5694 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5695 = call i32 @s2n_print_stacktrace(ptr noundef %5694) #12
  %5696 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5697 = trunc nuw i8 %5696 to i1
  br i1 %5697, label %5698, label %5702

5698:                                             ; preds = %5692
  %5699 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5700 = call i32 @fileno(ptr noundef %5699) #12
  %5701 = call i32 @isatty(i32 noundef %5700) #12
  %.not836 = icmp eq i32 %5701, 0
  br i1 %.not836, label %5702, label %5703

5702:                                             ; preds = %5698, %5692
  br label %5703

5703:                                             ; preds = %5698, %5702
  %.str.5.sink2908 = phi ptr [ @.str.5, %5702 ], [ @.str.2, %5698 ]
  store i32 %5693, ptr %841, align 4, !tbaa !5
  %5704 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5705 = load i32, ptr @test_count, align 4, !tbaa !5
  %5706 = load i32, ptr %730, align 4, !tbaa !5
  %5707 = call ptr @s2n_strerror(i32 noundef %5706, ptr noundef nonnull @.str.4) #12
  %5708 = load i32, ptr %730, align 4, !tbaa !5
  %5709 = call ptr @s2n_strerror_debug(i32 noundef %5708, ptr noundef nonnull @.str.4) #12
  %5710 = load i32, ptr %841, align 4, !tbaa !5
  %5711 = call ptr @strerror(i32 noundef %5710) #12
  %5712 = load i32, ptr %841, align 4, !tbaa !5
  %5713 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5704, ptr noundef nonnull %.str.5.sink2908, i32 noundef %5705, ptr noundef nonnull @.str.61, ptr noundef nonnull @.str.1, i32 noundef 620, ptr noundef %5707, ptr noundef %5709, ptr noundef %5711, i32 noundef %5712) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5714:                                             ; preds = %5686
  %5715 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %50) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %50) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %49) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %48) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %51) #12
  %5716 = call ptr @s2n_config_new() #12
  store ptr %5716, ptr %51, align 8, !tbaa !9
  %5717 = load i32, ptr @test_count, align 4, !tbaa !5
  %5718 = add nsw i32 %5717, 1
  store i32 %5718, ptr @test_count, align 4, !tbaa !5
  %5719 = call i32 @s2n_config_set_send_buffer_size(ptr noundef %5716, i32 noundef 1033) #12
  %5720 = icmp eq i32 %5719, -1
  br i1 %5720, label %5743, label %5721

5721:                                             ; preds = %5714
  %5722 = load i32, ptr %841, align 4, !tbaa !5
  %5723 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5724 = call i32 @s2n_print_stacktrace(ptr noundef %5723) #12
  %5725 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5726 = trunc nuw i8 %5725 to i1
  br i1 %5726, label %5727, label %5731

5727:                                             ; preds = %5721
  %5728 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5729 = call i32 @fileno(ptr noundef %5728) #12
  %5730 = call i32 @isatty(i32 noundef %5729) #12
  %.not837 = icmp eq i32 %5730, 0
  br i1 %.not837, label %5731, label %5732

5731:                                             ; preds = %5727, %5721
  br label %5732

5732:                                             ; preds = %5727, %5731
  %.str.5.sink2917 = phi ptr [ @.str.5, %5731 ], [ @.str.2, %5727 ]
  store i32 %5722, ptr %841, align 4, !tbaa !5
  %5733 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5734 = load i32, ptr @test_count, align 4, !tbaa !5
  %5735 = load i32, ptr %730, align 4, !tbaa !5
  %5736 = call ptr @s2n_strerror(i32 noundef %5735, ptr noundef nonnull @.str.4) #12
  %5737 = load i32, ptr %730, align 4, !tbaa !5
  %5738 = call ptr @s2n_strerror_debug(i32 noundef %5737, ptr noundef nonnull @.str.4) #12
  %5739 = load i32, ptr %841, align 4, !tbaa !5
  %5740 = call ptr @strerror(i32 noundef %5739) #12
  %5741 = load i32, ptr %841, align 4, !tbaa !5
  %5742 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5733, ptr noundef nonnull %.str.5.sink2917, i32 noundef %5734, ptr noundef nonnull @.str.106, ptr noundef nonnull @.str.1, i32 noundef 634, ptr noundef %5736, ptr noundef %5738, ptr noundef %5740, i32 noundef %5741) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5743:                                             ; preds = %5714
  %5744 = load i32, ptr @test_count, align 4, !tbaa !5
  %5745 = add nsw i32 %5744, 1
  store i32 %5745, ptr @test_count, align 4, !tbaa !5
  %5746 = load i32, ptr %730, align 4, !tbaa !5
  %5747 = icmp eq i32 %5746, 469762089
  br i1 %5747, label %5770, label %5748

5748:                                             ; preds = %5743
  %5749 = load i32, ptr %841, align 4, !tbaa !5
  %5750 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5751 = call i32 @s2n_print_stacktrace(ptr noundef %5750) #12
  %5752 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5753 = trunc nuw i8 %5752 to i1
  br i1 %5753, label %5754, label %5758

5754:                                             ; preds = %5748
  %5755 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5756 = call i32 @fileno(ptr noundef %5755) #12
  %5757 = call i32 @isatty(i32 noundef %5756) #12
  %.not838 = icmp eq i32 %5757, 0
  br i1 %.not838, label %5758, label %5759

5758:                                             ; preds = %5754, %5748
  br label %5759

5759:                                             ; preds = %5754, %5758
  %.str.5.sink2926 = phi ptr [ @.str.5, %5758 ], [ @.str.2, %5754 ]
  store i32 %5749, ptr %841, align 4, !tbaa !5
  %5760 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5761 = load i32, ptr @test_count, align 4, !tbaa !5
  %5762 = load i32, ptr %730, align 4, !tbaa !5
  %5763 = call ptr @s2n_strerror(i32 noundef %5762, ptr noundef nonnull @.str.4) #12
  %5764 = load i32, ptr %730, align 4, !tbaa !5
  %5765 = call ptr @s2n_strerror_debug(i32 noundef %5764, ptr noundef nonnull @.str.4) #12
  %5766 = load i32, ptr %841, align 4, !tbaa !5
  %5767 = call ptr @strerror(i32 noundef %5766) #12
  %5768 = load i32, ptr %841, align 4, !tbaa !5
  %5769 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5760, ptr noundef nonnull %.str.5.sink2926, i32 noundef %5761, ptr noundef nonnull @.str.107, ptr noundef nonnull @.str.1, i32 noundef 634, ptr noundef %5763, ptr noundef %5765, ptr noundef %5767, i32 noundef %5768) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5770:                                             ; preds = %5743
  %5771 = add nsw i32 %5744, 2
  store i32 %5771, ptr @test_count, align 4, !tbaa !5
  %5772 = call ptr @s2n_strerror_debug(i32 noundef 469762089, ptr noundef nonnull @.str.4) #12
  %5773 = icmp eq ptr %5772, null
  br i1 %5773, label %5774, label %5796

5774:                                             ; preds = %5770
  %5775 = load i32, ptr %841, align 4, !tbaa !5
  %5776 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5777 = call i32 @s2n_print_stacktrace(ptr noundef %5776) #12
  %5778 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5779 = trunc nuw i8 %5778 to i1
  br i1 %5779, label %5780, label %5784

5780:                                             ; preds = %5774
  %5781 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5782 = call i32 @fileno(ptr noundef %5781) #12
  %5783 = call i32 @isatty(i32 noundef %5782) #12
  %.not868 = icmp eq i32 %5783, 0
  br i1 %.not868, label %5784, label %5785

5784:                                             ; preds = %5780, %5774
  br label %5785

5785:                                             ; preds = %5780, %5784
  %.str.5.sink2935 = phi ptr [ @.str.5, %5784 ], [ @.str.2, %5780 ]
  store i32 %5775, ptr %841, align 4, !tbaa !5
  %5786 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5787 = load i32, ptr @test_count, align 4, !tbaa !5
  %5788 = load i32, ptr %730, align 4, !tbaa !5
  %5789 = call ptr @s2n_strerror(i32 noundef %5788, ptr noundef nonnull @.str.4) #12
  %5790 = load i32, ptr %730, align 4, !tbaa !5
  %5791 = call ptr @s2n_strerror_debug(i32 noundef %5790, ptr noundef nonnull @.str.4) #12
  %5792 = load i32, ptr %841, align 4, !tbaa !5
  %5793 = call ptr @strerror(i32 noundef %5792) #12
  %5794 = load i32, ptr %841, align 4, !tbaa !5
  %5795 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5786, ptr noundef nonnull %.str.5.sink2935, i32 noundef %5787, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 634, ptr noundef %5789, ptr noundef %5791, ptr noundef %5793, i32 noundef %5794) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5796:                                             ; preds = %5770
  store i32 0, ptr %730, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %841, align 4, !tbaa !5
  %5797 = call i32 @s2n_config_ptr_free(ptr noundef nonnull %51) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %51) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %52) #12
  %5798 = call ptr @s2n_config_new() #12
  store ptr %5798, ptr %52, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %53) #12
  store i32 0, ptr %53, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %54) #12
  %5799 = call ptr @s2n_connection_new(i32 noundef 0) #12
  store ptr %5799, ptr %54, align 8, !tbaa !9
  %5800 = load i32, ptr @test_count, align 4, !tbaa !5
  %5801 = add nsw i32 %5800, 1
  store i32 %5801, ptr @test_count, align 4, !tbaa !5
  %5802 = call i32 @s2n_connection_set_secrets(ptr noundef %5799) #12
  %5803 = call zeroext i1 @s2n_result_is_ok(i32 %5802)
  br i1 %5803, label %5826, label %5804

5804:                                             ; preds = %5796
  %5805 = load i32, ptr %841, align 4, !tbaa !5
  %5806 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5807 = call i32 @s2n_print_stacktrace(ptr noundef %5806) #12
  %5808 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5809 = trunc nuw i8 %5808 to i1
  br i1 %5809, label %5810, label %5814

5810:                                             ; preds = %5804
  %5811 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5812 = call i32 @fileno(ptr noundef %5811) #12
  %5813 = call i32 @isatty(i32 noundef %5812) #12
  %.not839 = icmp eq i32 %5813, 0
  br i1 %.not839, label %5814, label %5815

5814:                                             ; preds = %5810, %5804
  br label %5815

5815:                                             ; preds = %5810, %5814
  %.str.5.sink2944 = phi ptr [ @.str.5, %5814 ], [ @.str.2, %5810 ]
  store i32 %5805, ptr %841, align 4, !tbaa !5
  %5816 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5817 = load i32, ptr @test_count, align 4, !tbaa !5
  %5818 = load i32, ptr %730, align 4, !tbaa !5
  %5819 = call ptr @s2n_strerror(i32 noundef %5818, ptr noundef nonnull @.str.4) #12
  %5820 = load i32, ptr %730, align 4, !tbaa !5
  %5821 = call ptr @s2n_strerror_debug(i32 noundef %5820, ptr noundef nonnull @.str.4) #12
  %5822 = load i32, ptr %841, align 4, !tbaa !5
  %5823 = call ptr @strerror(i32 noundef %5822) #12
  %5824 = load i32, ptr %841, align 4, !tbaa !5
  %5825 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5816, ptr noundef nonnull %.str.5.sink2944, i32 noundef %5817, ptr noundef nonnull @.str.108, ptr noundef nonnull @.str.1, i32 noundef 643, ptr noundef %5819, ptr noundef %5821, ptr noundef %5823, i32 noundef %5824) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5826:                                             ; preds = %5796
  %5827 = load ptr, ptr %54, align 8, !tbaa !9
  %5828 = getelementptr inbounds i8, ptr %5827, i64 220
  store i8 34, ptr %5828, align 4, !tbaa !25
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %55) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %55, i8 0, i64 40, i1 false)
  %5829 = load i32, ptr @test_count, align 4, !tbaa !5
  %5830 = add nsw i32 %5829, 1
  store i32 %5830, ptr @test_count, align 4, !tbaa !5
  %5831 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %55, i32 noundef 0) #12
  %5832 = icmp eq i32 %5831, -1
  br i1 %5832, label %5833, label %5855

5833:                                             ; preds = %5826
  %5834 = load i32, ptr %841, align 4, !tbaa !5
  %5835 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5836 = call i32 @s2n_print_stacktrace(ptr noundef %5835) #12
  %5837 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5838 = trunc nuw i8 %5837 to i1
  br i1 %5838, label %5839, label %5843

5839:                                             ; preds = %5833
  %5840 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5841 = call i32 @fileno(ptr noundef %5840) #12
  %5842 = call i32 @isatty(i32 noundef %5841) #12
  %.not867 = icmp eq i32 %5842, 0
  br i1 %.not867, label %5843, label %5844

5843:                                             ; preds = %5839, %5833
  br label %5844

5844:                                             ; preds = %5839, %5843
  %.str.5.sink2953 = phi ptr [ @.str.5, %5843 ], [ @.str.2, %5839 ]
  store i32 %5834, ptr %841, align 4, !tbaa !5
  %5845 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5846 = load i32, ptr @test_count, align 4, !tbaa !5
  %5847 = load i32, ptr %730, align 4, !tbaa !5
  %5848 = call ptr @s2n_strerror(i32 noundef %5847, ptr noundef nonnull @.str.4) #12
  %5849 = load i32, ptr %730, align 4, !tbaa !5
  %5850 = call ptr @s2n_strerror_debug(i32 noundef %5849, ptr noundef nonnull @.str.4) #12
  %5851 = load i32, ptr %841, align 4, !tbaa !5
  %5852 = call ptr @strerror(i32 noundef %5851) #12
  %5853 = load i32, ptr %841, align 4, !tbaa !5
  %5854 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5845, ptr noundef nonnull %.str.5.sink2953, i32 noundef %5846, ptr noundef nonnull @.str.65, ptr noundef nonnull @.str.1, i32 noundef 647, ptr noundef %5848, ptr noundef %5850, ptr noundef %5852, i32 noundef %5853) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5855:                                             ; preds = %5826
  %5856 = load i32, ptr @test_count, align 4, !tbaa !5
  %5857 = add nsw i32 %5856, 1
  store i32 %5857, ptr @test_count, align 4, !tbaa !5
  %5858 = load ptr, ptr %54, align 8, !tbaa !9
  %5859 = call i32 @s2n_connection_set_io_stuffers(ptr noundef nonnull %55, ptr noundef nonnull %55, ptr noundef %5858) #12
  %5860 = icmp eq i32 %5859, -1
  br i1 %5860, label %5861, label %5883

5861:                                             ; preds = %5855
  %5862 = load i32, ptr %841, align 4, !tbaa !5
  %5863 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5864 = call i32 @s2n_print_stacktrace(ptr noundef %5863) #12
  %5865 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5866 = trunc nuw i8 %5865 to i1
  br i1 %5866, label %5867, label %5871

5867:                                             ; preds = %5861
  %5868 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5869 = call i32 @fileno(ptr noundef %5868) #12
  %5870 = call i32 @isatty(i32 noundef %5869) #12
  %.not866 = icmp eq i32 %5870, 0
  br i1 %.not866, label %5871, label %5872

5871:                                             ; preds = %5867, %5861
  br label %5872

5872:                                             ; preds = %5867, %5871
  %.str.5.sink2962 = phi ptr [ @.str.5, %5871 ], [ @.str.2, %5867 ]
  store i32 %5862, ptr %841, align 4, !tbaa !5
  %5873 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5874 = load i32, ptr @test_count, align 4, !tbaa !5
  %5875 = load i32, ptr %730, align 4, !tbaa !5
  %5876 = call ptr @s2n_strerror(i32 noundef %5875, ptr noundef nonnull @.str.4) #12
  %5877 = load i32, ptr %730, align 4, !tbaa !5
  %5878 = call ptr @s2n_strerror_debug(i32 noundef %5877, ptr noundef nonnull @.str.4) #12
  %5879 = load i32, ptr %841, align 4, !tbaa !5
  %5880 = call ptr @strerror(i32 noundef %5879) #12
  %5881 = load i32, ptr %841, align 4, !tbaa !5
  %5882 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5873, ptr noundef nonnull %.str.5.sink2962, i32 noundef %5874, ptr noundef nonnull @.str.77, ptr noundef nonnull @.str.1, i32 noundef 648, ptr noundef %5876, ptr noundef %5878, ptr noundef %5880, i32 noundef %5881) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5883:                                             ; preds = %5855
  %5884 = load ptr, ptr %52, align 8, !tbaa !9
  %5885 = getelementptr inbounds i8, ptr %5884, i64 420
  store i32 1034, ptr %5885, align 4, !tbaa !66
  %5886 = load i32, ptr @test_count, align 4, !tbaa !5
  %5887 = add nsw i32 %5886, 1
  store i32 %5887, ptr @test_count, align 4, !tbaa !5
  %5888 = load ptr, ptr %54, align 8, !tbaa !9
  %5889 = call i32 @s2n_connection_set_config(ptr noundef %5888, ptr noundef %5884) #12
  %5890 = icmp eq i32 %5889, -1
  br i1 %5890, label %5891, label %5913

5891:                                             ; preds = %5883
  %5892 = load i32, ptr %841, align 4, !tbaa !5
  %5893 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5894 = call i32 @s2n_print_stacktrace(ptr noundef %5893) #12
  %5895 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5896 = trunc nuw i8 %5895 to i1
  br i1 %5896, label %5897, label %5901

5897:                                             ; preds = %5891
  %5898 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5899 = call i32 @fileno(ptr noundef %5898) #12
  %5900 = call i32 @isatty(i32 noundef %5899) #12
  %.not865 = icmp eq i32 %5900, 0
  br i1 %.not865, label %5901, label %5902

5901:                                             ; preds = %5897, %5891
  br label %5902

5902:                                             ; preds = %5897, %5901
  %.str.5.sink2971 = phi ptr [ @.str.5, %5901 ], [ @.str.2, %5897 ]
  store i32 %5892, ptr %841, align 4, !tbaa !5
  %5903 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5904 = load i32, ptr @test_count, align 4, !tbaa !5
  %5905 = load i32, ptr %730, align 4, !tbaa !5
  %5906 = call ptr @s2n_strerror(i32 noundef %5905, ptr noundef nonnull @.str.4) #12
  %5907 = load i32, ptr %730, align 4, !tbaa !5
  %5908 = call ptr @s2n_strerror_debug(i32 noundef %5907, ptr noundef nonnull @.str.4) #12
  %5909 = load i32, ptr %841, align 4, !tbaa !5
  %5910 = call ptr @strerror(i32 noundef %5909) #12
  %5911 = load i32, ptr %841, align 4, !tbaa !5
  %5912 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5903, ptr noundef nonnull %.str.5.sink2971, i32 noundef %5904, ptr noundef nonnull @.str.109, ptr noundef nonnull @.str.1, i32 noundef 652, ptr noundef %5906, ptr noundef %5908, ptr noundef %5910, i32 noundef %5911) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5913:                                             ; preds = %5883
  %5914 = load ptr, ptr %54, align 8, !tbaa !9
  %5915 = getelementptr inbounds i8, ptr %5914, i64 4176
  call void @s2n_atomic_flag_set(ptr noundef nonnull %5915) #12
  %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 = load ptr, ptr %54, align 8, !tbaa !9
  %5919 = call i32 @s2n_key_update_send(ptr noundef %5918, ptr noundef nonnull %53) #12
  %5920 = icmp eq i32 %5919, -1
  br i1 %5920, label %5921, label %5943

5921:                                             ; preds = %5913
  %5922 = load i32, ptr %841, align 4, !tbaa !5
  %5923 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5924 = call i32 @s2n_print_stacktrace(ptr noundef %5923) #12
  %5925 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5926 = trunc nuw i8 %5925 to i1
  br i1 %5926, label %5927, label %5931

5927:                                             ; preds = %5921
  %5928 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5929 = call i32 @fileno(ptr noundef %5928) #12
  %5930 = call i32 @isatty(i32 noundef %5929) #12
  %.not864 = icmp eq i32 %5930, 0
  br i1 %.not864, label %5931, label %5932

5931:                                             ; preds = %5927, %5921
  br label %5932

5932:                                             ; preds = %5927, %5931
  %.str.5.sink2980 = phi ptr [ @.str.5, %5931 ], [ @.str.2, %5927 ]
  store i32 %5922, ptr %841, align 4, !tbaa !5
  %5933 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5934 = load i32, ptr @test_count, align 4, !tbaa !5
  %5935 = load i32, ptr %730, align 4, !tbaa !5
  %5936 = call ptr @s2n_strerror(i32 noundef %5935, ptr noundef nonnull @.str.4) #12
  %5937 = load i32, ptr %730, align 4, !tbaa !5
  %5938 = call ptr @s2n_strerror_debug(i32 noundef %5937, ptr noundef nonnull @.str.4) #12
  %5939 = load i32, ptr %841, align 4, !tbaa !5
  %5940 = call ptr @strerror(i32 noundef %5939) #12
  %5941 = load i32, ptr %841, align 4, !tbaa !5
  %5942 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5933, ptr noundef nonnull %.str.5.sink2980, i32 noundef %5934, ptr noundef nonnull @.str.93, ptr noundef nonnull @.str.1, i32 noundef 654, ptr noundef %5936, ptr noundef %5938, ptr noundef %5940, i32 noundef %5941) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5943:                                             ; preds = %5913
  %5944 = load i32, ptr @test_count, align 4, !tbaa !5
  %5945 = add nsw i32 %5944, 1
  store i32 %5945, ptr @test_count, align 4, !tbaa !5
  %5946 = load ptr, ptr %54, align 8, !tbaa !9
  %5947 = call i32 @s2n_connection_release_buffers(ptr noundef %5946) #12
  %5948 = icmp eq i32 %5947, -1
  br i1 %5948, label %5949, label %5971

5949:                                             ; preds = %5943
  %5950 = load i32, ptr %841, align 4, !tbaa !5
  %5951 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5952 = call i32 @s2n_print_stacktrace(ptr noundef %5951) #12
  %5953 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5954 = trunc nuw i8 %5953 to i1
  br i1 %5954, label %5955, label %5959

5955:                                             ; preds = %5949
  %5956 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5957 = call i32 @fileno(ptr noundef %5956) #12
  %5958 = call i32 @isatty(i32 noundef %5957) #12
  %.not863 = icmp eq i32 %5958, 0
  br i1 %.not863, label %5959, label %5960

5959:                                             ; preds = %5955, %5949
  br label %5960

5960:                                             ; preds = %5955, %5959
  %.str.5.sink2989 = phi ptr [ @.str.5, %5959 ], [ @.str.2, %5955 ]
  store i32 %5950, ptr %841, align 4, !tbaa !5
  %5961 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5962 = load i32, ptr @test_count, align 4, !tbaa !5
  %5963 = load i32, ptr %730, align 4, !tbaa !5
  %5964 = call ptr @s2n_strerror(i32 noundef %5963, ptr noundef nonnull @.str.4) #12
  %5965 = load i32, ptr %730, align 4, !tbaa !5
  %5966 = call ptr @s2n_strerror_debug(i32 noundef %5965, ptr noundef nonnull @.str.4) #12
  %5967 = load i32, ptr %841, align 4, !tbaa !5
  %5968 = call ptr @strerror(i32 noundef %5967) #12
  %5969 = load i32, ptr %841, align 4, !tbaa !5
  %5970 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5961, ptr noundef nonnull %.str.5.sink2989, i32 noundef %5962, ptr noundef nonnull @.str.110, ptr noundef nonnull @.str.1, i32 noundef 656, ptr noundef %5964, ptr noundef %5966, ptr noundef %5968, i32 noundef %5969) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5971:                                             ; preds = %5943
  %5972 = load ptr, ptr %52, align 8, !tbaa !9
  %5973 = getelementptr inbounds i8, ptr %5972, i64 420
  store i32 1033, ptr %5973, align 4, !tbaa !66
  %5974 = load i32, ptr @test_count, align 4, !tbaa !5
  %5975 = add nsw i32 %5974, 1
  store i32 %5975, ptr @test_count, align 4, !tbaa !5
  %5976 = load ptr, ptr %54, align 8, !tbaa !9
  %5977 = call i32 @s2n_connection_set_config(ptr noundef %5976, ptr noundef %5972) #12
  %5978 = icmp eq i32 %5977, -1
  br i1 %5978, label %5979, label %6001

5979:                                             ; preds = %5971
  %5980 = load i32, ptr %841, align 4, !tbaa !5
  %5981 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5982 = call i32 @s2n_print_stacktrace(ptr noundef %5981) #12
  %5983 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5984 = trunc nuw i8 %5983 to i1
  br i1 %5984, label %5985, label %5989

5985:                                             ; preds = %5979
  %5986 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5987 = call i32 @fileno(ptr noundef %5986) #12
  %5988 = call i32 @isatty(i32 noundef %5987) #12
  %.not862 = icmp eq i32 %5988, 0
  br i1 %.not862, label %5989, label %5990

5989:                                             ; preds = %5985, %5979
  br label %5990

5990:                                             ; preds = %5985, %5989
  %.str.5.sink2998 = phi ptr [ @.str.5, %5989 ], [ @.str.2, %5985 ]
  store i32 %5980, ptr %841, align 4, !tbaa !5
  %5991 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5992 = load i32, ptr @test_count, align 4, !tbaa !5
  %5993 = load i32, ptr %730, align 4, !tbaa !5
  %5994 = call ptr @s2n_strerror(i32 noundef %5993, ptr noundef nonnull @.str.4) #12
  %5995 = load i32, ptr %730, align 4, !tbaa !5
  %5996 = call ptr @s2n_strerror_debug(i32 noundef %5995, ptr noundef nonnull @.str.4) #12
  %5997 = load i32, ptr %841, align 4, !tbaa !5
  %5998 = call ptr @strerror(i32 noundef %5997) #12
  %5999 = load i32, ptr %841, align 4, !tbaa !5
  %6000 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5991, ptr noundef nonnull %.str.5.sink2998, i32 noundef %5992, ptr noundef nonnull @.str.109, ptr noundef nonnull @.str.1, i32 noundef 660, ptr noundef %5994, ptr noundef %5996, ptr noundef %5998, i32 noundef %5999) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6001:                                             ; preds = %5971
  %6002 = load ptr, ptr %54, align 8, !tbaa !9
  %6003 = getelementptr inbounds i8, ptr %6002, i64 4176
  call void @s2n_atomic_flag_set(ptr noundef nonnull %6003) #12
  %6004 = load i32, ptr @test_count, align 4, !tbaa !5
  %6005 = add nsw i32 %6004, 1
  store i32 %6005, ptr @test_count, align 4, !tbaa !5
  %6006 = load ptr, ptr %54, align 8, !tbaa !9
  %6007 = call i32 @s2n_key_update_send(ptr noundef %6006, ptr noundef nonnull %53) #12
  %6008 = icmp eq i32 %6007, -1
  br i1 %6008, label %6031, label %6009

6009:                                             ; preds = %6001
  %6010 = load i32, ptr %841, align 4, !tbaa !5
  %6011 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6012 = call i32 @s2n_print_stacktrace(ptr noundef %6011) #12
  %6013 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6014 = trunc nuw i8 %6013 to i1
  br i1 %6014, label %6015, label %6019

6015:                                             ; preds = %6009
  %6016 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6017 = call i32 @fileno(ptr noundef %6016) #12
  %6018 = call i32 @isatty(i32 noundef %6017) #12
  %.not840 = icmp eq i32 %6018, 0
  br i1 %.not840, label %6019, label %6020

6019:                                             ; preds = %6015, %6009
  br label %6020

6020:                                             ; preds = %6015, %6019
  %.str.5.sink3007 = phi ptr [ @.str.5, %6019 ], [ @.str.2, %6015 ]
  store i32 %6010, ptr %841, align 4, !tbaa !5
  %6021 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6022 = load i32, ptr @test_count, align 4, !tbaa !5
  %6023 = load i32, ptr %730, align 4, !tbaa !5
  %6024 = call ptr @s2n_strerror(i32 noundef %6023, ptr noundef nonnull @.str.4) #12
  %6025 = load i32, ptr %730, align 4, !tbaa !5
  %6026 = call ptr @s2n_strerror_debug(i32 noundef %6025, ptr noundef nonnull @.str.4) #12
  %6027 = load i32, ptr %841, align 4, !tbaa !5
  %6028 = call ptr @strerror(i32 noundef %6027) #12
  %6029 = load i32, ptr %841, align 4, !tbaa !5
  %6030 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6021, ptr noundef nonnull %.str.5.sink3007, i32 noundef %6022, ptr noundef nonnull @.str.79, ptr noundef nonnull @.str.1, i32 noundef 662, ptr noundef %6024, ptr noundef %6026, ptr noundef %6028, i32 noundef %6029) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6031:                                             ; preds = %6001
  %6032 = load i32, ptr @test_count, align 4, !tbaa !5
  %6033 = add nsw i32 %6032, 1
  store i32 %6033, ptr @test_count, align 4, !tbaa !5
  %6034 = load i32, ptr %730, align 4, !tbaa !5
  %6035 = icmp eq i32 %6034, 335544390
  br i1 %6035, label %6058, label %6036

6036:                                             ; preds = %6031
  %6037 = load i32, ptr %841, align 4, !tbaa !5
  %6038 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6039 = call i32 @s2n_print_stacktrace(ptr noundef %6038) #12
  %6040 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6041 = trunc nuw i8 %6040 to i1
  br i1 %6041, label %6042, label %6046

6042:                                             ; preds = %6036
  %6043 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6044 = call i32 @fileno(ptr noundef %6043) #12
  %6045 = call i32 @isatty(i32 noundef %6044) #12
  %.not841 = icmp eq i32 %6045, 0
  br i1 %.not841, label %6046, label %6047

6046:                                             ; preds = %6042, %6036
  br label %6047

6047:                                             ; preds = %6042, %6046
  %.str.5.sink3016 = phi ptr [ @.str.5, %6046 ], [ @.str.2, %6042 ]
  store i32 %6037, ptr %841, align 4, !tbaa !5
  %6048 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6049 = load i32, ptr @test_count, align 4, !tbaa !5
  %6050 = load i32, ptr %730, align 4, !tbaa !5
  %6051 = call ptr @s2n_strerror(i32 noundef %6050, ptr noundef nonnull @.str.4) #12
  %6052 = load i32, ptr %730, align 4, !tbaa !5
  %6053 = call ptr @s2n_strerror_debug(i32 noundef %6052, ptr noundef nonnull @.str.4) #12
  %6054 = load i32, ptr %841, align 4, !tbaa !5
  %6055 = call ptr @strerror(i32 noundef %6054) #12
  %6056 = load i32, ptr %841, align 4, !tbaa !5
  %6057 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6048, ptr noundef nonnull %.str.5.sink3016, i32 noundef %6049, ptr noundef nonnull @.str.111, ptr noundef nonnull @.str.1, i32 noundef 662, ptr noundef %6051, ptr noundef %6053, ptr noundef %6055, i32 noundef %6056) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6058:                                             ; preds = %6031
  %6059 = add nsw i32 %6032, 2
  store i32 %6059, ptr @test_count, align 4, !tbaa !5
  %6060 = call ptr @s2n_strerror_debug(i32 noundef 335544390, ptr noundef nonnull @.str.4) #12
  %6061 = icmp eq ptr %6060, null
  br i1 %6061, label %6062, label %6084

6062:                                             ; preds = %6058
  %6063 = load i32, ptr %841, align 4, !tbaa !5
  %6064 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6065 = call i32 @s2n_print_stacktrace(ptr noundef %6064) #12
  %6066 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6067 = trunc nuw i8 %6066 to i1
  br i1 %6067, label %6068, label %6072

6068:                                             ; preds = %6062
  %6069 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6070 = call i32 @fileno(ptr noundef %6069) #12
  %6071 = call i32 @isatty(i32 noundef %6070) #12
  %.not861 = icmp eq i32 %6071, 0
  br i1 %.not861, label %6072, label %6073

6072:                                             ; preds = %6068, %6062
  br label %6073

6073:                                             ; preds = %6068, %6072
  %.str.5.sink3025 = phi ptr [ @.str.5, %6072 ], [ @.str.2, %6068 ]
  store i32 %6063, ptr %841, align 4, !tbaa !5
  %6074 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6075 = load i32, ptr @test_count, align 4, !tbaa !5
  %6076 = load i32, ptr %730, align 4, !tbaa !5
  %6077 = call ptr @s2n_strerror(i32 noundef %6076, ptr noundef nonnull @.str.4) #12
  %6078 = load i32, ptr %730, align 4, !tbaa !5
  %6079 = call ptr @s2n_strerror_debug(i32 noundef %6078, ptr noundef nonnull @.str.4) #12
  %6080 = load i32, ptr %841, align 4, !tbaa !5
  %6081 = call ptr @strerror(i32 noundef %6080) #12
  %6082 = load i32, ptr %841, align 4, !tbaa !5
  %6083 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6074, ptr noundef nonnull %.str.5.sink3025, i32 noundef %6075, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 662, ptr noundef %6077, ptr noundef %6079, ptr noundef %6081, i32 noundef %6082) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6084:                                             ; preds = %6058
  store i32 0, ptr %730, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %841, align 4, !tbaa !5
  %6085 = call i32 @s2n_stuffer_free(ptr noundef nonnull %55) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %55) #12
  %6086 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %54) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %54) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %53) #12
  %6087 = call i32 @s2n_config_ptr_free(ptr noundef nonnull %52) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %52) #12
  %6088 = load i16, ptr @cipher_preferences_test_all, align 8, !tbaa !70
  %6089 = zext i16 %6088 to i64
  %.not1095 = icmp eq i16 %6088, 0
  %.pre1103 = load i32, ptr @test_count, align 4, !tbaa !5
  br i1 %.not1095, label %._crit_edge1094, label %.lr.ph1093

.lr.ph1093:                                       ; preds = %6084
  %6090 = load ptr, ptr getelementptr inbounds (i8, ptr @cipher_preferences_test_all, i64 8), align 8, !tbaa !72
  br label %6095

._crit_edge1094:                                  ; preds = %6179, %6084
  %6091 = phi i32 [ %.pre1103, %6084 ], [ %6180, %6179 ]
  %6092 = add nsw i32 %6091, 1
  store i32 %6092, ptr @test_count, align 4, !tbaa !5
  %6093 = call i32 @s2n_connection_request_key_update(ptr noundef null, i32 noundef 0) #12
  %6094 = icmp eq i32 %6093, -1
  br i1 %6094, label %6204, label %6182

6095:                                             ; preds = %.lr.ph1093, %6179
  %.06921091 = phi i64 [ 0, %.lr.ph1093 ], [ %6181, %6179 ]
  %6096 = phi i32 [ %.pre1103, %.lr.ph1093 ], [ %6180, %6179 ]
  %6097 = getelementptr inbounds ptr, ptr %6090, i64 %.06921091
  %6098 = load ptr, ptr %6097, align 8, !tbaa !9
  %6099 = add nsw i32 %6096, 1
  store i32 %6099, ptr @test_count, align 4, !tbaa !5
  %6100 = icmp eq ptr %6098, null
  br i1 %6100, label %6101, label %6123

6101:                                             ; preds = %6095
  %6102 = load i32, ptr %841, align 4, !tbaa !5
  %6103 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6104 = call i32 @s2n_print_stacktrace(ptr noundef %6103) #12
  %6105 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6106 = trunc nuw i8 %6105 to i1
  br i1 %6106, label %6107, label %6111

6107:                                             ; preds = %6101
  %6108 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6109 = call i32 @fileno(ptr noundef %6108) #12
  %6110 = call i32 @isatty(i32 noundef %6109) #12
  %.not860 = icmp eq i32 %6110, 0
  br i1 %.not860, label %6111, label %6112

6111:                                             ; preds = %6107, %6101
  br label %6112

6112:                                             ; preds = %6107, %6111
  %.str.5.sink3034 = phi ptr [ @.str.5, %6111 ], [ @.str.2, %6107 ]
  store i32 %6102, ptr %841, align 4, !tbaa !5
  %6113 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6114 = load i32, ptr @test_count, align 4, !tbaa !5
  %6115 = load i32, ptr %730, align 4, !tbaa !5
  %6116 = call ptr @s2n_strerror(i32 noundef %6115, ptr noundef nonnull @.str.4) #12
  %6117 = load i32, ptr %730, align 4, !tbaa !5
  %6118 = call ptr @s2n_strerror_debug(i32 noundef %6117, ptr noundef nonnull @.str.4) #12
  %6119 = load i32, ptr %841, align 4, !tbaa !5
  %6120 = call ptr @strerror(i32 noundef %6119) #12
  %6121 = load i32, ptr %841, align 4, !tbaa !5
  %6122 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6113, ptr noundef nonnull %.str.5.sink3034, i32 noundef %6114, ptr noundef nonnull @.str.112, ptr noundef nonnull @.str.1, i32 noundef 673, ptr noundef %6116, ptr noundef %6118, ptr noundef %6120, i32 noundef %6121) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6123:                                             ; preds = %6095
  %6124 = load i8, ptr %6098, align 8
  %6125 = and i8 %6124, 1
  %.not856 = icmp eq i8 %6125, 0
  br i1 %.not856, label %6179, label %6126

6126:                                             ; preds = %6123
  %6127 = add nsw i32 %6096, 2
  store i32 %6127, ptr @test_count, align 4, !tbaa !5
  %6128 = getelementptr inbounds i8, ptr %6098, i64 48
  %6129 = load ptr, ptr %6128, align 8, !tbaa !15
  %6130 = icmp eq ptr %6129, null
  br i1 %6130, label %6131, label %6153

6131:                                             ; preds = %6126
  %6132 = load i32, ptr %841, align 4, !tbaa !5
  %6133 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6134 = call i32 @s2n_print_stacktrace(ptr noundef %6133) #12
  %6135 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6136 = trunc nuw i8 %6135 to i1
  br i1 %6136, label %6137, label %6141

6137:                                             ; preds = %6131
  %6138 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6139 = call i32 @fileno(ptr noundef %6138) #12
  %6140 = call i32 @isatty(i32 noundef %6139) #12
  %.not859 = icmp eq i32 %6140, 0
  br i1 %.not859, label %6141, label %6142

6141:                                             ; preds = %6137, %6131
  br label %6142

6142:                                             ; preds = %6137, %6141
  %.str.5.sink3043 = phi ptr [ @.str.5, %6141 ], [ @.str.2, %6137 ]
  store i32 %6132, ptr %841, align 4, !tbaa !5
  %6143 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6144 = load i32, ptr @test_count, align 4, !tbaa !5
  %6145 = load i32, ptr %730, align 4, !tbaa !5
  %6146 = call ptr @s2n_strerror(i32 noundef %6145, ptr noundef nonnull @.str.4) #12
  %6147 = load i32, ptr %730, align 4, !tbaa !5
  %6148 = call ptr @s2n_strerror_debug(i32 noundef %6147, ptr noundef nonnull @.str.4) #12
  %6149 = load i32, ptr %841, align 4, !tbaa !5
  %6150 = call ptr @strerror(i32 noundef %6149) #12
  %6151 = load i32, ptr %841, align 4, !tbaa !5
  %6152 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6143, ptr noundef nonnull %.str.5.sink3043, i32 noundef %6144, ptr noundef nonnull @.str.113, ptr noundef nonnull @.str.1, i32 noundef 675, ptr noundef %6146, ptr noundef %6148, ptr noundef %6150, i32 noundef %6151) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6153:                                             ; preds = %6126
  %6154 = add nsw i32 %6096, 3
  store i32 %6154, ptr @test_count, align 4, !tbaa !5
  %6155 = getelementptr inbounds i8, ptr %6129, i64 16
  %6156 = load i64, ptr %6155, align 8, !tbaa !17
  %.not857 = icmp eq i64 %6156, 0
  br i1 %.not857, label %6157, label %6179

6157:                                             ; preds = %6153
  %6158 = load i32, ptr %841, align 4, !tbaa !5
  %6159 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6160 = call i32 @s2n_print_stacktrace(ptr noundef %6159) #12
  %6161 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6162 = trunc nuw i8 %6161 to i1
  br i1 %6162, label %6163, label %6167

6163:                                             ; preds = %6157
  %6164 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6165 = call i32 @fileno(ptr noundef %6164) #12
  %6166 = call i32 @isatty(i32 noundef %6165) #12
  %.not858 = icmp eq i32 %6166, 0
  br i1 %.not858, label %6167, label %6168

6167:                                             ; preds = %6163, %6157
  br label %6168

6168:                                             ; preds = %6163, %6167
  %.str.5.sink3052 = phi ptr [ @.str.5, %6167 ], [ @.str.2, %6163 ]
  store i32 %6158, ptr %841, align 4, !tbaa !5
  %6169 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6170 = load i32, ptr @test_count, align 4, !tbaa !5
  %6171 = load i32, ptr %730, align 4, !tbaa !5
  %6172 = call ptr @s2n_strerror(i32 noundef %6171, ptr noundef nonnull @.str.4) #12
  %6173 = load i32, ptr %730, align 4, !tbaa !5
  %6174 = call ptr @s2n_strerror_debug(i32 noundef %6173, ptr noundef nonnull @.str.4) #12
  %6175 = load i32, ptr %841, align 4, !tbaa !5
  %6176 = call ptr @strerror(i32 noundef %6175) #12
  %6177 = load i32, ptr %841, align 4, !tbaa !5
  %6178 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6169, ptr noundef nonnull %.str.5.sink3052, i32 noundef %6170, ptr noundef nonnull @.str.114, ptr noundef nonnull @.str.1, i32 noundef 676, ptr noundef %6172, ptr noundef %6174, ptr noundef %6176, i32 noundef %6177) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6179:                                             ; preds = %6153, %6123
  %6180 = phi i32 [ %6154, %6153 ], [ %6099, %6123 ]
  %6181 = add nuw nsw i64 %.06921091, 1
  %exitcond.not = icmp eq i64 %6181, %6089
  br i1 %exitcond.not, label %._crit_edge1094, label %6095, !llvm.loop !73

6182:                                             ; preds = %._crit_edge1094
  %6183 = load i32, ptr %841, align 4, !tbaa !5
  %6184 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6185 = call i32 @s2n_print_stacktrace(ptr noundef %6184) #12
  %6186 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6187 = trunc nuw i8 %6186 to i1
  br i1 %6187, label %6188, label %6192

6188:                                             ; preds = %6182
  %6189 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6190 = call i32 @fileno(ptr noundef %6189) #12
  %6191 = call i32 @isatty(i32 noundef %6190) #12
  %.not842 = icmp eq i32 %6191, 0
  br i1 %.not842, label %6192, label %6193

6192:                                             ; preds = %6188, %6182
  br label %6193

6193:                                             ; preds = %6188, %6192
  %.str.5.sink3061 = phi ptr [ @.str.5, %6192 ], [ @.str.2, %6188 ]
  store i32 %6183, ptr %841, align 4, !tbaa !5
  %6194 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6195 = load i32, ptr @test_count, align 4, !tbaa !5
  %6196 = load i32, ptr %730, align 4, !tbaa !5
  %6197 = call ptr @s2n_strerror(i32 noundef %6196, ptr noundef nonnull @.str.4) #12
  %6198 = load i32, ptr %730, align 4, !tbaa !5
  %6199 = call ptr @s2n_strerror_debug(i32 noundef %6198, ptr noundef nonnull @.str.4) #12
  %6200 = load i32, ptr %841, align 4, !tbaa !5
  %6201 = call ptr @strerror(i32 noundef %6200) #12
  %6202 = load i32, ptr %841, align 4, !tbaa !5
  %6203 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6194, ptr noundef nonnull %.str.5.sink3061, i32 noundef %6195, ptr noundef nonnull @.str.115, ptr noundef nonnull @.str.1, i32 noundef 684, ptr noundef %6197, ptr noundef %6199, ptr noundef %6201, i32 noundef %6202) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6204:                                             ; preds = %._crit_edge1094
  %6205 = load i32, ptr @test_count, align 4, !tbaa !5
  %6206 = add nsw i32 %6205, 1
  store i32 %6206, ptr @test_count, align 4, !tbaa !5
  %6207 = load i32, ptr %730, align 4, !tbaa !5
  %6208 = icmp eq i32 %6207, 402653193
  br i1 %6208, label %6231, label %6209

6209:                                             ; preds = %6204
  %6210 = load i32, ptr %841, align 4, !tbaa !5
  %6211 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6212 = call i32 @s2n_print_stacktrace(ptr noundef %6211) #12
  %6213 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6214 = trunc nuw i8 %6213 to i1
  br i1 %6214, label %6215, label %6219

6215:                                             ; preds = %6209
  %6216 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6217 = call i32 @fileno(ptr noundef %6216) #12
  %6218 = call i32 @isatty(i32 noundef %6217) #12
  %.not843 = icmp eq i32 %6218, 0
  br i1 %.not843, label %6219, label %6220

6219:                                             ; preds = %6215, %6209
  br label %6220

6220:                                             ; preds = %6215, %6219
  %.str.5.sink3070 = phi ptr [ @.str.5, %6219 ], [ @.str.2, %6215 ]
  store i32 %6210, ptr %841, align 4, !tbaa !5
  %6221 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6222 = load i32, ptr @test_count, align 4, !tbaa !5
  %6223 = load i32, ptr %730, align 4, !tbaa !5
  %6224 = call ptr @s2n_strerror(i32 noundef %6223, ptr noundef nonnull @.str.4) #12
  %6225 = load i32, ptr %730, align 4, !tbaa !5
  %6226 = call ptr @s2n_strerror_debug(i32 noundef %6225, ptr noundef nonnull @.str.4) #12
  %6227 = load i32, ptr %841, align 4, !tbaa !5
  %6228 = call ptr @strerror(i32 noundef %6227) #12
  %6229 = load i32, ptr %841, align 4, !tbaa !5
  %6230 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6221, ptr noundef nonnull %.str.5.sink3070, i32 noundef %6222, ptr noundef nonnull @.str.116, ptr noundef nonnull @.str.1, i32 noundef 684, ptr noundef %6224, ptr noundef %6226, ptr noundef %6228, i32 noundef %6229) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6231:                                             ; preds = %6204
  %6232 = add nsw i32 %6205, 2
  store i32 %6232, ptr @test_count, align 4, !tbaa !5
  %6233 = call ptr @s2n_strerror_debug(i32 noundef 402653193, ptr noundef nonnull @.str.4) #12
  %6234 = icmp eq ptr %6233, null
  br i1 %6234, label %6235, label %6257

6235:                                             ; preds = %6231
  %6236 = load i32, ptr %841, align 4, !tbaa !5
  %6237 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6238 = call i32 @s2n_print_stacktrace(ptr noundef %6237) #12
  %6239 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6240 = trunc nuw i8 %6239 to i1
  br i1 %6240, label %6241, label %6245

6241:                                             ; preds = %6235
  %6242 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6243 = call i32 @fileno(ptr noundef %6242) #12
  %6244 = call i32 @isatty(i32 noundef %6243) #12
  %.not855 = icmp eq i32 %6244, 0
  br i1 %.not855, label %6245, label %6246

6245:                                             ; preds = %6241, %6235
  br label %6246

6246:                                             ; preds = %6241, %6245
  %.str.5.sink3079 = phi ptr [ @.str.5, %6245 ], [ @.str.2, %6241 ]
  store i32 %6236, ptr %841, align 4, !tbaa !5
  %6247 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6248 = load i32, ptr @test_count, align 4, !tbaa !5
  %6249 = load i32, ptr %730, align 4, !tbaa !5
  %6250 = call ptr @s2n_strerror(i32 noundef %6249, ptr noundef nonnull @.str.4) #12
  %6251 = load i32, ptr %730, align 4, !tbaa !5
  %6252 = call ptr @s2n_strerror_debug(i32 noundef %6251, ptr noundef nonnull @.str.4) #12
  %6253 = load i32, ptr %841, align 4, !tbaa !5
  %6254 = call ptr @strerror(i32 noundef %6253) #12
  %6255 = load i32, ptr %841, align 4, !tbaa !5
  %6256 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6247, ptr noundef nonnull %.str.5.sink3079, i32 noundef %6248, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 684, ptr noundef %6250, ptr noundef %6252, ptr noundef %6254, i32 noundef %6255) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6257:                                             ; preds = %6231
  store i32 0, ptr %730, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %841, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %56) #12
  %6258 = call ptr @s2n_connection_new(i32 noundef 0) #12
  store ptr %6258, ptr %56, align 8, !tbaa !9
  %6259 = load i32, ptr @test_count, align 4, !tbaa !5
  %6260 = add nsw i32 %6259, 1
  store i32 %6260, ptr @test_count, align 4, !tbaa !5
  %6261 = call i32 @s2n_connection_request_key_update(ptr noundef %6258, i32 noundef 1) #12
  %6262 = icmp eq i32 %6261, -1
  br i1 %6262, label %6285, label %6263

6263:                                             ; preds = %6257
  %6264 = load i32, ptr %841, align 4, !tbaa !5
  %6265 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6266 = call i32 @s2n_print_stacktrace(ptr noundef %6265) #12
  %6267 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6268 = trunc nuw i8 %6267 to i1
  br i1 %6268, label %6269, label %6273

6269:                                             ; preds = %6263
  %6270 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6271 = call i32 @fileno(ptr noundef %6270) #12
  %6272 = call i32 @isatty(i32 noundef %6271) #12
  %.not844 = icmp eq i32 %6272, 0
  br i1 %.not844, label %6273, label %6274

6273:                                             ; preds = %6269, %6263
  br label %6274

6274:                                             ; preds = %6269, %6273
  %.str.5.sink3088 = phi ptr [ @.str.5, %6273 ], [ @.str.2, %6269 ]
  store i32 %6264, ptr %841, align 4, !tbaa !5
  %6275 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6276 = load i32, ptr @test_count, align 4, !tbaa !5
  %6277 = load i32, ptr %730, align 4, !tbaa !5
  %6278 = call ptr @s2n_strerror(i32 noundef %6277, ptr noundef nonnull @.str.4) #12
  %6279 = load i32, ptr %730, align 4, !tbaa !5
  %6280 = call ptr @s2n_strerror_debug(i32 noundef %6279, ptr noundef nonnull @.str.4) #12
  %6281 = load i32, ptr %841, align 4, !tbaa !5
  %6282 = call ptr @strerror(i32 noundef %6281) #12
  %6283 = load i32, ptr %841, align 4, !tbaa !5
  %6284 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6275, ptr noundef nonnull %.str.5.sink3088, i32 noundef %6276, ptr noundef nonnull @.str.117, ptr noundef nonnull @.str.1, i32 noundef 690, ptr noundef %6278, ptr noundef %6280, ptr noundef %6282, i32 noundef %6283) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6285:                                             ; preds = %6257
  %6286 = load i32, ptr @test_count, align 4, !tbaa !5
  %6287 = add nsw i32 %6286, 1
  store i32 %6287, ptr @test_count, align 4, !tbaa !5
  %6288 = load i32, ptr %730, align 4, !tbaa !5
  %6289 = icmp eq i32 %6288, 469762089
  br i1 %6289, label %6312, label %6290

6290:                                             ; preds = %6285
  %6291 = load i32, ptr %841, align 4, !tbaa !5
  %6292 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6293 = call i32 @s2n_print_stacktrace(ptr noundef %6292) #12
  %6294 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6295 = trunc nuw i8 %6294 to i1
  br i1 %6295, label %6296, label %6300

6296:                                             ; preds = %6290
  %6297 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6298 = call i32 @fileno(ptr noundef %6297) #12
  %6299 = call i32 @isatty(i32 noundef %6298) #12
  %.not845 = icmp eq i32 %6299, 0
  br i1 %.not845, label %6300, label %6301

6300:                                             ; preds = %6296, %6290
  br label %6301

6301:                                             ; preds = %6296, %6300
  %.str.5.sink3097 = phi ptr [ @.str.5, %6300 ], [ @.str.2, %6296 ]
  store i32 %6291, ptr %841, align 4, !tbaa !5
  %6302 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6303 = load i32, ptr @test_count, align 4, !tbaa !5
  %6304 = load i32, ptr %730, align 4, !tbaa !5
  %6305 = call ptr @s2n_strerror(i32 noundef %6304, ptr noundef nonnull @.str.4) #12
  %6306 = load i32, ptr %730, align 4, !tbaa !5
  %6307 = call ptr @s2n_strerror_debug(i32 noundef %6306, ptr noundef nonnull @.str.4) #12
  %6308 = load i32, ptr %841, align 4, !tbaa !5
  %6309 = call ptr @strerror(i32 noundef %6308) #12
  %6310 = load i32, ptr %841, align 4, !tbaa !5
  %6311 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6302, ptr noundef nonnull %.str.5.sink3097, i32 noundef %6303, ptr noundef nonnull @.str.107, ptr noundef nonnull @.str.1, i32 noundef 690, ptr noundef %6305, ptr noundef %6307, ptr noundef %6309, i32 noundef %6310) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6312:                                             ; preds = %6285
  %6313 = add nsw i32 %6286, 2
  store i32 %6313, ptr @test_count, align 4, !tbaa !5
  %6314 = call ptr @s2n_strerror_debug(i32 noundef 469762089, ptr noundef nonnull @.str.4) #12
  %6315 = icmp eq ptr %6314, null
  br i1 %6315, label %6316, label %6338

6316:                                             ; preds = %6312
  %6317 = load i32, ptr %841, align 4, !tbaa !5
  %6318 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6319 = call i32 @s2n_print_stacktrace(ptr noundef %6318) #12
  %6320 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6321 = trunc nuw i8 %6320 to i1
  br i1 %6321, label %6322, label %6326

6322:                                             ; preds = %6316
  %6323 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6324 = call i32 @fileno(ptr noundef %6323) #12
  %6325 = call i32 @isatty(i32 noundef %6324) #12
  %.not854 = icmp eq i32 %6325, 0
  br i1 %.not854, label %6326, label %6327

6326:                                             ; preds = %6322, %6316
  br label %6327

6327:                                             ; preds = %6322, %6326
  %.str.5.sink3106 = phi ptr [ @.str.5, %6326 ], [ @.str.2, %6322 ]
  store i32 %6317, ptr %841, align 4, !tbaa !5
  %6328 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6329 = load i32, ptr @test_count, align 4, !tbaa !5
  %6330 = load i32, ptr %730, align 4, !tbaa !5
  %6331 = call ptr @s2n_strerror(i32 noundef %6330, ptr noundef nonnull @.str.4) #12
  %6332 = load i32, ptr %730, align 4, !tbaa !5
  %6333 = call ptr @s2n_strerror_debug(i32 noundef %6332, ptr noundef nonnull @.str.4) #12
  %6334 = load i32, ptr %841, align 4, !tbaa !5
  %6335 = call ptr @strerror(i32 noundef %6334) #12
  %6336 = load i32, ptr %841, align 4, !tbaa !5
  %6337 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6328, ptr noundef nonnull %.str.5.sink3106, i32 noundef %6329, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 690, ptr noundef %6331, ptr noundef %6333, ptr noundef %6335, i32 noundef %6336) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6338:                                             ; preds = %6312
  store i32 0, ptr %730, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %841, align 4, !tbaa !5
  %6339 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %56) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %56) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %57) #12
  %6340 = call ptr @s2n_connection_new(i32 noundef 0) #12
  store ptr %6340, ptr %57, align 8, !tbaa !9
  %6341 = load i32, ptr @test_count, align 4, !tbaa !5
  %6342 = add nsw i32 %6341, 1
  store i32 %6342, ptr @test_count, align 4, !tbaa !5
  %6343 = getelementptr inbounds i8, ptr %6340, i64 4176
  %6344 = call zeroext i1 @s2n_atomic_flag_test(ptr noundef nonnull %6343) #12
  br i1 %6344, label %6345, label %6367

6345:                                             ; preds = %6338
  %6346 = load i32, ptr %841, align 4, !tbaa !5
  %6347 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6348 = call i32 @s2n_print_stacktrace(ptr noundef %6347) #12
  %6349 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6350 = trunc nuw i8 %6349 to i1
  br i1 %6350, label %6351, label %6355

6351:                                             ; preds = %6345
  %6352 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6353 = call i32 @fileno(ptr noundef %6352) #12
  %6354 = call i32 @isatty(i32 noundef %6353) #12
  %.not853 = icmp eq i32 %6354, 0
  br i1 %.not853, label %6355, label %6356

6355:                                             ; preds = %6351, %6345
  br label %6356

6356:                                             ; preds = %6351, %6355
  %.str.5.sink3115 = phi ptr [ @.str.5, %6355 ], [ @.str.2, %6351 ]
  store i32 %6346, ptr %841, align 4, !tbaa !5
  %6357 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6358 = load i32, ptr @test_count, align 4, !tbaa !5
  %6359 = load i32, ptr %730, align 4, !tbaa !5
  %6360 = call ptr @s2n_strerror(i32 noundef %6359, ptr noundef nonnull @.str.4) #12
  %6361 = load i32, ptr %730, align 4, !tbaa !5
  %6362 = call ptr @s2n_strerror_debug(i32 noundef %6361, ptr noundef nonnull @.str.4) #12
  %6363 = load i32, ptr %841, align 4, !tbaa !5
  %6364 = call ptr @strerror(i32 noundef %6363) #12
  %6365 = load i32, ptr %841, align 4, !tbaa !5
  %6366 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6357, ptr noundef nonnull %.str.5.sink3115, i32 noundef %6358, ptr noundef nonnull @.str.94, ptr noundef nonnull @.str.1, i32 noundef 696, ptr noundef %6360, ptr noundef %6362, ptr noundef %6364, i32 noundef %6365) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6367:                                             ; preds = %6338
  %6368 = load i32, ptr @test_count, align 4, !tbaa !5
  %6369 = add nsw i32 %6368, 1
  store i32 %6369, ptr @test_count, align 4, !tbaa !5
  %6370 = call i32 @s2n_connection_request_key_update(ptr noundef %6340, i32 noundef 0) #12
  %6371 = icmp eq i32 %6370, -1
  br i1 %6371, label %6372, label %6394

6372:                                             ; preds = %6367
  %6373 = load i32, ptr %841, align 4, !tbaa !5
  %6374 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6375 = call i32 @s2n_print_stacktrace(ptr noundef %6374) #12
  %6376 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6377 = trunc nuw i8 %6376 to i1
  br i1 %6377, label %6378, label %6382

6378:                                             ; preds = %6372
  %6379 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6380 = call i32 @fileno(ptr noundef %6379) #12
  %6381 = call i32 @isatty(i32 noundef %6380) #12
  %.not852 = icmp eq i32 %6381, 0
  br i1 %.not852, label %6382, label %6383

6382:                                             ; preds = %6378, %6372
  br label %6383

6383:                                             ; preds = %6378, %6382
  %.str.5.sink3124 = phi ptr [ @.str.5, %6382 ], [ @.str.2, %6378 ]
  store i32 %6373, ptr %841, align 4, !tbaa !5
  %6384 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6385 = load i32, ptr @test_count, align 4, !tbaa !5
  %6386 = load i32, ptr %730, align 4, !tbaa !5
  %6387 = call ptr @s2n_strerror(i32 noundef %6386, ptr noundef nonnull @.str.4) #12
  %6388 = load i32, ptr %730, align 4, !tbaa !5
  %6389 = call ptr @s2n_strerror_debug(i32 noundef %6388, ptr noundef nonnull @.str.4) #12
  %6390 = load i32, ptr %841, align 4, !tbaa !5
  %6391 = call ptr @strerror(i32 noundef %6390) #12
  %6392 = load i32, ptr %841, align 4, !tbaa !5
  %6393 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6384, ptr noundef nonnull %.str.5.sink3124, i32 noundef %6385, ptr noundef nonnull @.str.118, ptr noundef nonnull @.str.1, i32 noundef 697, ptr noundef %6387, ptr noundef %6389, ptr noundef %6391, i32 noundef %6392) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6394:                                             ; preds = %6367
  %6395 = load i32, ptr @test_count, align 4, !tbaa !5
  %6396 = add nsw i32 %6395, 1
  store i32 %6396, ptr @test_count, align 4, !tbaa !5
  %6397 = call zeroext i1 @s2n_atomic_flag_test(ptr noundef nonnull %6343) #12
  br i1 %6397, label %6420, label %6398

6398:                                             ; preds = %6394
  %6399 = load i32, ptr %841, align 4, !tbaa !5
  %6400 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6401 = call i32 @s2n_print_stacktrace(ptr noundef %6400) #12
  %6402 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6403 = trunc nuw i8 %6402 to i1
  br i1 %6403, label %6404, label %6408

6404:                                             ; preds = %6398
  %6405 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6406 = call i32 @fileno(ptr noundef %6405) #12
  %6407 = call i32 @isatty(i32 noundef %6406) #12
  %.not846 = icmp eq i32 %6407, 0
  br i1 %.not846, label %6408, label %6409

6408:                                             ; preds = %6404, %6398
  br label %6409

6409:                                             ; preds = %6404, %6408
  %.str.5.sink3133 = phi ptr [ @.str.5, %6408 ], [ @.str.2, %6404 ]
  store i32 %6399, ptr %841, align 4, !tbaa !5
  %6410 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6411 = load i32, ptr @test_count, align 4, !tbaa !5
  %6412 = load i32, ptr %730, align 4, !tbaa !5
  %6413 = call ptr @s2n_strerror(i32 noundef %6412, ptr noundef nonnull @.str.4) #12
  %6414 = load i32, ptr %730, align 4, !tbaa !5
  %6415 = call ptr @s2n_strerror_debug(i32 noundef %6414, ptr noundef nonnull @.str.4) #12
  %6416 = load i32, ptr %841, align 4, !tbaa !5
  %6417 = call ptr @strerror(i32 noundef %6416) #12
  %6418 = load i32, ptr %841, align 4, !tbaa !5
  %6419 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6410, ptr noundef nonnull %.str.5.sink3133, i32 noundef %6411, ptr noundef nonnull @.str.61, ptr noundef nonnull @.str.1, i32 noundef 698, ptr noundef %6413, ptr noundef %6415, ptr noundef %6417, i32 noundef %6418) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6420:                                             ; preds = %6394
  %6421 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %57) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %57) #12
  %6422 = call i32 @s2n_cleanup() #12
  %6423 = icmp eq i32 %6422, -1
  br i1 %6423, label %6424, label %6446

6424:                                             ; preds = %6420
  %6425 = load i32, ptr %841, align 4, !tbaa !5
  %6426 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6427 = call i32 @s2n_print_stacktrace(ptr noundef %6426) #12
  %6428 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6429 = trunc nuw i8 %6428 to i1
  br i1 %6429, label %6430, label %6434

6430:                                             ; preds = %6424
  %6431 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6432 = call i32 @fileno(ptr noundef %6431) #12
  %6433 = call i32 @isatty(i32 noundef %6432) #12
  %.not851 = icmp eq i32 %6433, 0
  br i1 %.not851, label %6434, label %6435

6434:                                             ; preds = %6430, %6424
  br label %6435

6435:                                             ; preds = %6430, %6434
  %.str.5.sink3142 = phi ptr [ @.str.5, %6434 ], [ @.str.2, %6430 ]
  store i32 %6425, ptr %841, align 4, !tbaa !5
  %6436 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6437 = load i32, ptr @test_count, align 4, !tbaa !5
  %6438 = load i32, ptr %730, align 4, !tbaa !5
  %6439 = call ptr @s2n_strerror(i32 noundef %6438, ptr noundef nonnull @.str.4) #12
  %6440 = load i32, ptr %730, align 4, !tbaa !5
  %6441 = call ptr @s2n_strerror_debug(i32 noundef %6440, ptr noundef nonnull @.str.4) #12
  %6442 = load i32, ptr %841, align 4, !tbaa !5
  %6443 = call ptr @strerror(i32 noundef %6442) #12
  %6444 = load i32, ptr %841, align 4, !tbaa !5
  %6445 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6436, ptr noundef nonnull %.str.5.sink3142, i32 noundef %6437, ptr noundef nonnull @.str.119, ptr noundef nonnull @.str.1, i32 noundef 702, ptr noundef %6439, ptr noundef %6441, ptr noundef %6443, i32 noundef %6444) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6446:                                             ; preds = %6420
  %6447 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #12
  %6448 = icmp eq i32 %6447, -1
  br i1 %6448, label %6449, label %6471

6449:                                             ; preds = %6446
  %6450 = load i32, ptr %841, align 4, !tbaa !5
  %6451 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6452 = call i32 @s2n_print_stacktrace(ptr noundef %6451) #12
  %6453 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6454 = trunc nuw i8 %6453 to i1
  br i1 %6454, label %6455, label %6459

6455:                                             ; preds = %6449
  %6456 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6457 = call i32 @fileno(ptr noundef %6456) #12
  %6458 = call i32 @isatty(i32 noundef %6457) #12
  %.not850 = icmp eq i32 %6458, 0
  br i1 %.not850, label %6459, label %6460

6459:                                             ; preds = %6455, %6449
  br label %6460

6460:                                             ; preds = %6455, %6459
  %.str.5.sink3151 = phi ptr [ @.str.5, %6459 ], [ @.str.2, %6455 ]
  store i32 %6450, ptr %841, align 4, !tbaa !5
  %6461 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6462 = load i32, ptr @test_count, align 4, !tbaa !5
  %6463 = load i32, ptr %730, align 4, !tbaa !5
  %6464 = call ptr @s2n_strerror(i32 noundef %6463, ptr noundef nonnull @.str.4) #12
  %6465 = load i32, ptr %730, align 4, !tbaa !5
  %6466 = call ptr @s2n_strerror_debug(i32 noundef %6465, ptr noundef nonnull @.str.4) #12
  %6467 = load i32, ptr %841, align 4, !tbaa !5
  %6468 = call ptr @strerror(i32 noundef %6467) #12
  %6469 = load i32, ptr %841, align 4, !tbaa !5
  %6470 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6461, ptr noundef nonnull %.str.5.sink3151, i32 noundef %6462, ptr noundef nonnull @.str.120, ptr noundef nonnull @.str.1, i32 noundef 702, ptr noundef %6464, ptr noundef %6466, ptr noundef %6468, i32 noundef %6469) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6471:                                             ; preds = %6446
  %6472 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6473 = trunc nuw i8 %6472 to i1
  br i1 %6473, label %6474, label %6485

6474:                                             ; preds = %6471
  %6475 = load ptr, ptr @stdout, align 8, !tbaa !9
  %6476 = call i32 @fileno(ptr noundef %6475) #12
  %6477 = call i32 @isatty(i32 noundef %6476) #12
  %.not847 = icmp eq i32 %6477, 0
  br i1 %.not847, label %6485, label %6478

6478:                                             ; preds = %6474
  %6479 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not849 = icmp eq i32 %6479, 0
  %6480 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not849, label %6483, label %6481

6481:                                             ; preds = %6478
  %6482 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6480, ptr noundef nonnull @.str.121, i32 noundef %6479) #12
  br label %.critedge995

6483:                                             ; preds = %6478
  %6484 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6480, ptr noundef nonnull @.str.122) #12
  br label %.critedge995

6485:                                             ; preds = %6474, %6471
  %6486 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not848 = icmp eq i32 %6486, 0
  %6487 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not848, label %6490, label %6488

6488:                                             ; preds = %6485
  %6489 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6487, ptr noundef nonnull @.str.123, i32 noundef %6486) #12
  br label %.critedge995

6490:                                             ; preds = %6485
  %6491 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6487, ptr noundef nonnull @.str.124) #12
  br label %.critedge995

.critedge:                                        ; preds = %1853
  %6492 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  store ptr @.str.47, ptr %6492, align 8, !tbaa !60
  %6493 = call ptr @strrchr(ptr noundef nonnull dereferenceable(1) getelementptr inbounds (i8, ptr @.str.47, i64 21), i32 noundef 47) #16
  %.not755 = icmp eq ptr %6493, null
  %6494 = getelementptr inbounds i8, ptr %6493, i64 1
  %6495 = select i1 %.not755, ptr getelementptr inbounds (i8, ptr @.str.47, i64 21), ptr %6494
  %6496 = getelementptr inbounds i8, ptr %6492, i64 8
  store ptr %6495, ptr %6496, align 8, !tbaa !62
  store i32 402653193, ptr %730, align 4, !tbaa !5
  %6497 = call i32 @s2n_calculate_stacktrace() #12
  %6498 = call i32 @s2n_stuffer_free(ptr noundef nonnull %17) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %17) #12
  br label %.critedge995

.critedge993:                                     ; preds = %2082
  %6499 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  store ptr @.str.54, ptr %6499, align 8, !tbaa !60
  %6500 = call ptr @strrchr(ptr noundef nonnull dereferenceable(1) getelementptr inbounds (i8, ptr @.str.54, i64 21), i32 noundef 47) #16
  %.not760 = icmp eq ptr %6500, null
  %6501 = getelementptr inbounds i8, ptr %6500, i64 1
  %6502 = select i1 %.not760, ptr getelementptr inbounds (i8, ptr @.str.54, i64 21), ptr %6501
  %6503 = getelementptr inbounds i8, ptr %6499, i64 8
  store ptr %6502, ptr %6503, align 8, !tbaa !62
  store i32 402653193, ptr %730, align 4, !tbaa !5
  %6504 = call i32 @s2n_calculate_stacktrace() #12
  %6505 = call i32 @s2n_stuffer_free(ptr noundef nonnull %18) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %18) #12
  br label %.critedge995

.critedge999:                                     ; preds = %3445
  %6506 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  store ptr @.str.76, ptr %6506, align 8, !tbaa !60
  %6507 = call ptr @strrchr(ptr noundef nonnull dereferenceable(1) getelementptr inbounds (i8, ptr @.str.76, i64 21), i32 noundef 47) #16
  %.not790 = icmp eq ptr %6507, null
  %6508 = getelementptr inbounds i8, ptr %6507, i64 1
  %6509 = select i1 %.not790, ptr getelementptr inbounds (i8, ptr @.str.76, i64 21), ptr %6508
  %6510 = getelementptr inbounds i8, ptr %6506, i64 8
  store ptr %6509, ptr %6510, align 8, !tbaa !62
  store i32 402653193, ptr %730, align 4, !tbaa !5
  %6511 = call i32 @s2n_calculate_stacktrace() #12
  %6512 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %29) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #12
  br label %.critedge995

.critedge1003:                                    ; preds = %3976
  %6513 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  store ptr @.str.87, ptr %6513, align 8, !tbaa !60
  %6514 = call ptr @strrchr(ptr noundef nonnull dereferenceable(1) getelementptr inbounds (i8, ptr @.str.87, i64 21), i32 noundef 47) #16
  %.not805 = icmp eq ptr %6514, null
  %6515 = getelementptr inbounds i8, ptr %6514, i64 1
  %6516 = select i1 %.not805, ptr getelementptr inbounds (i8, ptr @.str.87, i64 21), ptr %6515
  %6517 = getelementptr inbounds i8, ptr %6513, i64 8
  store ptr %6516, ptr %6517, align 8, !tbaa !62
  store i32 402653193, ptr %730, align 4, !tbaa !5
  %6518 = call i32 @s2n_calculate_stacktrace() #12
  %6519 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %35) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %35) #12
  br label %.critedge995

.critedge1005:                                    ; preds = %4223
  %6520 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  store ptr @.str.92, ptr %6520, align 8, !tbaa !60
  %6521 = call ptr @strrchr(ptr noundef nonnull dereferenceable(1) getelementptr inbounds (i8, ptr @.str.92, i64 21), i32 noundef 47) #16
  %.not812 = icmp eq ptr %6521, null
  %6522 = getelementptr inbounds i8, ptr %6521, i64 1
  %6523 = select i1 %.not812, ptr getelementptr inbounds (i8, ptr @.str.92, i64 21), ptr %6522
  %6524 = getelementptr inbounds i8, ptr %6520, i64 8
  store ptr %6523, ptr %6524, align 8, !tbaa !62
  store i32 402653193, ptr %730, align 4, !tbaa !5
  %6525 = call i32 @s2n_calculate_stacktrace() #12
  %6526 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %39) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %39) #12
  br label %.critedge995

.critedge995:                                     ; preds = %3717, %3160, %2846, %6483, %6481, %6490, %6488, %.critedge1005, %.critedge1003, %.critedge999, %.critedge993, %.critedge
  %.24 = phi i32 [ -1, %.critedge ], [ -1, %.critedge993 ], [ -1, %.critedge999 ], [ -1, %.critedge1003 ], [ -1, %.critedge1005 ], [ 0, %6488 ], [ 0, %6490 ], [ 0, %6481 ], [ 0, %6483 ], [ -1, %2846 ], [ -1, %3160 ], [ -1, %3717 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4) #12
  br label %6527

6527:                                             ; preds = %173, %.critedge995
  %.25 = phi i32 [ %.24, %.critedge995 ], [ -1, %173 ]
  %6528 = call i32 @s2n_free(ptr noundef nonnull %3) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %3) #12
  ret i32 %.25
}

; 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 i32 @s2n_disable_tls13_in_test(...) local_unnamed_addr #2

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

declare i32 @s2n_free(ptr noundef) local_unnamed_addr #2

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

declare i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef, ptr noundef) local_unnamed_addr #2

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

declare i32 @s2n_stuffer_init(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_key_update_write(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_skip_write(ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_read_uint8(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_read_uint24(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_alloc(ptr noundef, i32 noundef) local_unnamed_addr #2

declare ptr @s2n_config_new() local_unnamed_addr #2

declare i32 @s2n_config_enable_quic(ptr noundef) local_unnamed_addr #2

declare ptr @s2n_connection_new(i32 noundef) local_unnamed_addr #2

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

declare i32 @s2n_key_update_recv(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_error_get_alert(i32 noundef, ptr noundef) local_unnamed_addr #2

declare void @s2n_debug_info_reset() local_unnamed_addr #2

declare i32 @s2n_connection_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_config_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_growable_alloc(ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @s2n_connection_ptr_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_write_uint8(ptr noundef, i8 noundef zeroext) local_unnamed_addr #2

declare i32 @s2n_stuffer_wipe(ptr noundef) local_unnamed_addr #2

declare ptr @s2n_ensure_memmove_trace(ptr noundef, ptr noundef, i64 noundef) local_unnamed_addr #2

; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: read)
declare ptr @strrchr(ptr noundef, i32 noundef) local_unnamed_addr #10

declare i32 @s2n_calculate_stacktrace() local_unnamed_addr #2

declare zeroext i1 @s2n_atomic_flag_test(ptr noundef) local_unnamed_addr #2

declare void @s2n_atomic_flag_clear(ptr noundef) local_unnamed_addr #2

declare void @s2n_atomic_flag_set(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_connection_set_io_stuffers(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_connection_request_key_update(ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @s2n_key_update_send(ptr noundef, ptr noundef) local_unnamed_addr #2

; Function Attrs: nounwind uwtable
declare hidden i32 @s2n_write_uint64(i64 noundef, ptr noundef) local_unnamed_addr #0

declare i32 @s2n_increment_sequence_number(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_check_record_limit(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_config_ptr_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_config_set_send_buffer_size(ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @s2n_connection_set_secrets(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_connection_release_buffers(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_cleanup() local_unnamed_addr #2

; Function Attrs: nofree nounwind willreturn memory(argmem: read)
declare i32 @bcmp(ptr nocapture, ptr nocapture, i64) local_unnamed_addr #11

attributes #0 = { 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 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #9 = { inlinehint nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #10 = { mustprogress nofree nounwind willreturn memory(argmem: read) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #11 = { nofree nounwind willreturn memory(argmem: read) }
attributes #12 = { nounwind }
attributes #13 = { nounwind willreturn memory(none) }
attributes #14 = { cold nounwind }
attributes #15 = { noreturn nounwind }
attributes #16 = { nounwind willreturn memory(read) }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"_Bool", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = !{!16, !10, i64 48}
!16 = !{!"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}
!17 = !{!18, !19, i64 16}
!18 = !{!"s2n_record_algorithm", !10, i64 0, !6, i64 8, !6, i64 12, !19, i64 16}
!19 = !{!"long", !7, i64 0}
!20 = !{!7, !7, i64 0}
!21 = !{!22, !6, i64 28}
!22 = !{!"s2n_stuffer", !23, i64 0, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 36, !6, i64 36}
!23 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!24 = !{!22, !6, i64 24}
!25 = !{!26, !7, i64 220}
!26 = !{!"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, !27, i64 160, !19, i64 168, !19, 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, !28, i64 240, !10, i64 632, !10, i64 640, !29, i64 648, !34, i64 1144, !37, i64 1688, !10, i64 1752, !7, i64 1760, !6, i64 1764, !7, i64 1768, !22, i64 1776, !22, i64 1816, !22, i64 1856, !22, i64 1896, !6, i64 1936, !19, i64 1944, !7, i64 1952, !22, i64 1960, !7, i64 2000, !7, i64 2001, !7, i64 2002, !12, i64 2003, !40, i64 2004, !40, i64 2008, !41, i64 2016, !39, i64 2208, !6, i64 2212, !39, i64 2216, !19, i64 2224, !7, i64 2232, !19, i64 2240, !19, i64 2248, !19, i64 2256, !40, i64 2264, !40, i64 2268, !7, i64 2272, !7, i64 2528, !6, i64 2784, !23, i64 2792, !6, i64 2816, !23, i64 2824, !23, i64 2848, !23, i64 2872, !43, i64 2896, !45, i64 3704, !10, i64 3760, !10, i64 3768, !7, i64 3776, !6, i64 3780, !23, i64 3784, !6, i64 3808, !47, i64 3816, !7, i64 3848, !22, i64 3992, !23, i64 4032, !23, i64 4056, !12, i64 4080, !12, i64 4081, !12, i64 4082, !39, i64 4084, !39, i64 4086, !6, i64 4088, !6, i64 4092, !23, i64 4096, !6, i64 4120, !48, i64 4128, !40, i64 4176, !7, i64 4180, !7, i64 4181}
!27 = !{!"s2n_timer", !19, i64 0}
!28 = !{!"s2n_secrets", !7, i64 0, !6, i64 388}
!29 = !{!"s2n_kex_parameters", !30, i64 0, !31, i64 8, !7, i64 24, !31, i64 56, !32, i64 72, !32, i64 184, !7, i64 296, !33, i64 360, !23, i64 448, !23, i64 472}
!30 = !{!"s2n_dh_params", !10, i64 0}
!31 = !{!"s2n_ecc_evp_params", !10, i64 0, !10, i64 8}
!32 = !{!"s2n_kem_group_params", !10, i64 0, !33, i64 8, !31, i64 96}
!33 = !{!"s2n_kem_params", !10, i64 0, !23, i64 8, !23, i64 32, !23, i64 56, !12, i64 80}
!34 = !{!"s2n_handshake_parameters", !35, i64 0, !35, i64 48, !23, i64 96, !6, i64 120, !36, 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}
!35 = !{!"s2n_pkey", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40}
!36 = !{!"s2n_sig_scheme_list", !7, i64 0, !7, i64 256}
!37 = !{!"s2n_psk_parameters", !6, i64 0, !38, i64 8, !39, i64 40, !39, i64 42, !10, i64 48, !6, i64 56}
!38 = !{!"s2n_array", !23, i64 0, !6, i64 24, !6, i64 28}
!39 = !{!"short", !7, i64 0}
!40 = !{!"", !6, i64 0}
!41 = !{!"s2n_handshake", !22, 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, !42, i64 176, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 188}
!42 = !{!"s2n_offered_early_data", !10, i64 0}
!43 = !{!"s2n_client_hello", !23, i64 0, !44, i64 24, !23, i64 728, !23, i64 752, !23, 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}
!44 = !{!"", !7, i64 0, !23, i64 672, !39, i64 696}
!45 = !{!"s2n_x509_validator", !10, i64 0, !10, i64 8, !7, i64 16, !7, i64 17, !39, i64 18, !10, i64 24, !6, i64 32, !10, i64 40, !46, i64 48, !12, i64 52}
!46 = !{!"s2n_cert_validation_info", !6, i64 0, !6, i64 0}
!47 = !{!"s2n_ticket_fields", !23, i64 0, !6, i64 24}
!48 = !{!"s2n_post_handshake", !22, i64 0, !7, i64 40}
!49 = !{!26, !10, i64 232}
!50 = !{!51, !10, i64 0}
!51 = !{!"s2n_crypto_parameters", !10, i64 0, !52, i64 8, !52, i64 16, !53, i64 24, !53, i64 456, !7, i64 888, !7, i64 904, !7, i64 920, !7, i64 928}
!52 = !{!"s2n_session_key", !10, i64 0}
!53 = !{!"s2n_hmac_state", !6, i64 0, !39, i64 4, !6, i64 8, !39, i64 12, !7, i64 14, !54, i64 16, !54, i64 72, !54, i64 128, !54, i64 184, !7, i64 240, !7, i64 368}
!54 = !{!"s2n_hash_state", !10, i64 0, !6, i64 8, !7, i64 12, !19, i64 16, !7, i64 24}
!55 = !{!23, !6, i64 8}
!56 = !{!"branch_weights", !"expected", i32 1, i32 2000}
!57 = !{!23, !10, i64 0}
!58 = !{!26, !7, i64 4181}
!59 = !{!26, !7, i64 4180}
!60 = !{!61, !10, i64 0}
!61 = !{!"s2n_debug_info", !10, i64 0, !10, i64 8}
!62 = !{!61, !10, i64 8}
!63 = distinct !{!63, !64}
!64 = !{!"llvm.loop.mustprogress"}
!65 = distinct !{!65, !64}
!66 = !{!67, !6, i64 420}
!67 = !{!"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, !68, i64 24, !23, 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, !19, i64 144, !10, i64 152, !19, i64 160, !19, 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, !69, i64 304, !39, 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, !23, i64 448}
!68 = !{!"certs_by_type", !7, i64 0}
!69 = !{!"s2n_x509_trust_store", !10, i64 0, !6, i64 8}
!70 = !{!71, !39, i64 0}
!71 = !{!"s2n_cipher_preferences", !39, i64 0, !10, i64 8, !12, i64 16}
!72 = !{!71, !10, i64 8}
!73 = distinct !{!73, !64}


; Effective O3 passes: CorrelatedValuePropagationPass,DSEPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,LowerExpectIntrinsicPass,PostOrderFunctionAttrsPass,SROAPass,SimplifyCFGPass,TailCallElimPass