; LLVM IR from aws/s2n-tls :: tests/unit (s2n_record_size_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_record_algorithm = type { ptr, i32, i32, i64 }
%struct.s2n_cipher_suite = type { i8, ptr, ptr, [2 x i8], ptr, i32, ptr, [2 x ptr], i8, ptr, ptr, i32, i8 }
%struct.s2n_cipher = type { i32, %union.anon.1, i8, ptr, ptr, ptr, ptr, ptr, ptr }
%union.anon.1 = type { %struct.s2n_composite_cipher }
%struct.s2n_composite_cipher = type { i8, i8, i8, ptr, ptr, ptr, ptr }
%struct.s2n_debug_info = type { ptr, ptr }
%struct.s2n_blob = type { ptr, i32, i32, i8 }
%struct.s2n_result = type { i32 }
%struct.iovec = type { ptr, 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_stuffer = type { %struct.s2n_blob, i32, i32, i32, i8 }
%struct.s2n_post_handshake = type { %struct.s2n_stuffer, [4 x i8] }
%struct.s2n_atomic_flag = type { i32 }
%struct.s2n_crypto_parameters = type { ptr, %struct.s2n_session_key, %struct.s2n_session_key, %struct.s2n_hmac_state, %struct.s2n_hmac_state, [16 x i8], [16 x i8], [8 x i8], [8 x i8] }
%struct.s2n_session_key = type { ptr }
%struct.s2n_hmac_state = type { i32, i16, i32, i16, i8, %struct.s2n_hash_state, %struct.s2n_hash_state, %struct.s2n_hash_state, %struct.s2n_hash_state, [128 x i8], [64 x i8] }
%struct.s2n_hash_state = type { ptr, i32, i8, i64, %union.anon.0 }
%union.anon.0 = type { %struct.s2n_hash_evp_digest }
%struct.s2n_hash_evp_digest = type { %struct.s2n_evp_digest, %struct.s2n_evp_digest }
%struct.s2n_evp_digest = type { ptr, ptr }

@s2n_use_color_in_output = external dso_local 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 [79 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
@__const.main.mac_key = external hidden unnamed_addr constant [15 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [62 x i8], align 1
@__const.main.aes128_key = external hidden unnamed_addr constant [16 x i8], align 16
@.str.11 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [39 x i8], align 1
@s2n_record_alg_aes128_sha = external constant %struct.s2n_record_algorithm, align 8
@.str.13 = external hidden unnamed_addr constant [111 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [111 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [134 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [134 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [117 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [117 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [67 x i8], align 1
@s2n_record_alg_null = external constant %struct.s2n_record_algorithm, align 8
@.str.23 = external hidden unnamed_addr constant [118 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [118 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [70 x i8], align 1
@s2n_tls13_aes_128_gcm_sha256 = external global %struct.s2n_cipher_suite, align 8
@.str.32 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [64 x i8], align 1
@s2n_record_alg_3des_sha = external constant %struct.s2n_record_algorithm, align 8
@__const.main.des3_key = external hidden unnamed_addr constant [24 x i8], align 16
@.str.44 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [125 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [125 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [146 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [146 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [124 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [115 x i8], align 1
@s2n_record_alg_aes128_gcm = external constant %struct.s2n_record_algorithm, align 8
@.str.54 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [61 x i8], align 1
@s2n_tls13_record_alg_aes128_gcm = external constant %struct.s2n_record_algorithm, align 8
@.str.57 = external hidden unnamed_addr constant [67 x i8], align 1
@s2n_chacha20_poly1305 = external constant %struct.s2n_cipher, align 8
@s2n_record_alg_chacha20_poly1305 = external constant %struct.s2n_record_algorithm, align 8
@__const.main.chacha20_poly1305_key_data = external hidden unnamed_addr constant [32 x i8], align 16
@.str.58 = external hidden unnamed_addr constant [130 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [61 x i8], align 1
@s2n_tls13_record_alg_chacha20_poly1305 = external constant %struct.s2n_record_algorithm, align 8
@__const.main.chacha20_poly1305_key_data.61 = external hidden unnamed_addr constant [32 x i8], align 16
@.str.62 = external hidden unnamed_addr constant [65 x i8], align 1
@s2n_aes128_sha = external constant %struct.s2n_cipher, align 8
@s2n_aes128_sha256 = external constant %struct.s2n_cipher, align 8
@s2n_record_alg_aes128_sha_composite = external constant %struct.s2n_record_algorithm, align 8
@__const.main.mac_key_sha = external hidden unnamed_addr constant [20 x i8], align 16
@.str.63 = external hidden unnamed_addr constant [150 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [150 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [179 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [179 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [104 x i8], align 1
@_s2n_debug_info = external thread_local global %struct.s2n_debug_info, align 8
@.str.75 = external hidden unnamed_addr constant [115 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [120 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.81 = external hidden unnamed_addr constant [104 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [111 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [132 x i8], align 1
@.str.85 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.86 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.88 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.89 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.91 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.92 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.93 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.94 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.95 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.96 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.97 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.98 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.99 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.100 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.101 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.102 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.103 = 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 [15 x i8], align 1
  %11 = alloca [17414 x i8], align 16
  %12 = alloca %struct.s2n_blob, align 8
  %13 = alloca i32, align 4
  %14 = alloca %struct.s2n_result, align 4
  %15 = alloca i32, align 4
  %16 = alloca [16 x i8], align 16
  %17 = alloca %struct.s2n_blob, align 8
  %18 = alloca i32, align 4
  %19 = alloca ptr, align 8
  %20 = alloca i32, align 4
  %21 = alloca %struct.s2n_result, align 4
  %22 = alloca i32, align 4
  %23 = alloca %struct.s2n_result, align 4
  %24 = alloca i32, align 4
  %25 = alloca %struct.s2n_result, align 4
  %26 = alloca i32, align 4
  %27 = alloca %struct.s2n_result, align 4
  %28 = alloca i32, align 4
  %29 = alloca i32, align 4
  %30 = alloca i32, align 4
  %31 = alloca i32, align 4
  %32 = alloca i32, align 4
  %33 = alloca i32, align 4
  %34 = alloca %struct.s2n_blob, align 8
  %35 = alloca i32, align 4
  %36 = alloca %struct.s2n_result, align 4
  %37 = alloca i32, align 4
  %38 = alloca i32, align 4
  %39 = alloca i32, align 4
  %40 = alloca %struct.s2n_result, align 4
  %41 = alloca i32, align 4
  %42 = alloca i32, align 4
  %43 = alloca i32, align 4
  %44 = alloca %struct.s2n_result, align 4
  %45 = alloca i32, align 4
  %46 = alloca %struct.s2n_result, align 4
  %47 = alloca i32, align 4
  %48 = alloca %struct.s2n_result, align 4
  %49 = alloca i32, align 4
  %50 = alloca %struct.s2n_result, align 4
  %51 = alloca ptr, align 8
  %52 = alloca i32, align 4
  %53 = alloca i16, align 2
  %54 = alloca %struct.s2n_result, align 4
  %55 = alloca i32, align 4
  %56 = alloca i32, align 4
  %57 = alloca %struct.s2n_result, align 4
  %58 = alloca i32, align 4
  %59 = alloca i32, align 4
  %60 = alloca %struct.s2n_result, align 4
  %61 = alloca i32, align 4
  %62 = alloca i32, align 4
  %63 = alloca i32, align 4
  %64 = alloca %struct.s2n_result, align 4
  %65 = alloca i32, align 4
  %66 = alloca i32, align 4
  %67 = alloca %struct.s2n_result, align 4
  %68 = alloca i32, align 4
  %69 = alloca i32, align 4
  %70 = alloca %struct.s2n_result, align 4
  %71 = alloca i32, align 4
  %72 = alloca i32, align 4
  %73 = alloca i32, align 4
  %74 = alloca ptr, align 8
  %75 = alloca i32, align 4
  %76 = alloca i32, align 4
  %77 = alloca i32, align 4
  %78 = alloca ptr, align 8
  %79 = alloca i32, align 4
  %80 = alloca i32, align 4
  %81 = alloca i16, align 2
  %82 = alloca %struct.s2n_result, align 4
  %83 = alloca i32, align 4
  %84 = alloca i32, align 4
  %85 = alloca %struct.s2n_result, align 4
  %86 = alloca i32, align 4
  %87 = alloca i32, align 4
  %88 = alloca i32, align 4
  %89 = alloca ptr, align 8
  %90 = alloca i32, align 4
  %91 = alloca i32, align 4
  %92 = alloca i16, align 2
  %93 = alloca %struct.s2n_result, align 4
  %94 = alloca i32, align 4
  %95 = alloca i32, align 4
  %96 = alloca %struct.s2n_result, align 4
  %97 = alloca ptr, align 8
  %98 = alloca i32, align 4
  %99 = alloca i32, align 4
  %100 = alloca i32, align 4
  %101 = alloca i32, align 4
  %102 = alloca i32, align 4
  %103 = alloca i16, align 2
  %104 = alloca %struct.s2n_result, align 4
  %105 = alloca i32, align 4
  %106 = alloca i32, align 4
  %107 = alloca %struct.s2n_result, align 4
  %108 = alloca ptr, align 8
  %109 = alloca i32, align 4
  %110 = alloca i32, align 4
  %111 = alloca i32, align 4
  %112 = alloca i32, align 4
  %113 = alloca i32, align 4
  %114 = alloca i16, align 2
  %115 = alloca %struct.s2n_result, align 4
  %116 = alloca i32, align 4
  %117 = alloca i32, align 4
  %118 = alloca %struct.s2n_result, align 4
  %119 = alloca %struct.s2n_result, align 4
  %120 = alloca ptr, align 8
  %121 = alloca i32, align 4
  %122 = alloca i16, align 2
  %123 = alloca i32, align 4
  %124 = alloca %struct.s2n_result, align 4
  %125 = alloca i32, align 4
  %126 = alloca i32, align 4
  %127 = alloca i32, align 4
  %128 = alloca i32, align 4
  %129 = alloca i32, align 4
  %130 = alloca [24 x i8], align 16
  %131 = alloca %struct.s2n_blob, align 8
  %132 = alloca i32, align 4
  %133 = alloca %struct.s2n_result, align 4
  %134 = alloca i32, align 4
  %135 = alloca %struct.s2n_result, align 4
  %136 = alloca i32, align 4
  %137 = alloca %struct.s2n_result, align 4
  %138 = alloca i32, align 4
  %139 = alloca %struct.s2n_result, align 4
  %140 = alloca i32, align 4
  %141 = alloca i32, align 4
  %142 = alloca %struct.s2n_result, align 4
  %143 = alloca i32, align 4
  %144 = alloca i32, align 4
  %145 = alloca i16, align 2
  %146 = alloca i16, align 2
  %147 = alloca i16, align 2
  %148 = alloca i32, align 4
  %149 = alloca %struct.s2n_result, align 4
  %150 = alloca i32, align 4
  %151 = alloca i16, align 2
  %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 %struct.s2n_result, align 4
  %158 = alloca i32, align 4
  %159 = alloca i16, align 2
  %160 = alloca i16, align 2
  %161 = alloca i32, align 4
  %162 = alloca %struct.s2n_result, align 4
  %163 = alloca i32, align 4
  %164 = alloca i16, align 2
  %165 = alloca i32, align 4
  %166 = alloca i32, align 4
  %167 = alloca i32, align 4
  %168 = alloca i32, align 4
  %169 = alloca i32, align 4
  %170 = alloca i32, align 4
  %171 = alloca %struct.s2n_result, align 4
  %172 = alloca i32, align 4
  %173 = alloca i16, align 2
  %174 = alloca i16, align 2
  %175 = alloca i32, align 4
  %176 = alloca %struct.s2n_result, align 4
  %177 = alloca i32, align 4
  %178 = alloca i16, align 2
  %179 = alloca i32, align 4
  %180 = alloca i32, align 4
  %181 = alloca i32, align 4
  %182 = alloca i32, align 4
  %183 = alloca [32 x i8], align 16
  %184 = alloca %struct.s2n_blob, align 8
  %185 = alloca i32, align 4
  %186 = alloca i32, align 4
  %187 = alloca i32, align 4
  %188 = alloca %struct.s2n_result, align 4
  %189 = alloca i32, align 4
  %190 = alloca i32, align 4
  %191 = alloca %struct.s2n_result, align 4
  %192 = alloca i32, align 4
  %193 = alloca i16, align 2
  %194 = alloca i32, align 4
  %195 = alloca i32, align 4
  %196 = alloca i32, align 4
  %197 = alloca i32, align 4
  %198 = alloca [32 x i8], align 16
  %199 = alloca %struct.s2n_blob, align 8
  %200 = alloca i32, align 4
  %201 = alloca i32, align 4
  %202 = alloca i32, align 4
  %203 = alloca %struct.s2n_result, align 4
  %204 = alloca i32, align 4
  %205 = alloca i32, align 4
  %206 = alloca %struct.s2n_result, align 4
  %207 = alloca i32, align 4
  %208 = alloca i16, align 2
  %209 = alloca i32, align 4
  %210 = alloca i32, align 4
  %211 = alloca i32, align 4
  %212 = alloca i32, align 4
  %213 = alloca i32, align 4
  %214 = alloca [20 x i8], align 16
  %215 = alloca %struct.s2n_result, align 4
  %216 = alloca i32, align 4
  %217 = alloca %struct.s2n_result, align 4
  %218 = alloca i32, align 4
  %219 = alloca i32, align 4
  %220 = alloca i32, align 4
  %221 = alloca %struct.s2n_result, align 4
  %222 = alloca i32, align 4
  %223 = alloca i16, align 2
  %224 = alloca i16, align 2
  %225 = alloca i16, align 2
  %226 = alloca i16, align 2
  %227 = alloca i16, align 2
  %228 = alloca i16, align 2
  %229 = alloca i32, align 4
  %230 = alloca %struct.s2n_result, align 4
  %231 = alloca i32, align 4
  %232 = alloca i16, align 2
  %233 = alloca i32, align 4
  %234 = alloca i32, align 4
  %235 = alloca i32, align 4
  %236 = alloca ptr, align 8
  %237 = alloca i32, align 4
  %238 = alloca ptr, align 8
  %239 = alloca ptr, align 8
  %240 = alloca ptr, align 8
  %241 = alloca %struct.s2n_result, align 4
  %242 = alloca i32, align 4
  %243 = alloca %struct.s2n_blob, align 8
  %244 = alloca %struct.s2n_result, align 4
  %245 = alloca i32, align 4
  %246 = alloca %struct.s2n_result, align 4
  %247 = alloca i32, align 4
  %248 = alloca %struct.s2n_result, align 4
  %249 = alloca i32, align 4
  %250 = alloca %struct.s2n_blob, align 8
  %251 = alloca %struct.s2n_result, align 4
  %252 = alloca i64, align 8
  %253 = alloca i32, align 4
  %254 = alloca i64, align 8
  %255 = alloca [1024 x i8], align 16
  %256 = alloca %struct.s2n_blob, align 8
  %257 = alloca %struct.iovec, align 8
  %258 = alloca i32, align 4
  %259 = alloca i16, align 2
  %260 = alloca i32, align 4
  %261 = alloca i32, align 4
  %262 = alloca i32, align 4
  %263 = alloca %struct.s2n_result, align 4
  %264 = alloca i32, align 4
  %265 = alloca i32, align 4
  %266 = alloca i32, align 4
  %267 = alloca i32, align 4
  %268 = alloca %struct.s2n_result, align 4
  %269 = alloca i32, align 4
  %270 = alloca i32, align 4
  %271 = alloca i64, align 8
  %272 = alloca [100000 x i8], align 16
  %273 = alloca %struct.s2n_blob, align 8
  %274 = alloca %struct.iovec, align 8
  %275 = alloca i32, align 4
  %276 = alloca i16, align 2
  %277 = alloca i32, align 4
  %278 = alloca i32, align 4
  %279 = alloca i32, align 4
  %280 = alloca i32, align 4
  %281 = alloca i32, align 4
  %282 = alloca i32, align 4
  %283 = alloca i32, align 4
  %284 = alloca i16, align 2
  %285 = alloca i32, align 4
  %286 = alloca i32, align 4
  %287 = alloca i32, align 4
  %288 = alloca i32, align 4
  %289 = alloca i32, align 4
  %290 = alloca i32, align 4
  %291 = alloca i32, align 4
  %292 = alloca i32, align 4
  %293 = alloca i16, align 2
  %294 = alloca ptr, align 8
  %295 = alloca i32, align 4
  %296 = alloca %struct.s2n_result, align 4
  %297 = alloca i32, align 4
  %298 = alloca i32, align 4
  %299 = alloca i32, align 4
  %300 = alloca %struct.s2n_result, align 4
  %301 = alloca i32, align 4
  %302 = alloca i32, align 4
  %303 = alloca i32, align 4
  %304 = alloca %struct.s2n_result, 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 %struct.s2n_result, align 4
  %311 = alloca i32, align 4
  %312 = alloca i32, align 4
  %313 = alloca %struct.s2n_result, align 4
  %314 = alloca i32, align 4
  %315 = alloca i32, align 4
  %316 = alloca i16, align 2
  %317 = alloca %struct.s2n_result, align 4
  %318 = alloca i32, align 4
  %319 = alloca i32, align 4
  %320 = alloca %struct.s2n_result, align 4
  %321 = alloca i32, align 4
  %322 = 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 %323

323:                                              ; preds = %2
  br label %324

324:                                              ; preds = %323
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %325 = load ptr, ptr @stdout, align 8, !tbaa !9
  %326 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %325, ptr noundef @.str, ptr noundef @.str.1) #11
  %327 = load ptr, ptr @stdout, align 8, !tbaa !9
  %328 = call i32 @fflush(ptr noundef %327)
  br label %329

329:                                              ; preds = %324
  %330 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true)
  %331 = icmp eq i32 %330, -1
  br i1 %331, label %332, label %383

332:                                              ; preds = %329
  br label %333

333:                                              ; preds = %332
  br label %334

334:                                              ; preds = %333
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #11
  %335 = call ptr @__errno_location() #12
  %336 = load i32, ptr %335, align 4, !tbaa !5
  store i32 %336, ptr %6, align 4, !tbaa !5
  %337 = load ptr, ptr @stderr, align 8, !tbaa !9
  %338 = call i32 @s2n_print_stacktrace(ptr noundef %337)
  %339 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %340 = trunc i8 %339 to i1
  br i1 %340, label %341, label %363

341:                                              ; preds = %334
  %342 = load ptr, ptr @stderr, align 8, !tbaa !9
  %343 = call i32 @fileno(ptr noundef %342) #11
  %344 = call i32 @isatty(i32 noundef %343) #11
  %345 = icmp ne i32 %344, 0
  br i1 %345, label %346, label %363

346:                                              ; preds = %341
  %347 = load i32, ptr %6, align 4, !tbaa !5
  %348 = call ptr @__errno_location() #12
  store i32 %347, ptr %348, align 4, !tbaa !5
  %349 = load ptr, ptr @stderr, align 8, !tbaa !9
  %350 = load i32, ptr @test_count, align 4, !tbaa !5
  %351 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %352 = load i32, ptr %351, align 4, !tbaa !5
  %353 = call ptr @s2n_strerror(i32 noundef %352, ptr noundef @.str.4)
  %354 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %355 = load i32, ptr %354, align 4, !tbaa !5
  %356 = call ptr @s2n_strerror_debug(i32 noundef %355, ptr noundef @.str.4)
  %357 = call ptr @__errno_location() #12
  %358 = load i32, ptr %357, align 4, !tbaa !5
  %359 = call ptr @strerror(i32 noundef %358) #11
  %360 = call ptr @__errno_location() #12
  %361 = load i32, ptr %360, align 4, !tbaa !5
  %362 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %349, ptr noundef @.str.2, i32 noundef %350, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 59, ptr noundef %353, ptr noundef %356, ptr noundef %359, i32 noundef %361) #11
  br label %380

363:                                              ; preds = %341, %334
  %364 = load i32, ptr %6, align 4, !tbaa !5
  %365 = call ptr @__errno_location() #12
  store i32 %364, ptr %365, align 4, !tbaa !5
  %366 = load ptr, ptr @stderr, align 8, !tbaa !9
  %367 = load i32, ptr @test_count, align 4, !tbaa !5
  %368 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %369 = load i32, ptr %368, align 4, !tbaa !5
  %370 = call ptr @s2n_strerror(i32 noundef %369, ptr noundef @.str.4)
  %371 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %372 = load i32, ptr %371, align 4, !tbaa !5
  %373 = call ptr @s2n_strerror_debug(i32 noundef %372, ptr noundef @.str.4)
  %374 = call ptr @__errno_location() #12
  %375 = load i32, ptr %374, align 4, !tbaa !5
  %376 = call ptr @strerror(i32 noundef %375) #11
  %377 = call ptr @__errno_location() #12
  %378 = load i32, ptr %377, align 4, !tbaa !5
  %379 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %366, ptr noundef @.str.5, i32 noundef %367, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 59, ptr noundef %370, ptr noundef %373, ptr noundef %376, i32 noundef %378) #11
  br label %380

380:                                              ; preds = %363, %346
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #11
  br label %381

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

382:                                              ; No predecessors!
  br label %383

383:                                              ; preds = %382, %329
  br label %384

384:                                              ; preds = %383
  br label %385

385:                                              ; preds = %384
  %386 = load i32, ptr @test_count, align 4, !tbaa !5
  %387 = add nsw i32 %386, 1
  store i32 %387, ptr @test_count, align 4, !tbaa !5
  %388 = call i32 @s2n_enable_atexit()
  %389 = icmp eq i32 %388, -1
  br i1 %389, label %390, label %441

390:                                              ; preds = %385
  br label %391

391:                                              ; preds = %390
  br label %392

392:                                              ; preds = %391
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #11
  %393 = call ptr @__errno_location() #12
  %394 = load i32, ptr %393, align 4, !tbaa !5
  store i32 %394, ptr %7, align 4, !tbaa !5
  %395 = load ptr, ptr @stderr, align 8, !tbaa !9
  %396 = call i32 @s2n_print_stacktrace(ptr noundef %395)
  %397 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %398 = trunc i8 %397 to i1
  br i1 %398, label %399, label %421

399:                                              ; preds = %392
  %400 = load ptr, ptr @stderr, align 8, !tbaa !9
  %401 = call i32 @fileno(ptr noundef %400) #11
  %402 = call i32 @isatty(i32 noundef %401) #11
  %403 = icmp ne i32 %402, 0
  br i1 %403, label %404, label %421

404:                                              ; preds = %399
  %405 = load i32, ptr %7, align 4, !tbaa !5
  %406 = call ptr @__errno_location() #12
  store i32 %405, ptr %406, align 4, !tbaa !5
  %407 = load ptr, ptr @stderr, align 8, !tbaa !9
  %408 = load i32, ptr @test_count, align 4, !tbaa !5
  %409 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %410 = load i32, ptr %409, align 4, !tbaa !5
  %411 = call ptr @s2n_strerror(i32 noundef %410, ptr noundef @.str.4)
  %412 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %413 = load i32, ptr %412, align 4, !tbaa !5
  %414 = call ptr @s2n_strerror_debug(i32 noundef %413, ptr noundef @.str.4)
  %415 = call ptr @__errno_location() #12
  %416 = load i32, ptr %415, align 4, !tbaa !5
  %417 = call ptr @strerror(i32 noundef %416) #11
  %418 = call ptr @__errno_location() #12
  %419 = load i32, ptr %418, align 4, !tbaa !5
  %420 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %407, ptr noundef @.str.2, i32 noundef %408, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 59, ptr noundef %411, ptr noundef %414, ptr noundef %417, i32 noundef %419) #11
  br label %438

421:                                              ; preds = %399, %392
  %422 = load i32, ptr %7, align 4, !tbaa !5
  %423 = call ptr @__errno_location() #12
  store i32 %422, ptr %423, align 4, !tbaa !5
  %424 = load ptr, ptr @stderr, align 8, !tbaa !9
  %425 = load i32, ptr @test_count, align 4, !tbaa !5
  %426 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %427 = load i32, ptr %426, align 4, !tbaa !5
  %428 = call ptr @s2n_strerror(i32 noundef %427, ptr noundef @.str.4)
  %429 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %430 = load i32, ptr %429, align 4, !tbaa !5
  %431 = call ptr @s2n_strerror_debug(i32 noundef %430, ptr noundef @.str.4)
  %432 = call ptr @__errno_location() #12
  %433 = load i32, ptr %432, align 4, !tbaa !5
  %434 = call ptr @strerror(i32 noundef %433) #11
  %435 = call ptr @__errno_location() #12
  %436 = load i32, ptr %435, align 4, !tbaa !5
  %437 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %424, ptr noundef @.str.5, i32 noundef %425, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 59, ptr noundef %428, ptr noundef %431, ptr noundef %434, i32 noundef %436) #11
  br label %438

438:                                              ; preds = %421, %404
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #11
  br label %439

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

440:                                              ; No predecessors!
  br label %441

441:                                              ; preds = %440, %385
  br label %442

442:                                              ; preds = %441
  br label %443

443:                                              ; preds = %442
  br label %444

444:                                              ; preds = %443
  %445 = call i32 @s2n_init()
  %446 = icmp eq i32 %445, -1
  br i1 %446, label %447, label %498

447:                                              ; preds = %444
  br label %448

448:                                              ; preds = %447
  br label %449

449:                                              ; preds = %448
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #11
  %450 = call ptr @__errno_location() #12
  %451 = load i32, ptr %450, align 4, !tbaa !5
  store i32 %451, ptr %8, align 4, !tbaa !5
  %452 = load ptr, ptr @stderr, align 8, !tbaa !9
  %453 = call i32 @s2n_print_stacktrace(ptr noundef %452)
  %454 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %455 = trunc i8 %454 to i1
  br i1 %455, label %456, label %478

456:                                              ; preds = %449
  %457 = load ptr, ptr @stderr, align 8, !tbaa !9
  %458 = call i32 @fileno(ptr noundef %457) #11
  %459 = call i32 @isatty(i32 noundef %458) #11
  %460 = icmp ne i32 %459, 0
  br i1 %460, label %461, label %478

461:                                              ; preds = %456
  %462 = load i32, ptr %8, align 4, !tbaa !5
  %463 = call ptr @__errno_location() #12
  store i32 %462, ptr %463, align 4, !tbaa !5
  %464 = load ptr, ptr @stderr, align 8, !tbaa !9
  %465 = load i32, ptr @test_count, align 4, !tbaa !5
  %466 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %467 = load i32, ptr %466, align 4, !tbaa !5
  %468 = call ptr @s2n_strerror(i32 noundef %467, ptr noundef @.str.4)
  %469 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %470 = load i32, ptr %469, align 4, !tbaa !5
  %471 = call ptr @s2n_strerror_debug(i32 noundef %470, ptr noundef @.str.4)
  %472 = call ptr @__errno_location() #12
  %473 = load i32, ptr %472, align 4, !tbaa !5
  %474 = call ptr @strerror(i32 noundef %473) #11
  %475 = call ptr @__errno_location() #12
  %476 = load i32, ptr %475, align 4, !tbaa !5
  %477 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %464, ptr noundef @.str.2, i32 noundef %465, ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 59, ptr noundef %468, ptr noundef %471, ptr noundef %474, i32 noundef %476) #11
  br label %495

478:                                              ; preds = %456, %449
  %479 = load i32, ptr %8, align 4, !tbaa !5
  %480 = call ptr @__errno_location() #12
  store i32 %479, ptr %480, align 4, !tbaa !5
  %481 = load ptr, ptr @stderr, align 8, !tbaa !9
  %482 = load i32, ptr @test_count, align 4, !tbaa !5
  %483 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %484 = load i32, ptr %483, align 4, !tbaa !5
  %485 = call ptr @s2n_strerror(i32 noundef %484, ptr noundef @.str.4)
  %486 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %487 = load i32, ptr %486, align 4, !tbaa !5
  %488 = call ptr @s2n_strerror_debug(i32 noundef %487, ptr noundef @.str.4)
  %489 = call ptr @__errno_location() #12
  %490 = load i32, ptr %489, align 4, !tbaa !5
  %491 = call ptr @strerror(i32 noundef %490) #11
  %492 = call ptr @__errno_location() #12
  %493 = load i32, ptr %492, align 4, !tbaa !5
  %494 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %481, ptr noundef @.str.5, i32 noundef %482, ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 59, ptr noundef %485, ptr noundef %488, ptr noundef %491, i32 noundef %493) #11
  br label %495

495:                                              ; preds = %478, %461
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #11
  br label %496

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

497:                                              ; No predecessors!
  br label %498

498:                                              ; preds = %497, %444
  br label %499

499:                                              ; preds = %498
  br label %500

500:                                              ; preds = %499
  br label %501

501:                                              ; preds = %500
  %502 = load i32, ptr @test_count, align 4, !tbaa !5
  %503 = add nsw i32 %502, 1
  store i32 %503, ptr @test_count, align 4, !tbaa !5
  %504 = call i32 (...) @s2n_disable_tls13_in_test()
  %505 = icmp eq i32 %504, -1
  br i1 %505, label %506, label %557

506:                                              ; preds = %501
  br label %507

507:                                              ; preds = %506
  br label %508

508:                                              ; preds = %507
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #11
  %509 = call ptr @__errno_location() #12
  %510 = load i32, ptr %509, align 4, !tbaa !5
  store i32 %510, ptr %9, align 4, !tbaa !5
  %511 = load ptr, ptr @stderr, align 8, !tbaa !9
  %512 = call i32 @s2n_print_stacktrace(ptr noundef %511)
  %513 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %514 = trunc i8 %513 to i1
  br i1 %514, label %515, label %537

515:                                              ; preds = %508
  %516 = load ptr, ptr @stderr, align 8, !tbaa !9
  %517 = call i32 @fileno(ptr noundef %516) #11
  %518 = call i32 @isatty(i32 noundef %517) #11
  %519 = icmp ne i32 %518, 0
  br i1 %519, label %520, label %537

520:                                              ; preds = %515
  %521 = load i32, ptr %9, align 4, !tbaa !5
  %522 = call ptr @__errno_location() #12
  store i32 %521, ptr %522, align 4, !tbaa !5
  %523 = load ptr, ptr @stderr, align 8, !tbaa !9
  %524 = load i32, ptr @test_count, align 4, !tbaa !5
  %525 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %526 = load i32, ptr %525, align 4, !tbaa !5
  %527 = call ptr @s2n_strerror(i32 noundef %526, ptr noundef @.str.4)
  %528 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %529 = load i32, ptr %528, align 4, !tbaa !5
  %530 = call ptr @s2n_strerror_debug(i32 noundef %529, ptr noundef @.str.4)
  %531 = call ptr @__errno_location() #12
  %532 = load i32, ptr %531, align 4, !tbaa !5
  %533 = call ptr @strerror(i32 noundef %532) #11
  %534 = call ptr @__errno_location() #12
  %535 = load i32, ptr %534, align 4, !tbaa !5
  %536 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %523, ptr noundef @.str.2, i32 noundef %524, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 60, ptr noundef %527, ptr noundef %530, ptr noundef %533, i32 noundef %535) #11
  br label %554

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

554:                                              ; preds = %537, %520
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #11
  br label %555

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

556:                                              ; No predecessors!
  br label %557

557:                                              ; preds = %556, %501
  br label %558

558:                                              ; preds = %557
  call void @llvm.lifetime.start.p0(i64 15, ptr %10) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %10, ptr align 1 @__const.main.mac_key, i64 15, i1 false)
  call void @llvm.lifetime.start.p0(i64 17414, ptr %11) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr %12) #11
  call void @llvm.memset.p0.i64(ptr align 8 %12, i8 0, i64 24, i1 false)
  br label %559

559:                                              ; preds = %558
  %560 = load i32, ptr @test_count, align 4, !tbaa !5
  %561 = add nsw i32 %560, 1
  store i32 %561, ptr @test_count, align 4, !tbaa !5
  %562 = getelementptr inbounds [17414 x i8], ptr %11, i64 0, i64 0
  %563 = call i32 @s2n_blob_init(ptr noundef %12, ptr noundef %562, i32 noundef 17414)
  %564 = icmp eq i32 %563, -1
  br i1 %564, label %565, label %618

565:                                              ; preds = %559
  br label %566

566:                                              ; preds = %565
  br label %567

567:                                              ; preds = %566
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #11
  %568 = call ptr @__errno_location() #12
  %569 = load i32, ptr %568, align 4, !tbaa !5
  store i32 %569, ptr %13, align 4, !tbaa !5
  %570 = load ptr, ptr @stderr, align 8, !tbaa !9
  %571 = call i32 @s2n_print_stacktrace(ptr noundef %570)
  %572 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %573 = trunc i8 %572 to i1
  br i1 %573, label %574, label %596

574:                                              ; preds = %567
  %575 = load ptr, ptr @stderr, align 8, !tbaa !9
  %576 = call i32 @fileno(ptr noundef %575) #11
  %577 = call i32 @isatty(i32 noundef %576) #11
  %578 = icmp ne i32 %577, 0
  br i1 %578, label %579, label %596

579:                                              ; preds = %574
  %580 = load i32, ptr %13, align 4, !tbaa !5
  %581 = call ptr @__errno_location() #12
  store i32 %580, ptr %581, align 4, !tbaa !5
  %582 = load ptr, ptr @stderr, align 8, !tbaa !9
  %583 = load i32, ptr @test_count, align 4, !tbaa !5
  %584 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %585 = load i32, ptr %584, align 4, !tbaa !5
  %586 = call ptr @s2n_strerror(i32 noundef %585, ptr noundef @.str.4)
  %587 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %588 = load i32, ptr %587, align 4, !tbaa !5
  %589 = call ptr @s2n_strerror_debug(i32 noundef %588, ptr noundef @.str.4)
  %590 = call ptr @__errno_location() #12
  %591 = load i32, ptr %590, align 4, !tbaa !5
  %592 = call ptr @strerror(i32 noundef %591) #11
  %593 = call ptr @__errno_location() #12
  %594 = load i32, ptr %593, align 4, !tbaa !5
  %595 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %582, ptr noundef @.str.2, i32 noundef %583, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 66, ptr noundef %586, ptr noundef %589, ptr noundef %592, i32 noundef %594) #11
  br label %613

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

613:                                              ; preds = %596, %579
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #11
  br label %614

614:                                              ; preds = %613
  br label %615

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

616:                                              ; No predecessors!
  br label %617

617:                                              ; preds = %616
  br label %618

618:                                              ; preds = %617, %559
  br label %619

619:                                              ; preds = %618
  br label %620

620:                                              ; preds = %619
  br label %621

621:                                              ; preds = %620
  %622 = load i32, ptr @test_count, align 4, !tbaa !5
  %623 = add nsw i32 %622, 1
  store i32 %623, ptr @test_count, align 4, !tbaa !5
  %624 = call i32 @s2n_get_public_random_data(ptr noundef %12)
  %625 = getelementptr inbounds %struct.s2n_result, ptr %14, i32 0, i32 0
  store i32 %624, ptr %625, align 4
  %626 = getelementptr inbounds %struct.s2n_result, ptr %14, i32 0, i32 0
  %627 = load i32, ptr %626, align 4
  %628 = call zeroext i1 @s2n_result_is_ok(i32 %627)
  br i1 %628, label %682, label %629

629:                                              ; preds = %621
  br label %630

630:                                              ; preds = %629
  br label %631

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

638:                                              ; preds = %631
  %639 = load ptr, ptr @stderr, align 8, !tbaa !9
  %640 = call i32 @fileno(ptr noundef %639) #11
  %641 = call i32 @isatty(i32 noundef %640) #11
  %642 = icmp ne i32 %641, 0
  br i1 %642, label %643, label %660

643:                                              ; preds = %638
  %644 = load i32, ptr %15, align 4, !tbaa !5
  %645 = call ptr @__errno_location() #12
  store i32 %644, ptr %645, align 4, !tbaa !5
  %646 = load ptr, ptr @stderr, align 8, !tbaa !9
  %647 = load i32, ptr @test_count, align 4, !tbaa !5
  %648 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %649 = load i32, ptr %648, align 4, !tbaa !5
  %650 = call ptr @s2n_strerror(i32 noundef %649, ptr noundef @.str.4)
  %651 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %652 = load i32, ptr %651, align 4, !tbaa !5
  %653 = call ptr @s2n_strerror_debug(i32 noundef %652, ptr noundef @.str.4)
  %654 = call ptr @__errno_location() #12
  %655 = load i32, ptr %654, align 4, !tbaa !5
  %656 = call ptr @strerror(i32 noundef %655) #11
  %657 = call ptr @__errno_location() #12
  %658 = load i32, ptr %657, align 4, !tbaa !5
  %659 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %646, ptr noundef @.str.2, i32 noundef %647, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 67, ptr noundef %650, ptr noundef %653, ptr noundef %656, i32 noundef %658) #11
  br label %677

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

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

678:                                              ; preds = %677
  br label %679

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

680:                                              ; No predecessors!
  br label %681

681:                                              ; preds = %680
  br label %682

682:                                              ; preds = %681, %621
  br label %683

683:                                              ; preds = %682
  br label %684

684:                                              ; preds = %683
  call void @llvm.lifetime.start.p0(i64 16, ptr %16) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %16, ptr align 16 @__const.main.aes128_key, i64 16, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr %17) #11
  call void @llvm.memset.p0.i64(ptr align 8 %17, i8 0, i64 24, i1 false)
  br label %685

685:                                              ; preds = %684
  %686 = load i32, ptr @test_count, align 4, !tbaa !5
  %687 = add nsw i32 %686, 1
  store i32 %687, ptr @test_count, align 4, !tbaa !5
  %688 = getelementptr inbounds [16 x i8], ptr %16, i64 0, i64 0
  %689 = call i32 @s2n_blob_init(ptr noundef %17, ptr noundef %688, i32 noundef 16)
  %690 = icmp eq i32 %689, -1
  br i1 %690, label %691, label %744

691:                                              ; preds = %685
  br label %692

692:                                              ; preds = %691
  br label %693

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

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

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

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

739:                                              ; preds = %722, %705
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #11
  br label %740

740:                                              ; preds = %739
  br label %741

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

742:                                              ; No predecessors!
  br label %743

743:                                              ; preds = %742
  br label %744

744:                                              ; preds = %743, %685
  br label %745

745:                                              ; preds = %744
  br label %746

746:                                              ; preds = %745
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #11
  %747 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %747, ptr %19, align 8, !tbaa !9
  br label %748

748:                                              ; preds = %746
  %749 = load i32, ptr @test_count, align 4, !tbaa !5
  %750 = add nsw i32 %749, 1
  store i32 %750, ptr @test_count, align 4, !tbaa !5
  %751 = load ptr, ptr %19, align 8, !tbaa !9
  %752 = icmp eq ptr %751, null
  br i1 %752, label %753, label %806

753:                                              ; preds = %748
  br label %754

754:                                              ; preds = %753
  br label %755

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

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

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

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

801:                                              ; preds = %784, %767
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #11
  br label %802

802:                                              ; preds = %801
  br label %803

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

804:                                              ; No predecessors!
  br label %805

805:                                              ; preds = %804
  br label %806

806:                                              ; preds = %805, %748
  br label %807

807:                                              ; preds = %806
  br label %808

808:                                              ; preds = %807
  %809 = load ptr, ptr %19, align 8, !tbaa !9
  %810 = getelementptr inbounds %struct.s2n_connection, ptr %809, i32 0, i32 27
  %811 = load ptr, ptr %810, align 8, !tbaa !15
  %812 = load ptr, ptr %19, align 8, !tbaa !9
  %813 = getelementptr inbounds %struct.s2n_connection, ptr %812, i32 0, i32 30
  store ptr %811, ptr %813, align 8, !tbaa !42
  %814 = load ptr, ptr %19, align 8, !tbaa !9
  %815 = getelementptr inbounds %struct.s2n_connection, ptr %814, i32 0, i32 27
  %816 = load ptr, ptr %815, align 8, !tbaa !15
  %817 = load ptr, ptr %19, align 8, !tbaa !9
  %818 = getelementptr inbounds %struct.s2n_connection, ptr %817, i32 0, i32 29
  store ptr %816, ptr %818, align 8, !tbaa !43
  %819 = load ptr, ptr %19, align 8, !tbaa !9
  %820 = getelementptr inbounds %struct.s2n_connection, ptr %819, i32 0, i32 27
  %821 = load ptr, ptr %820, align 8, !tbaa !15
  %822 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %821, i32 0, i32 0
  %823 = load ptr, ptr %822, align 8, !tbaa !44
  %824 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %823, i32 0, i32 6
  store ptr @s2n_record_alg_aes128_sha, ptr %824, align 8, !tbaa !49
  br label %825

825:                                              ; preds = %808
  %826 = load i32, ptr @test_count, align 4, !tbaa !5
  %827 = add nsw i32 %826, 1
  store i32 %827, ptr @test_count, align 4, !tbaa !5
  %828 = load ptr, ptr %19, align 8, !tbaa !9
  %829 = getelementptr inbounds %struct.s2n_connection, ptr %828, i32 0, i32 27
  %830 = load ptr, ptr %829, align 8, !tbaa !15
  %831 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %830, i32 0, i32 0
  %832 = load ptr, ptr %831, align 8, !tbaa !44
  %833 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %832, i32 0, i32 6
  %834 = load ptr, ptr %833, align 8, !tbaa !49
  %835 = getelementptr inbounds %struct.s2n_record_algorithm, ptr %834, i32 0, i32 0
  %836 = load ptr, ptr %835, align 8, !tbaa !51
  %837 = getelementptr inbounds %struct.s2n_cipher, ptr %836, i32 0, i32 4
  %838 = load ptr, ptr %837, align 8, !tbaa !53
  %839 = load ptr, ptr %19, align 8, !tbaa !9
  %840 = getelementptr inbounds %struct.s2n_connection, ptr %839, i32 0, i32 27
  %841 = load ptr, ptr %840, align 8, !tbaa !15
  %842 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %841, i32 0, i32 2
  %843 = call i32 %838(ptr noundef %842)
  %844 = getelementptr inbounds %struct.s2n_result, ptr %21, i32 0, i32 0
  store i32 %843, ptr %844, align 4
  %845 = getelementptr inbounds %struct.s2n_result, ptr %21, i32 0, i32 0
  %846 = load i32, ptr %845, align 4
  %847 = call zeroext i1 @s2n_result_is_ok(i32 %846)
  br i1 %847, label %901, label %848

848:                                              ; preds = %825
  br label %849

849:                                              ; preds = %848
  br label %850

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

857:                                              ; preds = %850
  %858 = load ptr, ptr @stderr, align 8, !tbaa !9
  %859 = call i32 @fileno(ptr noundef %858) #11
  %860 = call i32 @isatty(i32 noundef %859) #11
  %861 = icmp ne i32 %860, 0
  br i1 %861, label %862, label %879

862:                                              ; preds = %857
  %863 = load i32, ptr %22, align 4, !tbaa !5
  %864 = call ptr @__errno_location() #12
  store i32 %863, ptr %864, align 4, !tbaa !5
  %865 = load ptr, ptr @stderr, align 8, !tbaa !9
  %866 = load i32, ptr @test_count, align 4, !tbaa !5
  %867 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %868 = load i32, ptr %867, align 4, !tbaa !5
  %869 = call ptr @s2n_strerror(i32 noundef %868, ptr noundef @.str.4)
  %870 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %871 = load i32, ptr %870, align 4, !tbaa !5
  %872 = call ptr @s2n_strerror_debug(i32 noundef %871, ptr noundef @.str.4)
  %873 = call ptr @__errno_location() #12
  %874 = load i32, ptr %873, align 4, !tbaa !5
  %875 = call ptr @strerror(i32 noundef %874) #11
  %876 = call ptr @__errno_location() #12
  %877 = load i32, ptr %876, align 4, !tbaa !5
  %878 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %865, ptr noundef @.str.2, i32 noundef %866, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 85, ptr noundef %869, ptr noundef %872, ptr noundef %875, i32 noundef %877) #11
  br label %896

879:                                              ; preds = %857, %850
  %880 = load i32, ptr %22, align 4, !tbaa !5
  %881 = call ptr @__errno_location() #12
  store i32 %880, ptr %881, align 4, !tbaa !5
  %882 = load ptr, ptr @stderr, align 8, !tbaa !9
  %883 = load i32, ptr @test_count, align 4, !tbaa !5
  %884 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %885 = load i32, ptr %884, align 4, !tbaa !5
  %886 = call ptr @s2n_strerror(i32 noundef %885, ptr noundef @.str.4)
  %887 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %888 = load i32, ptr %887, align 4, !tbaa !5
  %889 = call ptr @s2n_strerror_debug(i32 noundef %888, ptr noundef @.str.4)
  %890 = call ptr @__errno_location() #12
  %891 = load i32, ptr %890, align 4, !tbaa !5
  %892 = call ptr @strerror(i32 noundef %891) #11
  %893 = call ptr @__errno_location() #12
  %894 = load i32, ptr %893, align 4, !tbaa !5
  %895 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %882, ptr noundef @.str.5, i32 noundef %883, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 85, ptr noundef %886, ptr noundef %889, ptr noundef %892, i32 noundef %894) #11
  br label %896

896:                                              ; preds = %879, %862
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #11
  br label %897

897:                                              ; preds = %896
  br label %898

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

899:                                              ; No predecessors!
  br label %900

900:                                              ; preds = %899
  br label %901

901:                                              ; preds = %900, %825
  br label %902

902:                                              ; preds = %901
  br label %903

903:                                              ; preds = %902
  br label %904

904:                                              ; preds = %903
  %905 = load i32, ptr @test_count, align 4, !tbaa !5
  %906 = add nsw i32 %905, 1
  store i32 %906, ptr @test_count, align 4, !tbaa !5
  %907 = load ptr, ptr %19, align 8, !tbaa !9
  %908 = getelementptr inbounds %struct.s2n_connection, ptr %907, i32 0, i32 27
  %909 = load ptr, ptr %908, align 8, !tbaa !15
  %910 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %909, i32 0, i32 0
  %911 = load ptr, ptr %910, align 8, !tbaa !44
  %912 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %911, i32 0, i32 6
  %913 = load ptr, ptr %912, align 8, !tbaa !49
  %914 = getelementptr inbounds %struct.s2n_record_algorithm, ptr %913, i32 0, i32 0
  %915 = load ptr, ptr %914, align 8, !tbaa !51
  %916 = getelementptr inbounds %struct.s2n_cipher, ptr %915, i32 0, i32 4
  %917 = load ptr, ptr %916, align 8, !tbaa !53
  %918 = load ptr, ptr %19, align 8, !tbaa !9
  %919 = getelementptr inbounds %struct.s2n_connection, ptr %918, i32 0, i32 27
  %920 = load ptr, ptr %919, align 8, !tbaa !15
  %921 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %920, i32 0, i32 1
  %922 = call i32 %917(ptr noundef %921)
  %923 = getelementptr inbounds %struct.s2n_result, ptr %23, i32 0, i32 0
  store i32 %922, ptr %923, align 4
  %924 = getelementptr inbounds %struct.s2n_result, ptr %23, i32 0, i32 0
  %925 = load i32, ptr %924, align 4
  %926 = call zeroext i1 @s2n_result_is_ok(i32 %925)
  br i1 %926, label %980, label %927

927:                                              ; preds = %904
  br label %928

928:                                              ; preds = %927
  br label %929

929:                                              ; preds = %928
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #11
  %930 = call ptr @__errno_location() #12
  %931 = load i32, ptr %930, align 4, !tbaa !5
  store i32 %931, ptr %24, align 4, !tbaa !5
  %932 = load ptr, ptr @stderr, align 8, !tbaa !9
  %933 = call i32 @s2n_print_stacktrace(ptr noundef %932)
  %934 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %935 = trunc i8 %934 to i1
  br i1 %935, label %936, label %958

936:                                              ; preds = %929
  %937 = load ptr, ptr @stderr, align 8, !tbaa !9
  %938 = call i32 @fileno(ptr noundef %937) #11
  %939 = call i32 @isatty(i32 noundef %938) #11
  %940 = icmp ne i32 %939, 0
  br i1 %940, label %941, label %958

941:                                              ; preds = %936
  %942 = load i32, ptr %24, align 4, !tbaa !5
  %943 = call ptr @__errno_location() #12
  store i32 %942, ptr %943, align 4, !tbaa !5
  %944 = load ptr, ptr @stderr, align 8, !tbaa !9
  %945 = load i32, ptr @test_count, align 4, !tbaa !5
  %946 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %947 = load i32, ptr %946, align 4, !tbaa !5
  %948 = call ptr @s2n_strerror(i32 noundef %947, ptr noundef @.str.4)
  %949 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %950 = load i32, ptr %949, align 4, !tbaa !5
  %951 = call ptr @s2n_strerror_debug(i32 noundef %950, ptr noundef @.str.4)
  %952 = call ptr @__errno_location() #12
  %953 = load i32, ptr %952, align 4, !tbaa !5
  %954 = call ptr @strerror(i32 noundef %953) #11
  %955 = call ptr @__errno_location() #12
  %956 = load i32, ptr %955, align 4, !tbaa !5
  %957 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %944, ptr noundef @.str.2, i32 noundef %945, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 86, ptr noundef %948, ptr noundef %951, ptr noundef %954, i32 noundef %956) #11
  br label %975

958:                                              ; preds = %936, %929
  %959 = load i32, ptr %24, align 4, !tbaa !5
  %960 = call ptr @__errno_location() #12
  store i32 %959, ptr %960, align 4, !tbaa !5
  %961 = load ptr, ptr @stderr, align 8, !tbaa !9
  %962 = load i32, ptr @test_count, align 4, !tbaa !5
  %963 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %964 = load i32, ptr %963, align 4, !tbaa !5
  %965 = call ptr @s2n_strerror(i32 noundef %964, ptr noundef @.str.4)
  %966 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %967 = load i32, ptr %966, align 4, !tbaa !5
  %968 = call ptr @s2n_strerror_debug(i32 noundef %967, ptr noundef @.str.4)
  %969 = call ptr @__errno_location() #12
  %970 = load i32, ptr %969, align 4, !tbaa !5
  %971 = call ptr @strerror(i32 noundef %970) #11
  %972 = call ptr @__errno_location() #12
  %973 = load i32, ptr %972, align 4, !tbaa !5
  %974 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %961, ptr noundef @.str.5, i32 noundef %962, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 86, ptr noundef %965, ptr noundef %968, ptr noundef %971, i32 noundef %973) #11
  br label %975

975:                                              ; preds = %958, %941
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #11
  br label %976

976:                                              ; preds = %975
  br label %977

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

978:                                              ; No predecessors!
  br label %979

979:                                              ; preds = %978
  br label %980

980:                                              ; preds = %979, %904
  br label %981

981:                                              ; preds = %980
  br label %982

982:                                              ; preds = %981
  br label %983

983:                                              ; preds = %982
  %984 = load i32, ptr @test_count, align 4, !tbaa !5
  %985 = add nsw i32 %984, 1
  store i32 %985, ptr @test_count, align 4, !tbaa !5
  %986 = load ptr, ptr %19, align 8, !tbaa !9
  %987 = getelementptr inbounds %struct.s2n_connection, ptr %986, i32 0, i32 27
  %988 = load ptr, ptr %987, align 8, !tbaa !15
  %989 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %988, i32 0, i32 0
  %990 = load ptr, ptr %989, align 8, !tbaa !44
  %991 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %990, i32 0, i32 6
  %992 = load ptr, ptr %991, align 8, !tbaa !49
  %993 = getelementptr inbounds %struct.s2n_record_algorithm, ptr %992, i32 0, i32 0
  %994 = load ptr, ptr %993, align 8, !tbaa !51
  %995 = getelementptr inbounds %struct.s2n_cipher, ptr %994, i32 0, i32 6
  %996 = load ptr, ptr %995, align 8, !tbaa !55
  %997 = load ptr, ptr %19, align 8, !tbaa !9
  %998 = getelementptr inbounds %struct.s2n_connection, ptr %997, i32 0, i32 27
  %999 = load ptr, ptr %998, align 8, !tbaa !15
  %1000 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %999, i32 0, i32 2
  %1001 = call i32 %996(ptr noundef %1000, ptr noundef %17)
  %1002 = getelementptr inbounds %struct.s2n_result, ptr %25, i32 0, i32 0
  store i32 %1001, ptr %1002, align 4
  %1003 = getelementptr inbounds %struct.s2n_result, ptr %25, i32 0, i32 0
  %1004 = load i32, ptr %1003, align 4
  %1005 = call zeroext i1 @s2n_result_is_ok(i32 %1004)
  br i1 %1005, label %1059, label %1006

1006:                                             ; preds = %983
  br label %1007

1007:                                             ; preds = %1006
  br label %1008

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

1015:                                             ; preds = %1008
  %1016 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1017 = call i32 @fileno(ptr noundef %1016) #11
  %1018 = call i32 @isatty(i32 noundef %1017) #11
  %1019 = icmp ne i32 %1018, 0
  br i1 %1019, label %1020, label %1037

1020:                                             ; preds = %1015
  %1021 = load i32, ptr %26, align 4, !tbaa !5
  %1022 = call ptr @__errno_location() #12
  store i32 %1021, ptr %1022, align 4, !tbaa !5
  %1023 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1024 = load i32, ptr @test_count, align 4, !tbaa !5
  %1025 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1026 = load i32, ptr %1025, align 4, !tbaa !5
  %1027 = call ptr @s2n_strerror(i32 noundef %1026, ptr noundef @.str.4)
  %1028 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1029 = load i32, ptr %1028, align 4, !tbaa !5
  %1030 = call ptr @s2n_strerror_debug(i32 noundef %1029, ptr noundef @.str.4)
  %1031 = call ptr @__errno_location() #12
  %1032 = load i32, ptr %1031, align 4, !tbaa !5
  %1033 = call ptr @strerror(i32 noundef %1032) #11
  %1034 = call ptr @__errno_location() #12
  %1035 = load i32, ptr %1034, align 4, !tbaa !5
  %1036 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1023, ptr noundef @.str.2, i32 noundef %1024, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 87, ptr noundef %1027, ptr noundef %1030, ptr noundef %1033, i32 noundef %1035) #11
  br label %1054

1037:                                             ; preds = %1015, %1008
  %1038 = load i32, ptr %26, align 4, !tbaa !5
  %1039 = call ptr @__errno_location() #12
  store i32 %1038, ptr %1039, align 4, !tbaa !5
  %1040 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1041 = load i32, ptr @test_count, align 4, !tbaa !5
  %1042 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1043 = load i32, ptr %1042, align 4, !tbaa !5
  %1044 = call ptr @s2n_strerror(i32 noundef %1043, ptr noundef @.str.4)
  %1045 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1046 = load i32, ptr %1045, align 4, !tbaa !5
  %1047 = call ptr @s2n_strerror_debug(i32 noundef %1046, ptr noundef @.str.4)
  %1048 = call ptr @__errno_location() #12
  %1049 = load i32, ptr %1048, align 4, !tbaa !5
  %1050 = call ptr @strerror(i32 noundef %1049) #11
  %1051 = call ptr @__errno_location() #12
  %1052 = load i32, ptr %1051, align 4, !tbaa !5
  %1053 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1040, ptr noundef @.str.5, i32 noundef %1041, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 87, ptr noundef %1044, ptr noundef %1047, ptr noundef %1050, i32 noundef %1052) #11
  br label %1054

1054:                                             ; preds = %1037, %1020
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #11
  br label %1055

1055:                                             ; preds = %1054
  br label %1056

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

1057:                                             ; No predecessors!
  br label %1058

1058:                                             ; preds = %1057
  br label %1059

1059:                                             ; preds = %1058, %983
  br label %1060

1060:                                             ; preds = %1059
  br label %1061

1061:                                             ; preds = %1060
  br label %1062

1062:                                             ; preds = %1061
  %1063 = load i32, ptr @test_count, align 4, !tbaa !5
  %1064 = add nsw i32 %1063, 1
  store i32 %1064, ptr @test_count, align 4, !tbaa !5
  %1065 = load ptr, ptr %19, align 8, !tbaa !9
  %1066 = getelementptr inbounds %struct.s2n_connection, ptr %1065, i32 0, i32 27
  %1067 = load ptr, ptr %1066, align 8, !tbaa !15
  %1068 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %1067, i32 0, i32 0
  %1069 = load ptr, ptr %1068, align 8, !tbaa !44
  %1070 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %1069, i32 0, i32 6
  %1071 = load ptr, ptr %1070, align 8, !tbaa !49
  %1072 = getelementptr inbounds %struct.s2n_record_algorithm, ptr %1071, i32 0, i32 0
  %1073 = load ptr, ptr %1072, align 8, !tbaa !51
  %1074 = getelementptr inbounds %struct.s2n_cipher, ptr %1073, i32 0, i32 5
  %1075 = load ptr, ptr %1074, align 8, !tbaa !56
  %1076 = load ptr, ptr %19, align 8, !tbaa !9
  %1077 = getelementptr inbounds %struct.s2n_connection, ptr %1076, i32 0, i32 27
  %1078 = load ptr, ptr %1077, align 8, !tbaa !15
  %1079 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %1078, i32 0, i32 1
  %1080 = call i32 %1075(ptr noundef %1079, ptr noundef %17)
  %1081 = getelementptr inbounds %struct.s2n_result, ptr %27, i32 0, i32 0
  store i32 %1080, ptr %1081, align 4
  %1082 = getelementptr inbounds %struct.s2n_result, ptr %27, i32 0, i32 0
  %1083 = load i32, ptr %1082, align 4
  %1084 = call zeroext i1 @s2n_result_is_ok(i32 %1083)
  br i1 %1084, label %1138, label %1085

1085:                                             ; preds = %1062
  br label %1086

1086:                                             ; preds = %1085
  br label %1087

1087:                                             ; preds = %1086
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #11
  %1088 = call ptr @__errno_location() #12
  %1089 = load i32, ptr %1088, align 4, !tbaa !5
  store i32 %1089, ptr %28, align 4, !tbaa !5
  %1090 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1091 = call i32 @s2n_print_stacktrace(ptr noundef %1090)
  %1092 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1093 = trunc i8 %1092 to i1
  br i1 %1093, label %1094, label %1116

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

1099:                                             ; preds = %1094
  %1100 = load i32, ptr %28, align 4, !tbaa !5
  %1101 = call ptr @__errno_location() #12
  store i32 %1100, ptr %1101, align 4, !tbaa !5
  %1102 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1103 = load i32, ptr @test_count, align 4, !tbaa !5
  %1104 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1105 = load i32, ptr %1104, align 4, !tbaa !5
  %1106 = call ptr @s2n_strerror(i32 noundef %1105, ptr noundef @.str.4)
  %1107 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1108 = load i32, ptr %1107, align 4, !tbaa !5
  %1109 = call ptr @s2n_strerror_debug(i32 noundef %1108, ptr noundef @.str.4)
  %1110 = call ptr @__errno_location() #12
  %1111 = load i32, ptr %1110, align 4, !tbaa !5
  %1112 = call ptr @strerror(i32 noundef %1111) #11
  %1113 = call ptr @__errno_location() #12
  %1114 = load i32, ptr %1113, align 4, !tbaa !5
  %1115 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1102, ptr noundef @.str.2, i32 noundef %1103, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 88, ptr noundef %1106, ptr noundef %1109, ptr noundef %1112, i32 noundef %1114) #11
  br label %1133

1116:                                             ; preds = %1094, %1087
  %1117 = load i32, ptr %28, align 4, !tbaa !5
  %1118 = call ptr @__errno_location() #12
  store i32 %1117, ptr %1118, align 4, !tbaa !5
  %1119 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1120 = load i32, ptr @test_count, align 4, !tbaa !5
  %1121 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1122 = load i32, ptr %1121, align 4, !tbaa !5
  %1123 = call ptr @s2n_strerror(i32 noundef %1122, ptr noundef @.str.4)
  %1124 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1125 = load i32, ptr %1124, align 4, !tbaa !5
  %1126 = call ptr @s2n_strerror_debug(i32 noundef %1125, ptr noundef @.str.4)
  %1127 = call ptr @__errno_location() #12
  %1128 = load i32, ptr %1127, align 4, !tbaa !5
  %1129 = call ptr @strerror(i32 noundef %1128) #11
  %1130 = call ptr @__errno_location() #12
  %1131 = load i32, ptr %1130, align 4, !tbaa !5
  %1132 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1119, ptr noundef @.str.5, i32 noundef %1120, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 88, ptr noundef %1123, ptr noundef %1126, ptr noundef %1129, i32 noundef %1131) #11
  br label %1133

1133:                                             ; preds = %1116, %1099
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #11
  br label %1134

1134:                                             ; preds = %1133
  br label %1135

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

1136:                                             ; No predecessors!
  br label %1137

1137:                                             ; preds = %1136
  br label %1138

1138:                                             ; preds = %1137, %1062
  br label %1139

1139:                                             ; preds = %1138
  br label %1140

1140:                                             ; preds = %1139
  br label %1141

1141:                                             ; preds = %1140
  %1142 = load i32, ptr @test_count, align 4, !tbaa !5
  %1143 = add nsw i32 %1142, 1
  store i32 %1143, ptr @test_count, align 4, !tbaa !5
  %1144 = load ptr, ptr %19, align 8, !tbaa !9
  %1145 = getelementptr inbounds %struct.s2n_connection, ptr %1144, i32 0, i32 27
  %1146 = load ptr, ptr %1145, align 8, !tbaa !15
  %1147 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %1146, i32 0, i32 3
  %1148 = getelementptr inbounds [15 x i8], ptr %10, i64 0, i64 0
  %1149 = call i32 @s2n_hmac_init(ptr noundef %1147, i32 noundef 2, ptr noundef %1148, i32 noundef 15)
  %1150 = icmp eq i32 %1149, -1
  br i1 %1150, label %1151, label %1204

1151:                                             ; preds = %1141
  br label %1152

1152:                                             ; preds = %1151
  br label %1153

1153:                                             ; preds = %1152
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #11
  %1154 = call ptr @__errno_location() #12
  %1155 = load i32, ptr %1154, align 4, !tbaa !5
  store i32 %1155, ptr %29, align 4, !tbaa !5
  %1156 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1157 = call i32 @s2n_print_stacktrace(ptr noundef %1156)
  %1158 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1159 = trunc i8 %1158 to i1
  br i1 %1159, label %1160, label %1182

1160:                                             ; preds = %1153
  %1161 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1162 = call i32 @fileno(ptr noundef %1161) #11
  %1163 = call i32 @isatty(i32 noundef %1162) #11
  %1164 = icmp ne i32 %1163, 0
  br i1 %1164, label %1165, label %1182

1165:                                             ; preds = %1160
  %1166 = load i32, ptr %29, align 4, !tbaa !5
  %1167 = call ptr @__errno_location() #12
  store i32 %1166, ptr %1167, align 4, !tbaa !5
  %1168 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1169 = load i32, ptr @test_count, align 4, !tbaa !5
  %1170 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1171 = load i32, ptr %1170, align 4, !tbaa !5
  %1172 = call ptr @s2n_strerror(i32 noundef %1171, ptr noundef @.str.4)
  %1173 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1174 = load i32, ptr %1173, align 4, !tbaa !5
  %1175 = call ptr @s2n_strerror_debug(i32 noundef %1174, ptr noundef @.str.4)
  %1176 = call ptr @__errno_location() #12
  %1177 = load i32, ptr %1176, align 4, !tbaa !5
  %1178 = call ptr @strerror(i32 noundef %1177) #11
  %1179 = call ptr @__errno_location() #12
  %1180 = load i32, ptr %1179, align 4, !tbaa !5
  %1181 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1168, ptr noundef @.str.2, i32 noundef %1169, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 89, ptr noundef %1172, ptr noundef %1175, ptr noundef %1178, i32 noundef %1180) #11
  br label %1199

1182:                                             ; preds = %1160, %1153
  %1183 = load i32, ptr %29, align 4, !tbaa !5
  %1184 = call ptr @__errno_location() #12
  store i32 %1183, ptr %1184, align 4, !tbaa !5
  %1185 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1186 = load i32, ptr @test_count, align 4, !tbaa !5
  %1187 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1188 = load i32, ptr %1187, align 4, !tbaa !5
  %1189 = call ptr @s2n_strerror(i32 noundef %1188, ptr noundef @.str.4)
  %1190 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1191 = load i32, ptr %1190, align 4, !tbaa !5
  %1192 = call ptr @s2n_strerror_debug(i32 noundef %1191, ptr noundef @.str.4)
  %1193 = call ptr @__errno_location() #12
  %1194 = load i32, ptr %1193, align 4, !tbaa !5
  %1195 = call ptr @strerror(i32 noundef %1194) #11
  %1196 = call ptr @__errno_location() #12
  %1197 = load i32, ptr %1196, align 4, !tbaa !5
  %1198 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1185, ptr noundef @.str.5, i32 noundef %1186, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 89, ptr noundef %1189, ptr noundef %1192, ptr noundef %1195, i32 noundef %1197) #11
  br label %1199

1199:                                             ; preds = %1182, %1165
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #11
  br label %1200

1200:                                             ; preds = %1199
  br label %1201

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

1202:                                             ; No predecessors!
  br label %1203

1203:                                             ; preds = %1202
  br label %1204

1204:                                             ; preds = %1203, %1141
  br label %1205

1205:                                             ; preds = %1204
  br label %1206

1206:                                             ; preds = %1205
  br label %1207

1207:                                             ; preds = %1206
  %1208 = load i32, ptr @test_count, align 4, !tbaa !5
  %1209 = add nsw i32 %1208, 1
  store i32 %1209, ptr @test_count, align 4, !tbaa !5
  %1210 = load ptr, ptr %19, align 8, !tbaa !9
  %1211 = getelementptr inbounds %struct.s2n_connection, ptr %1210, i32 0, i32 27
  %1212 = load ptr, ptr %1211, align 8, !tbaa !15
  %1213 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %1212, i32 0, i32 4
  %1214 = getelementptr inbounds [15 x i8], ptr %10, i64 0, i64 0
  %1215 = call i32 @s2n_hmac_init(ptr noundef %1213, i32 noundef 2, ptr noundef %1214, i32 noundef 15)
  %1216 = icmp eq i32 %1215, -1
  br i1 %1216, label %1217, label %1270

1217:                                             ; preds = %1207
  br label %1218

1218:                                             ; preds = %1217
  br label %1219

1219:                                             ; preds = %1218
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #11
  %1220 = call ptr @__errno_location() #12
  %1221 = load i32, ptr %1220, align 4, !tbaa !5
  store i32 %1221, ptr %30, align 4, !tbaa !5
  %1222 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1223 = call i32 @s2n_print_stacktrace(ptr noundef %1222)
  %1224 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1225 = trunc i8 %1224 to i1
  br i1 %1225, label %1226, label %1248

1226:                                             ; preds = %1219
  %1227 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1228 = call i32 @fileno(ptr noundef %1227) #11
  %1229 = call i32 @isatty(i32 noundef %1228) #11
  %1230 = icmp ne i32 %1229, 0
  br i1 %1230, label %1231, label %1248

1231:                                             ; preds = %1226
  %1232 = load i32, ptr %30, align 4, !tbaa !5
  %1233 = call ptr @__errno_location() #12
  store i32 %1232, ptr %1233, align 4, !tbaa !5
  %1234 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1235 = load i32, ptr @test_count, align 4, !tbaa !5
  %1236 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1237 = load i32, ptr %1236, align 4, !tbaa !5
  %1238 = call ptr @s2n_strerror(i32 noundef %1237, ptr noundef @.str.4)
  %1239 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1240 = load i32, ptr %1239, align 4, !tbaa !5
  %1241 = call ptr @s2n_strerror_debug(i32 noundef %1240, ptr noundef @.str.4)
  %1242 = call ptr @__errno_location() #12
  %1243 = load i32, ptr %1242, align 4, !tbaa !5
  %1244 = call ptr @strerror(i32 noundef %1243) #11
  %1245 = call ptr @__errno_location() #12
  %1246 = load i32, ptr %1245, align 4, !tbaa !5
  %1247 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1234, ptr noundef @.str.2, i32 noundef %1235, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 90, ptr noundef %1238, ptr noundef %1241, ptr noundef %1244, i32 noundef %1246) #11
  br label %1265

1248:                                             ; preds = %1226, %1219
  %1249 = load i32, ptr %30, align 4, !tbaa !5
  %1250 = call ptr @__errno_location() #12
  store i32 %1249, ptr %1250, align 4, !tbaa !5
  %1251 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1252 = load i32, ptr @test_count, align 4, !tbaa !5
  %1253 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1254 = load i32, ptr %1253, align 4, !tbaa !5
  %1255 = call ptr @s2n_strerror(i32 noundef %1254, ptr noundef @.str.4)
  %1256 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1257 = load i32, ptr %1256, align 4, !tbaa !5
  %1258 = call ptr @s2n_strerror_debug(i32 noundef %1257, ptr noundef @.str.4)
  %1259 = call ptr @__errno_location() #12
  %1260 = load i32, ptr %1259, align 4, !tbaa !5
  %1261 = call ptr @strerror(i32 noundef %1260) #11
  %1262 = call ptr @__errno_location() #12
  %1263 = load i32, ptr %1262, align 4, !tbaa !5
  %1264 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1251, ptr noundef @.str.5, i32 noundef %1252, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 90, ptr noundef %1255, ptr noundef %1258, ptr noundef %1261, i32 noundef %1263) #11
  br label %1265

1265:                                             ; preds = %1248, %1231
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #11
  br label %1266

1266:                                             ; preds = %1265
  br label %1267

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

1268:                                             ; No predecessors!
  br label %1269

1269:                                             ; preds = %1268
  br label %1270

1270:                                             ; preds = %1269, %1207
  br label %1271

1271:                                             ; preds = %1270
  br label %1272

1272:                                             ; preds = %1271
  %1273 = load ptr, ptr %19, align 8, !tbaa !9
  %1274 = getelementptr inbounds %struct.s2n_connection, ptr %1273, i32 0, i32 23
  store i8 32, ptr %1274, align 4, !tbaa !57
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #11
  store i32 1435, ptr %31, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #11
  store i32 16384, ptr %32, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #11
  store i32 8087, ptr %33, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 24, ptr %34) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %34, ptr align 8 %12, i64 24, i1 false), !tbaa.struct !58
  %1275 = getelementptr inbounds %struct.s2n_blob, ptr %34, i32 0, i32 1
  store i32 8087, ptr %1275, align 8, !tbaa !60
  br label %1276

1276:                                             ; preds = %1272
  %1277 = load i32, ptr @test_count, align 4, !tbaa !5
  %1278 = add nsw i32 %1277, 1
  store i32 %1278, ptr @test_count, align 4, !tbaa !5
  %1279 = load ptr, ptr %19, align 8, !tbaa !9
  %1280 = getelementptr inbounds %struct.s2n_connection, ptr %1279, i32 0, i32 41
  %1281 = call i32 @s2n_stuffer_wipe(ptr noundef %1280)
  %1282 = icmp eq i32 %1281, -1
  br i1 %1282, label %1283, label %1336

1283:                                             ; preds = %1276
  br label %1284

1284:                                             ; preds = %1283
  br label %1285

1285:                                             ; preds = %1284
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #11
  %1286 = call ptr @__errno_location() #12
  %1287 = load i32, ptr %1286, align 4, !tbaa !5
  store i32 %1287, ptr %35, align 4, !tbaa !5
  %1288 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1289 = call i32 @s2n_print_stacktrace(ptr noundef %1288)
  %1290 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1291 = trunc i8 %1290 to i1
  br i1 %1291, label %1292, label %1314

1292:                                             ; preds = %1285
  %1293 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1294 = call i32 @fileno(ptr noundef %1293) #11
  %1295 = call i32 @isatty(i32 noundef %1294) #11
  %1296 = icmp ne i32 %1295, 0
  br i1 %1296, label %1297, label %1314

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

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

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

1332:                                             ; preds = %1331
  br label %1333

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

1334:                                             ; No predecessors!
  br label %1335

1335:                                             ; preds = %1334
  br label %1336

1336:                                             ; preds = %1335, %1276
  br label %1337

1337:                                             ; preds = %1336
  br label %1338

1338:                                             ; preds = %1337
  br label %1339

1339:                                             ; preds = %1338
  %1340 = load i32, ptr @test_count, align 4, !tbaa !5
  %1341 = add nsw i32 %1340, 1
  store i32 %1341, ptr @test_count, align 4, !tbaa !5
  %1342 = load ptr, ptr %19, align 8, !tbaa !9
  %1343 = call i32 @s2n_record_write(ptr noundef %1342, i8 noundef zeroext 23, ptr noundef %34)
  %1344 = getelementptr inbounds %struct.s2n_result, ptr %36, i32 0, i32 0
  store i32 %1343, ptr %1344, align 4
  %1345 = getelementptr inbounds %struct.s2n_result, ptr %36, i32 0, i32 0
  %1346 = load i32, ptr %1345, align 4
  %1347 = call zeroext i1 @s2n_result_is_ok(i32 %1346)
  br i1 %1347, label %1401, label %1348

1348:                                             ; preds = %1339
  br label %1349

1349:                                             ; preds = %1348
  br label %1350

1350:                                             ; preds = %1349
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #11
  %1351 = call ptr @__errno_location() #12
  %1352 = load i32, ptr %1351, align 4, !tbaa !5
  store i32 %1352, ptr %37, align 4, !tbaa !5
  %1353 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1354 = call i32 @s2n_print_stacktrace(ptr noundef %1353)
  %1355 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1356 = trunc i8 %1355 to i1
  br i1 %1356, label %1357, label %1379

1357:                                             ; preds = %1350
  %1358 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1359 = call i32 @fileno(ptr noundef %1358) #11
  %1360 = call i32 @isatty(i32 noundef %1359) #11
  %1361 = icmp ne i32 %1360, 0
  br i1 %1361, label %1362, label %1379

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

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

1396:                                             ; preds = %1379, %1362
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #11
  br label %1397

1397:                                             ; preds = %1396
  br label %1398

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

1399:                                             ; No predecessors!
  br label %1400

1400:                                             ; preds = %1399
  br label %1401

1401:                                             ; preds = %1400, %1339
  br label %1402

1402:                                             ; preds = %1401
  br label %1403

1403:                                             ; preds = %1402
  %1404 = getelementptr inbounds %struct.s2n_blob, ptr %34, i32 0, i32 1
  store i32 1435, ptr %1404, align 8, !tbaa !60
  br label %1405

1405:                                             ; preds = %1403
  %1406 = load i32, ptr @test_count, align 4, !tbaa !5
  %1407 = add nsw i32 %1406, 1
  store i32 %1407, ptr @test_count, align 4, !tbaa !5
  %1408 = load ptr, ptr %19, align 8, !tbaa !9
  %1409 = call i32 @s2n_connection_prefer_low_latency(ptr noundef %1408)
  %1410 = icmp eq i32 %1409, -1
  br i1 %1410, label %1411, label %1464

1411:                                             ; preds = %1405
  br label %1412

1412:                                             ; preds = %1411
  br label %1413

1413:                                             ; preds = %1412
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #11
  %1414 = call ptr @__errno_location() #12
  %1415 = load i32, ptr %1414, align 4, !tbaa !5
  store i32 %1415, ptr %38, align 4, !tbaa !5
  %1416 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1417 = call i32 @s2n_print_stacktrace(ptr noundef %1416)
  %1418 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1419 = trunc i8 %1418 to i1
  br i1 %1419, label %1420, label %1442

1420:                                             ; preds = %1413
  %1421 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1422 = call i32 @fileno(ptr noundef %1421) #11
  %1423 = call i32 @isatty(i32 noundef %1422) #11
  %1424 = icmp ne i32 %1423, 0
  br i1 %1424, label %1425, label %1442

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

1442:                                             ; preds = %1420, %1413
  %1443 = load i32, ptr %38, align 4, !tbaa !5
  %1444 = call ptr @__errno_location() #12
  store i32 %1443, ptr %1444, align 4, !tbaa !5
  %1445 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1446 = load i32, ptr @test_count, align 4, !tbaa !5
  %1447 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1448 = load i32, ptr %1447, align 4, !tbaa !5
  %1449 = call ptr @s2n_strerror(i32 noundef %1448, ptr noundef @.str.4)
  %1450 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1451 = load i32, ptr %1450, align 4, !tbaa !5
  %1452 = call ptr @s2n_strerror_debug(i32 noundef %1451, ptr noundef @.str.4)
  %1453 = call ptr @__errno_location() #12
  %1454 = load i32, ptr %1453, align 4, !tbaa !5
  %1455 = call ptr @strerror(i32 noundef %1454) #11
  %1456 = call ptr @__errno_location() #12
  %1457 = load i32, ptr %1456, align 4, !tbaa !5
  %1458 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1445, ptr noundef @.str.5, i32 noundef %1446, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 107, ptr noundef %1449, ptr noundef %1452, ptr noundef %1455, i32 noundef %1457) #11
  br label %1459

1459:                                             ; preds = %1442, %1425
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #11
  br label %1460

1460:                                             ; preds = %1459
  br label %1461

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

1462:                                             ; No predecessors!
  br label %1463

1463:                                             ; preds = %1462
  br label %1464

1464:                                             ; preds = %1463, %1405
  br label %1465

1465:                                             ; preds = %1464
  br label %1466

1466:                                             ; preds = %1465
  br label %1467

1467:                                             ; preds = %1466
  %1468 = load i32, ptr @test_count, align 4, !tbaa !5
  %1469 = add nsw i32 %1468, 1
  store i32 %1469, ptr @test_count, align 4, !tbaa !5
  %1470 = load ptr, ptr %19, align 8, !tbaa !9
  %1471 = getelementptr inbounds %struct.s2n_connection, ptr %1470, i32 0, i32 41
  %1472 = call i32 @s2n_stuffer_wipe(ptr noundef %1471)
  %1473 = icmp eq i32 %1472, -1
  br i1 %1473, label %1474, label %1527

1474:                                             ; preds = %1467
  br label %1475

1475:                                             ; preds = %1474
  br label %1476

1476:                                             ; preds = %1475
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #11
  %1477 = call ptr @__errno_location() #12
  %1478 = load i32, ptr %1477, align 4, !tbaa !5
  store i32 %1478, ptr %39, align 4, !tbaa !5
  %1479 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1480 = call i32 @s2n_print_stacktrace(ptr noundef %1479)
  %1481 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1482 = trunc i8 %1481 to i1
  br i1 %1482, label %1483, label %1505

1483:                                             ; preds = %1476
  %1484 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1485 = call i32 @fileno(ptr noundef %1484) #11
  %1486 = call i32 @isatty(i32 noundef %1485) #11
  %1487 = icmp ne i32 %1486, 0
  br i1 %1487, label %1488, label %1505

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

1505:                                             ; preds = %1483, %1476
  %1506 = load i32, ptr %39, align 4, !tbaa !5
  %1507 = call ptr @__errno_location() #12
  store i32 %1506, ptr %1507, align 4, !tbaa !5
  %1508 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1509 = load i32, ptr @test_count, align 4, !tbaa !5
  %1510 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1511 = load i32, ptr %1510, align 4, !tbaa !5
  %1512 = call ptr @s2n_strerror(i32 noundef %1511, ptr noundef @.str.4)
  %1513 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1514 = load i32, ptr %1513, align 4, !tbaa !5
  %1515 = call ptr @s2n_strerror_debug(i32 noundef %1514, ptr noundef @.str.4)
  %1516 = call ptr @__errno_location() #12
  %1517 = load i32, ptr %1516, align 4, !tbaa !5
  %1518 = call ptr @strerror(i32 noundef %1517) #11
  %1519 = call ptr @__errno_location() #12
  %1520 = load i32, ptr %1519, align 4, !tbaa !5
  %1521 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1508, ptr noundef @.str.5, i32 noundef %1509, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 108, ptr noundef %1512, ptr noundef %1515, ptr noundef %1518, i32 noundef %1520) #11
  br label %1522

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

1523:                                             ; preds = %1522
  br label %1524

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

1525:                                             ; No predecessors!
  br label %1526

1526:                                             ; preds = %1525
  br label %1527

1527:                                             ; preds = %1526, %1467
  br label %1528

1528:                                             ; preds = %1527
  br label %1529

1529:                                             ; preds = %1528
  br label %1530

1530:                                             ; preds = %1529
  %1531 = load i32, ptr @test_count, align 4, !tbaa !5
  %1532 = add nsw i32 %1531, 1
  store i32 %1532, ptr @test_count, align 4, !tbaa !5
  %1533 = load ptr, ptr %19, align 8, !tbaa !9
  %1534 = call i32 @s2n_record_write(ptr noundef %1533, i8 noundef zeroext 23, ptr noundef %34)
  %1535 = getelementptr inbounds %struct.s2n_result, ptr %40, i32 0, i32 0
  store i32 %1534, ptr %1535, align 4
  %1536 = getelementptr inbounds %struct.s2n_result, ptr %40, i32 0, i32 0
  %1537 = load i32, ptr %1536, align 4
  %1538 = call zeroext i1 @s2n_result_is_ok(i32 %1537)
  br i1 %1538, label %1592, label %1539

1539:                                             ; preds = %1530
  br label %1540

1540:                                             ; preds = %1539
  br label %1541

1541:                                             ; preds = %1540
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #11
  %1542 = call ptr @__errno_location() #12
  %1543 = load i32, ptr %1542, align 4, !tbaa !5
  store i32 %1543, ptr %41, align 4, !tbaa !5
  %1544 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1545 = call i32 @s2n_print_stacktrace(ptr noundef %1544)
  %1546 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1547 = trunc i8 %1546 to i1
  br i1 %1547, label %1548, label %1570

1548:                                             ; preds = %1541
  %1549 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1550 = call i32 @fileno(ptr noundef %1549) #11
  %1551 = call i32 @isatty(i32 noundef %1550) #11
  %1552 = icmp ne i32 %1551, 0
  br i1 %1552, label %1553, label %1570

1553:                                             ; preds = %1548
  %1554 = load i32, ptr %41, align 4, !tbaa !5
  %1555 = call ptr @__errno_location() #12
  store i32 %1554, ptr %1555, align 4, !tbaa !5
  %1556 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1557 = load i32, ptr @test_count, align 4, !tbaa !5
  %1558 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1559 = load i32, ptr %1558, align 4, !tbaa !5
  %1560 = call ptr @s2n_strerror(i32 noundef %1559, ptr noundef @.str.4)
  %1561 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1562 = load i32, ptr %1561, align 4, !tbaa !5
  %1563 = call ptr @s2n_strerror_debug(i32 noundef %1562, ptr noundef @.str.4)
  %1564 = call ptr @__errno_location() #12
  %1565 = load i32, ptr %1564, align 4, !tbaa !5
  %1566 = call ptr @strerror(i32 noundef %1565) #11
  %1567 = call ptr @__errno_location() #12
  %1568 = load i32, ptr %1567, align 4, !tbaa !5
  %1569 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1556, ptr noundef @.str.2, i32 noundef %1557, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 109, ptr noundef %1560, ptr noundef %1563, ptr noundef %1566, i32 noundef %1568) #11
  br label %1587

1570:                                             ; preds = %1548, %1541
  %1571 = load i32, ptr %41, align 4, !tbaa !5
  %1572 = call ptr @__errno_location() #12
  store i32 %1571, ptr %1572, align 4, !tbaa !5
  %1573 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1574 = load i32, ptr @test_count, align 4, !tbaa !5
  %1575 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1576 = load i32, ptr %1575, align 4, !tbaa !5
  %1577 = call ptr @s2n_strerror(i32 noundef %1576, ptr noundef @.str.4)
  %1578 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1579 = load i32, ptr %1578, align 4, !tbaa !5
  %1580 = call ptr @s2n_strerror_debug(i32 noundef %1579, ptr noundef @.str.4)
  %1581 = call ptr @__errno_location() #12
  %1582 = load i32, ptr %1581, align 4, !tbaa !5
  %1583 = call ptr @strerror(i32 noundef %1582) #11
  %1584 = call ptr @__errno_location() #12
  %1585 = load i32, ptr %1584, align 4, !tbaa !5
  %1586 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1573, ptr noundef @.str.5, i32 noundef %1574, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 109, ptr noundef %1577, ptr noundef %1580, ptr noundef %1583, i32 noundef %1585) #11
  br label %1587

1587:                                             ; preds = %1570, %1553
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #11
  br label %1588

1588:                                             ; preds = %1587
  br label %1589

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

1590:                                             ; No predecessors!
  br label %1591

1591:                                             ; preds = %1590
  br label %1592

1592:                                             ; preds = %1591, %1530
  br label %1593

1593:                                             ; preds = %1592
  br label %1594

1594:                                             ; preds = %1593
  %1595 = getelementptr inbounds %struct.s2n_blob, ptr %34, i32 0, i32 1
  store i32 16384, ptr %1595, align 8, !tbaa !60
  br label %1596

1596:                                             ; preds = %1594
  %1597 = load i32, ptr @test_count, align 4, !tbaa !5
  %1598 = add nsw i32 %1597, 1
  store i32 %1598, ptr @test_count, align 4, !tbaa !5
  %1599 = load ptr, ptr %19, align 8, !tbaa !9
  %1600 = call i32 @s2n_connection_prefer_throughput(ptr noundef %1599)
  %1601 = icmp eq i32 %1600, -1
  br i1 %1601, label %1602, label %1655

1602:                                             ; preds = %1596
  br label %1603

1603:                                             ; preds = %1602
  br label %1604

1604:                                             ; preds = %1603
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #11
  %1605 = call ptr @__errno_location() #12
  %1606 = load i32, ptr %1605, align 4, !tbaa !5
  store i32 %1606, ptr %42, align 4, !tbaa !5
  %1607 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1608 = call i32 @s2n_print_stacktrace(ptr noundef %1607)
  %1609 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1610 = trunc i8 %1609 to i1
  br i1 %1610, label %1611, label %1633

1611:                                             ; preds = %1604
  %1612 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1613 = call i32 @fileno(ptr noundef %1612) #11
  %1614 = call i32 @isatty(i32 noundef %1613) #11
  %1615 = icmp ne i32 %1614, 0
  br i1 %1615, label %1616, label %1633

1616:                                             ; preds = %1611
  %1617 = load i32, ptr %42, align 4, !tbaa !5
  %1618 = call ptr @__errno_location() #12
  store i32 %1617, ptr %1618, align 4, !tbaa !5
  %1619 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1620 = load i32, ptr @test_count, align 4, !tbaa !5
  %1621 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1622 = load i32, ptr %1621, align 4, !tbaa !5
  %1623 = call ptr @s2n_strerror(i32 noundef %1622, ptr noundef @.str.4)
  %1624 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1625 = load i32, ptr %1624, align 4, !tbaa !5
  %1626 = call ptr @s2n_strerror_debug(i32 noundef %1625, ptr noundef @.str.4)
  %1627 = call ptr @__errno_location() #12
  %1628 = load i32, ptr %1627, align 4, !tbaa !5
  %1629 = call ptr @strerror(i32 noundef %1628) #11
  %1630 = call ptr @__errno_location() #12
  %1631 = load i32, ptr %1630, align 4, !tbaa !5
  %1632 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1619, ptr noundef @.str.2, i32 noundef %1620, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 113, ptr noundef %1623, ptr noundef %1626, ptr noundef %1629, i32 noundef %1631) #11
  br label %1650

1633:                                             ; preds = %1611, %1604
  %1634 = load i32, ptr %42, align 4, !tbaa !5
  %1635 = call ptr @__errno_location() #12
  store i32 %1634, ptr %1635, align 4, !tbaa !5
  %1636 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1637 = load i32, ptr @test_count, align 4, !tbaa !5
  %1638 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1639 = load i32, ptr %1638, align 4, !tbaa !5
  %1640 = call ptr @s2n_strerror(i32 noundef %1639, ptr noundef @.str.4)
  %1641 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1642 = load i32, ptr %1641, align 4, !tbaa !5
  %1643 = call ptr @s2n_strerror_debug(i32 noundef %1642, ptr noundef @.str.4)
  %1644 = call ptr @__errno_location() #12
  %1645 = load i32, ptr %1644, align 4, !tbaa !5
  %1646 = call ptr @strerror(i32 noundef %1645) #11
  %1647 = call ptr @__errno_location() #12
  %1648 = load i32, ptr %1647, align 4, !tbaa !5
  %1649 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1636, ptr noundef @.str.5, i32 noundef %1637, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 113, ptr noundef %1640, ptr noundef %1643, ptr noundef %1646, i32 noundef %1648) #11
  br label %1650

1650:                                             ; preds = %1633, %1616
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #11
  br label %1651

1651:                                             ; preds = %1650
  br label %1652

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

1653:                                             ; No predecessors!
  br label %1654

1654:                                             ; preds = %1653
  br label %1655

1655:                                             ; preds = %1654, %1596
  br label %1656

1656:                                             ; preds = %1655
  br label %1657

1657:                                             ; preds = %1656
  br label %1658

1658:                                             ; preds = %1657
  %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 = load ptr, ptr %19, align 8, !tbaa !9
  %1662 = getelementptr inbounds %struct.s2n_connection, ptr %1661, i32 0, i32 41
  %1663 = call i32 @s2n_stuffer_wipe(ptr noundef %1662)
  %1664 = icmp eq i32 %1663, -1
  br i1 %1664, label %1665, label %1718

1665:                                             ; preds = %1658
  br label %1666

1666:                                             ; preds = %1665
  br label %1667

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

1674:                                             ; preds = %1667
  %1675 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1676 = call i32 @fileno(ptr noundef %1675) #11
  %1677 = call i32 @isatty(i32 noundef %1676) #11
  %1678 = icmp ne i32 %1677, 0
  br i1 %1678, label %1679, label %1696

1679:                                             ; preds = %1674
  %1680 = load i32, ptr %43, align 4, !tbaa !5
  %1681 = call ptr @__errno_location() #12
  store i32 %1680, ptr %1681, align 4, !tbaa !5
  %1682 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1683 = load i32, ptr @test_count, align 4, !tbaa !5
  %1684 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1685 = load i32, ptr %1684, align 4, !tbaa !5
  %1686 = call ptr @s2n_strerror(i32 noundef %1685, ptr noundef @.str.4)
  %1687 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1688 = load i32, ptr %1687, align 4, !tbaa !5
  %1689 = call ptr @s2n_strerror_debug(i32 noundef %1688, ptr noundef @.str.4)
  %1690 = call ptr @__errno_location() #12
  %1691 = load i32, ptr %1690, align 4, !tbaa !5
  %1692 = call ptr @strerror(i32 noundef %1691) #11
  %1693 = call ptr @__errno_location() #12
  %1694 = load i32, ptr %1693, align 4, !tbaa !5
  %1695 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1682, ptr noundef @.str.2, i32 noundef %1683, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 114, ptr noundef %1686, ptr noundef %1689, ptr noundef %1692, i32 noundef %1694) #11
  br label %1713

1696:                                             ; preds = %1674, %1667
  %1697 = load i32, ptr %43, align 4, !tbaa !5
  %1698 = call ptr @__errno_location() #12
  store i32 %1697, ptr %1698, align 4, !tbaa !5
  %1699 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1700 = load i32, ptr @test_count, align 4, !tbaa !5
  %1701 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1702 = load i32, ptr %1701, align 4, !tbaa !5
  %1703 = call ptr @s2n_strerror(i32 noundef %1702, ptr noundef @.str.4)
  %1704 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1705 = load i32, ptr %1704, align 4, !tbaa !5
  %1706 = call ptr @s2n_strerror_debug(i32 noundef %1705, ptr noundef @.str.4)
  %1707 = call ptr @__errno_location() #12
  %1708 = load i32, ptr %1707, align 4, !tbaa !5
  %1709 = call ptr @strerror(i32 noundef %1708) #11
  %1710 = call ptr @__errno_location() #12
  %1711 = load i32, ptr %1710, align 4, !tbaa !5
  %1712 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1699, ptr noundef @.str.5, i32 noundef %1700, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 114, ptr noundef %1703, ptr noundef %1706, ptr noundef %1709, i32 noundef %1711) #11
  br label %1713

1713:                                             ; preds = %1696, %1679
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #11
  br label %1714

1714:                                             ; preds = %1713
  br label %1715

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

1716:                                             ; No predecessors!
  br label %1717

1717:                                             ; preds = %1716
  br label %1718

1718:                                             ; preds = %1717, %1658
  br label %1719

1719:                                             ; preds = %1718
  br label %1720

1720:                                             ; preds = %1719
  br label %1721

1721:                                             ; preds = %1720
  %1722 = load i32, ptr @test_count, align 4, !tbaa !5
  %1723 = add nsw i32 %1722, 1
  store i32 %1723, ptr @test_count, align 4, !tbaa !5
  %1724 = load ptr, ptr %19, align 8, !tbaa !9
  %1725 = call i32 @s2n_record_write(ptr noundef %1724, i8 noundef zeroext 23, ptr noundef %34)
  %1726 = getelementptr inbounds %struct.s2n_result, ptr %44, i32 0, i32 0
  store i32 %1725, ptr %1726, align 4
  %1727 = getelementptr inbounds %struct.s2n_result, ptr %44, i32 0, i32 0
  %1728 = load i32, ptr %1727, align 4
  %1729 = call zeroext i1 @s2n_result_is_ok(i32 %1728)
  br i1 %1729, label %1783, label %1730

1730:                                             ; preds = %1721
  br label %1731

1731:                                             ; preds = %1730
  br label %1732

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

1739:                                             ; preds = %1732
  %1740 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1741 = call i32 @fileno(ptr noundef %1740) #11
  %1742 = call i32 @isatty(i32 noundef %1741) #11
  %1743 = icmp ne i32 %1742, 0
  br i1 %1743, label %1744, label %1761

1744:                                             ; preds = %1739
  %1745 = load i32, ptr %45, align 4, !tbaa !5
  %1746 = call ptr @__errno_location() #12
  store i32 %1745, ptr %1746, align 4, !tbaa !5
  %1747 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1748 = load i32, ptr @test_count, align 4, !tbaa !5
  %1749 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1750 = load i32, ptr %1749, align 4, !tbaa !5
  %1751 = call ptr @s2n_strerror(i32 noundef %1750, ptr noundef @.str.4)
  %1752 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1753 = load i32, ptr %1752, align 4, !tbaa !5
  %1754 = call ptr @s2n_strerror_debug(i32 noundef %1753, ptr noundef @.str.4)
  %1755 = call ptr @__errno_location() #12
  %1756 = load i32, ptr %1755, align 4, !tbaa !5
  %1757 = call ptr @strerror(i32 noundef %1756) #11
  %1758 = call ptr @__errno_location() #12
  %1759 = load i32, ptr %1758, align 4, !tbaa !5
  %1760 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1747, ptr noundef @.str.2, i32 noundef %1748, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 115, ptr noundef %1751, ptr noundef %1754, ptr noundef %1757, i32 noundef %1759) #11
  br label %1778

1761:                                             ; preds = %1739, %1732
  %1762 = load i32, ptr %45, align 4, !tbaa !5
  %1763 = call ptr @__errno_location() #12
  store i32 %1762, ptr %1763, align 4, !tbaa !5
  %1764 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1765 = load i32, ptr @test_count, align 4, !tbaa !5
  %1766 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1767 = load i32, ptr %1766, align 4, !tbaa !5
  %1768 = call ptr @s2n_strerror(i32 noundef %1767, ptr noundef @.str.4)
  %1769 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1770 = load i32, ptr %1769, align 4, !tbaa !5
  %1771 = call ptr @s2n_strerror_debug(i32 noundef %1770, ptr noundef @.str.4)
  %1772 = call ptr @__errno_location() #12
  %1773 = load i32, ptr %1772, align 4, !tbaa !5
  %1774 = call ptr @strerror(i32 noundef %1773) #11
  %1775 = call ptr @__errno_location() #12
  %1776 = load i32, ptr %1775, align 4, !tbaa !5
  %1777 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1764, ptr noundef @.str.5, i32 noundef %1765, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 115, ptr noundef %1768, ptr noundef %1771, ptr noundef %1774, i32 noundef %1776) #11
  br label %1778

1778:                                             ; preds = %1761, %1744
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #11
  br label %1779

1779:                                             ; preds = %1778
  br label %1780

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

1781:                                             ; No predecessors!
  br label %1782

1782:                                             ; preds = %1781
  br label %1783

1783:                                             ; preds = %1782, %1721
  br label %1784

1784:                                             ; preds = %1783
  br label %1785

1785:                                             ; preds = %1784
  %1786 = load ptr, ptr %19, align 8, !tbaa !9
  %1787 = getelementptr inbounds %struct.s2n_connection, ptr %1786, i32 0, i32 27
  %1788 = load ptr, ptr %1787, align 8, !tbaa !15
  %1789 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %1788, i32 0, i32 0
  %1790 = load ptr, ptr %1789, align 8, !tbaa !44
  %1791 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %1790, i32 0, i32 6
  store ptr @s2n_record_alg_null, ptr %1791, align 8, !tbaa !49
  br label %1792

1792:                                             ; preds = %1785
  %1793 = load i32, ptr @test_count, align 4, !tbaa !5
  %1794 = add nsw i32 %1793, 1
  store i32 %1794, ptr @test_count, align 4, !tbaa !5
  %1795 = load ptr, ptr %19, align 8, !tbaa !9
  %1796 = getelementptr inbounds %struct.s2n_connection, ptr %1795, i32 0, i32 27
  %1797 = load ptr, ptr %1796, align 8, !tbaa !15
  %1798 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %1797, i32 0, i32 0
  %1799 = load ptr, ptr %1798, align 8, !tbaa !44
  %1800 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %1799, i32 0, i32 6
  %1801 = load ptr, ptr %1800, align 8, !tbaa !49
  %1802 = getelementptr inbounds %struct.s2n_record_algorithm, ptr %1801, i32 0, i32 0
  %1803 = load ptr, ptr %1802, align 8, !tbaa !51
  %1804 = getelementptr inbounds %struct.s2n_cipher, ptr %1803, i32 0, i32 7
  %1805 = load ptr, ptr %1804, align 8, !tbaa !61
  %1806 = load ptr, ptr %19, align 8, !tbaa !9
  %1807 = getelementptr inbounds %struct.s2n_connection, ptr %1806, i32 0, i32 27
  %1808 = load ptr, ptr %1807, align 8, !tbaa !15
  %1809 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %1808, i32 0, i32 2
  %1810 = call i32 %1805(ptr noundef %1809)
  %1811 = getelementptr inbounds %struct.s2n_result, ptr %46, i32 0, i32 0
  store i32 %1810, ptr %1811, align 4
  %1812 = getelementptr inbounds %struct.s2n_result, ptr %46, i32 0, i32 0
  %1813 = load i32, ptr %1812, align 4
  %1814 = call zeroext i1 @s2n_result_is_ok(i32 %1813)
  br i1 %1814, label %1868, label %1815

1815:                                             ; preds = %1792
  br label %1816

1816:                                             ; preds = %1815
  br label %1817

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

1824:                                             ; preds = %1817
  %1825 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1826 = call i32 @fileno(ptr noundef %1825) #11
  %1827 = call i32 @isatty(i32 noundef %1826) #11
  %1828 = icmp ne i32 %1827, 0
  br i1 %1828, label %1829, label %1846

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

1846:                                             ; preds = %1824, %1817
  %1847 = load i32, ptr %47, align 4, !tbaa !5
  %1848 = call ptr @__errno_location() #12
  store i32 %1847, ptr %1848, align 4, !tbaa !5
  %1849 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1850 = load i32, ptr @test_count, align 4, !tbaa !5
  %1851 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1852 = load i32, ptr %1851, align 4, !tbaa !5
  %1853 = call ptr @s2n_strerror(i32 noundef %1852, ptr noundef @.str.4)
  %1854 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1855 = load i32, ptr %1854, align 4, !tbaa !5
  %1856 = call ptr @s2n_strerror_debug(i32 noundef %1855, ptr noundef @.str.4)
  %1857 = call ptr @__errno_location() #12
  %1858 = load i32, ptr %1857, align 4, !tbaa !5
  %1859 = call ptr @strerror(i32 noundef %1858) #11
  %1860 = call ptr @__errno_location() #12
  %1861 = load i32, ptr %1860, align 4, !tbaa !5
  %1862 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1849, ptr noundef @.str.5, i32 noundef %1850, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 119, ptr noundef %1853, ptr noundef %1856, ptr noundef %1859, i32 noundef %1861) #11
  br label %1863

1863:                                             ; preds = %1846, %1829
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #11
  br label %1864

1864:                                             ; preds = %1863
  br label %1865

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

1866:                                             ; No predecessors!
  br label %1867

1867:                                             ; preds = %1866
  br label %1868

1868:                                             ; preds = %1867, %1792
  br label %1869

1869:                                             ; preds = %1868
  br label %1870

1870:                                             ; preds = %1869
  br label %1871

1871:                                             ; preds = %1870
  %1872 = load i32, ptr @test_count, align 4, !tbaa !5
  %1873 = add nsw i32 %1872, 1
  store i32 %1873, ptr @test_count, align 4, !tbaa !5
  %1874 = load ptr, ptr %19, align 8, !tbaa !9
  %1875 = getelementptr inbounds %struct.s2n_connection, ptr %1874, i32 0, i32 27
  %1876 = load ptr, ptr %1875, align 8, !tbaa !15
  %1877 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %1876, i32 0, i32 0
  %1878 = load ptr, ptr %1877, align 8, !tbaa !44
  %1879 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %1878, i32 0, i32 6
  %1880 = load ptr, ptr %1879, align 8, !tbaa !49
  %1881 = getelementptr inbounds %struct.s2n_record_algorithm, ptr %1880, i32 0, i32 0
  %1882 = load ptr, ptr %1881, align 8, !tbaa !51
  %1883 = getelementptr inbounds %struct.s2n_cipher, ptr %1882, i32 0, i32 7
  %1884 = load ptr, ptr %1883, align 8, !tbaa !61
  %1885 = load ptr, ptr %19, align 8, !tbaa !9
  %1886 = getelementptr inbounds %struct.s2n_connection, ptr %1885, i32 0, i32 27
  %1887 = load ptr, ptr %1886, align 8, !tbaa !15
  %1888 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %1887, i32 0, i32 1
  %1889 = call i32 %1884(ptr noundef %1888)
  %1890 = getelementptr inbounds %struct.s2n_result, ptr %48, i32 0, i32 0
  store i32 %1889, ptr %1890, align 4
  %1891 = getelementptr inbounds %struct.s2n_result, ptr %48, i32 0, i32 0
  %1892 = load i32, ptr %1891, align 4
  %1893 = call zeroext i1 @s2n_result_is_ok(i32 %1892)
  br i1 %1893, label %1947, label %1894

1894:                                             ; preds = %1871
  br label %1895

1895:                                             ; preds = %1894
  br label %1896

1896:                                             ; preds = %1895
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #11
  %1897 = call ptr @__errno_location() #12
  %1898 = load i32, ptr %1897, align 4, !tbaa !5
  store i32 %1898, ptr %49, align 4, !tbaa !5
  %1899 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1900 = call i32 @s2n_print_stacktrace(ptr noundef %1899)
  %1901 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1902 = trunc i8 %1901 to i1
  br i1 %1902, label %1903, label %1925

1903:                                             ; preds = %1896
  %1904 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1905 = call i32 @fileno(ptr noundef %1904) #11
  %1906 = call i32 @isatty(i32 noundef %1905) #11
  %1907 = icmp ne i32 %1906, 0
  br i1 %1907, label %1908, label %1925

1908:                                             ; preds = %1903
  %1909 = load i32, ptr %49, align 4, !tbaa !5
  %1910 = call ptr @__errno_location() #12
  store i32 %1909, ptr %1910, align 4, !tbaa !5
  %1911 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1912 = load i32, ptr @test_count, align 4, !tbaa !5
  %1913 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1914 = load i32, ptr %1913, align 4, !tbaa !5
  %1915 = call ptr @s2n_strerror(i32 noundef %1914, ptr noundef @.str.4)
  %1916 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1917 = load i32, ptr %1916, align 4, !tbaa !5
  %1918 = call ptr @s2n_strerror_debug(i32 noundef %1917, ptr noundef @.str.4)
  %1919 = call ptr @__errno_location() #12
  %1920 = load i32, ptr %1919, align 4, !tbaa !5
  %1921 = call ptr @strerror(i32 noundef %1920) #11
  %1922 = call ptr @__errno_location() #12
  %1923 = load i32, ptr %1922, align 4, !tbaa !5
  %1924 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1911, ptr noundef @.str.2, i32 noundef %1912, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 120, ptr noundef %1915, ptr noundef %1918, ptr noundef %1921, i32 noundef %1923) #11
  br label %1942

1925:                                             ; preds = %1903, %1896
  %1926 = load i32, ptr %49, align 4, !tbaa !5
  %1927 = call ptr @__errno_location() #12
  store i32 %1926, ptr %1927, align 4, !tbaa !5
  %1928 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1929 = load i32, ptr @test_count, align 4, !tbaa !5
  %1930 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1931 = load i32, ptr %1930, align 4, !tbaa !5
  %1932 = call ptr @s2n_strerror(i32 noundef %1931, ptr noundef @.str.4)
  %1933 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1934 = load i32, ptr %1933, align 4, !tbaa !5
  %1935 = call ptr @s2n_strerror_debug(i32 noundef %1934, ptr noundef @.str.4)
  %1936 = call ptr @__errno_location() #12
  %1937 = load i32, ptr %1936, align 4, !tbaa !5
  %1938 = call ptr @strerror(i32 noundef %1937) #11
  %1939 = call ptr @__errno_location() #12
  %1940 = load i32, ptr %1939, align 4, !tbaa !5
  %1941 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1928, ptr noundef @.str.5, i32 noundef %1929, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 120, ptr noundef %1932, ptr noundef %1935, ptr noundef %1938, i32 noundef %1940) #11
  br label %1942

1942:                                             ; preds = %1925, %1908
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #11
  br label %1943

1943:                                             ; preds = %1942
  br label %1944

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

1945:                                             ; No predecessors!
  br label %1946

1946:                                             ; preds = %1945
  br label %1947

1947:                                             ; preds = %1946, %1871
  br label %1948

1948:                                             ; preds = %1947
  br label %1949

1949:                                             ; preds = %1948
  call void @llvm.lifetime.end.p0(i64 24, ptr %34) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #11
  %1950 = call i32 @s2n_connection_ptr_free(ptr noundef %19)
  %1951 = getelementptr inbounds %struct.s2n_result, ptr %50, i32 0, i32 0
  store i32 %1950, ptr %1951, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %51) #11
  store ptr null, ptr %51, align 8, !tbaa !9
  br label %1952

1952:                                             ; preds = %1949
  %1953 = load i32, ptr @test_count, align 4, !tbaa !5
  %1954 = add nsw i32 %1953, 1
  store i32 %1954, ptr @test_count, align 4, !tbaa !5
  %1955 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %1955, ptr %51, align 8, !tbaa !9
  %1956 = icmp eq ptr %1955, null
  br i1 %1956, label %1957, label %2010

1957:                                             ; preds = %1952
  br label %1958

1958:                                             ; preds = %1957
  br label %1959

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

1966:                                             ; preds = %1959
  %1967 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1968 = call i32 @fileno(ptr noundef %1967) #11
  %1969 = call i32 @isatty(i32 noundef %1968) #11
  %1970 = icmp ne i32 %1969, 0
  br i1 %1970, label %1971, label %1988

1971:                                             ; preds = %1966
  %1972 = load i32, ptr %52, align 4, !tbaa !5
  %1973 = call ptr @__errno_location() #12
  store i32 %1972, ptr %1973, align 4, !tbaa !5
  %1974 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1975 = load i32, ptr @test_count, align 4, !tbaa !5
  %1976 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1977 = load i32, ptr %1976, align 4, !tbaa !5
  %1978 = call ptr @s2n_strerror(i32 noundef %1977, ptr noundef @.str.4)
  %1979 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1980 = load i32, ptr %1979, align 4, !tbaa !5
  %1981 = call ptr @s2n_strerror_debug(i32 noundef %1980, ptr noundef @.str.4)
  %1982 = call ptr @__errno_location() #12
  %1983 = load i32, ptr %1982, align 4, !tbaa !5
  %1984 = call ptr @strerror(i32 noundef %1983) #11
  %1985 = call ptr @__errno_location() #12
  %1986 = load i32, ptr %1985, align 4, !tbaa !5
  %1987 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1974, ptr noundef @.str.2, i32 noundef %1975, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 126, ptr noundef %1978, ptr noundef %1981, ptr noundef %1984, i32 noundef %1986) #11
  br label %2005

1988:                                             ; preds = %1966, %1959
  %1989 = load i32, ptr %52, align 4, !tbaa !5
  %1990 = call ptr @__errno_location() #12
  store i32 %1989, ptr %1990, align 4, !tbaa !5
  %1991 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1992 = load i32, ptr @test_count, align 4, !tbaa !5
  %1993 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1994 = load i32, ptr %1993, align 4, !tbaa !5
  %1995 = call ptr @s2n_strerror(i32 noundef %1994, ptr noundef @.str.4)
  %1996 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1997 = load i32, ptr %1996, align 4, !tbaa !5
  %1998 = call ptr @s2n_strerror_debug(i32 noundef %1997, ptr noundef @.str.4)
  %1999 = call ptr @__errno_location() #12
  %2000 = load i32, ptr %1999, align 4, !tbaa !5
  %2001 = call ptr @strerror(i32 noundef %2000) #11
  %2002 = call ptr @__errno_location() #12
  %2003 = load i32, ptr %2002, align 4, !tbaa !5
  %2004 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1991, ptr noundef @.str.5, i32 noundef %1992, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 126, ptr noundef %1995, ptr noundef %1998, ptr noundef %2001, i32 noundef %2003) #11
  br label %2005

2005:                                             ; preds = %1988, %1971
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #11
  br label %2006

2006:                                             ; preds = %2005
  br label %2007

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

2008:                                             ; No predecessors!
  br label %2009

2009:                                             ; preds = %2008
  br label %2010

2010:                                             ; preds = %2009, %1952
  br label %2011

2011:                                             ; preds = %2010
  br label %2012

2012:                                             ; preds = %2011
  call void @llvm.lifetime.start.p0(i64 2, ptr %53) #11
  store i16 0, ptr %53, align 2, !tbaa !62
  %2013 = load ptr, ptr %51, align 8, !tbaa !9
  %2014 = getelementptr inbounds %struct.s2n_connection, ptr %2013, i32 0, i32 53
  store i16 1024, ptr %2014, align 8, !tbaa !63
  br label %2015

2015:                                             ; preds = %2012
  %2016 = load i32, ptr @test_count, align 4, !tbaa !5
  %2017 = add nsw i32 %2016, 1
  store i32 %2017, ptr @test_count, align 4, !tbaa !5
  %2018 = load ptr, ptr %51, align 8, !tbaa !9
  %2019 = call i32 @s2n_record_max_write_payload_size(ptr noundef %2018, ptr noundef %53)
  %2020 = getelementptr inbounds %struct.s2n_result, ptr %54, i32 0, i32 0
  store i32 %2019, ptr %2020, align 4
  %2021 = getelementptr inbounds %struct.s2n_result, ptr %54, i32 0, i32 0
  %2022 = load i32, ptr %2021, align 4
  %2023 = call zeroext i1 @s2n_result_is_ok(i32 %2022)
  br i1 %2023, label %2077, label %2024

2024:                                             ; preds = %2015
  br label %2025

2025:                                             ; preds = %2024
  br label %2026

2026:                                             ; preds = %2025
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #11
  %2027 = call ptr @__errno_location() #12
  %2028 = load i32, ptr %2027, align 4, !tbaa !5
  store i32 %2028, ptr %55, align 4, !tbaa !5
  %2029 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2030 = call i32 @s2n_print_stacktrace(ptr noundef %2029)
  %2031 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2032 = trunc i8 %2031 to i1
  br i1 %2032, label %2033, label %2055

2033:                                             ; preds = %2026
  %2034 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2035 = call i32 @fileno(ptr noundef %2034) #11
  %2036 = call i32 @isatty(i32 noundef %2035) #11
  %2037 = icmp ne i32 %2036, 0
  br i1 %2037, label %2038, label %2055

2038:                                             ; preds = %2033
  %2039 = load i32, ptr %55, align 4, !tbaa !5
  %2040 = call ptr @__errno_location() #12
  store i32 %2039, ptr %2040, align 4, !tbaa !5
  %2041 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2042 = load i32, ptr @test_count, align 4, !tbaa !5
  %2043 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2044 = load i32, ptr %2043, align 4, !tbaa !5
  %2045 = call ptr @s2n_strerror(i32 noundef %2044, ptr noundef @.str.4)
  %2046 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2047 = load i32, ptr %2046, align 4, !tbaa !5
  %2048 = call ptr @s2n_strerror_debug(i32 noundef %2047, ptr noundef @.str.4)
  %2049 = call ptr @__errno_location() #12
  %2050 = load i32, ptr %2049, align 4, !tbaa !5
  %2051 = call ptr @strerror(i32 noundef %2050) #11
  %2052 = call ptr @__errno_location() #12
  %2053 = load i32, ptr %2052, align 4, !tbaa !5
  %2054 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2041, ptr noundef @.str.2, i32 noundef %2042, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 132, ptr noundef %2045, ptr noundef %2048, ptr noundef %2051, i32 noundef %2053) #11
  br label %2072

2055:                                             ; preds = %2033, %2026
  %2056 = load i32, ptr %55, align 4, !tbaa !5
  %2057 = call ptr @__errno_location() #12
  store i32 %2056, ptr %2057, align 4, !tbaa !5
  %2058 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2059 = load i32, ptr @test_count, align 4, !tbaa !5
  %2060 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2061 = load i32, ptr %2060, align 4, !tbaa !5
  %2062 = call ptr @s2n_strerror(i32 noundef %2061, ptr noundef @.str.4)
  %2063 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2064 = load i32, ptr %2063, align 4, !tbaa !5
  %2065 = call ptr @s2n_strerror_debug(i32 noundef %2064, ptr noundef @.str.4)
  %2066 = call ptr @__errno_location() #12
  %2067 = load i32, ptr %2066, align 4, !tbaa !5
  %2068 = call ptr @strerror(i32 noundef %2067) #11
  %2069 = call ptr @__errno_location() #12
  %2070 = load i32, ptr %2069, align 4, !tbaa !5
  %2071 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2058, ptr noundef @.str.5, i32 noundef %2059, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 132, ptr noundef %2062, ptr noundef %2065, ptr noundef %2068, i32 noundef %2070) #11
  br label %2072

2072:                                             ; preds = %2055, %2038
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #11
  br label %2073

2073:                                             ; preds = %2072
  br label %2074

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

2075:                                             ; No predecessors!
  br label %2076

2076:                                             ; preds = %2075
  br label %2077

2077:                                             ; preds = %2076, %2015
  br label %2078

2078:                                             ; preds = %2077
  br label %2079

2079:                                             ; preds = %2078
  br label %2080

2080:                                             ; preds = %2079
  %2081 = load i32, ptr @test_count, align 4, !tbaa !5
  %2082 = add nsw i32 %2081, 1
  store i32 %2082, ptr @test_count, align 4, !tbaa !5
  %2083 = load i16, ptr %53, align 2, !tbaa !62
  %2084 = zext i16 %2083 to i32
  %2085 = icmp eq i32 %2084, 1024
  br i1 %2085, label %2139, label %2086

2086:                                             ; preds = %2080
  br label %2087

2087:                                             ; preds = %2086
  br label %2088

2088:                                             ; preds = %2087
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #11
  %2089 = call ptr @__errno_location() #12
  %2090 = load i32, ptr %2089, align 4, !tbaa !5
  store i32 %2090, ptr %56, align 4, !tbaa !5
  %2091 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2092 = call i32 @s2n_print_stacktrace(ptr noundef %2091)
  %2093 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2094 = trunc i8 %2093 to i1
  br i1 %2094, label %2095, label %2117

2095:                                             ; preds = %2088
  %2096 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2097 = call i32 @fileno(ptr noundef %2096) #11
  %2098 = call i32 @isatty(i32 noundef %2097) #11
  %2099 = icmp ne i32 %2098, 0
  br i1 %2099, label %2100, label %2117

2100:                                             ; preds = %2095
  %2101 = load i32, ptr %56, align 4, !tbaa !5
  %2102 = call ptr @__errno_location() #12
  store i32 %2101, ptr %2102, align 4, !tbaa !5
  %2103 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2104 = load i32, ptr @test_count, align 4, !tbaa !5
  %2105 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2106 = load i32, ptr %2105, align 4, !tbaa !5
  %2107 = call ptr @s2n_strerror(i32 noundef %2106, ptr noundef @.str.4)
  %2108 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2109 = load i32, ptr %2108, align 4, !tbaa !5
  %2110 = call ptr @s2n_strerror_debug(i32 noundef %2109, ptr noundef @.str.4)
  %2111 = call ptr @__errno_location() #12
  %2112 = load i32, ptr %2111, align 4, !tbaa !5
  %2113 = call ptr @strerror(i32 noundef %2112) #11
  %2114 = call ptr @__errno_location() #12
  %2115 = load i32, ptr %2114, align 4, !tbaa !5
  %2116 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2103, ptr noundef @.str.2, i32 noundef %2104, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 133, ptr noundef %2107, ptr noundef %2110, ptr noundef %2113, i32 noundef %2115) #11
  br label %2134

2117:                                             ; preds = %2095, %2088
  %2118 = load i32, ptr %56, align 4, !tbaa !5
  %2119 = call ptr @__errno_location() #12
  store i32 %2118, ptr %2119, align 4, !tbaa !5
  %2120 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2121 = load i32, ptr @test_count, align 4, !tbaa !5
  %2122 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2123 = load i32, ptr %2122, align 4, !tbaa !5
  %2124 = call ptr @s2n_strerror(i32 noundef %2123, ptr noundef @.str.4)
  %2125 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2126 = load i32, ptr %2125, align 4, !tbaa !5
  %2127 = call ptr @s2n_strerror_debug(i32 noundef %2126, ptr noundef @.str.4)
  %2128 = call ptr @__errno_location() #12
  %2129 = load i32, ptr %2128, align 4, !tbaa !5
  %2130 = call ptr @strerror(i32 noundef %2129) #11
  %2131 = call ptr @__errno_location() #12
  %2132 = load i32, ptr %2131, align 4, !tbaa !5
  %2133 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2120, ptr noundef @.str.5, i32 noundef %2121, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 133, ptr noundef %2124, ptr noundef %2127, ptr noundef %2130, i32 noundef %2132) #11
  br label %2134

2134:                                             ; preds = %2117, %2100
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #11
  br label %2135

2135:                                             ; preds = %2134
  br label %2136

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

2137:                                             ; No predecessors!
  br label %2138

2138:                                             ; preds = %2137
  br label %2139

2139:                                             ; preds = %2138, %2080
  br label %2140

2140:                                             ; preds = %2139
  br label %2141

2141:                                             ; preds = %2140
  %2142 = load ptr, ptr %51, align 8, !tbaa !9
  %2143 = getelementptr inbounds %struct.s2n_connection, ptr %2142, i32 0, i32 53
  store i16 -1, ptr %2143, align 8, !tbaa !63
  br label %2144

2144:                                             ; preds = %2141
  %2145 = load i32, ptr @test_count, align 4, !tbaa !5
  %2146 = add nsw i32 %2145, 1
  store i32 %2146, ptr @test_count, align 4, !tbaa !5
  %2147 = load ptr, ptr %51, align 8, !tbaa !9
  %2148 = call i32 @s2n_record_max_write_payload_size(ptr noundef %2147, ptr noundef %53)
  %2149 = getelementptr inbounds %struct.s2n_result, ptr %57, i32 0, i32 0
  store i32 %2148, ptr %2149, align 4
  %2150 = getelementptr inbounds %struct.s2n_result, ptr %57, i32 0, i32 0
  %2151 = load i32, ptr %2150, align 4
  %2152 = call zeroext i1 @s2n_result_is_ok(i32 %2151)
  br i1 %2152, label %2206, label %2153

2153:                                             ; preds = %2144
  br label %2154

2154:                                             ; preds = %2153
  br label %2155

2155:                                             ; preds = %2154
  call void @llvm.lifetime.start.p0(i64 4, ptr %58) #11
  %2156 = call ptr @__errno_location() #12
  %2157 = load i32, ptr %2156, align 4, !tbaa !5
  store i32 %2157, ptr %58, align 4, !tbaa !5
  %2158 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2159 = call i32 @s2n_print_stacktrace(ptr noundef %2158)
  %2160 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2161 = trunc i8 %2160 to i1
  br i1 %2161, label %2162, label %2184

2162:                                             ; preds = %2155
  %2163 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2164 = call i32 @fileno(ptr noundef %2163) #11
  %2165 = call i32 @isatty(i32 noundef %2164) #11
  %2166 = icmp ne i32 %2165, 0
  br i1 %2166, label %2167, label %2184

2167:                                             ; preds = %2162
  %2168 = load i32, ptr %58, align 4, !tbaa !5
  %2169 = call ptr @__errno_location() #12
  store i32 %2168, ptr %2169, align 4, !tbaa !5
  %2170 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2171 = load i32, ptr @test_count, align 4, !tbaa !5
  %2172 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2173 = load i32, ptr %2172, align 4, !tbaa !5
  %2174 = call ptr @s2n_strerror(i32 noundef %2173, ptr noundef @.str.4)
  %2175 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2176 = load i32, ptr %2175, align 4, !tbaa !5
  %2177 = call ptr @s2n_strerror_debug(i32 noundef %2176, ptr noundef @.str.4)
  %2178 = call ptr @__errno_location() #12
  %2179 = load i32, ptr %2178, align 4, !tbaa !5
  %2180 = call ptr @strerror(i32 noundef %2179) #11
  %2181 = call ptr @__errno_location() #12
  %2182 = load i32, ptr %2181, align 4, !tbaa !5
  %2183 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2170, ptr noundef @.str.2, i32 noundef %2171, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 138, ptr noundef %2174, ptr noundef %2177, ptr noundef %2180, i32 noundef %2182) #11
  br label %2201

2184:                                             ; preds = %2162, %2155
  %2185 = load i32, ptr %58, align 4, !tbaa !5
  %2186 = call ptr @__errno_location() #12
  store i32 %2185, ptr %2186, align 4, !tbaa !5
  %2187 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2188 = load i32, ptr @test_count, align 4, !tbaa !5
  %2189 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2190 = load i32, ptr %2189, align 4, !tbaa !5
  %2191 = call ptr @s2n_strerror(i32 noundef %2190, ptr noundef @.str.4)
  %2192 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2193 = load i32, ptr %2192, align 4, !tbaa !5
  %2194 = call ptr @s2n_strerror_debug(i32 noundef %2193, ptr noundef @.str.4)
  %2195 = call ptr @__errno_location() #12
  %2196 = load i32, ptr %2195, align 4, !tbaa !5
  %2197 = call ptr @strerror(i32 noundef %2196) #11
  %2198 = call ptr @__errno_location() #12
  %2199 = load i32, ptr %2198, align 4, !tbaa !5
  %2200 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2187, ptr noundef @.str.5, i32 noundef %2188, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 138, ptr noundef %2191, ptr noundef %2194, ptr noundef %2197, i32 noundef %2199) #11
  br label %2201

2201:                                             ; preds = %2184, %2167
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #11
  br label %2202

2202:                                             ; preds = %2201
  br label %2203

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

2204:                                             ; No predecessors!
  br label %2205

2205:                                             ; preds = %2204
  br label %2206

2206:                                             ; preds = %2205, %2144
  br label %2207

2207:                                             ; preds = %2206
  br label %2208

2208:                                             ; preds = %2207
  br label %2209

2209:                                             ; preds = %2208
  %2210 = load i32, ptr @test_count, align 4, !tbaa !5
  %2211 = add nsw i32 %2210, 1
  store i32 %2211, ptr @test_count, align 4, !tbaa !5
  %2212 = load i16, ptr %53, align 2, !tbaa !62
  %2213 = zext i16 %2212 to i32
  %2214 = icmp eq i32 %2213, 16384
  br i1 %2214, label %2268, label %2215

2215:                                             ; preds = %2209
  br label %2216

2216:                                             ; preds = %2215
  br label %2217

2217:                                             ; preds = %2216
  call void @llvm.lifetime.start.p0(i64 4, ptr %59) #11
  %2218 = call ptr @__errno_location() #12
  %2219 = load i32, ptr %2218, align 4, !tbaa !5
  store i32 %2219, ptr %59, align 4, !tbaa !5
  %2220 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2221 = call i32 @s2n_print_stacktrace(ptr noundef %2220)
  %2222 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2223 = trunc i8 %2222 to i1
  br i1 %2223, label %2224, label %2246

2224:                                             ; preds = %2217
  %2225 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2226 = call i32 @fileno(ptr noundef %2225) #11
  %2227 = call i32 @isatty(i32 noundef %2226) #11
  %2228 = icmp ne i32 %2227, 0
  br i1 %2228, label %2229, label %2246

2229:                                             ; preds = %2224
  %2230 = load i32, ptr %59, align 4, !tbaa !5
  %2231 = call ptr @__errno_location() #12
  store i32 %2230, ptr %2231, align 4, !tbaa !5
  %2232 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2233 = load i32, ptr @test_count, align 4, !tbaa !5
  %2234 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2235 = load i32, ptr %2234, align 4, !tbaa !5
  %2236 = call ptr @s2n_strerror(i32 noundef %2235, ptr noundef @.str.4)
  %2237 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2238 = load i32, ptr %2237, align 4, !tbaa !5
  %2239 = call ptr @s2n_strerror_debug(i32 noundef %2238, ptr noundef @.str.4)
  %2240 = call ptr @__errno_location() #12
  %2241 = load i32, ptr %2240, align 4, !tbaa !5
  %2242 = call ptr @strerror(i32 noundef %2241) #11
  %2243 = call ptr @__errno_location() #12
  %2244 = load i32, ptr %2243, align 4, !tbaa !5
  %2245 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2232, ptr noundef @.str.2, i32 noundef %2233, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 139, ptr noundef %2236, ptr noundef %2239, ptr noundef %2242, i32 noundef %2244) #11
  br label %2263

2246:                                             ; preds = %2224, %2217
  %2247 = load i32, ptr %59, align 4, !tbaa !5
  %2248 = call ptr @__errno_location() #12
  store i32 %2247, ptr %2248, align 4, !tbaa !5
  %2249 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2250 = load i32, ptr @test_count, align 4, !tbaa !5
  %2251 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2252 = load i32, ptr %2251, align 4, !tbaa !5
  %2253 = call ptr @s2n_strerror(i32 noundef %2252, ptr noundef @.str.4)
  %2254 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2255 = load i32, ptr %2254, align 4, !tbaa !5
  %2256 = call ptr @s2n_strerror_debug(i32 noundef %2255, ptr noundef @.str.4)
  %2257 = call ptr @__errno_location() #12
  %2258 = load i32, ptr %2257, align 4, !tbaa !5
  %2259 = call ptr @strerror(i32 noundef %2258) #11
  %2260 = call ptr @__errno_location() #12
  %2261 = load i32, ptr %2260, align 4, !tbaa !5
  %2262 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2249, ptr noundef @.str.5, i32 noundef %2250, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 139, ptr noundef %2253, ptr noundef %2256, ptr noundef %2259, i32 noundef %2261) #11
  br label %2263

2263:                                             ; preds = %2246, %2229
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #11
  br label %2264

2264:                                             ; preds = %2263
  br label %2265

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

2266:                                             ; No predecessors!
  br label %2267

2267:                                             ; preds = %2266
  br label %2268

2268:                                             ; preds = %2267, %2209
  br label %2269

2269:                                             ; preds = %2268
  br label %2270

2270:                                             ; preds = %2269
  %2271 = load ptr, ptr %51, align 8, !tbaa !9
  %2272 = getelementptr inbounds %struct.s2n_connection, ptr %2271, i32 0, i32 53
  store i16 0, ptr %2272, align 8, !tbaa !63
  br label %2273

2273:                                             ; preds = %2270
  br label %2274

2274:                                             ; preds = %2273
  br label %2275

2275:                                             ; preds = %2274
  %2276 = load i32, ptr @test_count, align 4, !tbaa !5
  %2277 = add nsw i32 %2276, 1
  store i32 %2277, ptr @test_count, align 4, !tbaa !5
  %2278 = load ptr, ptr %51, align 8, !tbaa !9
  %2279 = call i32 @s2n_record_max_write_payload_size(ptr noundef %2278, ptr noundef %53)
  %2280 = getelementptr inbounds %struct.s2n_result, ptr %60, i32 0, i32 0
  store i32 %2279, ptr %2280, align 4
  %2281 = getelementptr inbounds %struct.s2n_result, ptr %60, i32 0, i32 0
  %2282 = load i32, ptr %2281, align 4
  %2283 = call zeroext i1 @s2n_result_is_error(i32 %2282)
  br i1 %2283, label %2337, label %2284

2284:                                             ; preds = %2275
  br label %2285

2285:                                             ; preds = %2284
  br label %2286

2286:                                             ; preds = %2285
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #11
  %2287 = call ptr @__errno_location() #12
  %2288 = load i32, ptr %2287, align 4, !tbaa !5
  store i32 %2288, ptr %61, align 4, !tbaa !5
  %2289 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2290 = call i32 @s2n_print_stacktrace(ptr noundef %2289)
  %2291 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2292 = trunc i8 %2291 to i1
  br i1 %2292, label %2293, label %2315

2293:                                             ; preds = %2286
  %2294 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2295 = call i32 @fileno(ptr noundef %2294) #11
  %2296 = call i32 @isatty(i32 noundef %2295) #11
  %2297 = icmp ne i32 %2296, 0
  br i1 %2297, label %2298, label %2315

2298:                                             ; preds = %2293
  %2299 = load i32, ptr %61, align 4, !tbaa !5
  %2300 = call ptr @__errno_location() #12
  store i32 %2299, ptr %2300, align 4, !tbaa !5
  %2301 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2302 = load i32, ptr @test_count, align 4, !tbaa !5
  %2303 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2304 = load i32, ptr %2303, align 4, !tbaa !5
  %2305 = call ptr @s2n_strerror(i32 noundef %2304, ptr noundef @.str.4)
  %2306 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2307 = load i32, ptr %2306, align 4, !tbaa !5
  %2308 = call ptr @s2n_strerror_debug(i32 noundef %2307, ptr noundef @.str.4)
  %2309 = call ptr @__errno_location() #12
  %2310 = load i32, ptr %2309, align 4, !tbaa !5
  %2311 = call ptr @strerror(i32 noundef %2310) #11
  %2312 = call ptr @__errno_location() #12
  %2313 = load i32, ptr %2312, align 4, !tbaa !5
  %2314 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2301, ptr noundef @.str.2, i32 noundef %2302, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 143, ptr noundef %2305, ptr noundef %2308, ptr noundef %2311, i32 noundef %2313) #11
  br label %2332

2315:                                             ; preds = %2293, %2286
  %2316 = load i32, ptr %61, align 4, !tbaa !5
  %2317 = call ptr @__errno_location() #12
  store i32 %2316, ptr %2317, align 4, !tbaa !5
  %2318 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2319 = load i32, ptr @test_count, align 4, !tbaa !5
  %2320 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2321 = load i32, ptr %2320, align 4, !tbaa !5
  %2322 = call ptr @s2n_strerror(i32 noundef %2321, ptr noundef @.str.4)
  %2323 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2324 = load i32, ptr %2323, align 4, !tbaa !5
  %2325 = call ptr @s2n_strerror_debug(i32 noundef %2324, ptr noundef @.str.4)
  %2326 = call ptr @__errno_location() #12
  %2327 = load i32, ptr %2326, align 4, !tbaa !5
  %2328 = call ptr @strerror(i32 noundef %2327) #11
  %2329 = call ptr @__errno_location() #12
  %2330 = load i32, ptr %2329, align 4, !tbaa !5
  %2331 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2318, ptr noundef @.str.5, i32 noundef %2319, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 143, ptr noundef %2322, ptr noundef %2325, ptr noundef %2328, i32 noundef %2330) #11
  br label %2332

2332:                                             ; preds = %2315, %2298
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #11
  br label %2333

2333:                                             ; preds = %2332
  br label %2334

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

2335:                                             ; No predecessors!
  br label %2336

2336:                                             ; preds = %2335
  br label %2337

2337:                                             ; preds = %2336, %2275
  br label %2338

2338:                                             ; preds = %2337
  br label %2339

2339:                                             ; preds = %2338
  br label %2340

2340:                                             ; preds = %2339
  %2341 = load i32, ptr @test_count, align 4, !tbaa !5
  %2342 = add nsw i32 %2341, 1
  store i32 %2342, 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 = icmp eq i32 %2344, 335544391
  br i1 %2345, label %2399, label %2346

2346:                                             ; preds = %2340
  br label %2347

2347:                                             ; preds = %2346
  br label %2348

2348:                                             ; preds = %2347
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #11
  %2349 = call ptr @__errno_location() #12
  %2350 = load i32, ptr %2349, align 4, !tbaa !5
  store i32 %2350, ptr %62, align 4, !tbaa !5
  %2351 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2352 = call i32 @s2n_print_stacktrace(ptr noundef %2351)
  %2353 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2354 = trunc i8 %2353 to i1
  br i1 %2354, label %2355, label %2377

2355:                                             ; preds = %2348
  %2356 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2357 = call i32 @fileno(ptr noundef %2356) #11
  %2358 = call i32 @isatty(i32 noundef %2357) #11
  %2359 = icmp ne i32 %2358, 0
  br i1 %2359, label %2360, label %2377

2360:                                             ; preds = %2355
  %2361 = load i32, ptr %62, align 4, !tbaa !5
  %2362 = call ptr @__errno_location() #12
  store i32 %2361, ptr %2362, align 4, !tbaa !5
  %2363 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2364 = load i32, ptr @test_count, align 4, !tbaa !5
  %2365 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2366 = load i32, ptr %2365, align 4, !tbaa !5
  %2367 = call ptr @s2n_strerror(i32 noundef %2366, ptr noundef @.str.4)
  %2368 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2369 = load i32, ptr %2368, align 4, !tbaa !5
  %2370 = call ptr @s2n_strerror_debug(i32 noundef %2369, ptr noundef @.str.4)
  %2371 = call ptr @__errno_location() #12
  %2372 = load i32, ptr %2371, align 4, !tbaa !5
  %2373 = call ptr @strerror(i32 noundef %2372) #11
  %2374 = call ptr @__errno_location() #12
  %2375 = load i32, ptr %2374, align 4, !tbaa !5
  %2376 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2363, ptr noundef @.str.2, i32 noundef %2364, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 143, ptr noundef %2367, ptr noundef %2370, ptr noundef %2373, i32 noundef %2375) #11
  br label %2394

2377:                                             ; preds = %2355, %2348
  %2378 = load i32, ptr %62, align 4, !tbaa !5
  %2379 = call ptr @__errno_location() #12
  store i32 %2378, ptr %2379, align 4, !tbaa !5
  %2380 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2381 = load i32, ptr @test_count, align 4, !tbaa !5
  %2382 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2383 = load i32, ptr %2382, align 4, !tbaa !5
  %2384 = call ptr @s2n_strerror(i32 noundef %2383, ptr noundef @.str.4)
  %2385 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2386 = load i32, ptr %2385, align 4, !tbaa !5
  %2387 = call ptr @s2n_strerror_debug(i32 noundef %2386, ptr noundef @.str.4)
  %2388 = call ptr @__errno_location() #12
  %2389 = load i32, ptr %2388, align 4, !tbaa !5
  %2390 = call ptr @strerror(i32 noundef %2389) #11
  %2391 = call ptr @__errno_location() #12
  %2392 = load i32, ptr %2391, align 4, !tbaa !5
  %2393 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2380, ptr noundef @.str.5, i32 noundef %2381, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 143, ptr noundef %2384, ptr noundef %2387, ptr noundef %2390, i32 noundef %2392) #11
  br label %2394

2394:                                             ; preds = %2377, %2360
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #11
  br label %2395

2395:                                             ; preds = %2394
  br label %2396

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

2397:                                             ; No predecessors!
  br label %2398

2398:                                             ; preds = %2397
  br label %2399

2399:                                             ; preds = %2398, %2340
  br label %2400

2400:                                             ; preds = %2399
  br label %2401

2401:                                             ; preds = %2400
  br label %2402

2402:                                             ; preds = %2401
  %2403 = load i32, ptr @test_count, align 4, !tbaa !5
  %2404 = add nsw i32 %2403, 1
  store i32 %2404, ptr @test_count, align 4, !tbaa !5
  %2405 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2406 = load i32, ptr %2405, align 4, !tbaa !5
  %2407 = call ptr @s2n_strerror_debug(i32 noundef %2406, ptr noundef @.str.4)
  %2408 = icmp eq ptr %2407, null
  br i1 %2408, label %2409, label %2462

2409:                                             ; preds = %2402
  br label %2410

2410:                                             ; preds = %2409
  br label %2411

2411:                                             ; preds = %2410
  call void @llvm.lifetime.start.p0(i64 4, ptr %63) #11
  %2412 = call ptr @__errno_location() #12
  %2413 = load i32, ptr %2412, align 4, !tbaa !5
  store i32 %2413, ptr %63, align 4, !tbaa !5
  %2414 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2415 = call i32 @s2n_print_stacktrace(ptr noundef %2414)
  %2416 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2417 = trunc i8 %2416 to i1
  br i1 %2417, label %2418, label %2440

2418:                                             ; preds = %2411
  %2419 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2420 = call i32 @fileno(ptr noundef %2419) #11
  %2421 = call i32 @isatty(i32 noundef %2420) #11
  %2422 = icmp ne i32 %2421, 0
  br i1 %2422, label %2423, label %2440

2423:                                             ; preds = %2418
  %2424 = load i32, ptr %63, align 4, !tbaa !5
  %2425 = call ptr @__errno_location() #12
  store i32 %2424, ptr %2425, align 4, !tbaa !5
  %2426 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2427 = load i32, ptr @test_count, align 4, !tbaa !5
  %2428 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2429 = load i32, ptr %2428, align 4, !tbaa !5
  %2430 = call ptr @s2n_strerror(i32 noundef %2429, ptr noundef @.str.4)
  %2431 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2432 = load i32, ptr %2431, align 4, !tbaa !5
  %2433 = call ptr @s2n_strerror_debug(i32 noundef %2432, ptr noundef @.str.4)
  %2434 = call ptr @__errno_location() #12
  %2435 = load i32, ptr %2434, align 4, !tbaa !5
  %2436 = call ptr @strerror(i32 noundef %2435) #11
  %2437 = call ptr @__errno_location() #12
  %2438 = load i32, ptr %2437, align 4, !tbaa !5
  %2439 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2426, ptr noundef @.str.2, i32 noundef %2427, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 143, ptr noundef %2430, ptr noundef %2433, ptr noundef %2436, i32 noundef %2438) #11
  br label %2457

2440:                                             ; preds = %2418, %2411
  %2441 = load i32, ptr %63, align 4, !tbaa !5
  %2442 = call ptr @__errno_location() #12
  store i32 %2441, ptr %2442, align 4, !tbaa !5
  %2443 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2444 = load i32, ptr @test_count, align 4, !tbaa !5
  %2445 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2446 = load i32, ptr %2445, align 4, !tbaa !5
  %2447 = call ptr @s2n_strerror(i32 noundef %2446, ptr noundef @.str.4)
  %2448 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2449 = load i32, ptr %2448, align 4, !tbaa !5
  %2450 = call ptr @s2n_strerror_debug(i32 noundef %2449, ptr noundef @.str.4)
  %2451 = call ptr @__errno_location() #12
  %2452 = load i32, ptr %2451, align 4, !tbaa !5
  %2453 = call ptr @strerror(i32 noundef %2452) #11
  %2454 = call ptr @__errno_location() #12
  %2455 = load i32, ptr %2454, align 4, !tbaa !5
  %2456 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2443, ptr noundef @.str.5, i32 noundef %2444, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 143, ptr noundef %2447, ptr noundef %2450, ptr noundef %2453, i32 noundef %2455) #11
  br label %2457

2457:                                             ; preds = %2440, %2423
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #11
  br label %2458

2458:                                             ; preds = %2457
  br label %2459

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

2460:                                             ; No predecessors!
  br label %2461

2461:                                             ; preds = %2460
  br label %2462

2462:                                             ; preds = %2461, %2402
  br label %2463

2463:                                             ; preds = %2462
  br label %2464

2464:                                             ; preds = %2463
  br label %2465

2465:                                             ; preds = %2464
  br label %2466

2466:                                             ; preds = %2465
  br label %2467

2467:                                             ; preds = %2466
  %2468 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %2468, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %2469 = call ptr @__errno_location() #12
  store i32 0, ptr %2469, align 4, !tbaa !5
  br label %2470

2470:                                             ; preds = %2467
  br label %2471

2471:                                             ; preds = %2470
  br label %2472

2472:                                             ; preds = %2471
  br label %2473

2473:                                             ; preds = %2472
  %2474 = load ptr, ptr %51, align 8, !tbaa !9
  %2475 = getelementptr inbounds %struct.s2n_connection, ptr %2474, i32 0, i32 53
  store i16 16384, ptr %2475, align 8, !tbaa !63
  br label %2476

2476:                                             ; preds = %2473
  %2477 = load i32, ptr @test_count, align 4, !tbaa !5
  %2478 = add nsw i32 %2477, 1
  store i32 %2478, ptr @test_count, align 4, !tbaa !5
  %2479 = load ptr, ptr %51, align 8, !tbaa !9
  %2480 = call i32 @s2n_record_max_write_payload_size(ptr noundef %2479, ptr noundef %53)
  %2481 = getelementptr inbounds %struct.s2n_result, ptr %64, i32 0, i32 0
  store i32 %2480, ptr %2481, align 4
  %2482 = getelementptr inbounds %struct.s2n_result, ptr %64, i32 0, i32 0
  %2483 = load i32, ptr %2482, align 4
  %2484 = call zeroext i1 @s2n_result_is_ok(i32 %2483)
  br i1 %2484, label %2538, label %2485

2485:                                             ; preds = %2476
  br label %2486

2486:                                             ; preds = %2485
  br label %2487

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

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

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

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

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

2534:                                             ; preds = %2533
  br label %2535

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

2536:                                             ; No predecessors!
  br label %2537

2537:                                             ; preds = %2536
  br label %2538

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

2539:                                             ; preds = %2538
  br label %2540

2540:                                             ; preds = %2539
  br label %2541

2541:                                             ; preds = %2540
  %2542 = load i32, ptr @test_count, align 4, !tbaa !5
  %2543 = add nsw i32 %2542, 1
  store i32 %2543, ptr @test_count, align 4, !tbaa !5
  %2544 = load i16, ptr %53, align 2, !tbaa !62
  %2545 = zext i16 %2544 to i32
  %2546 = icmp eq i32 %2545, 16384
  br i1 %2546, label %2600, label %2547

2547:                                             ; preds = %2541
  br label %2548

2548:                                             ; preds = %2547
  br label %2549

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

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

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

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

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

2596:                                             ; preds = %2595
  br label %2597

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

2598:                                             ; No predecessors!
  br label %2599

2599:                                             ; preds = %2598
  br label %2600

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

2601:                                             ; preds = %2600
  br label %2602

2602:                                             ; preds = %2601
  %2603 = load ptr, ptr %51, align 8, !tbaa !9
  %2604 = getelementptr inbounds %struct.s2n_connection, ptr %2603, i32 0, i32 53
  %2605 = load i16, ptr %2604, align 8, !tbaa !63
  %2606 = add i16 %2605, 1
  store i16 %2606, ptr %2604, align 8, !tbaa !63
  br label %2607

2607:                                             ; preds = %2602
  %2608 = load i32, ptr @test_count, align 4, !tbaa !5
  %2609 = add nsw i32 %2608, 1
  store i32 %2609, ptr @test_count, align 4, !tbaa !5
  %2610 = load ptr, ptr %51, align 8, !tbaa !9
  %2611 = call i32 @s2n_record_max_write_payload_size(ptr noundef %2610, ptr noundef %53)
  %2612 = getelementptr inbounds %struct.s2n_result, ptr %67, i32 0, i32 0
  store i32 %2611, ptr %2612, align 4
  %2613 = getelementptr inbounds %struct.s2n_result, ptr %67, i32 0, i32 0
  %2614 = load i32, ptr %2613, align 4
  %2615 = call zeroext i1 @s2n_result_is_ok(i32 %2614)
  br i1 %2615, label %2669, label %2616

2616:                                             ; preds = %2607
  br label %2617

2617:                                             ; preds = %2616
  br label %2618

2618:                                             ; preds = %2617
  call void @llvm.lifetime.start.p0(i64 4, ptr %68) #11
  %2619 = call ptr @__errno_location() #12
  %2620 = load i32, ptr %2619, align 4, !tbaa !5
  store i32 %2620, ptr %68, align 4, !tbaa !5
  %2621 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2622 = call i32 @s2n_print_stacktrace(ptr noundef %2621)
  %2623 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2624 = trunc i8 %2623 to i1
  br i1 %2624, label %2625, label %2647

2625:                                             ; preds = %2618
  %2626 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2627 = call i32 @fileno(ptr noundef %2626) #11
  %2628 = call i32 @isatty(i32 noundef %2627) #11
  %2629 = icmp ne i32 %2628, 0
  br i1 %2629, label %2630, label %2647

2630:                                             ; preds = %2625
  %2631 = load i32, ptr %68, align 4, !tbaa !5
  %2632 = call ptr @__errno_location() #12
  store i32 %2631, ptr %2632, align 4, !tbaa !5
  %2633 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2634 = load i32, ptr @test_count, align 4, !tbaa !5
  %2635 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2636 = load i32, ptr %2635, align 4, !tbaa !5
  %2637 = call ptr @s2n_strerror(i32 noundef %2636, ptr noundef @.str.4)
  %2638 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2639 = load i32, ptr %2638, align 4, !tbaa !5
  %2640 = call ptr @s2n_strerror_debug(i32 noundef %2639, ptr noundef @.str.4)
  %2641 = call ptr @__errno_location() #12
  %2642 = load i32, ptr %2641, align 4, !tbaa !5
  %2643 = call ptr @strerror(i32 noundef %2642) #11
  %2644 = call ptr @__errno_location() #12
  %2645 = load i32, ptr %2644, align 4, !tbaa !5
  %2646 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2633, ptr noundef @.str.2, i32 noundef %2634, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 154, ptr noundef %2637, ptr noundef %2640, ptr noundef %2643, i32 noundef %2645) #11
  br label %2664

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

2664:                                             ; preds = %2647, %2630
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #11
  br label %2665

2665:                                             ; preds = %2664
  br label %2666

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

2667:                                             ; No predecessors!
  br label %2668

2668:                                             ; preds = %2667
  br label %2669

2669:                                             ; preds = %2668, %2607
  br label %2670

2670:                                             ; preds = %2669
  br label %2671

2671:                                             ; preds = %2670
  br label %2672

2672:                                             ; preds = %2671
  %2673 = load i32, ptr @test_count, align 4, !tbaa !5
  %2674 = add nsw i32 %2673, 1
  store i32 %2674, ptr @test_count, align 4, !tbaa !5
  %2675 = load i16, ptr %53, align 2, !tbaa !62
  %2676 = zext i16 %2675 to i32
  %2677 = icmp eq i32 %2676, 16384
  br i1 %2677, label %2731, label %2678

2678:                                             ; preds = %2672
  br label %2679

2679:                                             ; preds = %2678
  br label %2680

2680:                                             ; preds = %2679
  call void @llvm.lifetime.start.p0(i64 4, ptr %69) #11
  %2681 = call ptr @__errno_location() #12
  %2682 = load i32, ptr %2681, align 4, !tbaa !5
  store i32 %2682, ptr %69, align 4, !tbaa !5
  %2683 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2684 = call i32 @s2n_print_stacktrace(ptr noundef %2683)
  %2685 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2686 = trunc i8 %2685 to i1
  br i1 %2686, label %2687, label %2709

2687:                                             ; preds = %2680
  %2688 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2689 = call i32 @fileno(ptr noundef %2688) #11
  %2690 = call i32 @isatty(i32 noundef %2689) #11
  %2691 = icmp ne i32 %2690, 0
  br i1 %2691, label %2692, label %2709

2692:                                             ; preds = %2687
  %2693 = load i32, ptr %69, align 4, !tbaa !5
  %2694 = call ptr @__errno_location() #12
  store i32 %2693, ptr %2694, align 4, !tbaa !5
  %2695 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2696 = load i32, ptr @test_count, align 4, !tbaa !5
  %2697 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2698 = load i32, ptr %2697, align 4, !tbaa !5
  %2699 = call ptr @s2n_strerror(i32 noundef %2698, ptr noundef @.str.4)
  %2700 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2701 = load i32, ptr %2700, align 4, !tbaa !5
  %2702 = call ptr @s2n_strerror_debug(i32 noundef %2701, ptr noundef @.str.4)
  %2703 = call ptr @__errno_location() #12
  %2704 = load i32, ptr %2703, align 4, !tbaa !5
  %2705 = call ptr @strerror(i32 noundef %2704) #11
  %2706 = call ptr @__errno_location() #12
  %2707 = load i32, ptr %2706, align 4, !tbaa !5
  %2708 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2695, ptr noundef @.str.2, i32 noundef %2696, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 155, ptr noundef %2699, ptr noundef %2702, ptr noundef %2705, i32 noundef %2707) #11
  br label %2726

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

2726:                                             ; preds = %2709, %2692
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #11
  br label %2727

2727:                                             ; preds = %2726
  br label %2728

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

2729:                                             ; No predecessors!
  br label %2730

2730:                                             ; preds = %2729
  br label %2731

2731:                                             ; preds = %2730, %2672
  br label %2732

2732:                                             ; preds = %2731
  br label %2733

2733:                                             ; preds = %2732
  %2734 = load ptr, ptr %51, align 8, !tbaa !9
  %2735 = getelementptr inbounds %struct.s2n_connection, ptr %2734, i32 0, i32 23
  store i8 34, ptr %2735, align 4, !tbaa !57
  %2736 = load ptr, ptr %51, align 8, !tbaa !9
  %2737 = getelementptr inbounds %struct.s2n_connection, ptr %2736, i32 0, i32 30
  %2738 = load ptr, ptr %2737, align 8, !tbaa !42
  %2739 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %2738, i32 0, i32 0
  store ptr @s2n_tls13_aes_128_gcm_sha256, ptr %2739, align 8, !tbaa !44
  %2740 = load ptr, ptr %51, align 8, !tbaa !9
  %2741 = getelementptr inbounds %struct.s2n_connection, ptr %2740, i32 0, i32 53
  store i16 1024, ptr %2741, align 8, !tbaa !63
  br label %2742

2742:                                             ; preds = %2733
  %2743 = load i32, ptr @test_count, align 4, !tbaa !5
  %2744 = add nsw i32 %2743, 1
  store i32 %2744, ptr @test_count, align 4, !tbaa !5
  %2745 = load ptr, ptr %51, align 8, !tbaa !9
  %2746 = call i32 @s2n_record_max_write_payload_size(ptr noundef %2745, ptr noundef %53)
  %2747 = getelementptr inbounds %struct.s2n_result, ptr %70, i32 0, i32 0
  store i32 %2746, ptr %2747, align 4
  %2748 = getelementptr inbounds %struct.s2n_result, ptr %70, i32 0, i32 0
  %2749 = load i32, ptr %2748, align 4
  %2750 = call zeroext i1 @s2n_result_is_ok(i32 %2749)
  br i1 %2750, label %2804, label %2751

2751:                                             ; preds = %2742
  br label %2752

2752:                                             ; preds = %2751
  br label %2753

2753:                                             ; preds = %2752
  call void @llvm.lifetime.start.p0(i64 4, ptr %71) #11
  %2754 = call ptr @__errno_location() #12
  %2755 = load i32, ptr %2754, align 4, !tbaa !5
  store i32 %2755, ptr %71, align 4, !tbaa !5
  %2756 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2757 = call i32 @s2n_print_stacktrace(ptr noundef %2756)
  %2758 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2759 = trunc i8 %2758 to i1
  br i1 %2759, label %2760, label %2782

2760:                                             ; preds = %2753
  %2761 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2762 = call i32 @fileno(ptr noundef %2761) #11
  %2763 = call i32 @isatty(i32 noundef %2762) #11
  %2764 = icmp ne i32 %2763, 0
  br i1 %2764, label %2765, label %2782

2765:                                             ; preds = %2760
  %2766 = load i32, ptr %71, align 4, !tbaa !5
  %2767 = call ptr @__errno_location() #12
  store i32 %2766, ptr %2767, align 4, !tbaa !5
  %2768 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2769 = load i32, ptr @test_count, align 4, !tbaa !5
  %2770 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2771 = load i32, ptr %2770, align 4, !tbaa !5
  %2772 = call ptr @s2n_strerror(i32 noundef %2771, ptr noundef @.str.4)
  %2773 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2774 = load i32, ptr %2773, align 4, !tbaa !5
  %2775 = call ptr @s2n_strerror_debug(i32 noundef %2774, ptr noundef @.str.4)
  %2776 = call ptr @__errno_location() #12
  %2777 = load i32, ptr %2776, align 4, !tbaa !5
  %2778 = call ptr @strerror(i32 noundef %2777) #11
  %2779 = call ptr @__errno_location() #12
  %2780 = load i32, ptr %2779, align 4, !tbaa !5
  %2781 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2768, ptr noundef @.str.2, i32 noundef %2769, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 161, ptr noundef %2772, ptr noundef %2775, ptr noundef %2778, i32 noundef %2780) #11
  br label %2799

2782:                                             ; preds = %2760, %2753
  %2783 = load i32, ptr %71, align 4, !tbaa !5
  %2784 = call ptr @__errno_location() #12
  store i32 %2783, ptr %2784, align 4, !tbaa !5
  %2785 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2786 = load i32, ptr @test_count, align 4, !tbaa !5
  %2787 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2788 = load i32, ptr %2787, align 4, !tbaa !5
  %2789 = call ptr @s2n_strerror(i32 noundef %2788, ptr noundef @.str.4)
  %2790 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2791 = load i32, ptr %2790, align 4, !tbaa !5
  %2792 = call ptr @s2n_strerror_debug(i32 noundef %2791, ptr noundef @.str.4)
  %2793 = call ptr @__errno_location() #12
  %2794 = load i32, ptr %2793, align 4, !tbaa !5
  %2795 = call ptr @strerror(i32 noundef %2794) #11
  %2796 = call ptr @__errno_location() #12
  %2797 = load i32, ptr %2796, align 4, !tbaa !5
  %2798 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2785, ptr noundef @.str.5, i32 noundef %2786, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 161, ptr noundef %2789, ptr noundef %2792, ptr noundef %2795, i32 noundef %2797) #11
  br label %2799

2799:                                             ; preds = %2782, %2765
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #11
  br label %2800

2800:                                             ; preds = %2799
  br label %2801

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

2802:                                             ; No predecessors!
  br label %2803

2803:                                             ; preds = %2802
  br label %2804

2804:                                             ; preds = %2803, %2742
  br label %2805

2805:                                             ; preds = %2804
  br label %2806

2806:                                             ; preds = %2805
  br label %2807

2807:                                             ; preds = %2806
  %2808 = load i32, ptr @test_count, align 4, !tbaa !5
  %2809 = add nsw i32 %2808, 1
  store i32 %2809, ptr @test_count, align 4, !tbaa !5
  %2810 = load i16, ptr %53, align 2, !tbaa !62
  %2811 = zext i16 %2810 to i32
  %2812 = icmp eq i32 %2811, 1024
  br i1 %2812, label %2866, label %2813

2813:                                             ; preds = %2807
  br label %2814

2814:                                             ; preds = %2813
  br label %2815

2815:                                             ; preds = %2814
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #11
  %2816 = call ptr @__errno_location() #12
  %2817 = load i32, ptr %2816, align 4, !tbaa !5
  store i32 %2817, ptr %72, align 4, !tbaa !5
  %2818 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2819 = call i32 @s2n_print_stacktrace(ptr noundef %2818)
  %2820 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2821 = trunc i8 %2820 to i1
  br i1 %2821, label %2822, label %2844

2822:                                             ; preds = %2815
  %2823 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2824 = call i32 @fileno(ptr noundef %2823) #11
  %2825 = call i32 @isatty(i32 noundef %2824) #11
  %2826 = icmp ne i32 %2825, 0
  br i1 %2826, label %2827, label %2844

2827:                                             ; preds = %2822
  %2828 = load i32, ptr %72, align 4, !tbaa !5
  %2829 = call ptr @__errno_location() #12
  store i32 %2828, ptr %2829, align 4, !tbaa !5
  %2830 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2831 = load i32, ptr @test_count, align 4, !tbaa !5
  %2832 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2833 = load i32, ptr %2832, align 4, !tbaa !5
  %2834 = call ptr @s2n_strerror(i32 noundef %2833, ptr noundef @.str.4)
  %2835 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2836 = load i32, ptr %2835, align 4, !tbaa !5
  %2837 = call ptr @s2n_strerror_debug(i32 noundef %2836, ptr noundef @.str.4)
  %2838 = call ptr @__errno_location() #12
  %2839 = load i32, ptr %2838, align 4, !tbaa !5
  %2840 = call ptr @strerror(i32 noundef %2839) #11
  %2841 = call ptr @__errno_location() #12
  %2842 = load i32, ptr %2841, align 4, !tbaa !5
  %2843 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2830, ptr noundef @.str.2, i32 noundef %2831, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 162, ptr noundef %2834, ptr noundef %2837, ptr noundef %2840, i32 noundef %2842) #11
  br label %2861

2844:                                             ; preds = %2822, %2815
  %2845 = load i32, ptr %72, align 4, !tbaa !5
  %2846 = call ptr @__errno_location() #12
  store i32 %2845, ptr %2846, align 4, !tbaa !5
  %2847 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2848 = load i32, ptr @test_count, align 4, !tbaa !5
  %2849 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2850 = load i32, ptr %2849, align 4, !tbaa !5
  %2851 = call ptr @s2n_strerror(i32 noundef %2850, ptr noundef @.str.4)
  %2852 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2853 = load i32, ptr %2852, align 4, !tbaa !5
  %2854 = call ptr @s2n_strerror_debug(i32 noundef %2853, ptr noundef @.str.4)
  %2855 = call ptr @__errno_location() #12
  %2856 = load i32, ptr %2855, align 4, !tbaa !5
  %2857 = call ptr @strerror(i32 noundef %2856) #11
  %2858 = call ptr @__errno_location() #12
  %2859 = load i32, ptr %2858, align 4, !tbaa !5
  %2860 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2847, ptr noundef @.str.5, i32 noundef %2848, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 162, ptr noundef %2851, ptr noundef %2854, ptr noundef %2857, i32 noundef %2859) #11
  br label %2861

2861:                                             ; preds = %2844, %2827
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #11
  br label %2862

2862:                                             ; preds = %2861
  br label %2863

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

2864:                                             ; No predecessors!
  br label %2865

2865:                                             ; preds = %2864
  br label %2866

2866:                                             ; preds = %2865, %2807
  br label %2867

2867:                                             ; preds = %2866
  br label %2868

2868:                                             ; preds = %2867
  br label %2869

2869:                                             ; preds = %2868
  %2870 = load i32, ptr @test_count, align 4, !tbaa !5
  %2871 = add nsw i32 %2870, 1
  store i32 %2871, ptr @test_count, align 4, !tbaa !5
  %2872 = load ptr, ptr %51, align 8, !tbaa !9
  %2873 = call i32 @s2n_connection_free(ptr noundef %2872)
  %2874 = icmp eq i32 %2873, -1
  br i1 %2874, label %2875, label %2928

2875:                                             ; preds = %2869
  br label %2876

2876:                                             ; preds = %2875
  br label %2877

2877:                                             ; preds = %2876
  call void @llvm.lifetime.start.p0(i64 4, ptr %73) #11
  %2878 = call ptr @__errno_location() #12
  %2879 = load i32, ptr %2878, align 4, !tbaa !5
  store i32 %2879, ptr %73, align 4, !tbaa !5
  %2880 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2881 = call i32 @s2n_print_stacktrace(ptr noundef %2880)
  %2882 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2883 = trunc i8 %2882 to i1
  br i1 %2883, label %2884, label %2906

2884:                                             ; preds = %2877
  %2885 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2886 = call i32 @fileno(ptr noundef %2885) #11
  %2887 = call i32 @isatty(i32 noundef %2886) #11
  %2888 = icmp ne i32 %2887, 0
  br i1 %2888, label %2889, label %2906

2889:                                             ; preds = %2884
  %2890 = load i32, ptr %73, align 4, !tbaa !5
  %2891 = call ptr @__errno_location() #12
  store i32 %2890, ptr %2891, align 4, !tbaa !5
  %2892 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2893 = load i32, ptr @test_count, align 4, !tbaa !5
  %2894 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2895 = load i32, ptr %2894, align 4, !tbaa !5
  %2896 = call ptr @s2n_strerror(i32 noundef %2895, ptr noundef @.str.4)
  %2897 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2898 = load i32, ptr %2897, align 4, !tbaa !5
  %2899 = call ptr @s2n_strerror_debug(i32 noundef %2898, ptr noundef @.str.4)
  %2900 = call ptr @__errno_location() #12
  %2901 = load i32, ptr %2900, align 4, !tbaa !5
  %2902 = call ptr @strerror(i32 noundef %2901) #11
  %2903 = call ptr @__errno_location() #12
  %2904 = load i32, ptr %2903, align 4, !tbaa !5
  %2905 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2892, ptr noundef @.str.2, i32 noundef %2893, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 164, ptr noundef %2896, ptr noundef %2899, ptr noundef %2902, i32 noundef %2904) #11
  br label %2923

2906:                                             ; preds = %2884, %2877
  %2907 = load i32, ptr %73, align 4, !tbaa !5
  %2908 = call ptr @__errno_location() #12
  store i32 %2907, ptr %2908, align 4, !tbaa !5
  %2909 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2910 = load i32, ptr @test_count, align 4, !tbaa !5
  %2911 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2912 = load i32, ptr %2911, align 4, !tbaa !5
  %2913 = call ptr @s2n_strerror(i32 noundef %2912, ptr noundef @.str.4)
  %2914 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2915 = load i32, ptr %2914, align 4, !tbaa !5
  %2916 = call ptr @s2n_strerror_debug(i32 noundef %2915, ptr noundef @.str.4)
  %2917 = call ptr @__errno_location() #12
  %2918 = load i32, ptr %2917, align 4, !tbaa !5
  %2919 = call ptr @strerror(i32 noundef %2918) #11
  %2920 = call ptr @__errno_location() #12
  %2921 = load i32, ptr %2920, align 4, !tbaa !5
  %2922 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2909, ptr noundef @.str.5, i32 noundef %2910, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 164, ptr noundef %2913, ptr noundef %2916, ptr noundef %2919, i32 noundef %2921) #11
  br label %2923

2923:                                             ; preds = %2906, %2889
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #11
  br label %2924

2924:                                             ; preds = %2923
  br label %2925

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

2926:                                             ; No predecessors!
  br label %2927

2927:                                             ; preds = %2926
  br label %2928

2928:                                             ; preds = %2927, %2869
  br label %2929

2929:                                             ; preds = %2928
  br label %2930

2930:                                             ; preds = %2929
  call void @llvm.lifetime.end.p0(i64 2, ptr %53) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %74) #11
  %2931 = call ptr @s2n_config_new()
  store ptr %2931, ptr %74, align 8, !tbaa !9
  br label %2932

2932:                                             ; preds = %2930
  %2933 = load i32, ptr @test_count, align 4, !tbaa !5
  %2934 = add nsw i32 %2933, 1
  store i32 %2934, ptr @test_count, align 4, !tbaa !5
  %2935 = load ptr, ptr %74, align 8, !tbaa !9
  %2936 = icmp eq ptr %2935, null
  br i1 %2936, label %2937, label %2990

2937:                                             ; preds = %2932
  br label %2938

2938:                                             ; preds = %2937
  br label %2939

2939:                                             ; preds = %2938
  call void @llvm.lifetime.start.p0(i64 4, ptr %75) #11
  %2940 = call ptr @__errno_location() #12
  %2941 = load i32, ptr %2940, align 4, !tbaa !5
  store i32 %2941, ptr %75, align 4, !tbaa !5
  %2942 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2943 = call i32 @s2n_print_stacktrace(ptr noundef %2942)
  %2944 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2945 = trunc i8 %2944 to i1
  br i1 %2945, label %2946, label %2968

2946:                                             ; preds = %2939
  %2947 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2948 = call i32 @fileno(ptr noundef %2947) #11
  %2949 = call i32 @isatty(i32 noundef %2948) #11
  %2950 = icmp ne i32 %2949, 0
  br i1 %2950, label %2951, label %2968

2951:                                             ; preds = %2946
  %2952 = load i32, ptr %75, align 4, !tbaa !5
  %2953 = call ptr @__errno_location() #12
  store i32 %2952, ptr %2953, align 4, !tbaa !5
  %2954 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2955 = load i32, ptr @test_count, align 4, !tbaa !5
  %2956 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2957 = load i32, ptr %2956, align 4, !tbaa !5
  %2958 = call ptr @s2n_strerror(i32 noundef %2957, ptr noundef @.str.4)
  %2959 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2960 = load i32, ptr %2959, align 4, !tbaa !5
  %2961 = call ptr @s2n_strerror_debug(i32 noundef %2960, ptr noundef @.str.4)
  %2962 = call ptr @__errno_location() #12
  %2963 = load i32, ptr %2962, align 4, !tbaa !5
  %2964 = call ptr @strerror(i32 noundef %2963) #11
  %2965 = call ptr @__errno_location() #12
  %2966 = load i32, ptr %2965, align 4, !tbaa !5
  %2967 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2954, ptr noundef @.str.2, i32 noundef %2955, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 170, ptr noundef %2958, ptr noundef %2961, ptr noundef %2964, i32 noundef %2966) #11
  br label %2985

2968:                                             ; preds = %2946, %2939
  %2969 = load i32, ptr %75, align 4, !tbaa !5
  %2970 = call ptr @__errno_location() #12
  store i32 %2969, ptr %2970, align 4, !tbaa !5
  %2971 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2972 = load i32, ptr @test_count, align 4, !tbaa !5
  %2973 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2974 = load i32, ptr %2973, align 4, !tbaa !5
  %2975 = call ptr @s2n_strerror(i32 noundef %2974, ptr noundef @.str.4)
  %2976 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2977 = load i32, ptr %2976, align 4, !tbaa !5
  %2978 = call ptr @s2n_strerror_debug(i32 noundef %2977, ptr noundef @.str.4)
  %2979 = call ptr @__errno_location() #12
  %2980 = load i32, ptr %2979, align 4, !tbaa !5
  %2981 = call ptr @strerror(i32 noundef %2980) #11
  %2982 = call ptr @__errno_location() #12
  %2983 = load i32, ptr %2982, align 4, !tbaa !5
  %2984 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2971, ptr noundef @.str.5, i32 noundef %2972, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 170, ptr noundef %2975, ptr noundef %2978, ptr noundef %2981, i32 noundef %2983) #11
  br label %2985

2985:                                             ; preds = %2968, %2951
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #11
  br label %2986

2986:                                             ; preds = %2985
  br label %2987

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

2988:                                             ; No predecessors!
  br label %2989

2989:                                             ; preds = %2988
  br label %2990

2990:                                             ; preds = %2989, %2932
  br label %2991

2991:                                             ; preds = %2990
  br label %2992

2992:                                             ; preds = %2991
  call void @llvm.lifetime.start.p0(i64 4, ptr %76) #11
  store i32 1034, ptr %76, align 4, !tbaa !5
  br label %2993

2993:                                             ; preds = %2992
  %2994 = load i32, ptr @test_count, align 4, !tbaa !5
  %2995 = add nsw i32 %2994, 1
  store i32 %2995, ptr @test_count, align 4, !tbaa !5
  %2996 = load ptr, ptr %74, align 8, !tbaa !9
  %2997 = call i32 @s2n_config_set_send_buffer_size(ptr noundef %2996, i32 noundef 1034)
  %2998 = icmp eq i32 %2997, -1
  br i1 %2998, label %2999, label %3052

2999:                                             ; preds = %2993
  br label %3000

3000:                                             ; preds = %2999
  br label %3001

3001:                                             ; preds = %3000
  call void @llvm.lifetime.start.p0(i64 4, ptr %77) #11
  %3002 = call ptr @__errno_location() #12
  %3003 = load i32, ptr %3002, align 4, !tbaa !5
  store i32 %3003, ptr %77, align 4, !tbaa !5
  %3004 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3005 = call i32 @s2n_print_stacktrace(ptr noundef %3004)
  %3006 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3007 = trunc i8 %3006 to i1
  br i1 %3007, label %3008, label %3030

3008:                                             ; preds = %3001
  %3009 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3010 = call i32 @fileno(ptr noundef %3009) #11
  %3011 = call i32 @isatty(i32 noundef %3010) #11
  %3012 = icmp ne i32 %3011, 0
  br i1 %3012, label %3013, label %3030

3013:                                             ; preds = %3008
  %3014 = load i32, ptr %77, align 4, !tbaa !5
  %3015 = call ptr @__errno_location() #12
  store i32 %3014, ptr %3015, align 4, !tbaa !5
  %3016 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3017 = load i32, ptr @test_count, align 4, !tbaa !5
  %3018 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3019 = load i32, ptr %3018, align 4, !tbaa !5
  %3020 = call ptr @s2n_strerror(i32 noundef %3019, ptr noundef @.str.4)
  %3021 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3022 = load i32, ptr %3021, align 4, !tbaa !5
  %3023 = call ptr @s2n_strerror_debug(i32 noundef %3022, ptr noundef @.str.4)
  %3024 = call ptr @__errno_location() #12
  %3025 = load i32, ptr %3024, align 4, !tbaa !5
  %3026 = call ptr @strerror(i32 noundef %3025) #11
  %3027 = call ptr @__errno_location() #12
  %3028 = load i32, ptr %3027, align 4, !tbaa !5
  %3029 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3016, ptr noundef @.str.2, i32 noundef %3017, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 175, ptr noundef %3020, ptr noundef %3023, ptr noundef %3026, i32 noundef %3028) #11
  br label %3047

3030:                                             ; preds = %3008, %3001
  %3031 = load i32, ptr %77, align 4, !tbaa !5
  %3032 = call ptr @__errno_location() #12
  store i32 %3031, ptr %3032, align 4, !tbaa !5
  %3033 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3034 = load i32, ptr @test_count, align 4, !tbaa !5
  %3035 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3036 = load i32, ptr %3035, align 4, !tbaa !5
  %3037 = call ptr @s2n_strerror(i32 noundef %3036, ptr noundef @.str.4)
  %3038 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3039 = load i32, ptr %3038, align 4, !tbaa !5
  %3040 = call ptr @s2n_strerror_debug(i32 noundef %3039, ptr noundef @.str.4)
  %3041 = call ptr @__errno_location() #12
  %3042 = load i32, ptr %3041, align 4, !tbaa !5
  %3043 = call ptr @strerror(i32 noundef %3042) #11
  %3044 = call ptr @__errno_location() #12
  %3045 = load i32, ptr %3044, align 4, !tbaa !5
  %3046 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3033, ptr noundef @.str.5, i32 noundef %3034, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 175, ptr noundef %3037, ptr noundef %3040, ptr noundef %3043, i32 noundef %3045) #11
  br label %3047

3047:                                             ; preds = %3030, %3013
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #11
  br label %3048

3048:                                             ; preds = %3047
  br label %3049

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

3050:                                             ; No predecessors!
  br label %3051

3051:                                             ; preds = %3050
  br label %3052

3052:                                             ; preds = %3051, %2993
  br label %3053

3053:                                             ; preds = %3052
  br label %3054

3054:                                             ; preds = %3053
  call void @llvm.lifetime.start.p0(i64 8, ptr %78) #11
  %3055 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %3055, ptr %78, align 8, !tbaa !9
  br label %3056

3056:                                             ; preds = %3054
  %3057 = load i32, ptr @test_count, align 4, !tbaa !5
  %3058 = add nsw i32 %3057, 1
  store i32 %3058, ptr @test_count, align 4, !tbaa !5
  %3059 = load ptr, ptr %78, align 8, !tbaa !9
  %3060 = icmp eq ptr %3059, null
  br i1 %3060, label %3061, label %3114

3061:                                             ; preds = %3056
  br label %3062

3062:                                             ; preds = %3061
  br label %3063

3063:                                             ; preds = %3062
  call void @llvm.lifetime.start.p0(i64 4, ptr %79) #11
  %3064 = call ptr @__errno_location() #12
  %3065 = load i32, ptr %3064, align 4, !tbaa !5
  store i32 %3065, ptr %79, align 4, !tbaa !5
  %3066 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3067 = call i32 @s2n_print_stacktrace(ptr noundef %3066)
  %3068 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3069 = trunc i8 %3068 to i1
  br i1 %3069, label %3070, label %3092

3070:                                             ; preds = %3063
  %3071 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3072 = call i32 @fileno(ptr noundef %3071) #11
  %3073 = call i32 @isatty(i32 noundef %3072) #11
  %3074 = icmp ne i32 %3073, 0
  br i1 %3074, label %3075, label %3092

3075:                                             ; preds = %3070
  %3076 = load i32, ptr %79, align 4, !tbaa !5
  %3077 = call ptr @__errno_location() #12
  store i32 %3076, ptr %3077, align 4, !tbaa !5
  %3078 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3079 = load i32, ptr @test_count, align 4, !tbaa !5
  %3080 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3081 = load i32, ptr %3080, align 4, !tbaa !5
  %3082 = call ptr @s2n_strerror(i32 noundef %3081, ptr noundef @.str.4)
  %3083 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3084 = load i32, ptr %3083, align 4, !tbaa !5
  %3085 = call ptr @s2n_strerror_debug(i32 noundef %3084, ptr noundef @.str.4)
  %3086 = call ptr @__errno_location() #12
  %3087 = load i32, ptr %3086, align 4, !tbaa !5
  %3088 = call ptr @strerror(i32 noundef %3087) #11
  %3089 = call ptr @__errno_location() #12
  %3090 = load i32, ptr %3089, align 4, !tbaa !5
  %3091 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3078, ptr noundef @.str.2, i32 noundef %3079, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 178, ptr noundef %3082, ptr noundef %3085, ptr noundef %3088, i32 noundef %3090) #11
  br label %3109

3092:                                             ; preds = %3070, %3063
  %3093 = load i32, ptr %79, align 4, !tbaa !5
  %3094 = call ptr @__errno_location() #12
  store i32 %3093, ptr %3094, align 4, !tbaa !5
  %3095 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3096 = load i32, ptr @test_count, align 4, !tbaa !5
  %3097 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3098 = load i32, ptr %3097, align 4, !tbaa !5
  %3099 = call ptr @s2n_strerror(i32 noundef %3098, ptr noundef @.str.4)
  %3100 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3101 = load i32, ptr %3100, align 4, !tbaa !5
  %3102 = call ptr @s2n_strerror_debug(i32 noundef %3101, ptr noundef @.str.4)
  %3103 = call ptr @__errno_location() #12
  %3104 = load i32, ptr %3103, align 4, !tbaa !5
  %3105 = call ptr @strerror(i32 noundef %3104) #11
  %3106 = call ptr @__errno_location() #12
  %3107 = load i32, ptr %3106, align 4, !tbaa !5
  %3108 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3095, ptr noundef @.str.5, i32 noundef %3096, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 178, ptr noundef %3099, ptr noundef %3102, ptr noundef %3105, i32 noundef %3107) #11
  br label %3109

3109:                                             ; preds = %3092, %3075
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #11
  br label %3110

3110:                                             ; preds = %3109
  br label %3111

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

3112:                                             ; No predecessors!
  br label %3113

3113:                                             ; preds = %3112
  br label %3114

3114:                                             ; preds = %3113, %3056
  br label %3115

3115:                                             ; preds = %3114
  br label %3116

3116:                                             ; preds = %3115
  br label %3117

3117:                                             ; preds = %3116
  %3118 = load i32, ptr @test_count, align 4, !tbaa !5
  %3119 = add nsw i32 %3118, 1
  store i32 %3119, ptr @test_count, align 4, !tbaa !5
  %3120 = load ptr, ptr %78, align 8, !tbaa !9
  %3121 = load ptr, ptr %74, align 8, !tbaa !9
  %3122 = call i32 @s2n_connection_set_config(ptr noundef %3120, ptr noundef %3121)
  %3123 = icmp eq i32 %3122, -1
  br i1 %3123, label %3124, label %3177

3124:                                             ; preds = %3117
  br label %3125

3125:                                             ; preds = %3124
  br label %3126

3126:                                             ; preds = %3125
  call void @llvm.lifetime.start.p0(i64 4, ptr %80) #11
  %3127 = call ptr @__errno_location() #12
  %3128 = load i32, ptr %3127, align 4, !tbaa !5
  store i32 %3128, ptr %80, align 4, !tbaa !5
  %3129 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3130 = call i32 @s2n_print_stacktrace(ptr noundef %3129)
  %3131 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3132 = trunc i8 %3131 to i1
  br i1 %3132, label %3133, label %3155

3133:                                             ; preds = %3126
  %3134 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3135 = call i32 @fileno(ptr noundef %3134) #11
  %3136 = call i32 @isatty(i32 noundef %3135) #11
  %3137 = icmp ne i32 %3136, 0
  br i1 %3137, label %3138, label %3155

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

3155:                                             ; preds = %3133, %3126
  %3156 = load i32, ptr %80, align 4, !tbaa !5
  %3157 = call ptr @__errno_location() #12
  store i32 %3156, ptr %3157, align 4, !tbaa !5
  %3158 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3159 = load i32, ptr @test_count, align 4, !tbaa !5
  %3160 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3161 = load i32, ptr %3160, align 4, !tbaa !5
  %3162 = call ptr @s2n_strerror(i32 noundef %3161, ptr noundef @.str.4)
  %3163 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3164 = load i32, ptr %3163, align 4, !tbaa !5
  %3165 = call ptr @s2n_strerror_debug(i32 noundef %3164, ptr noundef @.str.4)
  %3166 = call ptr @__errno_location() #12
  %3167 = load i32, ptr %3166, align 4, !tbaa !5
  %3168 = call ptr @strerror(i32 noundef %3167) #11
  %3169 = call ptr @__errno_location() #12
  %3170 = load i32, ptr %3169, align 4, !tbaa !5
  %3171 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3158, ptr noundef @.str.5, i32 noundef %3159, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 179, ptr noundef %3162, ptr noundef %3165, ptr noundef %3168, i32 noundef %3170) #11
  br label %3172

3172:                                             ; preds = %3155, %3138
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #11
  br label %3173

3173:                                             ; preds = %3172
  br label %3174

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

3175:                                             ; No predecessors!
  br label %3176

3176:                                             ; preds = %3175
  br label %3177

3177:                                             ; preds = %3176, %3117
  br label %3178

3178:                                             ; preds = %3177
  br label %3179

3179:                                             ; preds = %3178
  call void @llvm.lifetime.start.p0(i64 2, ptr %81) #11
  store i16 0, ptr %81, align 2, !tbaa !62
  br label %3180

3180:                                             ; preds = %3179
  %3181 = load i32, ptr @test_count, align 4, !tbaa !5
  %3182 = add nsw i32 %3181, 1
  store i32 %3182, ptr @test_count, align 4, !tbaa !5
  %3183 = load ptr, ptr %78, align 8, !tbaa !9
  %3184 = call i32 @s2n_record_max_write_payload_size(ptr noundef %3183, ptr noundef %81)
  %3185 = getelementptr inbounds %struct.s2n_result, ptr %82, i32 0, i32 0
  store i32 %3184, ptr %3185, align 4
  %3186 = getelementptr inbounds %struct.s2n_result, ptr %82, i32 0, i32 0
  %3187 = load i32, ptr %3186, align 4
  %3188 = call zeroext i1 @s2n_result_is_ok(i32 %3187)
  br i1 %3188, label %3242, label %3189

3189:                                             ; preds = %3180
  br label %3190

3190:                                             ; preds = %3189
  br label %3191

3191:                                             ; preds = %3190
  call void @llvm.lifetime.start.p0(i64 4, ptr %83) #11
  %3192 = call ptr @__errno_location() #12
  %3193 = load i32, ptr %3192, align 4, !tbaa !5
  store i32 %3193, ptr %83, align 4, !tbaa !5
  %3194 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3195 = call i32 @s2n_print_stacktrace(ptr noundef %3194)
  %3196 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3197 = trunc i8 %3196 to i1
  br i1 %3197, label %3198, label %3220

3198:                                             ; preds = %3191
  %3199 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3200 = call i32 @fileno(ptr noundef %3199) #11
  %3201 = call i32 @isatty(i32 noundef %3200) #11
  %3202 = icmp ne i32 %3201, 0
  br i1 %3202, label %3203, label %3220

3203:                                             ; preds = %3198
  %3204 = load i32, ptr %83, align 4, !tbaa !5
  %3205 = call ptr @__errno_location() #12
  store i32 %3204, ptr %3205, align 4, !tbaa !5
  %3206 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3207 = load i32, ptr @test_count, align 4, !tbaa !5
  %3208 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3209 = load i32, ptr %3208, align 4, !tbaa !5
  %3210 = call ptr @s2n_strerror(i32 noundef %3209, ptr noundef @.str.4)
  %3211 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3212 = load i32, ptr %3211, align 4, !tbaa !5
  %3213 = call ptr @s2n_strerror_debug(i32 noundef %3212, ptr noundef @.str.4)
  %3214 = call ptr @__errno_location() #12
  %3215 = load i32, ptr %3214, align 4, !tbaa !5
  %3216 = call ptr @strerror(i32 noundef %3215) #11
  %3217 = call ptr @__errno_location() #12
  %3218 = load i32, ptr %3217, align 4, !tbaa !5
  %3219 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3206, ptr noundef @.str.2, i32 noundef %3207, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 182, ptr noundef %3210, ptr noundef %3213, ptr noundef %3216, i32 noundef %3218) #11
  br label %3237

3220:                                             ; preds = %3198, %3191
  %3221 = load i32, ptr %83, align 4, !tbaa !5
  %3222 = call ptr @__errno_location() #12
  store i32 %3221, ptr %3222, align 4, !tbaa !5
  %3223 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3224 = load i32, ptr @test_count, align 4, !tbaa !5
  %3225 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3226 = load i32, ptr %3225, align 4, !tbaa !5
  %3227 = call ptr @s2n_strerror(i32 noundef %3226, ptr noundef @.str.4)
  %3228 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3229 = load i32, ptr %3228, align 4, !tbaa !5
  %3230 = call ptr @s2n_strerror_debug(i32 noundef %3229, ptr noundef @.str.4)
  %3231 = call ptr @__errno_location() #12
  %3232 = load i32, ptr %3231, align 4, !tbaa !5
  %3233 = call ptr @strerror(i32 noundef %3232) #11
  %3234 = call ptr @__errno_location() #12
  %3235 = load i32, ptr %3234, align 4, !tbaa !5
  %3236 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3223, ptr noundef @.str.5, i32 noundef %3224, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 182, ptr noundef %3227, ptr noundef %3230, ptr noundef %3233, i32 noundef %3235) #11
  br label %3237

3237:                                             ; preds = %3220, %3203
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #11
  br label %3238

3238:                                             ; preds = %3237
  br label %3239

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

3240:                                             ; No predecessors!
  br label %3241

3241:                                             ; preds = %3240
  br label %3242

3242:                                             ; preds = %3241, %3180
  br label %3243

3243:                                             ; preds = %3242
  br label %3244

3244:                                             ; preds = %3243
  br label %3245

3245:                                             ; preds = %3244
  %3246 = load i32, ptr @test_count, align 4, !tbaa !5
  %3247 = add nsw i32 %3246, 1
  store i32 %3247, ptr @test_count, align 4, !tbaa !5
  %3248 = load i16, ptr %81, align 2, !tbaa !62
  %3249 = zext i16 %3248 to i32
  %3250 = icmp eq i32 %3249, 5
  br i1 %3250, label %3304, label %3251

3251:                                             ; preds = %3245
  br label %3252

3252:                                             ; preds = %3251
  br label %3253

3253:                                             ; preds = %3252
  call void @llvm.lifetime.start.p0(i64 4, ptr %84) #11
  %3254 = call ptr @__errno_location() #12
  %3255 = load i32, ptr %3254, align 4, !tbaa !5
  store i32 %3255, ptr %84, align 4, !tbaa !5
  %3256 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3257 = call i32 @s2n_print_stacktrace(ptr noundef %3256)
  %3258 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3259 = trunc i8 %3258 to i1
  br i1 %3259, label %3260, label %3282

3260:                                             ; preds = %3253
  %3261 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3262 = call i32 @fileno(ptr noundef %3261) #11
  %3263 = call i32 @isatty(i32 noundef %3262) #11
  %3264 = icmp ne i32 %3263, 0
  br i1 %3264, label %3265, label %3282

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

3282:                                             ; preds = %3260, %3253
  %3283 = load i32, ptr %84, align 4, !tbaa !5
  %3284 = call ptr @__errno_location() #12
  store i32 %3283, ptr %3284, align 4, !tbaa !5
  %3285 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3286 = load i32, ptr @test_count, align 4, !tbaa !5
  %3287 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3288 = load i32, ptr %3287, align 4, !tbaa !5
  %3289 = call ptr @s2n_strerror(i32 noundef %3288, ptr noundef @.str.4)
  %3290 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3291 = load i32, ptr %3290, align 4, !tbaa !5
  %3292 = call ptr @s2n_strerror_debug(i32 noundef %3291, ptr noundef @.str.4)
  %3293 = call ptr @__errno_location() #12
  %3294 = load i32, ptr %3293, align 4, !tbaa !5
  %3295 = call ptr @strerror(i32 noundef %3294) #11
  %3296 = call ptr @__errno_location() #12
  %3297 = load i32, ptr %3296, align 4, !tbaa !5
  %3298 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3285, ptr noundef @.str.5, i32 noundef %3286, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 183, ptr noundef %3289, ptr noundef %3292, ptr noundef %3295, i32 noundef %3297) #11
  br label %3299

3299:                                             ; preds = %3282, %3265
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #11
  br label %3300

3300:                                             ; preds = %3299
  br label %3301

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

3302:                                             ; No predecessors!
  br label %3303

3303:                                             ; preds = %3302
  br label %3304

3304:                                             ; preds = %3303, %3245
  br label %3305

3305:                                             ; preds = %3304
  br label %3306

3306:                                             ; preds = %3305
  call void @llvm.lifetime.end.p0(i64 2, ptr %81) #11
  %3307 = call i32 @s2n_connection_ptr_free(ptr noundef %78)
  %3308 = getelementptr inbounds %struct.s2n_result, ptr %85, i32 0, i32 0
  store i32 %3307, ptr %3308, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #11
  call void @llvm.lifetime.start.p0(i64 4, ptr %86) #11
  store i32 1000, ptr %86, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %87) #11
  store i32 2029, ptr %87, align 4, !tbaa !5
  br label %3309

3309:                                             ; preds = %3306
  %3310 = load i32, ptr @test_count, align 4, !tbaa !5
  %3311 = add nsw i32 %3310, 1
  store i32 %3311, ptr @test_count, align 4, !tbaa !5
  %3312 = load ptr, ptr %74, align 8, !tbaa !9
  %3313 = call i32 @s2n_config_set_send_buffer_size(ptr noundef %3312, i32 noundef 2029)
  %3314 = icmp eq i32 %3313, -1
  br i1 %3314, label %3315, label %3368

3315:                                             ; preds = %3309
  br label %3316

3316:                                             ; preds = %3315
  br label %3317

3317:                                             ; preds = %3316
  call void @llvm.lifetime.start.p0(i64 4, ptr %88) #11
  %3318 = call ptr @__errno_location() #12
  %3319 = load i32, ptr %3318, align 4, !tbaa !5
  store i32 %3319, ptr %88, align 4, !tbaa !5
  %3320 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3321 = call i32 @s2n_print_stacktrace(ptr noundef %3320)
  %3322 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3323 = trunc i8 %3322 to i1
  br i1 %3323, label %3324, label %3346

3324:                                             ; preds = %3317
  %3325 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3326 = call i32 @fileno(ptr noundef %3325) #11
  %3327 = call i32 @isatty(i32 noundef %3326) #11
  %3328 = icmp ne i32 %3327, 0
  br i1 %3328, label %3329, label %3346

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

3346:                                             ; preds = %3324, %3317
  %3347 = load i32, ptr %88, align 4, !tbaa !5
  %3348 = call ptr @__errno_location() #12
  store i32 %3347, ptr %3348, align 4, !tbaa !5
  %3349 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3350 = load i32, ptr @test_count, align 4, !tbaa !5
  %3351 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3352 = load i32, ptr %3351, align 4, !tbaa !5
  %3353 = call ptr @s2n_strerror(i32 noundef %3352, ptr noundef @.str.4)
  %3354 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3355 = load i32, ptr %3354, align 4, !tbaa !5
  %3356 = call ptr @s2n_strerror_debug(i32 noundef %3355, ptr noundef @.str.4)
  %3357 = call ptr @__errno_location() #12
  %3358 = load i32, ptr %3357, align 4, !tbaa !5
  %3359 = call ptr @strerror(i32 noundef %3358) #11
  %3360 = call ptr @__errno_location() #12
  %3361 = load i32, ptr %3360, align 4, !tbaa !5
  %3362 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3349, ptr noundef @.str.5, i32 noundef %3350, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 190, ptr noundef %3353, ptr noundef %3356, ptr noundef %3359, i32 noundef %3361) #11
  br label %3363

3363:                                             ; preds = %3346, %3329
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #11
  br label %3364

3364:                                             ; preds = %3363
  br label %3365

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

3366:                                             ; No predecessors!
  br label %3367

3367:                                             ; preds = %3366
  br label %3368

3368:                                             ; preds = %3367, %3309
  br label %3369

3369:                                             ; preds = %3368
  br label %3370

3370:                                             ; preds = %3369
  call void @llvm.lifetime.start.p0(i64 8, ptr %89) #11
  %3371 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %3371, ptr %89, align 8, !tbaa !9
  br label %3372

3372:                                             ; preds = %3370
  %3373 = load i32, ptr @test_count, align 4, !tbaa !5
  %3374 = add nsw i32 %3373, 1
  store i32 %3374, ptr @test_count, align 4, !tbaa !5
  %3375 = load ptr, ptr %89, align 8, !tbaa !9
  %3376 = icmp eq ptr %3375, null
  br i1 %3376, label %3377, label %3430

3377:                                             ; preds = %3372
  br label %3378

3378:                                             ; preds = %3377
  br label %3379

3379:                                             ; preds = %3378
  call void @llvm.lifetime.start.p0(i64 4, ptr %90) #11
  %3380 = call ptr @__errno_location() #12
  %3381 = load i32, ptr %3380, align 4, !tbaa !5
  store i32 %3381, ptr %90, align 4, !tbaa !5
  %3382 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3383 = call i32 @s2n_print_stacktrace(ptr noundef %3382)
  %3384 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3385 = trunc i8 %3384 to i1
  br i1 %3385, label %3386, label %3408

3386:                                             ; preds = %3379
  %3387 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3388 = call i32 @fileno(ptr noundef %3387) #11
  %3389 = call i32 @isatty(i32 noundef %3388) #11
  %3390 = icmp ne i32 %3389, 0
  br i1 %3390, label %3391, label %3408

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

3408:                                             ; preds = %3386, %3379
  %3409 = load i32, ptr %90, align 4, !tbaa !5
  %3410 = call ptr @__errno_location() #12
  store i32 %3409, ptr %3410, align 4, !tbaa !5
  %3411 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3412 = load i32, ptr @test_count, align 4, !tbaa !5
  %3413 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3414 = load i32, ptr %3413, align 4, !tbaa !5
  %3415 = call ptr @s2n_strerror(i32 noundef %3414, ptr noundef @.str.4)
  %3416 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3417 = load i32, ptr %3416, align 4, !tbaa !5
  %3418 = call ptr @s2n_strerror_debug(i32 noundef %3417, ptr noundef @.str.4)
  %3419 = call ptr @__errno_location() #12
  %3420 = load i32, ptr %3419, align 4, !tbaa !5
  %3421 = call ptr @strerror(i32 noundef %3420) #11
  %3422 = call ptr @__errno_location() #12
  %3423 = load i32, ptr %3422, align 4, !tbaa !5
  %3424 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3411, ptr noundef @.str.5, i32 noundef %3412, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 193, ptr noundef %3415, ptr noundef %3418, ptr noundef %3421, i32 noundef %3423) #11
  br label %3425

3425:                                             ; preds = %3408, %3391
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #11
  br label %3426

3426:                                             ; preds = %3425
  br label %3427

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

3428:                                             ; No predecessors!
  br label %3429

3429:                                             ; preds = %3428
  br label %3430

3430:                                             ; preds = %3429, %3372
  br label %3431

3431:                                             ; preds = %3430
  br label %3432

3432:                                             ; preds = %3431
  br label %3433

3433:                                             ; preds = %3432
  %3434 = load i32, ptr @test_count, align 4, !tbaa !5
  %3435 = add nsw i32 %3434, 1
  store i32 %3435, ptr @test_count, align 4, !tbaa !5
  %3436 = load ptr, ptr %89, align 8, !tbaa !9
  %3437 = load ptr, ptr %74, align 8, !tbaa !9
  %3438 = call i32 @s2n_connection_set_config(ptr noundef %3436, ptr noundef %3437)
  %3439 = icmp eq i32 %3438, -1
  br i1 %3439, label %3440, label %3493

3440:                                             ; preds = %3433
  br label %3441

3441:                                             ; preds = %3440
  br label %3442

3442:                                             ; preds = %3441
  call void @llvm.lifetime.start.p0(i64 4, ptr %91) #11
  %3443 = call ptr @__errno_location() #12
  %3444 = load i32, ptr %3443, align 4, !tbaa !5
  store i32 %3444, ptr %91, align 4, !tbaa !5
  %3445 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3446 = call i32 @s2n_print_stacktrace(ptr noundef %3445)
  %3447 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3448 = trunc i8 %3447 to i1
  br i1 %3448, label %3449, label %3471

3449:                                             ; preds = %3442
  %3450 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3451 = call i32 @fileno(ptr noundef %3450) #11
  %3452 = call i32 @isatty(i32 noundef %3451) #11
  %3453 = icmp ne i32 %3452, 0
  br i1 %3453, label %3454, label %3471

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

3471:                                             ; preds = %3449, %3442
  %3472 = load i32, ptr %91, align 4, !tbaa !5
  %3473 = call ptr @__errno_location() #12
  store i32 %3472, ptr %3473, align 4, !tbaa !5
  %3474 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3475 = load i32, ptr @test_count, align 4, !tbaa !5
  %3476 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3477 = load i32, ptr %3476, align 4, !tbaa !5
  %3478 = call ptr @s2n_strerror(i32 noundef %3477, ptr noundef @.str.4)
  %3479 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3480 = load i32, ptr %3479, align 4, !tbaa !5
  %3481 = call ptr @s2n_strerror_debug(i32 noundef %3480, ptr noundef @.str.4)
  %3482 = call ptr @__errno_location() #12
  %3483 = load i32, ptr %3482, align 4, !tbaa !5
  %3484 = call ptr @strerror(i32 noundef %3483) #11
  %3485 = call ptr @__errno_location() #12
  %3486 = load i32, ptr %3485, align 4, !tbaa !5
  %3487 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3474, ptr noundef @.str.5, i32 noundef %3475, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 194, ptr noundef %3478, ptr noundef %3481, ptr noundef %3484, i32 noundef %3486) #11
  br label %3488

3488:                                             ; preds = %3471, %3454
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #11
  br label %3489

3489:                                             ; preds = %3488
  br label %3490

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

3491:                                             ; No predecessors!
  br label %3492

3492:                                             ; preds = %3491
  br label %3493

3493:                                             ; preds = %3492, %3433
  br label %3494

3494:                                             ; preds = %3493
  br label %3495

3495:                                             ; preds = %3494
  call void @llvm.lifetime.start.p0(i64 2, ptr %92) #11
  store i16 0, ptr %92, align 2, !tbaa !62
  br label %3496

3496:                                             ; preds = %3495
  %3497 = load i32, ptr @test_count, align 4, !tbaa !5
  %3498 = add nsw i32 %3497, 1
  store i32 %3498, ptr @test_count, align 4, !tbaa !5
  %3499 = load ptr, ptr %89, align 8, !tbaa !9
  %3500 = call i32 @s2n_record_max_write_payload_size(ptr noundef %3499, ptr noundef %92)
  %3501 = getelementptr inbounds %struct.s2n_result, ptr %93, i32 0, i32 0
  store i32 %3500, ptr %3501, align 4
  %3502 = getelementptr inbounds %struct.s2n_result, ptr %93, i32 0, i32 0
  %3503 = load i32, ptr %3502, align 4
  %3504 = call zeroext i1 @s2n_result_is_ok(i32 %3503)
  br i1 %3504, label %3558, label %3505

3505:                                             ; preds = %3496
  br label %3506

3506:                                             ; preds = %3505
  br label %3507

3507:                                             ; preds = %3506
  call void @llvm.lifetime.start.p0(i64 4, ptr %94) #11
  %3508 = call ptr @__errno_location() #12
  %3509 = load i32, ptr %3508, align 4, !tbaa !5
  store i32 %3509, ptr %94, align 4, !tbaa !5
  %3510 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3511 = call i32 @s2n_print_stacktrace(ptr noundef %3510)
  %3512 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3513 = trunc i8 %3512 to i1
  br i1 %3513, label %3514, label %3536

3514:                                             ; preds = %3507
  %3515 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3516 = call i32 @fileno(ptr noundef %3515) #11
  %3517 = call i32 @isatty(i32 noundef %3516) #11
  %3518 = icmp ne i32 %3517, 0
  br i1 %3518, label %3519, label %3536

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

3536:                                             ; preds = %3514, %3507
  %3537 = load i32, ptr %94, align 4, !tbaa !5
  %3538 = call ptr @__errno_location() #12
  store i32 %3537, ptr %3538, align 4, !tbaa !5
  %3539 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3540 = load i32, ptr @test_count, align 4, !tbaa !5
  %3541 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3542 = load i32, ptr %3541, align 4, !tbaa !5
  %3543 = call ptr @s2n_strerror(i32 noundef %3542, ptr noundef @.str.4)
  %3544 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3545 = load i32, ptr %3544, align 4, !tbaa !5
  %3546 = call ptr @s2n_strerror_debug(i32 noundef %3545, ptr noundef @.str.4)
  %3547 = call ptr @__errno_location() #12
  %3548 = load i32, ptr %3547, align 4, !tbaa !5
  %3549 = call ptr @strerror(i32 noundef %3548) #11
  %3550 = call ptr @__errno_location() #12
  %3551 = load i32, ptr %3550, align 4, !tbaa !5
  %3552 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3539, ptr noundef @.str.5, i32 noundef %3540, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 197, ptr noundef %3543, ptr noundef %3546, ptr noundef %3549, i32 noundef %3551) #11
  br label %3553

3553:                                             ; preds = %3536, %3519
  call void @llvm.lifetime.end.p0(i64 4, ptr %94) #11
  br label %3554

3554:                                             ; preds = %3553
  br label %3555

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

3556:                                             ; No predecessors!
  br label %3557

3557:                                             ; preds = %3556
  br label %3558

3558:                                             ; preds = %3557, %3496
  br label %3559

3559:                                             ; preds = %3558
  br label %3560

3560:                                             ; preds = %3559
  br label %3561

3561:                                             ; preds = %3560
  %3562 = load i32, ptr @test_count, align 4, !tbaa !5
  %3563 = add nsw i32 %3562, 1
  store i32 %3563, ptr @test_count, align 4, !tbaa !5
  %3564 = load i16, ptr %92, align 2, !tbaa !62
  %3565 = zext i16 %3564 to i32
  %3566 = icmp eq i32 %3565, 1000
  br i1 %3566, label %3620, label %3567

3567:                                             ; preds = %3561
  br label %3568

3568:                                             ; preds = %3567
  br label %3569

3569:                                             ; preds = %3568
  call void @llvm.lifetime.start.p0(i64 4, ptr %95) #11
  %3570 = call ptr @__errno_location() #12
  %3571 = load i32, ptr %3570, align 4, !tbaa !5
  store i32 %3571, ptr %95, align 4, !tbaa !5
  %3572 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3573 = call i32 @s2n_print_stacktrace(ptr noundef %3572)
  %3574 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3575 = trunc i8 %3574 to i1
  br i1 %3575, label %3576, label %3598

3576:                                             ; preds = %3569
  %3577 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3578 = call i32 @fileno(ptr noundef %3577) #11
  %3579 = call i32 @isatty(i32 noundef %3578) #11
  %3580 = icmp ne i32 %3579, 0
  br i1 %3580, label %3581, label %3598

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

3598:                                             ; preds = %3576, %3569
  %3599 = load i32, ptr %95, align 4, !tbaa !5
  %3600 = call ptr @__errno_location() #12
  store i32 %3599, ptr %3600, align 4, !tbaa !5
  %3601 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3602 = load i32, ptr @test_count, align 4, !tbaa !5
  %3603 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3604 = load i32, ptr %3603, align 4, !tbaa !5
  %3605 = call ptr @s2n_strerror(i32 noundef %3604, ptr noundef @.str.4)
  %3606 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3607 = load i32, ptr %3606, align 4, !tbaa !5
  %3608 = call ptr @s2n_strerror_debug(i32 noundef %3607, ptr noundef @.str.4)
  %3609 = call ptr @__errno_location() #12
  %3610 = load i32, ptr %3609, align 4, !tbaa !5
  %3611 = call ptr @strerror(i32 noundef %3610) #11
  %3612 = call ptr @__errno_location() #12
  %3613 = load i32, ptr %3612, align 4, !tbaa !5
  %3614 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3601, ptr noundef @.str.5, i32 noundef %3602, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 198, ptr noundef %3605, ptr noundef %3608, ptr noundef %3611, i32 noundef %3613) #11
  br label %3615

3615:                                             ; preds = %3598, %3581
  call void @llvm.lifetime.end.p0(i64 4, ptr %95) #11
  br label %3616

3616:                                             ; preds = %3615
  br label %3617

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

3618:                                             ; No predecessors!
  br label %3619

3619:                                             ; preds = %3618
  br label %3620

3620:                                             ; preds = %3619, %3561
  br label %3621

3621:                                             ; preds = %3620
  br label %3622

3622:                                             ; preds = %3621
  call void @llvm.lifetime.end.p0(i64 2, ptr %92) #11
  %3623 = call i32 @s2n_connection_ptr_free(ptr noundef %89)
  %3624 = getelementptr inbounds %struct.s2n_result, ptr %96, i32 0, i32 0
  store i32 %3623, ptr %3624, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %89) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %97) #11
  %3625 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %3625, ptr %97, align 8, !tbaa !9
  br label %3626

3626:                                             ; preds = %3622
  %3627 = load i32, ptr @test_count, align 4, !tbaa !5
  %3628 = add nsw i32 %3627, 1
  store i32 %3628, ptr @test_count, align 4, !tbaa !5
  %3629 = load ptr, ptr %97, align 8, !tbaa !9
  %3630 = icmp eq ptr %3629, null
  br i1 %3630, label %3631, label %3684

3631:                                             ; preds = %3626
  br label %3632

3632:                                             ; preds = %3631
  br label %3633

3633:                                             ; preds = %3632
  call void @llvm.lifetime.start.p0(i64 4, ptr %98) #11
  %3634 = call ptr @__errno_location() #12
  %3635 = load i32, ptr %3634, align 4, !tbaa !5
  store i32 %3635, ptr %98, align 4, !tbaa !5
  %3636 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3637 = call i32 @s2n_print_stacktrace(ptr noundef %3636)
  %3638 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3639 = trunc i8 %3638 to i1
  br i1 %3639, label %3640, label %3662

3640:                                             ; preds = %3633
  %3641 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3642 = call i32 @fileno(ptr noundef %3641) #11
  %3643 = call i32 @isatty(i32 noundef %3642) #11
  %3644 = icmp ne i32 %3643, 0
  br i1 %3644, label %3645, label %3662

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

3662:                                             ; preds = %3640, %3633
  %3663 = load i32, ptr %98, align 4, !tbaa !5
  %3664 = call ptr @__errno_location() #12
  store i32 %3663, ptr %3664, align 4, !tbaa !5
  %3665 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3666 = load i32, ptr @test_count, align 4, !tbaa !5
  %3667 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3668 = load i32, ptr %3667, align 4, !tbaa !5
  %3669 = call ptr @s2n_strerror(i32 noundef %3668, ptr noundef @.str.4)
  %3670 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3671 = load i32, ptr %3670, align 4, !tbaa !5
  %3672 = call ptr @s2n_strerror_debug(i32 noundef %3671, ptr noundef @.str.4)
  %3673 = call ptr @__errno_location() #12
  %3674 = load i32, ptr %3673, align 4, !tbaa !5
  %3675 = call ptr @strerror(i32 noundef %3674) #11
  %3676 = call ptr @__errno_location() #12
  %3677 = load i32, ptr %3676, align 4, !tbaa !5
  %3678 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3665, ptr noundef @.str.5, i32 noundef %3666, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 204, ptr noundef %3669, ptr noundef %3672, ptr noundef %3675, i32 noundef %3677) #11
  br label %3679

3679:                                             ; preds = %3662, %3645
  call void @llvm.lifetime.end.p0(i64 4, ptr %98) #11
  br label %3680

3680:                                             ; preds = %3679
  br label %3681

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

3682:                                             ; No predecessors!
  br label %3683

3683:                                             ; preds = %3682
  br label %3684

3684:                                             ; preds = %3683, %3626
  br label %3685

3685:                                             ; preds = %3684
  br label %3686

3686:                                             ; preds = %3685
  call void @llvm.lifetime.start.p0(i64 4, ptr %99) #11
  %3687 = load ptr, ptr %97, align 8, !tbaa !9
  %3688 = getelementptr inbounds %struct.s2n_connection, ptr %3687, i32 0, i32 53
  %3689 = load i16, ptr %3688, align 8, !tbaa !63
  %3690 = zext i16 %3689 to i32
  store i32 %3690, ptr %99, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %100) #11
  %3691 = load i32, ptr %99, align 4, !tbaa !5
  %3692 = add i32 %3691, 1024
  %3693 = add i32 %3692, 5
  store i32 %3693, ptr %100, align 4, !tbaa !5
  br label %3694

3694:                                             ; preds = %3686
  %3695 = load i32, ptr @test_count, align 4, !tbaa !5
  %3696 = add nsw i32 %3695, 1
  store i32 %3696, ptr @test_count, align 4, !tbaa !5
  %3697 = load ptr, ptr %74, align 8, !tbaa !9
  %3698 = load i32, ptr %100, align 4, !tbaa !5
  %3699 = call i32 @s2n_config_set_send_buffer_size(ptr noundef %3697, i32 noundef %3698)
  %3700 = icmp eq i32 %3699, -1
  br i1 %3700, label %3701, label %3754

3701:                                             ; preds = %3694
  br label %3702

3702:                                             ; preds = %3701
  br label %3703

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

3710:                                             ; preds = %3703
  %3711 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3712 = call i32 @fileno(ptr noundef %3711) #11
  %3713 = call i32 @isatty(i32 noundef %3712) #11
  %3714 = icmp ne i32 %3713, 0
  br i1 %3714, label %3715, label %3732

3715:                                             ; preds = %3710
  %3716 = load i32, ptr %101, align 4, !tbaa !5
  %3717 = call ptr @__errno_location() #12
  store i32 %3716, ptr %3717, align 4, !tbaa !5
  %3718 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3719 = load i32, ptr @test_count, align 4, !tbaa !5
  %3720 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3721 = load i32, ptr %3720, align 4, !tbaa !5
  %3722 = call ptr @s2n_strerror(i32 noundef %3721, ptr noundef @.str.4)
  %3723 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3724 = load i32, ptr %3723, align 4, !tbaa !5
  %3725 = call ptr @s2n_strerror_debug(i32 noundef %3724, ptr noundef @.str.4)
  %3726 = call ptr @__errno_location() #12
  %3727 = load i32, ptr %3726, align 4, !tbaa !5
  %3728 = call ptr @strerror(i32 noundef %3727) #11
  %3729 = call ptr @__errno_location() #12
  %3730 = load i32, ptr %3729, align 4, !tbaa !5
  %3731 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3718, ptr noundef @.str.2, i32 noundef %3719, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 208, ptr noundef %3722, ptr noundef %3725, ptr noundef %3728, i32 noundef %3730) #11
  br label %3749

3732:                                             ; preds = %3710, %3703
  %3733 = load i32, ptr %101, align 4, !tbaa !5
  %3734 = call ptr @__errno_location() #12
  store i32 %3733, ptr %3734, align 4, !tbaa !5
  %3735 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3736 = load i32, ptr @test_count, align 4, !tbaa !5
  %3737 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3738 = load i32, ptr %3737, align 4, !tbaa !5
  %3739 = call ptr @s2n_strerror(i32 noundef %3738, ptr noundef @.str.4)
  %3740 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3741 = load i32, ptr %3740, align 4, !tbaa !5
  %3742 = call ptr @s2n_strerror_debug(i32 noundef %3741, ptr noundef @.str.4)
  %3743 = call ptr @__errno_location() #12
  %3744 = load i32, ptr %3743, align 4, !tbaa !5
  %3745 = call ptr @strerror(i32 noundef %3744) #11
  %3746 = call ptr @__errno_location() #12
  %3747 = load i32, ptr %3746, align 4, !tbaa !5
  %3748 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3735, ptr noundef @.str.5, i32 noundef %3736, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 208, ptr noundef %3739, ptr noundef %3742, ptr noundef %3745, i32 noundef %3747) #11
  br label %3749

3749:                                             ; preds = %3732, %3715
  call void @llvm.lifetime.end.p0(i64 4, ptr %101) #11
  br label %3750

3750:                                             ; preds = %3749
  br label %3751

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

3752:                                             ; No predecessors!
  br label %3753

3753:                                             ; preds = %3752
  br label %3754

3754:                                             ; preds = %3753, %3694
  br label %3755

3755:                                             ; preds = %3754
  br label %3756

3756:                                             ; preds = %3755
  br label %3757

3757:                                             ; preds = %3756
  %3758 = load i32, ptr @test_count, align 4, !tbaa !5
  %3759 = add nsw i32 %3758, 1
  store i32 %3759, ptr @test_count, align 4, !tbaa !5
  %3760 = load ptr, ptr %97, align 8, !tbaa !9
  %3761 = load ptr, ptr %74, align 8, !tbaa !9
  %3762 = call i32 @s2n_connection_set_config(ptr noundef %3760, ptr noundef %3761)
  %3763 = icmp eq i32 %3762, -1
  br i1 %3763, label %3764, label %3817

3764:                                             ; preds = %3757
  br label %3765

3765:                                             ; preds = %3764
  br label %3766

3766:                                             ; preds = %3765
  call void @llvm.lifetime.start.p0(i64 4, ptr %102) #11
  %3767 = call ptr @__errno_location() #12
  %3768 = load i32, ptr %3767, align 4, !tbaa !5
  store i32 %3768, ptr %102, align 4, !tbaa !5
  %3769 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3770 = call i32 @s2n_print_stacktrace(ptr noundef %3769)
  %3771 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3772 = trunc i8 %3771 to i1
  br i1 %3772, label %3773, label %3795

3773:                                             ; preds = %3766
  %3774 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3775 = call i32 @fileno(ptr noundef %3774) #11
  %3776 = call i32 @isatty(i32 noundef %3775) #11
  %3777 = icmp ne i32 %3776, 0
  br i1 %3777, label %3778, label %3795

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

3795:                                             ; preds = %3773, %3766
  %3796 = load i32, ptr %102, align 4, !tbaa !5
  %3797 = call ptr @__errno_location() #12
  store i32 %3796, ptr %3797, align 4, !tbaa !5
  %3798 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3799 = load i32, ptr @test_count, align 4, !tbaa !5
  %3800 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3801 = load i32, ptr %3800, align 4, !tbaa !5
  %3802 = call ptr @s2n_strerror(i32 noundef %3801, ptr noundef @.str.4)
  %3803 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3804 = load i32, ptr %3803, align 4, !tbaa !5
  %3805 = call ptr @s2n_strerror_debug(i32 noundef %3804, ptr noundef @.str.4)
  %3806 = call ptr @__errno_location() #12
  %3807 = load i32, ptr %3806, align 4, !tbaa !5
  %3808 = call ptr @strerror(i32 noundef %3807) #11
  %3809 = call ptr @__errno_location() #12
  %3810 = load i32, ptr %3809, align 4, !tbaa !5
  %3811 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3798, ptr noundef @.str.5, i32 noundef %3799, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 209, ptr noundef %3802, ptr noundef %3805, ptr noundef %3808, i32 noundef %3810) #11
  br label %3812

3812:                                             ; preds = %3795, %3778
  call void @llvm.lifetime.end.p0(i64 4, ptr %102) #11
  br label %3813

3813:                                             ; preds = %3812
  br label %3814

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

3815:                                             ; No predecessors!
  br label %3816

3816:                                             ; preds = %3815
  br label %3817

3817:                                             ; preds = %3816, %3757
  br label %3818

3818:                                             ; preds = %3817
  br label %3819

3819:                                             ; preds = %3818
  call void @llvm.lifetime.start.p0(i64 2, ptr %103) #11
  store i16 0, ptr %103, align 2, !tbaa !62
  br label %3820

3820:                                             ; preds = %3819
  %3821 = load i32, ptr @test_count, align 4, !tbaa !5
  %3822 = add nsw i32 %3821, 1
  store i32 %3822, ptr @test_count, align 4, !tbaa !5
  %3823 = load ptr, ptr %97, align 8, !tbaa !9
  %3824 = call i32 @s2n_record_max_write_payload_size(ptr noundef %3823, ptr noundef %103)
  %3825 = getelementptr inbounds %struct.s2n_result, ptr %104, i32 0, i32 0
  store i32 %3824, ptr %3825, align 4
  %3826 = getelementptr inbounds %struct.s2n_result, ptr %104, i32 0, i32 0
  %3827 = load i32, ptr %3826, align 4
  %3828 = call zeroext i1 @s2n_result_is_ok(i32 %3827)
  br i1 %3828, label %3882, label %3829

3829:                                             ; preds = %3820
  br label %3830

3830:                                             ; preds = %3829
  br label %3831

3831:                                             ; preds = %3830
  call void @llvm.lifetime.start.p0(i64 4, ptr %105) #11
  %3832 = call ptr @__errno_location() #12
  %3833 = load i32, ptr %3832, align 4, !tbaa !5
  store i32 %3833, ptr %105, align 4, !tbaa !5
  %3834 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3835 = call i32 @s2n_print_stacktrace(ptr noundef %3834)
  %3836 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3837 = trunc i8 %3836 to i1
  br i1 %3837, label %3838, label %3860

3838:                                             ; preds = %3831
  %3839 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3840 = call i32 @fileno(ptr noundef %3839) #11
  %3841 = call i32 @isatty(i32 noundef %3840) #11
  %3842 = icmp ne i32 %3841, 0
  br i1 %3842, label %3843, label %3860

3843:                                             ; preds = %3838
  %3844 = load i32, ptr %105, align 4, !tbaa !5
  %3845 = call ptr @__errno_location() #12
  store i32 %3844, ptr %3845, align 4, !tbaa !5
  %3846 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3847 = load i32, ptr @test_count, align 4, !tbaa !5
  %3848 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3849 = load i32, ptr %3848, align 4, !tbaa !5
  %3850 = call ptr @s2n_strerror(i32 noundef %3849, ptr noundef @.str.4)
  %3851 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3852 = load i32, ptr %3851, align 4, !tbaa !5
  %3853 = call ptr @s2n_strerror_debug(i32 noundef %3852, ptr noundef @.str.4)
  %3854 = call ptr @__errno_location() #12
  %3855 = load i32, ptr %3854, align 4, !tbaa !5
  %3856 = call ptr @strerror(i32 noundef %3855) #11
  %3857 = call ptr @__errno_location() #12
  %3858 = load i32, ptr %3857, align 4, !tbaa !5
  %3859 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3846, ptr noundef @.str.2, i32 noundef %3847, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 212, ptr noundef %3850, ptr noundef %3853, ptr noundef %3856, i32 noundef %3858) #11
  br label %3877

3860:                                             ; preds = %3838, %3831
  %3861 = load i32, ptr %105, align 4, !tbaa !5
  %3862 = call ptr @__errno_location() #12
  store i32 %3861, ptr %3862, align 4, !tbaa !5
  %3863 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3864 = load i32, ptr @test_count, align 4, !tbaa !5
  %3865 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3866 = load i32, ptr %3865, align 4, !tbaa !5
  %3867 = call ptr @s2n_strerror(i32 noundef %3866, ptr noundef @.str.4)
  %3868 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3869 = load i32, ptr %3868, align 4, !tbaa !5
  %3870 = call ptr @s2n_strerror_debug(i32 noundef %3869, ptr noundef @.str.4)
  %3871 = call ptr @__errno_location() #12
  %3872 = load i32, ptr %3871, align 4, !tbaa !5
  %3873 = call ptr @strerror(i32 noundef %3872) #11
  %3874 = call ptr @__errno_location() #12
  %3875 = load i32, ptr %3874, align 4, !tbaa !5
  %3876 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3863, ptr noundef @.str.5, i32 noundef %3864, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 212, ptr noundef %3867, ptr noundef %3870, ptr noundef %3873, i32 noundef %3875) #11
  br label %3877

3877:                                             ; preds = %3860, %3843
  call void @llvm.lifetime.end.p0(i64 4, ptr %105) #11
  br label %3878

3878:                                             ; preds = %3877
  br label %3879

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

3880:                                             ; No predecessors!
  br label %3881

3881:                                             ; preds = %3880
  br label %3882

3882:                                             ; preds = %3881, %3820
  br label %3883

3883:                                             ; preds = %3882
  br label %3884

3884:                                             ; preds = %3883
  br label %3885

3885:                                             ; preds = %3884
  %3886 = load i32, ptr @test_count, align 4, !tbaa !5
  %3887 = add nsw i32 %3886, 1
  store i32 %3887, ptr @test_count, align 4, !tbaa !5
  %3888 = load i16, ptr %103, align 2, !tbaa !62
  %3889 = zext i16 %3888 to i32
  %3890 = load i32, ptr %99, align 4, !tbaa !5
  %3891 = icmp eq i32 %3889, %3890
  br i1 %3891, label %3945, label %3892

3892:                                             ; preds = %3885
  br label %3893

3893:                                             ; preds = %3892
  br label %3894

3894:                                             ; preds = %3893
  call void @llvm.lifetime.start.p0(i64 4, ptr %106) #11
  %3895 = call ptr @__errno_location() #12
  %3896 = load i32, ptr %3895, align 4, !tbaa !5
  store i32 %3896, ptr %106, align 4, !tbaa !5
  %3897 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3898 = call i32 @s2n_print_stacktrace(ptr noundef %3897)
  %3899 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3900 = trunc i8 %3899 to i1
  br i1 %3900, label %3901, label %3923

3901:                                             ; preds = %3894
  %3902 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3903 = call i32 @fileno(ptr noundef %3902) #11
  %3904 = call i32 @isatty(i32 noundef %3903) #11
  %3905 = icmp ne i32 %3904, 0
  br i1 %3905, label %3906, label %3923

3906:                                             ; preds = %3901
  %3907 = load i32, ptr %106, align 4, !tbaa !5
  %3908 = call ptr @__errno_location() #12
  store i32 %3907, ptr %3908, align 4, !tbaa !5
  %3909 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3910 = load i32, ptr @test_count, align 4, !tbaa !5
  %3911 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3912 = load i32, ptr %3911, align 4, !tbaa !5
  %3913 = call ptr @s2n_strerror(i32 noundef %3912, ptr noundef @.str.4)
  %3914 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3915 = load i32, ptr %3914, align 4, !tbaa !5
  %3916 = call ptr @s2n_strerror_debug(i32 noundef %3915, ptr noundef @.str.4)
  %3917 = call ptr @__errno_location() #12
  %3918 = load i32, ptr %3917, align 4, !tbaa !5
  %3919 = call ptr @strerror(i32 noundef %3918) #11
  %3920 = call ptr @__errno_location() #12
  %3921 = load i32, ptr %3920, align 4, !tbaa !5
  %3922 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3909, ptr noundef @.str.2, i32 noundef %3910, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 213, ptr noundef %3913, ptr noundef %3916, ptr noundef %3919, i32 noundef %3921) #11
  br label %3940

3923:                                             ; preds = %3901, %3894
  %3924 = load i32, ptr %106, align 4, !tbaa !5
  %3925 = call ptr @__errno_location() #12
  store i32 %3924, ptr %3925, align 4, !tbaa !5
  %3926 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3927 = load i32, ptr @test_count, align 4, !tbaa !5
  %3928 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3929 = load i32, ptr %3928, align 4, !tbaa !5
  %3930 = call ptr @s2n_strerror(i32 noundef %3929, ptr noundef @.str.4)
  %3931 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3932 = load i32, ptr %3931, align 4, !tbaa !5
  %3933 = call ptr @s2n_strerror_debug(i32 noundef %3932, ptr noundef @.str.4)
  %3934 = call ptr @__errno_location() #12
  %3935 = load i32, ptr %3934, align 4, !tbaa !5
  %3936 = call ptr @strerror(i32 noundef %3935) #11
  %3937 = call ptr @__errno_location() #12
  %3938 = load i32, ptr %3937, align 4, !tbaa !5
  %3939 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3926, ptr noundef @.str.5, i32 noundef %3927, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 213, ptr noundef %3930, ptr noundef %3933, ptr noundef %3936, i32 noundef %3938) #11
  br label %3940

3940:                                             ; preds = %3923, %3906
  call void @llvm.lifetime.end.p0(i64 4, ptr %106) #11
  br label %3941

3941:                                             ; preds = %3940
  br label %3942

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

3943:                                             ; No predecessors!
  br label %3944

3944:                                             ; preds = %3943
  br label %3945

3945:                                             ; preds = %3944, %3885
  br label %3946

3946:                                             ; preds = %3945
  br label %3947

3947:                                             ; preds = %3946
  call void @llvm.lifetime.end.p0(i64 2, ptr %103) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %100) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %99) #11
  %3948 = call i32 @s2n_connection_ptr_free(ptr noundef %97)
  %3949 = getelementptr inbounds %struct.s2n_result, ptr %107, i32 0, i32 0
  store i32 %3948, ptr %3949, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %97) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %108) #11
  %3950 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %3950, ptr %108, align 8, !tbaa !9
  br label %3951

3951:                                             ; preds = %3947
  %3952 = load i32, ptr @test_count, align 4, !tbaa !5
  %3953 = add nsw i32 %3952, 1
  store i32 %3953, ptr @test_count, align 4, !tbaa !5
  %3954 = load ptr, ptr %108, align 8, !tbaa !9
  %3955 = icmp eq ptr %3954, null
  br i1 %3955, label %3956, label %4009

3956:                                             ; preds = %3951
  br label %3957

3957:                                             ; preds = %3956
  br label %3958

3958:                                             ; preds = %3957
  call void @llvm.lifetime.start.p0(i64 4, ptr %109) #11
  %3959 = call ptr @__errno_location() #12
  %3960 = load i32, ptr %3959, align 4, !tbaa !5
  store i32 %3960, ptr %109, align 4, !tbaa !5
  %3961 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3962 = call i32 @s2n_print_stacktrace(ptr noundef %3961)
  %3963 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3964 = trunc i8 %3963 to i1
  br i1 %3964, label %3965, label %3987

3965:                                             ; preds = %3958
  %3966 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3967 = call i32 @fileno(ptr noundef %3966) #11
  %3968 = call i32 @isatty(i32 noundef %3967) #11
  %3969 = icmp ne i32 %3968, 0
  br i1 %3969, label %3970, label %3987

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

3987:                                             ; preds = %3965, %3958
  %3988 = load i32, ptr %109, align 4, !tbaa !5
  %3989 = call ptr @__errno_location() #12
  store i32 %3988, ptr %3989, align 4, !tbaa !5
  %3990 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3991 = load i32, ptr @test_count, align 4, !tbaa !5
  %3992 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3993 = load i32, ptr %3992, align 4, !tbaa !5
  %3994 = call ptr @s2n_strerror(i32 noundef %3993, ptr noundef @.str.4)
  %3995 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3996 = load i32, ptr %3995, align 4, !tbaa !5
  %3997 = call ptr @s2n_strerror_debug(i32 noundef %3996, ptr noundef @.str.4)
  %3998 = call ptr @__errno_location() #12
  %3999 = load i32, ptr %3998, align 4, !tbaa !5
  %4000 = call ptr @strerror(i32 noundef %3999) #11
  %4001 = call ptr @__errno_location() #12
  %4002 = load i32, ptr %4001, align 4, !tbaa !5
  %4003 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3990, ptr noundef @.str.5, i32 noundef %3991, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 219, ptr noundef %3994, ptr noundef %3997, ptr noundef %4000, i32 noundef %4002) #11
  br label %4004

4004:                                             ; preds = %3987, %3970
  call void @llvm.lifetime.end.p0(i64 4, ptr %109) #11
  br label %4005

4005:                                             ; preds = %4004
  br label %4006

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

4007:                                             ; No predecessors!
  br label %4008

4008:                                             ; preds = %4007
  br label %4009

4009:                                             ; preds = %4008, %3951
  br label %4010

4010:                                             ; preds = %4009
  br label %4011

4011:                                             ; preds = %4010
  call void @llvm.lifetime.start.p0(i64 4, ptr %110) #11
  %4012 = load ptr, ptr %108, align 8, !tbaa !9
  %4013 = getelementptr inbounds %struct.s2n_connection, ptr %4012, i32 0, i32 53
  %4014 = load i16, ptr %4013, align 8, !tbaa !63
  %4015 = zext i16 %4014 to i32
  %4016 = add nsw i32 %4015, 10
  store i32 %4016, ptr %110, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %111) #11
  %4017 = load i32, ptr %110, align 4, !tbaa !5
  %4018 = add i32 %4017, 1024
  %4019 = add i32 %4018, 5
  store i32 %4019, ptr %111, align 4, !tbaa !5
  br label %4020

4020:                                             ; preds = %4011
  %4021 = load i32, ptr @test_count, align 4, !tbaa !5
  %4022 = add nsw i32 %4021, 1
  store i32 %4022, ptr @test_count, align 4, !tbaa !5
  %4023 = load ptr, ptr %74, align 8, !tbaa !9
  %4024 = load i32, ptr %111, align 4, !tbaa !5
  %4025 = call i32 @s2n_config_set_send_buffer_size(ptr noundef %4023, i32 noundef %4024)
  %4026 = icmp eq i32 %4025, -1
  br i1 %4026, label %4027, label %4080

4027:                                             ; preds = %4020
  br label %4028

4028:                                             ; preds = %4027
  br label %4029

4029:                                             ; preds = %4028
  call void @llvm.lifetime.start.p0(i64 4, ptr %112) #11
  %4030 = call ptr @__errno_location() #12
  %4031 = load i32, ptr %4030, align 4, !tbaa !5
  store i32 %4031, ptr %112, align 4, !tbaa !5
  %4032 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4033 = call i32 @s2n_print_stacktrace(ptr noundef %4032)
  %4034 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4035 = trunc i8 %4034 to i1
  br i1 %4035, label %4036, label %4058

4036:                                             ; preds = %4029
  %4037 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4038 = call i32 @fileno(ptr noundef %4037) #11
  %4039 = call i32 @isatty(i32 noundef %4038) #11
  %4040 = icmp ne i32 %4039, 0
  br i1 %4040, label %4041, label %4058

4041:                                             ; preds = %4036
  %4042 = load i32, ptr %112, align 4, !tbaa !5
  %4043 = call ptr @__errno_location() #12
  store i32 %4042, ptr %4043, align 4, !tbaa !5
  %4044 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4045 = load i32, ptr @test_count, align 4, !tbaa !5
  %4046 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4047 = load i32, ptr %4046, align 4, !tbaa !5
  %4048 = call ptr @s2n_strerror(i32 noundef %4047, ptr noundef @.str.4)
  %4049 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4050 = load i32, ptr %4049, align 4, !tbaa !5
  %4051 = call ptr @s2n_strerror_debug(i32 noundef %4050, ptr noundef @.str.4)
  %4052 = call ptr @__errno_location() #12
  %4053 = load i32, ptr %4052, align 4, !tbaa !5
  %4054 = call ptr @strerror(i32 noundef %4053) #11
  %4055 = call ptr @__errno_location() #12
  %4056 = load i32, ptr %4055, align 4, !tbaa !5
  %4057 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4044, ptr noundef @.str.2, i32 noundef %4045, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 223, ptr noundef %4048, ptr noundef %4051, ptr noundef %4054, i32 noundef %4056) #11
  br label %4075

4058:                                             ; preds = %4036, %4029
  %4059 = load i32, ptr %112, align 4, !tbaa !5
  %4060 = call ptr @__errno_location() #12
  store i32 %4059, ptr %4060, align 4, !tbaa !5
  %4061 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4062 = load i32, ptr @test_count, align 4, !tbaa !5
  %4063 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4064 = load i32, ptr %4063, align 4, !tbaa !5
  %4065 = call ptr @s2n_strerror(i32 noundef %4064, ptr noundef @.str.4)
  %4066 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4067 = load i32, ptr %4066, align 4, !tbaa !5
  %4068 = call ptr @s2n_strerror_debug(i32 noundef %4067, ptr noundef @.str.4)
  %4069 = call ptr @__errno_location() #12
  %4070 = load i32, ptr %4069, align 4, !tbaa !5
  %4071 = call ptr @strerror(i32 noundef %4070) #11
  %4072 = call ptr @__errno_location() #12
  %4073 = load i32, ptr %4072, align 4, !tbaa !5
  %4074 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4061, ptr noundef @.str.5, i32 noundef %4062, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 223, ptr noundef %4065, ptr noundef %4068, ptr noundef %4071, i32 noundef %4073) #11
  br label %4075

4075:                                             ; preds = %4058, %4041
  call void @llvm.lifetime.end.p0(i64 4, ptr %112) #11
  br label %4076

4076:                                             ; preds = %4075
  br label %4077

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

4078:                                             ; No predecessors!
  br label %4079

4079:                                             ; preds = %4078
  br label %4080

4080:                                             ; preds = %4079, %4020
  br label %4081

4081:                                             ; preds = %4080
  br label %4082

4082:                                             ; preds = %4081
  br label %4083

4083:                                             ; preds = %4082
  %4084 = load i32, ptr @test_count, align 4, !tbaa !5
  %4085 = add nsw i32 %4084, 1
  store i32 %4085, ptr @test_count, align 4, !tbaa !5
  %4086 = load ptr, ptr %108, align 8, !tbaa !9
  %4087 = load ptr, ptr %74, align 8, !tbaa !9
  %4088 = call i32 @s2n_connection_set_config(ptr noundef %4086, ptr noundef %4087)
  %4089 = icmp eq i32 %4088, -1
  br i1 %4089, label %4090, label %4143

4090:                                             ; preds = %4083
  br label %4091

4091:                                             ; preds = %4090
  br label %4092

4092:                                             ; preds = %4091
  call void @llvm.lifetime.start.p0(i64 4, ptr %113) #11
  %4093 = call ptr @__errno_location() #12
  %4094 = load i32, ptr %4093, align 4, !tbaa !5
  store i32 %4094, ptr %113, align 4, !tbaa !5
  %4095 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4096 = call i32 @s2n_print_stacktrace(ptr noundef %4095)
  %4097 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4098 = trunc i8 %4097 to i1
  br i1 %4098, label %4099, label %4121

4099:                                             ; preds = %4092
  %4100 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4101 = call i32 @fileno(ptr noundef %4100) #11
  %4102 = call i32 @isatty(i32 noundef %4101) #11
  %4103 = icmp ne i32 %4102, 0
  br i1 %4103, label %4104, label %4121

4104:                                             ; preds = %4099
  %4105 = load i32, ptr %113, align 4, !tbaa !5
  %4106 = call ptr @__errno_location() #12
  store i32 %4105, ptr %4106, align 4, !tbaa !5
  %4107 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4108 = load i32, ptr @test_count, align 4, !tbaa !5
  %4109 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4110 = load i32, ptr %4109, align 4, !tbaa !5
  %4111 = call ptr @s2n_strerror(i32 noundef %4110, ptr noundef @.str.4)
  %4112 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4113 = load i32, ptr %4112, align 4, !tbaa !5
  %4114 = call ptr @s2n_strerror_debug(i32 noundef %4113, ptr noundef @.str.4)
  %4115 = call ptr @__errno_location() #12
  %4116 = load i32, ptr %4115, align 4, !tbaa !5
  %4117 = call ptr @strerror(i32 noundef %4116) #11
  %4118 = call ptr @__errno_location() #12
  %4119 = load i32, ptr %4118, align 4, !tbaa !5
  %4120 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4107, ptr noundef @.str.2, i32 noundef %4108, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 224, ptr noundef %4111, ptr noundef %4114, ptr noundef %4117, i32 noundef %4119) #11
  br label %4138

4121:                                             ; preds = %4099, %4092
  %4122 = load i32, ptr %113, align 4, !tbaa !5
  %4123 = call ptr @__errno_location() #12
  store i32 %4122, ptr %4123, align 4, !tbaa !5
  %4124 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4125 = load i32, ptr @test_count, align 4, !tbaa !5
  %4126 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4127 = load i32, ptr %4126, align 4, !tbaa !5
  %4128 = call ptr @s2n_strerror(i32 noundef %4127, ptr noundef @.str.4)
  %4129 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4130 = load i32, ptr %4129, align 4, !tbaa !5
  %4131 = call ptr @s2n_strerror_debug(i32 noundef %4130, ptr noundef @.str.4)
  %4132 = call ptr @__errno_location() #12
  %4133 = load i32, ptr %4132, align 4, !tbaa !5
  %4134 = call ptr @strerror(i32 noundef %4133) #11
  %4135 = call ptr @__errno_location() #12
  %4136 = load i32, ptr %4135, align 4, !tbaa !5
  %4137 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4124, ptr noundef @.str.5, i32 noundef %4125, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 224, ptr noundef %4128, ptr noundef %4131, ptr noundef %4134, i32 noundef %4136) #11
  br label %4138

4138:                                             ; preds = %4121, %4104
  call void @llvm.lifetime.end.p0(i64 4, ptr %113) #11
  br label %4139

4139:                                             ; preds = %4138
  br label %4140

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

4141:                                             ; No predecessors!
  br label %4142

4142:                                             ; preds = %4141
  br label %4143

4143:                                             ; preds = %4142, %4083
  br label %4144

4144:                                             ; preds = %4143
  br label %4145

4145:                                             ; preds = %4144
  call void @llvm.lifetime.start.p0(i64 2, ptr %114) #11
  store i16 0, ptr %114, align 2, !tbaa !62
  br label %4146

4146:                                             ; preds = %4145
  %4147 = load i32, ptr @test_count, align 4, !tbaa !5
  %4148 = add nsw i32 %4147, 1
  store i32 %4148, ptr @test_count, align 4, !tbaa !5
  %4149 = load ptr, ptr %108, align 8, !tbaa !9
  %4150 = call i32 @s2n_record_max_write_payload_size(ptr noundef %4149, ptr noundef %114)
  %4151 = getelementptr inbounds %struct.s2n_result, ptr %115, i32 0, i32 0
  store i32 %4150, ptr %4151, align 4
  %4152 = getelementptr inbounds %struct.s2n_result, ptr %115, i32 0, i32 0
  %4153 = load i32, ptr %4152, align 4
  %4154 = call zeroext i1 @s2n_result_is_ok(i32 %4153)
  br i1 %4154, label %4208, label %4155

4155:                                             ; preds = %4146
  br label %4156

4156:                                             ; preds = %4155
  br label %4157

4157:                                             ; preds = %4156
  call void @llvm.lifetime.start.p0(i64 4, ptr %116) #11
  %4158 = call ptr @__errno_location() #12
  %4159 = load i32, ptr %4158, align 4, !tbaa !5
  store i32 %4159, ptr %116, align 4, !tbaa !5
  %4160 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4161 = call i32 @s2n_print_stacktrace(ptr noundef %4160)
  %4162 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4163 = trunc i8 %4162 to i1
  br i1 %4163, label %4164, label %4186

4164:                                             ; preds = %4157
  %4165 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4166 = call i32 @fileno(ptr noundef %4165) #11
  %4167 = call i32 @isatty(i32 noundef %4166) #11
  %4168 = icmp ne i32 %4167, 0
  br i1 %4168, label %4169, label %4186

4169:                                             ; preds = %4164
  %4170 = load i32, ptr %116, align 4, !tbaa !5
  %4171 = call ptr @__errno_location() #12
  store i32 %4170, ptr %4171, align 4, !tbaa !5
  %4172 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4173 = load i32, ptr @test_count, align 4, !tbaa !5
  %4174 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4175 = load i32, ptr %4174, align 4, !tbaa !5
  %4176 = call ptr @s2n_strerror(i32 noundef %4175, ptr noundef @.str.4)
  %4177 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4178 = load i32, ptr %4177, align 4, !tbaa !5
  %4179 = call ptr @s2n_strerror_debug(i32 noundef %4178, ptr noundef @.str.4)
  %4180 = call ptr @__errno_location() #12
  %4181 = load i32, ptr %4180, align 4, !tbaa !5
  %4182 = call ptr @strerror(i32 noundef %4181) #11
  %4183 = call ptr @__errno_location() #12
  %4184 = load i32, ptr %4183, align 4, !tbaa !5
  %4185 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4172, ptr noundef @.str.2, i32 noundef %4173, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 227, ptr noundef %4176, ptr noundef %4179, ptr noundef %4182, i32 noundef %4184) #11
  br label %4203

4186:                                             ; preds = %4164, %4157
  %4187 = load i32, ptr %116, align 4, !tbaa !5
  %4188 = call ptr @__errno_location() #12
  store i32 %4187, ptr %4188, align 4, !tbaa !5
  %4189 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4190 = load i32, ptr @test_count, align 4, !tbaa !5
  %4191 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4192 = load i32, ptr %4191, align 4, !tbaa !5
  %4193 = call ptr @s2n_strerror(i32 noundef %4192, ptr noundef @.str.4)
  %4194 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4195 = load i32, ptr %4194, align 4, !tbaa !5
  %4196 = call ptr @s2n_strerror_debug(i32 noundef %4195, ptr noundef @.str.4)
  %4197 = call ptr @__errno_location() #12
  %4198 = load i32, ptr %4197, align 4, !tbaa !5
  %4199 = call ptr @strerror(i32 noundef %4198) #11
  %4200 = call ptr @__errno_location() #12
  %4201 = load i32, ptr %4200, align 4, !tbaa !5
  %4202 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4189, ptr noundef @.str.5, i32 noundef %4190, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 227, ptr noundef %4193, ptr noundef %4196, ptr noundef %4199, i32 noundef %4201) #11
  br label %4203

4203:                                             ; preds = %4186, %4169
  call void @llvm.lifetime.end.p0(i64 4, ptr %116) #11
  br label %4204

4204:                                             ; preds = %4203
  br label %4205

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

4206:                                             ; No predecessors!
  br label %4207

4207:                                             ; preds = %4206
  br label %4208

4208:                                             ; preds = %4207, %4146
  br label %4209

4209:                                             ; preds = %4208
  br label %4210

4210:                                             ; preds = %4209
  br label %4211

4211:                                             ; preds = %4210
  %4212 = load i32, ptr @test_count, align 4, !tbaa !5
  %4213 = add nsw i32 %4212, 1
  store i32 %4213, ptr @test_count, align 4, !tbaa !5
  %4214 = load i16, ptr %114, align 2, !tbaa !62
  %4215 = zext i16 %4214 to i32
  %4216 = load ptr, ptr %108, align 8, !tbaa !9
  %4217 = getelementptr inbounds %struct.s2n_connection, ptr %4216, i32 0, i32 53
  %4218 = load i16, ptr %4217, align 8, !tbaa !63
  %4219 = zext i16 %4218 to i32
  %4220 = icmp eq i32 %4215, %4219
  br i1 %4220, label %4274, label %4221

4221:                                             ; preds = %4211
  br label %4222

4222:                                             ; preds = %4221
  br label %4223

4223:                                             ; preds = %4222
  call void @llvm.lifetime.start.p0(i64 4, ptr %117) #11
  %4224 = call ptr @__errno_location() #12
  %4225 = load i32, ptr %4224, align 4, !tbaa !5
  store i32 %4225, ptr %117, align 4, !tbaa !5
  %4226 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4227 = call i32 @s2n_print_stacktrace(ptr noundef %4226)
  %4228 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4229 = trunc i8 %4228 to i1
  br i1 %4229, label %4230, label %4252

4230:                                             ; preds = %4223
  %4231 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4232 = call i32 @fileno(ptr noundef %4231) #11
  %4233 = call i32 @isatty(i32 noundef %4232) #11
  %4234 = icmp ne i32 %4233, 0
  br i1 %4234, label %4235, label %4252

4235:                                             ; preds = %4230
  %4236 = load i32, ptr %117, align 4, !tbaa !5
  %4237 = call ptr @__errno_location() #12
  store i32 %4236, ptr %4237, align 4, !tbaa !5
  %4238 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4239 = load i32, ptr @test_count, align 4, !tbaa !5
  %4240 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4241 = load i32, ptr %4240, align 4, !tbaa !5
  %4242 = call ptr @s2n_strerror(i32 noundef %4241, ptr noundef @.str.4)
  %4243 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4244 = load i32, ptr %4243, align 4, !tbaa !5
  %4245 = call ptr @s2n_strerror_debug(i32 noundef %4244, ptr noundef @.str.4)
  %4246 = call ptr @__errno_location() #12
  %4247 = load i32, ptr %4246, align 4, !tbaa !5
  %4248 = call ptr @strerror(i32 noundef %4247) #11
  %4249 = call ptr @__errno_location() #12
  %4250 = load i32, ptr %4249, align 4, !tbaa !5
  %4251 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4238, ptr noundef @.str.2, i32 noundef %4239, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 228, ptr noundef %4242, ptr noundef %4245, ptr noundef %4248, i32 noundef %4250) #11
  br label %4269

4252:                                             ; preds = %4230, %4223
  %4253 = load i32, ptr %117, align 4, !tbaa !5
  %4254 = call ptr @__errno_location() #12
  store i32 %4253, ptr %4254, align 4, !tbaa !5
  %4255 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4256 = load i32, ptr @test_count, align 4, !tbaa !5
  %4257 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4258 = load i32, ptr %4257, align 4, !tbaa !5
  %4259 = call ptr @s2n_strerror(i32 noundef %4258, ptr noundef @.str.4)
  %4260 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4261 = load i32, ptr %4260, align 4, !tbaa !5
  %4262 = call ptr @s2n_strerror_debug(i32 noundef %4261, ptr noundef @.str.4)
  %4263 = call ptr @__errno_location() #12
  %4264 = load i32, ptr %4263, align 4, !tbaa !5
  %4265 = call ptr @strerror(i32 noundef %4264) #11
  %4266 = call ptr @__errno_location() #12
  %4267 = load i32, ptr %4266, align 4, !tbaa !5
  %4268 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4255, ptr noundef @.str.5, i32 noundef %4256, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 228, ptr noundef %4259, ptr noundef %4262, ptr noundef %4265, i32 noundef %4267) #11
  br label %4269

4269:                                             ; preds = %4252, %4235
  call void @llvm.lifetime.end.p0(i64 4, ptr %117) #11
  br label %4270

4270:                                             ; preds = %4269
  br label %4271

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

4272:                                             ; No predecessors!
  br label %4273

4273:                                             ; preds = %4272
  br label %4274

4274:                                             ; preds = %4273, %4211
  br label %4275

4275:                                             ; preds = %4274
  br label %4276

4276:                                             ; preds = %4275
  call void @llvm.lifetime.end.p0(i64 2, ptr %114) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %111) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %110) #11
  %4277 = call i32 @s2n_connection_ptr_free(ptr noundef %108)
  %4278 = getelementptr inbounds %struct.s2n_result, ptr %118, i32 0, i32 0
  store i32 %4277, ptr %4278, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %108) #11
  %4279 = call i32 @s2n_config_ptr_free(ptr noundef %74)
  %4280 = getelementptr inbounds %struct.s2n_result, ptr %119, i32 0, i32 0
  store i32 %4279, ptr %4280, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %120) #11
  store ptr null, ptr %120, align 8, !tbaa !9
  br label %4281

4281:                                             ; preds = %4276
  %4282 = load i32, ptr @test_count, align 4, !tbaa !5
  %4283 = add nsw i32 %4282, 1
  store i32 %4283, ptr @test_count, align 4, !tbaa !5
  %4284 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %4284, ptr %120, align 8, !tbaa !9
  %4285 = icmp eq ptr %4284, null
  br i1 %4285, label %4286, label %4339

4286:                                             ; preds = %4281
  br label %4287

4287:                                             ; preds = %4286
  br label %4288

4288:                                             ; preds = %4287
  call void @llvm.lifetime.start.p0(i64 4, ptr %121) #11
  %4289 = call ptr @__errno_location() #12
  %4290 = load i32, ptr %4289, align 4, !tbaa !5
  store i32 %4290, ptr %121, align 4, !tbaa !5
  %4291 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4292 = call i32 @s2n_print_stacktrace(ptr noundef %4291)
  %4293 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4294 = trunc i8 %4293 to i1
  br i1 %4294, label %4295, label %4317

4295:                                             ; preds = %4288
  %4296 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4297 = call i32 @fileno(ptr noundef %4296) #11
  %4298 = call i32 @isatty(i32 noundef %4297) #11
  %4299 = icmp ne i32 %4298, 0
  br i1 %4299, label %4300, label %4317

4300:                                             ; preds = %4295
  %4301 = load i32, ptr %121, align 4, !tbaa !5
  %4302 = call ptr @__errno_location() #12
  store i32 %4301, ptr %4302, align 4, !tbaa !5
  %4303 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4304 = load i32, ptr @test_count, align 4, !tbaa !5
  %4305 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4306 = load i32, ptr %4305, align 4, !tbaa !5
  %4307 = call ptr @s2n_strerror(i32 noundef %4306, ptr noundef @.str.4)
  %4308 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4309 = load i32, ptr %4308, align 4, !tbaa !5
  %4310 = call ptr @s2n_strerror_debug(i32 noundef %4309, ptr noundef @.str.4)
  %4311 = call ptr @__errno_location() #12
  %4312 = load i32, ptr %4311, align 4, !tbaa !5
  %4313 = call ptr @strerror(i32 noundef %4312) #11
  %4314 = call ptr @__errno_location() #12
  %4315 = load i32, ptr %4314, align 4, !tbaa !5
  %4316 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4303, ptr noundef @.str.2, i32 noundef %4304, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 235, ptr noundef %4307, ptr noundef %4310, ptr noundef %4313, i32 noundef %4315) #11
  br label %4334

4317:                                             ; preds = %4295, %4288
  %4318 = load i32, ptr %121, align 4, !tbaa !5
  %4319 = call ptr @__errno_location() #12
  store i32 %4318, ptr %4319, align 4, !tbaa !5
  %4320 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4321 = load i32, ptr @test_count, align 4, !tbaa !5
  %4322 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4323 = load i32, ptr %4322, align 4, !tbaa !5
  %4324 = call ptr @s2n_strerror(i32 noundef %4323, ptr noundef @.str.4)
  %4325 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4326 = load i32, ptr %4325, align 4, !tbaa !5
  %4327 = call ptr @s2n_strerror_debug(i32 noundef %4326, ptr noundef @.str.4)
  %4328 = call ptr @__errno_location() #12
  %4329 = load i32, ptr %4328, align 4, !tbaa !5
  %4330 = call ptr @strerror(i32 noundef %4329) #11
  %4331 = call ptr @__errno_location() #12
  %4332 = load i32, ptr %4331, align 4, !tbaa !5
  %4333 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4320, ptr noundef @.str.5, i32 noundef %4321, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 235, ptr noundef %4324, ptr noundef %4327, ptr noundef %4330, i32 noundef %4332) #11
  br label %4334

4334:                                             ; preds = %4317, %4300
  call void @llvm.lifetime.end.p0(i64 4, ptr %121) #11
  br label %4335

4335:                                             ; preds = %4334
  br label %4336

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

4337:                                             ; No predecessors!
  br label %4338

4338:                                             ; preds = %4337
  br label %4339

4339:                                             ; preds = %4338, %4281
  br label %4340

4340:                                             ; preds = %4339
  br label %4341

4341:                                             ; preds = %4340
  call void @llvm.lifetime.start.p0(i64 2, ptr %122) #11
  store i16 0, ptr %122, align 2, !tbaa !62
  call void @llvm.lifetime.start.p0(i64 4, ptr %123) #11
  store i32 1415, ptr %123, align 4, !tbaa !5
  br label %4342

4342:                                             ; preds = %4341
  %4343 = load i32, ptr @test_count, align 4, !tbaa !5
  %4344 = add nsw i32 %4343, 1
  store i32 %4344, ptr @test_count, align 4, !tbaa !5
  %4345 = load ptr, ptr %120, align 8, !tbaa !9
  %4346 = call i32 @s2n_record_min_write_payload_size(ptr noundef %4345, ptr noundef %122)
  %4347 = getelementptr inbounds %struct.s2n_result, ptr %124, i32 0, i32 0
  store i32 %4346, ptr %4347, align 4
  %4348 = getelementptr inbounds %struct.s2n_result, ptr %124, i32 0, i32 0
  %4349 = load i32, ptr %4348, align 4
  %4350 = call zeroext i1 @s2n_result_is_ok(i32 %4349)
  br i1 %4350, label %4404, label %4351

4351:                                             ; preds = %4342
  br label %4352

4352:                                             ; preds = %4351
  br label %4353

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

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

4365:                                             ; preds = %4360
  %4366 = load i32, ptr %125, align 4, !tbaa !5
  %4367 = call ptr @__errno_location() #12
  store i32 %4366, ptr %4367, align 4, !tbaa !5
  %4368 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4369 = load i32, ptr @test_count, align 4, !tbaa !5
  %4370 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4371 = load i32, ptr %4370, align 4, !tbaa !5
  %4372 = call ptr @s2n_strerror(i32 noundef %4371, ptr noundef @.str.4)
  %4373 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4374 = load i32, ptr %4373, align 4, !tbaa !5
  %4375 = call ptr @s2n_strerror_debug(i32 noundef %4374, ptr noundef @.str.4)
  %4376 = call ptr @__errno_location() #12
  %4377 = load i32, ptr %4376, align 4, !tbaa !5
  %4378 = call ptr @strerror(i32 noundef %4377) #11
  %4379 = call ptr @__errno_location() #12
  %4380 = load i32, ptr %4379, align 4, !tbaa !5
  %4381 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4368, ptr noundef @.str.2, i32 noundef %4369, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 240, ptr noundef %4372, ptr noundef %4375, ptr noundef %4378, i32 noundef %4380) #11
  br label %4399

4382:                                             ; preds = %4360, %4353
  %4383 = load i32, ptr %125, align 4, !tbaa !5
  %4384 = call ptr @__errno_location() #12
  store i32 %4383, ptr %4384, align 4, !tbaa !5
  %4385 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4386 = load i32, ptr @test_count, align 4, !tbaa !5
  %4387 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4388 = load i32, ptr %4387, align 4, !tbaa !5
  %4389 = call ptr @s2n_strerror(i32 noundef %4388, ptr noundef @.str.4)
  %4390 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4391 = load i32, ptr %4390, align 4, !tbaa !5
  %4392 = call ptr @s2n_strerror_debug(i32 noundef %4391, ptr noundef @.str.4)
  %4393 = call ptr @__errno_location() #12
  %4394 = load i32, ptr %4393, align 4, !tbaa !5
  %4395 = call ptr @strerror(i32 noundef %4394) #11
  %4396 = call ptr @__errno_location() #12
  %4397 = load i32, ptr %4396, align 4, !tbaa !5
  %4398 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4385, ptr noundef @.str.5, i32 noundef %4386, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 240, ptr noundef %4389, ptr noundef %4392, ptr noundef %4395, i32 noundef %4397) #11
  br label %4399

4399:                                             ; preds = %4382, %4365
  call void @llvm.lifetime.end.p0(i64 4, ptr %125) #11
  br label %4400

4400:                                             ; preds = %4399
  br label %4401

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

4402:                                             ; No predecessors!
  br label %4403

4403:                                             ; preds = %4402
  br label %4404

4404:                                             ; preds = %4403, %4342
  br label %4405

4405:                                             ; preds = %4404
  br label %4406

4406:                                             ; preds = %4405
  br label %4407

4407:                                             ; preds = %4406
  %4408 = load i32, ptr @test_count, align 4, !tbaa !5
  %4409 = add nsw i32 %4408, 1
  store i32 %4409, ptr @test_count, align 4, !tbaa !5
  %4410 = load i16, ptr %122, align 2, !tbaa !62
  %4411 = zext i16 %4410 to i32
  %4412 = icmp eq i32 1415, %4411
  br i1 %4412, label %4466, label %4413

4413:                                             ; preds = %4407
  br label %4414

4414:                                             ; preds = %4413
  br label %4415

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

4422:                                             ; preds = %4415
  %4423 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4424 = call i32 @fileno(ptr noundef %4423) #11
  %4425 = call i32 @isatty(i32 noundef %4424) #11
  %4426 = icmp ne i32 %4425, 0
  br i1 %4426, label %4427, label %4444

4427:                                             ; preds = %4422
  %4428 = load i32, ptr %126, align 4, !tbaa !5
  %4429 = call ptr @__errno_location() #12
  store i32 %4428, ptr %4429, align 4, !tbaa !5
  %4430 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4431 = load i32, ptr @test_count, align 4, !tbaa !5
  %4432 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4433 = load i32, ptr %4432, align 4, !tbaa !5
  %4434 = call ptr @s2n_strerror(i32 noundef %4433, ptr noundef @.str.4)
  %4435 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4436 = load i32, ptr %4435, align 4, !tbaa !5
  %4437 = call ptr @s2n_strerror_debug(i32 noundef %4436, ptr noundef @.str.4)
  %4438 = call ptr @__errno_location() #12
  %4439 = load i32, ptr %4438, align 4, !tbaa !5
  %4440 = call ptr @strerror(i32 noundef %4439) #11
  %4441 = call ptr @__errno_location() #12
  %4442 = load i32, ptr %4441, align 4, !tbaa !5
  %4443 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4430, ptr noundef @.str.2, i32 noundef %4431, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 241, ptr noundef %4434, ptr noundef %4437, ptr noundef %4440, i32 noundef %4442) #11
  br label %4461

4444:                                             ; preds = %4422, %4415
  %4445 = load i32, ptr %126, align 4, !tbaa !5
  %4446 = call ptr @__errno_location() #12
  store i32 %4445, ptr %4446, align 4, !tbaa !5
  %4447 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4448 = load i32, ptr @test_count, align 4, !tbaa !5
  %4449 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4450 = load i32, ptr %4449, align 4, !tbaa !5
  %4451 = call ptr @s2n_strerror(i32 noundef %4450, ptr noundef @.str.4)
  %4452 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4453 = load i32, ptr %4452, align 4, !tbaa !5
  %4454 = call ptr @s2n_strerror_debug(i32 noundef %4453, ptr noundef @.str.4)
  %4455 = call ptr @__errno_location() #12
  %4456 = load i32, ptr %4455, align 4, !tbaa !5
  %4457 = call ptr @strerror(i32 noundef %4456) #11
  %4458 = call ptr @__errno_location() #12
  %4459 = load i32, ptr %4458, align 4, !tbaa !5
  %4460 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4447, ptr noundef @.str.5, i32 noundef %4448, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 241, ptr noundef %4451, ptr noundef %4454, ptr noundef %4457, i32 noundef %4459) #11
  br label %4461

4461:                                             ; preds = %4444, %4427
  call void @llvm.lifetime.end.p0(i64 4, ptr %126) #11
  br label %4462

4462:                                             ; preds = %4461
  br label %4463

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

4464:                                             ; No predecessors!
  br label %4465

4465:                                             ; preds = %4464
  br label %4466

4466:                                             ; preds = %4465, %4407
  br label %4467

4467:                                             ; preds = %4466
  br label %4468

4468:                                             ; preds = %4467
  call void @llvm.lifetime.start.p0(i64 4, ptr %127) #11
  store i32 1420, ptr %127, align 4, !tbaa !5
  br label %4469

4469:                                             ; preds = %4468
  %4470 = load i32, ptr @test_count, align 4, !tbaa !5
  %4471 = add nsw i32 %4470, 1
  store i32 %4471, ptr @test_count, align 4, !tbaa !5
  %4472 = load ptr, ptr %120, align 8, !tbaa !9
  %4473 = call i32 @s2n_connection_wipe(ptr noundef %4472)
  %4474 = icmp eq i32 %4473, -1
  br i1 %4474, label %4475, label %4528

4475:                                             ; preds = %4469
  br label %4476

4476:                                             ; preds = %4475
  br label %4477

4477:                                             ; preds = %4476
  call void @llvm.lifetime.start.p0(i64 4, ptr %128) #11
  %4478 = call ptr @__errno_location() #12
  %4479 = load i32, ptr %4478, align 4, !tbaa !5
  store i32 %4479, ptr %128, align 4, !tbaa !5
  %4480 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4481 = call i32 @s2n_print_stacktrace(ptr noundef %4480)
  %4482 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4483 = trunc i8 %4482 to i1
  br i1 %4483, label %4484, label %4506

4484:                                             ; preds = %4477
  %4485 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4486 = call i32 @fileno(ptr noundef %4485) #11
  %4487 = call i32 @isatty(i32 noundef %4486) #11
  %4488 = icmp ne i32 %4487, 0
  br i1 %4488, label %4489, label %4506

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

4506:                                             ; preds = %4484, %4477
  %4507 = load i32, ptr %128, align 4, !tbaa !5
  %4508 = call ptr @__errno_location() #12
  store i32 %4507, ptr %4508, align 4, !tbaa !5
  %4509 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4510 = load i32, ptr @test_count, align 4, !tbaa !5
  %4511 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4512 = load i32, ptr %4511, align 4, !tbaa !5
  %4513 = call ptr @s2n_strerror(i32 noundef %4512, ptr noundef @.str.4)
  %4514 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4515 = load i32, ptr %4514, align 4, !tbaa !5
  %4516 = call ptr @s2n_strerror_debug(i32 noundef %4515, ptr noundef @.str.4)
  %4517 = call ptr @__errno_location() #12
  %4518 = load i32, ptr %4517, align 4, !tbaa !5
  %4519 = call ptr @strerror(i32 noundef %4518) #11
  %4520 = call ptr @__errno_location() #12
  %4521 = load i32, ptr %4520, align 4, !tbaa !5
  %4522 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4509, ptr noundef @.str.5, i32 noundef %4510, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 247, ptr noundef %4513, ptr noundef %4516, ptr noundef %4519, i32 noundef %4521) #11
  br label %4523

4523:                                             ; preds = %4506, %4489
  call void @llvm.lifetime.end.p0(i64 4, ptr %128) #11
  br label %4524

4524:                                             ; preds = %4523
  br label %4525

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

4526:                                             ; No predecessors!
  br label %4527

4527:                                             ; preds = %4526
  br label %4528

4528:                                             ; preds = %4527, %4469
  br label %4529

4529:                                             ; preds = %4528
  br label %4530

4530:                                             ; preds = %4529
  br label %4531

4531:                                             ; preds = %4530
  %4532 = load i32, ptr @test_count, align 4, !tbaa !5
  %4533 = add nsw i32 %4532, 1
  store i32 %4533, ptr @test_count, align 4, !tbaa !5
  %4534 = load ptr, ptr %120, align 8, !tbaa !9
  %4535 = getelementptr inbounds %struct.s2n_connection, ptr %4534, i32 0, i32 41
  %4536 = call i32 @s2n_stuffer_wipe(ptr noundef %4535)
  %4537 = icmp eq i32 %4536, -1
  br i1 %4537, label %4538, label %4591

4538:                                             ; preds = %4531
  br label %4539

4539:                                             ; preds = %4538
  br label %4540

4540:                                             ; preds = %4539
  call void @llvm.lifetime.start.p0(i64 4, ptr %129) #11
  %4541 = call ptr @__errno_location() #12
  %4542 = load i32, ptr %4541, align 4, !tbaa !5
  store i32 %4542, ptr %129, align 4, !tbaa !5
  %4543 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4544 = call i32 @s2n_print_stacktrace(ptr noundef %4543)
  %4545 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4546 = trunc i8 %4545 to i1
  br i1 %4546, label %4547, label %4569

4547:                                             ; preds = %4540
  %4548 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4549 = call i32 @fileno(ptr noundef %4548) #11
  %4550 = call i32 @isatty(i32 noundef %4549) #11
  %4551 = icmp ne i32 %4550, 0
  br i1 %4551, label %4552, label %4569

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

4569:                                             ; preds = %4547, %4540
  %4570 = load i32, ptr %129, align 4, !tbaa !5
  %4571 = call ptr @__errno_location() #12
  store i32 %4570, ptr %4571, align 4, !tbaa !5
  %4572 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4573 = load i32, ptr @test_count, align 4, !tbaa !5
  %4574 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4575 = load i32, ptr %4574, align 4, !tbaa !5
  %4576 = call ptr @s2n_strerror(i32 noundef %4575, ptr noundef @.str.4)
  %4577 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4578 = load i32, ptr %4577, align 4, !tbaa !5
  %4579 = call ptr @s2n_strerror_debug(i32 noundef %4578, ptr noundef @.str.4)
  %4580 = call ptr @__errno_location() #12
  %4581 = load i32, ptr %4580, align 4, !tbaa !5
  %4582 = call ptr @strerror(i32 noundef %4581) #11
  %4583 = call ptr @__errno_location() #12
  %4584 = load i32, ptr %4583, align 4, !tbaa !5
  %4585 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4572, ptr noundef @.str.5, i32 noundef %4573, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 248, ptr noundef %4576, ptr noundef %4579, ptr noundef %4582, i32 noundef %4584) #11
  br label %4586

4586:                                             ; preds = %4569, %4552
  call void @llvm.lifetime.end.p0(i64 4, ptr %129) #11
  br label %4587

4587:                                             ; preds = %4586
  br label %4588

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

4589:                                             ; No predecessors!
  br label %4590

4590:                                             ; preds = %4589
  br label %4591

4591:                                             ; preds = %4590, %4531
  br label %4592

4592:                                             ; preds = %4591
  br label %4593

4593:                                             ; preds = %4592
  %4594 = load ptr, ptr %120, align 8, !tbaa !9
  %4595 = getelementptr inbounds %struct.s2n_connection, ptr %4594, i32 0, i32 23
  store i8 32, ptr %4595, align 4, !tbaa !57
  %4596 = load ptr, ptr %120, align 8, !tbaa !9
  %4597 = getelementptr inbounds %struct.s2n_connection, ptr %4596, i32 0, i32 26
  %4598 = load ptr, ptr %4597, align 8, !tbaa !64
  %4599 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %4598, i32 0, i32 0
  %4600 = load ptr, ptr %4599, align 8, !tbaa !44
  %4601 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %4600, i32 0, i32 6
  store ptr @s2n_record_alg_3des_sha, ptr %4601, align 8, !tbaa !49
  call void @llvm.lifetime.start.p0(i64 24, ptr %130) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %130, ptr align 16 @__const.main.des3_key, i64 24, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr %131) #11
  call void @llvm.memset.p0.i64(ptr align 8 %131, i8 0, i64 24, i1 false)
  br label %4602

4602:                                             ; preds = %4593
  %4603 = load i32, ptr @test_count, align 4, !tbaa !5
  %4604 = add nsw i32 %4603, 1
  store i32 %4604, ptr @test_count, align 4, !tbaa !5
  %4605 = getelementptr inbounds [24 x i8], ptr %130, i64 0, i64 0
  %4606 = call i32 @s2n_blob_init(ptr noundef %131, ptr noundef %4605, i32 noundef 24)
  %4607 = icmp eq i32 %4606, -1
  br i1 %4607, label %4608, label %4661

4608:                                             ; preds = %4602
  br label %4609

4609:                                             ; preds = %4608
  br label %4610

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

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

4622:                                             ; preds = %4617
  %4623 = load i32, ptr %132, align 4, !tbaa !5
  %4624 = call ptr @__errno_location() #12
  store i32 %4623, ptr %4624, align 4, !tbaa !5
  %4625 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4626 = load i32, ptr @test_count, align 4, !tbaa !5
  %4627 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4628 = load i32, ptr %4627, align 4, !tbaa !5
  %4629 = call ptr @s2n_strerror(i32 noundef %4628, ptr noundef @.str.4)
  %4630 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4631 = load i32, ptr %4630, align 4, !tbaa !5
  %4632 = call ptr @s2n_strerror_debug(i32 noundef %4631, ptr noundef @.str.4)
  %4633 = call ptr @__errno_location() #12
  %4634 = load i32, ptr %4633, align 4, !tbaa !5
  %4635 = call ptr @strerror(i32 noundef %4634) #11
  %4636 = call ptr @__errno_location() #12
  %4637 = load i32, ptr %4636, align 4, !tbaa !5
  %4638 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4625, ptr noundef @.str.2, i32 noundef %4626, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 253, ptr noundef %4629, ptr noundef %4632, ptr noundef %4635, i32 noundef %4637) #11
  br label %4656

4639:                                             ; preds = %4617, %4610
  %4640 = load i32, ptr %132, align 4, !tbaa !5
  %4641 = call ptr @__errno_location() #12
  store i32 %4640, ptr %4641, align 4, !tbaa !5
  %4642 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4643 = load i32, ptr @test_count, align 4, !tbaa !5
  %4644 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4645 = load i32, ptr %4644, align 4, !tbaa !5
  %4646 = call ptr @s2n_strerror(i32 noundef %4645, ptr noundef @.str.4)
  %4647 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4648 = load i32, ptr %4647, align 4, !tbaa !5
  %4649 = call ptr @s2n_strerror_debug(i32 noundef %4648, ptr noundef @.str.4)
  %4650 = call ptr @__errno_location() #12
  %4651 = load i32, ptr %4650, align 4, !tbaa !5
  %4652 = call ptr @strerror(i32 noundef %4651) #11
  %4653 = call ptr @__errno_location() #12
  %4654 = load i32, ptr %4653, align 4, !tbaa !5
  %4655 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4642, ptr noundef @.str.5, i32 noundef %4643, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 253, ptr noundef %4646, ptr noundef %4649, ptr noundef %4652, i32 noundef %4654) #11
  br label %4656

4656:                                             ; preds = %4639, %4622
  call void @llvm.lifetime.end.p0(i64 4, ptr %132) #11
  br label %4657

4657:                                             ; preds = %4656
  br label %4658

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

4659:                                             ; No predecessors!
  br label %4660

4660:                                             ; preds = %4659
  br label %4661

4661:                                             ; preds = %4660, %4602
  br label %4662

4662:                                             ; preds = %4661
  br label %4663

4663:                                             ; preds = %4662
  %4664 = load ptr, ptr %120, align 8, !tbaa !9
  %4665 = getelementptr inbounds %struct.s2n_connection, ptr %4664, i32 0, i32 27
  %4666 = load ptr, ptr %4665, align 8, !tbaa !15
  %4667 = load ptr, ptr %120, align 8, !tbaa !9
  %4668 = getelementptr inbounds %struct.s2n_connection, ptr %4667, i32 0, i32 30
  store ptr %4666, ptr %4668, align 8, !tbaa !42
  br label %4669

4669:                                             ; preds = %4663
  %4670 = load i32, ptr @test_count, align 4, !tbaa !5
  %4671 = add nsw i32 %4670, 1
  store i32 %4671, ptr @test_count, align 4, !tbaa !5
  %4672 = load ptr, ptr %120, align 8, !tbaa !9
  %4673 = getelementptr inbounds %struct.s2n_connection, ptr %4672, i32 0, i32 27
  %4674 = load ptr, ptr %4673, align 8, !tbaa !15
  %4675 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %4674, i32 0, i32 0
  %4676 = load ptr, ptr %4675, align 8, !tbaa !44
  %4677 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %4676, i32 0, i32 6
  %4678 = load ptr, ptr %4677, align 8, !tbaa !49
  %4679 = getelementptr inbounds %struct.s2n_record_algorithm, ptr %4678, i32 0, i32 0
  %4680 = load ptr, ptr %4679, align 8, !tbaa !51
  %4681 = getelementptr inbounds %struct.s2n_cipher, ptr %4680, i32 0, i32 4
  %4682 = load ptr, ptr %4681, align 8, !tbaa !53
  %4683 = load ptr, ptr %120, align 8, !tbaa !9
  %4684 = getelementptr inbounds %struct.s2n_connection, ptr %4683, i32 0, i32 27
  %4685 = load ptr, ptr %4684, align 8, !tbaa !15
  %4686 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %4685, i32 0, i32 2
  %4687 = call i32 %4682(ptr noundef %4686)
  %4688 = getelementptr inbounds %struct.s2n_result, ptr %133, i32 0, i32 0
  store i32 %4687, ptr %4688, align 4
  %4689 = getelementptr inbounds %struct.s2n_result, ptr %133, i32 0, i32 0
  %4690 = load i32, ptr %4689, align 4
  %4691 = call zeroext i1 @s2n_result_is_ok(i32 %4690)
  br i1 %4691, label %4745, label %4692

4692:                                             ; preds = %4669
  br label %4693

4693:                                             ; preds = %4692
  br label %4694

4694:                                             ; preds = %4693
  call void @llvm.lifetime.start.p0(i64 4, ptr %134) #11
  %4695 = call ptr @__errno_location() #12
  %4696 = load i32, ptr %4695, align 4, !tbaa !5
  store i32 %4696, ptr %134, align 4, !tbaa !5
  %4697 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4698 = call i32 @s2n_print_stacktrace(ptr noundef %4697)
  %4699 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4700 = trunc i8 %4699 to i1
  br i1 %4700, label %4701, label %4723

4701:                                             ; preds = %4694
  %4702 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4703 = call i32 @fileno(ptr noundef %4702) #11
  %4704 = call i32 @isatty(i32 noundef %4703) #11
  %4705 = icmp ne i32 %4704, 0
  br i1 %4705, label %4706, label %4723

4706:                                             ; preds = %4701
  %4707 = load i32, ptr %134, align 4, !tbaa !5
  %4708 = call ptr @__errno_location() #12
  store i32 %4707, ptr %4708, align 4, !tbaa !5
  %4709 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4710 = load i32, ptr @test_count, align 4, !tbaa !5
  %4711 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4712 = load i32, ptr %4711, align 4, !tbaa !5
  %4713 = call ptr @s2n_strerror(i32 noundef %4712, ptr noundef @.str.4)
  %4714 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4715 = load i32, ptr %4714, align 4, !tbaa !5
  %4716 = call ptr @s2n_strerror_debug(i32 noundef %4715, ptr noundef @.str.4)
  %4717 = call ptr @__errno_location() #12
  %4718 = load i32, ptr %4717, align 4, !tbaa !5
  %4719 = call ptr @strerror(i32 noundef %4718) #11
  %4720 = call ptr @__errno_location() #12
  %4721 = load i32, ptr %4720, align 4, !tbaa !5
  %4722 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4709, ptr noundef @.str.2, i32 noundef %4710, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 255, ptr noundef %4713, ptr noundef %4716, ptr noundef %4719, i32 noundef %4721) #11
  br label %4740

4723:                                             ; preds = %4701, %4694
  %4724 = load i32, ptr %134, align 4, !tbaa !5
  %4725 = call ptr @__errno_location() #12
  store i32 %4724, ptr %4725, align 4, !tbaa !5
  %4726 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4727 = load i32, ptr @test_count, align 4, !tbaa !5
  %4728 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4729 = load i32, ptr %4728, align 4, !tbaa !5
  %4730 = call ptr @s2n_strerror(i32 noundef %4729, ptr noundef @.str.4)
  %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_debug(i32 noundef %4732, ptr noundef @.str.4)
  %4734 = call ptr @__errno_location() #12
  %4735 = load i32, ptr %4734, align 4, !tbaa !5
  %4736 = call ptr @strerror(i32 noundef %4735) #11
  %4737 = call ptr @__errno_location() #12
  %4738 = load i32, ptr %4737, align 4, !tbaa !5
  %4739 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4726, ptr noundef @.str.5, i32 noundef %4727, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 255, ptr noundef %4730, ptr noundef %4733, ptr noundef %4736, i32 noundef %4738) #11
  br label %4740

4740:                                             ; preds = %4723, %4706
  call void @llvm.lifetime.end.p0(i64 4, ptr %134) #11
  br label %4741

4741:                                             ; preds = %4740
  br label %4742

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

4743:                                             ; No predecessors!
  br label %4744

4744:                                             ; preds = %4743
  br label %4745

4745:                                             ; preds = %4744, %4669
  br label %4746

4746:                                             ; preds = %4745
  br label %4747

4747:                                             ; preds = %4746
  br label %4748

4748:                                             ; preds = %4747
  %4749 = load i32, ptr @test_count, align 4, !tbaa !5
  %4750 = add nsw i32 %4749, 1
  store i32 %4750, ptr @test_count, align 4, !tbaa !5
  %4751 = load ptr, ptr %120, align 8, !tbaa !9
  %4752 = getelementptr inbounds %struct.s2n_connection, ptr %4751, i32 0, i32 27
  %4753 = load ptr, ptr %4752, align 8, !tbaa !15
  %4754 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %4753, i32 0, i32 0
  %4755 = load ptr, ptr %4754, align 8, !tbaa !44
  %4756 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %4755, i32 0, i32 6
  %4757 = load ptr, ptr %4756, align 8, !tbaa !49
  %4758 = getelementptr inbounds %struct.s2n_record_algorithm, ptr %4757, i32 0, i32 0
  %4759 = load ptr, ptr %4758, align 8, !tbaa !51
  %4760 = getelementptr inbounds %struct.s2n_cipher, ptr %4759, i32 0, i32 4
  %4761 = load ptr, ptr %4760, align 8, !tbaa !53
  %4762 = load ptr, ptr %120, align 8, !tbaa !9
  %4763 = getelementptr inbounds %struct.s2n_connection, ptr %4762, i32 0, i32 27
  %4764 = load ptr, ptr %4763, align 8, !tbaa !15
  %4765 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %4764, i32 0, i32 1
  %4766 = call i32 %4761(ptr noundef %4765)
  %4767 = getelementptr inbounds %struct.s2n_result, ptr %135, i32 0, i32 0
  store i32 %4766, ptr %4767, align 4
  %4768 = getelementptr inbounds %struct.s2n_result, ptr %135, i32 0, i32 0
  %4769 = load i32, ptr %4768, align 4
  %4770 = call zeroext i1 @s2n_result_is_ok(i32 %4769)
  br i1 %4770, label %4824, label %4771

4771:                                             ; preds = %4748
  br label %4772

4772:                                             ; preds = %4771
  br label %4773

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

4780:                                             ; preds = %4773
  %4781 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4782 = call i32 @fileno(ptr noundef %4781) #11
  %4783 = call i32 @isatty(i32 noundef %4782) #11
  %4784 = icmp ne i32 %4783, 0
  br i1 %4784, label %4785, label %4802

4785:                                             ; preds = %4780
  %4786 = load i32, ptr %136, align 4, !tbaa !5
  %4787 = call ptr @__errno_location() #12
  store i32 %4786, ptr %4787, align 4, !tbaa !5
  %4788 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4789 = load i32, ptr @test_count, align 4, !tbaa !5
  %4790 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4791 = load i32, ptr %4790, align 4, !tbaa !5
  %4792 = call ptr @s2n_strerror(i32 noundef %4791, ptr noundef @.str.4)
  %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_debug(i32 noundef %4794, ptr noundef @.str.4)
  %4796 = call ptr @__errno_location() #12
  %4797 = load i32, ptr %4796, align 4, !tbaa !5
  %4798 = call ptr @strerror(i32 noundef %4797) #11
  %4799 = call ptr @__errno_location() #12
  %4800 = load i32, ptr %4799, align 4, !tbaa !5
  %4801 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4788, ptr noundef @.str.2, i32 noundef %4789, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 256, ptr noundef %4792, ptr noundef %4795, ptr noundef %4798, i32 noundef %4800) #11
  br label %4819

4802:                                             ; preds = %4780, %4773
  %4803 = load i32, ptr %136, align 4, !tbaa !5
  %4804 = call ptr @__errno_location() #12
  store i32 %4803, ptr %4804, align 4, !tbaa !5
  %4805 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4806 = load i32, ptr @test_count, align 4, !tbaa !5
  %4807 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4808 = load i32, ptr %4807, align 4, !tbaa !5
  %4809 = call ptr @s2n_strerror(i32 noundef %4808, ptr noundef @.str.4)
  %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_debug(i32 noundef %4811, ptr noundef @.str.4)
  %4813 = call ptr @__errno_location() #12
  %4814 = load i32, ptr %4813, align 4, !tbaa !5
  %4815 = call ptr @strerror(i32 noundef %4814) #11
  %4816 = call ptr @__errno_location() #12
  %4817 = load i32, ptr %4816, align 4, !tbaa !5
  %4818 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4805, ptr noundef @.str.5, i32 noundef %4806, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 256, ptr noundef %4809, ptr noundef %4812, ptr noundef %4815, i32 noundef %4817) #11
  br label %4819

4819:                                             ; preds = %4802, %4785
  call void @llvm.lifetime.end.p0(i64 4, ptr %136) #11
  br label %4820

4820:                                             ; preds = %4819
  br label %4821

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

4822:                                             ; No predecessors!
  br label %4823

4823:                                             ; preds = %4822
  br label %4824

4824:                                             ; preds = %4823, %4748
  br label %4825

4825:                                             ; preds = %4824
  br label %4826

4826:                                             ; preds = %4825
  br label %4827

4827:                                             ; preds = %4826
  %4828 = load i32, ptr @test_count, align 4, !tbaa !5
  %4829 = add nsw i32 %4828, 1
  store i32 %4829, ptr @test_count, align 4, !tbaa !5
  %4830 = load ptr, ptr %120, align 8, !tbaa !9
  %4831 = getelementptr inbounds %struct.s2n_connection, ptr %4830, i32 0, i32 27
  %4832 = load ptr, ptr %4831, align 8, !tbaa !15
  %4833 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %4832, i32 0, i32 0
  %4834 = load ptr, ptr %4833, align 8, !tbaa !44
  %4835 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %4834, i32 0, i32 6
  %4836 = load ptr, ptr %4835, align 8, !tbaa !49
  %4837 = getelementptr inbounds %struct.s2n_record_algorithm, ptr %4836, i32 0, i32 0
  %4838 = load ptr, ptr %4837, align 8, !tbaa !51
  %4839 = getelementptr inbounds %struct.s2n_cipher, ptr %4838, i32 0, i32 6
  %4840 = load ptr, ptr %4839, align 8, !tbaa !55
  %4841 = load ptr, ptr %120, align 8, !tbaa !9
  %4842 = getelementptr inbounds %struct.s2n_connection, ptr %4841, i32 0, i32 27
  %4843 = load ptr, ptr %4842, align 8, !tbaa !15
  %4844 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %4843, i32 0, i32 2
  %4845 = call i32 %4840(ptr noundef %4844, ptr noundef %131)
  %4846 = getelementptr inbounds %struct.s2n_result, ptr %137, i32 0, i32 0
  store i32 %4845, ptr %4846, align 4
  %4847 = getelementptr inbounds %struct.s2n_result, ptr %137, i32 0, i32 0
  %4848 = load i32, ptr %4847, align 4
  %4849 = call zeroext i1 @s2n_result_is_ok(i32 %4848)
  br i1 %4849, label %4903, label %4850

4850:                                             ; preds = %4827
  br label %4851

4851:                                             ; preds = %4850
  br label %4852

4852:                                             ; preds = %4851
  call void @llvm.lifetime.start.p0(i64 4, ptr %138) #11
  %4853 = call ptr @__errno_location() #12
  %4854 = load i32, ptr %4853, align 4, !tbaa !5
  store i32 %4854, ptr %138, align 4, !tbaa !5
  %4855 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4856 = call i32 @s2n_print_stacktrace(ptr noundef %4855)
  %4857 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4858 = trunc i8 %4857 to i1
  br i1 %4858, label %4859, label %4881

4859:                                             ; preds = %4852
  %4860 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4861 = call i32 @fileno(ptr noundef %4860) #11
  %4862 = call i32 @isatty(i32 noundef %4861) #11
  %4863 = icmp ne i32 %4862, 0
  br i1 %4863, label %4864, label %4881

4864:                                             ; preds = %4859
  %4865 = load i32, ptr %138, align 4, !tbaa !5
  %4866 = call ptr @__errno_location() #12
  store i32 %4865, ptr %4866, align 4, !tbaa !5
  %4867 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4868 = load i32, ptr @test_count, align 4, !tbaa !5
  %4869 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4870 = load i32, ptr %4869, align 4, !tbaa !5
  %4871 = call ptr @s2n_strerror(i32 noundef %4870, ptr noundef @.str.4)
  %4872 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4873 = load i32, ptr %4872, align 4, !tbaa !5
  %4874 = call ptr @s2n_strerror_debug(i32 noundef %4873, ptr noundef @.str.4)
  %4875 = call ptr @__errno_location() #12
  %4876 = load i32, ptr %4875, align 4, !tbaa !5
  %4877 = call ptr @strerror(i32 noundef %4876) #11
  %4878 = call ptr @__errno_location() #12
  %4879 = load i32, ptr %4878, align 4, !tbaa !5
  %4880 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4867, ptr noundef @.str.2, i32 noundef %4868, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 257, ptr noundef %4871, ptr noundef %4874, ptr noundef %4877, i32 noundef %4879) #11
  br label %4898

4881:                                             ; preds = %4859, %4852
  %4882 = load i32, ptr %138, align 4, !tbaa !5
  %4883 = call ptr @__errno_location() #12
  store i32 %4882, ptr %4883, align 4, !tbaa !5
  %4884 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4885 = load i32, ptr @test_count, align 4, !tbaa !5
  %4886 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4887 = load i32, ptr %4886, align 4, !tbaa !5
  %4888 = call ptr @s2n_strerror(i32 noundef %4887, ptr noundef @.str.4)
  %4889 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4890 = load i32, ptr %4889, align 4, !tbaa !5
  %4891 = call ptr @s2n_strerror_debug(i32 noundef %4890, ptr noundef @.str.4)
  %4892 = call ptr @__errno_location() #12
  %4893 = load i32, ptr %4892, align 4, !tbaa !5
  %4894 = call ptr @strerror(i32 noundef %4893) #11
  %4895 = call ptr @__errno_location() #12
  %4896 = load i32, ptr %4895, align 4, !tbaa !5
  %4897 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4884, ptr noundef @.str.5, i32 noundef %4885, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 257, ptr noundef %4888, ptr noundef %4891, ptr noundef %4894, i32 noundef %4896) #11
  br label %4898

4898:                                             ; preds = %4881, %4864
  call void @llvm.lifetime.end.p0(i64 4, ptr %138) #11
  br label %4899

4899:                                             ; preds = %4898
  br label %4900

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

4901:                                             ; No predecessors!
  br label %4902

4902:                                             ; preds = %4901
  br label %4903

4903:                                             ; preds = %4902, %4827
  br label %4904

4904:                                             ; preds = %4903
  br label %4905

4905:                                             ; preds = %4904
  br label %4906

4906:                                             ; preds = %4905
  %4907 = load i32, ptr @test_count, align 4, !tbaa !5
  %4908 = add nsw i32 %4907, 1
  store i32 %4908, ptr @test_count, align 4, !tbaa !5
  %4909 = load ptr, ptr %120, align 8, !tbaa !9
  %4910 = getelementptr inbounds %struct.s2n_connection, ptr %4909, i32 0, i32 27
  %4911 = load ptr, ptr %4910, align 8, !tbaa !15
  %4912 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %4911, i32 0, i32 0
  %4913 = load ptr, ptr %4912, align 8, !tbaa !44
  %4914 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %4913, i32 0, i32 6
  %4915 = load ptr, ptr %4914, align 8, !tbaa !49
  %4916 = getelementptr inbounds %struct.s2n_record_algorithm, ptr %4915, i32 0, i32 0
  %4917 = load ptr, ptr %4916, align 8, !tbaa !51
  %4918 = getelementptr inbounds %struct.s2n_cipher, ptr %4917, i32 0, i32 5
  %4919 = load ptr, ptr %4918, align 8, !tbaa !56
  %4920 = load ptr, ptr %120, align 8, !tbaa !9
  %4921 = getelementptr inbounds %struct.s2n_connection, ptr %4920, i32 0, i32 27
  %4922 = load ptr, ptr %4921, align 8, !tbaa !15
  %4923 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %4922, i32 0, i32 1
  %4924 = call i32 %4919(ptr noundef %4923, ptr noundef %131)
  %4925 = getelementptr inbounds %struct.s2n_result, ptr %139, i32 0, i32 0
  store i32 %4924, ptr %4925, align 4
  %4926 = getelementptr inbounds %struct.s2n_result, ptr %139, i32 0, i32 0
  %4927 = load i32, ptr %4926, align 4
  %4928 = call zeroext i1 @s2n_result_is_ok(i32 %4927)
  br i1 %4928, label %4982, label %4929

4929:                                             ; preds = %4906
  br label %4930

4930:                                             ; preds = %4929
  br label %4931

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

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

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

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

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

4978:                                             ; preds = %4977
  br label %4979

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

4980:                                             ; No predecessors!
  br label %4981

4981:                                             ; preds = %4980
  br label %4982

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

4983:                                             ; preds = %4982
  br label %4984

4984:                                             ; preds = %4983
  br label %4985

4985:                                             ; preds = %4984
  %4986 = load i32, ptr @test_count, align 4, !tbaa !5
  %4987 = add nsw i32 %4986, 1
  store i32 %4987, ptr @test_count, align 4, !tbaa !5
  %4988 = load ptr, ptr %120, align 8, !tbaa !9
  %4989 = getelementptr inbounds %struct.s2n_connection, ptr %4988, i32 0, i32 27
  %4990 = load ptr, ptr %4989, align 8, !tbaa !15
  %4991 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %4990, i32 0, i32 4
  %4992 = getelementptr inbounds [15 x i8], ptr %10, i64 0, i64 0
  %4993 = call i32 @s2n_hmac_init(ptr noundef %4991, i32 noundef 2, ptr noundef %4992, i32 noundef 15)
  %4994 = icmp eq i32 %4993, -1
  br i1 %4994, label %4995, label %5048

4995:                                             ; preds = %4985
  br label %4996

4996:                                             ; preds = %4995
  br label %4997

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

5004:                                             ; preds = %4997
  %5005 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5006 = call i32 @fileno(ptr noundef %5005) #11
  %5007 = call i32 @isatty(i32 noundef %5006) #11
  %5008 = icmp ne i32 %5007, 0
  br i1 %5008, label %5009, label %5026

5009:                                             ; preds = %5004
  %5010 = load i32, ptr %141, align 4, !tbaa !5
  %5011 = call ptr @__errno_location() #12
  store i32 %5010, ptr %5011, align 4, !tbaa !5
  %5012 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5013 = load i32, ptr @test_count, align 4, !tbaa !5
  %5014 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5015 = load i32, ptr %5014, align 4, !tbaa !5
  %5016 = call ptr @s2n_strerror(i32 noundef %5015, ptr noundef @.str.4)
  %5017 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5018 = load i32, ptr %5017, align 4, !tbaa !5
  %5019 = call ptr @s2n_strerror_debug(i32 noundef %5018, ptr noundef @.str.4)
  %5020 = call ptr @__errno_location() #12
  %5021 = load i32, ptr %5020, align 4, !tbaa !5
  %5022 = call ptr @strerror(i32 noundef %5021) #11
  %5023 = call ptr @__errno_location() #12
  %5024 = load i32, ptr %5023, align 4, !tbaa !5
  %5025 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5012, ptr noundef @.str.2, i32 noundef %5013, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 259, ptr noundef %5016, ptr noundef %5019, ptr noundef %5022, i32 noundef %5024) #11
  br label %5043

5026:                                             ; preds = %5004, %4997
  %5027 = load i32, ptr %141, align 4, !tbaa !5
  %5028 = call ptr @__errno_location() #12
  store i32 %5027, ptr %5028, align 4, !tbaa !5
  %5029 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5030 = load i32, ptr @test_count, align 4, !tbaa !5
  %5031 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5032 = load i32, ptr %5031, align 4, !tbaa !5
  %5033 = call ptr @s2n_strerror(i32 noundef %5032, ptr noundef @.str.4)
  %5034 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5035 = load i32, ptr %5034, align 4, !tbaa !5
  %5036 = call ptr @s2n_strerror_debug(i32 noundef %5035, ptr noundef @.str.4)
  %5037 = call ptr @__errno_location() #12
  %5038 = load i32, ptr %5037, align 4, !tbaa !5
  %5039 = call ptr @strerror(i32 noundef %5038) #11
  %5040 = call ptr @__errno_location() #12
  %5041 = load i32, ptr %5040, align 4, !tbaa !5
  %5042 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5029, ptr noundef @.str.5, i32 noundef %5030, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 259, ptr noundef %5033, ptr noundef %5036, ptr noundef %5039, i32 noundef %5041) #11
  br label %5043

5043:                                             ; preds = %5026, %5009
  call void @llvm.lifetime.end.p0(i64 4, ptr %141) #11
  br label %5044

5044:                                             ; preds = %5043
  br label %5045

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

5046:                                             ; No predecessors!
  br label %5047

5047:                                             ; preds = %5046
  br label %5048

5048:                                             ; preds = %5047, %4985
  br label %5049

5049:                                             ; preds = %5048
  br label %5050

5050:                                             ; preds = %5049
  br label %5051

5051:                                             ; preds = %5050
  %5052 = load i32, ptr @test_count, align 4, !tbaa !5
  %5053 = add nsw i32 %5052, 1
  store i32 %5053, ptr @test_count, align 4, !tbaa !5
  %5054 = load ptr, ptr %120, align 8, !tbaa !9
  %5055 = call i32 @s2n_record_min_write_payload_size(ptr noundef %5054, ptr noundef %122)
  %5056 = getelementptr inbounds %struct.s2n_result, ptr %142, i32 0, i32 0
  store i32 %5055, ptr %5056, align 4
  %5057 = getelementptr inbounds %struct.s2n_result, ptr %142, i32 0, i32 0
  %5058 = load i32, ptr %5057, align 4
  %5059 = call zeroext i1 @s2n_result_is_ok(i32 %5058)
  br i1 %5059, label %5113, label %5060

5060:                                             ; preds = %5051
  br label %5061

5061:                                             ; preds = %5060
  br label %5062

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

5069:                                             ; preds = %5062
  %5070 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5071 = call i32 @fileno(ptr noundef %5070) #11
  %5072 = call i32 @isatty(i32 noundef %5071) #11
  %5073 = icmp ne i32 %5072, 0
  br i1 %5073, label %5074, label %5091

5074:                                             ; preds = %5069
  %5075 = load i32, ptr %143, 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.2, i32 noundef %5078, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 261, ptr noundef %5081, ptr noundef %5084, ptr noundef %5087, i32 noundef %5089) #11
  br label %5108

5091:                                             ; preds = %5069, %5062
  %5092 = load i32, ptr %143, align 4, !tbaa !5
  %5093 = call ptr @__errno_location() #12
  store i32 %5092, ptr %5093, align 4, !tbaa !5
  %5094 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5095 = load i32, ptr @test_count, align 4, !tbaa !5
  %5096 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5097 = load i32, ptr %5096, align 4, !tbaa !5
  %5098 = call ptr @s2n_strerror(i32 noundef %5097, ptr noundef @.str.4)
  %5099 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5100 = load i32, ptr %5099, align 4, !tbaa !5
  %5101 = call ptr @s2n_strerror_debug(i32 noundef %5100, ptr noundef @.str.4)
  %5102 = call ptr @__errno_location() #12
  %5103 = load i32, ptr %5102, align 4, !tbaa !5
  %5104 = call ptr @strerror(i32 noundef %5103) #11
  %5105 = call ptr @__errno_location() #12
  %5106 = load i32, ptr %5105, align 4, !tbaa !5
  %5107 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5094, ptr noundef @.str.5, i32 noundef %5095, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 261, ptr noundef %5098, ptr noundef %5101, ptr noundef %5104, i32 noundef %5106) #11
  br label %5108

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

5109:                                             ; preds = %5108
  br label %5110

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

5111:                                             ; No predecessors!
  br label %5112

5112:                                             ; preds = %5111
  br label %5113

5113:                                             ; preds = %5112, %5051
  br label %5114

5114:                                             ; preds = %5113
  br label %5115

5115:                                             ; preds = %5114
  %5116 = load i16, ptr %122, align 2, !tbaa !62
  %5117 = zext i16 %5116 to i32
  %5118 = getelementptr inbounds %struct.s2n_blob, ptr %12, i32 0, i32 1
  store i32 %5117, ptr %5118, align 8, !tbaa !60
  call void @llvm.lifetime.start.p0(i64 4, ptr %144) #11
  store i32 1408, ptr %144, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 2, ptr %145) #11
  store i16 1, ptr %145, align 2, !tbaa !62
  call void @llvm.lifetime.start.p0(i64 2, ptr %146) #11
  store i16 8, ptr %146, align 2, !tbaa !62
  call void @llvm.lifetime.start.p0(i64 2, ptr %147) #11
  store i16 20, ptr %147, align 2, !tbaa !62
  br label %5119

5119:                                             ; preds = %5115
  %5120 = load i32, ptr @test_count, align 4, !tbaa !5
  %5121 = add nsw i32 %5120, 1
  store i32 %5121, ptr @test_count, align 4, !tbaa !5
  %5122 = load i16, ptr %122, align 2, !tbaa !62
  %5123 = zext i16 %5122 to i32
  %5124 = icmp eq i32 %5123, 1379
  br i1 %5124, label %5178, label %5125

5125:                                             ; preds = %5119
  br label %5126

5126:                                             ; preds = %5125
  br label %5127

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

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

5139:                                             ; preds = %5134
  %5140 = load i32, ptr %148, align 4, !tbaa !5
  %5141 = call ptr @__errno_location() #12
  store i32 %5140, ptr %5141, align 4, !tbaa !5
  %5142 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5143 = load i32, ptr @test_count, align 4, !tbaa !5
  %5144 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5145 = load i32, ptr %5144, align 4, !tbaa !5
  %5146 = call ptr @s2n_strerror(i32 noundef %5145, ptr noundef @.str.4)
  %5147 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5148 = load i32, ptr %5147, align 4, !tbaa !5
  %5149 = call ptr @s2n_strerror_debug(i32 noundef %5148, ptr noundef @.str.4)
  %5150 = call ptr @__errno_location() #12
  %5151 = load i32, ptr %5150, align 4, !tbaa !5
  %5152 = call ptr @strerror(i32 noundef %5151) #11
  %5153 = call ptr @__errno_location() #12
  %5154 = load i32, ptr %5153, align 4, !tbaa !5
  %5155 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5142, ptr noundef @.str.2, i32 noundef %5143, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 267, ptr noundef %5146, ptr noundef %5149, ptr noundef %5152, i32 noundef %5154) #11
  br label %5173

5156:                                             ; preds = %5134, %5127
  %5157 = load i32, ptr %148, align 4, !tbaa !5
  %5158 = call ptr @__errno_location() #12
  store i32 %5157, ptr %5158, align 4, !tbaa !5
  %5159 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5160 = load i32, ptr @test_count, align 4, !tbaa !5
  %5161 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5162 = load i32, ptr %5161, align 4, !tbaa !5
  %5163 = call ptr @s2n_strerror(i32 noundef %5162, ptr noundef @.str.4)
  %5164 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5165 = load i32, ptr %5164, align 4, !tbaa !5
  %5166 = call ptr @s2n_strerror_debug(i32 noundef %5165, ptr noundef @.str.4)
  %5167 = call ptr @__errno_location() #12
  %5168 = load i32, ptr %5167, align 4, !tbaa !5
  %5169 = call ptr @strerror(i32 noundef %5168) #11
  %5170 = call ptr @__errno_location() #12
  %5171 = load i32, ptr %5170, align 4, !tbaa !5
  %5172 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5159, ptr noundef @.str.5, i32 noundef %5160, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 267, ptr noundef %5163, ptr noundef %5166, ptr noundef %5169, i32 noundef %5171) #11
  br label %5173

5173:                                             ; preds = %5156, %5139
  call void @llvm.lifetime.end.p0(i64 4, ptr %148) #11
  br label %5174

5174:                                             ; preds = %5173
  br label %5175

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

5176:                                             ; No predecessors!
  br label %5177

5177:                                             ; preds = %5176
  br label %5178

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

5179:                                             ; preds = %5178
  br label %5180

5180:                                             ; preds = %5179
  br label %5181

5181:                                             ; preds = %5180
  %5182 = load i32, ptr @test_count, align 4, !tbaa !5
  %5183 = add nsw i32 %5182, 1
  store i32 %5183, ptr @test_count, align 4, !tbaa !5
  %5184 = load ptr, ptr %120, align 8, !tbaa !9
  %5185 = call i32 @s2n_record_write(ptr noundef %5184, i8 noundef zeroext 23, ptr noundef %12)
  %5186 = getelementptr inbounds %struct.s2n_result, ptr %149, i32 0, i32 0
  store i32 %5185, ptr %5186, align 4
  %5187 = getelementptr inbounds %struct.s2n_result, ptr %149, i32 0, i32 0
  %5188 = load i32, ptr %5187, align 4
  %5189 = call zeroext i1 @s2n_result_is_ok(i32 %5188)
  br i1 %5189, label %5243, label %5190

5190:                                             ; preds = %5181
  br label %5191

5191:                                             ; preds = %5190
  br label %5192

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

5199:                                             ; preds = %5192
  %5200 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5201 = call i32 @fileno(ptr noundef %5200) #11
  %5202 = call i32 @isatty(i32 noundef %5201) #11
  %5203 = icmp ne i32 %5202, 0
  br i1 %5203, label %5204, label %5221

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

5221:                                             ; preds = %5199, %5192
  %5222 = load i32, ptr %150, align 4, !tbaa !5
  %5223 = call ptr @__errno_location() #12
  store i32 %5222, ptr %5223, align 4, !tbaa !5
  %5224 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5225 = load i32, ptr @test_count, align 4, !tbaa !5
  %5226 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5227 = load i32, ptr %5226, align 4, !tbaa !5
  %5228 = call ptr @s2n_strerror(i32 noundef %5227, ptr noundef @.str.4)
  %5229 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5230 = load i32, ptr %5229, align 4, !tbaa !5
  %5231 = call ptr @s2n_strerror_debug(i32 noundef %5230, ptr noundef @.str.4)
  %5232 = call ptr @__errno_location() #12
  %5233 = load i32, ptr %5232, align 4, !tbaa !5
  %5234 = call ptr @strerror(i32 noundef %5233) #11
  %5235 = call ptr @__errno_location() #12
  %5236 = load i32, ptr %5235, align 4, !tbaa !5
  %5237 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5224, ptr noundef @.str.5, i32 noundef %5225, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 269, ptr noundef %5228, ptr noundef %5231, ptr noundef %5234, i32 noundef %5236) #11
  br label %5238

5238:                                             ; preds = %5221, %5204
  call void @llvm.lifetime.end.p0(i64 4, ptr %150) #11
  br label %5239

5239:                                             ; preds = %5238
  br label %5240

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

5241:                                             ; No predecessors!
  br label %5242

5242:                                             ; preds = %5241
  br label %5243

5243:                                             ; preds = %5242, %5181
  br label %5244

5244:                                             ; preds = %5243
  br label %5245

5245:                                             ; preds = %5244
  call void @llvm.lifetime.start.p0(i64 2, ptr %151) #11
  %5246 = load ptr, ptr %120, align 8, !tbaa !9
  %5247 = getelementptr inbounds %struct.s2n_connection, ptr %5246, i32 0, i32 41
  %5248 = getelementptr inbounds %struct.s2n_stuffer, ptr %5247, i32 0, i32 2
  %5249 = load i32, ptr %5248, align 4, !tbaa !65
  %5250 = load ptr, ptr %120, align 8, !tbaa !9
  %5251 = getelementptr inbounds %struct.s2n_connection, ptr %5250, i32 0, i32 41
  %5252 = getelementptr inbounds %struct.s2n_stuffer, ptr %5251, i32 0, i32 1
  %5253 = load i32, ptr %5252, align 8, !tbaa !66
  %5254 = sub i32 %5249, %5253
  %5255 = trunc i32 %5254 to i16
  store i16 %5255, ptr %151, align 2, !tbaa !62
  br label %5256

5256:                                             ; preds = %5245
  %5257 = load i32, ptr @test_count, align 4, !tbaa !5
  %5258 = add nsw i32 %5257, 1
  store i32 %5258, ptr @test_count, align 4, !tbaa !5
  %5259 = load i16, ptr %151, align 2, !tbaa !62
  %5260 = zext i16 %5259 to i32
  %5261 = icmp sle i32 %5260, 1420
  br i1 %5261, label %5315, label %5262

5262:                                             ; preds = %5256
  br label %5263

5263:                                             ; preds = %5262
  br label %5264

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

5271:                                             ; preds = %5264
  %5272 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5273 = call i32 @fileno(ptr noundef %5272) #11
  %5274 = call i32 @isatty(i32 noundef %5273) #11
  %5275 = icmp ne i32 %5274, 0
  br i1 %5275, label %5276, label %5293

5276:                                             ; preds = %5271
  %5277 = load i32, ptr %152, align 4, !tbaa !5
  %5278 = call ptr @__errno_location() #12
  store i32 %5277, ptr %5278, align 4, !tbaa !5
  %5279 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5280 = load i32, ptr @test_count, align 4, !tbaa !5
  %5281 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5282 = load i32, ptr %5281, align 4, !tbaa !5
  %5283 = call ptr @s2n_strerror(i32 noundef %5282, ptr noundef @.str.4)
  %5284 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5285 = load i32, ptr %5284, align 4, !tbaa !5
  %5286 = call ptr @s2n_strerror_debug(i32 noundef %5285, ptr noundef @.str.4)
  %5287 = call ptr @__errno_location() #12
  %5288 = load i32, ptr %5287, align 4, !tbaa !5
  %5289 = call ptr @strerror(i32 noundef %5288) #11
  %5290 = call ptr @__errno_location() #12
  %5291 = load i32, ptr %5290, align 4, !tbaa !5
  %5292 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5279, ptr noundef @.str.2, i32 noundef %5280, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 271, ptr noundef %5283, ptr noundef %5286, ptr noundef %5289, i32 noundef %5291) #11
  br label %5310

5293:                                             ; preds = %5271, %5264
  %5294 = load i32, ptr %152, align 4, !tbaa !5
  %5295 = call ptr @__errno_location() #12
  store i32 %5294, ptr %5295, align 4, !tbaa !5
  %5296 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5297 = load i32, ptr @test_count, align 4, !tbaa !5
  %5298 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5299 = load i32, ptr %5298, align 4, !tbaa !5
  %5300 = call ptr @s2n_strerror(i32 noundef %5299, ptr noundef @.str.4)
  %5301 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5302 = load i32, ptr %5301, align 4, !tbaa !5
  %5303 = call ptr @s2n_strerror_debug(i32 noundef %5302, ptr noundef @.str.4)
  %5304 = call ptr @__errno_location() #12
  %5305 = load i32, ptr %5304, align 4, !tbaa !5
  %5306 = call ptr @strerror(i32 noundef %5305) #11
  %5307 = call ptr @__errno_location() #12
  %5308 = load i32, ptr %5307, align 4, !tbaa !5
  %5309 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5296, ptr noundef @.str.5, i32 noundef %5297, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 271, ptr noundef %5300, ptr noundef %5303, ptr noundef %5306, i32 noundef %5308) #11
  br label %5310

5310:                                             ; preds = %5293, %5276
  call void @llvm.lifetime.end.p0(i64 4, ptr %152) #11
  br label %5311

5311:                                             ; preds = %5310
  br label %5312

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

5313:                                             ; No predecessors!
  br label %5314

5314:                                             ; preds = %5313
  br label %5315

5315:                                             ; preds = %5314, %5256
  br label %5316

5316:                                             ; preds = %5315
  br label %5317

5317:                                             ; preds = %5316
  br label %5318

5318:                                             ; preds = %5317
  %5319 = load i32, ptr @test_count, align 4, !tbaa !5
  %5320 = add nsw i32 %5319, 1
  store i32 %5320, ptr @test_count, align 4, !tbaa !5
  %5321 = load ptr, ptr %120, align 8, !tbaa !9
  %5322 = getelementptr inbounds %struct.s2n_connection, ptr %5321, i32 0, i32 41
  %5323 = getelementptr inbounds %struct.s2n_stuffer, ptr %5322, i32 0, i32 0
  %5324 = getelementptr inbounds %struct.s2n_blob, ptr %5323, i32 0, i32 0
  %5325 = load ptr, ptr %5324, align 8, !tbaa !67
  %5326 = getelementptr inbounds i8, ptr %5325, i64 3
  %5327 = load i8, ptr %5326, align 1, !tbaa !59
  %5328 = zext i8 %5327 to i32
  %5329 = shl i32 %5328, 8
  %5330 = load ptr, ptr %120, align 8, !tbaa !9
  %5331 = getelementptr inbounds %struct.s2n_connection, ptr %5330, i32 0, i32 41
  %5332 = getelementptr inbounds %struct.s2n_stuffer, ptr %5331, i32 0, i32 0
  %5333 = getelementptr inbounds %struct.s2n_blob, ptr %5332, i32 0, i32 0
  %5334 = load ptr, ptr %5333, align 8, !tbaa !67
  %5335 = getelementptr inbounds i8, ptr %5334, i64 4
  %5336 = load i8, ptr %5335, align 1, !tbaa !59
  %5337 = zext i8 %5336 to i32
  %5338 = or i32 %5329, %5337
  %5339 = load i16, ptr %151, align 2, !tbaa !62
  %5340 = zext i16 %5339 to i32
  %5341 = sub nsw i32 %5340, 5
  %5342 = icmp eq i32 %5338, %5341
  br i1 %5342, label %5396, label %5343

5343:                                             ; preds = %5318
  br label %5344

5344:                                             ; preds = %5343
  br label %5345

5345:                                             ; preds = %5344
  call void @llvm.lifetime.start.p0(i64 4, ptr %153) #11
  %5346 = call ptr @__errno_location() #12
  %5347 = load i32, ptr %5346, align 4, !tbaa !5
  store i32 %5347, ptr %153, align 4, !tbaa !5
  %5348 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5349 = call i32 @s2n_print_stacktrace(ptr noundef %5348)
  %5350 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5351 = trunc i8 %5350 to i1
  br i1 %5351, label %5352, label %5374

5352:                                             ; preds = %5345
  %5353 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5354 = call i32 @fileno(ptr noundef %5353) #11
  %5355 = call i32 @isatty(i32 noundef %5354) #11
  %5356 = icmp ne i32 %5355, 0
  br i1 %5356, label %5357, label %5374

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

5374:                                             ; preds = %5352, %5345
  %5375 = load i32, ptr %153, 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.5, i32 noundef %5378, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 272, ptr noundef %5381, ptr noundef %5384, ptr noundef %5387, i32 noundef %5389) #11
  br label %5391

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

5392:                                             ; preds = %5391
  br label %5393

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

5394:                                             ; No predecessors!
  br label %5395

5395:                                             ; preds = %5394
  br label %5396

5396:                                             ; preds = %5395, %5318
  br label %5397

5397:                                             ; preds = %5396
  br label %5398

5398:                                             ; preds = %5397
  call void @llvm.lifetime.end.p0(i64 2, ptr %151) #11
  call void @llvm.lifetime.end.p0(i64 2, ptr %147) #11
  call void @llvm.lifetime.end.p0(i64 2, ptr %146) #11
  call void @llvm.lifetime.end.p0(i64 2, ptr %145) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %144) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %131) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %130) #11
  br label %5399

5399:                                             ; preds = %5398
  %5400 = load i32, ptr @test_count, align 4, !tbaa !5
  %5401 = add nsw i32 %5400, 1
  store i32 %5401, ptr @test_count, align 4, !tbaa !5
  %5402 = load ptr, ptr %120, align 8, !tbaa !9
  %5403 = call i32 @s2n_connection_wipe(ptr noundef %5402)
  %5404 = icmp eq i32 %5403, -1
  br i1 %5404, label %5405, label %5458

5405:                                             ; preds = %5399
  br label %5406

5406:                                             ; preds = %5405
  br label %5407

5407:                                             ; preds = %5406
  call void @llvm.lifetime.start.p0(i64 4, ptr %154) #11
  %5408 = call ptr @__errno_location() #12
  %5409 = load i32, ptr %5408, align 4, !tbaa !5
  store i32 %5409, ptr %154, align 4, !tbaa !5
  %5410 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5411 = call i32 @s2n_print_stacktrace(ptr noundef %5410)
  %5412 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5413 = trunc i8 %5412 to i1
  br i1 %5413, label %5414, label %5436

5414:                                             ; preds = %5407
  %5415 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5416 = call i32 @fileno(ptr noundef %5415) #11
  %5417 = call i32 @isatty(i32 noundef %5416) #11
  %5418 = icmp ne i32 %5417, 0
  br i1 %5418, label %5419, label %5436

5419:                                             ; preds = %5414
  %5420 = load i32, ptr %154, align 4, !tbaa !5
  %5421 = call ptr @__errno_location() #12
  store i32 %5420, ptr %5421, align 4, !tbaa !5
  %5422 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5423 = load i32, ptr @test_count, align 4, !tbaa !5
  %5424 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5425 = load i32, ptr %5424, align 4, !tbaa !5
  %5426 = call ptr @s2n_strerror(i32 noundef %5425, ptr noundef @.str.4)
  %5427 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5428 = load i32, ptr %5427, align 4, !tbaa !5
  %5429 = call ptr @s2n_strerror_debug(i32 noundef %5428, ptr noundef @.str.4)
  %5430 = call ptr @__errno_location() #12
  %5431 = load i32, ptr %5430, align 4, !tbaa !5
  %5432 = call ptr @strerror(i32 noundef %5431) #11
  %5433 = call ptr @__errno_location() #12
  %5434 = load i32, ptr %5433, align 4, !tbaa !5
  %5435 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5422, ptr noundef @.str.2, i32 noundef %5423, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 277, ptr noundef %5426, ptr noundef %5429, ptr noundef %5432, i32 noundef %5434) #11
  br label %5453

5436:                                             ; preds = %5414, %5407
  %5437 = load i32, ptr %154, align 4, !tbaa !5
  %5438 = call ptr @__errno_location() #12
  store i32 %5437, ptr %5438, align 4, !tbaa !5
  %5439 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5440 = load i32, ptr @test_count, align 4, !tbaa !5
  %5441 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5442 = load i32, ptr %5441, align 4, !tbaa !5
  %5443 = call ptr @s2n_strerror(i32 noundef %5442, ptr noundef @.str.4)
  %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_debug(i32 noundef %5445, ptr noundef @.str.4)
  %5447 = call ptr @__errno_location() #12
  %5448 = load i32, ptr %5447, align 4, !tbaa !5
  %5449 = call ptr @strerror(i32 noundef %5448) #11
  %5450 = call ptr @__errno_location() #12
  %5451 = load i32, ptr %5450, align 4, !tbaa !5
  %5452 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5439, ptr noundef @.str.5, i32 noundef %5440, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 277, ptr noundef %5443, ptr noundef %5446, ptr noundef %5449, i32 noundef %5451) #11
  br label %5453

5453:                                             ; preds = %5436, %5419
  call void @llvm.lifetime.end.p0(i64 4, ptr %154) #11
  br label %5454

5454:                                             ; preds = %5453
  br label %5455

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

5456:                                             ; No predecessors!
  br label %5457

5457:                                             ; preds = %5456
  br label %5458

5458:                                             ; preds = %5457, %5399
  br label %5459

5459:                                             ; preds = %5458
  br label %5460

5460:                                             ; preds = %5459
  br label %5461

5461:                                             ; preds = %5460
  %5462 = load i32, ptr @test_count, align 4, !tbaa !5
  %5463 = add nsw i32 %5462, 1
  store i32 %5463, ptr @test_count, align 4, !tbaa !5
  %5464 = load ptr, ptr %120, align 8, !tbaa !9
  %5465 = getelementptr inbounds %struct.s2n_connection, ptr %5464, i32 0, i32 41
  %5466 = call i32 @s2n_stuffer_wipe(ptr noundef %5465)
  %5467 = icmp eq i32 %5466, -1
  br i1 %5467, label %5468, label %5521

5468:                                             ; preds = %5461
  br label %5469

5469:                                             ; preds = %5468
  br label %5470

5470:                                             ; preds = %5469
  call void @llvm.lifetime.start.p0(i64 4, ptr %155) #11
  %5471 = call ptr @__errno_location() #12
  %5472 = load i32, ptr %5471, align 4, !tbaa !5
  store i32 %5472, ptr %155, align 4, !tbaa !5
  %5473 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5474 = call i32 @s2n_print_stacktrace(ptr noundef %5473)
  %5475 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5476 = trunc i8 %5475 to i1
  br i1 %5476, label %5477, label %5499

5477:                                             ; preds = %5470
  %5478 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5479 = call i32 @fileno(ptr noundef %5478) #11
  %5480 = call i32 @isatty(i32 noundef %5479) #11
  %5481 = icmp ne i32 %5480, 0
  br i1 %5481, label %5482, label %5499

5482:                                             ; preds = %5477
  %5483 = load i32, ptr %155, align 4, !tbaa !5
  %5484 = call ptr @__errno_location() #12
  store i32 %5483, ptr %5484, align 4, !tbaa !5
  %5485 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5486 = load i32, ptr @test_count, align 4, !tbaa !5
  %5487 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5488 = load i32, ptr %5487, align 4, !tbaa !5
  %5489 = call ptr @s2n_strerror(i32 noundef %5488, ptr noundef @.str.4)
  %5490 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5491 = load i32, ptr %5490, align 4, !tbaa !5
  %5492 = call ptr @s2n_strerror_debug(i32 noundef %5491, ptr noundef @.str.4)
  %5493 = call ptr @__errno_location() #12
  %5494 = load i32, ptr %5493, align 4, !tbaa !5
  %5495 = call ptr @strerror(i32 noundef %5494) #11
  %5496 = call ptr @__errno_location() #12
  %5497 = load i32, ptr %5496, align 4, !tbaa !5
  %5498 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5485, ptr noundef @.str.2, i32 noundef %5486, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 278, ptr noundef %5489, ptr noundef %5492, ptr noundef %5495, i32 noundef %5497) #11
  br label %5516

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

5516:                                             ; preds = %5499, %5482
  call void @llvm.lifetime.end.p0(i64 4, ptr %155) #11
  br label %5517

5517:                                             ; preds = %5516
  br label %5518

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

5519:                                             ; No predecessors!
  br label %5520

5520:                                             ; preds = %5519
  br label %5521

5521:                                             ; preds = %5520, %5461
  br label %5522

5522:                                             ; preds = %5521
  br label %5523

5523:                                             ; preds = %5522
  %5524 = load ptr, ptr %120, align 8, !tbaa !9
  %5525 = getelementptr inbounds %struct.s2n_connection, ptr %5524, i32 0, i32 26
  %5526 = load ptr, ptr %5525, align 8, !tbaa !64
  %5527 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %5526, i32 0, i32 0
  %5528 = load ptr, ptr %5527, align 8, !tbaa !44
  %5529 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %5528, i32 0, i32 6
  store ptr @s2n_record_alg_aes128_gcm, ptr %5529, align 8, !tbaa !49
  br label %5530

5530:                                             ; preds = %5523
  %5531 = load i32, ptr @test_count, align 4, !tbaa !5
  %5532 = add nsw i32 %5531, 1
  store i32 %5532, ptr @test_count, align 4, !tbaa !5
  %5533 = load ptr, ptr %120, align 8, !tbaa !9
  %5534 = call i32 @setup_server_keys(ptr noundef %5533, ptr noundef %17)
  %5535 = icmp eq i32 %5534, -1
  br i1 %5535, label %5536, label %5589

5536:                                             ; preds = %5530
  br label %5537

5537:                                             ; preds = %5536
  br label %5538

5538:                                             ; preds = %5537
  call void @llvm.lifetime.start.p0(i64 4, ptr %156) #11
  %5539 = call ptr @__errno_location() #12
  %5540 = load i32, ptr %5539, align 4, !tbaa !5
  store i32 %5540, ptr %156, align 4, !tbaa !5
  %5541 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5542 = call i32 @s2n_print_stacktrace(ptr noundef %5541)
  %5543 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5544 = trunc i8 %5543 to i1
  br i1 %5544, label %5545, label %5567

5545:                                             ; preds = %5538
  %5546 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5547 = call i32 @fileno(ptr noundef %5546) #11
  %5548 = call i32 @isatty(i32 noundef %5547) #11
  %5549 = icmp ne i32 %5548, 0
  br i1 %5549, label %5550, label %5567

5550:                                             ; preds = %5545
  %5551 = load i32, ptr %156, align 4, !tbaa !5
  %5552 = call ptr @__errno_location() #12
  store i32 %5551, ptr %5552, align 4, !tbaa !5
  %5553 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5554 = load i32, ptr @test_count, align 4, !tbaa !5
  %5555 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5556 = load i32, ptr %5555, align 4, !tbaa !5
  %5557 = call ptr @s2n_strerror(i32 noundef %5556, ptr noundef @.str.4)
  %5558 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5559 = load i32, ptr %5558, align 4, !tbaa !5
  %5560 = call ptr @s2n_strerror_debug(i32 noundef %5559, ptr noundef @.str.4)
  %5561 = call ptr @__errno_location() #12
  %5562 = load i32, ptr %5561, align 4, !tbaa !5
  %5563 = call ptr @strerror(i32 noundef %5562) #11
  %5564 = call ptr @__errno_location() #12
  %5565 = load i32, ptr %5564, align 4, !tbaa !5
  %5566 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5553, ptr noundef @.str.2, i32 noundef %5554, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 281, ptr noundef %5557, ptr noundef %5560, ptr noundef %5563, i32 noundef %5565) #11
  br label %5584

5567:                                             ; preds = %5545, %5538
  %5568 = load i32, ptr %156, align 4, !tbaa !5
  %5569 = call ptr @__errno_location() #12
  store i32 %5568, ptr %5569, align 4, !tbaa !5
  %5570 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5571 = load i32, ptr @test_count, align 4, !tbaa !5
  %5572 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5573 = load i32, ptr %5572, align 4, !tbaa !5
  %5574 = call ptr @s2n_strerror(i32 noundef %5573, ptr noundef @.str.4)
  %5575 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5576 = load i32, ptr %5575, align 4, !tbaa !5
  %5577 = call ptr @s2n_strerror_debug(i32 noundef %5576, ptr noundef @.str.4)
  %5578 = call ptr @__errno_location() #12
  %5579 = load i32, ptr %5578, align 4, !tbaa !5
  %5580 = call ptr @strerror(i32 noundef %5579) #11
  %5581 = call ptr @__errno_location() #12
  %5582 = load i32, ptr %5581, align 4, !tbaa !5
  %5583 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5570, ptr noundef @.str.5, i32 noundef %5571, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 281, ptr noundef %5574, ptr noundef %5577, ptr noundef %5580, i32 noundef %5582) #11
  br label %5584

5584:                                             ; preds = %5567, %5550
  call void @llvm.lifetime.end.p0(i64 4, ptr %156) #11
  br label %5585

5585:                                             ; preds = %5584
  br label %5586

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

5587:                                             ; No predecessors!
  br label %5588

5588:                                             ; preds = %5587
  br label %5589

5589:                                             ; preds = %5588, %5530
  br label %5590

5590:                                             ; preds = %5589
  br label %5591

5591:                                             ; preds = %5590
  br label %5592

5592:                                             ; preds = %5591
  %5593 = load i32, ptr @test_count, align 4, !tbaa !5
  %5594 = add nsw i32 %5593, 1
  store i32 %5594, ptr @test_count, align 4, !tbaa !5
  %5595 = load ptr, ptr %120, align 8, !tbaa !9
  %5596 = call i32 @s2n_record_min_write_payload_size(ptr noundef %5595, ptr noundef %122)
  %5597 = getelementptr inbounds %struct.s2n_result, ptr %157, i32 0, i32 0
  store i32 %5596, ptr %5597, align 4
  %5598 = getelementptr inbounds %struct.s2n_result, ptr %157, i32 0, i32 0
  %5599 = load i32, ptr %5598, align 4
  %5600 = call zeroext i1 @s2n_result_is_ok(i32 %5599)
  br i1 %5600, label %5654, label %5601

5601:                                             ; preds = %5592
  br label %5602

5602:                                             ; preds = %5601
  br label %5603

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

5610:                                             ; preds = %5603
  %5611 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5612 = call i32 @fileno(ptr noundef %5611) #11
  %5613 = call i32 @isatty(i32 noundef %5612) #11
  %5614 = icmp ne i32 %5613, 0
  br i1 %5614, label %5615, label %5632

5615:                                             ; preds = %5610
  %5616 = load i32, ptr %158, align 4, !tbaa !5
  %5617 = call ptr @__errno_location() #12
  store i32 %5616, ptr %5617, align 4, !tbaa !5
  %5618 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5619 = load i32, ptr @test_count, align 4, !tbaa !5
  %5620 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5621 = load i32, ptr %5620, align 4, !tbaa !5
  %5622 = call ptr @s2n_strerror(i32 noundef %5621, ptr noundef @.str.4)
  %5623 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5624 = load i32, ptr %5623, align 4, !tbaa !5
  %5625 = call ptr @s2n_strerror_debug(i32 noundef %5624, ptr noundef @.str.4)
  %5626 = call ptr @__errno_location() #12
  %5627 = load i32, ptr %5626, align 4, !tbaa !5
  %5628 = call ptr @strerror(i32 noundef %5627) #11
  %5629 = call ptr @__errno_location() #12
  %5630 = load i32, ptr %5629, align 4, !tbaa !5
  %5631 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5618, ptr noundef @.str.2, i32 noundef %5619, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 283, ptr noundef %5622, ptr noundef %5625, ptr noundef %5628, i32 noundef %5630) #11
  br label %5649

5632:                                             ; preds = %5610, %5603
  %5633 = load i32, ptr %158, align 4, !tbaa !5
  %5634 = call ptr @__errno_location() #12
  store i32 %5633, ptr %5634, align 4, !tbaa !5
  %5635 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5636 = load i32, ptr @test_count, align 4, !tbaa !5
  %5637 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5638 = load i32, ptr %5637, align 4, !tbaa !5
  %5639 = call ptr @s2n_strerror(i32 noundef %5638, ptr noundef @.str.4)
  %5640 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5641 = load i32, ptr %5640, align 4, !tbaa !5
  %5642 = call ptr @s2n_strerror_debug(i32 noundef %5641, ptr noundef @.str.4)
  %5643 = call ptr @__errno_location() #12
  %5644 = load i32, ptr %5643, align 4, !tbaa !5
  %5645 = call ptr @strerror(i32 noundef %5644) #11
  %5646 = call ptr @__errno_location() #12
  %5647 = load i32, ptr %5646, align 4, !tbaa !5
  %5648 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5635, ptr noundef @.str.5, i32 noundef %5636, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 283, ptr noundef %5639, ptr noundef %5642, ptr noundef %5645, i32 noundef %5647) #11
  br label %5649

5649:                                             ; preds = %5632, %5615
  call void @llvm.lifetime.end.p0(i64 4, ptr %158) #11
  br label %5650

5650:                                             ; preds = %5649
  br label %5651

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

5652:                                             ; No predecessors!
  br label %5653

5653:                                             ; preds = %5652
  br label %5654

5654:                                             ; preds = %5653, %5592
  br label %5655

5655:                                             ; preds = %5654
  br label %5656

5656:                                             ; preds = %5655
  %5657 = load i16, ptr %122, align 2, !tbaa !62
  %5658 = zext i16 %5657 to i32
  %5659 = getelementptr inbounds %struct.s2n_blob, ptr %12, i32 0, i32 1
  store i32 %5658, ptr %5659, align 8, !tbaa !60
  call void @llvm.lifetime.start.p0(i64 2, ptr %159) #11
  store i16 8, ptr %159, align 2, !tbaa !62
  call void @llvm.lifetime.start.p0(i64 2, ptr %160) #11
  store i16 16, ptr %160, align 2, !tbaa !62
  br label %5660

5660:                                             ; preds = %5656
  %5661 = load i32, ptr @test_count, align 4, !tbaa !5
  %5662 = add nsw i32 %5661, 1
  store i32 %5662, ptr @test_count, align 4, !tbaa !5
  %5663 = load i16, ptr %122, align 2, !tbaa !62
  %5664 = zext i16 %5663 to i32
  %5665 = icmp eq i32 %5664, 1391
  br i1 %5665, label %5719, label %5666

5666:                                             ; preds = %5660
  br label %5667

5667:                                             ; preds = %5666
  br label %5668

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

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

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

5697:                                             ; preds = %5675, %5668
  %5698 = load i32, ptr %161, align 4, !tbaa !5
  %5699 = call ptr @__errno_location() #12
  store i32 %5698, ptr %5699, align 4, !tbaa !5
  %5700 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5701 = load i32, ptr @test_count, align 4, !tbaa !5
  %5702 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5703 = load i32, ptr %5702, align 4, !tbaa !5
  %5704 = call ptr @s2n_strerror(i32 noundef %5703, ptr noundef @.str.4)
  %5705 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5706 = load i32, ptr %5705, align 4, !tbaa !5
  %5707 = call ptr @s2n_strerror_debug(i32 noundef %5706, ptr noundef @.str.4)
  %5708 = call ptr @__errno_location() #12
  %5709 = load i32, ptr %5708, align 4, !tbaa !5
  %5710 = call ptr @strerror(i32 noundef %5709) #11
  %5711 = call ptr @__errno_location() #12
  %5712 = load i32, ptr %5711, align 4, !tbaa !5
  %5713 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5700, ptr noundef @.str.5, i32 noundef %5701, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 287, ptr noundef %5704, ptr noundef %5707, ptr noundef %5710, i32 noundef %5712) #11
  br label %5714

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

5715:                                             ; preds = %5714
  br label %5716

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

5717:                                             ; No predecessors!
  br label %5718

5718:                                             ; preds = %5717
  br label %5719

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

5720:                                             ; preds = %5719
  br label %5721

5721:                                             ; preds = %5720
  br label %5722

5722:                                             ; preds = %5721
  %5723 = load i32, ptr @test_count, align 4, !tbaa !5
  %5724 = add nsw i32 %5723, 1
  store i32 %5724, ptr @test_count, align 4, !tbaa !5
  %5725 = load ptr, ptr %120, align 8, !tbaa !9
  %5726 = call i32 @s2n_record_write(ptr noundef %5725, i8 noundef zeroext 23, ptr noundef %12)
  %5727 = getelementptr inbounds %struct.s2n_result, ptr %162, i32 0, i32 0
  store i32 %5726, ptr %5727, align 4
  %5728 = getelementptr inbounds %struct.s2n_result, ptr %162, i32 0, i32 0
  %5729 = load i32, ptr %5728, align 4
  %5730 = call zeroext i1 @s2n_result_is_ok(i32 %5729)
  br i1 %5730, label %5784, label %5731

5731:                                             ; preds = %5722
  br label %5732

5732:                                             ; preds = %5731
  br label %5733

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

5740:                                             ; preds = %5733
  %5741 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5742 = call i32 @fileno(ptr noundef %5741) #11
  %5743 = call i32 @isatty(i32 noundef %5742) #11
  %5744 = icmp ne i32 %5743, 0
  br i1 %5744, label %5745, label %5762

5745:                                             ; preds = %5740
  %5746 = load i32, ptr %163, align 4, !tbaa !5
  %5747 = call ptr @__errno_location() #12
  store i32 %5746, ptr %5747, align 4, !tbaa !5
  %5748 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5749 = load i32, ptr @test_count, align 4, !tbaa !5
  %5750 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5751 = load i32, ptr %5750, align 4, !tbaa !5
  %5752 = call ptr @s2n_strerror(i32 noundef %5751, ptr noundef @.str.4)
  %5753 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5754 = load i32, ptr %5753, align 4, !tbaa !5
  %5755 = call ptr @s2n_strerror_debug(i32 noundef %5754, ptr noundef @.str.4)
  %5756 = call ptr @__errno_location() #12
  %5757 = load i32, ptr %5756, align 4, !tbaa !5
  %5758 = call ptr @strerror(i32 noundef %5757) #11
  %5759 = call ptr @__errno_location() #12
  %5760 = load i32, ptr %5759, align 4, !tbaa !5
  %5761 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5748, ptr noundef @.str.2, i32 noundef %5749, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 289, ptr noundef %5752, ptr noundef %5755, ptr noundef %5758, i32 noundef %5760) #11
  br label %5779

5762:                                             ; preds = %5740, %5733
  %5763 = load i32, ptr %163, align 4, !tbaa !5
  %5764 = call ptr @__errno_location() #12
  store i32 %5763, ptr %5764, align 4, !tbaa !5
  %5765 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5766 = load i32, ptr @test_count, align 4, !tbaa !5
  %5767 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5768 = load i32, ptr %5767, align 4, !tbaa !5
  %5769 = call ptr @s2n_strerror(i32 noundef %5768, ptr noundef @.str.4)
  %5770 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5771 = load i32, ptr %5770, align 4, !tbaa !5
  %5772 = call ptr @s2n_strerror_debug(i32 noundef %5771, ptr noundef @.str.4)
  %5773 = call ptr @__errno_location() #12
  %5774 = load i32, ptr %5773, align 4, !tbaa !5
  %5775 = call ptr @strerror(i32 noundef %5774) #11
  %5776 = call ptr @__errno_location() #12
  %5777 = load i32, ptr %5776, align 4, !tbaa !5
  %5778 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5765, ptr noundef @.str.5, i32 noundef %5766, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 289, ptr noundef %5769, ptr noundef %5772, ptr noundef %5775, i32 noundef %5777) #11
  br label %5779

5779:                                             ; preds = %5762, %5745
  call void @llvm.lifetime.end.p0(i64 4, ptr %163) #11
  br label %5780

5780:                                             ; preds = %5779
  br label %5781

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

5782:                                             ; No predecessors!
  br label %5783

5783:                                             ; preds = %5782
  br label %5784

5784:                                             ; preds = %5783, %5722
  br label %5785

5785:                                             ; preds = %5784
  br label %5786

5786:                                             ; preds = %5785
  call void @llvm.lifetime.start.p0(i64 2, ptr %164) #11
  %5787 = load ptr, ptr %120, align 8, !tbaa !9
  %5788 = getelementptr inbounds %struct.s2n_connection, ptr %5787, i32 0, i32 41
  %5789 = getelementptr inbounds %struct.s2n_stuffer, ptr %5788, i32 0, i32 2
  %5790 = load i32, ptr %5789, align 4, !tbaa !65
  %5791 = load ptr, ptr %120, align 8, !tbaa !9
  %5792 = getelementptr inbounds %struct.s2n_connection, ptr %5791, i32 0, i32 41
  %5793 = getelementptr inbounds %struct.s2n_stuffer, ptr %5792, i32 0, i32 1
  %5794 = load i32, ptr %5793, align 8, !tbaa !66
  %5795 = sub i32 %5790, %5794
  %5796 = trunc i32 %5795 to i16
  store i16 %5796, ptr %164, align 2, !tbaa !62
  br label %5797

5797:                                             ; preds = %5786
  %5798 = load i32, ptr @test_count, align 4, !tbaa !5
  %5799 = add nsw i32 %5798, 1
  store i32 %5799, ptr @test_count, align 4, !tbaa !5
  %5800 = load i16, ptr %164, align 2, !tbaa !62
  %5801 = zext i16 %5800 to i32
  %5802 = icmp sle i32 %5801, 1420
  br i1 %5802, label %5856, label %5803

5803:                                             ; preds = %5797
  br label %5804

5804:                                             ; preds = %5803
  br label %5805

5805:                                             ; preds = %5804
  call void @llvm.lifetime.start.p0(i64 4, ptr %165) #11
  %5806 = call ptr @__errno_location() #12
  %5807 = load i32, ptr %5806, align 4, !tbaa !5
  store i32 %5807, ptr %165, align 4, !tbaa !5
  %5808 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5809 = call i32 @s2n_print_stacktrace(ptr noundef %5808)
  %5810 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5811 = trunc i8 %5810 to i1
  br i1 %5811, label %5812, label %5834

5812:                                             ; preds = %5805
  %5813 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5814 = call i32 @fileno(ptr noundef %5813) #11
  %5815 = call i32 @isatty(i32 noundef %5814) #11
  %5816 = icmp ne i32 %5815, 0
  br i1 %5816, label %5817, label %5834

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

5834:                                             ; preds = %5812, %5805
  %5835 = load i32, ptr %165, align 4, !tbaa !5
  %5836 = call ptr @__errno_location() #12
  store i32 %5835, ptr %5836, align 4, !tbaa !5
  %5837 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5838 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %5840, ptr noundef @.str.4)
  %5842 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5843 = load i32, ptr %5842, align 4, !tbaa !5
  %5844 = call ptr @s2n_strerror_debug(i32 noundef %5843, ptr noundef @.str.4)
  %5845 = call ptr @__errno_location() #12
  %5846 = load i32, ptr %5845, align 4, !tbaa !5
  %5847 = call ptr @strerror(i32 noundef %5846) #11
  %5848 = call ptr @__errno_location() #12
  %5849 = load i32, ptr %5848, align 4, !tbaa !5
  %5850 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5837, ptr noundef @.str.5, i32 noundef %5838, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 291, ptr noundef %5841, ptr noundef %5844, ptr noundef %5847, i32 noundef %5849) #11
  br label %5851

5851:                                             ; preds = %5834, %5817
  call void @llvm.lifetime.end.p0(i64 4, ptr %165) #11
  br label %5852

5852:                                             ; preds = %5851
  br label %5853

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

5854:                                             ; No predecessors!
  br label %5855

5855:                                             ; preds = %5854
  br label %5856

5856:                                             ; preds = %5855, %5797
  br label %5857

5857:                                             ; preds = %5856
  br label %5858

5858:                                             ; preds = %5857
  br label %5859

5859:                                             ; preds = %5858
  %5860 = load i32, ptr @test_count, align 4, !tbaa !5
  %5861 = add nsw i32 %5860, 1
  store i32 %5861, ptr @test_count, align 4, !tbaa !5
  %5862 = load ptr, ptr %120, align 8, !tbaa !9
  %5863 = getelementptr inbounds %struct.s2n_connection, ptr %5862, i32 0, i32 41
  %5864 = getelementptr inbounds %struct.s2n_stuffer, ptr %5863, i32 0, i32 0
  %5865 = getelementptr inbounds %struct.s2n_blob, ptr %5864, i32 0, i32 0
  %5866 = load ptr, ptr %5865, align 8, !tbaa !67
  %5867 = getelementptr inbounds i8, ptr %5866, i64 3
  %5868 = load i8, ptr %5867, align 1, !tbaa !59
  %5869 = zext i8 %5868 to i32
  %5870 = shl i32 %5869, 8
  %5871 = load ptr, ptr %120, align 8, !tbaa !9
  %5872 = getelementptr inbounds %struct.s2n_connection, ptr %5871, i32 0, i32 41
  %5873 = getelementptr inbounds %struct.s2n_stuffer, ptr %5872, i32 0, i32 0
  %5874 = getelementptr inbounds %struct.s2n_blob, ptr %5873, i32 0, i32 0
  %5875 = load ptr, ptr %5874, align 8, !tbaa !67
  %5876 = getelementptr inbounds i8, ptr %5875, i64 4
  %5877 = load i8, ptr %5876, align 1, !tbaa !59
  %5878 = zext i8 %5877 to i32
  %5879 = or i32 %5870, %5878
  %5880 = load i16, ptr %164, align 2, !tbaa !62
  %5881 = zext i16 %5880 to i32
  %5882 = sub nsw i32 %5881, 5
  %5883 = icmp eq i32 %5879, %5882
  br i1 %5883, label %5937, label %5884

5884:                                             ; preds = %5859
  br label %5885

5885:                                             ; preds = %5884
  br label %5886

5886:                                             ; preds = %5885
  call void @llvm.lifetime.start.p0(i64 4, ptr %166) #11
  %5887 = call ptr @__errno_location() #12
  %5888 = load i32, ptr %5887, align 4, !tbaa !5
  store i32 %5888, ptr %166, align 4, !tbaa !5
  %5889 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5890 = call i32 @s2n_print_stacktrace(ptr noundef %5889)
  %5891 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5892 = trunc i8 %5891 to i1
  br i1 %5892, label %5893, label %5915

5893:                                             ; preds = %5886
  %5894 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5895 = call i32 @fileno(ptr noundef %5894) #11
  %5896 = call i32 @isatty(i32 noundef %5895) #11
  %5897 = icmp ne i32 %5896, 0
  br i1 %5897, label %5898, label %5915

5898:                                             ; preds = %5893
  %5899 = load i32, ptr %166, align 4, !tbaa !5
  %5900 = call ptr @__errno_location() #12
  store i32 %5899, ptr %5900, align 4, !tbaa !5
  %5901 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5902 = load i32, ptr @test_count, align 4, !tbaa !5
  %5903 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5904 = load i32, ptr %5903, align 4, !tbaa !5
  %5905 = call ptr @s2n_strerror(i32 noundef %5904, ptr noundef @.str.4)
  %5906 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5907 = load i32, ptr %5906, align 4, !tbaa !5
  %5908 = call ptr @s2n_strerror_debug(i32 noundef %5907, ptr noundef @.str.4)
  %5909 = call ptr @__errno_location() #12
  %5910 = load i32, ptr %5909, align 4, !tbaa !5
  %5911 = call ptr @strerror(i32 noundef %5910) #11
  %5912 = call ptr @__errno_location() #12
  %5913 = load i32, ptr %5912, align 4, !tbaa !5
  %5914 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5901, ptr noundef @.str.2, i32 noundef %5902, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 292, ptr noundef %5905, ptr noundef %5908, ptr noundef %5911, i32 noundef %5913) #11
  br label %5932

5915:                                             ; preds = %5893, %5886
  %5916 = load i32, ptr %166, align 4, !tbaa !5
  %5917 = call ptr @__errno_location() #12
  store i32 %5916, ptr %5917, align 4, !tbaa !5
  %5918 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5919 = load i32, ptr @test_count, align 4, !tbaa !5
  %5920 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5921 = load i32, ptr %5920, align 4, !tbaa !5
  %5922 = call ptr @s2n_strerror(i32 noundef %5921, ptr noundef @.str.4)
  %5923 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5924 = load i32, ptr %5923, align 4, !tbaa !5
  %5925 = call ptr @s2n_strerror_debug(i32 noundef %5924, ptr noundef @.str.4)
  %5926 = call ptr @__errno_location() #12
  %5927 = load i32, ptr %5926, align 4, !tbaa !5
  %5928 = call ptr @strerror(i32 noundef %5927) #11
  %5929 = call ptr @__errno_location() #12
  %5930 = load i32, ptr %5929, align 4, !tbaa !5
  %5931 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5918, ptr noundef @.str.5, i32 noundef %5919, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 292, ptr noundef %5922, ptr noundef %5925, ptr noundef %5928, i32 noundef %5930) #11
  br label %5932

5932:                                             ; preds = %5915, %5898
  call void @llvm.lifetime.end.p0(i64 4, ptr %166) #11
  br label %5933

5933:                                             ; preds = %5932
  br label %5934

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

5935:                                             ; No predecessors!
  br label %5936

5936:                                             ; preds = %5935
  br label %5937

5937:                                             ; preds = %5936, %5859
  br label %5938

5938:                                             ; preds = %5937
  br label %5939

5939:                                             ; preds = %5938
  call void @llvm.lifetime.end.p0(i64 2, ptr %164) #11
  call void @llvm.lifetime.end.p0(i64 2, ptr %160) #11
  call void @llvm.lifetime.end.p0(i64 2, ptr %159) #11
  br label %5940

5940:                                             ; preds = %5939
  %5941 = load i32, ptr @test_count, align 4, !tbaa !5
  %5942 = add nsw i32 %5941, 1
  store i32 %5942, ptr @test_count, align 4, !tbaa !5
  %5943 = load ptr, ptr %120, align 8, !tbaa !9
  %5944 = call i32 @destroy_server_keys(ptr noundef %5943)
  %5945 = icmp eq i32 %5944, -1
  br i1 %5945, label %5946, label %5999

5946:                                             ; preds = %5940
  br label %5947

5947:                                             ; preds = %5946
  br label %5948

5948:                                             ; preds = %5947
  call void @llvm.lifetime.start.p0(i64 4, ptr %167) #11
  %5949 = call ptr @__errno_location() #12
  %5950 = load i32, ptr %5949, align 4, !tbaa !5
  store i32 %5950, ptr %167, align 4, !tbaa !5
  %5951 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5952 = call i32 @s2n_print_stacktrace(ptr noundef %5951)
  %5953 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5954 = trunc i8 %5953 to i1
  br i1 %5954, label %5955, label %5977

5955:                                             ; preds = %5948
  %5956 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5957 = call i32 @fileno(ptr noundef %5956) #11
  %5958 = call i32 @isatty(i32 noundef %5957) #11
  %5959 = icmp ne i32 %5958, 0
  br i1 %5959, label %5960, label %5977

5960:                                             ; preds = %5955
  %5961 = load i32, ptr %167, align 4, !tbaa !5
  %5962 = call ptr @__errno_location() #12
  store i32 %5961, ptr %5962, align 4, !tbaa !5
  %5963 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5964 = load i32, ptr @test_count, align 4, !tbaa !5
  %5965 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5966 = load i32, ptr %5965, align 4, !tbaa !5
  %5967 = call ptr @s2n_strerror(i32 noundef %5966, ptr noundef @.str.4)
  %5968 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5969 = load i32, ptr %5968, align 4, !tbaa !5
  %5970 = call ptr @s2n_strerror_debug(i32 noundef %5969, ptr noundef @.str.4)
  %5971 = call ptr @__errno_location() #12
  %5972 = load i32, ptr %5971, align 4, !tbaa !5
  %5973 = call ptr @strerror(i32 noundef %5972) #11
  %5974 = call ptr @__errno_location() #12
  %5975 = load i32, ptr %5974, align 4, !tbaa !5
  %5976 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5963, ptr noundef @.str.2, i32 noundef %5964, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 297, ptr noundef %5967, ptr noundef %5970, ptr noundef %5973, i32 noundef %5975) #11
  br label %5994

5977:                                             ; preds = %5955, %5948
  %5978 = load i32, ptr %167, align 4, !tbaa !5
  %5979 = call ptr @__errno_location() #12
  store i32 %5978, ptr %5979, align 4, !tbaa !5
  %5980 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5981 = load i32, ptr @test_count, align 4, !tbaa !5
  %5982 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5983 = load i32, ptr %5982, align 4, !tbaa !5
  %5984 = call ptr @s2n_strerror(i32 noundef %5983, ptr noundef @.str.4)
  %5985 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5986 = load i32, ptr %5985, align 4, !tbaa !5
  %5987 = call ptr @s2n_strerror_debug(i32 noundef %5986, ptr noundef @.str.4)
  %5988 = call ptr @__errno_location() #12
  %5989 = load i32, ptr %5988, align 4, !tbaa !5
  %5990 = call ptr @strerror(i32 noundef %5989) #11
  %5991 = call ptr @__errno_location() #12
  %5992 = load i32, ptr %5991, align 4, !tbaa !5
  %5993 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5980, ptr noundef @.str.5, i32 noundef %5981, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 297, ptr noundef %5984, ptr noundef %5987, ptr noundef %5990, i32 noundef %5992) #11
  br label %5994

5994:                                             ; preds = %5977, %5960
  call void @llvm.lifetime.end.p0(i64 4, ptr %167) #11
  br label %5995

5995:                                             ; preds = %5994
  br label %5996

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

5997:                                             ; No predecessors!
  br label %5998

5998:                                             ; preds = %5997
  br label %5999

5999:                                             ; preds = %5998, %5940
  br label %6000

6000:                                             ; preds = %5999
  br label %6001

6001:                                             ; preds = %6000
  br label %6002

6002:                                             ; preds = %6001
  %6003 = load i32, ptr @test_count, align 4, !tbaa !5
  %6004 = add nsw i32 %6003, 1
  store i32 %6004, ptr @test_count, align 4, !tbaa !5
  %6005 = load ptr, ptr %120, align 8, !tbaa !9
  %6006 = call i32 @s2n_connection_wipe(ptr noundef %6005)
  %6007 = icmp eq i32 %6006, -1
  br i1 %6007, label %6008, label %6061

6008:                                             ; preds = %6002
  br label %6009

6009:                                             ; preds = %6008
  br label %6010

6010:                                             ; preds = %6009
  call void @llvm.lifetime.start.p0(i64 4, ptr %168) #11
  %6011 = call ptr @__errno_location() #12
  %6012 = load i32, ptr %6011, align 4, !tbaa !5
  store i32 %6012, ptr %168, align 4, !tbaa !5
  %6013 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6014 = call i32 @s2n_print_stacktrace(ptr noundef %6013)
  %6015 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6016 = trunc i8 %6015 to i1
  br i1 %6016, label %6017, label %6039

6017:                                             ; preds = %6010
  %6018 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6019 = call i32 @fileno(ptr noundef %6018) #11
  %6020 = call i32 @isatty(i32 noundef %6019) #11
  %6021 = icmp ne i32 %6020, 0
  br i1 %6021, label %6022, label %6039

6022:                                             ; preds = %6017
  %6023 = load i32, ptr %168, align 4, !tbaa !5
  %6024 = call ptr @__errno_location() #12
  store i32 %6023, ptr %6024, align 4, !tbaa !5
  %6025 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6026 = load i32, ptr @test_count, align 4, !tbaa !5
  %6027 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6028 = load i32, ptr %6027, align 4, !tbaa !5
  %6029 = call ptr @s2n_strerror(i32 noundef %6028, ptr noundef @.str.4)
  %6030 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6031 = load i32, ptr %6030, align 4, !tbaa !5
  %6032 = call ptr @s2n_strerror_debug(i32 noundef %6031, ptr noundef @.str.4)
  %6033 = call ptr @__errno_location() #12
  %6034 = load i32, ptr %6033, align 4, !tbaa !5
  %6035 = call ptr @strerror(i32 noundef %6034) #11
  %6036 = call ptr @__errno_location() #12
  %6037 = load i32, ptr %6036, align 4, !tbaa !5
  %6038 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6025, ptr noundef @.str.2, i32 noundef %6026, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 298, ptr noundef %6029, ptr noundef %6032, ptr noundef %6035, i32 noundef %6037) #11
  br label %6056

6039:                                             ; preds = %6017, %6010
  %6040 = load i32, ptr %168, align 4, !tbaa !5
  %6041 = call ptr @__errno_location() #12
  store i32 %6040, ptr %6041, align 4, !tbaa !5
  %6042 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6043 = load i32, ptr @test_count, align 4, !tbaa !5
  %6044 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6045 = load i32, ptr %6044, align 4, !tbaa !5
  %6046 = call ptr @s2n_strerror(i32 noundef %6045, ptr noundef @.str.4)
  %6047 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6048 = load i32, ptr %6047, align 4, !tbaa !5
  %6049 = call ptr @s2n_strerror_debug(i32 noundef %6048, ptr noundef @.str.4)
  %6050 = call ptr @__errno_location() #12
  %6051 = load i32, ptr %6050, align 4, !tbaa !5
  %6052 = call ptr @strerror(i32 noundef %6051) #11
  %6053 = call ptr @__errno_location() #12
  %6054 = load i32, ptr %6053, align 4, !tbaa !5
  %6055 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6042, ptr noundef @.str.5, i32 noundef %6043, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 298, ptr noundef %6046, ptr noundef %6049, ptr noundef %6052, i32 noundef %6054) #11
  br label %6056

6056:                                             ; preds = %6039, %6022
  call void @llvm.lifetime.end.p0(i64 4, ptr %168) #11
  br label %6057

6057:                                             ; preds = %6056
  br label %6058

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

6059:                                             ; No predecessors!
  br label %6060

6060:                                             ; preds = %6059
  br label %6061

6061:                                             ; preds = %6060, %6002
  br label %6062

6062:                                             ; preds = %6061
  br label %6063

6063:                                             ; preds = %6062
  br label %6064

6064:                                             ; preds = %6063
  %6065 = load i32, ptr @test_count, align 4, !tbaa !5
  %6066 = add nsw i32 %6065, 1
  store i32 %6066, ptr @test_count, align 4, !tbaa !5
  %6067 = load ptr, ptr %120, align 8, !tbaa !9
  %6068 = getelementptr inbounds %struct.s2n_connection, ptr %6067, i32 0, i32 41
  %6069 = call i32 @s2n_stuffer_wipe(ptr noundef %6068)
  %6070 = icmp eq i32 %6069, -1
  br i1 %6070, label %6071, label %6124

6071:                                             ; preds = %6064
  br label %6072

6072:                                             ; preds = %6071
  br label %6073

6073:                                             ; preds = %6072
  call void @llvm.lifetime.start.p0(i64 4, ptr %169) #11
  %6074 = call ptr @__errno_location() #12
  %6075 = load i32, ptr %6074, align 4, !tbaa !5
  store i32 %6075, ptr %169, align 4, !tbaa !5
  %6076 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6077 = call i32 @s2n_print_stacktrace(ptr noundef %6076)
  %6078 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6079 = trunc i8 %6078 to i1
  br i1 %6079, label %6080, label %6102

6080:                                             ; preds = %6073
  %6081 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6082 = call i32 @fileno(ptr noundef %6081) #11
  %6083 = call i32 @isatty(i32 noundef %6082) #11
  %6084 = icmp ne i32 %6083, 0
  br i1 %6084, label %6085, label %6102

6085:                                             ; preds = %6080
  %6086 = load i32, ptr %169, align 4, !tbaa !5
  %6087 = call ptr @__errno_location() #12
  store i32 %6086, ptr %6087, align 4, !tbaa !5
  %6088 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6089 = load i32, ptr @test_count, align 4, !tbaa !5
  %6090 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6091 = load i32, ptr %6090, align 4, !tbaa !5
  %6092 = call ptr @s2n_strerror(i32 noundef %6091, ptr noundef @.str.4)
  %6093 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6094 = load i32, ptr %6093, align 4, !tbaa !5
  %6095 = call ptr @s2n_strerror_debug(i32 noundef %6094, ptr noundef @.str.4)
  %6096 = call ptr @__errno_location() #12
  %6097 = load i32, ptr %6096, align 4, !tbaa !5
  %6098 = call ptr @strerror(i32 noundef %6097) #11
  %6099 = call ptr @__errno_location() #12
  %6100 = load i32, ptr %6099, align 4, !tbaa !5
  %6101 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6088, ptr noundef @.str.2, i32 noundef %6089, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 299, ptr noundef %6092, ptr noundef %6095, ptr noundef %6098, i32 noundef %6100) #11
  br label %6119

6102:                                             ; preds = %6080, %6073
  %6103 = load i32, ptr %169, align 4, !tbaa !5
  %6104 = call ptr @__errno_location() #12
  store i32 %6103, ptr %6104, align 4, !tbaa !5
  %6105 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6106 = load i32, ptr @test_count, align 4, !tbaa !5
  %6107 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6108 = load i32, ptr %6107, align 4, !tbaa !5
  %6109 = call ptr @s2n_strerror(i32 noundef %6108, ptr noundef @.str.4)
  %6110 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6111 = load i32, ptr %6110, align 4, !tbaa !5
  %6112 = call ptr @s2n_strerror_debug(i32 noundef %6111, ptr noundef @.str.4)
  %6113 = call ptr @__errno_location() #12
  %6114 = load i32, ptr %6113, align 4, !tbaa !5
  %6115 = call ptr @strerror(i32 noundef %6114) #11
  %6116 = call ptr @__errno_location() #12
  %6117 = load i32, ptr %6116, align 4, !tbaa !5
  %6118 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6105, ptr noundef @.str.5, i32 noundef %6106, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 299, ptr noundef %6109, ptr noundef %6112, ptr noundef %6115, i32 noundef %6117) #11
  br label %6119

6119:                                             ; preds = %6102, %6085
  call void @llvm.lifetime.end.p0(i64 4, ptr %169) #11
  br label %6120

6120:                                             ; preds = %6119
  br label %6121

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

6122:                                             ; No predecessors!
  br label %6123

6123:                                             ; preds = %6122
  br label %6124

6124:                                             ; preds = %6123, %6064
  br label %6125

6125:                                             ; preds = %6124
  br label %6126

6126:                                             ; preds = %6125
  %6127 = load ptr, ptr %120, align 8, !tbaa !9
  %6128 = getelementptr inbounds %struct.s2n_connection, ptr %6127, i32 0, i32 23
  store i8 34, ptr %6128, align 4, !tbaa !57
  %6129 = load ptr, ptr %120, align 8, !tbaa !9
  %6130 = getelementptr inbounds %struct.s2n_connection, ptr %6129, i32 0, i32 26
  %6131 = load ptr, ptr %6130, align 8, !tbaa !64
  %6132 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %6131, i32 0, i32 0
  %6133 = load ptr, ptr %6132, align 8, !tbaa !44
  %6134 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %6133, i32 0, i32 6
  store ptr @s2n_tls13_record_alg_aes128_gcm, ptr %6134, align 8, !tbaa !49
  br label %6135

6135:                                             ; preds = %6126
  %6136 = load i32, ptr @test_count, align 4, !tbaa !5
  %6137 = add nsw i32 %6136, 1
  store i32 %6137, ptr @test_count, align 4, !tbaa !5
  %6138 = load ptr, ptr %120, align 8, !tbaa !9
  %6139 = call i32 @setup_server_keys(ptr noundef %6138, ptr noundef %17)
  %6140 = icmp eq i32 %6139, -1
  br i1 %6140, label %6141, label %6194

6141:                                             ; preds = %6135
  br label %6142

6142:                                             ; preds = %6141
  br label %6143

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

6150:                                             ; preds = %6143
  %6151 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6152 = call i32 @fileno(ptr noundef %6151) #11
  %6153 = call i32 @isatty(i32 noundef %6152) #11
  %6154 = icmp ne i32 %6153, 0
  br i1 %6154, label %6155, label %6172

6155:                                             ; preds = %6150
  %6156 = load i32, ptr %170, align 4, !tbaa !5
  %6157 = call ptr @__errno_location() #12
  store i32 %6156, ptr %6157, align 4, !tbaa !5
  %6158 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6159 = load i32, ptr @test_count, align 4, !tbaa !5
  %6160 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6161 = load i32, ptr %6160, align 4, !tbaa !5
  %6162 = call ptr @s2n_strerror(i32 noundef %6161, ptr noundef @.str.4)
  %6163 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6164 = load i32, ptr %6163, align 4, !tbaa !5
  %6165 = call ptr @s2n_strerror_debug(i32 noundef %6164, ptr noundef @.str.4)
  %6166 = call ptr @__errno_location() #12
  %6167 = load i32, ptr %6166, align 4, !tbaa !5
  %6168 = call ptr @strerror(i32 noundef %6167) #11
  %6169 = call ptr @__errno_location() #12
  %6170 = load i32, ptr %6169, align 4, !tbaa !5
  %6171 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6158, ptr noundef @.str.2, i32 noundef %6159, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 303, ptr noundef %6162, ptr noundef %6165, ptr noundef %6168, i32 noundef %6170) #11
  br label %6189

6172:                                             ; preds = %6150, %6143
  %6173 = load i32, ptr %170, align 4, !tbaa !5
  %6174 = call ptr @__errno_location() #12
  store i32 %6173, ptr %6174, align 4, !tbaa !5
  %6175 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6176 = load i32, ptr @test_count, align 4, !tbaa !5
  %6177 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6178 = load i32, ptr %6177, align 4, !tbaa !5
  %6179 = call ptr @s2n_strerror(i32 noundef %6178, ptr noundef @.str.4)
  %6180 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6181 = load i32, ptr %6180, align 4, !tbaa !5
  %6182 = call ptr @s2n_strerror_debug(i32 noundef %6181, ptr noundef @.str.4)
  %6183 = call ptr @__errno_location() #12
  %6184 = load i32, ptr %6183, align 4, !tbaa !5
  %6185 = call ptr @strerror(i32 noundef %6184) #11
  %6186 = call ptr @__errno_location() #12
  %6187 = load i32, ptr %6186, align 4, !tbaa !5
  %6188 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6175, ptr noundef @.str.5, i32 noundef %6176, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 303, ptr noundef %6179, ptr noundef %6182, ptr noundef %6185, i32 noundef %6187) #11
  br label %6189

6189:                                             ; preds = %6172, %6155
  call void @llvm.lifetime.end.p0(i64 4, ptr %170) #11
  br label %6190

6190:                                             ; preds = %6189
  br label %6191

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

6192:                                             ; No predecessors!
  br label %6193

6193:                                             ; preds = %6192
  br label %6194

6194:                                             ; preds = %6193, %6135
  br label %6195

6195:                                             ; preds = %6194
  br label %6196

6196:                                             ; preds = %6195
  br label %6197

6197:                                             ; preds = %6196
  %6198 = load i32, ptr @test_count, align 4, !tbaa !5
  %6199 = add nsw i32 %6198, 1
  store i32 %6199, ptr @test_count, align 4, !tbaa !5
  %6200 = load ptr, ptr %120, align 8, !tbaa !9
  %6201 = call i32 @s2n_record_min_write_payload_size(ptr noundef %6200, ptr noundef %122)
  %6202 = getelementptr inbounds %struct.s2n_result, ptr %171, i32 0, i32 0
  store i32 %6201, ptr %6202, align 4
  %6203 = getelementptr inbounds %struct.s2n_result, ptr %171, i32 0, i32 0
  %6204 = load i32, ptr %6203, align 4
  %6205 = call zeroext i1 @s2n_result_is_ok(i32 %6204)
  br i1 %6205, label %6259, label %6206

6206:                                             ; preds = %6197
  br label %6207

6207:                                             ; preds = %6206
  br label %6208

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

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

6220:                                             ; preds = %6215
  %6221 = load i32, ptr %172, align 4, !tbaa !5
  %6222 = call ptr @__errno_location() #12
  store i32 %6221, ptr %6222, align 4, !tbaa !5
  %6223 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6224 = load i32, ptr @test_count, align 4, !tbaa !5
  %6225 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6226 = load i32, ptr %6225, align 4, !tbaa !5
  %6227 = call ptr @s2n_strerror(i32 noundef %6226, ptr noundef @.str.4)
  %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_debug(i32 noundef %6229, ptr noundef @.str.4)
  %6231 = call ptr @__errno_location() #12
  %6232 = load i32, ptr %6231, align 4, !tbaa !5
  %6233 = call ptr @strerror(i32 noundef %6232) #11
  %6234 = call ptr @__errno_location() #12
  %6235 = load i32, ptr %6234, align 4, !tbaa !5
  %6236 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6223, ptr noundef @.str.2, i32 noundef %6224, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 305, ptr noundef %6227, ptr noundef %6230, ptr noundef %6233, i32 noundef %6235) #11
  br label %6254

6237:                                             ; preds = %6215, %6208
  %6238 = load i32, ptr %172, align 4, !tbaa !5
  %6239 = call ptr @__errno_location() #12
  store i32 %6238, ptr %6239, align 4, !tbaa !5
  %6240 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6241 = load i32, ptr @test_count, align 4, !tbaa !5
  %6242 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6243 = load i32, ptr %6242, align 4, !tbaa !5
  %6244 = call ptr @s2n_strerror(i32 noundef %6243, ptr noundef @.str.4)
  %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_debug(i32 noundef %6246, ptr noundef @.str.4)
  %6248 = call ptr @__errno_location() #12
  %6249 = load i32, ptr %6248, align 4, !tbaa !5
  %6250 = call ptr @strerror(i32 noundef %6249) #11
  %6251 = call ptr @__errno_location() #12
  %6252 = load i32, ptr %6251, align 4, !tbaa !5
  %6253 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6240, ptr noundef @.str.5, i32 noundef %6241, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 305, ptr noundef %6244, ptr noundef %6247, ptr noundef %6250, i32 noundef %6252) #11
  br label %6254

6254:                                             ; preds = %6237, %6220
  call void @llvm.lifetime.end.p0(i64 4, ptr %172) #11
  br label %6255

6255:                                             ; preds = %6254
  br label %6256

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

6257:                                             ; No predecessors!
  br label %6258

6258:                                             ; preds = %6257
  br label %6259

6259:                                             ; preds = %6258, %6197
  br label %6260

6260:                                             ; preds = %6259
  br label %6261

6261:                                             ; preds = %6260
  %6262 = load i16, ptr %122, align 2, !tbaa !62
  %6263 = zext i16 %6262 to i32
  %6264 = getelementptr inbounds %struct.s2n_blob, ptr %12, i32 0, i32 1
  store i32 %6263, ptr %6264, align 8, !tbaa !60
  call void @llvm.lifetime.start.p0(i64 2, ptr %173) #11
  store i16 0, ptr %173, align 2, !tbaa !62
  call void @llvm.lifetime.start.p0(i64 2, ptr %174) #11
  store i16 16, ptr %174, align 2, !tbaa !62
  br label %6265

6265:                                             ; preds = %6261
  %6266 = load i32, ptr @test_count, align 4, !tbaa !5
  %6267 = add nsw i32 %6266, 1
  store i32 %6267, ptr @test_count, align 4, !tbaa !5
  %6268 = load i16, ptr %122, align 2, !tbaa !62
  %6269 = zext i16 %6268 to i32
  %6270 = icmp eq i32 %6269, 1398
  br i1 %6270, label %6324, label %6271

6271:                                             ; preds = %6265
  br label %6272

6272:                                             ; preds = %6271
  br label %6273

6273:                                             ; preds = %6272
  call void @llvm.lifetime.start.p0(i64 4, ptr %175) #11
  %6274 = call ptr @__errno_location() #12
  %6275 = load i32, ptr %6274, align 4, !tbaa !5
  store i32 %6275, ptr %175, 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 %175, 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.57, ptr noundef @.str.1, i32 noundef 309, ptr noundef %6292, ptr noundef %6295, ptr noundef %6298, i32 noundef %6300) #11
  br label %6319

6302:                                             ; preds = %6280, %6273
  %6303 = load i32, ptr %175, 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.57, ptr noundef @.str.1, i32 noundef 309, 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 %175) #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, %6265
  br label %6325

6325:                                             ; preds = %6324
  br label %6326

6326:                                             ; preds = %6325
  br label %6327

6327:                                             ; preds = %6326
  %6328 = load i32, ptr @test_count, align 4, !tbaa !5
  %6329 = add nsw i32 %6328, 1
  store i32 %6329, ptr @test_count, align 4, !tbaa !5
  %6330 = load ptr, ptr %120, align 8, !tbaa !9
  %6331 = call i32 @s2n_record_write(ptr noundef %6330, i8 noundef zeroext 23, ptr noundef %12)
  %6332 = getelementptr inbounds %struct.s2n_result, ptr %176, i32 0, i32 0
  store i32 %6331, ptr %6332, align 4
  %6333 = getelementptr inbounds %struct.s2n_result, ptr %176, i32 0, i32 0
  %6334 = load i32, ptr %6333, align 4
  %6335 = call zeroext i1 @s2n_result_is_ok(i32 %6334)
  br i1 %6335, label %6389, label %6336

6336:                                             ; preds = %6327
  br label %6337

6337:                                             ; preds = %6336
  br label %6338

6338:                                             ; preds = %6337
  call void @llvm.lifetime.start.p0(i64 4, ptr %177) #11
  %6339 = call ptr @__errno_location() #12
  %6340 = load i32, ptr %6339, align 4, !tbaa !5
  store i32 %6340, ptr %177, align 4, !tbaa !5
  %6341 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6342 = call i32 @s2n_print_stacktrace(ptr noundef %6341)
  %6343 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6344 = trunc i8 %6343 to i1
  br i1 %6344, label %6345, label %6367

6345:                                             ; preds = %6338
  %6346 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6347 = call i32 @fileno(ptr noundef %6346) #11
  %6348 = call i32 @isatty(i32 noundef %6347) #11
  %6349 = icmp ne i32 %6348, 0
  br i1 %6349, label %6350, label %6367

6350:                                             ; preds = %6345
  %6351 = load i32, ptr %177, align 4, !tbaa !5
  %6352 = call ptr @__errno_location() #12
  store i32 %6351, ptr %6352, align 4, !tbaa !5
  %6353 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6354 = load i32, ptr @test_count, align 4, !tbaa !5
  %6355 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6356 = load i32, ptr %6355, align 4, !tbaa !5
  %6357 = call ptr @s2n_strerror(i32 noundef %6356, ptr noundef @.str.4)
  %6358 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6359 = load i32, ptr %6358, align 4, !tbaa !5
  %6360 = call ptr @s2n_strerror_debug(i32 noundef %6359, ptr noundef @.str.4)
  %6361 = call ptr @__errno_location() #12
  %6362 = load i32, ptr %6361, align 4, !tbaa !5
  %6363 = call ptr @strerror(i32 noundef %6362) #11
  %6364 = call ptr @__errno_location() #12
  %6365 = load i32, ptr %6364, align 4, !tbaa !5
  %6366 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6353, ptr noundef @.str.2, i32 noundef %6354, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 311, ptr noundef %6357, ptr noundef %6360, ptr noundef %6363, i32 noundef %6365) #11
  br label %6384

6367:                                             ; preds = %6345, %6338
  %6368 = load i32, ptr %177, align 4, !tbaa !5
  %6369 = call ptr @__errno_location() #12
  store i32 %6368, ptr %6369, align 4, !tbaa !5
  %6370 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6371 = load i32, ptr @test_count, align 4, !tbaa !5
  %6372 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6373 = load i32, ptr %6372, align 4, !tbaa !5
  %6374 = call ptr @s2n_strerror(i32 noundef %6373, ptr noundef @.str.4)
  %6375 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6376 = load i32, ptr %6375, align 4, !tbaa !5
  %6377 = call ptr @s2n_strerror_debug(i32 noundef %6376, ptr noundef @.str.4)
  %6378 = call ptr @__errno_location() #12
  %6379 = load i32, ptr %6378, align 4, !tbaa !5
  %6380 = call ptr @strerror(i32 noundef %6379) #11
  %6381 = call ptr @__errno_location() #12
  %6382 = load i32, ptr %6381, align 4, !tbaa !5
  %6383 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6370, ptr noundef @.str.5, i32 noundef %6371, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 311, ptr noundef %6374, ptr noundef %6377, ptr noundef %6380, i32 noundef %6382) #11
  br label %6384

6384:                                             ; preds = %6367, %6350
  call void @llvm.lifetime.end.p0(i64 4, ptr %177) #11
  br label %6385

6385:                                             ; preds = %6384
  br label %6386

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

6387:                                             ; No predecessors!
  br label %6388

6388:                                             ; preds = %6387
  br label %6389

6389:                                             ; preds = %6388, %6327
  br label %6390

6390:                                             ; preds = %6389
  br label %6391

6391:                                             ; preds = %6390
  call void @llvm.lifetime.start.p0(i64 2, ptr %178) #11
  %6392 = load ptr, ptr %120, align 8, !tbaa !9
  %6393 = getelementptr inbounds %struct.s2n_connection, ptr %6392, i32 0, i32 41
  %6394 = getelementptr inbounds %struct.s2n_stuffer, ptr %6393, i32 0, i32 2
  %6395 = load i32, ptr %6394, align 4, !tbaa !65
  %6396 = load ptr, ptr %120, align 8, !tbaa !9
  %6397 = getelementptr inbounds %struct.s2n_connection, ptr %6396, i32 0, i32 41
  %6398 = getelementptr inbounds %struct.s2n_stuffer, ptr %6397, i32 0, i32 1
  %6399 = load i32, ptr %6398, align 8, !tbaa !66
  %6400 = sub i32 %6395, %6399
  %6401 = trunc i32 %6400 to i16
  store i16 %6401, ptr %178, align 2, !tbaa !62
  br label %6402

6402:                                             ; preds = %6391
  %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 i16, ptr %178, align 2, !tbaa !62
  %6406 = zext i16 %6405 to i32
  %6407 = icmp sle i32 %6406, 1420
  br i1 %6407, label %6461, label %6408

6408:                                             ; preds = %6402
  br label %6409

6409:                                             ; preds = %6408
  br label %6410

6410:                                             ; preds = %6409
  call void @llvm.lifetime.start.p0(i64 4, ptr %179) #11
  %6411 = call ptr @__errno_location() #12
  %6412 = load i32, ptr %6411, align 4, !tbaa !5
  store i32 %6412, ptr %179, 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 %179, 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.52, ptr noundef @.str.1, i32 noundef 313, ptr noundef %6429, ptr noundef %6432, ptr noundef %6435, i32 noundef %6437) #11
  br label %6456

6439:                                             ; preds = %6417, %6410
  %6440 = load i32, ptr %179, 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.52, ptr noundef @.str.1, i32 noundef 313, 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 %179) #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 %120, align 8, !tbaa !9
  %6468 = getelementptr inbounds %struct.s2n_connection, ptr %6467, i32 0, i32 41
  %6469 = getelementptr inbounds %struct.s2n_stuffer, ptr %6468, i32 0, i32 0
  %6470 = getelementptr inbounds %struct.s2n_blob, ptr %6469, i32 0, i32 0
  %6471 = load ptr, ptr %6470, align 8, !tbaa !67
  %6472 = getelementptr inbounds i8, ptr %6471, i64 3
  %6473 = load i8, ptr %6472, align 1, !tbaa !59
  %6474 = zext i8 %6473 to i32
  %6475 = shl i32 %6474, 8
  %6476 = load ptr, ptr %120, align 8, !tbaa !9
  %6477 = getelementptr inbounds %struct.s2n_connection, ptr %6476, i32 0, i32 41
  %6478 = getelementptr inbounds %struct.s2n_stuffer, ptr %6477, i32 0, i32 0
  %6479 = getelementptr inbounds %struct.s2n_blob, ptr %6478, i32 0, i32 0
  %6480 = load ptr, ptr %6479, align 8, !tbaa !67
  %6481 = getelementptr inbounds i8, ptr %6480, i64 4
  %6482 = load i8, ptr %6481, align 1, !tbaa !59
  %6483 = zext i8 %6482 to i32
  %6484 = or i32 %6475, %6483
  %6485 = load i16, ptr %178, align 2, !tbaa !62
  %6486 = zext i16 %6485 to i32
  %6487 = sub nsw i32 %6486, 5
  %6488 = icmp eq i32 %6484, %6487
  br i1 %6488, label %6542, label %6489

6489:                                             ; preds = %6464
  br label %6490

6490:                                             ; preds = %6489
  br label %6491

6491:                                             ; preds = %6490
  call void @llvm.lifetime.start.p0(i64 4, ptr %180) #11
  %6492 = call ptr @__errno_location() #12
  %6493 = load i32, ptr %6492, align 4, !tbaa !5
  store i32 %6493, ptr %180, align 4, !tbaa !5
  %6494 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6495 = call i32 @s2n_print_stacktrace(ptr noundef %6494)
  %6496 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6497 = trunc i8 %6496 to i1
  br i1 %6497, label %6498, label %6520

6498:                                             ; preds = %6491
  %6499 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6500 = call i32 @fileno(ptr noundef %6499) #11
  %6501 = call i32 @isatty(i32 noundef %6500) #11
  %6502 = icmp ne i32 %6501, 0
  br i1 %6502, label %6503, label %6520

6503:                                             ; preds = %6498
  %6504 = load i32, ptr %180, align 4, !tbaa !5
  %6505 = call ptr @__errno_location() #12
  store i32 %6504, ptr %6505, align 4, !tbaa !5
  %6506 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6507 = load i32, ptr @test_count, align 4, !tbaa !5
  %6508 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6509 = load i32, ptr %6508, align 4, !tbaa !5
  %6510 = call ptr @s2n_strerror(i32 noundef %6509, ptr noundef @.str.4)
  %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_debug(i32 noundef %6512, ptr noundef @.str.4)
  %6514 = call ptr @__errno_location() #12
  %6515 = load i32, ptr %6514, align 4, !tbaa !5
  %6516 = call ptr @strerror(i32 noundef %6515) #11
  %6517 = call ptr @__errno_location() #12
  %6518 = load i32, ptr %6517, align 4, !tbaa !5
  %6519 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6506, ptr noundef @.str.2, i32 noundef %6507, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 314, ptr noundef %6510, ptr noundef %6513, ptr noundef %6516, i32 noundef %6518) #11
  br label %6537

6520:                                             ; preds = %6498, %6491
  %6521 = load i32, ptr %180, align 4, !tbaa !5
  %6522 = call ptr @__errno_location() #12
  store i32 %6521, ptr %6522, align 4, !tbaa !5
  %6523 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6524 = load i32, ptr @test_count, align 4, !tbaa !5
  %6525 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6526 = load i32, ptr %6525, align 4, !tbaa !5
  %6527 = call ptr @s2n_strerror(i32 noundef %6526, ptr noundef @.str.4)
  %6528 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6529 = load i32, ptr %6528, align 4, !tbaa !5
  %6530 = call ptr @s2n_strerror_debug(i32 noundef %6529, ptr noundef @.str.4)
  %6531 = call ptr @__errno_location() #12
  %6532 = load i32, ptr %6531, align 4, !tbaa !5
  %6533 = call ptr @strerror(i32 noundef %6532) #11
  %6534 = call ptr @__errno_location() #12
  %6535 = load i32, ptr %6534, align 4, !tbaa !5
  %6536 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6523, ptr noundef @.str.5, i32 noundef %6524, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 314, ptr noundef %6527, ptr noundef %6530, ptr noundef %6533, i32 noundef %6535) #11
  br label %6537

6537:                                             ; preds = %6520, %6503
  call void @llvm.lifetime.end.p0(i64 4, ptr %180) #11
  br label %6538

6538:                                             ; preds = %6537
  br label %6539

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

6540:                                             ; No predecessors!
  br label %6541

6541:                                             ; preds = %6540
  br label %6542

6542:                                             ; preds = %6541, %6464
  br label %6543

6543:                                             ; preds = %6542
  br label %6544

6544:                                             ; preds = %6543
  call void @llvm.lifetime.end.p0(i64 2, ptr %178) #11
  call void @llvm.lifetime.end.p0(i64 2, ptr %174) #11
  call void @llvm.lifetime.end.p0(i64 2, ptr %173) #11
  %6545 = load ptr, ptr getelementptr inbounds (%struct.s2n_cipher, ptr @s2n_chacha20_poly1305, i32 0, i32 3), align 8, !tbaa !68
  %6546 = call zeroext i1 %6545()
  br i1 %6546, label %6547, label %7213

6547:                                             ; preds = %6544
  br label %6548

6548:                                             ; preds = %6547
  %6549 = load i32, ptr @test_count, align 4, !tbaa !5
  %6550 = add nsw i32 %6549, 1
  store i32 %6550, ptr @test_count, align 4, !tbaa !5
  %6551 = load ptr, ptr %120, align 8, !tbaa !9
  %6552 = call i32 @destroy_server_keys(ptr noundef %6551)
  %6553 = icmp eq i32 %6552, -1
  br i1 %6553, label %6554, label %6607

6554:                                             ; preds = %6548
  br label %6555

6555:                                             ; preds = %6554
  br label %6556

6556:                                             ; preds = %6555
  call void @llvm.lifetime.start.p0(i64 4, ptr %181) #11
  %6557 = call ptr @__errno_location() #12
  %6558 = load i32, ptr %6557, align 4, !tbaa !5
  store i32 %6558, ptr %181, align 4, !tbaa !5
  %6559 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6560 = call i32 @s2n_print_stacktrace(ptr noundef %6559)
  %6561 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6562 = trunc i8 %6561 to i1
  br i1 %6562, label %6563, label %6585

6563:                                             ; preds = %6556
  %6564 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6565 = call i32 @fileno(ptr noundef %6564) #11
  %6566 = call i32 @isatty(i32 noundef %6565) #11
  %6567 = icmp ne i32 %6566, 0
  br i1 %6567, label %6568, label %6585

6568:                                             ; preds = %6563
  %6569 = load i32, ptr %181, align 4, !tbaa !5
  %6570 = call ptr @__errno_location() #12
  store i32 %6569, ptr %6570, align 4, !tbaa !5
  %6571 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6572 = load i32, ptr @test_count, align 4, !tbaa !5
  %6573 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6574 = load i32, ptr %6573, align 4, !tbaa !5
  %6575 = call ptr @s2n_strerror(i32 noundef %6574, ptr noundef @.str.4)
  %6576 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6577 = load i32, ptr %6576, align 4, !tbaa !5
  %6578 = call ptr @s2n_strerror_debug(i32 noundef %6577, ptr noundef @.str.4)
  %6579 = call ptr @__errno_location() #12
  %6580 = load i32, ptr %6579, align 4, !tbaa !5
  %6581 = call ptr @strerror(i32 noundef %6580) #11
  %6582 = call ptr @__errno_location() #12
  %6583 = load i32, ptr %6582, align 4, !tbaa !5
  %6584 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6571, ptr noundef @.str.2, i32 noundef %6572, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 319, ptr noundef %6575, ptr noundef %6578, ptr noundef %6581, i32 noundef %6583) #11
  br label %6602

6585:                                             ; preds = %6563, %6556
  %6586 = load i32, ptr %181, align 4, !tbaa !5
  %6587 = call ptr @__errno_location() #12
  store i32 %6586, ptr %6587, align 4, !tbaa !5
  %6588 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6589 = load i32, ptr @test_count, align 4, !tbaa !5
  %6590 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6591 = load i32, ptr %6590, align 4, !tbaa !5
  %6592 = call ptr @s2n_strerror(i32 noundef %6591, ptr noundef @.str.4)
  %6593 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6594 = load i32, ptr %6593, align 4, !tbaa !5
  %6595 = call ptr @s2n_strerror_debug(i32 noundef %6594, ptr noundef @.str.4)
  %6596 = call ptr @__errno_location() #12
  %6597 = load i32, ptr %6596, align 4, !tbaa !5
  %6598 = call ptr @strerror(i32 noundef %6597) #11
  %6599 = call ptr @__errno_location() #12
  %6600 = load i32, ptr %6599, align 4, !tbaa !5
  %6601 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6588, ptr noundef @.str.5, i32 noundef %6589, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 319, ptr noundef %6592, ptr noundef %6595, ptr noundef %6598, i32 noundef %6600) #11
  br label %6602

6602:                                             ; preds = %6585, %6568
  call void @llvm.lifetime.end.p0(i64 4, ptr %181) #11
  br label %6603

6603:                                             ; preds = %6602
  br label %6604

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

6605:                                             ; No predecessors!
  br label %6606

6606:                                             ; preds = %6605
  br label %6607

6607:                                             ; preds = %6606, %6548
  br label %6608

6608:                                             ; preds = %6607
  br label %6609

6609:                                             ; preds = %6608
  br label %6610

6610:                                             ; preds = %6609
  %6611 = load i32, ptr @test_count, align 4, !tbaa !5
  %6612 = add nsw i32 %6611, 1
  store i32 %6612, ptr @test_count, align 4, !tbaa !5
  %6613 = load ptr, ptr %120, align 8, !tbaa !9
  %6614 = call i32 @s2n_connection_wipe(ptr noundef %6613)
  %6615 = icmp eq i32 %6614, -1
  br i1 %6615, label %6616, label %6669

6616:                                             ; preds = %6610
  br label %6617

6617:                                             ; preds = %6616
  br label %6618

6618:                                             ; preds = %6617
  call void @llvm.lifetime.start.p0(i64 4, ptr %182) #11
  %6619 = call ptr @__errno_location() #12
  %6620 = load i32, ptr %6619, align 4, !tbaa !5
  store i32 %6620, ptr %182, align 4, !tbaa !5
  %6621 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6622 = call i32 @s2n_print_stacktrace(ptr noundef %6621)
  %6623 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6624 = trunc i8 %6623 to i1
  br i1 %6624, label %6625, label %6647

6625:                                             ; preds = %6618
  %6626 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6627 = call i32 @fileno(ptr noundef %6626) #11
  %6628 = call i32 @isatty(i32 noundef %6627) #11
  %6629 = icmp ne i32 %6628, 0
  br i1 %6629, label %6630, label %6647

6630:                                             ; preds = %6625
  %6631 = load i32, ptr %182, align 4, !tbaa !5
  %6632 = call ptr @__errno_location() #12
  store i32 %6631, ptr %6632, align 4, !tbaa !5
  %6633 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6634 = load i32, ptr @test_count, align 4, !tbaa !5
  %6635 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6636 = load i32, ptr %6635, align 4, !tbaa !5
  %6637 = call ptr @s2n_strerror(i32 noundef %6636, ptr noundef @.str.4)
  %6638 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6639 = load i32, ptr %6638, align 4, !tbaa !5
  %6640 = call ptr @s2n_strerror_debug(i32 noundef %6639, ptr noundef @.str.4)
  %6641 = call ptr @__errno_location() #12
  %6642 = load i32, ptr %6641, align 4, !tbaa !5
  %6643 = call ptr @strerror(i32 noundef %6642) #11
  %6644 = call ptr @__errno_location() #12
  %6645 = load i32, ptr %6644, align 4, !tbaa !5
  %6646 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6633, ptr noundef @.str.2, i32 noundef %6634, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 320, ptr noundef %6637, ptr noundef %6640, ptr noundef %6643, i32 noundef %6645) #11
  br label %6664

6647:                                             ; preds = %6625, %6618
  %6648 = load i32, ptr %182, align 4, !tbaa !5
  %6649 = call ptr @__errno_location() #12
  store i32 %6648, ptr %6649, align 4, !tbaa !5
  %6650 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6651 = load i32, ptr @test_count, align 4, !tbaa !5
  %6652 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6653 = load i32, ptr %6652, align 4, !tbaa !5
  %6654 = call ptr @s2n_strerror(i32 noundef %6653, ptr noundef @.str.4)
  %6655 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6656 = load i32, ptr %6655, align 4, !tbaa !5
  %6657 = call ptr @s2n_strerror_debug(i32 noundef %6656, ptr noundef @.str.4)
  %6658 = call ptr @__errno_location() #12
  %6659 = load i32, ptr %6658, align 4, !tbaa !5
  %6660 = call ptr @strerror(i32 noundef %6659) #11
  %6661 = call ptr @__errno_location() #12
  %6662 = load i32, ptr %6661, align 4, !tbaa !5
  %6663 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6650, ptr noundef @.str.5, i32 noundef %6651, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 320, ptr noundef %6654, ptr noundef %6657, ptr noundef %6660, i32 noundef %6662) #11
  br label %6664

6664:                                             ; preds = %6647, %6630
  call void @llvm.lifetime.end.p0(i64 4, ptr %182) #11
  br label %6665

6665:                                             ; preds = %6664
  br label %6666

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

6667:                                             ; No predecessors!
  br label %6668

6668:                                             ; preds = %6667
  br label %6669

6669:                                             ; preds = %6668, %6610
  br label %6670

6670:                                             ; preds = %6669
  br label %6671

6671:                                             ; preds = %6670
  %6672 = load ptr, ptr %120, align 8, !tbaa !9
  %6673 = getelementptr inbounds %struct.s2n_connection, ptr %6672, i32 0, i32 26
  %6674 = load ptr, ptr %6673, align 8, !tbaa !64
  %6675 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %6674, i32 0, i32 0
  %6676 = load ptr, ptr %6675, align 8, !tbaa !44
  %6677 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %6676, i32 0, i32 6
  store ptr @s2n_record_alg_chacha20_poly1305, ptr %6677, align 8, !tbaa !49
  call void @llvm.lifetime.start.p0(i64 32, ptr %183) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %183, ptr align 16 @__const.main.chacha20_poly1305_key_data, i64 32, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr %184) #11
  call void @llvm.memset.p0.i64(ptr align 8 %184, i8 0, i64 24, i1 false)
  br label %6678

6678:                                             ; preds = %6671
  %6679 = load i32, ptr @test_count, align 4, !tbaa !5
  %6680 = add nsw i32 %6679, 1
  store i32 %6680, ptr @test_count, align 4, !tbaa !5
  %6681 = getelementptr inbounds [32 x i8], ptr %183, i64 0, i64 0
  %6682 = call i32 @s2n_blob_init(ptr noundef %184, ptr noundef %6681, i32 noundef 32)
  %6683 = icmp eq i32 %6682, -1
  br i1 %6683, label %6684, label %6737

6684:                                             ; preds = %6678
  br label %6685

6685:                                             ; preds = %6684
  br label %6686

6686:                                             ; preds = %6685
  call void @llvm.lifetime.start.p0(i64 4, ptr %185) #11
  %6687 = call ptr @__errno_location() #12
  %6688 = load i32, ptr %6687, align 4, !tbaa !5
  store i32 %6688, ptr %185, align 4, !tbaa !5
  %6689 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6690 = call i32 @s2n_print_stacktrace(ptr noundef %6689)
  %6691 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6692 = trunc i8 %6691 to i1
  br i1 %6692, label %6693, label %6715

6693:                                             ; preds = %6686
  %6694 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6695 = call i32 @fileno(ptr noundef %6694) #11
  %6696 = call i32 @isatty(i32 noundef %6695) #11
  %6697 = icmp ne i32 %6696, 0
  br i1 %6697, label %6698, label %6715

6698:                                             ; preds = %6693
  %6699 = load i32, ptr %185, 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.2, i32 noundef %6702, ptr noundef @.str.58, ptr noundef @.str.1, i32 noundef 325, ptr noundef %6705, ptr noundef %6708, ptr noundef %6711, i32 noundef %6713) #11
  br label %6732

6715:                                             ; preds = %6693, %6686
  %6716 = load i32, ptr %185, align 4, !tbaa !5
  %6717 = call ptr @__errno_location() #12
  store i32 %6716, ptr %6717, align 4, !tbaa !5
  %6718 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6719 = load i32, ptr @test_count, align 4, !tbaa !5
  %6720 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6721 = load i32, ptr %6720, align 4, !tbaa !5
  %6722 = call ptr @s2n_strerror(i32 noundef %6721, ptr noundef @.str.4)
  %6723 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6724 = load i32, ptr %6723, align 4, !tbaa !5
  %6725 = call ptr @s2n_strerror_debug(i32 noundef %6724, ptr noundef @.str.4)
  %6726 = call ptr @__errno_location() #12
  %6727 = load i32, ptr %6726, align 4, !tbaa !5
  %6728 = call ptr @strerror(i32 noundef %6727) #11
  %6729 = call ptr @__errno_location() #12
  %6730 = load i32, ptr %6729, align 4, !tbaa !5
  %6731 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6718, ptr noundef @.str.5, i32 noundef %6719, ptr noundef @.str.58, ptr noundef @.str.1, i32 noundef 325, ptr noundef %6722, ptr noundef %6725, ptr noundef %6728, i32 noundef %6730) #11
  br label %6732

6732:                                             ; preds = %6715, %6698
  call void @llvm.lifetime.end.p0(i64 4, ptr %185) #11
  br label %6733

6733:                                             ; preds = %6732
  br label %6734

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

6735:                                             ; No predecessors!
  br label %6736

6736:                                             ; preds = %6735
  br label %6737

6737:                                             ; preds = %6736, %6678
  br label %6738

6738:                                             ; preds = %6737
  br label %6739

6739:                                             ; preds = %6738
  br label %6740

6740:                                             ; preds = %6739
  %6741 = load i32, ptr @test_count, align 4, !tbaa !5
  %6742 = add nsw i32 %6741, 1
  store i32 %6742, ptr @test_count, align 4, !tbaa !5
  %6743 = load ptr, ptr %120, align 8, !tbaa !9
  %6744 = call i32 @setup_server_keys(ptr noundef %6743, ptr noundef %184)
  %6745 = icmp eq i32 %6744, -1
  br i1 %6745, label %6746, label %6799

6746:                                             ; preds = %6740
  br label %6747

6747:                                             ; preds = %6746
  br label %6748

6748:                                             ; preds = %6747
  call void @llvm.lifetime.start.p0(i64 4, ptr %186) #11
  %6749 = call ptr @__errno_location() #12
  %6750 = load i32, ptr %6749, align 4, !tbaa !5
  store i32 %6750, ptr %186, align 4, !tbaa !5
  %6751 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6752 = call i32 @s2n_print_stacktrace(ptr noundef %6751)
  %6753 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6754 = trunc i8 %6753 to i1
  br i1 %6754, label %6755, label %6777

6755:                                             ; preds = %6748
  %6756 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6757 = call i32 @fileno(ptr noundef %6756) #11
  %6758 = call i32 @isatty(i32 noundef %6757) #11
  %6759 = icmp ne i32 %6758, 0
  br i1 %6759, label %6760, label %6777

6760:                                             ; preds = %6755
  %6761 = load i32, ptr %186, align 4, !tbaa !5
  %6762 = call ptr @__errno_location() #12
  store i32 %6761, ptr %6762, align 4, !tbaa !5
  %6763 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6764 = load i32, ptr @test_count, align 4, !tbaa !5
  %6765 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6766 = load i32, ptr %6765, align 4, !tbaa !5
  %6767 = call ptr @s2n_strerror(i32 noundef %6766, ptr noundef @.str.4)
  %6768 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6769 = load i32, ptr %6768, align 4, !tbaa !5
  %6770 = call ptr @s2n_strerror_debug(i32 noundef %6769, ptr noundef @.str.4)
  %6771 = call ptr @__errno_location() #12
  %6772 = load i32, ptr %6771, align 4, !tbaa !5
  %6773 = call ptr @strerror(i32 noundef %6772) #11
  %6774 = call ptr @__errno_location() #12
  %6775 = load i32, ptr %6774, align 4, !tbaa !5
  %6776 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6763, ptr noundef @.str.2, i32 noundef %6764, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 327, ptr noundef %6767, ptr noundef %6770, ptr noundef %6773, i32 noundef %6775) #11
  br label %6794

6777:                                             ; preds = %6755, %6748
  %6778 = load i32, ptr %186, align 4, !tbaa !5
  %6779 = call ptr @__errno_location() #12
  store i32 %6778, ptr %6779, align 4, !tbaa !5
  %6780 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6781 = load i32, ptr @test_count, align 4, !tbaa !5
  %6782 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6783 = load i32, ptr %6782, align 4, !tbaa !5
  %6784 = call ptr @s2n_strerror(i32 noundef %6783, ptr noundef @.str.4)
  %6785 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6786 = load i32, ptr %6785, align 4, !tbaa !5
  %6787 = call ptr @s2n_strerror_debug(i32 noundef %6786, ptr noundef @.str.4)
  %6788 = call ptr @__errno_location() #12
  %6789 = load i32, ptr %6788, align 4, !tbaa !5
  %6790 = call ptr @strerror(i32 noundef %6789) #11
  %6791 = call ptr @__errno_location() #12
  %6792 = load i32, ptr %6791, align 4, !tbaa !5
  %6793 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6780, ptr noundef @.str.5, i32 noundef %6781, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 327, ptr noundef %6784, ptr noundef %6787, ptr noundef %6790, i32 noundef %6792) #11
  br label %6794

6794:                                             ; preds = %6777, %6760
  call void @llvm.lifetime.end.p0(i64 4, ptr %186) #11
  br label %6795

6795:                                             ; preds = %6794
  br label %6796

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

6797:                                             ; No predecessors!
  br label %6798

6798:                                             ; preds = %6797
  br label %6799

6799:                                             ; preds = %6798, %6740
  br label %6800

6800:                                             ; preds = %6799
  br label %6801

6801:                                             ; preds = %6800
  br label %6802

6802:                                             ; preds = %6801
  %6803 = load i32, ptr @test_count, align 4, !tbaa !5
  %6804 = add nsw i32 %6803, 1
  store i32 %6804, ptr @test_count, align 4, !tbaa !5
  %6805 = load ptr, ptr %120, align 8, !tbaa !9
  %6806 = getelementptr inbounds %struct.s2n_connection, ptr %6805, i32 0, i32 41
  %6807 = call i32 @s2n_stuffer_wipe(ptr noundef %6806)
  %6808 = icmp eq i32 %6807, -1
  br i1 %6808, label %6809, label %6862

6809:                                             ; preds = %6802
  br label %6810

6810:                                             ; preds = %6809
  br label %6811

6811:                                             ; preds = %6810
  call void @llvm.lifetime.start.p0(i64 4, ptr %187) #11
  %6812 = call ptr @__errno_location() #12
  %6813 = load i32, ptr %6812, align 4, !tbaa !5
  store i32 %6813, ptr %187, align 4, !tbaa !5
  %6814 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6815 = call i32 @s2n_print_stacktrace(ptr noundef %6814)
  %6816 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6817 = trunc i8 %6816 to i1
  br i1 %6817, label %6818, label %6840

6818:                                             ; preds = %6811
  %6819 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6820 = call i32 @fileno(ptr noundef %6819) #11
  %6821 = call i32 @isatty(i32 noundef %6820) #11
  %6822 = icmp ne i32 %6821, 0
  br i1 %6822, label %6823, label %6840

6823:                                             ; preds = %6818
  %6824 = load i32, ptr %187, align 4, !tbaa !5
  %6825 = call ptr @__errno_location() #12
  store i32 %6824, ptr %6825, align 4, !tbaa !5
  %6826 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6827 = load i32, ptr @test_count, align 4, !tbaa !5
  %6828 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6829 = load i32, ptr %6828, align 4, !tbaa !5
  %6830 = call ptr @s2n_strerror(i32 noundef %6829, ptr noundef @.str.4)
  %6831 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6832 = load i32, ptr %6831, align 4, !tbaa !5
  %6833 = call ptr @s2n_strerror_debug(i32 noundef %6832, ptr noundef @.str.4)
  %6834 = call ptr @__errno_location() #12
  %6835 = load i32, ptr %6834, align 4, !tbaa !5
  %6836 = call ptr @strerror(i32 noundef %6835) #11
  %6837 = call ptr @__errno_location() #12
  %6838 = load i32, ptr %6837, align 4, !tbaa !5
  %6839 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6826, ptr noundef @.str.2, i32 noundef %6827, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 328, ptr noundef %6830, ptr noundef %6833, ptr noundef %6836, i32 noundef %6838) #11
  br label %6857

6840:                                             ; preds = %6818, %6811
  %6841 = load i32, ptr %187, align 4, !tbaa !5
  %6842 = call ptr @__errno_location() #12
  store i32 %6841, ptr %6842, align 4, !tbaa !5
  %6843 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6844 = load i32, ptr @test_count, align 4, !tbaa !5
  %6845 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6846 = load i32, ptr %6845, align 4, !tbaa !5
  %6847 = call ptr @s2n_strerror(i32 noundef %6846, ptr noundef @.str.4)
  %6848 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6849 = load i32, ptr %6848, align 4, !tbaa !5
  %6850 = call ptr @s2n_strerror_debug(i32 noundef %6849, ptr noundef @.str.4)
  %6851 = call ptr @__errno_location() #12
  %6852 = load i32, ptr %6851, align 4, !tbaa !5
  %6853 = call ptr @strerror(i32 noundef %6852) #11
  %6854 = call ptr @__errno_location() #12
  %6855 = load i32, ptr %6854, align 4, !tbaa !5
  %6856 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6843, ptr noundef @.str.5, i32 noundef %6844, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 328, ptr noundef %6847, ptr noundef %6850, ptr noundef %6853, i32 noundef %6855) #11
  br label %6857

6857:                                             ; preds = %6840, %6823
  call void @llvm.lifetime.end.p0(i64 4, ptr %187) #11
  br label %6858

6858:                                             ; preds = %6857
  br label %6859

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

6860:                                             ; No predecessors!
  br label %6861

6861:                                             ; preds = %6860
  br label %6862

6862:                                             ; preds = %6861, %6802
  br label %6863

6863:                                             ; preds = %6862
  br label %6864

6864:                                             ; preds = %6863
  br label %6865

6865:                                             ; preds = %6864
  %6866 = load i32, ptr @test_count, align 4, !tbaa !5
  %6867 = add nsw i32 %6866, 1
  store i32 %6867, ptr @test_count, align 4, !tbaa !5
  %6868 = load ptr, ptr %120, align 8, !tbaa !9
  %6869 = call i32 @s2n_record_min_write_payload_size(ptr noundef %6868, ptr noundef %122)
  %6870 = getelementptr inbounds %struct.s2n_result, ptr %188, i32 0, i32 0
  store i32 %6869, ptr %6870, align 4
  %6871 = getelementptr inbounds %struct.s2n_result, ptr %188, i32 0, i32 0
  %6872 = load i32, ptr %6871, align 4
  %6873 = call zeroext i1 @s2n_result_is_ok(i32 %6872)
  br i1 %6873, label %6927, label %6874

6874:                                             ; preds = %6865
  br label %6875

6875:                                             ; preds = %6874
  br label %6876

6876:                                             ; preds = %6875
  call void @llvm.lifetime.start.p0(i64 4, ptr %189) #11
  %6877 = call ptr @__errno_location() #12
  %6878 = load i32, ptr %6877, align 4, !tbaa !5
  store i32 %6878, ptr %189, align 4, !tbaa !5
  %6879 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6880 = call i32 @s2n_print_stacktrace(ptr noundef %6879)
  %6881 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6882 = trunc i8 %6881 to i1
  br i1 %6882, label %6883, label %6905

6883:                                             ; preds = %6876
  %6884 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6885 = call i32 @fileno(ptr noundef %6884) #11
  %6886 = call i32 @isatty(i32 noundef %6885) #11
  %6887 = icmp ne i32 %6886, 0
  br i1 %6887, label %6888, label %6905

6888:                                             ; preds = %6883
  %6889 = load i32, ptr %189, align 4, !tbaa !5
  %6890 = call ptr @__errno_location() #12
  store i32 %6889, ptr %6890, align 4, !tbaa !5
  %6891 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6892 = load i32, ptr @test_count, align 4, !tbaa !5
  %6893 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6894 = load i32, ptr %6893, align 4, !tbaa !5
  %6895 = call ptr @s2n_strerror(i32 noundef %6894, ptr noundef @.str.4)
  %6896 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6897 = load i32, ptr %6896, align 4, !tbaa !5
  %6898 = call ptr @s2n_strerror_debug(i32 noundef %6897, ptr noundef @.str.4)
  %6899 = call ptr @__errno_location() #12
  %6900 = load i32, ptr %6899, align 4, !tbaa !5
  %6901 = call ptr @strerror(i32 noundef %6900) #11
  %6902 = call ptr @__errno_location() #12
  %6903 = load i32, ptr %6902, align 4, !tbaa !5
  %6904 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6891, ptr noundef @.str.2, i32 noundef %6892, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 330, ptr noundef %6895, ptr noundef %6898, ptr noundef %6901, i32 noundef %6903) #11
  br label %6922

6905:                                             ; preds = %6883, %6876
  %6906 = load i32, ptr %189, align 4, !tbaa !5
  %6907 = call ptr @__errno_location() #12
  store i32 %6906, ptr %6907, align 4, !tbaa !5
  %6908 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6909 = load i32, ptr @test_count, align 4, !tbaa !5
  %6910 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6911 = load i32, ptr %6910, align 4, !tbaa !5
  %6912 = call ptr @s2n_strerror(i32 noundef %6911, ptr noundef @.str.4)
  %6913 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6914 = load i32, ptr %6913, align 4, !tbaa !5
  %6915 = call ptr @s2n_strerror_debug(i32 noundef %6914, ptr noundef @.str.4)
  %6916 = call ptr @__errno_location() #12
  %6917 = load i32, ptr %6916, align 4, !tbaa !5
  %6918 = call ptr @strerror(i32 noundef %6917) #11
  %6919 = call ptr @__errno_location() #12
  %6920 = load i32, ptr %6919, align 4, !tbaa !5
  %6921 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6908, ptr noundef @.str.5, i32 noundef %6909, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 330, ptr noundef %6912, ptr noundef %6915, ptr noundef %6918, i32 noundef %6920) #11
  br label %6922

6922:                                             ; preds = %6905, %6888
  call void @llvm.lifetime.end.p0(i64 4, ptr %189) #11
  br label %6923

6923:                                             ; preds = %6922
  br label %6924

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

6925:                                             ; No predecessors!
  br label %6926

6926:                                             ; preds = %6925
  br label %6927

6927:                                             ; preds = %6926, %6865
  br label %6928

6928:                                             ; preds = %6927
  br label %6929

6929:                                             ; preds = %6928
  br label %6930

6930:                                             ; preds = %6929
  %6931 = load i32, ptr @test_count, align 4, !tbaa !5
  %6932 = add nsw i32 %6931, 1
  store i32 %6932, ptr @test_count, align 4, !tbaa !5
  %6933 = load i16, ptr %122, align 2, !tbaa !62
  %6934 = zext i16 %6933 to i32
  %6935 = icmp eq i32 %6934, 1399
  br i1 %6935, label %6989, label %6936

6936:                                             ; preds = %6930
  br label %6937

6937:                                             ; preds = %6936
  br label %6938

6938:                                             ; preds = %6937
  call void @llvm.lifetime.start.p0(i64 4, ptr %190) #11
  %6939 = call ptr @__errno_location() #12
  %6940 = load i32, ptr %6939, align 4, !tbaa !5
  store i32 %6940, ptr %190, align 4, !tbaa !5
  %6941 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6942 = call i32 @s2n_print_stacktrace(ptr noundef %6941)
  %6943 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6944 = trunc i8 %6943 to i1
  br i1 %6944, label %6945, label %6967

6945:                                             ; preds = %6938
  %6946 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6947 = call i32 @fileno(ptr noundef %6946) #11
  %6948 = call i32 @isatty(i32 noundef %6947) #11
  %6949 = icmp ne i32 %6948, 0
  br i1 %6949, label %6950, label %6967

6950:                                             ; preds = %6945
  %6951 = load i32, ptr %190, align 4, !tbaa !5
  %6952 = call ptr @__errno_location() #12
  store i32 %6951, ptr %6952, align 4, !tbaa !5
  %6953 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6954 = load i32, ptr @test_count, align 4, !tbaa !5
  %6955 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6956 = load i32, ptr %6955, align 4, !tbaa !5
  %6957 = call ptr @s2n_strerror(i32 noundef %6956, ptr noundef @.str.4)
  %6958 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6959 = load i32, ptr %6958, align 4, !tbaa !5
  %6960 = call ptr @s2n_strerror_debug(i32 noundef %6959, ptr noundef @.str.4)
  %6961 = call ptr @__errno_location() #12
  %6962 = load i32, ptr %6961, align 4, !tbaa !5
  %6963 = call ptr @strerror(i32 noundef %6962) #11
  %6964 = call ptr @__errno_location() #12
  %6965 = load i32, ptr %6964, align 4, !tbaa !5
  %6966 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6953, ptr noundef @.str.2, i32 noundef %6954, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 331, ptr noundef %6957, ptr noundef %6960, ptr noundef %6963, i32 noundef %6965) #11
  br label %6984

6967:                                             ; preds = %6945, %6938
  %6968 = load i32, ptr %190, align 4, !tbaa !5
  %6969 = call ptr @__errno_location() #12
  store i32 %6968, ptr %6969, align 4, !tbaa !5
  %6970 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6971 = load i32, ptr @test_count, align 4, !tbaa !5
  %6972 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6973 = load i32, ptr %6972, align 4, !tbaa !5
  %6974 = call ptr @s2n_strerror(i32 noundef %6973, ptr noundef @.str.4)
  %6975 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6976 = load i32, ptr %6975, align 4, !tbaa !5
  %6977 = call ptr @s2n_strerror_debug(i32 noundef %6976, ptr noundef @.str.4)
  %6978 = call ptr @__errno_location() #12
  %6979 = load i32, ptr %6978, align 4, !tbaa !5
  %6980 = call ptr @strerror(i32 noundef %6979) #11
  %6981 = call ptr @__errno_location() #12
  %6982 = load i32, ptr %6981, align 4, !tbaa !5
  %6983 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6970, ptr noundef @.str.5, i32 noundef %6971, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 331, ptr noundef %6974, ptr noundef %6977, ptr noundef %6980, i32 noundef %6982) #11
  br label %6984

6984:                                             ; preds = %6967, %6950
  call void @llvm.lifetime.end.p0(i64 4, ptr %190) #11
  br label %6985

6985:                                             ; preds = %6984
  br label %6986

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

6987:                                             ; No predecessors!
  br label %6988

6988:                                             ; preds = %6987
  br label %6989

6989:                                             ; preds = %6988, %6930
  br label %6990

6990:                                             ; preds = %6989
  br label %6991

6991:                                             ; preds = %6990
  %6992 = load i16, ptr %122, align 2, !tbaa !62
  %6993 = zext i16 %6992 to i32
  %6994 = getelementptr inbounds %struct.s2n_blob, ptr %12, i32 0, i32 1
  store i32 %6993, ptr %6994, align 8, !tbaa !60
  br label %6995

6995:                                             ; preds = %6991
  %6996 = load i32, ptr @test_count, align 4, !tbaa !5
  %6997 = add nsw i32 %6996, 1
  store i32 %6997, ptr @test_count, align 4, !tbaa !5
  %6998 = load ptr, ptr %120, align 8, !tbaa !9
  %6999 = call i32 @s2n_record_write(ptr noundef %6998, i8 noundef zeroext 23, ptr noundef %12)
  %7000 = getelementptr inbounds %struct.s2n_result, ptr %191, i32 0, i32 0
  store i32 %6999, ptr %7000, align 4
  %7001 = getelementptr inbounds %struct.s2n_result, ptr %191, i32 0, i32 0
  %7002 = load i32, ptr %7001, align 4
  %7003 = call zeroext i1 @s2n_result_is_ok(i32 %7002)
  br i1 %7003, label %7057, label %7004

7004:                                             ; preds = %6995
  br label %7005

7005:                                             ; preds = %7004
  br label %7006

7006:                                             ; preds = %7005
  call void @llvm.lifetime.start.p0(i64 4, ptr %192) #11
  %7007 = call ptr @__errno_location() #12
  %7008 = load i32, ptr %7007, align 4, !tbaa !5
  store i32 %7008, ptr %192, align 4, !tbaa !5
  %7009 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7010 = call i32 @s2n_print_stacktrace(ptr noundef %7009)
  %7011 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7012 = trunc i8 %7011 to i1
  br i1 %7012, label %7013, label %7035

7013:                                             ; preds = %7006
  %7014 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7015 = call i32 @fileno(ptr noundef %7014) #11
  %7016 = call i32 @isatty(i32 noundef %7015) #11
  %7017 = icmp ne i32 %7016, 0
  br i1 %7017, label %7018, label %7035

7018:                                             ; preds = %7013
  %7019 = load i32, ptr %192, align 4, !tbaa !5
  %7020 = call ptr @__errno_location() #12
  store i32 %7019, ptr %7020, align 4, !tbaa !5
  %7021 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7022 = load i32, ptr @test_count, align 4, !tbaa !5
  %7023 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7024 = load i32, ptr %7023, align 4, !tbaa !5
  %7025 = call ptr @s2n_strerror(i32 noundef %7024, ptr noundef @.str.4)
  %7026 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7027 = load i32, ptr %7026, align 4, !tbaa !5
  %7028 = call ptr @s2n_strerror_debug(i32 noundef %7027, ptr noundef @.str.4)
  %7029 = call ptr @__errno_location() #12
  %7030 = load i32, ptr %7029, align 4, !tbaa !5
  %7031 = call ptr @strerror(i32 noundef %7030) #11
  %7032 = call ptr @__errno_location() #12
  %7033 = load i32, ptr %7032, align 4, !tbaa !5
  %7034 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7021, ptr noundef @.str.2, i32 noundef %7022, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 334, ptr noundef %7025, ptr noundef %7028, ptr noundef %7031, i32 noundef %7033) #11
  br label %7052

7035:                                             ; preds = %7013, %7006
  %7036 = load i32, ptr %192, align 4, !tbaa !5
  %7037 = call ptr @__errno_location() #12
  store i32 %7036, ptr %7037, align 4, !tbaa !5
  %7038 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7039 = load i32, ptr @test_count, align 4, !tbaa !5
  %7040 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7041 = load i32, ptr %7040, align 4, !tbaa !5
  %7042 = call ptr @s2n_strerror(i32 noundef %7041, ptr noundef @.str.4)
  %7043 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7044 = load i32, ptr %7043, align 4, !tbaa !5
  %7045 = call ptr @s2n_strerror_debug(i32 noundef %7044, ptr noundef @.str.4)
  %7046 = call ptr @__errno_location() #12
  %7047 = load i32, ptr %7046, align 4, !tbaa !5
  %7048 = call ptr @strerror(i32 noundef %7047) #11
  %7049 = call ptr @__errno_location() #12
  %7050 = load i32, ptr %7049, align 4, !tbaa !5
  %7051 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7038, ptr noundef @.str.5, i32 noundef %7039, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 334, ptr noundef %7042, ptr noundef %7045, ptr noundef %7048, i32 noundef %7050) #11
  br label %7052

7052:                                             ; preds = %7035, %7018
  call void @llvm.lifetime.end.p0(i64 4, ptr %192) #11
  br label %7053

7053:                                             ; preds = %7052
  br label %7054

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

7055:                                             ; No predecessors!
  br label %7056

7056:                                             ; preds = %7055
  br label %7057

7057:                                             ; preds = %7056, %6995
  br label %7058

7058:                                             ; preds = %7057
  br label %7059

7059:                                             ; preds = %7058
  call void @llvm.lifetime.start.p0(i64 2, ptr %193) #11
  %7060 = load ptr, ptr %120, align 8, !tbaa !9
  %7061 = getelementptr inbounds %struct.s2n_connection, ptr %7060, i32 0, i32 41
  %7062 = getelementptr inbounds %struct.s2n_stuffer, ptr %7061, i32 0, i32 2
  %7063 = load i32, ptr %7062, align 4, !tbaa !65
  %7064 = load ptr, ptr %120, align 8, !tbaa !9
  %7065 = getelementptr inbounds %struct.s2n_connection, ptr %7064, i32 0, i32 41
  %7066 = getelementptr inbounds %struct.s2n_stuffer, ptr %7065, i32 0, i32 1
  %7067 = load i32, ptr %7066, align 8, !tbaa !66
  %7068 = sub i32 %7063, %7067
  %7069 = trunc i32 %7068 to i16
  store i16 %7069, ptr %193, align 2, !tbaa !62
  br label %7070

7070:                                             ; preds = %7059
  %7071 = load i32, ptr @test_count, align 4, !tbaa !5
  %7072 = add nsw i32 %7071, 1
  store i32 %7072, ptr @test_count, align 4, !tbaa !5
  %7073 = load i16, ptr %193, align 2, !tbaa !62
  %7074 = zext i16 %7073 to i32
  %7075 = icmp sle i32 %7074, 1420
  br i1 %7075, label %7129, label %7076

7076:                                             ; preds = %7070
  br label %7077

7077:                                             ; preds = %7076
  br label %7078

7078:                                             ; preds = %7077
  call void @llvm.lifetime.start.p0(i64 4, ptr %194) #11
  %7079 = call ptr @__errno_location() #12
  %7080 = load i32, ptr %7079, align 4, !tbaa !5
  store i32 %7080, ptr %194, align 4, !tbaa !5
  %7081 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7082 = call i32 @s2n_print_stacktrace(ptr noundef %7081)
  %7083 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7084 = trunc i8 %7083 to i1
  br i1 %7084, label %7085, label %7107

7085:                                             ; preds = %7078
  %7086 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7087 = call i32 @fileno(ptr noundef %7086) #11
  %7088 = call i32 @isatty(i32 noundef %7087) #11
  %7089 = icmp ne i32 %7088, 0
  br i1 %7089, label %7090, label %7107

7090:                                             ; preds = %7085
  %7091 = load i32, ptr %194, align 4, !tbaa !5
  %7092 = call ptr @__errno_location() #12
  store i32 %7091, ptr %7092, align 4, !tbaa !5
  %7093 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7094 = load i32, ptr @test_count, align 4, !tbaa !5
  %7095 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7096 = load i32, ptr %7095, align 4, !tbaa !5
  %7097 = call ptr @s2n_strerror(i32 noundef %7096, ptr noundef @.str.4)
  %7098 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7099 = load i32, ptr %7098, align 4, !tbaa !5
  %7100 = call ptr @s2n_strerror_debug(i32 noundef %7099, ptr noundef @.str.4)
  %7101 = call ptr @__errno_location() #12
  %7102 = load i32, ptr %7101, align 4, !tbaa !5
  %7103 = call ptr @strerror(i32 noundef %7102) #11
  %7104 = call ptr @__errno_location() #12
  %7105 = load i32, ptr %7104, align 4, !tbaa !5
  %7106 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7093, ptr noundef @.str.2, i32 noundef %7094, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 336, ptr noundef %7097, ptr noundef %7100, ptr noundef %7103, i32 noundef %7105) #11
  br label %7124

7107:                                             ; preds = %7085, %7078
  %7108 = load i32, ptr %194, align 4, !tbaa !5
  %7109 = call ptr @__errno_location() #12
  store i32 %7108, ptr %7109, align 4, !tbaa !5
  %7110 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7111 = load i32, ptr @test_count, align 4, !tbaa !5
  %7112 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7113 = load i32, ptr %7112, align 4, !tbaa !5
  %7114 = call ptr @s2n_strerror(i32 noundef %7113, ptr noundef @.str.4)
  %7115 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7116 = load i32, ptr %7115, align 4, !tbaa !5
  %7117 = call ptr @s2n_strerror_debug(i32 noundef %7116, ptr noundef @.str.4)
  %7118 = call ptr @__errno_location() #12
  %7119 = load i32, ptr %7118, align 4, !tbaa !5
  %7120 = call ptr @strerror(i32 noundef %7119) #11
  %7121 = call ptr @__errno_location() #12
  %7122 = load i32, ptr %7121, align 4, !tbaa !5
  %7123 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7110, ptr noundef @.str.5, i32 noundef %7111, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 336, ptr noundef %7114, ptr noundef %7117, ptr noundef %7120, i32 noundef %7122) #11
  br label %7124

7124:                                             ; preds = %7107, %7090
  call void @llvm.lifetime.end.p0(i64 4, ptr %194) #11
  br label %7125

7125:                                             ; preds = %7124
  br label %7126

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

7127:                                             ; No predecessors!
  br label %7128

7128:                                             ; preds = %7127
  br label %7129

7129:                                             ; preds = %7128, %7070
  br label %7130

7130:                                             ; preds = %7129
  br label %7131

7131:                                             ; preds = %7130
  br label %7132

7132:                                             ; preds = %7131
  %7133 = load i32, ptr @test_count, align 4, !tbaa !5
  %7134 = add nsw i32 %7133, 1
  store i32 %7134, ptr @test_count, align 4, !tbaa !5
  %7135 = load ptr, ptr %120, align 8, !tbaa !9
  %7136 = getelementptr inbounds %struct.s2n_connection, ptr %7135, i32 0, i32 41
  %7137 = getelementptr inbounds %struct.s2n_stuffer, ptr %7136, i32 0, i32 0
  %7138 = getelementptr inbounds %struct.s2n_blob, ptr %7137, i32 0, i32 0
  %7139 = load ptr, ptr %7138, align 8, !tbaa !67
  %7140 = getelementptr inbounds i8, ptr %7139, i64 3
  %7141 = load i8, ptr %7140, align 1, !tbaa !59
  %7142 = zext i8 %7141 to i32
  %7143 = shl i32 %7142, 8
  %7144 = load ptr, ptr %120, align 8, !tbaa !9
  %7145 = getelementptr inbounds %struct.s2n_connection, ptr %7144, i32 0, i32 41
  %7146 = getelementptr inbounds %struct.s2n_stuffer, ptr %7145, i32 0, i32 0
  %7147 = getelementptr inbounds %struct.s2n_blob, ptr %7146, i32 0, i32 0
  %7148 = load ptr, ptr %7147, align 8, !tbaa !67
  %7149 = getelementptr inbounds i8, ptr %7148, i64 4
  %7150 = load i8, ptr %7149, align 1, !tbaa !59
  %7151 = zext i8 %7150 to i32
  %7152 = or i32 %7143, %7151
  %7153 = load i16, ptr %193, align 2, !tbaa !62
  %7154 = zext i16 %7153 to i32
  %7155 = sub nsw i32 %7154, 5
  %7156 = icmp eq i32 %7152, %7155
  br i1 %7156, label %7210, label %7157

7157:                                             ; preds = %7132
  br label %7158

7158:                                             ; preds = %7157
  br label %7159

7159:                                             ; preds = %7158
  call void @llvm.lifetime.start.p0(i64 4, ptr %195) #11
  %7160 = call ptr @__errno_location() #12
  %7161 = load i32, ptr %7160, align 4, !tbaa !5
  store i32 %7161, ptr %195, align 4, !tbaa !5
  %7162 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7163 = call i32 @s2n_print_stacktrace(ptr noundef %7162)
  %7164 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7165 = trunc i8 %7164 to i1
  br i1 %7165, label %7166, label %7188

7166:                                             ; preds = %7159
  %7167 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7168 = call i32 @fileno(ptr noundef %7167) #11
  %7169 = call i32 @isatty(i32 noundef %7168) #11
  %7170 = icmp ne i32 %7169, 0
  br i1 %7170, label %7171, label %7188

7171:                                             ; preds = %7166
  %7172 = load i32, ptr %195, align 4, !tbaa !5
  %7173 = call ptr @__errno_location() #12
  store i32 %7172, ptr %7173, align 4, !tbaa !5
  %7174 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7175 = load i32, ptr @test_count, align 4, !tbaa !5
  %7176 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7177 = load i32, ptr %7176, align 4, !tbaa !5
  %7178 = call ptr @s2n_strerror(i32 noundef %7177, ptr noundef @.str.4)
  %7179 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7180 = load i32, ptr %7179, align 4, !tbaa !5
  %7181 = call ptr @s2n_strerror_debug(i32 noundef %7180, ptr noundef @.str.4)
  %7182 = call ptr @__errno_location() #12
  %7183 = load i32, ptr %7182, align 4, !tbaa !5
  %7184 = call ptr @strerror(i32 noundef %7183) #11
  %7185 = call ptr @__errno_location() #12
  %7186 = load i32, ptr %7185, align 4, !tbaa !5
  %7187 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7174, ptr noundef @.str.2, i32 noundef %7175, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 337, ptr noundef %7178, ptr noundef %7181, ptr noundef %7184, i32 noundef %7186) #11
  br label %7205

7188:                                             ; preds = %7166, %7159
  %7189 = load i32, ptr %195, align 4, !tbaa !5
  %7190 = call ptr @__errno_location() #12
  store i32 %7189, ptr %7190, align 4, !tbaa !5
  %7191 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7192 = load i32, ptr @test_count, align 4, !tbaa !5
  %7193 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7194 = load i32, ptr %7193, align 4, !tbaa !5
  %7195 = call ptr @s2n_strerror(i32 noundef %7194, ptr noundef @.str.4)
  %7196 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7197 = load i32, ptr %7196, align 4, !tbaa !5
  %7198 = call ptr @s2n_strerror_debug(i32 noundef %7197, ptr noundef @.str.4)
  %7199 = call ptr @__errno_location() #12
  %7200 = load i32, ptr %7199, align 4, !tbaa !5
  %7201 = call ptr @strerror(i32 noundef %7200) #11
  %7202 = call ptr @__errno_location() #12
  %7203 = load i32, ptr %7202, align 4, !tbaa !5
  %7204 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7191, ptr noundef @.str.5, i32 noundef %7192, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 337, ptr noundef %7195, ptr noundef %7198, ptr noundef %7201, i32 noundef %7203) #11
  br label %7205

7205:                                             ; preds = %7188, %7171
  call void @llvm.lifetime.end.p0(i64 4, ptr %195) #11
  br label %7206

7206:                                             ; preds = %7205
  br label %7207

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

7208:                                             ; No predecessors!
  br label %7209

7209:                                             ; preds = %7208
  br label %7210

7210:                                             ; preds = %7209, %7132
  br label %7211

7211:                                             ; preds = %7210
  br label %7212

7212:                                             ; preds = %7211
  call void @llvm.lifetime.end.p0(i64 2, ptr %193) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %184) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %183) #11
  br label %7213

7213:                                             ; preds = %7212, %6544
  %7214 = load ptr, ptr getelementptr inbounds (%struct.s2n_cipher, ptr @s2n_chacha20_poly1305, i32 0, i32 3), align 8, !tbaa !68
  %7215 = call zeroext i1 %7214()
  br i1 %7215, label %7216, label %7884

7216:                                             ; preds = %7213
  br label %7217

7217:                                             ; preds = %7216
  %7218 = load i32, ptr @test_count, align 4, !tbaa !5
  %7219 = add nsw i32 %7218, 1
  store i32 %7219, ptr @test_count, align 4, !tbaa !5
  %7220 = load ptr, ptr %120, align 8, !tbaa !9
  %7221 = call i32 @destroy_server_keys(ptr noundef %7220)
  %7222 = icmp eq i32 %7221, -1
  br i1 %7222, label %7223, label %7276

7223:                                             ; preds = %7217
  br label %7224

7224:                                             ; preds = %7223
  br label %7225

7225:                                             ; preds = %7224
  call void @llvm.lifetime.start.p0(i64 4, ptr %196) #11
  %7226 = call ptr @__errno_location() #12
  %7227 = load i32, ptr %7226, align 4, !tbaa !5
  store i32 %7227, ptr %196, align 4, !tbaa !5
  %7228 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7229 = call i32 @s2n_print_stacktrace(ptr noundef %7228)
  %7230 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7231 = trunc i8 %7230 to i1
  br i1 %7231, label %7232, label %7254

7232:                                             ; preds = %7225
  %7233 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7234 = call i32 @fileno(ptr noundef %7233) #11
  %7235 = call i32 @isatty(i32 noundef %7234) #11
  %7236 = icmp ne i32 %7235, 0
  br i1 %7236, label %7237, label %7254

7237:                                             ; preds = %7232
  %7238 = load i32, ptr %196, align 4, !tbaa !5
  %7239 = call ptr @__errno_location() #12
  store i32 %7238, ptr %7239, align 4, !tbaa !5
  %7240 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7241 = load i32, ptr @test_count, align 4, !tbaa !5
  %7242 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7243 = load i32, ptr %7242, align 4, !tbaa !5
  %7244 = call ptr @s2n_strerror(i32 noundef %7243, ptr noundef @.str.4)
  %7245 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7246 = load i32, ptr %7245, align 4, !tbaa !5
  %7247 = call ptr @s2n_strerror_debug(i32 noundef %7246, ptr noundef @.str.4)
  %7248 = call ptr @__errno_location() #12
  %7249 = load i32, ptr %7248, align 4, !tbaa !5
  %7250 = call ptr @strerror(i32 noundef %7249) #11
  %7251 = call ptr @__errno_location() #12
  %7252 = load i32, ptr %7251, align 4, !tbaa !5
  %7253 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7240, ptr noundef @.str.2, i32 noundef %7241, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 342, ptr noundef %7244, ptr noundef %7247, ptr noundef %7250, i32 noundef %7252) #11
  br label %7271

7254:                                             ; preds = %7232, %7225
  %7255 = load i32, ptr %196, align 4, !tbaa !5
  %7256 = call ptr @__errno_location() #12
  store i32 %7255, ptr %7256, align 4, !tbaa !5
  %7257 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7258 = load i32, ptr @test_count, align 4, !tbaa !5
  %7259 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7260 = load i32, ptr %7259, align 4, !tbaa !5
  %7261 = call ptr @s2n_strerror(i32 noundef %7260, ptr noundef @.str.4)
  %7262 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7263 = load i32, ptr %7262, align 4, !tbaa !5
  %7264 = call ptr @s2n_strerror_debug(i32 noundef %7263, ptr noundef @.str.4)
  %7265 = call ptr @__errno_location() #12
  %7266 = load i32, ptr %7265, align 4, !tbaa !5
  %7267 = call ptr @strerror(i32 noundef %7266) #11
  %7268 = call ptr @__errno_location() #12
  %7269 = load i32, ptr %7268, align 4, !tbaa !5
  %7270 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7257, ptr noundef @.str.5, i32 noundef %7258, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 342, ptr noundef %7261, ptr noundef %7264, ptr noundef %7267, i32 noundef %7269) #11
  br label %7271

7271:                                             ; preds = %7254, %7237
  call void @llvm.lifetime.end.p0(i64 4, ptr %196) #11
  br label %7272

7272:                                             ; preds = %7271
  br label %7273

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

7274:                                             ; No predecessors!
  br label %7275

7275:                                             ; preds = %7274
  br label %7276

7276:                                             ; preds = %7275, %7217
  br label %7277

7277:                                             ; preds = %7276
  br label %7278

7278:                                             ; preds = %7277
  br label %7279

7279:                                             ; preds = %7278
  %7280 = load i32, ptr @test_count, align 4, !tbaa !5
  %7281 = add nsw i32 %7280, 1
  store i32 %7281, ptr @test_count, align 4, !tbaa !5
  %7282 = load ptr, ptr %120, align 8, !tbaa !9
  %7283 = call i32 @s2n_connection_wipe(ptr noundef %7282)
  %7284 = icmp eq i32 %7283, -1
  br i1 %7284, label %7285, label %7338

7285:                                             ; preds = %7279
  br label %7286

7286:                                             ; preds = %7285
  br label %7287

7287:                                             ; preds = %7286
  call void @llvm.lifetime.start.p0(i64 4, ptr %197) #11
  %7288 = call ptr @__errno_location() #12
  %7289 = load i32, ptr %7288, align 4, !tbaa !5
  store i32 %7289, ptr %197, align 4, !tbaa !5
  %7290 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7291 = call i32 @s2n_print_stacktrace(ptr noundef %7290)
  %7292 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7293 = trunc i8 %7292 to i1
  br i1 %7293, label %7294, label %7316

7294:                                             ; preds = %7287
  %7295 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7296 = call i32 @fileno(ptr noundef %7295) #11
  %7297 = call i32 @isatty(i32 noundef %7296) #11
  %7298 = icmp ne i32 %7297, 0
  br i1 %7298, label %7299, label %7316

7299:                                             ; preds = %7294
  %7300 = load i32, ptr %197, align 4, !tbaa !5
  %7301 = call ptr @__errno_location() #12
  store i32 %7300, ptr %7301, align 4, !tbaa !5
  %7302 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7303 = load i32, ptr @test_count, align 4, !tbaa !5
  %7304 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7305 = load i32, ptr %7304, align 4, !tbaa !5
  %7306 = call ptr @s2n_strerror(i32 noundef %7305, ptr noundef @.str.4)
  %7307 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7308 = load i32, ptr %7307, align 4, !tbaa !5
  %7309 = call ptr @s2n_strerror_debug(i32 noundef %7308, ptr noundef @.str.4)
  %7310 = call ptr @__errno_location() #12
  %7311 = load i32, ptr %7310, align 4, !tbaa !5
  %7312 = call ptr @strerror(i32 noundef %7311) #11
  %7313 = call ptr @__errno_location() #12
  %7314 = load i32, ptr %7313, align 4, !tbaa !5
  %7315 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7302, ptr noundef @.str.2, i32 noundef %7303, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 343, ptr noundef %7306, ptr noundef %7309, ptr noundef %7312, i32 noundef %7314) #11
  br label %7333

7316:                                             ; preds = %7294, %7287
  %7317 = load i32, ptr %197, align 4, !tbaa !5
  %7318 = call ptr @__errno_location() #12
  store i32 %7317, ptr %7318, align 4, !tbaa !5
  %7319 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7320 = load i32, ptr @test_count, align 4, !tbaa !5
  %7321 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7322 = load i32, ptr %7321, align 4, !tbaa !5
  %7323 = call ptr @s2n_strerror(i32 noundef %7322, ptr noundef @.str.4)
  %7324 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7325 = load i32, ptr %7324, align 4, !tbaa !5
  %7326 = call ptr @s2n_strerror_debug(i32 noundef %7325, ptr noundef @.str.4)
  %7327 = call ptr @__errno_location() #12
  %7328 = load i32, ptr %7327, align 4, !tbaa !5
  %7329 = call ptr @strerror(i32 noundef %7328) #11
  %7330 = call ptr @__errno_location() #12
  %7331 = load i32, ptr %7330, align 4, !tbaa !5
  %7332 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7319, ptr noundef @.str.5, i32 noundef %7320, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 343, ptr noundef %7323, ptr noundef %7326, ptr noundef %7329, i32 noundef %7331) #11
  br label %7333

7333:                                             ; preds = %7316, %7299
  call void @llvm.lifetime.end.p0(i64 4, ptr %197) #11
  br label %7334

7334:                                             ; preds = %7333
  br label %7335

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

7336:                                             ; No predecessors!
  br label %7337

7337:                                             ; preds = %7336
  br label %7338

7338:                                             ; preds = %7337, %7279
  br label %7339

7339:                                             ; preds = %7338
  br label %7340

7340:                                             ; preds = %7339
  %7341 = load ptr, ptr %120, align 8, !tbaa !9
  %7342 = getelementptr inbounds %struct.s2n_connection, ptr %7341, i32 0, i32 23
  store i8 34, ptr %7342, align 4, !tbaa !57
  %7343 = load ptr, ptr %120, align 8, !tbaa !9
  %7344 = getelementptr inbounds %struct.s2n_connection, ptr %7343, i32 0, i32 26
  %7345 = load ptr, ptr %7344, align 8, !tbaa !64
  %7346 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %7345, i32 0, i32 0
  %7347 = load ptr, ptr %7346, align 8, !tbaa !44
  %7348 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %7347, i32 0, i32 6
  store ptr @s2n_tls13_record_alg_chacha20_poly1305, ptr %7348, align 8, !tbaa !49
  call void @llvm.lifetime.start.p0(i64 32, ptr %198) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %198, ptr align 16 @__const.main.chacha20_poly1305_key_data.61, i64 32, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr %199) #11
  call void @llvm.memset.p0.i64(ptr align 8 %199, i8 0, i64 24, i1 false)
  br label %7349

7349:                                             ; preds = %7340
  %7350 = load i32, ptr @test_count, align 4, !tbaa !5
  %7351 = add nsw i32 %7350, 1
  store i32 %7351, ptr @test_count, align 4, !tbaa !5
  %7352 = getelementptr inbounds [32 x i8], ptr %198, i64 0, i64 0
  %7353 = call i32 @s2n_blob_init(ptr noundef %199, ptr noundef %7352, i32 noundef 32)
  %7354 = icmp eq i32 %7353, -1
  br i1 %7354, label %7355, label %7408

7355:                                             ; preds = %7349
  br label %7356

7356:                                             ; preds = %7355
  br label %7357

7357:                                             ; preds = %7356
  call void @llvm.lifetime.start.p0(i64 4, ptr %200) #11
  %7358 = call ptr @__errno_location() #12
  %7359 = load i32, ptr %7358, align 4, !tbaa !5
  store i32 %7359, ptr %200, align 4, !tbaa !5
  %7360 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7361 = call i32 @s2n_print_stacktrace(ptr noundef %7360)
  %7362 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7363 = trunc i8 %7362 to i1
  br i1 %7363, label %7364, label %7386

7364:                                             ; preds = %7357
  %7365 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7366 = call i32 @fileno(ptr noundef %7365) #11
  %7367 = call i32 @isatty(i32 noundef %7366) #11
  %7368 = icmp ne i32 %7367, 0
  br i1 %7368, label %7369, label %7386

7369:                                             ; preds = %7364
  %7370 = load i32, ptr %200, align 4, !tbaa !5
  %7371 = call ptr @__errno_location() #12
  store i32 %7370, ptr %7371, align 4, !tbaa !5
  %7372 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7373 = load i32, ptr @test_count, align 4, !tbaa !5
  %7374 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7375 = load i32, ptr %7374, align 4, !tbaa !5
  %7376 = call ptr @s2n_strerror(i32 noundef %7375, ptr noundef @.str.4)
  %7377 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7378 = load i32, ptr %7377, align 4, !tbaa !5
  %7379 = call ptr @s2n_strerror_debug(i32 noundef %7378, ptr noundef @.str.4)
  %7380 = call ptr @__errno_location() #12
  %7381 = load i32, ptr %7380, align 4, !tbaa !5
  %7382 = call ptr @strerror(i32 noundef %7381) #11
  %7383 = call ptr @__errno_location() #12
  %7384 = load i32, ptr %7383, align 4, !tbaa !5
  %7385 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7372, ptr noundef @.str.2, i32 noundef %7373, ptr noundef @.str.58, ptr noundef @.str.1, i32 noundef 349, ptr noundef %7376, ptr noundef %7379, ptr noundef %7382, i32 noundef %7384) #11
  br label %7403

7386:                                             ; preds = %7364, %7357
  %7387 = load i32, ptr %200, align 4, !tbaa !5
  %7388 = call ptr @__errno_location() #12
  store i32 %7387, ptr %7388, align 4, !tbaa !5
  %7389 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7390 = load i32, ptr @test_count, align 4, !tbaa !5
  %7391 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7392 = load i32, ptr %7391, align 4, !tbaa !5
  %7393 = call ptr @s2n_strerror(i32 noundef %7392, ptr noundef @.str.4)
  %7394 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7395 = load i32, ptr %7394, align 4, !tbaa !5
  %7396 = call ptr @s2n_strerror_debug(i32 noundef %7395, ptr noundef @.str.4)
  %7397 = call ptr @__errno_location() #12
  %7398 = load i32, ptr %7397, align 4, !tbaa !5
  %7399 = call ptr @strerror(i32 noundef %7398) #11
  %7400 = call ptr @__errno_location() #12
  %7401 = load i32, ptr %7400, align 4, !tbaa !5
  %7402 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7389, ptr noundef @.str.5, i32 noundef %7390, ptr noundef @.str.58, ptr noundef @.str.1, i32 noundef 349, ptr noundef %7393, ptr noundef %7396, ptr noundef %7399, i32 noundef %7401) #11
  br label %7403

7403:                                             ; preds = %7386, %7369
  call void @llvm.lifetime.end.p0(i64 4, ptr %200) #11
  br label %7404

7404:                                             ; preds = %7403
  br label %7405

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

7406:                                             ; No predecessors!
  br label %7407

7407:                                             ; preds = %7406
  br label %7408

7408:                                             ; preds = %7407, %7349
  br label %7409

7409:                                             ; preds = %7408
  br label %7410

7410:                                             ; preds = %7409
  br label %7411

7411:                                             ; preds = %7410
  %7412 = load i32, ptr @test_count, align 4, !tbaa !5
  %7413 = add nsw i32 %7412, 1
  store i32 %7413, ptr @test_count, align 4, !tbaa !5
  %7414 = load ptr, ptr %120, align 8, !tbaa !9
  %7415 = call i32 @setup_server_keys(ptr noundef %7414, ptr noundef %199)
  %7416 = icmp eq i32 %7415, -1
  br i1 %7416, label %7417, label %7470

7417:                                             ; preds = %7411
  br label %7418

7418:                                             ; preds = %7417
  br label %7419

7419:                                             ; preds = %7418
  call void @llvm.lifetime.start.p0(i64 4, ptr %201) #11
  %7420 = call ptr @__errno_location() #12
  %7421 = load i32, ptr %7420, align 4, !tbaa !5
  store i32 %7421, ptr %201, align 4, !tbaa !5
  %7422 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7423 = call i32 @s2n_print_stacktrace(ptr noundef %7422)
  %7424 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7425 = trunc i8 %7424 to i1
  br i1 %7425, label %7426, label %7448

7426:                                             ; preds = %7419
  %7427 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7428 = call i32 @fileno(ptr noundef %7427) #11
  %7429 = call i32 @isatty(i32 noundef %7428) #11
  %7430 = icmp ne i32 %7429, 0
  br i1 %7430, label %7431, label %7448

7431:                                             ; preds = %7426
  %7432 = load i32, ptr %201, align 4, !tbaa !5
  %7433 = call ptr @__errno_location() #12
  store i32 %7432, ptr %7433, align 4, !tbaa !5
  %7434 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7435 = load i32, ptr @test_count, align 4, !tbaa !5
  %7436 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7437 = load i32, ptr %7436, align 4, !tbaa !5
  %7438 = call ptr @s2n_strerror(i32 noundef %7437, ptr noundef @.str.4)
  %7439 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7440 = load i32, ptr %7439, align 4, !tbaa !5
  %7441 = call ptr @s2n_strerror_debug(i32 noundef %7440, ptr noundef @.str.4)
  %7442 = call ptr @__errno_location() #12
  %7443 = load i32, ptr %7442, align 4, !tbaa !5
  %7444 = call ptr @strerror(i32 noundef %7443) #11
  %7445 = call ptr @__errno_location() #12
  %7446 = load i32, ptr %7445, align 4, !tbaa !5
  %7447 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7434, ptr noundef @.str.2, i32 noundef %7435, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 351, ptr noundef %7438, ptr noundef %7441, ptr noundef %7444, i32 noundef %7446) #11
  br label %7465

7448:                                             ; preds = %7426, %7419
  %7449 = load i32, ptr %201, align 4, !tbaa !5
  %7450 = call ptr @__errno_location() #12
  store i32 %7449, ptr %7450, align 4, !tbaa !5
  %7451 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7452 = load i32, ptr @test_count, align 4, !tbaa !5
  %7453 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7454 = load i32, ptr %7453, align 4, !tbaa !5
  %7455 = call ptr @s2n_strerror(i32 noundef %7454, ptr noundef @.str.4)
  %7456 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7457 = load i32, ptr %7456, align 4, !tbaa !5
  %7458 = call ptr @s2n_strerror_debug(i32 noundef %7457, ptr noundef @.str.4)
  %7459 = call ptr @__errno_location() #12
  %7460 = load i32, ptr %7459, align 4, !tbaa !5
  %7461 = call ptr @strerror(i32 noundef %7460) #11
  %7462 = call ptr @__errno_location() #12
  %7463 = load i32, ptr %7462, align 4, !tbaa !5
  %7464 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7451, ptr noundef @.str.5, i32 noundef %7452, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 351, ptr noundef %7455, ptr noundef %7458, ptr noundef %7461, i32 noundef %7463) #11
  br label %7465

7465:                                             ; preds = %7448, %7431
  call void @llvm.lifetime.end.p0(i64 4, ptr %201) #11
  br label %7466

7466:                                             ; preds = %7465
  br label %7467

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

7468:                                             ; No predecessors!
  br label %7469

7469:                                             ; preds = %7468
  br label %7470

7470:                                             ; preds = %7469, %7411
  br label %7471

7471:                                             ; preds = %7470
  br label %7472

7472:                                             ; preds = %7471
  br label %7473

7473:                                             ; preds = %7472
  %7474 = load i32, ptr @test_count, align 4, !tbaa !5
  %7475 = add nsw i32 %7474, 1
  store i32 %7475, ptr @test_count, align 4, !tbaa !5
  %7476 = load ptr, ptr %120, align 8, !tbaa !9
  %7477 = getelementptr inbounds %struct.s2n_connection, ptr %7476, i32 0, i32 41
  %7478 = call i32 @s2n_stuffer_wipe(ptr noundef %7477)
  %7479 = icmp eq i32 %7478, -1
  br i1 %7479, label %7480, label %7533

7480:                                             ; preds = %7473
  br label %7481

7481:                                             ; preds = %7480
  br label %7482

7482:                                             ; preds = %7481
  call void @llvm.lifetime.start.p0(i64 4, ptr %202) #11
  %7483 = call ptr @__errno_location() #12
  %7484 = load i32, ptr %7483, align 4, !tbaa !5
  store i32 %7484, ptr %202, align 4, !tbaa !5
  %7485 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7486 = call i32 @s2n_print_stacktrace(ptr noundef %7485)
  %7487 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7488 = trunc i8 %7487 to i1
  br i1 %7488, label %7489, label %7511

7489:                                             ; preds = %7482
  %7490 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7491 = call i32 @fileno(ptr noundef %7490) #11
  %7492 = call i32 @isatty(i32 noundef %7491) #11
  %7493 = icmp ne i32 %7492, 0
  br i1 %7493, label %7494, label %7511

7494:                                             ; preds = %7489
  %7495 = load i32, ptr %202, align 4, !tbaa !5
  %7496 = call ptr @__errno_location() #12
  store i32 %7495, ptr %7496, align 4, !tbaa !5
  %7497 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7498 = load i32, ptr @test_count, align 4, !tbaa !5
  %7499 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7500 = load i32, ptr %7499, align 4, !tbaa !5
  %7501 = call ptr @s2n_strerror(i32 noundef %7500, ptr noundef @.str.4)
  %7502 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7503 = load i32, ptr %7502, align 4, !tbaa !5
  %7504 = call ptr @s2n_strerror_debug(i32 noundef %7503, ptr noundef @.str.4)
  %7505 = call ptr @__errno_location() #12
  %7506 = load i32, ptr %7505, align 4, !tbaa !5
  %7507 = call ptr @strerror(i32 noundef %7506) #11
  %7508 = call ptr @__errno_location() #12
  %7509 = load i32, ptr %7508, align 4, !tbaa !5
  %7510 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7497, ptr noundef @.str.2, i32 noundef %7498, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 352, ptr noundef %7501, ptr noundef %7504, ptr noundef %7507, i32 noundef %7509) #11
  br label %7528

7511:                                             ; preds = %7489, %7482
  %7512 = load i32, ptr %202, align 4, !tbaa !5
  %7513 = call ptr @__errno_location() #12
  store i32 %7512, ptr %7513, align 4, !tbaa !5
  %7514 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7515 = load i32, ptr @test_count, align 4, !tbaa !5
  %7516 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7517 = load i32, ptr %7516, align 4, !tbaa !5
  %7518 = call ptr @s2n_strerror(i32 noundef %7517, ptr noundef @.str.4)
  %7519 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7520 = load i32, ptr %7519, align 4, !tbaa !5
  %7521 = call ptr @s2n_strerror_debug(i32 noundef %7520, ptr noundef @.str.4)
  %7522 = call ptr @__errno_location() #12
  %7523 = load i32, ptr %7522, align 4, !tbaa !5
  %7524 = call ptr @strerror(i32 noundef %7523) #11
  %7525 = call ptr @__errno_location() #12
  %7526 = load i32, ptr %7525, align 4, !tbaa !5
  %7527 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7514, ptr noundef @.str.5, i32 noundef %7515, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 352, ptr noundef %7518, ptr noundef %7521, ptr noundef %7524, i32 noundef %7526) #11
  br label %7528

7528:                                             ; preds = %7511, %7494
  call void @llvm.lifetime.end.p0(i64 4, ptr %202) #11
  br label %7529

7529:                                             ; preds = %7528
  br label %7530

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

7531:                                             ; No predecessors!
  br label %7532

7532:                                             ; preds = %7531
  br label %7533

7533:                                             ; preds = %7532, %7473
  br label %7534

7534:                                             ; preds = %7533
  br label %7535

7535:                                             ; preds = %7534
  br label %7536

7536:                                             ; preds = %7535
  %7537 = load i32, ptr @test_count, align 4, !tbaa !5
  %7538 = add nsw i32 %7537, 1
  store i32 %7538, ptr @test_count, align 4, !tbaa !5
  %7539 = load ptr, ptr %120, align 8, !tbaa !9
  %7540 = call i32 @s2n_record_min_write_payload_size(ptr noundef %7539, ptr noundef %122)
  %7541 = getelementptr inbounds %struct.s2n_result, ptr %203, i32 0, i32 0
  store i32 %7540, ptr %7541, align 4
  %7542 = getelementptr inbounds %struct.s2n_result, ptr %203, i32 0, i32 0
  %7543 = load i32, ptr %7542, align 4
  %7544 = call zeroext i1 @s2n_result_is_ok(i32 %7543)
  br i1 %7544, label %7598, label %7545

7545:                                             ; preds = %7536
  br label %7546

7546:                                             ; preds = %7545
  br label %7547

7547:                                             ; preds = %7546
  call void @llvm.lifetime.start.p0(i64 4, ptr %204) #11
  %7548 = call ptr @__errno_location() #12
  %7549 = load i32, ptr %7548, align 4, !tbaa !5
  store i32 %7549, ptr %204, align 4, !tbaa !5
  %7550 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7551 = call i32 @s2n_print_stacktrace(ptr noundef %7550)
  %7552 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7553 = trunc i8 %7552 to i1
  br i1 %7553, label %7554, label %7576

7554:                                             ; preds = %7547
  %7555 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7556 = call i32 @fileno(ptr noundef %7555) #11
  %7557 = call i32 @isatty(i32 noundef %7556) #11
  %7558 = icmp ne i32 %7557, 0
  br i1 %7558, label %7559, label %7576

7559:                                             ; preds = %7554
  %7560 = load i32, ptr %204, align 4, !tbaa !5
  %7561 = call ptr @__errno_location() #12
  store i32 %7560, ptr %7561, align 4, !tbaa !5
  %7562 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7563 = load i32, ptr @test_count, align 4, !tbaa !5
  %7564 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7565 = load i32, ptr %7564, align 4, !tbaa !5
  %7566 = call ptr @s2n_strerror(i32 noundef %7565, ptr noundef @.str.4)
  %7567 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7568 = load i32, ptr %7567, align 4, !tbaa !5
  %7569 = call ptr @s2n_strerror_debug(i32 noundef %7568, ptr noundef @.str.4)
  %7570 = call ptr @__errno_location() #12
  %7571 = load i32, ptr %7570, align 4, !tbaa !5
  %7572 = call ptr @strerror(i32 noundef %7571) #11
  %7573 = call ptr @__errno_location() #12
  %7574 = load i32, ptr %7573, align 4, !tbaa !5
  %7575 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7562, ptr noundef @.str.2, i32 noundef %7563, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 354, ptr noundef %7566, ptr noundef %7569, ptr noundef %7572, i32 noundef %7574) #11
  br label %7593

7576:                                             ; preds = %7554, %7547
  %7577 = load i32, ptr %204, align 4, !tbaa !5
  %7578 = call ptr @__errno_location() #12
  store i32 %7577, ptr %7578, align 4, !tbaa !5
  %7579 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7580 = load i32, ptr @test_count, align 4, !tbaa !5
  %7581 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7582 = load i32, ptr %7581, align 4, !tbaa !5
  %7583 = call ptr @s2n_strerror(i32 noundef %7582, ptr noundef @.str.4)
  %7584 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7585 = load i32, ptr %7584, align 4, !tbaa !5
  %7586 = call ptr @s2n_strerror_debug(i32 noundef %7585, ptr noundef @.str.4)
  %7587 = call ptr @__errno_location() #12
  %7588 = load i32, ptr %7587, align 4, !tbaa !5
  %7589 = call ptr @strerror(i32 noundef %7588) #11
  %7590 = call ptr @__errno_location() #12
  %7591 = load i32, ptr %7590, align 4, !tbaa !5
  %7592 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7579, ptr noundef @.str.5, i32 noundef %7580, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 354, ptr noundef %7583, ptr noundef %7586, ptr noundef %7589, i32 noundef %7591) #11
  br label %7593

7593:                                             ; preds = %7576, %7559
  call void @llvm.lifetime.end.p0(i64 4, ptr %204) #11
  br label %7594

7594:                                             ; preds = %7593
  br label %7595

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

7596:                                             ; No predecessors!
  br label %7597

7597:                                             ; preds = %7596
  br label %7598

7598:                                             ; preds = %7597, %7536
  br label %7599

7599:                                             ; preds = %7598
  br label %7600

7600:                                             ; preds = %7599
  br label %7601

7601:                                             ; preds = %7600
  %7602 = load i32, ptr @test_count, align 4, !tbaa !5
  %7603 = add nsw i32 %7602, 1
  store i32 %7603, ptr @test_count, align 4, !tbaa !5
  %7604 = load i16, ptr %122, align 2, !tbaa !62
  %7605 = zext i16 %7604 to i32
  %7606 = icmp eq i32 %7605, 1398
  br i1 %7606, label %7660, label %7607

7607:                                             ; preds = %7601
  br label %7608

7608:                                             ; preds = %7607
  br label %7609

7609:                                             ; preds = %7608
  call void @llvm.lifetime.start.p0(i64 4, ptr %205) #11
  %7610 = call ptr @__errno_location() #12
  %7611 = load i32, ptr %7610, align 4, !tbaa !5
  store i32 %7611, ptr %205, align 4, !tbaa !5
  %7612 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7613 = call i32 @s2n_print_stacktrace(ptr noundef %7612)
  %7614 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7615 = trunc i8 %7614 to i1
  br i1 %7615, label %7616, label %7638

7616:                                             ; preds = %7609
  %7617 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7618 = call i32 @fileno(ptr noundef %7617) #11
  %7619 = call i32 @isatty(i32 noundef %7618) #11
  %7620 = icmp ne i32 %7619, 0
  br i1 %7620, label %7621, label %7638

7621:                                             ; preds = %7616
  %7622 = load i32, ptr %205, align 4, !tbaa !5
  %7623 = call ptr @__errno_location() #12
  store i32 %7622, ptr %7623, align 4, !tbaa !5
  %7624 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7625 = load i32, ptr @test_count, align 4, !tbaa !5
  %7626 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7627 = load i32, ptr %7626, align 4, !tbaa !5
  %7628 = call ptr @s2n_strerror(i32 noundef %7627, ptr noundef @.str.4)
  %7629 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7630 = load i32, ptr %7629, align 4, !tbaa !5
  %7631 = call ptr @s2n_strerror_debug(i32 noundef %7630, ptr noundef @.str.4)
  %7632 = call ptr @__errno_location() #12
  %7633 = load i32, ptr %7632, align 4, !tbaa !5
  %7634 = call ptr @strerror(i32 noundef %7633) #11
  %7635 = call ptr @__errno_location() #12
  %7636 = load i32, ptr %7635, align 4, !tbaa !5
  %7637 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7624, ptr noundef @.str.2, i32 noundef %7625, ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 355, ptr noundef %7628, ptr noundef %7631, ptr noundef %7634, i32 noundef %7636) #11
  br label %7655

7638:                                             ; preds = %7616, %7609
  %7639 = load i32, ptr %205, align 4, !tbaa !5
  %7640 = call ptr @__errno_location() #12
  store i32 %7639, ptr %7640, align 4, !tbaa !5
  %7641 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7642 = load i32, ptr @test_count, align 4, !tbaa !5
  %7643 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7644 = load i32, ptr %7643, align 4, !tbaa !5
  %7645 = call ptr @s2n_strerror(i32 noundef %7644, ptr noundef @.str.4)
  %7646 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7647 = load i32, ptr %7646, align 4, !tbaa !5
  %7648 = call ptr @s2n_strerror_debug(i32 noundef %7647, ptr noundef @.str.4)
  %7649 = call ptr @__errno_location() #12
  %7650 = load i32, ptr %7649, align 4, !tbaa !5
  %7651 = call ptr @strerror(i32 noundef %7650) #11
  %7652 = call ptr @__errno_location() #12
  %7653 = load i32, ptr %7652, align 4, !tbaa !5
  %7654 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7641, ptr noundef @.str.5, i32 noundef %7642, ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 355, ptr noundef %7645, ptr noundef %7648, ptr noundef %7651, i32 noundef %7653) #11
  br label %7655

7655:                                             ; preds = %7638, %7621
  call void @llvm.lifetime.end.p0(i64 4, ptr %205) #11
  br label %7656

7656:                                             ; preds = %7655
  br label %7657

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

7658:                                             ; No predecessors!
  br label %7659

7659:                                             ; preds = %7658
  br label %7660

7660:                                             ; preds = %7659, %7601
  br label %7661

7661:                                             ; preds = %7660
  br label %7662

7662:                                             ; preds = %7661
  %7663 = load i16, ptr %122, align 2, !tbaa !62
  %7664 = zext i16 %7663 to i32
  %7665 = getelementptr inbounds %struct.s2n_blob, ptr %12, i32 0, i32 1
  store i32 %7664, ptr %7665, align 8, !tbaa !60
  br label %7666

7666:                                             ; preds = %7662
  %7667 = load i32, ptr @test_count, align 4, !tbaa !5
  %7668 = add nsw i32 %7667, 1
  store i32 %7668, ptr @test_count, align 4, !tbaa !5
  %7669 = load ptr, ptr %120, align 8, !tbaa !9
  %7670 = call i32 @s2n_record_write(ptr noundef %7669, i8 noundef zeroext 23, ptr noundef %12)
  %7671 = getelementptr inbounds %struct.s2n_result, ptr %206, i32 0, i32 0
  store i32 %7670, ptr %7671, align 4
  %7672 = getelementptr inbounds %struct.s2n_result, ptr %206, i32 0, i32 0
  %7673 = load i32, ptr %7672, align 4
  %7674 = call zeroext i1 @s2n_result_is_ok(i32 %7673)
  br i1 %7674, label %7728, label %7675

7675:                                             ; preds = %7666
  br label %7676

7676:                                             ; preds = %7675
  br label %7677

7677:                                             ; preds = %7676
  call void @llvm.lifetime.start.p0(i64 4, ptr %207) #11
  %7678 = call ptr @__errno_location() #12
  %7679 = load i32, ptr %7678, align 4, !tbaa !5
  store i32 %7679, ptr %207, align 4, !tbaa !5
  %7680 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7681 = call i32 @s2n_print_stacktrace(ptr noundef %7680)
  %7682 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7683 = trunc i8 %7682 to i1
  br i1 %7683, label %7684, label %7706

7684:                                             ; preds = %7677
  %7685 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7686 = call i32 @fileno(ptr noundef %7685) #11
  %7687 = call i32 @isatty(i32 noundef %7686) #11
  %7688 = icmp ne i32 %7687, 0
  br i1 %7688, label %7689, label %7706

7689:                                             ; preds = %7684
  %7690 = load i32, ptr %207, align 4, !tbaa !5
  %7691 = call ptr @__errno_location() #12
  store i32 %7690, ptr %7691, align 4, !tbaa !5
  %7692 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7693 = load i32, ptr @test_count, align 4, !tbaa !5
  %7694 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7695 = load i32, ptr %7694, align 4, !tbaa !5
  %7696 = call ptr @s2n_strerror(i32 noundef %7695, ptr noundef @.str.4)
  %7697 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7698 = load i32, ptr %7697, align 4, !tbaa !5
  %7699 = call ptr @s2n_strerror_debug(i32 noundef %7698, ptr noundef @.str.4)
  %7700 = call ptr @__errno_location() #12
  %7701 = load i32, ptr %7700, align 4, !tbaa !5
  %7702 = call ptr @strerror(i32 noundef %7701) #11
  %7703 = call ptr @__errno_location() #12
  %7704 = load i32, ptr %7703, align 4, !tbaa !5
  %7705 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7692, ptr noundef @.str.2, i32 noundef %7693, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 358, ptr noundef %7696, ptr noundef %7699, ptr noundef %7702, i32 noundef %7704) #11
  br label %7723

7706:                                             ; preds = %7684, %7677
  %7707 = load i32, ptr %207, align 4, !tbaa !5
  %7708 = call ptr @__errno_location() #12
  store i32 %7707, ptr %7708, align 4, !tbaa !5
  %7709 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7710 = load i32, ptr @test_count, align 4, !tbaa !5
  %7711 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7712 = load i32, ptr %7711, align 4, !tbaa !5
  %7713 = call ptr @s2n_strerror(i32 noundef %7712, ptr noundef @.str.4)
  %7714 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7715 = load i32, ptr %7714, align 4, !tbaa !5
  %7716 = call ptr @s2n_strerror_debug(i32 noundef %7715, ptr noundef @.str.4)
  %7717 = call ptr @__errno_location() #12
  %7718 = load i32, ptr %7717, align 4, !tbaa !5
  %7719 = call ptr @strerror(i32 noundef %7718) #11
  %7720 = call ptr @__errno_location() #12
  %7721 = load i32, ptr %7720, align 4, !tbaa !5
  %7722 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7709, ptr noundef @.str.5, i32 noundef %7710, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 358, ptr noundef %7713, ptr noundef %7716, ptr noundef %7719, i32 noundef %7721) #11
  br label %7723

7723:                                             ; preds = %7706, %7689
  call void @llvm.lifetime.end.p0(i64 4, ptr %207) #11
  br label %7724

7724:                                             ; preds = %7723
  br label %7725

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

7726:                                             ; No predecessors!
  br label %7727

7727:                                             ; preds = %7726
  br label %7728

7728:                                             ; preds = %7727, %7666
  br label %7729

7729:                                             ; preds = %7728
  br label %7730

7730:                                             ; preds = %7729
  call void @llvm.lifetime.start.p0(i64 2, ptr %208) #11
  %7731 = load ptr, ptr %120, align 8, !tbaa !9
  %7732 = getelementptr inbounds %struct.s2n_connection, ptr %7731, i32 0, i32 41
  %7733 = getelementptr inbounds %struct.s2n_stuffer, ptr %7732, i32 0, i32 2
  %7734 = load i32, ptr %7733, align 4, !tbaa !65
  %7735 = load ptr, ptr %120, align 8, !tbaa !9
  %7736 = getelementptr inbounds %struct.s2n_connection, ptr %7735, i32 0, i32 41
  %7737 = getelementptr inbounds %struct.s2n_stuffer, ptr %7736, i32 0, i32 1
  %7738 = load i32, ptr %7737, align 8, !tbaa !66
  %7739 = sub i32 %7734, %7738
  %7740 = trunc i32 %7739 to i16
  store i16 %7740, ptr %208, align 2, !tbaa !62
  br label %7741

7741:                                             ; preds = %7730
  %7742 = load i32, ptr @test_count, align 4, !tbaa !5
  %7743 = add nsw i32 %7742, 1
  store i32 %7743, ptr @test_count, align 4, !tbaa !5
  %7744 = load i16, ptr %208, align 2, !tbaa !62
  %7745 = zext i16 %7744 to i32
  %7746 = icmp sle i32 %7745, 1420
  br i1 %7746, label %7800, label %7747

7747:                                             ; preds = %7741
  br label %7748

7748:                                             ; preds = %7747
  br label %7749

7749:                                             ; preds = %7748
  call void @llvm.lifetime.start.p0(i64 4, ptr %209) #11
  %7750 = call ptr @__errno_location() #12
  %7751 = load i32, ptr %7750, align 4, !tbaa !5
  store i32 %7751, ptr %209, align 4, !tbaa !5
  %7752 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7753 = call i32 @s2n_print_stacktrace(ptr noundef %7752)
  %7754 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7755 = trunc i8 %7754 to i1
  br i1 %7755, label %7756, label %7778

7756:                                             ; preds = %7749
  %7757 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7758 = call i32 @fileno(ptr noundef %7757) #11
  %7759 = call i32 @isatty(i32 noundef %7758) #11
  %7760 = icmp ne i32 %7759, 0
  br i1 %7760, label %7761, label %7778

7761:                                             ; preds = %7756
  %7762 = load i32, ptr %209, align 4, !tbaa !5
  %7763 = call ptr @__errno_location() #12
  store i32 %7762, ptr %7763, align 4, !tbaa !5
  %7764 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7765 = load i32, ptr @test_count, align 4, !tbaa !5
  %7766 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7767 = load i32, ptr %7766, align 4, !tbaa !5
  %7768 = call ptr @s2n_strerror(i32 noundef %7767, ptr noundef @.str.4)
  %7769 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7770 = load i32, ptr %7769, align 4, !tbaa !5
  %7771 = call ptr @s2n_strerror_debug(i32 noundef %7770, ptr noundef @.str.4)
  %7772 = call ptr @__errno_location() #12
  %7773 = load i32, ptr %7772, align 4, !tbaa !5
  %7774 = call ptr @strerror(i32 noundef %7773) #11
  %7775 = call ptr @__errno_location() #12
  %7776 = load i32, ptr %7775, align 4, !tbaa !5
  %7777 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7764, ptr noundef @.str.2, i32 noundef %7765, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 360, ptr noundef %7768, ptr noundef %7771, ptr noundef %7774, i32 noundef %7776) #11
  br label %7795

7778:                                             ; preds = %7756, %7749
  %7779 = load i32, ptr %209, align 4, !tbaa !5
  %7780 = call ptr @__errno_location() #12
  store i32 %7779, ptr %7780, align 4, !tbaa !5
  %7781 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7782 = load i32, ptr @test_count, align 4, !tbaa !5
  %7783 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7784 = load i32, ptr %7783, align 4, !tbaa !5
  %7785 = call ptr @s2n_strerror(i32 noundef %7784, ptr noundef @.str.4)
  %7786 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7787 = load i32, ptr %7786, align 4, !tbaa !5
  %7788 = call ptr @s2n_strerror_debug(i32 noundef %7787, ptr noundef @.str.4)
  %7789 = call ptr @__errno_location() #12
  %7790 = load i32, ptr %7789, align 4, !tbaa !5
  %7791 = call ptr @strerror(i32 noundef %7790) #11
  %7792 = call ptr @__errno_location() #12
  %7793 = load i32, ptr %7792, align 4, !tbaa !5
  %7794 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7781, ptr noundef @.str.5, i32 noundef %7782, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 360, ptr noundef %7785, ptr noundef %7788, ptr noundef %7791, i32 noundef %7793) #11
  br label %7795

7795:                                             ; preds = %7778, %7761
  call void @llvm.lifetime.end.p0(i64 4, ptr %209) #11
  br label %7796

7796:                                             ; preds = %7795
  br label %7797

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

7798:                                             ; No predecessors!
  br label %7799

7799:                                             ; preds = %7798
  br label %7800

7800:                                             ; preds = %7799, %7741
  br label %7801

7801:                                             ; preds = %7800
  br label %7802

7802:                                             ; preds = %7801
  br label %7803

7803:                                             ; preds = %7802
  %7804 = load i32, ptr @test_count, align 4, !tbaa !5
  %7805 = add nsw i32 %7804, 1
  store i32 %7805, ptr @test_count, align 4, !tbaa !5
  %7806 = load ptr, ptr %120, align 8, !tbaa !9
  %7807 = getelementptr inbounds %struct.s2n_connection, ptr %7806, i32 0, i32 41
  %7808 = getelementptr inbounds %struct.s2n_stuffer, ptr %7807, i32 0, i32 0
  %7809 = getelementptr inbounds %struct.s2n_blob, ptr %7808, i32 0, i32 0
  %7810 = load ptr, ptr %7809, align 8, !tbaa !67
  %7811 = getelementptr inbounds i8, ptr %7810, i64 3
  %7812 = load i8, ptr %7811, align 1, !tbaa !59
  %7813 = zext i8 %7812 to i32
  %7814 = shl i32 %7813, 8
  %7815 = load ptr, ptr %120, align 8, !tbaa !9
  %7816 = getelementptr inbounds %struct.s2n_connection, ptr %7815, i32 0, i32 41
  %7817 = getelementptr inbounds %struct.s2n_stuffer, ptr %7816, i32 0, i32 0
  %7818 = getelementptr inbounds %struct.s2n_blob, ptr %7817, i32 0, i32 0
  %7819 = load ptr, ptr %7818, align 8, !tbaa !67
  %7820 = getelementptr inbounds i8, ptr %7819, i64 4
  %7821 = load i8, ptr %7820, align 1, !tbaa !59
  %7822 = zext i8 %7821 to i32
  %7823 = or i32 %7814, %7822
  %7824 = load i16, ptr %208, align 2, !tbaa !62
  %7825 = zext i16 %7824 to i32
  %7826 = sub nsw i32 %7825, 5
  %7827 = icmp eq i32 %7823, %7826
  br i1 %7827, label %7881, label %7828

7828:                                             ; preds = %7803
  br label %7829

7829:                                             ; preds = %7828
  br label %7830

7830:                                             ; preds = %7829
  call void @llvm.lifetime.start.p0(i64 4, ptr %210) #11
  %7831 = call ptr @__errno_location() #12
  %7832 = load i32, ptr %7831, align 4, !tbaa !5
  store i32 %7832, ptr %210, align 4, !tbaa !5
  %7833 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7834 = call i32 @s2n_print_stacktrace(ptr noundef %7833)
  %7835 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7836 = trunc i8 %7835 to i1
  br i1 %7836, label %7837, label %7859

7837:                                             ; preds = %7830
  %7838 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7839 = call i32 @fileno(ptr noundef %7838) #11
  %7840 = call i32 @isatty(i32 noundef %7839) #11
  %7841 = icmp ne i32 %7840, 0
  br i1 %7841, label %7842, label %7859

7842:                                             ; preds = %7837
  %7843 = load i32, ptr %210, align 4, !tbaa !5
  %7844 = call ptr @__errno_location() #12
  store i32 %7843, ptr %7844, align 4, !tbaa !5
  %7845 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7846 = load i32, ptr @test_count, align 4, !tbaa !5
  %7847 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7848 = load i32, ptr %7847, align 4, !tbaa !5
  %7849 = call ptr @s2n_strerror(i32 noundef %7848, ptr noundef @.str.4)
  %7850 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7851 = load i32, ptr %7850, align 4, !tbaa !5
  %7852 = call ptr @s2n_strerror_debug(i32 noundef %7851, ptr noundef @.str.4)
  %7853 = call ptr @__errno_location() #12
  %7854 = load i32, ptr %7853, align 4, !tbaa !5
  %7855 = call ptr @strerror(i32 noundef %7854) #11
  %7856 = call ptr @__errno_location() #12
  %7857 = load i32, ptr %7856, align 4, !tbaa !5
  %7858 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7845, ptr noundef @.str.2, i32 noundef %7846, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 361, ptr noundef %7849, ptr noundef %7852, ptr noundef %7855, i32 noundef %7857) #11
  br label %7876

7859:                                             ; preds = %7837, %7830
  %7860 = load i32, ptr %210, align 4, !tbaa !5
  %7861 = call ptr @__errno_location() #12
  store i32 %7860, ptr %7861, align 4, !tbaa !5
  %7862 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7863 = load i32, ptr @test_count, align 4, !tbaa !5
  %7864 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7865 = load i32, ptr %7864, align 4, !tbaa !5
  %7866 = call ptr @s2n_strerror(i32 noundef %7865, ptr noundef @.str.4)
  %7867 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7868 = load i32, ptr %7867, align 4, !tbaa !5
  %7869 = call ptr @s2n_strerror_debug(i32 noundef %7868, ptr noundef @.str.4)
  %7870 = call ptr @__errno_location() #12
  %7871 = load i32, ptr %7870, align 4, !tbaa !5
  %7872 = call ptr @strerror(i32 noundef %7871) #11
  %7873 = call ptr @__errno_location() #12
  %7874 = load i32, ptr %7873, align 4, !tbaa !5
  %7875 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7862, ptr noundef @.str.5, i32 noundef %7863, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 361, ptr noundef %7866, ptr noundef %7869, ptr noundef %7872, i32 noundef %7874) #11
  br label %7876

7876:                                             ; preds = %7859, %7842
  call void @llvm.lifetime.end.p0(i64 4, ptr %210) #11
  br label %7877

7877:                                             ; preds = %7876
  br label %7878

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

7879:                                             ; No predecessors!
  br label %7880

7880:                                             ; preds = %7879
  br label %7881

7881:                                             ; preds = %7880, %7803
  br label %7882

7882:                                             ; preds = %7881
  br label %7883

7883:                                             ; preds = %7882
  call void @llvm.lifetime.end.p0(i64 2, ptr %208) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %199) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %198) #11
  br label %7884

7884:                                             ; preds = %7883, %7213
  %7885 = load ptr, ptr getelementptr inbounds (%struct.s2n_cipher, ptr @s2n_aes128_sha, i32 0, i32 3), align 8, !tbaa !68
  %7886 = call zeroext i1 %7885()
  br i1 %7886, label %7887, label %8748

7887:                                             ; preds = %7884
  %7888 = load ptr, ptr getelementptr inbounds (%struct.s2n_cipher, ptr @s2n_aes128_sha256, i32 0, i32 3), align 8, !tbaa !68
  %7889 = call zeroext i1 %7888()
  br i1 %7889, label %7890, label %8748

7890:                                             ; preds = %7887
  br label %7891

7891:                                             ; preds = %7890
  %7892 = load i32, ptr @test_count, align 4, !tbaa !5
  %7893 = add nsw i32 %7892, 1
  store i32 %7893, ptr @test_count, align 4, !tbaa !5
  %7894 = load ptr, ptr %120, align 8, !tbaa !9
  %7895 = call i32 @destroy_server_keys(ptr noundef %7894)
  %7896 = icmp eq i32 %7895, -1
  br i1 %7896, label %7897, label %7950

7897:                                             ; preds = %7891
  br label %7898

7898:                                             ; preds = %7897
  br label %7899

7899:                                             ; preds = %7898
  call void @llvm.lifetime.start.p0(i64 4, ptr %211) #11
  %7900 = call ptr @__errno_location() #12
  %7901 = load i32, ptr %7900, align 4, !tbaa !5
  store i32 %7901, ptr %211, align 4, !tbaa !5
  %7902 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7903 = call i32 @s2n_print_stacktrace(ptr noundef %7902)
  %7904 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7905 = trunc i8 %7904 to i1
  br i1 %7905, label %7906, label %7928

7906:                                             ; preds = %7899
  %7907 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7908 = call i32 @fileno(ptr noundef %7907) #11
  %7909 = call i32 @isatty(i32 noundef %7908) #11
  %7910 = icmp ne i32 %7909, 0
  br i1 %7910, label %7911, label %7928

7911:                                             ; preds = %7906
  %7912 = load i32, ptr %211, align 4, !tbaa !5
  %7913 = call ptr @__errno_location() #12
  store i32 %7912, ptr %7913, align 4, !tbaa !5
  %7914 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7915 = load i32, ptr @test_count, align 4, !tbaa !5
  %7916 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7917 = load i32, ptr %7916, align 4, !tbaa !5
  %7918 = call ptr @s2n_strerror(i32 noundef %7917, ptr noundef @.str.4)
  %7919 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7920 = load i32, ptr %7919, align 4, !tbaa !5
  %7921 = call ptr @s2n_strerror_debug(i32 noundef %7920, ptr noundef @.str.4)
  %7922 = call ptr @__errno_location() #12
  %7923 = load i32, ptr %7922, align 4, !tbaa !5
  %7924 = call ptr @strerror(i32 noundef %7923) #11
  %7925 = call ptr @__errno_location() #12
  %7926 = load i32, ptr %7925, align 4, !tbaa !5
  %7927 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7914, ptr noundef @.str.2, i32 noundef %7915, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 366, ptr noundef %7918, ptr noundef %7921, ptr noundef %7924, i32 noundef %7926) #11
  br label %7945

7928:                                             ; preds = %7906, %7899
  %7929 = load i32, ptr %211, align 4, !tbaa !5
  %7930 = call ptr @__errno_location() #12
  store i32 %7929, ptr %7930, align 4, !tbaa !5
  %7931 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7932 = load i32, ptr @test_count, align 4, !tbaa !5
  %7933 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7934 = load i32, ptr %7933, align 4, !tbaa !5
  %7935 = call ptr @s2n_strerror(i32 noundef %7934, ptr noundef @.str.4)
  %7936 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7937 = load i32, ptr %7936, align 4, !tbaa !5
  %7938 = call ptr @s2n_strerror_debug(i32 noundef %7937, ptr noundef @.str.4)
  %7939 = call ptr @__errno_location() #12
  %7940 = load i32, ptr %7939, align 4, !tbaa !5
  %7941 = call ptr @strerror(i32 noundef %7940) #11
  %7942 = call ptr @__errno_location() #12
  %7943 = load i32, ptr %7942, align 4, !tbaa !5
  %7944 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7931, ptr noundef @.str.5, i32 noundef %7932, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 366, ptr noundef %7935, ptr noundef %7938, ptr noundef %7941, i32 noundef %7943) #11
  br label %7945

7945:                                             ; preds = %7928, %7911
  call void @llvm.lifetime.end.p0(i64 4, ptr %211) #11
  br label %7946

7946:                                             ; preds = %7945
  br label %7947

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

7948:                                             ; No predecessors!
  br label %7949

7949:                                             ; preds = %7948
  br label %7950

7950:                                             ; preds = %7949, %7891
  br label %7951

7951:                                             ; preds = %7950
  br label %7952

7952:                                             ; preds = %7951
  br label %7953

7953:                                             ; preds = %7952
  %7954 = load i32, ptr @test_count, align 4, !tbaa !5
  %7955 = add nsw i32 %7954, 1
  store i32 %7955, ptr @test_count, align 4, !tbaa !5
  %7956 = load ptr, ptr %120, align 8, !tbaa !9
  %7957 = call i32 @s2n_connection_wipe(ptr noundef %7956)
  %7958 = icmp eq i32 %7957, -1
  br i1 %7958, label %7959, label %8012

7959:                                             ; preds = %7953
  br label %7960

7960:                                             ; preds = %7959
  br label %7961

7961:                                             ; preds = %7960
  call void @llvm.lifetime.start.p0(i64 4, ptr %212) #11
  %7962 = call ptr @__errno_location() #12
  %7963 = load i32, ptr %7962, align 4, !tbaa !5
  store i32 %7963, ptr %212, align 4, !tbaa !5
  %7964 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7965 = call i32 @s2n_print_stacktrace(ptr noundef %7964)
  %7966 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7967 = trunc i8 %7966 to i1
  br i1 %7967, label %7968, label %7990

7968:                                             ; preds = %7961
  %7969 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7970 = call i32 @fileno(ptr noundef %7969) #11
  %7971 = call i32 @isatty(i32 noundef %7970) #11
  %7972 = icmp ne i32 %7971, 0
  br i1 %7972, label %7973, label %7990

7973:                                             ; preds = %7968
  %7974 = load i32, ptr %212, align 4, !tbaa !5
  %7975 = call ptr @__errno_location() #12
  store i32 %7974, ptr %7975, align 4, !tbaa !5
  %7976 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7977 = load i32, ptr @test_count, align 4, !tbaa !5
  %7978 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7979 = load i32, ptr %7978, align 4, !tbaa !5
  %7980 = call ptr @s2n_strerror(i32 noundef %7979, ptr noundef @.str.4)
  %7981 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7982 = load i32, ptr %7981, align 4, !tbaa !5
  %7983 = call ptr @s2n_strerror_debug(i32 noundef %7982, ptr noundef @.str.4)
  %7984 = call ptr @__errno_location() #12
  %7985 = load i32, ptr %7984, align 4, !tbaa !5
  %7986 = call ptr @strerror(i32 noundef %7985) #11
  %7987 = call ptr @__errno_location() #12
  %7988 = load i32, ptr %7987, align 4, !tbaa !5
  %7989 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7976, ptr noundef @.str.2, i32 noundef %7977, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 367, ptr noundef %7980, ptr noundef %7983, ptr noundef %7986, i32 noundef %7988) #11
  br label %8007

7990:                                             ; preds = %7968, %7961
  %7991 = load i32, ptr %212, align 4, !tbaa !5
  %7992 = call ptr @__errno_location() #12
  store i32 %7991, ptr %7992, align 4, !tbaa !5
  %7993 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7994 = load i32, ptr @test_count, align 4, !tbaa !5
  %7995 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7996 = load i32, ptr %7995, align 4, !tbaa !5
  %7997 = call ptr @s2n_strerror(i32 noundef %7996, ptr noundef @.str.4)
  %7998 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7999 = load i32, ptr %7998, align 4, !tbaa !5
  %8000 = call ptr @s2n_strerror_debug(i32 noundef %7999, ptr noundef @.str.4)
  %8001 = call ptr @__errno_location() #12
  %8002 = load i32, ptr %8001, align 4, !tbaa !5
  %8003 = call ptr @strerror(i32 noundef %8002) #11
  %8004 = call ptr @__errno_location() #12
  %8005 = load i32, ptr %8004, align 4, !tbaa !5
  %8006 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7993, ptr noundef @.str.5, i32 noundef %7994, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 367, ptr noundef %7997, ptr noundef %8000, ptr noundef %8003, i32 noundef %8005) #11
  br label %8007

8007:                                             ; preds = %7990, %7973
  call void @llvm.lifetime.end.p0(i64 4, ptr %212) #11
  br label %8008

8008:                                             ; preds = %8007
  br label %8009

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

8010:                                             ; No predecessors!
  br label %8011

8011:                                             ; preds = %8010
  br label %8012

8012:                                             ; preds = %8011, %7953
  br label %8013

8013:                                             ; preds = %8012
  br label %8014

8014:                                             ; preds = %8013
  br label %8015

8015:                                             ; preds = %8014
  %8016 = load i32, ptr @test_count, align 4, !tbaa !5
  %8017 = add nsw i32 %8016, 1
  store i32 %8017, ptr @test_count, align 4, !tbaa !5
  %8018 = load ptr, ptr %120, align 8, !tbaa !9
  %8019 = getelementptr inbounds %struct.s2n_connection, ptr %8018, i32 0, i32 41
  %8020 = call i32 @s2n_stuffer_wipe(ptr noundef %8019)
  %8021 = icmp eq i32 %8020, -1
  br i1 %8021, label %8022, label %8075

8022:                                             ; preds = %8015
  br label %8023

8023:                                             ; preds = %8022
  br label %8024

8024:                                             ; preds = %8023
  call void @llvm.lifetime.start.p0(i64 4, ptr %213) #11
  %8025 = call ptr @__errno_location() #12
  %8026 = load i32, ptr %8025, align 4, !tbaa !5
  store i32 %8026, ptr %213, align 4, !tbaa !5
  %8027 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8028 = call i32 @s2n_print_stacktrace(ptr noundef %8027)
  %8029 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8030 = trunc i8 %8029 to i1
  br i1 %8030, label %8031, label %8053

8031:                                             ; preds = %8024
  %8032 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8033 = call i32 @fileno(ptr noundef %8032) #11
  %8034 = call i32 @isatty(i32 noundef %8033) #11
  %8035 = icmp ne i32 %8034, 0
  br i1 %8035, label %8036, label %8053

8036:                                             ; preds = %8031
  %8037 = load i32, ptr %213, align 4, !tbaa !5
  %8038 = call ptr @__errno_location() #12
  store i32 %8037, ptr %8038, align 4, !tbaa !5
  %8039 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8040 = load i32, ptr @test_count, align 4, !tbaa !5
  %8041 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8042 = load i32, ptr %8041, align 4, !tbaa !5
  %8043 = call ptr @s2n_strerror(i32 noundef %8042, ptr noundef @.str.4)
  %8044 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8045 = load i32, ptr %8044, align 4, !tbaa !5
  %8046 = call ptr @s2n_strerror_debug(i32 noundef %8045, ptr noundef @.str.4)
  %8047 = call ptr @__errno_location() #12
  %8048 = load i32, ptr %8047, align 4, !tbaa !5
  %8049 = call ptr @strerror(i32 noundef %8048) #11
  %8050 = call ptr @__errno_location() #12
  %8051 = load i32, ptr %8050, align 4, !tbaa !5
  %8052 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8039, ptr noundef @.str.2, i32 noundef %8040, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 368, ptr noundef %8043, ptr noundef %8046, ptr noundef %8049, i32 noundef %8051) #11
  br label %8070

8053:                                             ; preds = %8031, %8024
  %8054 = load i32, ptr %213, align 4, !tbaa !5
  %8055 = call ptr @__errno_location() #12
  store i32 %8054, ptr %8055, align 4, !tbaa !5
  %8056 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8057 = load i32, ptr @test_count, align 4, !tbaa !5
  %8058 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8059 = load i32, ptr %8058, align 4, !tbaa !5
  %8060 = call ptr @s2n_strerror(i32 noundef %8059, ptr noundef @.str.4)
  %8061 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8062 = load i32, ptr %8061, align 4, !tbaa !5
  %8063 = call ptr @s2n_strerror_debug(i32 noundef %8062, ptr noundef @.str.4)
  %8064 = call ptr @__errno_location() #12
  %8065 = load i32, ptr %8064, align 4, !tbaa !5
  %8066 = call ptr @strerror(i32 noundef %8065) #11
  %8067 = call ptr @__errno_location() #12
  %8068 = load i32, ptr %8067, align 4, !tbaa !5
  %8069 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8056, ptr noundef @.str.5, i32 noundef %8057, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 368, ptr noundef %8060, ptr noundef %8063, ptr noundef %8066, i32 noundef %8068) #11
  br label %8070

8070:                                             ; preds = %8053, %8036
  call void @llvm.lifetime.end.p0(i64 4, ptr %213) #11
  br label %8071

8071:                                             ; preds = %8070
  br label %8072

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

8073:                                             ; No predecessors!
  br label %8074

8074:                                             ; preds = %8073
  br label %8075

8075:                                             ; preds = %8074, %8015
  br label %8076

8076:                                             ; preds = %8075
  br label %8077

8077:                                             ; preds = %8076
  %8078 = load ptr, ptr %120, align 8, !tbaa !9
  %8079 = getelementptr inbounds %struct.s2n_connection, ptr %8078, i32 0, i32 26
  %8080 = load ptr, ptr %8079, align 8, !tbaa !64
  %8081 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %8080, i32 0, i32 0
  %8082 = load ptr, ptr %8081, align 8, !tbaa !44
  %8083 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %8082, i32 0, i32 6
  store ptr @s2n_record_alg_aes128_sha_composite, ptr %8083, align 8, !tbaa !49
  %8084 = load ptr, ptr %120, align 8, !tbaa !9
  %8085 = getelementptr inbounds %struct.s2n_connection, ptr %8084, i32 0, i32 23
  store i8 32, ptr %8085, align 4, !tbaa !57
  call void @llvm.lifetime.start.p0(i64 20, ptr %214) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %214, ptr align 16 @__const.main.mac_key_sha, i64 20, i1 false)
  br label %8086

8086:                                             ; preds = %8077
  %8087 = load i32, ptr @test_count, align 4, !tbaa !5
  %8088 = add nsw i32 %8087, 1
  store i32 %8088, ptr @test_count, align 4, !tbaa !5
  %8089 = load ptr, ptr %120, align 8, !tbaa !9
  %8090 = getelementptr inbounds %struct.s2n_connection, ptr %8089, i32 0, i32 26
  %8091 = load ptr, ptr %8090, align 8, !tbaa !64
  %8092 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %8091, i32 0, i32 0
  %8093 = load ptr, ptr %8092, align 8, !tbaa !44
  %8094 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %8093, i32 0, i32 6
  %8095 = load ptr, ptr %8094, align 8, !tbaa !49
  %8096 = getelementptr inbounds %struct.s2n_record_algorithm, ptr %8095, i32 0, i32 0
  %8097 = load ptr, ptr %8096, align 8, !tbaa !51
  %8098 = getelementptr inbounds %struct.s2n_cipher, ptr %8097, i32 0, i32 6
  %8099 = load ptr, ptr %8098, align 8, !tbaa !55
  %8100 = load ptr, ptr %120, align 8, !tbaa !9
  %8101 = getelementptr inbounds %struct.s2n_connection, ptr %8100, i32 0, i32 26
  %8102 = load ptr, ptr %8101, align 8, !tbaa !64
  %8103 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %8102, i32 0, i32 2
  %8104 = call i32 %8099(ptr noundef %8103, ptr noundef %17)
  %8105 = getelementptr inbounds %struct.s2n_result, ptr %215, i32 0, i32 0
  store i32 %8104, ptr %8105, align 4
  %8106 = getelementptr inbounds %struct.s2n_result, ptr %215, i32 0, i32 0
  %8107 = load i32, ptr %8106, align 4
  %8108 = call zeroext i1 @s2n_result_is_ok(i32 %8107)
  br i1 %8108, label %8162, label %8109

8109:                                             ; preds = %8086
  br label %8110

8110:                                             ; preds = %8109
  br label %8111

8111:                                             ; preds = %8110
  call void @llvm.lifetime.start.p0(i64 4, ptr %216) #11
  %8112 = call ptr @__errno_location() #12
  %8113 = load i32, ptr %8112, align 4, !tbaa !5
  store i32 %8113, ptr %216, align 4, !tbaa !5
  %8114 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8115 = call i32 @s2n_print_stacktrace(ptr noundef %8114)
  %8116 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8117 = trunc i8 %8116 to i1
  br i1 %8117, label %8118, label %8140

8118:                                             ; preds = %8111
  %8119 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8120 = call i32 @fileno(ptr noundef %8119) #11
  %8121 = call i32 @isatty(i32 noundef %8120) #11
  %8122 = icmp ne i32 %8121, 0
  br i1 %8122, label %8123, label %8140

8123:                                             ; preds = %8118
  %8124 = load i32, ptr %216, align 4, !tbaa !5
  %8125 = call ptr @__errno_location() #12
  store i32 %8124, ptr %8125, align 4, !tbaa !5
  %8126 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8127 = load i32, ptr @test_count, align 4, !tbaa !5
  %8128 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8129 = load i32, ptr %8128, align 4, !tbaa !5
  %8130 = call ptr @s2n_strerror(i32 noundef %8129, ptr noundef @.str.4)
  %8131 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8132 = load i32, ptr %8131, align 4, !tbaa !5
  %8133 = call ptr @s2n_strerror_debug(i32 noundef %8132, ptr noundef @.str.4)
  %8134 = call ptr @__errno_location() #12
  %8135 = load i32, ptr %8134, align 4, !tbaa !5
  %8136 = call ptr @strerror(i32 noundef %8135) #11
  %8137 = call ptr @__errno_location() #12
  %8138 = load i32, ptr %8137, align 4, !tbaa !5
  %8139 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8126, ptr noundef @.str.2, i32 noundef %8127, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 373, ptr noundef %8130, ptr noundef %8133, ptr noundef %8136, i32 noundef %8138) #11
  br label %8157

8140:                                             ; preds = %8118, %8111
  %8141 = load i32, ptr %216, align 4, !tbaa !5
  %8142 = call ptr @__errno_location() #12
  store i32 %8141, ptr %8142, align 4, !tbaa !5
  %8143 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8144 = load i32, ptr @test_count, align 4, !tbaa !5
  %8145 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8146 = load i32, ptr %8145, align 4, !tbaa !5
  %8147 = call ptr @s2n_strerror(i32 noundef %8146, ptr noundef @.str.4)
  %8148 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8149 = load i32, ptr %8148, align 4, !tbaa !5
  %8150 = call ptr @s2n_strerror_debug(i32 noundef %8149, ptr noundef @.str.4)
  %8151 = call ptr @__errno_location() #12
  %8152 = load i32, ptr %8151, align 4, !tbaa !5
  %8153 = call ptr @strerror(i32 noundef %8152) #11
  %8154 = call ptr @__errno_location() #12
  %8155 = load i32, ptr %8154, align 4, !tbaa !5
  %8156 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8143, ptr noundef @.str.5, i32 noundef %8144, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 373, ptr noundef %8147, ptr noundef %8150, ptr noundef %8153, i32 noundef %8155) #11
  br label %8157

8157:                                             ; preds = %8140, %8123
  call void @llvm.lifetime.end.p0(i64 4, ptr %216) #11
  br label %8158

8158:                                             ; preds = %8157
  br label %8159

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

8160:                                             ; No predecessors!
  br label %8161

8161:                                             ; preds = %8160
  br label %8162

8162:                                             ; preds = %8161, %8086
  br label %8163

8163:                                             ; preds = %8162
  br label %8164

8164:                                             ; preds = %8163
  br label %8165

8165:                                             ; preds = %8164
  %8166 = load i32, ptr @test_count, align 4, !tbaa !5
  %8167 = add nsw i32 %8166, 1
  store i32 %8167, ptr @test_count, align 4, !tbaa !5
  %8168 = load ptr, ptr %120, align 8, !tbaa !9
  %8169 = getelementptr inbounds %struct.s2n_connection, ptr %8168, i32 0, i32 26
  %8170 = load ptr, ptr %8169, align 8, !tbaa !64
  %8171 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %8170, i32 0, i32 0
  %8172 = load ptr, ptr %8171, align 8, !tbaa !44
  %8173 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %8172, i32 0, i32 6
  %8174 = load ptr, ptr %8173, align 8, !tbaa !49
  %8175 = getelementptr inbounds %struct.s2n_record_algorithm, ptr %8174, i32 0, i32 0
  %8176 = load ptr, ptr %8175, align 8, !tbaa !51
  %8177 = getelementptr inbounds %struct.s2n_cipher, ptr %8176, i32 0, i32 5
  %8178 = load ptr, ptr %8177, align 8, !tbaa !56
  %8179 = load ptr, ptr %120, align 8, !tbaa !9
  %8180 = getelementptr inbounds %struct.s2n_connection, ptr %8179, i32 0, i32 26
  %8181 = load ptr, ptr %8180, align 8, !tbaa !64
  %8182 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %8181, i32 0, i32 1
  %8183 = call i32 %8178(ptr noundef %8182, ptr noundef %17)
  %8184 = getelementptr inbounds %struct.s2n_result, ptr %217, i32 0, i32 0
  store i32 %8183, ptr %8184, align 4
  %8185 = getelementptr inbounds %struct.s2n_result, ptr %217, i32 0, i32 0
  %8186 = load i32, ptr %8185, align 4
  %8187 = call zeroext i1 @s2n_result_is_ok(i32 %8186)
  br i1 %8187, label %8241, label %8188

8188:                                             ; preds = %8165
  br label %8189

8189:                                             ; preds = %8188
  br label %8190

8190:                                             ; preds = %8189
  call void @llvm.lifetime.start.p0(i64 4, ptr %218) #11
  %8191 = call ptr @__errno_location() #12
  %8192 = load i32, ptr %8191, align 4, !tbaa !5
  store i32 %8192, ptr %218, align 4, !tbaa !5
  %8193 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8194 = call i32 @s2n_print_stacktrace(ptr noundef %8193)
  %8195 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8196 = trunc i8 %8195 to i1
  br i1 %8196, label %8197, label %8219

8197:                                             ; preds = %8190
  %8198 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8199 = call i32 @fileno(ptr noundef %8198) #11
  %8200 = call i32 @isatty(i32 noundef %8199) #11
  %8201 = icmp ne i32 %8200, 0
  br i1 %8201, label %8202, label %8219

8202:                                             ; preds = %8197
  %8203 = load i32, ptr %218, align 4, !tbaa !5
  %8204 = call ptr @__errno_location() #12
  store i32 %8203, ptr %8204, align 4, !tbaa !5
  %8205 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8206 = load i32, ptr @test_count, align 4, !tbaa !5
  %8207 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8208 = load i32, ptr %8207, align 4, !tbaa !5
  %8209 = call ptr @s2n_strerror(i32 noundef %8208, ptr noundef @.str.4)
  %8210 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8211 = load i32, ptr %8210, align 4, !tbaa !5
  %8212 = call ptr @s2n_strerror_debug(i32 noundef %8211, ptr noundef @.str.4)
  %8213 = call ptr @__errno_location() #12
  %8214 = load i32, ptr %8213, align 4, !tbaa !5
  %8215 = call ptr @strerror(i32 noundef %8214) #11
  %8216 = call ptr @__errno_location() #12
  %8217 = load i32, ptr %8216, align 4, !tbaa !5
  %8218 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8205, ptr noundef @.str.2, i32 noundef %8206, ptr noundef @.str.64, ptr noundef @.str.1, i32 noundef 374, ptr noundef %8209, ptr noundef %8212, ptr noundef %8215, i32 noundef %8217) #11
  br label %8236

8219:                                             ; preds = %8197, %8190
  %8220 = load i32, ptr %218, align 4, !tbaa !5
  %8221 = call ptr @__errno_location() #12
  store i32 %8220, ptr %8221, align 4, !tbaa !5
  %8222 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8223 = load i32, ptr @test_count, align 4, !tbaa !5
  %8224 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8225 = load i32, ptr %8224, align 4, !tbaa !5
  %8226 = call ptr @s2n_strerror(i32 noundef %8225, ptr noundef @.str.4)
  %8227 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8228 = load i32, ptr %8227, align 4, !tbaa !5
  %8229 = call ptr @s2n_strerror_debug(i32 noundef %8228, ptr noundef @.str.4)
  %8230 = call ptr @__errno_location() #12
  %8231 = load i32, ptr %8230, align 4, !tbaa !5
  %8232 = call ptr @strerror(i32 noundef %8231) #11
  %8233 = call ptr @__errno_location() #12
  %8234 = load i32, ptr %8233, align 4, !tbaa !5
  %8235 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8222, ptr noundef @.str.5, i32 noundef %8223, ptr noundef @.str.64, ptr noundef @.str.1, i32 noundef 374, ptr noundef %8226, ptr noundef %8229, ptr noundef %8232, i32 noundef %8234) #11
  br label %8236

8236:                                             ; preds = %8219, %8202
  call void @llvm.lifetime.end.p0(i64 4, ptr %218) #11
  br label %8237

8237:                                             ; preds = %8236
  br label %8238

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

8239:                                             ; No predecessors!
  br label %8240

8240:                                             ; preds = %8239
  br label %8241

8241:                                             ; preds = %8240, %8165
  br label %8242

8242:                                             ; preds = %8241
  br label %8243

8243:                                             ; preds = %8242
  br label %8244

8244:                                             ; preds = %8243
  %8245 = load i32, ptr @test_count, align 4, !tbaa !5
  %8246 = add nsw i32 %8245, 1
  store i32 %8246, ptr @test_count, align 4, !tbaa !5
  %8247 = load ptr, ptr %120, align 8, !tbaa !9
  %8248 = getelementptr inbounds %struct.s2n_connection, ptr %8247, i32 0, i32 26
  %8249 = load ptr, ptr %8248, align 8, !tbaa !64
  %8250 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %8249, i32 0, i32 0
  %8251 = load ptr, ptr %8250, align 8, !tbaa !44
  %8252 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %8251, i32 0, i32 6
  %8253 = load ptr, ptr %8252, align 8, !tbaa !49
  %8254 = getelementptr inbounds %struct.s2n_record_algorithm, ptr %8253, i32 0, i32 0
  %8255 = load ptr, ptr %8254, align 8, !tbaa !51
  %8256 = getelementptr inbounds %struct.s2n_cipher, ptr %8255, i32 0, i32 1
  %8257 = getelementptr inbounds %struct.s2n_composite_cipher, ptr %8256, i32 0, i32 5
  %8258 = load ptr, ptr %8257, align 8, !tbaa !59
  %8259 = load ptr, ptr %120, align 8, !tbaa !9
  %8260 = getelementptr inbounds %struct.s2n_connection, ptr %8259, i32 0, i32 26
  %8261 = load ptr, ptr %8260, align 8, !tbaa !64
  %8262 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %8261, i32 0, i32 2
  %8263 = getelementptr inbounds [20 x i8], ptr %214, i64 0, i64 0
  %8264 = call i32 %8258(ptr noundef %8262, ptr noundef %8263, i32 noundef 20)
  %8265 = icmp eq i32 %8264, -1
  br i1 %8265, label %8266, label %8319

8266:                                             ; preds = %8244
  br label %8267

8267:                                             ; preds = %8266
  br label %8268

8268:                                             ; preds = %8267
  call void @llvm.lifetime.start.p0(i64 4, ptr %219) #11
  %8269 = call ptr @__errno_location() #12
  %8270 = load i32, ptr %8269, align 4, !tbaa !5
  store i32 %8270, ptr %219, align 4, !tbaa !5
  %8271 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8272 = call i32 @s2n_print_stacktrace(ptr noundef %8271)
  %8273 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8274 = trunc i8 %8273 to i1
  br i1 %8274, label %8275, label %8297

8275:                                             ; preds = %8268
  %8276 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8277 = call i32 @fileno(ptr noundef %8276) #11
  %8278 = call i32 @isatty(i32 noundef %8277) #11
  %8279 = icmp ne i32 %8278, 0
  br i1 %8279, label %8280, label %8297

8280:                                             ; preds = %8275
  %8281 = load i32, ptr %219, align 4, !tbaa !5
  %8282 = call ptr @__errno_location() #12
  store i32 %8281, ptr %8282, align 4, !tbaa !5
  %8283 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8284 = load i32, ptr @test_count, align 4, !tbaa !5
  %8285 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8286 = load i32, ptr %8285, align 4, !tbaa !5
  %8287 = call ptr @s2n_strerror(i32 noundef %8286, ptr noundef @.str.4)
  %8288 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8289 = load i32, ptr %8288, align 4, !tbaa !5
  %8290 = call ptr @s2n_strerror_debug(i32 noundef %8289, ptr noundef @.str.4)
  %8291 = call ptr @__errno_location() #12
  %8292 = load i32, ptr %8291, align 4, !tbaa !5
  %8293 = call ptr @strerror(i32 noundef %8292) #11
  %8294 = call ptr @__errno_location() #12
  %8295 = load i32, ptr %8294, align 4, !tbaa !5
  %8296 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8283, ptr noundef @.str.2, i32 noundef %8284, ptr noundef @.str.65, ptr noundef @.str.1, i32 noundef 375, ptr noundef %8287, ptr noundef %8290, ptr noundef %8293, i32 noundef %8295) #11
  br label %8314

8297:                                             ; preds = %8275, %8268
  %8298 = load i32, ptr %219, align 4, !tbaa !5
  %8299 = call ptr @__errno_location() #12
  store i32 %8298, ptr %8299, align 4, !tbaa !5
  %8300 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8301 = load i32, ptr @test_count, align 4, !tbaa !5
  %8302 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8303 = load i32, ptr %8302, align 4, !tbaa !5
  %8304 = call ptr @s2n_strerror(i32 noundef %8303, ptr noundef @.str.4)
  %8305 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8306 = load i32, ptr %8305, align 4, !tbaa !5
  %8307 = call ptr @s2n_strerror_debug(i32 noundef %8306, ptr noundef @.str.4)
  %8308 = call ptr @__errno_location() #12
  %8309 = load i32, ptr %8308, align 4, !tbaa !5
  %8310 = call ptr @strerror(i32 noundef %8309) #11
  %8311 = call ptr @__errno_location() #12
  %8312 = load i32, ptr %8311, align 4, !tbaa !5
  %8313 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8300, ptr noundef @.str.5, i32 noundef %8301, ptr noundef @.str.65, ptr noundef @.str.1, i32 noundef 375, ptr noundef %8304, ptr noundef %8307, ptr noundef %8310, i32 noundef %8312) #11
  br label %8314

8314:                                             ; preds = %8297, %8280
  call void @llvm.lifetime.end.p0(i64 4, ptr %219) #11
  br label %8315

8315:                                             ; preds = %8314
  br label %8316

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

8317:                                             ; No predecessors!
  br label %8318

8318:                                             ; preds = %8317
  br label %8319

8319:                                             ; preds = %8318, %8244
  br label %8320

8320:                                             ; preds = %8319
  br label %8321

8321:                                             ; preds = %8320
  br label %8322

8322:                                             ; preds = %8321
  %8323 = load i32, ptr @test_count, align 4, !tbaa !5
  %8324 = add nsw i32 %8323, 1
  store i32 %8324, ptr @test_count, align 4, !tbaa !5
  %8325 = load ptr, ptr %120, align 8, !tbaa !9
  %8326 = getelementptr inbounds %struct.s2n_connection, ptr %8325, i32 0, i32 26
  %8327 = load ptr, ptr %8326, align 8, !tbaa !64
  %8328 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %8327, i32 0, i32 0
  %8329 = load ptr, ptr %8328, align 8, !tbaa !44
  %8330 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %8329, i32 0, i32 6
  %8331 = load ptr, ptr %8330, align 8, !tbaa !49
  %8332 = getelementptr inbounds %struct.s2n_record_algorithm, ptr %8331, i32 0, i32 0
  %8333 = load ptr, ptr %8332, align 8, !tbaa !51
  %8334 = getelementptr inbounds %struct.s2n_cipher, ptr %8333, i32 0, i32 1
  %8335 = getelementptr inbounds %struct.s2n_composite_cipher, ptr %8334, i32 0, i32 5
  %8336 = load ptr, ptr %8335, align 8, !tbaa !59
  %8337 = load ptr, ptr %120, align 8, !tbaa !9
  %8338 = getelementptr inbounds %struct.s2n_connection, ptr %8337, i32 0, i32 26
  %8339 = load ptr, ptr %8338, align 8, !tbaa !64
  %8340 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %8339, i32 0, i32 1
  %8341 = getelementptr inbounds [20 x i8], ptr %214, i64 0, i64 0
  %8342 = call i32 %8336(ptr noundef %8340, ptr noundef %8341, i32 noundef 20)
  %8343 = icmp eq i32 %8342, -1
  br i1 %8343, label %8344, label %8397

8344:                                             ; preds = %8322
  br label %8345

8345:                                             ; preds = %8344
  br label %8346

8346:                                             ; preds = %8345
  call void @llvm.lifetime.start.p0(i64 4, ptr %220) #11
  %8347 = call ptr @__errno_location() #12
  %8348 = load i32, ptr %8347, align 4, !tbaa !5
  store i32 %8348, ptr %220, align 4, !tbaa !5
  %8349 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8350 = call i32 @s2n_print_stacktrace(ptr noundef %8349)
  %8351 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8352 = trunc i8 %8351 to i1
  br i1 %8352, label %8353, label %8375

8353:                                             ; preds = %8346
  %8354 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8355 = call i32 @fileno(ptr noundef %8354) #11
  %8356 = call i32 @isatty(i32 noundef %8355) #11
  %8357 = icmp ne i32 %8356, 0
  br i1 %8357, label %8358, label %8375

8358:                                             ; preds = %8353
  %8359 = load i32, ptr %220, align 4, !tbaa !5
  %8360 = call ptr @__errno_location() #12
  store i32 %8359, ptr %8360, align 4, !tbaa !5
  %8361 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8362 = load i32, ptr @test_count, align 4, !tbaa !5
  %8363 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8364 = load i32, ptr %8363, align 4, !tbaa !5
  %8365 = call ptr @s2n_strerror(i32 noundef %8364, ptr noundef @.str.4)
  %8366 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8367 = load i32, ptr %8366, align 4, !tbaa !5
  %8368 = call ptr @s2n_strerror_debug(i32 noundef %8367, ptr noundef @.str.4)
  %8369 = call ptr @__errno_location() #12
  %8370 = load i32, ptr %8369, align 4, !tbaa !5
  %8371 = call ptr @strerror(i32 noundef %8370) #11
  %8372 = call ptr @__errno_location() #12
  %8373 = load i32, ptr %8372, align 4, !tbaa !5
  %8374 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8361, ptr noundef @.str.2, i32 noundef %8362, ptr noundef @.str.66, ptr noundef @.str.1, i32 noundef 376, ptr noundef %8365, ptr noundef %8368, ptr noundef %8371, i32 noundef %8373) #11
  br label %8392

8375:                                             ; preds = %8353, %8346
  %8376 = load i32, ptr %220, align 4, !tbaa !5
  %8377 = call ptr @__errno_location() #12
  store i32 %8376, ptr %8377, align 4, !tbaa !5
  %8378 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8379 = load i32, ptr @test_count, align 4, !tbaa !5
  %8380 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8381 = load i32, ptr %8380, align 4, !tbaa !5
  %8382 = call ptr @s2n_strerror(i32 noundef %8381, ptr noundef @.str.4)
  %8383 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8384 = load i32, ptr %8383, align 4, !tbaa !5
  %8385 = call ptr @s2n_strerror_debug(i32 noundef %8384, ptr noundef @.str.4)
  %8386 = call ptr @__errno_location() #12
  %8387 = load i32, ptr %8386, align 4, !tbaa !5
  %8388 = call ptr @strerror(i32 noundef %8387) #11
  %8389 = call ptr @__errno_location() #12
  %8390 = load i32, ptr %8389, align 4, !tbaa !5
  %8391 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8378, ptr noundef @.str.5, i32 noundef %8379, ptr noundef @.str.66, ptr noundef @.str.1, i32 noundef 376, ptr noundef %8382, ptr noundef %8385, ptr noundef %8388, i32 noundef %8390) #11
  br label %8392

8392:                                             ; preds = %8375, %8358
  call void @llvm.lifetime.end.p0(i64 4, ptr %220) #11
  br label %8393

8393:                                             ; preds = %8392
  br label %8394

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

8395:                                             ; No predecessors!
  br label %8396

8396:                                             ; preds = %8395
  br label %8397

8397:                                             ; preds = %8396, %8322
  br label %8398

8398:                                             ; preds = %8397
  br label %8399

8399:                                             ; preds = %8398
  br label %8400

8400:                                             ; preds = %8399
  %8401 = load i32, ptr @test_count, align 4, !tbaa !5
  %8402 = add nsw i32 %8401, 1
  store i32 %8402, ptr @test_count, align 4, !tbaa !5
  %8403 = load ptr, ptr %120, align 8, !tbaa !9
  %8404 = call i32 @s2n_record_min_write_payload_size(ptr noundef %8403, ptr noundef %122)
  %8405 = getelementptr inbounds %struct.s2n_result, ptr %221, i32 0, i32 0
  store i32 %8404, ptr %8405, align 4
  %8406 = getelementptr inbounds %struct.s2n_result, ptr %221, i32 0, i32 0
  %8407 = load i32, ptr %8406, align 4
  %8408 = call zeroext i1 @s2n_result_is_ok(i32 %8407)
  br i1 %8408, label %8462, label %8409

8409:                                             ; preds = %8400
  br label %8410

8410:                                             ; preds = %8409
  br label %8411

8411:                                             ; preds = %8410
  call void @llvm.lifetime.start.p0(i64 4, ptr %222) #11
  %8412 = call ptr @__errno_location() #12
  %8413 = load i32, ptr %8412, align 4, !tbaa !5
  store i32 %8413, ptr %222, align 4, !tbaa !5
  %8414 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8415 = call i32 @s2n_print_stacktrace(ptr noundef %8414)
  %8416 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8417 = trunc i8 %8416 to i1
  br i1 %8417, label %8418, label %8440

8418:                                             ; preds = %8411
  %8419 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8420 = call i32 @fileno(ptr noundef %8419) #11
  %8421 = call i32 @isatty(i32 noundef %8420) #11
  %8422 = icmp ne i32 %8421, 0
  br i1 %8422, label %8423, label %8440

8423:                                             ; preds = %8418
  %8424 = load i32, ptr %222, align 4, !tbaa !5
  %8425 = call ptr @__errno_location() #12
  store i32 %8424, ptr %8425, align 4, !tbaa !5
  %8426 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8427 = load i32, ptr @test_count, align 4, !tbaa !5
  %8428 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8429 = load i32, ptr %8428, align 4, !tbaa !5
  %8430 = call ptr @s2n_strerror(i32 noundef %8429, ptr noundef @.str.4)
  %8431 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8432 = load i32, ptr %8431, align 4, !tbaa !5
  %8433 = call ptr @s2n_strerror_debug(i32 noundef %8432, ptr noundef @.str.4)
  %8434 = call ptr @__errno_location() #12
  %8435 = load i32, ptr %8434, align 4, !tbaa !5
  %8436 = call ptr @strerror(i32 noundef %8435) #11
  %8437 = call ptr @__errno_location() #12
  %8438 = load i32, ptr %8437, align 4, !tbaa !5
  %8439 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8426, ptr noundef @.str.2, i32 noundef %8427, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 378, ptr noundef %8430, ptr noundef %8433, ptr noundef %8436, i32 noundef %8438) #11
  br label %8457

8440:                                             ; preds = %8418, %8411
  %8441 = load i32, ptr %222, align 4, !tbaa !5
  %8442 = call ptr @__errno_location() #12
  store i32 %8441, ptr %8442, align 4, !tbaa !5
  %8443 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8444 = load i32, ptr @test_count, align 4, !tbaa !5
  %8445 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8446 = load i32, ptr %8445, align 4, !tbaa !5
  %8447 = call ptr @s2n_strerror(i32 noundef %8446, ptr noundef @.str.4)
  %8448 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8449 = load i32, ptr %8448, align 4, !tbaa !5
  %8450 = call ptr @s2n_strerror_debug(i32 noundef %8449, ptr noundef @.str.4)
  %8451 = call ptr @__errno_location() #12
  %8452 = load i32, ptr %8451, align 4, !tbaa !5
  %8453 = call ptr @strerror(i32 noundef %8452) #11
  %8454 = call ptr @__errno_location() #12
  %8455 = load i32, ptr %8454, align 4, !tbaa !5
  %8456 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8443, ptr noundef @.str.5, i32 noundef %8444, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 378, ptr noundef %8447, ptr noundef %8450, ptr noundef %8453, i32 noundef %8455) #11
  br label %8457

8457:                                             ; preds = %8440, %8423
  call void @llvm.lifetime.end.p0(i64 4, ptr %222) #11
  br label %8458

8458:                                             ; preds = %8457
  br label %8459

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

8460:                                             ; No predecessors!
  br label %8461

8461:                                             ; preds = %8460
  br label %8462

8462:                                             ; preds = %8461, %8400
  br label %8463

8463:                                             ; preds = %8462
  br label %8464

8464:                                             ; preds = %8463
  call void @llvm.lifetime.start.p0(i64 2, ptr %223) #11
  store i16 16, ptr %223, align 2, !tbaa !62
  call void @llvm.lifetime.start.p0(i64 2, ptr %224) #11
  store i16 20, ptr %224, align 2, !tbaa !62
  call void @llvm.lifetime.start.p0(i64 2, ptr %225) #11
  store i16 1, ptr %225, align 2, !tbaa !62
  call void @llvm.lifetime.start.p0(i64 2, ptr %226) #11
  store i16 1387, ptr %226, align 2, !tbaa !62
  call void @llvm.lifetime.start.p0(i64 2, ptr %227) #11
  store i16 16, ptr %227, align 2, !tbaa !62
  call void @llvm.lifetime.start.p0(i64 2, ptr %228) #11
  store i16 1371, ptr %228, align 2, !tbaa !62
  br label %8465

8465:                                             ; preds = %8464
  %8466 = load i32, ptr @test_count, align 4, !tbaa !5
  %8467 = add nsw i32 %8466, 1
  store i32 %8467, ptr @test_count, align 4, !tbaa !5
  %8468 = load i16, ptr %122, align 2, !tbaa !62
  %8469 = zext i16 %8468 to i32
  %8470 = icmp eq i32 %8469, 1371
  br i1 %8470, label %8524, label %8471

8471:                                             ; preds = %8465
  br label %8472

8472:                                             ; preds = %8471
  br label %8473

8473:                                             ; preds = %8472
  call void @llvm.lifetime.start.p0(i64 4, ptr %229) #11
  %8474 = call ptr @__errno_location() #12
  %8475 = load i32, ptr %8474, align 4, !tbaa !5
  store i32 %8475, ptr %229, align 4, !tbaa !5
  %8476 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8477 = call i32 @s2n_print_stacktrace(ptr noundef %8476)
  %8478 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8479 = trunc i8 %8478 to i1
  br i1 %8479, label %8480, label %8502

8480:                                             ; preds = %8473
  %8481 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8482 = call i32 @fileno(ptr noundef %8481) #11
  %8483 = call i32 @isatty(i32 noundef %8482) #11
  %8484 = icmp ne i32 %8483, 0
  br i1 %8484, label %8485, label %8502

8485:                                             ; preds = %8480
  %8486 = load i32, ptr %229, align 4, !tbaa !5
  %8487 = call ptr @__errno_location() #12
  store i32 %8486, ptr %8487, align 4, !tbaa !5
  %8488 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8489 = load i32, ptr @test_count, align 4, !tbaa !5
  %8490 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8491 = load i32, ptr %8490, align 4, !tbaa !5
  %8492 = call ptr @s2n_strerror(i32 noundef %8491, ptr noundef @.str.4)
  %8493 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8494 = load i32, ptr %8493, align 4, !tbaa !5
  %8495 = call ptr @s2n_strerror_debug(i32 noundef %8494, ptr noundef @.str.4)
  %8496 = call ptr @__errno_location() #12
  %8497 = load i32, ptr %8496, align 4, !tbaa !5
  %8498 = call ptr @strerror(i32 noundef %8497) #11
  %8499 = call ptr @__errno_location() #12
  %8500 = load i32, ptr %8499, align 4, !tbaa !5
  %8501 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8488, ptr noundef @.str.2, i32 noundef %8489, ptr noundef @.str.67, ptr noundef @.str.1, i32 noundef 385, ptr noundef %8492, ptr noundef %8495, ptr noundef %8498, i32 noundef %8500) #11
  br label %8519

8502:                                             ; preds = %8480, %8473
  %8503 = load i32, ptr %229, align 4, !tbaa !5
  %8504 = call ptr @__errno_location() #12
  store i32 %8503, ptr %8504, align 4, !tbaa !5
  %8505 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8506 = load i32, ptr @test_count, align 4, !tbaa !5
  %8507 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8508 = load i32, ptr %8507, align 4, !tbaa !5
  %8509 = call ptr @s2n_strerror(i32 noundef %8508, ptr noundef @.str.4)
  %8510 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8511 = load i32, ptr %8510, align 4, !tbaa !5
  %8512 = call ptr @s2n_strerror_debug(i32 noundef %8511, ptr noundef @.str.4)
  %8513 = call ptr @__errno_location() #12
  %8514 = load i32, ptr %8513, align 4, !tbaa !5
  %8515 = call ptr @strerror(i32 noundef %8514) #11
  %8516 = call ptr @__errno_location() #12
  %8517 = load i32, ptr %8516, align 4, !tbaa !5
  %8518 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8505, ptr noundef @.str.5, i32 noundef %8506, ptr noundef @.str.67, ptr noundef @.str.1, i32 noundef 385, ptr noundef %8509, ptr noundef %8512, ptr noundef %8515, i32 noundef %8517) #11
  br label %8519

8519:                                             ; preds = %8502, %8485
  call void @llvm.lifetime.end.p0(i64 4, ptr %229) #11
  br label %8520

8520:                                             ; preds = %8519
  br label %8521

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

8522:                                             ; No predecessors!
  br label %8523

8523:                                             ; preds = %8522
  br label %8524

8524:                                             ; preds = %8523, %8465
  br label %8525

8525:                                             ; preds = %8524
  br label %8526

8526:                                             ; preds = %8525
  %8527 = load i16, ptr %122, align 2, !tbaa !62
  %8528 = zext i16 %8527 to i32
  %8529 = getelementptr inbounds %struct.s2n_blob, ptr %12, i32 0, i32 1
  store i32 %8528, ptr %8529, align 8, !tbaa !60
  br label %8530

8530:                                             ; preds = %8526
  %8531 = load i32, ptr @test_count, align 4, !tbaa !5
  %8532 = add nsw i32 %8531, 1
  store i32 %8532, ptr @test_count, align 4, !tbaa !5
  %8533 = load ptr, ptr %120, align 8, !tbaa !9
  %8534 = call i32 @s2n_record_write(ptr noundef %8533, i8 noundef zeroext 23, ptr noundef %12)
  %8535 = getelementptr inbounds %struct.s2n_result, ptr %230, i32 0, i32 0
  store i32 %8534, ptr %8535, align 4
  %8536 = getelementptr inbounds %struct.s2n_result, ptr %230, i32 0, i32 0
  %8537 = load i32, ptr %8536, align 4
  %8538 = call zeroext i1 @s2n_result_is_ok(i32 %8537)
  br i1 %8538, label %8592, label %8539

8539:                                             ; preds = %8530
  br label %8540

8540:                                             ; preds = %8539
  br label %8541

8541:                                             ; preds = %8540
  call void @llvm.lifetime.start.p0(i64 4, ptr %231) #11
  %8542 = call ptr @__errno_location() #12
  %8543 = load i32, ptr %8542, align 4, !tbaa !5
  store i32 %8543, ptr %231, align 4, !tbaa !5
  %8544 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8545 = call i32 @s2n_print_stacktrace(ptr noundef %8544)
  %8546 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8547 = trunc i8 %8546 to i1
  br i1 %8547, label %8548, label %8570

8548:                                             ; preds = %8541
  %8549 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8550 = call i32 @fileno(ptr noundef %8549) #11
  %8551 = call i32 @isatty(i32 noundef %8550) #11
  %8552 = icmp ne i32 %8551, 0
  br i1 %8552, label %8553, label %8570

8553:                                             ; preds = %8548
  %8554 = load i32, ptr %231, align 4, !tbaa !5
  %8555 = call ptr @__errno_location() #12
  store i32 %8554, ptr %8555, align 4, !tbaa !5
  %8556 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8557 = load i32, ptr @test_count, align 4, !tbaa !5
  %8558 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8559 = load i32, ptr %8558, align 4, !tbaa !5
  %8560 = call ptr @s2n_strerror(i32 noundef %8559, ptr noundef @.str.4)
  %8561 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8562 = load i32, ptr %8561, align 4, !tbaa !5
  %8563 = call ptr @s2n_strerror_debug(i32 noundef %8562, ptr noundef @.str.4)
  %8564 = call ptr @__errno_location() #12
  %8565 = load i32, ptr %8564, align 4, !tbaa !5
  %8566 = call ptr @strerror(i32 noundef %8565) #11
  %8567 = call ptr @__errno_location() #12
  %8568 = load i32, ptr %8567, align 4, !tbaa !5
  %8569 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8556, ptr noundef @.str.2, i32 noundef %8557, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 388, ptr noundef %8560, ptr noundef %8563, ptr noundef %8566, i32 noundef %8568) #11
  br label %8587

8570:                                             ; preds = %8548, %8541
  %8571 = load i32, ptr %231, align 4, !tbaa !5
  %8572 = call ptr @__errno_location() #12
  store i32 %8571, ptr %8572, align 4, !tbaa !5
  %8573 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8574 = load i32, ptr @test_count, align 4, !tbaa !5
  %8575 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8576 = load i32, ptr %8575, align 4, !tbaa !5
  %8577 = call ptr @s2n_strerror(i32 noundef %8576, ptr noundef @.str.4)
  %8578 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8579 = load i32, ptr %8578, align 4, !tbaa !5
  %8580 = call ptr @s2n_strerror_debug(i32 noundef %8579, ptr noundef @.str.4)
  %8581 = call ptr @__errno_location() #12
  %8582 = load i32, ptr %8581, align 4, !tbaa !5
  %8583 = call ptr @strerror(i32 noundef %8582) #11
  %8584 = call ptr @__errno_location() #12
  %8585 = load i32, ptr %8584, align 4, !tbaa !5
  %8586 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8573, ptr noundef @.str.5, i32 noundef %8574, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 388, ptr noundef %8577, ptr noundef %8580, ptr noundef %8583, i32 noundef %8585) #11
  br label %8587

8587:                                             ; preds = %8570, %8553
  call void @llvm.lifetime.end.p0(i64 4, ptr %231) #11
  br label %8588

8588:                                             ; preds = %8587
  br label %8589

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

8590:                                             ; No predecessors!
  br label %8591

8591:                                             ; preds = %8590
  br label %8592

8592:                                             ; preds = %8591, %8530
  br label %8593

8593:                                             ; preds = %8592
  br label %8594

8594:                                             ; preds = %8593
  call void @llvm.lifetime.start.p0(i64 2, ptr %232) #11
  %8595 = load ptr, ptr %120, align 8, !tbaa !9
  %8596 = getelementptr inbounds %struct.s2n_connection, ptr %8595, i32 0, i32 41
  %8597 = getelementptr inbounds %struct.s2n_stuffer, ptr %8596, i32 0, i32 2
  %8598 = load i32, ptr %8597, align 4, !tbaa !65
  %8599 = load ptr, ptr %120, align 8, !tbaa !9
  %8600 = getelementptr inbounds %struct.s2n_connection, ptr %8599, i32 0, i32 41
  %8601 = getelementptr inbounds %struct.s2n_stuffer, ptr %8600, i32 0, i32 1
  %8602 = load i32, ptr %8601, align 8, !tbaa !66
  %8603 = sub i32 %8598, %8602
  %8604 = trunc i32 %8603 to i16
  store i16 %8604, ptr %232, align 2, !tbaa !62
  br label %8605

8605:                                             ; preds = %8594
  %8606 = load i32, ptr @test_count, align 4, !tbaa !5
  %8607 = add nsw i32 %8606, 1
  store i32 %8607, ptr @test_count, align 4, !tbaa !5
  %8608 = load i16, ptr %232, align 2, !tbaa !62
  %8609 = zext i16 %8608 to i32
  %8610 = icmp sle i32 %8609, 1420
  br i1 %8610, label %8664, label %8611

8611:                                             ; preds = %8605
  br label %8612

8612:                                             ; preds = %8611
  br label %8613

8613:                                             ; preds = %8612
  call void @llvm.lifetime.start.p0(i64 4, ptr %233) #11
  %8614 = call ptr @__errno_location() #12
  %8615 = load i32, ptr %8614, align 4, !tbaa !5
  store i32 %8615, ptr %233, align 4, !tbaa !5
  %8616 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8617 = call i32 @s2n_print_stacktrace(ptr noundef %8616)
  %8618 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8619 = trunc i8 %8618 to i1
  br i1 %8619, label %8620, label %8642

8620:                                             ; preds = %8613
  %8621 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8622 = call i32 @fileno(ptr noundef %8621) #11
  %8623 = call i32 @isatty(i32 noundef %8622) #11
  %8624 = icmp ne i32 %8623, 0
  br i1 %8624, label %8625, label %8642

8625:                                             ; preds = %8620
  %8626 = load i32, ptr %233, align 4, !tbaa !5
  %8627 = call ptr @__errno_location() #12
  store i32 %8626, ptr %8627, align 4, !tbaa !5
  %8628 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8629 = load i32, ptr @test_count, align 4, !tbaa !5
  %8630 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8631 = load i32, ptr %8630, align 4, !tbaa !5
  %8632 = call ptr @s2n_strerror(i32 noundef %8631, ptr noundef @.str.4)
  %8633 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8634 = load i32, ptr %8633, align 4, !tbaa !5
  %8635 = call ptr @s2n_strerror_debug(i32 noundef %8634, ptr noundef @.str.4)
  %8636 = call ptr @__errno_location() #12
  %8637 = load i32, ptr %8636, align 4, !tbaa !5
  %8638 = call ptr @strerror(i32 noundef %8637) #11
  %8639 = call ptr @__errno_location() #12
  %8640 = load i32, ptr %8639, align 4, !tbaa !5
  %8641 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8628, ptr noundef @.str.2, i32 noundef %8629, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 390, ptr noundef %8632, ptr noundef %8635, ptr noundef %8638, i32 noundef %8640) #11
  br label %8659

8642:                                             ; preds = %8620, %8613
  %8643 = load i32, ptr %233, align 4, !tbaa !5
  %8644 = call ptr @__errno_location() #12
  store i32 %8643, ptr %8644, align 4, !tbaa !5
  %8645 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8646 = load i32, ptr @test_count, align 4, !tbaa !5
  %8647 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8648 = load i32, ptr %8647, align 4, !tbaa !5
  %8649 = call ptr @s2n_strerror(i32 noundef %8648, ptr noundef @.str.4)
  %8650 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8651 = load i32, ptr %8650, align 4, !tbaa !5
  %8652 = call ptr @s2n_strerror_debug(i32 noundef %8651, ptr noundef @.str.4)
  %8653 = call ptr @__errno_location() #12
  %8654 = load i32, ptr %8653, align 4, !tbaa !5
  %8655 = call ptr @strerror(i32 noundef %8654) #11
  %8656 = call ptr @__errno_location() #12
  %8657 = load i32, ptr %8656, align 4, !tbaa !5
  %8658 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8645, ptr noundef @.str.5, i32 noundef %8646, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 390, ptr noundef %8649, ptr noundef %8652, ptr noundef %8655, i32 noundef %8657) #11
  br label %8659

8659:                                             ; preds = %8642, %8625
  call void @llvm.lifetime.end.p0(i64 4, ptr %233) #11
  br label %8660

8660:                                             ; preds = %8659
  br label %8661

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

8662:                                             ; No predecessors!
  br label %8663

8663:                                             ; preds = %8662
  br label %8664

8664:                                             ; preds = %8663, %8605
  br label %8665

8665:                                             ; preds = %8664
  br label %8666

8666:                                             ; preds = %8665
  br label %8667

8667:                                             ; preds = %8666
  %8668 = load i32, ptr @test_count, align 4, !tbaa !5
  %8669 = add nsw i32 %8668, 1
  store i32 %8669, ptr @test_count, align 4, !tbaa !5
  %8670 = load ptr, ptr %120, align 8, !tbaa !9
  %8671 = getelementptr inbounds %struct.s2n_connection, ptr %8670, i32 0, i32 41
  %8672 = getelementptr inbounds %struct.s2n_stuffer, ptr %8671, i32 0, i32 0
  %8673 = getelementptr inbounds %struct.s2n_blob, ptr %8672, i32 0, i32 0
  %8674 = load ptr, ptr %8673, align 8, !tbaa !67
  %8675 = getelementptr inbounds i8, ptr %8674, i64 3
  %8676 = load i8, ptr %8675, align 1, !tbaa !59
  %8677 = zext i8 %8676 to i32
  %8678 = shl i32 %8677, 8
  %8679 = load ptr, ptr %120, align 8, !tbaa !9
  %8680 = getelementptr inbounds %struct.s2n_connection, ptr %8679, i32 0, i32 41
  %8681 = getelementptr inbounds %struct.s2n_stuffer, ptr %8680, i32 0, i32 0
  %8682 = getelementptr inbounds %struct.s2n_blob, ptr %8681, i32 0, i32 0
  %8683 = load ptr, ptr %8682, align 8, !tbaa !67
  %8684 = getelementptr inbounds i8, ptr %8683, i64 4
  %8685 = load i8, ptr %8684, align 1, !tbaa !59
  %8686 = zext i8 %8685 to i32
  %8687 = or i32 %8678, %8686
  %8688 = load i16, ptr %232, align 2, !tbaa !62
  %8689 = zext i16 %8688 to i32
  %8690 = sub nsw i32 %8689, 5
  %8691 = icmp eq i32 %8687, %8690
  br i1 %8691, label %8745, label %8692

8692:                                             ; preds = %8667
  br label %8693

8693:                                             ; preds = %8692
  br label %8694

8694:                                             ; preds = %8693
  call void @llvm.lifetime.start.p0(i64 4, ptr %234) #11
  %8695 = call ptr @__errno_location() #12
  %8696 = load i32, ptr %8695, align 4, !tbaa !5
  store i32 %8696, ptr %234, align 4, !tbaa !5
  %8697 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8698 = call i32 @s2n_print_stacktrace(ptr noundef %8697)
  %8699 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8700 = trunc i8 %8699 to i1
  br i1 %8700, label %8701, label %8723

8701:                                             ; preds = %8694
  %8702 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8703 = call i32 @fileno(ptr noundef %8702) #11
  %8704 = call i32 @isatty(i32 noundef %8703) #11
  %8705 = icmp ne i32 %8704, 0
  br i1 %8705, label %8706, label %8723

8706:                                             ; preds = %8701
  %8707 = load i32, ptr %234, align 4, !tbaa !5
  %8708 = call ptr @__errno_location() #12
  store i32 %8707, ptr %8708, align 4, !tbaa !5
  %8709 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8710 = load i32, ptr @test_count, align 4, !tbaa !5
  %8711 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8712 = load i32, ptr %8711, align 4, !tbaa !5
  %8713 = call ptr @s2n_strerror(i32 noundef %8712, ptr noundef @.str.4)
  %8714 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8715 = load i32, ptr %8714, align 4, !tbaa !5
  %8716 = call ptr @s2n_strerror_debug(i32 noundef %8715, ptr noundef @.str.4)
  %8717 = call ptr @__errno_location() #12
  %8718 = load i32, ptr %8717, align 4, !tbaa !5
  %8719 = call ptr @strerror(i32 noundef %8718) #11
  %8720 = call ptr @__errno_location() #12
  %8721 = load i32, ptr %8720, align 4, !tbaa !5
  %8722 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8709, ptr noundef @.str.2, i32 noundef %8710, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 391, ptr noundef %8713, ptr noundef %8716, ptr noundef %8719, i32 noundef %8721) #11
  br label %8740

8723:                                             ; preds = %8701, %8694
  %8724 = load i32, ptr %234, align 4, !tbaa !5
  %8725 = call ptr @__errno_location() #12
  store i32 %8724, ptr %8725, align 4, !tbaa !5
  %8726 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8727 = load i32, ptr @test_count, align 4, !tbaa !5
  %8728 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8729 = load i32, ptr %8728, align 4, !tbaa !5
  %8730 = call ptr @s2n_strerror(i32 noundef %8729, ptr noundef @.str.4)
  %8731 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8732 = load i32, ptr %8731, align 4, !tbaa !5
  %8733 = call ptr @s2n_strerror_debug(i32 noundef %8732, ptr noundef @.str.4)
  %8734 = call ptr @__errno_location() #12
  %8735 = load i32, ptr %8734, align 4, !tbaa !5
  %8736 = call ptr @strerror(i32 noundef %8735) #11
  %8737 = call ptr @__errno_location() #12
  %8738 = load i32, ptr %8737, align 4, !tbaa !5
  %8739 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8726, ptr noundef @.str.5, i32 noundef %8727, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 391, ptr noundef %8730, ptr noundef %8733, ptr noundef %8736, i32 noundef %8738) #11
  br label %8740

8740:                                             ; preds = %8723, %8706
  call void @llvm.lifetime.end.p0(i64 4, ptr %234) #11
  br label %8741

8741:                                             ; preds = %8740
  br label %8742

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

8743:                                             ; No predecessors!
  br label %8744

8744:                                             ; preds = %8743
  br label %8745

8745:                                             ; preds = %8744, %8667
  br label %8746

8746:                                             ; preds = %8745
  br label %8747

8747:                                             ; preds = %8746
  call void @llvm.lifetime.end.p0(i64 2, ptr %232) #11
  call void @llvm.lifetime.end.p0(i64 2, ptr %228) #11
  call void @llvm.lifetime.end.p0(i64 2, ptr %227) #11
  call void @llvm.lifetime.end.p0(i64 2, ptr %226) #11
  call void @llvm.lifetime.end.p0(i64 2, ptr %225) #11
  call void @llvm.lifetime.end.p0(i64 2, ptr %224) #11
  call void @llvm.lifetime.end.p0(i64 2, ptr %223) #11
  call void @llvm.lifetime.end.p0(i64 20, ptr %214) #11
  br label %8748

8748:                                             ; preds = %8747, %7887, %7884
  %8749 = getelementptr inbounds %struct.s2n_blob, ptr %12, i32 0, i32 1
  store i32 17414, ptr %8749, align 8, !tbaa !60
  br label %8750

8750:                                             ; preds = %8748
  %8751 = load i32, ptr @test_count, align 4, !tbaa !5
  %8752 = add nsw i32 %8751, 1
  store i32 %8752, ptr @test_count, align 4, !tbaa !5
  %8753 = load ptr, ptr %120, align 8, !tbaa !9
  %8754 = call i32 @s2n_connection_free(ptr noundef %8753)
  %8755 = icmp eq i32 %8754, -1
  br i1 %8755, label %8756, label %8809

8756:                                             ; preds = %8750
  br label %8757

8757:                                             ; preds = %8756
  br label %8758

8758:                                             ; preds = %8757
  call void @llvm.lifetime.start.p0(i64 4, ptr %235) #11
  %8759 = call ptr @__errno_location() #12
  %8760 = load i32, ptr %8759, align 4, !tbaa !5
  store i32 %8760, ptr %235, align 4, !tbaa !5
  %8761 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8762 = call i32 @s2n_print_stacktrace(ptr noundef %8761)
  %8763 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8764 = trunc i8 %8763 to i1
  br i1 %8764, label %8765, label %8787

8765:                                             ; preds = %8758
  %8766 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8767 = call i32 @fileno(ptr noundef %8766) #11
  %8768 = call i32 @isatty(i32 noundef %8767) #11
  %8769 = icmp ne i32 %8768, 0
  br i1 %8769, label %8770, label %8787

8770:                                             ; preds = %8765
  %8771 = load i32, ptr %235, align 4, !tbaa !5
  %8772 = call ptr @__errno_location() #12
  store i32 %8771, ptr %8772, align 4, !tbaa !5
  %8773 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8774 = load i32, ptr @test_count, align 4, !tbaa !5
  %8775 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8776 = load i32, ptr %8775, align 4, !tbaa !5
  %8777 = call ptr @s2n_strerror(i32 noundef %8776, ptr noundef @.str.4)
  %8778 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8779 = load i32, ptr %8778, align 4, !tbaa !5
  %8780 = call ptr @s2n_strerror_debug(i32 noundef %8779, ptr noundef @.str.4)
  %8781 = call ptr @__errno_location() #12
  %8782 = load i32, ptr %8781, align 4, !tbaa !5
  %8783 = call ptr @strerror(i32 noundef %8782) #11
  %8784 = call ptr @__errno_location() #12
  %8785 = load i32, ptr %8784, align 4, !tbaa !5
  %8786 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8773, ptr noundef @.str.2, i32 noundef %8774, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 395, ptr noundef %8777, ptr noundef %8780, ptr noundef %8783, i32 noundef %8785) #11
  br label %8804

8787:                                             ; preds = %8765, %8758
  %8788 = load i32, ptr %235, align 4, !tbaa !5
  %8789 = call ptr @__errno_location() #12
  store i32 %8788, ptr %8789, align 4, !tbaa !5
  %8790 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8791 = load i32, ptr @test_count, align 4, !tbaa !5
  %8792 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8793 = load i32, ptr %8792, align 4, !tbaa !5
  %8794 = call ptr @s2n_strerror(i32 noundef %8793, ptr noundef @.str.4)
  %8795 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8796 = load i32, ptr %8795, align 4, !tbaa !5
  %8797 = call ptr @s2n_strerror_debug(i32 noundef %8796, ptr noundef @.str.4)
  %8798 = call ptr @__errno_location() #12
  %8799 = load i32, ptr %8798, align 4, !tbaa !5
  %8800 = call ptr @strerror(i32 noundef %8799) #11
  %8801 = call ptr @__errno_location() #12
  %8802 = load i32, ptr %8801, align 4, !tbaa !5
  %8803 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8790, ptr noundef @.str.5, i32 noundef %8791, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 395, ptr noundef %8794, ptr noundef %8797, ptr noundef %8800, i32 noundef %8802) #11
  br label %8804

8804:                                             ; preds = %8787, %8770
  call void @llvm.lifetime.end.p0(i64 4, ptr %235) #11
  br label %8805

8805:                                             ; preds = %8804
  br label %8806

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

8807:                                             ; No predecessors!
  br label %8808

8808:                                             ; preds = %8807
  br label %8809

8809:                                             ; preds = %8808, %8750
  br label %8810

8810:                                             ; preds = %8809
  br label %8811

8811:                                             ; preds = %8810
  call void @llvm.lifetime.end.p0(i64 4, ptr %127) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %123) #11
  call void @llvm.lifetime.end.p0(i64 2, ptr %122) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %120) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %236) #11
  store ptr null, ptr %236, align 8, !tbaa !9
  br label %8812

8812:                                             ; preds = %8811
  %8813 = load i32, ptr @test_count, align 4, !tbaa !5
  %8814 = add nsw i32 %8813, 1
  store i32 %8814, ptr @test_count, align 4, !tbaa !5
  %8815 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %8815, ptr %236, align 8, !tbaa !9
  %8816 = icmp eq ptr %8815, null
  br i1 %8816, label %8817, label %8870

8817:                                             ; preds = %8812
  br label %8818

8818:                                             ; preds = %8817
  br label %8819

8819:                                             ; preds = %8818
  call void @llvm.lifetime.start.p0(i64 4, ptr %237) #11
  %8820 = call ptr @__errno_location() #12
  %8821 = load i32, ptr %8820, align 4, !tbaa !5
  store i32 %8821, ptr %237, align 4, !tbaa !5
  %8822 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8823 = call i32 @s2n_print_stacktrace(ptr noundef %8822)
  %8824 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8825 = trunc i8 %8824 to i1
  br i1 %8825, label %8826, label %8848

8826:                                             ; preds = %8819
  %8827 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8828 = call i32 @fileno(ptr noundef %8827) #11
  %8829 = call i32 @isatty(i32 noundef %8828) #11
  %8830 = icmp ne i32 %8829, 0
  br i1 %8830, label %8831, label %8848

8831:                                             ; preds = %8826
  %8832 = load i32, ptr %237, align 4, !tbaa !5
  %8833 = call ptr @__errno_location() #12
  store i32 %8832, ptr %8833, align 4, !tbaa !5
  %8834 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8835 = load i32, ptr @test_count, align 4, !tbaa !5
  %8836 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8837 = load i32, ptr %8836, align 4, !tbaa !5
  %8838 = call ptr @s2n_strerror(i32 noundef %8837, ptr noundef @.str.4)
  %8839 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8840 = load i32, ptr %8839, align 4, !tbaa !5
  %8841 = call ptr @s2n_strerror_debug(i32 noundef %8840, ptr noundef @.str.4)
  %8842 = call ptr @__errno_location() #12
  %8843 = load i32, ptr %8842, align 4, !tbaa !5
  %8844 = call ptr @strerror(i32 noundef %8843) #11
  %8845 = call ptr @__errno_location() #12
  %8846 = load i32, ptr %8845, align 4, !tbaa !5
  %8847 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8834, ptr noundef @.str.2, i32 noundef %8835, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 401, ptr noundef %8838, ptr noundef %8841, ptr noundef %8844, i32 noundef %8846) #11
  br label %8865

8848:                                             ; preds = %8826, %8819
  %8849 = load i32, ptr %237, 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.5, i32 noundef %8852, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 401, ptr noundef %8855, ptr noundef %8858, ptr noundef %8861, i32 noundef %8863) #11
  br label %8865

8865:                                             ; preds = %8848, %8831
  call void @llvm.lifetime.end.p0(i64 4, ptr %237) #11
  br label %8866

8866:                                             ; preds = %8865
  br label %8867

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

8868:                                             ; No predecessors!
  br label %8869

8869:                                             ; preds = %8868
  br label %8870

8870:                                             ; preds = %8869, %8812
  br label %8871

8871:                                             ; preds = %8870
  br label %8872

8872:                                             ; preds = %8871
  call void @llvm.lifetime.start.p0(i64 8, ptr %238) #11
  store ptr @s2n_tls13_aes_128_gcm_sha256, ptr %238, align 8, !tbaa !9
  %8873 = load ptr, ptr %236, align 8, !tbaa !9
  %8874 = getelementptr inbounds %struct.s2n_connection, ptr %8873, i32 0, i32 23
  store i8 34, ptr %8874, align 4, !tbaa !57
  %8875 = load ptr, ptr %238, align 8, !tbaa !9
  %8876 = load ptr, ptr %236, align 8, !tbaa !9
  %8877 = getelementptr inbounds %struct.s2n_connection, ptr %8876, i32 0, i32 30
  %8878 = load ptr, ptr %8877, align 8, !tbaa !42
  %8879 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %8878, i32 0, i32 0
  store ptr %8875, ptr %8879, align 8, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 8, ptr %239) #11
  %8880 = load ptr, ptr %236, align 8, !tbaa !9
  %8881 = getelementptr inbounds %struct.s2n_connection, ptr %8880, i32 0, i32 30
  %8882 = load ptr, ptr %8881, align 8, !tbaa !42
  %8883 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %8882, i32 0, i32 2
  store ptr %8883, ptr %239, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %240) #11
  %8884 = load ptr, ptr %236, align 8, !tbaa !9
  %8885 = getelementptr inbounds %struct.s2n_connection, ptr %8884, i32 0, i32 30
  %8886 = load ptr, ptr %8885, align 8, !tbaa !42
  %8887 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %8886, i32 0, i32 6
  %8888 = getelementptr inbounds [16 x i8], ptr %8887, i64 0, i64 0
  store ptr %8888, ptr %240, align 8, !tbaa !9
  br label %8889

8889:                                             ; preds = %8872
  %8890 = load i32, ptr @test_count, align 4, !tbaa !5
  %8891 = add nsw i32 %8890, 1
  store i32 %8891, ptr @test_count, align 4, !tbaa !5
  %8892 = load ptr, ptr %238, align 8, !tbaa !9
  %8893 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %8892, i32 0, i32 6
  %8894 = load ptr, ptr %8893, align 8, !tbaa !49
  %8895 = getelementptr inbounds %struct.s2n_record_algorithm, ptr %8894, i32 0, i32 0
  %8896 = load ptr, ptr %8895, align 8, !tbaa !51
  %8897 = getelementptr inbounds %struct.s2n_cipher, ptr %8896, i32 0, i32 4
  %8898 = load ptr, ptr %8897, align 8, !tbaa !53
  %8899 = load ptr, ptr %239, align 8, !tbaa !9
  %8900 = call i32 %8898(ptr noundef %8899)
  %8901 = getelementptr inbounds %struct.s2n_result, ptr %241, i32 0, i32 0
  store i32 %8900, ptr %8901, align 4
  %8902 = getelementptr inbounds %struct.s2n_result, ptr %241, i32 0, i32 0
  %8903 = load i32, ptr %8902, align 4
  %8904 = call zeroext i1 @s2n_result_is_ok(i32 %8903)
  br i1 %8904, label %8958, label %8905

8905:                                             ; preds = %8889
  br label %8906

8906:                                             ; preds = %8905
  br label %8907

8907:                                             ; preds = %8906
  call void @llvm.lifetime.start.p0(i64 4, ptr %242) #11
  %8908 = call ptr @__errno_location() #12
  %8909 = load i32, ptr %8908, align 4, !tbaa !5
  store i32 %8909, ptr %242, align 4, !tbaa !5
  %8910 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8911 = call i32 @s2n_print_stacktrace(ptr noundef %8910)
  %8912 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8913 = trunc i8 %8912 to i1
  br i1 %8913, label %8914, label %8936

8914:                                             ; preds = %8907
  %8915 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8916 = call i32 @fileno(ptr noundef %8915) #11
  %8917 = call i32 @isatty(i32 noundef %8916) #11
  %8918 = icmp ne i32 %8917, 0
  br i1 %8918, label %8919, label %8936

8919:                                             ; preds = %8914
  %8920 = load i32, ptr %242, align 4, !tbaa !5
  %8921 = call ptr @__errno_location() #12
  store i32 %8920, ptr %8921, align 4, !tbaa !5
  %8922 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8923 = load i32, ptr @test_count, align 4, !tbaa !5
  %8924 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8925 = load i32, ptr %8924, align 4, !tbaa !5
  %8926 = call ptr @s2n_strerror(i32 noundef %8925, ptr noundef @.str.4)
  %8927 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8928 = load i32, ptr %8927, align 4, !tbaa !5
  %8929 = call ptr @s2n_strerror_debug(i32 noundef %8928, ptr noundef @.str.4)
  %8930 = call ptr @__errno_location() #12
  %8931 = load i32, ptr %8930, align 4, !tbaa !5
  %8932 = call ptr @strerror(i32 noundef %8931) #11
  %8933 = call ptr @__errno_location() #12
  %8934 = load i32, ptr %8933, align 4, !tbaa !5
  %8935 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8922, ptr noundef @.str.2, i32 noundef %8923, ptr noundef @.str.68, ptr noundef @.str.1, i32 noundef 410, ptr noundef %8926, ptr noundef %8929, ptr noundef %8932, i32 noundef %8934) #11
  br label %8953

8936:                                             ; preds = %8914, %8907
  %8937 = load i32, ptr %242, align 4, !tbaa !5
  %8938 = call ptr @__errno_location() #12
  store i32 %8937, ptr %8938, align 4, !tbaa !5
  %8939 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8940 = load i32, ptr @test_count, align 4, !tbaa !5
  %8941 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8942 = load i32, ptr %8941, align 4, !tbaa !5
  %8943 = call ptr @s2n_strerror(i32 noundef %8942, ptr noundef @.str.4)
  %8944 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8945 = load i32, ptr %8944, align 4, !tbaa !5
  %8946 = call ptr @s2n_strerror_debug(i32 noundef %8945, ptr noundef @.str.4)
  %8947 = call ptr @__errno_location() #12
  %8948 = load i32, ptr %8947, align 4, !tbaa !5
  %8949 = call ptr @strerror(i32 noundef %8948) #11
  %8950 = call ptr @__errno_location() #12
  %8951 = load i32, ptr %8950, align 4, !tbaa !5
  %8952 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8939, ptr noundef @.str.5, i32 noundef %8940, ptr noundef @.str.68, ptr noundef @.str.1, i32 noundef 410, ptr noundef %8943, ptr noundef %8946, ptr noundef %8949, i32 noundef %8951) #11
  br label %8953

8953:                                             ; preds = %8936, %8919
  call void @llvm.lifetime.end.p0(i64 4, ptr %242) #11
  br label %8954

8954:                                             ; preds = %8953
  br label %8955

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

8956:                                             ; No predecessors!
  br label %8957

8957:                                             ; preds = %8956
  br label %8958

8958:                                             ; preds = %8957, %8889
  br label %8959

8959:                                             ; preds = %8958
  br label %8960

8960:                                             ; preds = %8959
  call void @llvm.lifetime.start.p0(i64 24, ptr %243) #11
  call void @llvm.memset.p0.i64(ptr align 8 %243, i8 0, i64 24, i1 false)
  br label %8961

8961:                                             ; preds = %8960
  %8962 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef %243, ptr noundef @.str.69)
  %8963 = getelementptr inbounds %struct.s2n_result, ptr %244, i32 0, i32 0
  store i32 %8962, ptr %8963, align 4
  %8964 = getelementptr inbounds %struct.s2n_result, ptr %244, i32 0, i32 0
  %8965 = load i32, ptr %8964, align 4
  %8966 = call zeroext i1 @s2n_result_is_ok(i32 %8965)
  br i1 %8966, label %8968, label %8967

8967:                                             ; preds = %8961
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %245, align 4
  br label %10937

8968:                                             ; preds = %8961
  br label %8969

8969:                                             ; preds = %8968
  br label %8970

8970:                                             ; preds = %8969
  br label %8971

8971:                                             ; preds = %8970
  %8972 = load i32, ptr @test_count, align 4, !tbaa !5
  %8973 = add nsw i32 %8972, 1
  store i32 %8973, ptr @test_count, align 4, !tbaa !5
  %8974 = load ptr, ptr %238, align 8, !tbaa !9
  %8975 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %8974, i32 0, i32 6
  %8976 = load ptr, ptr %8975, align 8, !tbaa !49
  %8977 = getelementptr inbounds %struct.s2n_record_algorithm, ptr %8976, i32 0, i32 0
  %8978 = load ptr, ptr %8977, align 8, !tbaa !51
  %8979 = getelementptr inbounds %struct.s2n_cipher, ptr %8978, i32 0, i32 6
  %8980 = load ptr, ptr %8979, align 8, !tbaa !55
  %8981 = load ptr, ptr %239, align 8, !tbaa !9
  %8982 = call i32 %8980(ptr noundef %8981, ptr noundef %243)
  %8983 = getelementptr inbounds %struct.s2n_result, ptr %246, i32 0, i32 0
  store i32 %8982, ptr %8983, align 4
  %8984 = getelementptr inbounds %struct.s2n_result, ptr %246, i32 0, i32 0
  %8985 = load i32, ptr %8984, align 4
  %8986 = call zeroext i1 @s2n_result_is_ok(i32 %8985)
  br i1 %8986, label %9040, label %8987

8987:                                             ; preds = %8971
  br label %8988

8988:                                             ; preds = %8987
  br label %8989

8989:                                             ; preds = %8988
  call void @llvm.lifetime.start.p0(i64 4, ptr %247) #11
  %8990 = call ptr @__errno_location() #12
  %8991 = load i32, ptr %8990, align 4, !tbaa !5
  store i32 %8991, ptr %247, align 4, !tbaa !5
  %8992 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8993 = call i32 @s2n_print_stacktrace(ptr noundef %8992)
  %8994 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8995 = trunc i8 %8994 to i1
  br i1 %8995, label %8996, label %9018

8996:                                             ; preds = %8989
  %8997 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8998 = call i32 @fileno(ptr noundef %8997) #11
  %8999 = call i32 @isatty(i32 noundef %8998) #11
  %9000 = icmp ne i32 %8999, 0
  br i1 %9000, label %9001, label %9018

9001:                                             ; preds = %8996
  %9002 = load i32, ptr %247, align 4, !tbaa !5
  %9003 = call ptr @__errno_location() #12
  store i32 %9002, ptr %9003, align 4, !tbaa !5
  %9004 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9005 = load i32, ptr @test_count, align 4, !tbaa !5
  %9006 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9007 = load i32, ptr %9006, align 4, !tbaa !5
  %9008 = call ptr @s2n_strerror(i32 noundef %9007, ptr noundef @.str.4)
  %9009 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9010 = load i32, ptr %9009, align 4, !tbaa !5
  %9011 = call ptr @s2n_strerror_debug(i32 noundef %9010, ptr noundef @.str.4)
  %9012 = call ptr @__errno_location() #12
  %9013 = load i32, ptr %9012, align 4, !tbaa !5
  %9014 = call ptr @strerror(i32 noundef %9013) #11
  %9015 = call ptr @__errno_location() #12
  %9016 = load i32, ptr %9015, align 4, !tbaa !5
  %9017 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9004, ptr noundef @.str.2, i32 noundef %9005, ptr noundef @.str.70, ptr noundef @.str.1, i32 noundef 412, ptr noundef %9008, ptr noundef %9011, ptr noundef %9014, i32 noundef %9016) #11
  br label %9035

9018:                                             ; preds = %8996, %8989
  %9019 = load i32, ptr %247, align 4, !tbaa !5
  %9020 = call ptr @__errno_location() #12
  store i32 %9019, ptr %9020, align 4, !tbaa !5
  %9021 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9022 = load i32, ptr @test_count, align 4, !tbaa !5
  %9023 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9024 = load i32, ptr %9023, align 4, !tbaa !5
  %9025 = call ptr @s2n_strerror(i32 noundef %9024, ptr noundef @.str.4)
  %9026 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9027 = load i32, ptr %9026, align 4, !tbaa !5
  %9028 = call ptr @s2n_strerror_debug(i32 noundef %9027, ptr noundef @.str.4)
  %9029 = call ptr @__errno_location() #12
  %9030 = load i32, ptr %9029, align 4, !tbaa !5
  %9031 = call ptr @strerror(i32 noundef %9030) #11
  %9032 = call ptr @__errno_location() #12
  %9033 = load i32, ptr %9032, align 4, !tbaa !5
  %9034 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9021, ptr noundef @.str.5, i32 noundef %9022, ptr noundef @.str.70, ptr noundef @.str.1, i32 noundef 412, ptr noundef %9025, ptr noundef %9028, ptr noundef %9031, i32 noundef %9033) #11
  br label %9035

9035:                                             ; preds = %9018, %9001
  call void @llvm.lifetime.end.p0(i64 4, ptr %247) #11
  br label %9036

9036:                                             ; preds = %9035
  br label %9037

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

9038:                                             ; No predecessors!
  br label %9039

9039:                                             ; preds = %9038
  br label %9040

9040:                                             ; preds = %9039, %8971
  br label %9041

9041:                                             ; preds = %9040
  br label %9042

9042:                                             ; preds = %9041
  br label %9043

9043:                                             ; preds = %9042
  %9044 = load i32, ptr @test_count, align 4, !tbaa !5
  %9045 = add nsw i32 %9044, 1
  store i32 %9045, ptr @test_count, align 4, !tbaa !5
  %9046 = load ptr, ptr %238, align 8, !tbaa !9
  %9047 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %9046, i32 0, i32 6
  %9048 = load ptr, ptr %9047, align 8, !tbaa !49
  %9049 = getelementptr inbounds %struct.s2n_record_algorithm, ptr %9048, i32 0, i32 0
  %9050 = load ptr, ptr %9049, align 8, !tbaa !51
  %9051 = getelementptr inbounds %struct.s2n_cipher, ptr %9050, i32 0, i32 5
  %9052 = load ptr, ptr %9051, align 8, !tbaa !56
  %9053 = load ptr, ptr %239, align 8, !tbaa !9
  %9054 = call i32 %9052(ptr noundef %9053, ptr noundef %243)
  %9055 = getelementptr inbounds %struct.s2n_result, ptr %248, i32 0, i32 0
  store i32 %9054, ptr %9055, align 4
  %9056 = getelementptr inbounds %struct.s2n_result, ptr %248, i32 0, i32 0
  %9057 = load i32, ptr %9056, align 4
  %9058 = call zeroext i1 @s2n_result_is_ok(i32 %9057)
  br i1 %9058, label %9112, label %9059

9059:                                             ; preds = %9043
  br label %9060

9060:                                             ; preds = %9059
  br label %9061

9061:                                             ; preds = %9060
  call void @llvm.lifetime.start.p0(i64 4, ptr %249) #11
  %9062 = call ptr @__errno_location() #12
  %9063 = load i32, ptr %9062, align 4, !tbaa !5
  store i32 %9063, ptr %249, align 4, !tbaa !5
  %9064 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9065 = call i32 @s2n_print_stacktrace(ptr noundef %9064)
  %9066 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9067 = trunc i8 %9066 to i1
  br i1 %9067, label %9068, label %9090

9068:                                             ; preds = %9061
  %9069 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9070 = call i32 @fileno(ptr noundef %9069) #11
  %9071 = call i32 @isatty(i32 noundef %9070) #11
  %9072 = icmp ne i32 %9071, 0
  br i1 %9072, label %9073, label %9090

9073:                                             ; preds = %9068
  %9074 = load i32, ptr %249, align 4, !tbaa !5
  %9075 = call ptr @__errno_location() #12
  store i32 %9074, ptr %9075, align 4, !tbaa !5
  %9076 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9077 = load i32, ptr @test_count, align 4, !tbaa !5
  %9078 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9079 = load i32, ptr %9078, align 4, !tbaa !5
  %9080 = call ptr @s2n_strerror(i32 noundef %9079, ptr noundef @.str.4)
  %9081 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9082 = load i32, ptr %9081, align 4, !tbaa !5
  %9083 = call ptr @s2n_strerror_debug(i32 noundef %9082, ptr noundef @.str.4)
  %9084 = call ptr @__errno_location() #12
  %9085 = load i32, ptr %9084, align 4, !tbaa !5
  %9086 = call ptr @strerror(i32 noundef %9085) #11
  %9087 = call ptr @__errno_location() #12
  %9088 = load i32, ptr %9087, align 4, !tbaa !5
  %9089 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9076, ptr noundef @.str.2, i32 noundef %9077, ptr noundef @.str.71, ptr noundef @.str.1, i32 noundef 413, ptr noundef %9080, ptr noundef %9083, ptr noundef %9086, i32 noundef %9088) #11
  br label %9107

9090:                                             ; preds = %9068, %9061
  %9091 = load i32, ptr %249, align 4, !tbaa !5
  %9092 = call ptr @__errno_location() #12
  store i32 %9091, ptr %9092, align 4, !tbaa !5
  %9093 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9094 = load i32, ptr @test_count, align 4, !tbaa !5
  %9095 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9096 = load i32, ptr %9095, align 4, !tbaa !5
  %9097 = call ptr @s2n_strerror(i32 noundef %9096, ptr noundef @.str.4)
  %9098 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9099 = load i32, ptr %9098, align 4, !tbaa !5
  %9100 = call ptr @s2n_strerror_debug(i32 noundef %9099, ptr noundef @.str.4)
  %9101 = call ptr @__errno_location() #12
  %9102 = load i32, ptr %9101, align 4, !tbaa !5
  %9103 = call ptr @strerror(i32 noundef %9102) #11
  %9104 = call ptr @__errno_location() #12
  %9105 = load i32, ptr %9104, align 4, !tbaa !5
  %9106 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9093, ptr noundef @.str.5, i32 noundef %9094, ptr noundef @.str.71, ptr noundef @.str.1, i32 noundef 413, ptr noundef %9097, ptr noundef %9100, ptr noundef %9103, i32 noundef %9105) #11
  br label %9107

9107:                                             ; preds = %9090, %9073
  call void @llvm.lifetime.end.p0(i64 4, ptr %249) #11
  br label %9108

9108:                                             ; preds = %9107
  br label %9109

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

9110:                                             ; No predecessors!
  br label %9111

9111:                                             ; preds = %9110
  br label %9112

9112:                                             ; preds = %9111, %9043
  br label %9113

9113:                                             ; preds = %9112
  br label %9114

9114:                                             ; preds = %9113
  call void @llvm.lifetime.start.p0(i64 24, ptr %250) #11
  call void @llvm.memset.p0.i64(ptr align 8 %250, i8 0, i64 24, i1 false)
  br label %9115

9115:                                             ; preds = %9114
  %9116 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef %250, ptr noundef @.str.72)
  %9117 = getelementptr inbounds %struct.s2n_result, ptr %251, i32 0, i32 0
  store i32 %9116, ptr %9117, align 4
  %9118 = getelementptr inbounds %struct.s2n_result, ptr %251, i32 0, i32 0
  %9119 = load i32, ptr %9118, align 4
  %9120 = call zeroext i1 @s2n_result_is_ok(i32 %9119)
  br i1 %9120, label %9122, label %9121

9121:                                             ; preds = %9115
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %245, align 4
  br label %10935

9122:                                             ; preds = %9115
  br label %9123

9123:                                             ; preds = %9122
  br label %9124

9124:                                             ; preds = %9123
  call void @llvm.lifetime.start.p0(i64 8, ptr %252) #11
  store i64 0, ptr %252, align 8, !tbaa !69
  br label %9125

9125:                                             ; preds = %9141, %9124
  %9126 = load i64, ptr %252, align 8, !tbaa !69
  %9127 = getelementptr inbounds %struct.s2n_blob, ptr %250, i32 0, i32 1
  %9128 = load i32, ptr %9127, align 8, !tbaa !60
  %9129 = zext i32 %9128 to i64
  %9130 = icmp ult i64 %9126, %9129
  br i1 %9130, label %9132, label %9131

9131:                                             ; preds = %9125
  store i32 796, ptr %245, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %252) #11
  br label %9144

9132:                                             ; preds = %9125
  %9133 = getelementptr inbounds %struct.s2n_blob, ptr %250, i32 0, i32 0
  %9134 = load ptr, ptr %9133, align 8, !tbaa !70
  %9135 = load i64, ptr %252, align 8, !tbaa !69
  %9136 = getelementptr inbounds i8, ptr %9134, i64 %9135
  %9137 = load i8, ptr %9136, align 1, !tbaa !59
  %9138 = load ptr, ptr %240, align 8, !tbaa !9
  %9139 = load i64, ptr %252, align 8, !tbaa !69
  %9140 = getelementptr inbounds i8, ptr %9138, i64 %9139
  store i8 %9137, ptr %9140, align 1, !tbaa !59
  br label %9141

9141:                                             ; preds = %9132
  %9142 = load i64, ptr %252, align 8, !tbaa !69
  %9143 = add i64 %9142, 1
  store i64 %9143, ptr %252, align 8, !tbaa !69
  br label %9125, !llvm.loop !71

9144:                                             ; preds = %9131
  br label %9145

9145:                                             ; preds = %9144
  %9146 = load i32, ptr @test_count, align 4, !tbaa !5
  %9147 = add nsw i32 %9146, 1
  store i32 %9147, ptr @test_count, align 4, !tbaa !5
  %9148 = load ptr, ptr %236, align 8, !tbaa !9
  %9149 = call i32 @s2n_connection_prefer_throughput(ptr noundef %9148)
  %9150 = icmp eq i32 %9149, -1
  br i1 %9150, label %9151, label %9204

9151:                                             ; preds = %9145
  br label %9152

9152:                                             ; preds = %9151
  br label %9153

9153:                                             ; preds = %9152
  call void @llvm.lifetime.start.p0(i64 4, ptr %253) #11
  %9154 = call ptr @__errno_location() #12
  %9155 = load i32, ptr %9154, align 4, !tbaa !5
  store i32 %9155, ptr %253, align 4, !tbaa !5
  %9156 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9157 = call i32 @s2n_print_stacktrace(ptr noundef %9156)
  %9158 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9159 = trunc i8 %9158 to i1
  br i1 %9159, label %9160, label %9182

9160:                                             ; preds = %9153
  %9161 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9162 = call i32 @fileno(ptr noundef %9161) #11
  %9163 = call i32 @isatty(i32 noundef %9162) #11
  %9164 = icmp ne i32 %9163, 0
  br i1 %9164, label %9165, label %9182

9165:                                             ; preds = %9160
  %9166 = load i32, ptr %253, align 4, !tbaa !5
  %9167 = call ptr @__errno_location() #12
  store i32 %9166, ptr %9167, align 4, !tbaa !5
  %9168 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9169 = load i32, ptr @test_count, align 4, !tbaa !5
  %9170 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9171 = load i32, ptr %9170, align 4, !tbaa !5
  %9172 = call ptr @s2n_strerror(i32 noundef %9171, ptr noundef @.str.4)
  %9173 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9174 = load i32, ptr %9173, align 4, !tbaa !5
  %9175 = call ptr @s2n_strerror_debug(i32 noundef %9174, ptr noundef @.str.4)
  %9176 = call ptr @__errno_location() #12
  %9177 = load i32, ptr %9176, align 4, !tbaa !5
  %9178 = call ptr @strerror(i32 noundef %9177) #11
  %9179 = call ptr @__errno_location() #12
  %9180 = load i32, ptr %9179, align 4, !tbaa !5
  %9181 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9168, ptr noundef @.str.2, i32 noundef %9169, ptr noundef @.str.73, ptr noundef @.str.1, i32 noundef 423, ptr noundef %9172, ptr noundef %9175, ptr noundef %9178, i32 noundef %9180) #11
  br label %9199

9182:                                             ; preds = %9160, %9153
  %9183 = load i32, ptr %253, 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.5, i32 noundef %9186, ptr noundef @.str.73, ptr noundef @.str.1, i32 noundef 423, ptr noundef %9189, ptr noundef %9192, ptr noundef %9195, i32 noundef %9197) #11
  br label %9199

9199:                                             ; preds = %9182, %9165
  call void @llvm.lifetime.end.p0(i64 4, ptr %253) #11
  br label %9200

9200:                                             ; preds = %9199
  br label %9201

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

9202:                                             ; No predecessors!
  br label %9203

9203:                                             ; preds = %9202
  br label %9204

9204:                                             ; preds = %9203, %9145
  br label %9205

9205:                                             ; preds = %9204
  br label %9206

9206:                                             ; preds = %9205
  call void @llvm.lifetime.start.p0(i64 8, ptr %254) #11
  store i64 1024, ptr %254, align 8, !tbaa !69
  call void @llvm.lifetime.start.p0(i64 1024, ptr %255) #11
  call void @llvm.memset.p0.i64(ptr align 16 %255, i8 0, i64 1024, i1 false)
  br label %9207

9207:                                             ; preds = %9206
  %9208 = load i64, ptr %254, align 8, !tbaa !69
  %9209 = icmp ule i64 %9208, 1024
  br i1 %9209, label %9243, label %9210

9210:                                             ; preds = %9207
  br label %9211

9211:                                             ; preds = %9210
  br label %9212

9212:                                             ; preds = %9211
  %9213 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %9214 = getelementptr inbounds %struct.s2n_debug_info, ptr %9213, i32 0, i32 0
  store ptr @.str.74, ptr %9214, align 8, !tbaa !73
  %9215 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %9216 = getelementptr inbounds %struct.s2n_debug_info, ptr %9215, i32 0, i32 0
  %9217 = load ptr, ptr %9216, align 8, !tbaa !73
  %9218 = getelementptr inbounds i8, ptr %9217, i64 21
  %9219 = call ptr @strrchr(ptr noundef %9218, i32 noundef 47) #14
  %9220 = icmp ne ptr %9219, null
  br i1 %9220, label %9221, label %9228

9221:                                             ; preds = %9212
  %9222 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %9223 = getelementptr inbounds %struct.s2n_debug_info, ptr %9222, i32 0, i32 0
  %9224 = load ptr, ptr %9223, align 8, !tbaa !73
  %9225 = getelementptr inbounds i8, ptr %9224, i64 21
  %9226 = call ptr @strrchr(ptr noundef %9225, i32 noundef 47) #14
  %9227 = getelementptr inbounds i8, ptr %9226, i64 1
  br label %9233

9228:                                             ; preds = %9212
  %9229 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %9230 = getelementptr inbounds %struct.s2n_debug_info, ptr %9229, i32 0, i32 0
  %9231 = load ptr, ptr %9230, align 8, !tbaa !73
  %9232 = getelementptr inbounds i8, ptr %9231, i64 21
  br label %9233

9233:                                             ; preds = %9228, %9221
  %9234 = phi ptr [ %9227, %9221 ], [ %9232, %9228 ]
  %9235 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %9236 = getelementptr inbounds %struct.s2n_debug_info, ptr %9235, i32 0, i32 1
  store ptr %9234, ptr %9236, align 8, !tbaa !75
  %9237 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 402653194, ptr %9237, align 4, !tbaa !5
  %9238 = call i32 @s2n_calculate_stacktrace()
  br label %9239

9239:                                             ; preds = %9233
  br label %9240

9240:                                             ; preds = %9239
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %245, align 4
  br label %10934

9241:                                             ; No predecessors!
  br label %9242

9242:                                             ; preds = %9241
  br label %9243

9243:                                             ; preds = %9242, %9207
  br label %9244

9244:                                             ; preds = %9243
  br label %9245

9245:                                             ; preds = %9244
  call void @llvm.lifetime.start.p0(i64 24, ptr %256) #11
  call void @llvm.memset.p0.i64(ptr align 8 %256, i8 0, i64 24, i1 false)
  br label %9246

9246:                                             ; preds = %9245
  %9247 = getelementptr inbounds [1024 x i8], ptr %255, i64 0, i64 0
  %9248 = load i64, ptr %254, align 8, !tbaa !69
  %9249 = trunc i64 %9248 to i32
  %9250 = call i32 @s2n_blob_init(ptr noundef %256, ptr noundef %9247, i32 noundef %9249)
  %9251 = icmp sgt i32 %9250, -1
  br i1 %9251, label %9253, label %9252

9252:                                             ; preds = %9246
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %245, align 4
  br label %10933

9253:                                             ; preds = %9246
  br label %9254

9254:                                             ; preds = %9253
  br label %9255

9255:                                             ; preds = %9254
  call void @llvm.lifetime.start.p0(i64 16, ptr %257) #11
  call void @llvm.memset.p0.i64(ptr align 8 %257, i8 0, i64 16, i1 false)
  %9256 = getelementptr inbounds %struct.s2n_blob, ptr %256, i32 0, i32 0
  %9257 = load ptr, ptr %9256, align 8, !tbaa !70
  %9258 = getelementptr inbounds %struct.iovec, ptr %257, i32 0, i32 0
  store ptr %9257, ptr %9258, align 8, !tbaa !76
  %9259 = getelementptr inbounds %struct.s2n_blob, ptr %256, i32 0, i32 1
  %9260 = load i32, ptr %9259, align 8, !tbaa !60
  %9261 = zext i32 %9260 to i64
  %9262 = getelementptr inbounds %struct.iovec, ptr %257, i32 0, i32 1
  store i64 %9261, ptr %9262, align 8, !tbaa !78
  call void @llvm.lifetime.start.p0(i64 4, ptr %258) #11
  store i32 0, ptr %258, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 2, ptr %259) #11
  store i16 22, ptr %259, align 2, !tbaa !62
  br label %9263

9263:                                             ; preds = %9255
  %9264 = load i32, ptr @test_count, align 4, !tbaa !5
  %9265 = add nsw i32 %9264, 1
  store i32 %9265, ptr @test_count, align 4, !tbaa !5
  %9266 = load ptr, ptr %236, align 8, !tbaa !9
  %9267 = getelementptr inbounds %struct.s2n_blob, ptr %256, i32 0, i32 1
  %9268 = load i32, ptr %9267, align 8, !tbaa !60
  %9269 = zext i32 %9268 to i64
  %9270 = call i32 @s2n_record_writev(ptr noundef %9266, i8 noundef zeroext 23, ptr noundef %257, i32 noundef 1, i64 noundef 0, i64 noundef %9269)
  store i32 %9270, ptr %258, align 4, !tbaa !5
  %9271 = icmp eq i32 %9270, -1
  br i1 %9271, label %9272, label %9325

9272:                                             ; preds = %9263
  br label %9273

9273:                                             ; preds = %9272
  br label %9274

9274:                                             ; preds = %9273
  call void @llvm.lifetime.start.p0(i64 4, ptr %260) #11
  %9275 = call ptr @__errno_location() #12
  %9276 = load i32, ptr %9275, align 4, !tbaa !5
  store i32 %9276, ptr %260, align 4, !tbaa !5
  %9277 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9278 = call i32 @s2n_print_stacktrace(ptr noundef %9277)
  %9279 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9280 = trunc i8 %9279 to i1
  br i1 %9280, label %9281, label %9303

9281:                                             ; preds = %9274
  %9282 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9283 = call i32 @fileno(ptr noundef %9282) #11
  %9284 = call i32 @isatty(i32 noundef %9283) #11
  %9285 = icmp ne i32 %9284, 0
  br i1 %9285, label %9286, label %9303

9286:                                             ; preds = %9281
  %9287 = load i32, ptr %260, align 4, !tbaa !5
  %9288 = call ptr @__errno_location() #12
  store i32 %9287, ptr %9288, align 4, !tbaa !5
  %9289 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9290 = load i32, ptr @test_count, align 4, !tbaa !5
  %9291 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9292 = load i32, ptr %9291, align 4, !tbaa !5
  %9293 = call ptr @s2n_strerror(i32 noundef %9292, ptr noundef @.str.4)
  %9294 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9295 = load i32, ptr %9294, align 4, !tbaa !5
  %9296 = call ptr @s2n_strerror_debug(i32 noundef %9295, ptr noundef @.str.4)
  %9297 = call ptr @__errno_location() #12
  %9298 = load i32, ptr %9297, align 4, !tbaa !5
  %9299 = call ptr @strerror(i32 noundef %9298) #11
  %9300 = call ptr @__errno_location() #12
  %9301 = load i32, ptr %9300, align 4, !tbaa !5
  %9302 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9289, ptr noundef @.str.2, i32 noundef %9290, ptr noundef @.str.75, ptr noundef @.str.1, i32 noundef 434, ptr noundef %9293, ptr noundef %9296, ptr noundef %9299, i32 noundef %9301) #11
  br label %9320

9303:                                             ; preds = %9281, %9274
  %9304 = load i32, ptr %260, align 4, !tbaa !5
  %9305 = call ptr @__errno_location() #12
  store i32 %9304, ptr %9305, align 4, !tbaa !5
  %9306 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9307 = load i32, ptr @test_count, align 4, !tbaa !5
  %9308 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9309 = load i32, ptr %9308, align 4, !tbaa !5
  %9310 = call ptr @s2n_strerror(i32 noundef %9309, ptr noundef @.str.4)
  %9311 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9312 = load i32, ptr %9311, align 4, !tbaa !5
  %9313 = call ptr @s2n_strerror_debug(i32 noundef %9312, ptr noundef @.str.4)
  %9314 = call ptr @__errno_location() #12
  %9315 = load i32, ptr %9314, align 4, !tbaa !5
  %9316 = call ptr @strerror(i32 noundef %9315) #11
  %9317 = call ptr @__errno_location() #12
  %9318 = load i32, ptr %9317, align 4, !tbaa !5
  %9319 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9306, ptr noundef @.str.5, i32 noundef %9307, ptr noundef @.str.75, ptr noundef @.str.1, i32 noundef 434, ptr noundef %9310, ptr noundef %9313, ptr noundef %9316, i32 noundef %9318) #11
  br label %9320

9320:                                             ; preds = %9303, %9286
  call void @llvm.lifetime.end.p0(i64 4, ptr %260) #11
  br label %9321

9321:                                             ; preds = %9320
  br label %9322

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

9323:                                             ; No predecessors!
  br label %9324

9324:                                             ; preds = %9323
  br label %9325

9325:                                             ; preds = %9324, %9263
  br label %9326

9326:                                             ; preds = %9325
  br label %9327

9327:                                             ; preds = %9326
  br label %9328

9328:                                             ; preds = %9327
  %9329 = load i32, ptr @test_count, align 4, !tbaa !5
  %9330 = add nsw i32 %9329, 1
  store i32 %9330, ptr @test_count, align 4, !tbaa !5
  %9331 = load i32, ptr %258, align 4, !tbaa !5
  %9332 = icmp eq i32 %9331, 1024
  br i1 %9332, label %9386, label %9333

9333:                                             ; preds = %9328
  br label %9334

9334:                                             ; preds = %9333
  br label %9335

9335:                                             ; preds = %9334
  call void @llvm.lifetime.start.p0(i64 4, ptr %261) #11
  %9336 = call ptr @__errno_location() #12
  %9337 = load i32, ptr %9336, align 4, !tbaa !5
  store i32 %9337, ptr %261, align 4, !tbaa !5
  %9338 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9339 = call i32 @s2n_print_stacktrace(ptr noundef %9338)
  %9340 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9341 = trunc i8 %9340 to i1
  br i1 %9341, label %9342, label %9364

9342:                                             ; preds = %9335
  %9343 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9344 = call i32 @fileno(ptr noundef %9343) #11
  %9345 = call i32 @isatty(i32 noundef %9344) #11
  %9346 = icmp ne i32 %9345, 0
  br i1 %9346, label %9347, label %9364

9347:                                             ; preds = %9342
  %9348 = load i32, ptr %261, align 4, !tbaa !5
  %9349 = call ptr @__errno_location() #12
  store i32 %9348, ptr %9349, align 4, !tbaa !5
  %9350 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9351 = load i32, ptr @test_count, align 4, !tbaa !5
  %9352 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9353 = load i32, ptr %9352, align 4, !tbaa !5
  %9354 = call ptr @s2n_strerror(i32 noundef %9353, ptr noundef @.str.4)
  %9355 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9356 = load i32, ptr %9355, align 4, !tbaa !5
  %9357 = call ptr @s2n_strerror_debug(i32 noundef %9356, ptr noundef @.str.4)
  %9358 = call ptr @__errno_location() #12
  %9359 = load i32, ptr %9358, align 4, !tbaa !5
  %9360 = call ptr @strerror(i32 noundef %9359) #11
  %9361 = call ptr @__errno_location() #12
  %9362 = load i32, ptr %9361, align 4, !tbaa !5
  %9363 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9350, ptr noundef @.str.2, i32 noundef %9351, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 435, ptr noundef %9354, ptr noundef %9357, ptr noundef %9360, i32 noundef %9362) #11
  br label %9381

9364:                                             ; preds = %9342, %9335
  %9365 = load i32, ptr %261, align 4, !tbaa !5
  %9366 = call ptr @__errno_location() #12
  store i32 %9365, ptr %9366, align 4, !tbaa !5
  %9367 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9368 = load i32, ptr @test_count, align 4, !tbaa !5
  %9369 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9370 = load i32, ptr %9369, align 4, !tbaa !5
  %9371 = call ptr @s2n_strerror(i32 noundef %9370, ptr noundef @.str.4)
  %9372 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9373 = load i32, ptr %9372, align 4, !tbaa !5
  %9374 = call ptr @s2n_strerror_debug(i32 noundef %9373, ptr noundef @.str.4)
  %9375 = call ptr @__errno_location() #12
  %9376 = load i32, ptr %9375, align 4, !tbaa !5
  %9377 = call ptr @strerror(i32 noundef %9376) #11
  %9378 = call ptr @__errno_location() #12
  %9379 = load i32, ptr %9378, align 4, !tbaa !5
  %9380 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9367, ptr noundef @.str.5, i32 noundef %9368, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 435, ptr noundef %9371, ptr noundef %9374, ptr noundef %9377, i32 noundef %9379) #11
  br label %9381

9381:                                             ; preds = %9364, %9347
  call void @llvm.lifetime.end.p0(i64 4, ptr %261) #11
  br label %9382

9382:                                             ; preds = %9381
  br label %9383

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

9384:                                             ; No predecessors!
  br label %9385

9385:                                             ; preds = %9384
  br label %9386

9386:                                             ; preds = %9385, %9328
  br label %9387

9387:                                             ; preds = %9386
  br label %9388

9388:                                             ; preds = %9387
  br label %9389

9389:                                             ; preds = %9388
  %9390 = load i32, ptr @test_count, align 4, !tbaa !5
  %9391 = add nsw i32 %9390, 1
  store i32 %9391, ptr @test_count, align 4, !tbaa !5
  %9392 = load ptr, ptr %236, align 8, !tbaa !9
  %9393 = getelementptr inbounds %struct.s2n_connection, ptr %9392, i32 0, i32 41
  %9394 = getelementptr inbounds %struct.s2n_stuffer, ptr %9393, i32 0, i32 2
  %9395 = load i32, ptr %9394, align 4, !tbaa !65
  %9396 = load ptr, ptr %236, align 8, !tbaa !9
  %9397 = getelementptr inbounds %struct.s2n_connection, ptr %9396, i32 0, i32 41
  %9398 = getelementptr inbounds %struct.s2n_stuffer, ptr %9397, i32 0, i32 1
  %9399 = load i32, ptr %9398, align 8, !tbaa !66
  %9400 = sub i32 %9395, %9399
  %9401 = icmp eq i32 %9400, 1046
  br i1 %9401, label %9455, label %9402

9402:                                             ; preds = %9389
  br label %9403

9403:                                             ; preds = %9402
  br label %9404

9404:                                             ; preds = %9403
  call void @llvm.lifetime.start.p0(i64 4, ptr %262) #11
  %9405 = call ptr @__errno_location() #12
  %9406 = load i32, ptr %9405, align 4, !tbaa !5
  store i32 %9406, ptr %262, align 4, !tbaa !5
  %9407 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9408 = call i32 @s2n_print_stacktrace(ptr noundef %9407)
  %9409 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9410 = trunc i8 %9409 to i1
  br i1 %9410, label %9411, label %9433

9411:                                             ; preds = %9404
  %9412 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9413 = call i32 @fileno(ptr noundef %9412) #11
  %9414 = call i32 @isatty(i32 noundef %9413) #11
  %9415 = icmp ne i32 %9414, 0
  br i1 %9415, label %9416, label %9433

9416:                                             ; preds = %9411
  %9417 = load i32, ptr %262, align 4, !tbaa !5
  %9418 = call ptr @__errno_location() #12
  store i32 %9417, ptr %9418, align 4, !tbaa !5
  %9419 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9420 = load i32, ptr @test_count, align 4, !tbaa !5
  %9421 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9422 = load i32, ptr %9421, align 4, !tbaa !5
  %9423 = call ptr @s2n_strerror(i32 noundef %9422, ptr noundef @.str.4)
  %9424 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9425 = load i32, ptr %9424, align 4, !tbaa !5
  %9426 = call ptr @s2n_strerror_debug(i32 noundef %9425, ptr noundef @.str.4)
  %9427 = call ptr @__errno_location() #12
  %9428 = load i32, ptr %9427, align 4, !tbaa !5
  %9429 = call ptr @strerror(i32 noundef %9428) #11
  %9430 = call ptr @__errno_location() #12
  %9431 = load i32, ptr %9430, align 4, !tbaa !5
  %9432 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9419, ptr noundef @.str.2, i32 noundef %9420, ptr noundef @.str.77, ptr noundef @.str.1, i32 noundef 436, ptr noundef %9423, ptr noundef %9426, ptr noundef %9429, i32 noundef %9431) #11
  br label %9450

9433:                                             ; preds = %9411, %9404
  %9434 = load i32, ptr %262, align 4, !tbaa !5
  %9435 = call ptr @__errno_location() #12
  store i32 %9434, ptr %9435, align 4, !tbaa !5
  %9436 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9437 = load i32, ptr @test_count, align 4, !tbaa !5
  %9438 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9439 = load i32, ptr %9438, align 4, !tbaa !5
  %9440 = call ptr @s2n_strerror(i32 noundef %9439, ptr noundef @.str.4)
  %9441 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9442 = load i32, ptr %9441, align 4, !tbaa !5
  %9443 = call ptr @s2n_strerror_debug(i32 noundef %9442, ptr noundef @.str.4)
  %9444 = call ptr @__errno_location() #12
  %9445 = load i32, ptr %9444, align 4, !tbaa !5
  %9446 = call ptr @strerror(i32 noundef %9445) #11
  %9447 = call ptr @__errno_location() #12
  %9448 = load i32, ptr %9447, align 4, !tbaa !5
  %9449 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9436, ptr noundef @.str.5, i32 noundef %9437, ptr noundef @.str.77, ptr noundef @.str.1, i32 noundef 436, ptr noundef %9440, ptr noundef %9443, ptr noundef %9446, i32 noundef %9448) #11
  br label %9450

9450:                                             ; preds = %9433, %9416
  call void @llvm.lifetime.end.p0(i64 4, ptr %262) #11
  br label %9451

9451:                                             ; preds = %9450
  br label %9452

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

9453:                                             ; No predecessors!
  br label %9454

9454:                                             ; preds = %9453
  br label %9455

9455:                                             ; preds = %9454, %9389
  br label %9456

9456:                                             ; preds = %9455
  br label %9457

9457:                                             ; preds = %9456
  br label %9458

9458:                                             ; preds = %9457
  br label %9459

9459:                                             ; preds = %9458
  br label %9460

9460:                                             ; preds = %9459
  %9461 = load i32, ptr @test_count, align 4, !tbaa !5
  %9462 = add nsw i32 %9461, 1
  store i32 %9462, ptr @test_count, align 4, !tbaa !5
  %9463 = load ptr, ptr %236, align 8, !tbaa !9
  %9464 = call i32 @s2n_record_write(ptr noundef %9463, i8 noundef zeroext 23, ptr noundef %256)
  %9465 = getelementptr inbounds %struct.s2n_result, ptr %263, i32 0, i32 0
  store i32 %9464, ptr %9465, align 4
  %9466 = getelementptr inbounds %struct.s2n_result, ptr %263, i32 0, i32 0
  %9467 = load i32, ptr %9466, align 4
  %9468 = call zeroext i1 @s2n_result_is_error(i32 %9467)
  br i1 %9468, label %9522, label %9469

9469:                                             ; preds = %9460
  br label %9470

9470:                                             ; preds = %9469
  br label %9471

9471:                                             ; preds = %9470
  call void @llvm.lifetime.start.p0(i64 4, ptr %264) #11
  %9472 = call ptr @__errno_location() #12
  %9473 = load i32, ptr %9472, align 4, !tbaa !5
  store i32 %9473, ptr %264, align 4, !tbaa !5
  %9474 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9475 = call i32 @s2n_print_stacktrace(ptr noundef %9474)
  %9476 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9477 = trunc i8 %9476 to i1
  br i1 %9477, label %9478, label %9500

9478:                                             ; preds = %9471
  %9479 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9480 = call i32 @fileno(ptr noundef %9479) #11
  %9481 = call i32 @isatty(i32 noundef %9480) #11
  %9482 = icmp ne i32 %9481, 0
  br i1 %9482, label %9483, label %9500

9483:                                             ; preds = %9478
  %9484 = load i32, ptr %264, align 4, !tbaa !5
  %9485 = call ptr @__errno_location() #12
  store i32 %9484, ptr %9485, align 4, !tbaa !5
  %9486 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9487 = load i32, ptr @test_count, align 4, !tbaa !5
  %9488 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9489 = load i32, ptr %9488, align 4, !tbaa !5
  %9490 = call ptr @s2n_strerror(i32 noundef %9489, ptr noundef @.str.4)
  %9491 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9492 = load i32, ptr %9491, align 4, !tbaa !5
  %9493 = call ptr @s2n_strerror_debug(i32 noundef %9492, ptr noundef @.str.4)
  %9494 = call ptr @__errno_location() #12
  %9495 = load i32, ptr %9494, align 4, !tbaa !5
  %9496 = call ptr @strerror(i32 noundef %9495) #11
  %9497 = call ptr @__errno_location() #12
  %9498 = load i32, ptr %9497, align 4, !tbaa !5
  %9499 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9486, ptr noundef @.str.2, i32 noundef %9487, ptr noundef @.str.78, ptr noundef @.str.1, i32 noundef 439, ptr noundef %9490, ptr noundef %9493, ptr noundef %9496, i32 noundef %9498) #11
  br label %9517

9500:                                             ; preds = %9478, %9471
  %9501 = load i32, ptr %264, align 4, !tbaa !5
  %9502 = call ptr @__errno_location() #12
  store i32 %9501, ptr %9502, align 4, !tbaa !5
  %9503 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9504 = load i32, ptr @test_count, align 4, !tbaa !5
  %9505 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9506 = load i32, ptr %9505, align 4, !tbaa !5
  %9507 = call ptr @s2n_strerror(i32 noundef %9506, ptr noundef @.str.4)
  %9508 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9509 = load i32, ptr %9508, align 4, !tbaa !5
  %9510 = call ptr @s2n_strerror_debug(i32 noundef %9509, ptr noundef @.str.4)
  %9511 = call ptr @__errno_location() #12
  %9512 = load i32, ptr %9511, align 4, !tbaa !5
  %9513 = call ptr @strerror(i32 noundef %9512) #11
  %9514 = call ptr @__errno_location() #12
  %9515 = load i32, ptr %9514, align 4, !tbaa !5
  %9516 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9503, ptr noundef @.str.5, i32 noundef %9504, ptr noundef @.str.78, ptr noundef @.str.1, i32 noundef 439, ptr noundef %9507, ptr noundef %9510, ptr noundef %9513, i32 noundef %9515) #11
  br label %9517

9517:                                             ; preds = %9500, %9483
  call void @llvm.lifetime.end.p0(i64 4, ptr %264) #11
  br label %9518

9518:                                             ; preds = %9517
  br label %9519

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

9520:                                             ; No predecessors!
  br label %9521

9521:                                             ; preds = %9520
  br label %9522

9522:                                             ; preds = %9521, %9460
  br label %9523

9523:                                             ; preds = %9522
  br label %9524

9524:                                             ; preds = %9523
  br label %9525

9525:                                             ; preds = %9524
  %9526 = load i32, ptr @test_count, align 4, !tbaa !5
  %9527 = add nsw i32 %9526, 1
  store i32 %9527, ptr @test_count, align 4, !tbaa !5
  %9528 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9529 = load i32, ptr %9528, align 4, !tbaa !5
  %9530 = icmp eq i32 %9529, 335544392
  br i1 %9530, label %9584, label %9531

9531:                                             ; preds = %9525
  br label %9532

9532:                                             ; preds = %9531
  br label %9533

9533:                                             ; preds = %9532
  call void @llvm.lifetime.start.p0(i64 4, ptr %265) #11
  %9534 = call ptr @__errno_location() #12
  %9535 = load i32, ptr %9534, align 4, !tbaa !5
  store i32 %9535, ptr %265, align 4, !tbaa !5
  %9536 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9537 = call i32 @s2n_print_stacktrace(ptr noundef %9536)
  %9538 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9539 = trunc i8 %9538 to i1
  br i1 %9539, label %9540, label %9562

9540:                                             ; preds = %9533
  %9541 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9542 = call i32 @fileno(ptr noundef %9541) #11
  %9543 = call i32 @isatty(i32 noundef %9542) #11
  %9544 = icmp ne i32 %9543, 0
  br i1 %9544, label %9545, label %9562

9545:                                             ; preds = %9540
  %9546 = load i32, ptr %265, align 4, !tbaa !5
  %9547 = call ptr @__errno_location() #12
  store i32 %9546, ptr %9547, align 4, !tbaa !5
  %9548 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9549 = load i32, ptr @test_count, align 4, !tbaa !5
  %9550 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9551 = load i32, ptr %9550, align 4, !tbaa !5
  %9552 = call ptr @s2n_strerror(i32 noundef %9551, ptr noundef @.str.4)
  %9553 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9554 = load i32, ptr %9553, align 4, !tbaa !5
  %9555 = call ptr @s2n_strerror_debug(i32 noundef %9554, ptr noundef @.str.4)
  %9556 = call ptr @__errno_location() #12
  %9557 = load i32, ptr %9556, align 4, !tbaa !5
  %9558 = call ptr @strerror(i32 noundef %9557) #11
  %9559 = call ptr @__errno_location() #12
  %9560 = load i32, ptr %9559, align 4, !tbaa !5
  %9561 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9548, ptr noundef @.str.2, i32 noundef %9549, ptr noundef @.str.79, ptr noundef @.str.1, i32 noundef 439, ptr noundef %9552, ptr noundef %9555, ptr noundef %9558, i32 noundef %9560) #11
  br label %9579

9562:                                             ; preds = %9540, %9533
  %9563 = load i32, ptr %265, align 4, !tbaa !5
  %9564 = call ptr @__errno_location() #12
  store i32 %9563, ptr %9564, align 4, !tbaa !5
  %9565 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9566 = load i32, ptr @test_count, align 4, !tbaa !5
  %9567 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9568 = load i32, ptr %9567, align 4, !tbaa !5
  %9569 = call ptr @s2n_strerror(i32 noundef %9568, ptr noundef @.str.4)
  %9570 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9571 = load i32, ptr %9570, align 4, !tbaa !5
  %9572 = call ptr @s2n_strerror_debug(i32 noundef %9571, ptr noundef @.str.4)
  %9573 = call ptr @__errno_location() #12
  %9574 = load i32, ptr %9573, align 4, !tbaa !5
  %9575 = call ptr @strerror(i32 noundef %9574) #11
  %9576 = call ptr @__errno_location() #12
  %9577 = load i32, ptr %9576, align 4, !tbaa !5
  %9578 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9565, ptr noundef @.str.5, i32 noundef %9566, ptr noundef @.str.79, ptr noundef @.str.1, i32 noundef 439, ptr noundef %9569, ptr noundef %9572, ptr noundef %9575, i32 noundef %9577) #11
  br label %9579

9579:                                             ; preds = %9562, %9545
  call void @llvm.lifetime.end.p0(i64 4, ptr %265) #11
  br label %9580

9580:                                             ; preds = %9579
  br label %9581

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

9582:                                             ; No predecessors!
  br label %9583

9583:                                             ; preds = %9582
  br label %9584

9584:                                             ; preds = %9583, %9525
  br label %9585

9585:                                             ; preds = %9584
  br label %9586

9586:                                             ; preds = %9585
  br label %9587

9587:                                             ; preds = %9586
  %9588 = load i32, ptr @test_count, align 4, !tbaa !5
  %9589 = add nsw i32 %9588, 1
  store i32 %9589, ptr @test_count, align 4, !tbaa !5
  %9590 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9591 = load i32, ptr %9590, align 4, !tbaa !5
  %9592 = call ptr @s2n_strerror_debug(i32 noundef %9591, ptr noundef @.str.4)
  %9593 = icmp eq ptr %9592, null
  br i1 %9593, label %9594, label %9647

9594:                                             ; preds = %9587
  br label %9595

9595:                                             ; preds = %9594
  br label %9596

9596:                                             ; preds = %9595
  call void @llvm.lifetime.start.p0(i64 4, ptr %266) #11
  %9597 = call ptr @__errno_location() #12
  %9598 = load i32, ptr %9597, align 4, !tbaa !5
  store i32 %9598, ptr %266, align 4, !tbaa !5
  %9599 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9600 = call i32 @s2n_print_stacktrace(ptr noundef %9599)
  %9601 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9602 = trunc i8 %9601 to i1
  br i1 %9602, label %9603, label %9625

9603:                                             ; preds = %9596
  %9604 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9605 = call i32 @fileno(ptr noundef %9604) #11
  %9606 = call i32 @isatty(i32 noundef %9605) #11
  %9607 = icmp ne i32 %9606, 0
  br i1 %9607, label %9608, label %9625

9608:                                             ; preds = %9603
  %9609 = load i32, ptr %266, align 4, !tbaa !5
  %9610 = call ptr @__errno_location() #12
  store i32 %9609, ptr %9610, align 4, !tbaa !5
  %9611 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9612 = load i32, ptr @test_count, align 4, !tbaa !5
  %9613 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9614 = load i32, ptr %9613, align 4, !tbaa !5
  %9615 = call ptr @s2n_strerror(i32 noundef %9614, ptr noundef @.str.4)
  %9616 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9617 = load i32, ptr %9616, align 4, !tbaa !5
  %9618 = call ptr @s2n_strerror_debug(i32 noundef %9617, ptr noundef @.str.4)
  %9619 = call ptr @__errno_location() #12
  %9620 = load i32, ptr %9619, align 4, !tbaa !5
  %9621 = call ptr @strerror(i32 noundef %9620) #11
  %9622 = call ptr @__errno_location() #12
  %9623 = load i32, ptr %9622, align 4, !tbaa !5
  %9624 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9611, ptr noundef @.str.2, i32 noundef %9612, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 439, ptr noundef %9615, ptr noundef %9618, ptr noundef %9621, i32 noundef %9623) #11
  br label %9642

9625:                                             ; preds = %9603, %9596
  %9626 = load i32, ptr %266, align 4, !tbaa !5
  %9627 = call ptr @__errno_location() #12
  store i32 %9626, ptr %9627, align 4, !tbaa !5
  %9628 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9629 = load i32, ptr @test_count, align 4, !tbaa !5
  %9630 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9631 = load i32, ptr %9630, align 4, !tbaa !5
  %9632 = call ptr @s2n_strerror(i32 noundef %9631, ptr noundef @.str.4)
  %9633 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9634 = load i32, ptr %9633, align 4, !tbaa !5
  %9635 = call ptr @s2n_strerror_debug(i32 noundef %9634, ptr noundef @.str.4)
  %9636 = call ptr @__errno_location() #12
  %9637 = load i32, ptr %9636, align 4, !tbaa !5
  %9638 = call ptr @strerror(i32 noundef %9637) #11
  %9639 = call ptr @__errno_location() #12
  %9640 = load i32, ptr %9639, align 4, !tbaa !5
  %9641 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9628, ptr noundef @.str.5, i32 noundef %9629, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 439, ptr noundef %9632, ptr noundef %9635, ptr noundef %9638, i32 noundef %9640) #11
  br label %9642

9642:                                             ; preds = %9625, %9608
  call void @llvm.lifetime.end.p0(i64 4, ptr %266) #11
  br label %9643

9643:                                             ; preds = %9642
  br label %9644

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

9645:                                             ; No predecessors!
  br label %9646

9646:                                             ; preds = %9645
  br label %9647

9647:                                             ; preds = %9646, %9587
  br label %9648

9648:                                             ; preds = %9647
  br label %9649

9649:                                             ; preds = %9648
  br label %9650

9650:                                             ; preds = %9649
  br label %9651

9651:                                             ; preds = %9650
  br label %9652

9652:                                             ; preds = %9651
  %9653 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %9653, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %9654 = call ptr @__errno_location() #12
  store i32 0, ptr %9654, align 4, !tbaa !5
  br label %9655

9655:                                             ; preds = %9652
  br label %9656

9656:                                             ; preds = %9655
  br label %9657

9657:                                             ; preds = %9656
  br label %9658

9658:                                             ; preds = %9657
  br label %9659

9659:                                             ; preds = %9658
  %9660 = load i32, ptr @test_count, align 4, !tbaa !5
  %9661 = add nsw i32 %9660, 1
  store i32 %9661, ptr @test_count, align 4, !tbaa !5
  %9662 = load ptr, ptr %236, align 8, !tbaa !9
  %9663 = getelementptr inbounds %struct.s2n_connection, ptr %9662, i32 0, i32 41
  %9664 = call i32 @s2n_stuffer_wipe(ptr noundef %9663)
  %9665 = icmp eq i32 %9664, -1
  br i1 %9665, label %9666, label %9719

9666:                                             ; preds = %9659
  br label %9667

9667:                                             ; preds = %9666
  br label %9668

9668:                                             ; preds = %9667
  call void @llvm.lifetime.start.p0(i64 4, ptr %267) #11
  %9669 = call ptr @__errno_location() #12
  %9670 = load i32, ptr %9669, align 4, !tbaa !5
  store i32 %9670, ptr %267, align 4, !tbaa !5
  %9671 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9672 = call i32 @s2n_print_stacktrace(ptr noundef %9671)
  %9673 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9674 = trunc i8 %9673 to i1
  br i1 %9674, label %9675, label %9697

9675:                                             ; preds = %9668
  %9676 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9677 = call i32 @fileno(ptr noundef %9676) #11
  %9678 = call i32 @isatty(i32 noundef %9677) #11
  %9679 = icmp ne i32 %9678, 0
  br i1 %9679, label %9680, label %9697

9680:                                             ; preds = %9675
  %9681 = load i32, ptr %267, align 4, !tbaa !5
  %9682 = call ptr @__errno_location() #12
  store i32 %9681, ptr %9682, align 4, !tbaa !5
  %9683 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9684 = load i32, ptr @test_count, align 4, !tbaa !5
  %9685 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9686 = load i32, ptr %9685, align 4, !tbaa !5
  %9687 = call ptr @s2n_strerror(i32 noundef %9686, ptr noundef @.str.4)
  %9688 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9689 = load i32, ptr %9688, align 4, !tbaa !5
  %9690 = call ptr @s2n_strerror_debug(i32 noundef %9689, ptr noundef @.str.4)
  %9691 = call ptr @__errno_location() #12
  %9692 = load i32, ptr %9691, align 4, !tbaa !5
  %9693 = call ptr @strerror(i32 noundef %9692) #11
  %9694 = call ptr @__errno_location() #12
  %9695 = load i32, ptr %9694, align 4, !tbaa !5
  %9696 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9683, ptr noundef @.str.2, i32 noundef %9684, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 440, ptr noundef %9687, ptr noundef %9690, ptr noundef %9693, i32 noundef %9695) #11
  br label %9714

9697:                                             ; preds = %9675, %9668
  %9698 = load i32, ptr %267, align 4, !tbaa !5
  %9699 = call ptr @__errno_location() #12
  store i32 %9698, ptr %9699, align 4, !tbaa !5
  %9700 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9701 = load i32, ptr @test_count, align 4, !tbaa !5
  %9702 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9703 = load i32, ptr %9702, align 4, !tbaa !5
  %9704 = call ptr @s2n_strerror(i32 noundef %9703, ptr noundef @.str.4)
  %9705 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9706 = load i32, ptr %9705, align 4, !tbaa !5
  %9707 = call ptr @s2n_strerror_debug(i32 noundef %9706, ptr noundef @.str.4)
  %9708 = call ptr @__errno_location() #12
  %9709 = load i32, ptr %9708, align 4, !tbaa !5
  %9710 = call ptr @strerror(i32 noundef %9709) #11
  %9711 = call ptr @__errno_location() #12
  %9712 = load i32, ptr %9711, align 4, !tbaa !5
  %9713 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9700, ptr noundef @.str.5, i32 noundef %9701, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 440, ptr noundef %9704, ptr noundef %9707, ptr noundef %9710, i32 noundef %9712) #11
  br label %9714

9714:                                             ; preds = %9697, %9680
  call void @llvm.lifetime.end.p0(i64 4, ptr %267) #11
  br label %9715

9715:                                             ; preds = %9714
  br label %9716

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

9717:                                             ; No predecessors!
  br label %9718

9718:                                             ; preds = %9717
  br label %9719

9719:                                             ; preds = %9718, %9659
  br label %9720

9720:                                             ; preds = %9719
  br label %9721

9721:                                             ; preds = %9720
  br label %9722

9722:                                             ; preds = %9721
  %9723 = load i32, ptr @test_count, align 4, !tbaa !5
  %9724 = add nsw i32 %9723, 1
  store i32 %9724, ptr @test_count, align 4, !tbaa !5
  %9725 = load ptr, ptr %236, align 8, !tbaa !9
  %9726 = call i32 @s2n_record_write(ptr noundef %9725, i8 noundef zeroext 23, ptr noundef %256)
  %9727 = getelementptr inbounds %struct.s2n_result, ptr %268, i32 0, i32 0
  store i32 %9726, ptr %9727, align 4
  %9728 = getelementptr inbounds %struct.s2n_result, ptr %268, i32 0, i32 0
  %9729 = load i32, ptr %9728, align 4
  %9730 = call zeroext i1 @s2n_result_is_ok(i32 %9729)
  br i1 %9730, label %9784, label %9731

9731:                                             ; preds = %9722
  br label %9732

9732:                                             ; preds = %9731
  br label %9733

9733:                                             ; preds = %9732
  call void @llvm.lifetime.start.p0(i64 4, ptr %269) #11
  %9734 = call ptr @__errno_location() #12
  %9735 = load i32, ptr %9734, align 4, !tbaa !5
  store i32 %9735, ptr %269, align 4, !tbaa !5
  %9736 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9737 = call i32 @s2n_print_stacktrace(ptr noundef %9736)
  %9738 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9739 = trunc i8 %9738 to i1
  br i1 %9739, label %9740, label %9762

9740:                                             ; preds = %9733
  %9741 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9742 = call i32 @fileno(ptr noundef %9741) #11
  %9743 = call i32 @isatty(i32 noundef %9742) #11
  %9744 = icmp ne i32 %9743, 0
  br i1 %9744, label %9745, label %9762

9745:                                             ; preds = %9740
  %9746 = load i32, ptr %269, align 4, !tbaa !5
  %9747 = call ptr @__errno_location() #12
  store i32 %9746, ptr %9747, align 4, !tbaa !5
  %9748 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9749 = load i32, ptr @test_count, align 4, !tbaa !5
  %9750 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9751 = load i32, ptr %9750, align 4, !tbaa !5
  %9752 = call ptr @s2n_strerror(i32 noundef %9751, ptr noundef @.str.4)
  %9753 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9754 = load i32, ptr %9753, align 4, !tbaa !5
  %9755 = call ptr @s2n_strerror_debug(i32 noundef %9754, ptr noundef @.str.4)
  %9756 = call ptr @__errno_location() #12
  %9757 = load i32, ptr %9756, align 4, !tbaa !5
  %9758 = call ptr @strerror(i32 noundef %9757) #11
  %9759 = call ptr @__errno_location() #12
  %9760 = load i32, ptr %9759, align 4, !tbaa !5
  %9761 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9748, ptr noundef @.str.2, i32 noundef %9749, ptr noundef @.str.80, ptr noundef @.str.1, i32 noundef 441, ptr noundef %9752, ptr noundef %9755, ptr noundef %9758, i32 noundef %9760) #11
  br label %9779

9762:                                             ; preds = %9740, %9733
  %9763 = load i32, ptr %269, align 4, !tbaa !5
  %9764 = call ptr @__errno_location() #12
  store i32 %9763, ptr %9764, align 4, !tbaa !5
  %9765 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9766 = load i32, ptr @test_count, align 4, !tbaa !5
  %9767 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9768 = load i32, ptr %9767, align 4, !tbaa !5
  %9769 = call ptr @s2n_strerror(i32 noundef %9768, ptr noundef @.str.4)
  %9770 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9771 = load i32, ptr %9770, align 4, !tbaa !5
  %9772 = call ptr @s2n_strerror_debug(i32 noundef %9771, ptr noundef @.str.4)
  %9773 = call ptr @__errno_location() #12
  %9774 = load i32, ptr %9773, align 4, !tbaa !5
  %9775 = call ptr @strerror(i32 noundef %9774) #11
  %9776 = call ptr @__errno_location() #12
  %9777 = load i32, ptr %9776, align 4, !tbaa !5
  %9778 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9765, ptr noundef @.str.5, i32 noundef %9766, ptr noundef @.str.80, ptr noundef @.str.1, i32 noundef 441, ptr noundef %9769, ptr noundef %9772, ptr noundef %9775, i32 noundef %9777) #11
  br label %9779

9779:                                             ; preds = %9762, %9745
  call void @llvm.lifetime.end.p0(i64 4, ptr %269) #11
  br label %9780

9780:                                             ; preds = %9779
  br label %9781

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

9782:                                             ; No predecessors!
  br label %9783

9783:                                             ; preds = %9782
  br label %9784

9784:                                             ; preds = %9783, %9722
  br label %9785

9785:                                             ; preds = %9784
  br label %9786

9786:                                             ; preds = %9785
  br label %9787

9787:                                             ; preds = %9786
  %9788 = load i32, ptr @test_count, align 4, !tbaa !5
  %9789 = add nsw i32 %9788, 1
  store i32 %9789, ptr @test_count, align 4, !tbaa !5
  %9790 = load ptr, ptr %236, align 8, !tbaa !9
  %9791 = getelementptr inbounds %struct.s2n_connection, ptr %9790, i32 0, i32 41
  %9792 = call i32 @s2n_stuffer_wipe(ptr noundef %9791)
  %9793 = icmp eq i32 %9792, -1
  br i1 %9793, label %9794, label %9847

9794:                                             ; preds = %9787
  br label %9795

9795:                                             ; preds = %9794
  br label %9796

9796:                                             ; preds = %9795
  call void @llvm.lifetime.start.p0(i64 4, ptr %270) #11
  %9797 = call ptr @__errno_location() #12
  %9798 = load i32, ptr %9797, align 4, !tbaa !5
  store i32 %9798, ptr %270, align 4, !tbaa !5
  %9799 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9800 = call i32 @s2n_print_stacktrace(ptr noundef %9799)
  %9801 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9802 = trunc i8 %9801 to i1
  br i1 %9802, label %9803, label %9825

9803:                                             ; preds = %9796
  %9804 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9805 = call i32 @fileno(ptr noundef %9804) #11
  %9806 = call i32 @isatty(i32 noundef %9805) #11
  %9807 = icmp ne i32 %9806, 0
  br i1 %9807, label %9808, label %9825

9808:                                             ; preds = %9803
  %9809 = load i32, ptr %270, align 4, !tbaa !5
  %9810 = call ptr @__errno_location() #12
  store i32 %9809, ptr %9810, align 4, !tbaa !5
  %9811 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9812 = load i32, ptr @test_count, align 4, !tbaa !5
  %9813 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9814 = load i32, ptr %9813, align 4, !tbaa !5
  %9815 = call ptr @s2n_strerror(i32 noundef %9814, ptr noundef @.str.4)
  %9816 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9817 = load i32, ptr %9816, align 4, !tbaa !5
  %9818 = call ptr @s2n_strerror_debug(i32 noundef %9817, ptr noundef @.str.4)
  %9819 = call ptr @__errno_location() #12
  %9820 = load i32, ptr %9819, align 4, !tbaa !5
  %9821 = call ptr @strerror(i32 noundef %9820) #11
  %9822 = call ptr @__errno_location() #12
  %9823 = load i32, ptr %9822, align 4, !tbaa !5
  %9824 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9811, ptr noundef @.str.2, i32 noundef %9812, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 442, ptr noundef %9815, ptr noundef %9818, ptr noundef %9821, i32 noundef %9823) #11
  br label %9842

9825:                                             ; preds = %9803, %9796
  %9826 = load i32, ptr %270, align 4, !tbaa !5
  %9827 = call ptr @__errno_location() #12
  store i32 %9826, ptr %9827, align 4, !tbaa !5
  %9828 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9829 = load i32, ptr @test_count, align 4, !tbaa !5
  %9830 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9831 = load i32, ptr %9830, align 4, !tbaa !5
  %9832 = call ptr @s2n_strerror(i32 noundef %9831, ptr noundef @.str.4)
  %9833 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9834 = load i32, ptr %9833, align 4, !tbaa !5
  %9835 = call ptr @s2n_strerror_debug(i32 noundef %9834, ptr noundef @.str.4)
  %9836 = call ptr @__errno_location() #12
  %9837 = load i32, ptr %9836, align 4, !tbaa !5
  %9838 = call ptr @strerror(i32 noundef %9837) #11
  %9839 = call ptr @__errno_location() #12
  %9840 = load i32, ptr %9839, align 4, !tbaa !5
  %9841 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9828, ptr noundef @.str.5, i32 noundef %9829, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 442, ptr noundef %9832, ptr noundef %9835, ptr noundef %9838, i32 noundef %9840) #11
  br label %9842

9842:                                             ; preds = %9825, %9808
  call void @llvm.lifetime.end.p0(i64 4, ptr %270) #11
  br label %9843

9843:                                             ; preds = %9842
  br label %9844

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

9845:                                             ; No predecessors!
  br label %9846

9846:                                             ; preds = %9845
  br label %9847

9847:                                             ; preds = %9846, %9787
  br label %9848

9848:                                             ; preds = %9847
  br label %9849

9849:                                             ; preds = %9848
  call void @llvm.lifetime.start.p0(i64 8, ptr %271) #11
  store i64 100000, ptr %271, align 8, !tbaa !69
  call void @llvm.lifetime.start.p0(i64 100000, ptr %272) #11
  call void @llvm.memset.p0.i64(ptr align 16 %272, i8 0, i64 100000, i1 false)
  br label %9850

9850:                                             ; preds = %9849
  %9851 = load i64, ptr %271, align 8, !tbaa !69
  %9852 = icmp ule i64 %9851, 100000
  br i1 %9852, label %9886, label %9853

9853:                                             ; preds = %9850
  br label %9854

9854:                                             ; preds = %9853
  br label %9855

9855:                                             ; preds = %9854
  %9856 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %9857 = getelementptr inbounds %struct.s2n_debug_info, ptr %9856, i32 0, i32 0
  store ptr @.str.81, ptr %9857, align 8, !tbaa !73
  %9858 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %9859 = getelementptr inbounds %struct.s2n_debug_info, ptr %9858, i32 0, i32 0
  %9860 = load ptr, ptr %9859, align 8, !tbaa !73
  %9861 = getelementptr inbounds i8, ptr %9860, i64 21
  %9862 = call ptr @strrchr(ptr noundef %9861, i32 noundef 47) #14
  %9863 = icmp ne ptr %9862, null
  br i1 %9863, label %9864, label %9871

9864:                                             ; preds = %9855
  %9865 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %9866 = getelementptr inbounds %struct.s2n_debug_info, ptr %9865, i32 0, i32 0
  %9867 = load ptr, ptr %9866, align 8, !tbaa !73
  %9868 = getelementptr inbounds i8, ptr %9867, i64 21
  %9869 = call ptr @strrchr(ptr noundef %9868, i32 noundef 47) #14
  %9870 = getelementptr inbounds i8, ptr %9869, i64 1
  br label %9876

9871:                                             ; preds = %9855
  %9872 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %9873 = getelementptr inbounds %struct.s2n_debug_info, ptr %9872, i32 0, i32 0
  %9874 = load ptr, ptr %9873, align 8, !tbaa !73
  %9875 = getelementptr inbounds i8, ptr %9874, i64 21
  br label %9876

9876:                                             ; preds = %9871, %9864
  %9877 = phi ptr [ %9870, %9864 ], [ %9875, %9871 ]
  %9878 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %9879 = getelementptr inbounds %struct.s2n_debug_info, ptr %9878, i32 0, i32 1
  store ptr %9877, ptr %9879, align 8, !tbaa !75
  %9880 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 402653194, ptr %9880, align 4, !tbaa !5
  %9881 = call i32 @s2n_calculate_stacktrace()
  br label %9882

9882:                                             ; preds = %9876
  br label %9883

9883:                                             ; preds = %9882
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %245, align 4
  br label %10932

9884:                                             ; No predecessors!
  br label %9885

9885:                                             ; preds = %9884
  br label %9886

9886:                                             ; preds = %9885, %9850
  br label %9887

9887:                                             ; preds = %9886
  br label %9888

9888:                                             ; preds = %9887
  call void @llvm.lifetime.start.p0(i64 24, ptr %273) #11
  call void @llvm.memset.p0.i64(ptr align 8 %273, i8 0, i64 24, i1 false)
  br label %9889

9889:                                             ; preds = %9888
  %9890 = getelementptr inbounds [100000 x i8], ptr %272, i64 0, i64 0
  %9891 = load i64, ptr %271, align 8, !tbaa !69
  %9892 = trunc i64 %9891 to i32
  %9893 = call i32 @s2n_blob_init(ptr noundef %273, ptr noundef %9890, i32 noundef %9892)
  %9894 = icmp sgt i32 %9893, -1
  br i1 %9894, label %9896, label %9895

9895:                                             ; preds = %9889
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %245, align 4
  br label %10931

9896:                                             ; preds = %9889
  br label %9897

9897:                                             ; preds = %9896
  br label %9898

9898:                                             ; preds = %9897
  call void @llvm.lifetime.start.p0(i64 16, ptr %274) #11
  call void @llvm.memset.p0.i64(ptr align 8 %274, i8 0, i64 16, i1 false)
  %9899 = getelementptr inbounds %struct.s2n_blob, ptr %273, i32 0, i32 0
  %9900 = load ptr, ptr %9899, align 8, !tbaa !70
  %9901 = getelementptr inbounds %struct.iovec, ptr %274, i32 0, i32 0
  store ptr %9900, ptr %9901, align 8, !tbaa !76
  %9902 = getelementptr inbounds %struct.s2n_blob, ptr %273, i32 0, i32 1
  %9903 = load i32, ptr %9902, align 8, !tbaa !60
  %9904 = zext i32 %9903 to i64
  %9905 = getelementptr inbounds %struct.iovec, ptr %274, i32 0, i32 1
  store i64 %9904, ptr %9905, align 8, !tbaa !78
  br label %9906

9906:                                             ; preds = %9898
  %9907 = load i32, ptr @test_count, align 4, !tbaa !5
  %9908 = add nsw i32 %9907, 1
  store i32 %9908, ptr @test_count, align 4, !tbaa !5
  %9909 = load ptr, ptr %236, align 8, !tbaa !9
  %9910 = getelementptr inbounds %struct.s2n_blob, ptr %273, i32 0, i32 1
  %9911 = load i32, ptr %9910, align 8, !tbaa !60
  %9912 = zext i32 %9911 to i64
  %9913 = call i32 @s2n_record_writev(ptr noundef %9909, i8 noundef zeroext 23, ptr noundef %274, i32 noundef 1, i64 noundef 0, i64 noundef %9912)
  store i32 %9913, ptr %258, align 4, !tbaa !5
  %9914 = icmp eq i32 %9913, -1
  br i1 %9914, label %9915, label %9968

9915:                                             ; preds = %9906
  br label %9916

9916:                                             ; preds = %9915
  br label %9917

9917:                                             ; preds = %9916
  call void @llvm.lifetime.start.p0(i64 4, ptr %275) #11
  %9918 = call ptr @__errno_location() #12
  %9919 = load i32, ptr %9918, align 4, !tbaa !5
  store i32 %9919, ptr %275, align 4, !tbaa !5
  %9920 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9921 = call i32 @s2n_print_stacktrace(ptr noundef %9920)
  %9922 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9923 = trunc i8 %9922 to i1
  br i1 %9923, label %9924, label %9946

9924:                                             ; preds = %9917
  %9925 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9926 = call i32 @fileno(ptr noundef %9925) #11
  %9927 = call i32 @isatty(i32 noundef %9926) #11
  %9928 = icmp ne i32 %9927, 0
  br i1 %9928, label %9929, label %9946

9929:                                             ; preds = %9924
  %9930 = load i32, ptr %275, 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.2, i32 noundef %9933, ptr noundef @.str.82, ptr noundef @.str.1, i32 noundef 453, ptr noundef %9936, ptr noundef %9939, ptr noundef %9942, i32 noundef %9944) #11
  br label %9963

9946:                                             ; preds = %9924, %9917
  %9947 = load i32, ptr %275, align 4, !tbaa !5
  %9948 = call ptr @__errno_location() #12
  store i32 %9947, ptr %9948, align 4, !tbaa !5
  %9949 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9950 = load i32, ptr @test_count, align 4, !tbaa !5
  %9951 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9952 = load i32, ptr %9951, align 4, !tbaa !5
  %9953 = call ptr @s2n_strerror(i32 noundef %9952, ptr noundef @.str.4)
  %9954 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9955 = load i32, ptr %9954, align 4, !tbaa !5
  %9956 = call ptr @s2n_strerror_debug(i32 noundef %9955, ptr noundef @.str.4)
  %9957 = call ptr @__errno_location() #12
  %9958 = load i32, ptr %9957, align 4, !tbaa !5
  %9959 = call ptr @strerror(i32 noundef %9958) #11
  %9960 = call ptr @__errno_location() #12
  %9961 = load i32, ptr %9960, align 4, !tbaa !5
  %9962 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9949, ptr noundef @.str.5, i32 noundef %9950, ptr noundef @.str.82, ptr noundef @.str.1, i32 noundef 453, ptr noundef %9953, ptr noundef %9956, ptr noundef %9959, i32 noundef %9961) #11
  br label %9963

9963:                                             ; preds = %9946, %9929
  call void @llvm.lifetime.end.p0(i64 4, ptr %275) #11
  br label %9964

9964:                                             ; preds = %9963
  br label %9965

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

9966:                                             ; No predecessors!
  br label %9967

9967:                                             ; preds = %9966
  br label %9968

9968:                                             ; preds = %9967, %9906
  br label %9969

9969:                                             ; preds = %9968
  br label %9970

9970:                                             ; preds = %9969
  call void @llvm.lifetime.start.p0(i64 2, ptr %276) #11
  store i16 16384, ptr %276, align 2, !tbaa !62
  br label %9971

9971:                                             ; preds = %9970
  %9972 = load i32, ptr @test_count, align 4, !tbaa !5
  %9973 = add nsw i32 %9972, 1
  store i32 %9973, ptr @test_count, align 4, !tbaa !5
  %9974 = load i32, ptr %258, align 4, !tbaa !5
  %9975 = icmp eq i32 %9974, 16384
  br i1 %9975, label %10029, label %9976

9976:                                             ; preds = %9971
  br label %9977

9977:                                             ; preds = %9976
  br label %9978

9978:                                             ; preds = %9977
  call void @llvm.lifetime.start.p0(i64 4, ptr %277) #11
  %9979 = call ptr @__errno_location() #12
  %9980 = load i32, ptr %9979, align 4, !tbaa !5
  store i32 %9980, ptr %277, align 4, !tbaa !5
  %9981 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9982 = call i32 @s2n_print_stacktrace(ptr noundef %9981)
  %9983 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9984 = trunc i8 %9983 to i1
  br i1 %9984, label %9985, label %10007

9985:                                             ; preds = %9978
  %9986 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9987 = call i32 @fileno(ptr noundef %9986) #11
  %9988 = call i32 @isatty(i32 noundef %9987) #11
  %9989 = icmp ne i32 %9988, 0
  br i1 %9989, label %9990, label %10007

9990:                                             ; preds = %9985
  %9991 = load i32, ptr %277, align 4, !tbaa !5
  %9992 = call ptr @__errno_location() #12
  store i32 %9991, ptr %9992, align 4, !tbaa !5
  %9993 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9994 = load i32, ptr @test_count, align 4, !tbaa !5
  %9995 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9996 = load i32, ptr %9995, align 4, !tbaa !5
  %9997 = call ptr @s2n_strerror(i32 noundef %9996, ptr noundef @.str.4)
  %9998 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9999 = load i32, ptr %9998, align 4, !tbaa !5
  %10000 = call ptr @s2n_strerror_debug(i32 noundef %9999, ptr noundef @.str.4)
  %10001 = call ptr @__errno_location() #12
  %10002 = load i32, ptr %10001, align 4, !tbaa !5
  %10003 = call ptr @strerror(i32 noundef %10002) #11
  %10004 = call ptr @__errno_location() #12
  %10005 = load i32, ptr %10004, align 4, !tbaa !5
  %10006 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9993, ptr noundef @.str.2, i32 noundef %9994, ptr noundef @.str.83, ptr noundef @.str.1, i32 noundef 457, ptr noundef %9997, ptr noundef %10000, ptr noundef %10003, i32 noundef %10005) #11
  br label %10024

10007:                                            ; preds = %9985, %9978
  %10008 = load i32, ptr %277, align 4, !tbaa !5
  %10009 = call ptr @__errno_location() #12
  store i32 %10008, ptr %10009, align 4, !tbaa !5
  %10010 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10011 = load i32, ptr @test_count, align 4, !tbaa !5
  %10012 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10013 = load i32, ptr %10012, align 4, !tbaa !5
  %10014 = call ptr @s2n_strerror(i32 noundef %10013, ptr noundef @.str.4)
  %10015 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10016 = load i32, ptr %10015, align 4, !tbaa !5
  %10017 = call ptr @s2n_strerror_debug(i32 noundef %10016, ptr noundef @.str.4)
  %10018 = call ptr @__errno_location() #12
  %10019 = load i32, ptr %10018, align 4, !tbaa !5
  %10020 = call ptr @strerror(i32 noundef %10019) #11
  %10021 = call ptr @__errno_location() #12
  %10022 = load i32, ptr %10021, align 4, !tbaa !5
  %10023 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10010, ptr noundef @.str.5, i32 noundef %10011, ptr noundef @.str.83, ptr noundef @.str.1, i32 noundef 457, ptr noundef %10014, ptr noundef %10017, ptr noundef %10020, i32 noundef %10022) #11
  br label %10024

10024:                                            ; preds = %10007, %9990
  call void @llvm.lifetime.end.p0(i64 4, ptr %277) #11
  br label %10025

10025:                                            ; preds = %10024
  br label %10026

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

10027:                                            ; No predecessors!
  br label %10028

10028:                                            ; preds = %10027
  br label %10029

10029:                                            ; preds = %10028, %9971
  br label %10030

10030:                                            ; preds = %10029
  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 ptr, ptr %236, align 8, !tbaa !9
  %10036 = getelementptr inbounds %struct.s2n_connection, ptr %10035, i32 0, i32 41
  %10037 = getelementptr inbounds %struct.s2n_stuffer, ptr %10036, i32 0, i32 2
  %10038 = load i32, ptr %10037, align 4, !tbaa !65
  %10039 = load ptr, ptr %236, align 8, !tbaa !9
  %10040 = getelementptr inbounds %struct.s2n_connection, ptr %10039, i32 0, i32 41
  %10041 = getelementptr inbounds %struct.s2n_stuffer, ptr %10040, i32 0, i32 1
  %10042 = load i32, ptr %10041, align 8, !tbaa !66
  %10043 = sub i32 %10038, %10042
  %10044 = icmp eq i32 %10043, 16406
  br i1 %10044, label %10098, label %10045

10045:                                            ; preds = %10032
  br label %10046

10046:                                            ; preds = %10045
  br label %10047

10047:                                            ; preds = %10046
  call void @llvm.lifetime.start.p0(i64 4, ptr %278) #11
  %10048 = call ptr @__errno_location() #12
  %10049 = load i32, ptr %10048, align 4, !tbaa !5
  store i32 %10049, ptr %278, align 4, !tbaa !5
  %10050 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10051 = call i32 @s2n_print_stacktrace(ptr noundef %10050)
  %10052 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10053 = trunc i8 %10052 to i1
  br i1 %10053, label %10054, label %10076

10054:                                            ; preds = %10047
  %10055 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10056 = call i32 @fileno(ptr noundef %10055) #11
  %10057 = call i32 @isatty(i32 noundef %10056) #11
  %10058 = icmp ne i32 %10057, 0
  br i1 %10058, label %10059, label %10076

10059:                                            ; preds = %10054
  %10060 = load i32, ptr %278, align 4, !tbaa !5
  %10061 = call ptr @__errno_location() #12
  store i32 %10060, ptr %10061, align 4, !tbaa !5
  %10062 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10063 = load i32, ptr @test_count, align 4, !tbaa !5
  %10064 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10065 = load i32, ptr %10064, align 4, !tbaa !5
  %10066 = call ptr @s2n_strerror(i32 noundef %10065, ptr noundef @.str.4)
  %10067 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10068 = load i32, ptr %10067, align 4, !tbaa !5
  %10069 = call ptr @s2n_strerror_debug(i32 noundef %10068, ptr noundef @.str.4)
  %10070 = call ptr @__errno_location() #12
  %10071 = load i32, ptr %10070, align 4, !tbaa !5
  %10072 = call ptr @strerror(i32 noundef %10071) #11
  %10073 = call ptr @__errno_location() #12
  %10074 = load i32, ptr %10073, align 4, !tbaa !5
  %10075 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10062, ptr noundef @.str.2, i32 noundef %10063, ptr noundef @.str.84, ptr noundef @.str.1, i32 noundef 458, ptr noundef %10066, ptr noundef %10069, ptr noundef %10072, i32 noundef %10074) #11
  br label %10093

10076:                                            ; preds = %10054, %10047
  %10077 = load i32, ptr %278, align 4, !tbaa !5
  %10078 = call ptr @__errno_location() #12
  store i32 %10077, ptr %10078, align 4, !tbaa !5
  %10079 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10080 = load i32, ptr @test_count, align 4, !tbaa !5
  %10081 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10082 = load i32, ptr %10081, align 4, !tbaa !5
  %10083 = call ptr @s2n_strerror(i32 noundef %10082, ptr noundef @.str.4)
  %10084 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10085 = load i32, ptr %10084, align 4, !tbaa !5
  %10086 = call ptr @s2n_strerror_debug(i32 noundef %10085, ptr noundef @.str.4)
  %10087 = call ptr @__errno_location() #12
  %10088 = load i32, ptr %10087, align 4, !tbaa !5
  %10089 = call ptr @strerror(i32 noundef %10088) #11
  %10090 = call ptr @__errno_location() #12
  %10091 = load i32, ptr %10090, align 4, !tbaa !5
  %10092 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10079, ptr noundef @.str.5, i32 noundef %10080, ptr noundef @.str.84, ptr noundef @.str.1, i32 noundef 458, ptr noundef %10083, ptr noundef %10086, ptr noundef %10089, i32 noundef %10091) #11
  br label %10093

10093:                                            ; preds = %10076, %10059
  call void @llvm.lifetime.end.p0(i64 4, ptr %278) #11
  br label %10094

10094:                                            ; preds = %10093
  br label %10095

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

10096:                                            ; No predecessors!
  br label %10097

10097:                                            ; preds = %10096
  br label %10098

10098:                                            ; preds = %10097, %10032
  br label %10099

10099:                                            ; preds = %10098
  br label %10100

10100:                                            ; preds = %10099
  br label %10101

10101:                                            ; preds = %10100
  %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 i32, ptr %258, align 4, !tbaa !5
  %10105 = icmp sle i32 %10104, 16384
  br i1 %10105, label %10159, label %10106

10106:                                            ; preds = %10101
  br label %10107

10107:                                            ; preds = %10106
  br label %10108

10108:                                            ; preds = %10107
  call void @llvm.lifetime.start.p0(i64 4, ptr %279) #11
  %10109 = call ptr @__errno_location() #12
  %10110 = load i32, ptr %10109, align 4, !tbaa !5
  store i32 %10110, ptr %279, 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 %279, 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.85, ptr noundef @.str.1, i32 noundef 461, ptr noundef %10127, ptr noundef %10130, ptr noundef %10133, i32 noundef %10135) #11
  br label %10154

10137:                                            ; preds = %10115, %10108
  %10138 = load i32, ptr %279, 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.85, ptr noundef @.str.1, i32 noundef 461, 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 %279) #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
  br label %10162

10162:                                            ; preds = %10161
  %10163 = load i32, ptr @test_count, align 4, !tbaa !5
  %10164 = add nsw i32 %10163, 1
  store i32 %10164, ptr @test_count, align 4, !tbaa !5
  %10165 = load i32, ptr %258, align 4, !tbaa !5
  %10166 = icmp sle i32 %10165, 16639
  br i1 %10166, label %10220, label %10167

10167:                                            ; preds = %10162
  br label %10168

10168:                                            ; preds = %10167
  br label %10169

10169:                                            ; preds = %10168
  call void @llvm.lifetime.start.p0(i64 4, ptr %280) #11
  %10170 = call ptr @__errno_location() #12
  %10171 = load i32, ptr %10170, align 4, !tbaa !5
  store i32 %10171, ptr %280, align 4, !tbaa !5
  %10172 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10173 = call i32 @s2n_print_stacktrace(ptr noundef %10172)
  %10174 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10175 = trunc i8 %10174 to i1
  br i1 %10175, label %10176, label %10198

10176:                                            ; preds = %10169
  %10177 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10178 = call i32 @fileno(ptr noundef %10177) #11
  %10179 = call i32 @isatty(i32 noundef %10178) #11
  %10180 = icmp ne i32 %10179, 0
  br i1 %10180, label %10181, label %10198

10181:                                            ; preds = %10176
  %10182 = load i32, ptr %280, align 4, !tbaa !5
  %10183 = call ptr @__errno_location() #12
  store i32 %10182, ptr %10183, align 4, !tbaa !5
  %10184 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10185 = load i32, ptr @test_count, align 4, !tbaa !5
  %10186 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10187 = load i32, ptr %10186, align 4, !tbaa !5
  %10188 = call ptr @s2n_strerror(i32 noundef %10187, ptr noundef @.str.4)
  %10189 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10190 = load i32, ptr %10189, align 4, !tbaa !5
  %10191 = call ptr @s2n_strerror_debug(i32 noundef %10190, ptr noundef @.str.4)
  %10192 = call ptr @__errno_location() #12
  %10193 = load i32, ptr %10192, align 4, !tbaa !5
  %10194 = call ptr @strerror(i32 noundef %10193) #11
  %10195 = call ptr @__errno_location() #12
  %10196 = load i32, ptr %10195, align 4, !tbaa !5
  %10197 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10184, ptr noundef @.str.2, i32 noundef %10185, ptr noundef @.str.86, ptr noundef @.str.1, i32 noundef 462, ptr noundef %10188, ptr noundef %10191, ptr noundef %10194, i32 noundef %10196) #11
  br label %10215

10198:                                            ; preds = %10176, %10169
  %10199 = load i32, ptr %280, align 4, !tbaa !5
  %10200 = call ptr @__errno_location() #12
  store i32 %10199, ptr %10200, align 4, !tbaa !5
  %10201 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10202 = load i32, ptr @test_count, align 4, !tbaa !5
  %10203 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10204 = load i32, ptr %10203, align 4, !tbaa !5
  %10205 = call ptr @s2n_strerror(i32 noundef %10204, ptr noundef @.str.4)
  %10206 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10207 = load i32, ptr %10206, align 4, !tbaa !5
  %10208 = call ptr @s2n_strerror_debug(i32 noundef %10207, ptr noundef @.str.4)
  %10209 = call ptr @__errno_location() #12
  %10210 = load i32, ptr %10209, align 4, !tbaa !5
  %10211 = call ptr @strerror(i32 noundef %10210) #11
  %10212 = call ptr @__errno_location() #12
  %10213 = load i32, ptr %10212, align 4, !tbaa !5
  %10214 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10201, ptr noundef @.str.5, i32 noundef %10202, ptr noundef @.str.86, ptr noundef @.str.1, i32 noundef 462, ptr noundef %10205, ptr noundef %10208, ptr noundef %10211, i32 noundef %10213) #11
  br label %10215

10215:                                            ; preds = %10198, %10181
  call void @llvm.lifetime.end.p0(i64 4, ptr %280) #11
  br label %10216

10216:                                            ; preds = %10215
  br label %10217

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

10218:                                            ; No predecessors!
  br label %10219

10219:                                            ; preds = %10218
  br label %10220

10220:                                            ; preds = %10219, %10162
  br label %10221

10221:                                            ; preds = %10220
  br label %10222

10222:                                            ; preds = %10221
  br label %10223

10223:                                            ; preds = %10222
  %10224 = load i32, ptr @test_count, align 4, !tbaa !5
  %10225 = add nsw i32 %10224, 1
  store i32 %10225, ptr @test_count, align 4, !tbaa !5
  %10226 = load ptr, ptr %236, align 8, !tbaa !9
  %10227 = getelementptr inbounds %struct.s2n_connection, ptr %10226, i32 0, i32 41
  %10228 = getelementptr inbounds %struct.s2n_stuffer, ptr %10227, i32 0, i32 2
  %10229 = load i32, ptr %10228, align 4, !tbaa !65
  %10230 = load ptr, ptr %236, align 8, !tbaa !9
  %10231 = getelementptr inbounds %struct.s2n_connection, ptr %10230, i32 0, i32 41
  %10232 = getelementptr inbounds %struct.s2n_stuffer, ptr %10231, i32 0, i32 1
  %10233 = load i32, ptr %10232, align 8, !tbaa !66
  %10234 = sub i32 %10229, %10233
  %10235 = icmp ule i32 %10234, 17413
  br i1 %10235, label %10289, label %10236

10236:                                            ; preds = %10223
  br label %10237

10237:                                            ; preds = %10236
  br label %10238

10238:                                            ; preds = %10237
  call void @llvm.lifetime.start.p0(i64 4, ptr %281) #11
  %10239 = call ptr @__errno_location() #12
  %10240 = load i32, ptr %10239, align 4, !tbaa !5
  store i32 %10240, ptr %281, align 4, !tbaa !5
  %10241 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10242 = call i32 @s2n_print_stacktrace(ptr noundef %10241)
  %10243 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10244 = trunc i8 %10243 to i1
  br i1 %10244, label %10245, label %10267

10245:                                            ; preds = %10238
  %10246 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10247 = call i32 @fileno(ptr noundef %10246) #11
  %10248 = call i32 @isatty(i32 noundef %10247) #11
  %10249 = icmp ne i32 %10248, 0
  br i1 %10249, label %10250, label %10267

10250:                                            ; preds = %10245
  %10251 = load i32, ptr %281, align 4, !tbaa !5
  %10252 = call ptr @__errno_location() #12
  store i32 %10251, ptr %10252, align 4, !tbaa !5
  %10253 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10254 = load i32, ptr @test_count, align 4, !tbaa !5
  %10255 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10256 = load i32, ptr %10255, align 4, !tbaa !5
  %10257 = call ptr @s2n_strerror(i32 noundef %10256, ptr noundef @.str.4)
  %10258 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10259 = load i32, ptr %10258, align 4, !tbaa !5
  %10260 = call ptr @s2n_strerror_debug(i32 noundef %10259, ptr noundef @.str.4)
  %10261 = call ptr @__errno_location() #12
  %10262 = load i32, ptr %10261, align 4, !tbaa !5
  %10263 = call ptr @strerror(i32 noundef %10262) #11
  %10264 = call ptr @__errno_location() #12
  %10265 = load i32, ptr %10264, align 4, !tbaa !5
  %10266 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10253, ptr noundef @.str.2, i32 noundef %10254, ptr noundef @.str.87, ptr noundef @.str.1, i32 noundef 463, ptr noundef %10257, ptr noundef %10260, ptr noundef %10263, i32 noundef %10265) #11
  br label %10284

10267:                                            ; preds = %10245, %10238
  %10268 = load i32, ptr %281, align 4, !tbaa !5
  %10269 = call ptr @__errno_location() #12
  store i32 %10268, ptr %10269, align 4, !tbaa !5
  %10270 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10271 = load i32, ptr @test_count, align 4, !tbaa !5
  %10272 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10273 = load i32, ptr %10272, align 4, !tbaa !5
  %10274 = call ptr @s2n_strerror(i32 noundef %10273, ptr noundef @.str.4)
  %10275 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10276 = load i32, ptr %10275, align 4, !tbaa !5
  %10277 = call ptr @s2n_strerror_debug(i32 noundef %10276, ptr noundef @.str.4)
  %10278 = call ptr @__errno_location() #12
  %10279 = load i32, ptr %10278, align 4, !tbaa !5
  %10280 = call ptr @strerror(i32 noundef %10279) #11
  %10281 = call ptr @__errno_location() #12
  %10282 = load i32, ptr %10281, align 4, !tbaa !5
  %10283 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10270, ptr noundef @.str.5, i32 noundef %10271, ptr noundef @.str.87, ptr noundef @.str.1, i32 noundef 463, ptr noundef %10274, ptr noundef %10277, ptr noundef %10280, i32 noundef %10282) #11
  br label %10284

10284:                                            ; preds = %10267, %10250
  call void @llvm.lifetime.end.p0(i64 4, ptr %281) #11
  br label %10285

10285:                                            ; preds = %10284
  br label %10286

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

10287:                                            ; No predecessors!
  br label %10288

10288:                                            ; preds = %10287
  br label %10289

10289:                                            ; preds = %10288, %10223
  br label %10290

10290:                                            ; preds = %10289
  br label %10291

10291:                                            ; preds = %10290
  br label %10292

10292:                                            ; preds = %10291
  %10293 = load i32, ptr @test_count, align 4, !tbaa !5
  %10294 = add nsw i32 %10293, 1
  store i32 %10294, ptr @test_count, align 4, !tbaa !5
  %10295 = load ptr, ptr %236, align 8, !tbaa !9
  %10296 = getelementptr inbounds %struct.s2n_connection, ptr %10295, i32 0, i32 41
  %10297 = getelementptr inbounds %struct.s2n_stuffer, ptr %10296, i32 0, i32 2
  %10298 = load i32, ptr %10297, align 4, !tbaa !65
  %10299 = load ptr, ptr %236, align 8, !tbaa !9
  %10300 = getelementptr inbounds %struct.s2n_connection, ptr %10299, i32 0, i32 41
  %10301 = getelementptr inbounds %struct.s2n_stuffer, ptr %10300, i32 0, i32 1
  %10302 = load i32, ptr %10301, align 8, !tbaa !66
  %10303 = sub i32 %10298, %10302
  %10304 = icmp ule i32 %10303, 16645
  br i1 %10304, label %10358, label %10305

10305:                                            ; preds = %10292
  br label %10306

10306:                                            ; preds = %10305
  br label %10307

10307:                                            ; preds = %10306
  call void @llvm.lifetime.start.p0(i64 4, ptr %282) #11
  %10308 = call ptr @__errno_location() #12
  %10309 = load i32, ptr %10308, align 4, !tbaa !5
  store i32 %10309, ptr %282, align 4, !tbaa !5
  %10310 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10311 = call i32 @s2n_print_stacktrace(ptr noundef %10310)
  %10312 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10313 = trunc i8 %10312 to i1
  br i1 %10313, label %10314, label %10336

10314:                                            ; preds = %10307
  %10315 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10316 = call i32 @fileno(ptr noundef %10315) #11
  %10317 = call i32 @isatty(i32 noundef %10316) #11
  %10318 = icmp ne i32 %10317, 0
  br i1 %10318, label %10319, label %10336

10319:                                            ; preds = %10314
  %10320 = load i32, ptr %282, align 4, !tbaa !5
  %10321 = call ptr @__errno_location() #12
  store i32 %10320, ptr %10321, align 4, !tbaa !5
  %10322 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10323 = load i32, ptr @test_count, align 4, !tbaa !5
  %10324 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10325 = load i32, ptr %10324, align 4, !tbaa !5
  %10326 = call ptr @s2n_strerror(i32 noundef %10325, ptr noundef @.str.4)
  %10327 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10328 = load i32, ptr %10327, align 4, !tbaa !5
  %10329 = call ptr @s2n_strerror_debug(i32 noundef %10328, ptr noundef @.str.4)
  %10330 = call ptr @__errno_location() #12
  %10331 = load i32, ptr %10330, align 4, !tbaa !5
  %10332 = call ptr @strerror(i32 noundef %10331) #11
  %10333 = call ptr @__errno_location() #12
  %10334 = load i32, ptr %10333, align 4, !tbaa !5
  %10335 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10322, ptr noundef @.str.2, i32 noundef %10323, ptr noundef @.str.88, ptr noundef @.str.1, i32 noundef 464, ptr noundef %10326, ptr noundef %10329, ptr noundef %10332, i32 noundef %10334) #11
  br label %10353

10336:                                            ; preds = %10314, %10307
  %10337 = load i32, ptr %282, align 4, !tbaa !5
  %10338 = call ptr @__errno_location() #12
  store i32 %10337, ptr %10338, align 4, !tbaa !5
  %10339 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10340 = load i32, ptr @test_count, align 4, !tbaa !5
  %10341 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10342 = load i32, ptr %10341, align 4, !tbaa !5
  %10343 = call ptr @s2n_strerror(i32 noundef %10342, ptr noundef @.str.4)
  %10344 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10345 = load i32, ptr %10344, align 4, !tbaa !5
  %10346 = call ptr @s2n_strerror_debug(i32 noundef %10345, ptr noundef @.str.4)
  %10347 = call ptr @__errno_location() #12
  %10348 = load i32, ptr %10347, align 4, !tbaa !5
  %10349 = call ptr @strerror(i32 noundef %10348) #11
  %10350 = call ptr @__errno_location() #12
  %10351 = load i32, ptr %10350, align 4, !tbaa !5
  %10352 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10339, ptr noundef @.str.5, i32 noundef %10340, ptr noundef @.str.88, ptr noundef @.str.1, i32 noundef 464, ptr noundef %10343, ptr noundef %10346, ptr noundef %10349, i32 noundef %10351) #11
  br label %10353

10353:                                            ; preds = %10336, %10319
  call void @llvm.lifetime.end.p0(i64 4, ptr %282) #11
  br label %10354

10354:                                            ; preds = %10353
  br label %10355

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

10356:                                            ; No predecessors!
  br label %10357

10357:                                            ; preds = %10356
  br label %10358

10358:                                            ; preds = %10357, %10292
  br label %10359

10359:                                            ; preds = %10358
  br label %10360

10360:                                            ; preds = %10359
  br label %10361

10361:                                            ; preds = %10360
  %10362 = load i32, ptr @test_count, align 4, !tbaa !5
  %10363 = add nsw i32 %10362, 1
  store i32 %10363, ptr @test_count, align 4, !tbaa !5
  %10364 = load ptr, ptr %236, align 8, !tbaa !9
  %10365 = getelementptr inbounds %struct.s2n_connection, ptr %10364, i32 0, i32 41
  %10366 = call i32 @s2n_stuffer_wipe(ptr noundef %10365)
  %10367 = icmp eq i32 %10366, -1
  br i1 %10367, label %10368, label %10421

10368:                                            ; preds = %10361
  br label %10369

10369:                                            ; preds = %10368
  br label %10370

10370:                                            ; preds = %10369
  call void @llvm.lifetime.start.p0(i64 4, ptr %283) #11
  %10371 = call ptr @__errno_location() #12
  %10372 = load i32, ptr %10371, align 4, !tbaa !5
  store i32 %10372, ptr %283, align 4, !tbaa !5
  %10373 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10374 = call i32 @s2n_print_stacktrace(ptr noundef %10373)
  %10375 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10376 = trunc i8 %10375 to i1
  br i1 %10376, label %10377, label %10399

10377:                                            ; preds = %10370
  %10378 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10379 = call i32 @fileno(ptr noundef %10378) #11
  %10380 = call i32 @isatty(i32 noundef %10379) #11
  %10381 = icmp ne i32 %10380, 0
  br i1 %10381, label %10382, label %10399

10382:                                            ; preds = %10377
  %10383 = load i32, ptr %283, align 4, !tbaa !5
  %10384 = call ptr @__errno_location() #12
  store i32 %10383, ptr %10384, align 4, !tbaa !5
  %10385 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10386 = load i32, ptr @test_count, align 4, !tbaa !5
  %10387 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10388 = load i32, ptr %10387, align 4, !tbaa !5
  %10389 = call ptr @s2n_strerror(i32 noundef %10388, ptr noundef @.str.4)
  %10390 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10391 = load i32, ptr %10390, align 4, !tbaa !5
  %10392 = call ptr @s2n_strerror_debug(i32 noundef %10391, ptr noundef @.str.4)
  %10393 = call ptr @__errno_location() #12
  %10394 = load i32, ptr %10393, align 4, !tbaa !5
  %10395 = call ptr @strerror(i32 noundef %10394) #11
  %10396 = call ptr @__errno_location() #12
  %10397 = load i32, ptr %10396, align 4, !tbaa !5
  %10398 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10385, ptr noundef @.str.2, i32 noundef %10386, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 466, ptr noundef %10389, ptr noundef %10392, ptr noundef %10395, i32 noundef %10397) #11
  br label %10416

10399:                                            ; preds = %10377, %10370
  %10400 = load i32, ptr %283, align 4, !tbaa !5
  %10401 = call ptr @__errno_location() #12
  store i32 %10400, ptr %10401, align 4, !tbaa !5
  %10402 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10403 = load i32, ptr @test_count, align 4, !tbaa !5
  %10404 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10405 = load i32, ptr %10404, align 4, !tbaa !5
  %10406 = call ptr @s2n_strerror(i32 noundef %10405, ptr noundef @.str.4)
  %10407 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10408 = load i32, ptr %10407, align 4, !tbaa !5
  %10409 = call ptr @s2n_strerror_debug(i32 noundef %10408, ptr noundef @.str.4)
  %10410 = call ptr @__errno_location() #12
  %10411 = load i32, ptr %10410, align 4, !tbaa !5
  %10412 = call ptr @strerror(i32 noundef %10411) #11
  %10413 = call ptr @__errno_location() #12
  %10414 = load i32, ptr %10413, align 4, !tbaa !5
  %10415 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10402, ptr noundef @.str.5, i32 noundef %10403, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 466, ptr noundef %10406, ptr noundef %10409, ptr noundef %10412, i32 noundef %10414) #11
  br label %10416

10416:                                            ; preds = %10399, %10382
  call void @llvm.lifetime.end.p0(i64 4, ptr %283) #11
  br label %10417

10417:                                            ; preds = %10416
  br label %10418

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

10419:                                            ; No predecessors!
  br label %10420

10420:                                            ; preds = %10419
  br label %10421

10421:                                            ; preds = %10420, %10361
  br label %10422

10422:                                            ; preds = %10421
  br label %10423

10423:                                            ; preds = %10422
  call void @llvm.lifetime.start.p0(i64 2, ptr %284) #11
  store i16 16400, ptr %284, align 2, !tbaa !62
  %10424 = load ptr, ptr %236, align 8, !tbaa !9
  %10425 = getelementptr inbounds %struct.s2n_connection, ptr %10424, i32 0, i32 53
  store i16 16400, ptr %10425, align 8, !tbaa !63
  br label %10426

10426:                                            ; preds = %10423
  %10427 = load i32, ptr @test_count, align 4, !tbaa !5
  %10428 = add nsw i32 %10427, 1
  store i32 %10428, ptr @test_count, align 4, !tbaa !5
  %10429 = load ptr, ptr %236, align 8, !tbaa !9
  %10430 = getelementptr inbounds %struct.s2n_blob, ptr %273, i32 0, i32 1
  %10431 = load i32, ptr %10430, align 8, !tbaa !60
  %10432 = zext i32 %10431 to i64
  %10433 = call i32 @s2n_record_writev(ptr noundef %10429, i8 noundef zeroext 23, ptr noundef %274, i32 noundef 1, i64 noundef 0, i64 noundef %10432)
  store i32 %10433, ptr %258, align 4, !tbaa !5
  %10434 = icmp eq i32 %10433, -1
  br i1 %10434, label %10435, label %10488

10435:                                            ; preds = %10426
  br label %10436

10436:                                            ; preds = %10435
  br label %10437

10437:                                            ; preds = %10436
  call void @llvm.lifetime.start.p0(i64 4, ptr %285) #11
  %10438 = call ptr @__errno_location() #12
  %10439 = load i32, ptr %10438, align 4, !tbaa !5
  store i32 %10439, ptr %285, align 4, !tbaa !5
  %10440 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10441 = call i32 @s2n_print_stacktrace(ptr noundef %10440)
  %10442 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10443 = trunc i8 %10442 to i1
  br i1 %10443, label %10444, label %10466

10444:                                            ; preds = %10437
  %10445 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10446 = call i32 @fileno(ptr noundef %10445) #11
  %10447 = call i32 @isatty(i32 noundef %10446) #11
  %10448 = icmp ne i32 %10447, 0
  br i1 %10448, label %10449, label %10466

10449:                                            ; preds = %10444
  %10450 = load i32, ptr %285, align 4, !tbaa !5
  %10451 = call ptr @__errno_location() #12
  store i32 %10450, ptr %10451, align 4, !tbaa !5
  %10452 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10453 = load i32, ptr @test_count, align 4, !tbaa !5
  %10454 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10455 = load i32, ptr %10454, align 4, !tbaa !5
  %10456 = call ptr @s2n_strerror(i32 noundef %10455, ptr noundef @.str.4)
  %10457 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10458 = load i32, ptr %10457, align 4, !tbaa !5
  %10459 = call ptr @s2n_strerror_debug(i32 noundef %10458, ptr noundef @.str.4)
  %10460 = call ptr @__errno_location() #12
  %10461 = load i32, ptr %10460, align 4, !tbaa !5
  %10462 = call ptr @strerror(i32 noundef %10461) #11
  %10463 = call ptr @__errno_location() #12
  %10464 = load i32, ptr %10463, align 4, !tbaa !5
  %10465 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10452, ptr noundef @.str.2, i32 noundef %10453, ptr noundef @.str.82, ptr noundef @.str.1, i32 noundef 473, ptr noundef %10456, ptr noundef %10459, ptr noundef %10462, i32 noundef %10464) #11
  br label %10483

10466:                                            ; preds = %10444, %10437
  %10467 = load i32, ptr %285, align 4, !tbaa !5
  %10468 = call ptr @__errno_location() #12
  store i32 %10467, ptr %10468, align 4, !tbaa !5
  %10469 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10470 = load i32, ptr @test_count, align 4, !tbaa !5
  %10471 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10472 = load i32, ptr %10471, align 4, !tbaa !5
  %10473 = call ptr @s2n_strerror(i32 noundef %10472, ptr noundef @.str.4)
  %10474 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10475 = load i32, ptr %10474, align 4, !tbaa !5
  %10476 = call ptr @s2n_strerror_debug(i32 noundef %10475, ptr noundef @.str.4)
  %10477 = call ptr @__errno_location() #12
  %10478 = load i32, ptr %10477, align 4, !tbaa !5
  %10479 = call ptr @strerror(i32 noundef %10478) #11
  %10480 = call ptr @__errno_location() #12
  %10481 = load i32, ptr %10480, align 4, !tbaa !5
  %10482 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10469, ptr noundef @.str.5, i32 noundef %10470, ptr noundef @.str.82, ptr noundef @.str.1, i32 noundef 473, ptr noundef %10473, ptr noundef %10476, ptr noundef %10479, i32 noundef %10481) #11
  br label %10483

10483:                                            ; preds = %10466, %10449
  call void @llvm.lifetime.end.p0(i64 4, ptr %285) #11
  br label %10484

10484:                                            ; preds = %10483
  br label %10485

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

10486:                                            ; No predecessors!
  br label %10487

10487:                                            ; preds = %10486
  br label %10488

10488:                                            ; preds = %10487, %10426
  br label %10489

10489:                                            ; preds = %10488
  br label %10490

10490:                                            ; preds = %10489
  br label %10491

10491:                                            ; preds = %10490
  %10492 = load i32, ptr @test_count, align 4, !tbaa !5
  %10493 = add nsw i32 %10492, 1
  store i32 %10493, ptr @test_count, align 4, !tbaa !5
  %10494 = load i32, ptr %258, align 4, !tbaa !5
  %10495 = icmp eq i32 %10494, 16384
  br i1 %10495, label %10549, label %10496

10496:                                            ; preds = %10491
  br label %10497

10497:                                            ; preds = %10496
  br label %10498

10498:                                            ; preds = %10497
  call void @llvm.lifetime.start.p0(i64 4, ptr %286) #11
  %10499 = call ptr @__errno_location() #12
  %10500 = load i32, ptr %10499, align 4, !tbaa !5
  store i32 %10500, ptr %286, align 4, !tbaa !5
  %10501 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10502 = call i32 @s2n_print_stacktrace(ptr noundef %10501)
  %10503 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10504 = trunc i8 %10503 to i1
  br i1 %10504, label %10505, label %10527

10505:                                            ; preds = %10498
  %10506 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10507 = call i32 @fileno(ptr noundef %10506) #11
  %10508 = call i32 @isatty(i32 noundef %10507) #11
  %10509 = icmp ne i32 %10508, 0
  br i1 %10509, label %10510, label %10527

10510:                                            ; preds = %10505
  %10511 = load i32, ptr %286, align 4, !tbaa !5
  %10512 = call ptr @__errno_location() #12
  store i32 %10511, ptr %10512, align 4, !tbaa !5
  %10513 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10514 = load i32, ptr @test_count, align 4, !tbaa !5
  %10515 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10516 = load i32, ptr %10515, align 4, !tbaa !5
  %10517 = call ptr @s2n_strerror(i32 noundef %10516, ptr noundef @.str.4)
  %10518 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10519 = load i32, ptr %10518, align 4, !tbaa !5
  %10520 = call ptr @s2n_strerror_debug(i32 noundef %10519, ptr noundef @.str.4)
  %10521 = call ptr @__errno_location() #12
  %10522 = load i32, ptr %10521, align 4, !tbaa !5
  %10523 = call ptr @strerror(i32 noundef %10522) #11
  %10524 = call ptr @__errno_location() #12
  %10525 = load i32, ptr %10524, align 4, !tbaa !5
  %10526 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10513, ptr noundef @.str.2, i32 noundef %10514, ptr noundef @.str.83, ptr noundef @.str.1, i32 noundef 474, ptr noundef %10517, ptr noundef %10520, ptr noundef %10523, i32 noundef %10525) #11
  br label %10544

10527:                                            ; preds = %10505, %10498
  %10528 = load i32, ptr %286, align 4, !tbaa !5
  %10529 = call ptr @__errno_location() #12
  store i32 %10528, ptr %10529, align 4, !tbaa !5
  %10530 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10531 = load i32, ptr @test_count, align 4, !tbaa !5
  %10532 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10533 = load i32, ptr %10532, align 4, !tbaa !5
  %10534 = call ptr @s2n_strerror(i32 noundef %10533, ptr noundef @.str.4)
  %10535 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10536 = load i32, ptr %10535, align 4, !tbaa !5
  %10537 = call ptr @s2n_strerror_debug(i32 noundef %10536, ptr noundef @.str.4)
  %10538 = call ptr @__errno_location() #12
  %10539 = load i32, ptr %10538, align 4, !tbaa !5
  %10540 = call ptr @strerror(i32 noundef %10539) #11
  %10541 = call ptr @__errno_location() #12
  %10542 = load i32, ptr %10541, align 4, !tbaa !5
  %10543 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10530, ptr noundef @.str.5, i32 noundef %10531, ptr noundef @.str.83, ptr noundef @.str.1, i32 noundef 474, ptr noundef %10534, ptr noundef %10537, ptr noundef %10540, i32 noundef %10542) #11
  br label %10544

10544:                                            ; preds = %10527, %10510
  call void @llvm.lifetime.end.p0(i64 4, ptr %286) #11
  br label %10545

10545:                                            ; preds = %10544
  br label %10546

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

10547:                                            ; No predecessors!
  br label %10548

10548:                                            ; preds = %10547
  br label %10549

10549:                                            ; preds = %10548, %10491
  br label %10550

10550:                                            ; preds = %10549
  br label %10551

10551:                                            ; preds = %10550
  br label %10552

10552:                                            ; preds = %10551
  %10553 = load i32, ptr @test_count, align 4, !tbaa !5
  %10554 = add nsw i32 %10553, 1
  store i32 %10554, ptr @test_count, align 4, !tbaa !5
  %10555 = load ptr, ptr %236, align 8, !tbaa !9
  %10556 = getelementptr inbounds %struct.s2n_connection, ptr %10555, i32 0, i32 41
  %10557 = call i32 @s2n_stuffer_wipe(ptr noundef %10556)
  %10558 = icmp eq i32 %10557, -1
  br i1 %10558, label %10559, label %10612

10559:                                            ; preds = %10552
  br label %10560

10560:                                            ; preds = %10559
  br label %10561

10561:                                            ; preds = %10560
  call void @llvm.lifetime.start.p0(i64 4, ptr %287) #11
  %10562 = call ptr @__errno_location() #12
  %10563 = load i32, ptr %10562, align 4, !tbaa !5
  store i32 %10563, ptr %287, align 4, !tbaa !5
  %10564 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10565 = call i32 @s2n_print_stacktrace(ptr noundef %10564)
  %10566 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10567 = trunc i8 %10566 to i1
  br i1 %10567, label %10568, label %10590

10568:                                            ; preds = %10561
  %10569 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10570 = call i32 @fileno(ptr noundef %10569) #11
  %10571 = call i32 @isatty(i32 noundef %10570) #11
  %10572 = icmp ne i32 %10571, 0
  br i1 %10572, label %10573, label %10590

10573:                                            ; preds = %10568
  %10574 = load i32, ptr %287, align 4, !tbaa !5
  %10575 = call ptr @__errno_location() #12
  store i32 %10574, ptr %10575, align 4, !tbaa !5
  %10576 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10577 = load i32, ptr @test_count, align 4, !tbaa !5
  %10578 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10579 = load i32, ptr %10578, align 4, !tbaa !5
  %10580 = call ptr @s2n_strerror(i32 noundef %10579, ptr noundef @.str.4)
  %10581 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10582 = load i32, ptr %10581, align 4, !tbaa !5
  %10583 = call ptr @s2n_strerror_debug(i32 noundef %10582, ptr noundef @.str.4)
  %10584 = call ptr @__errno_location() #12
  %10585 = load i32, ptr %10584, align 4, !tbaa !5
  %10586 = call ptr @strerror(i32 noundef %10585) #11
  %10587 = call ptr @__errno_location() #12
  %10588 = load i32, ptr %10587, align 4, !tbaa !5
  %10589 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10576, ptr noundef @.str.2, i32 noundef %10577, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 475, ptr noundef %10580, ptr noundef %10583, ptr noundef %10586, i32 noundef %10588) #11
  br label %10607

10590:                                            ; preds = %10568, %10561
  %10591 = load i32, ptr %287, align 4, !tbaa !5
  %10592 = call ptr @__errno_location() #12
  store i32 %10591, ptr %10592, align 4, !tbaa !5
  %10593 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10594 = load i32, ptr @test_count, align 4, !tbaa !5
  %10595 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10596 = load i32, ptr %10595, align 4, !tbaa !5
  %10597 = call ptr @s2n_strerror(i32 noundef %10596, ptr noundef @.str.4)
  %10598 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10599 = load i32, ptr %10598, align 4, !tbaa !5
  %10600 = call ptr @s2n_strerror_debug(i32 noundef %10599, ptr noundef @.str.4)
  %10601 = call ptr @__errno_location() #12
  %10602 = load i32, ptr %10601, align 4, !tbaa !5
  %10603 = call ptr @strerror(i32 noundef %10602) #11
  %10604 = call ptr @__errno_location() #12
  %10605 = load i32, ptr %10604, align 4, !tbaa !5
  %10606 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10593, ptr noundef @.str.5, i32 noundef %10594, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 475, ptr noundef %10597, ptr noundef %10600, ptr noundef %10603, i32 noundef %10605) #11
  br label %10607

10607:                                            ; preds = %10590, %10573
  call void @llvm.lifetime.end.p0(i64 4, ptr %287) #11
  br label %10608

10608:                                            ; preds = %10607
  br label %10609

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

10610:                                            ; No predecessors!
  br label %10611

10611:                                            ; preds = %10610
  br label %10612

10612:                                            ; preds = %10611, %10552
  br label %10613

10613:                                            ; preds = %10612
  br label %10614

10614:                                            ; preds = %10613
  br label %10615

10615:                                            ; preds = %10614
  %10616 = load i32, ptr @test_count, align 4, !tbaa !5
  %10617 = add nsw i32 %10616, 1
  store i32 %10617, ptr @test_count, align 4, !tbaa !5
  %10618 = load ptr, ptr %236, align 8, !tbaa !9
  %10619 = getelementptr inbounds %struct.s2n_connection, ptr %10618, i32 0, i32 41
  %10620 = call i32 @s2n_stuffer_resize(ptr noundef %10619, i32 noundef 100000)
  %10621 = icmp eq i32 %10620, -1
  br i1 %10621, label %10622, label %10675

10622:                                            ; preds = %10615
  br label %10623

10623:                                            ; preds = %10622
  br label %10624

10624:                                            ; preds = %10623
  call void @llvm.lifetime.start.p0(i64 4, ptr %288) #11
  %10625 = call ptr @__errno_location() #12
  %10626 = load i32, ptr %10625, align 4, !tbaa !5
  store i32 %10626, ptr %288, align 4, !tbaa !5
  %10627 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10628 = call i32 @s2n_print_stacktrace(ptr noundef %10627)
  %10629 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10630 = trunc i8 %10629 to i1
  br i1 %10630, label %10631, label %10653

10631:                                            ; preds = %10624
  %10632 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10633 = call i32 @fileno(ptr noundef %10632) #11
  %10634 = call i32 @isatty(i32 noundef %10633) #11
  %10635 = icmp ne i32 %10634, 0
  br i1 %10635, label %10636, label %10653

10636:                                            ; preds = %10631
  %10637 = load i32, ptr %288, align 4, !tbaa !5
  %10638 = call ptr @__errno_location() #12
  store i32 %10637, ptr %10638, align 4, !tbaa !5
  %10639 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10640 = load i32, ptr @test_count, align 4, !tbaa !5
  %10641 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10642 = load i32, ptr %10641, align 4, !tbaa !5
  %10643 = call ptr @s2n_strerror(i32 noundef %10642, ptr noundef @.str.4)
  %10644 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10645 = load i32, ptr %10644, align 4, !tbaa !5
  %10646 = call ptr @s2n_strerror_debug(i32 noundef %10645, ptr noundef @.str.4)
  %10647 = call ptr @__errno_location() #12
  %10648 = load i32, ptr %10647, align 4, !tbaa !5
  %10649 = call ptr @strerror(i32 noundef %10648) #11
  %10650 = call ptr @__errno_location() #12
  %10651 = load i32, ptr %10650, align 4, !tbaa !5
  %10652 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10639, ptr noundef @.str.2, i32 noundef %10640, ptr noundef @.str.89, ptr noundef @.str.1, i32 noundef 478, ptr noundef %10643, ptr noundef %10646, ptr noundef %10649, i32 noundef %10651) #11
  br label %10670

10653:                                            ; preds = %10631, %10624
  %10654 = load i32, ptr %288, align 4, !tbaa !5
  %10655 = call ptr @__errno_location() #12
  store i32 %10654, ptr %10655, align 4, !tbaa !5
  %10656 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10657 = load i32, ptr @test_count, align 4, !tbaa !5
  %10658 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10659 = load i32, ptr %10658, align 4, !tbaa !5
  %10660 = call ptr @s2n_strerror(i32 noundef %10659, ptr noundef @.str.4)
  %10661 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10662 = load i32, ptr %10661, align 4, !tbaa !5
  %10663 = call ptr @s2n_strerror_debug(i32 noundef %10662, ptr noundef @.str.4)
  %10664 = call ptr @__errno_location() #12
  %10665 = load i32, ptr %10664, align 4, !tbaa !5
  %10666 = call ptr @strerror(i32 noundef %10665) #11
  %10667 = call ptr @__errno_location() #12
  %10668 = load i32, ptr %10667, align 4, !tbaa !5
  %10669 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10656, ptr noundef @.str.5, i32 noundef %10657, ptr noundef @.str.89, ptr noundef @.str.1, i32 noundef 478, ptr noundef %10660, ptr noundef %10663, ptr noundef %10666, i32 noundef %10668) #11
  br label %10670

10670:                                            ; preds = %10653, %10636
  call void @llvm.lifetime.end.p0(i64 4, ptr %288) #11
  br label %10671

10671:                                            ; preds = %10670
  br label %10672

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

10673:                                            ; No predecessors!
  br label %10674

10674:                                            ; preds = %10673
  br label %10675

10675:                                            ; preds = %10674, %10615
  br label %10676

10676:                                            ; preds = %10675
  br label %10677

10677:                                            ; preds = %10676
  %10678 = load ptr, ptr %236, align 8, !tbaa !9
  %10679 = getelementptr inbounds %struct.s2n_connection, ptr %10678, i32 0, i32 53
  store i16 16400, ptr %10679, align 8, !tbaa !63
  br label %10680

10680:                                            ; preds = %10677
  %10681 = load i32, ptr @test_count, align 4, !tbaa !5
  %10682 = add nsw i32 %10681, 1
  store i32 %10682, ptr @test_count, align 4, !tbaa !5
  %10683 = load ptr, ptr %236, align 8, !tbaa !9
  %10684 = getelementptr inbounds %struct.s2n_blob, ptr %273, i32 0, i32 1
  %10685 = load i32, ptr %10684, align 8, !tbaa !60
  %10686 = zext i32 %10685 to i64
  %10687 = call i32 @s2n_record_writev(ptr noundef %10683, i8 noundef zeroext 23, ptr noundef %274, i32 noundef 1, i64 noundef 0, i64 noundef %10686)
  store i32 %10687, ptr %258, align 4, !tbaa !5
  %10688 = icmp eq i32 %10687, -1
  br i1 %10688, label %10689, label %10742

10689:                                            ; preds = %10680
  br label %10690

10690:                                            ; preds = %10689
  br label %10691

10691:                                            ; preds = %10690
  call void @llvm.lifetime.start.p0(i64 4, ptr %289) #11
  %10692 = call ptr @__errno_location() #12
  %10693 = load i32, ptr %10692, align 4, !tbaa !5
  store i32 %10693, ptr %289, align 4, !tbaa !5
  %10694 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10695 = call i32 @s2n_print_stacktrace(ptr noundef %10694)
  %10696 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10697 = trunc i8 %10696 to i1
  br i1 %10697, label %10698, label %10720

10698:                                            ; preds = %10691
  %10699 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10700 = call i32 @fileno(ptr noundef %10699) #11
  %10701 = call i32 @isatty(i32 noundef %10700) #11
  %10702 = icmp ne i32 %10701, 0
  br i1 %10702, label %10703, label %10720

10703:                                            ; preds = %10698
  %10704 = load i32, ptr %289, align 4, !tbaa !5
  %10705 = call ptr @__errno_location() #12
  store i32 %10704, ptr %10705, align 4, !tbaa !5
  %10706 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10707 = load i32, ptr @test_count, align 4, !tbaa !5
  %10708 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10709 = load i32, ptr %10708, align 4, !tbaa !5
  %10710 = call ptr @s2n_strerror(i32 noundef %10709, ptr noundef @.str.4)
  %10711 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10712 = load i32, ptr %10711, align 4, !tbaa !5
  %10713 = call ptr @s2n_strerror_debug(i32 noundef %10712, ptr noundef @.str.4)
  %10714 = call ptr @__errno_location() #12
  %10715 = load i32, ptr %10714, align 4, !tbaa !5
  %10716 = call ptr @strerror(i32 noundef %10715) #11
  %10717 = call ptr @__errno_location() #12
  %10718 = load i32, ptr %10717, align 4, !tbaa !5
  %10719 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10706, ptr noundef @.str.2, i32 noundef %10707, ptr noundef @.str.82, ptr noundef @.str.1, i32 noundef 480, ptr noundef %10710, ptr noundef %10713, ptr noundef %10716, i32 noundef %10718) #11
  br label %10737

10720:                                            ; preds = %10698, %10691
  %10721 = load i32, ptr %289, align 4, !tbaa !5
  %10722 = call ptr @__errno_location() #12
  store i32 %10721, ptr %10722, align 4, !tbaa !5
  %10723 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10724 = load i32, ptr @test_count, align 4, !tbaa !5
  %10725 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10726 = load i32, ptr %10725, align 4, !tbaa !5
  %10727 = call ptr @s2n_strerror(i32 noundef %10726, ptr noundef @.str.4)
  %10728 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10729 = load i32, ptr %10728, align 4, !tbaa !5
  %10730 = call ptr @s2n_strerror_debug(i32 noundef %10729, ptr noundef @.str.4)
  %10731 = call ptr @__errno_location() #12
  %10732 = load i32, ptr %10731, align 4, !tbaa !5
  %10733 = call ptr @strerror(i32 noundef %10732) #11
  %10734 = call ptr @__errno_location() #12
  %10735 = load i32, ptr %10734, align 4, !tbaa !5
  %10736 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10723, ptr noundef @.str.5, i32 noundef %10724, ptr noundef @.str.82, ptr noundef @.str.1, i32 noundef 480, ptr noundef %10727, ptr noundef %10730, ptr noundef %10733, i32 noundef %10735) #11
  br label %10737

10737:                                            ; preds = %10720, %10703
  call void @llvm.lifetime.end.p0(i64 4, ptr %289) #11
  br label %10738

10738:                                            ; preds = %10737
  br label %10739

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

10740:                                            ; No predecessors!
  br label %10741

10741:                                            ; preds = %10740
  br label %10742

10742:                                            ; preds = %10741, %10680
  br label %10743

10743:                                            ; preds = %10742
  br label %10744

10744:                                            ; preds = %10743
  br label %10745

10745:                                            ; preds = %10744
  %10746 = load i32, ptr @test_count, align 4, !tbaa !5
  %10747 = add nsw i32 %10746, 1
  store i32 %10747, ptr @test_count, align 4, !tbaa !5
  %10748 = load i32, ptr %258, align 4, !tbaa !5
  %10749 = icmp eq i32 %10748, 16384
  br i1 %10749, label %10803, label %10750

10750:                                            ; preds = %10745
  br label %10751

10751:                                            ; preds = %10750
  br label %10752

10752:                                            ; preds = %10751
  call void @llvm.lifetime.start.p0(i64 4, ptr %290) #11
  %10753 = call ptr @__errno_location() #12
  %10754 = load i32, ptr %10753, align 4, !tbaa !5
  store i32 %10754, ptr %290, align 4, !tbaa !5
  %10755 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10756 = call i32 @s2n_print_stacktrace(ptr noundef %10755)
  %10757 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10758 = trunc i8 %10757 to i1
  br i1 %10758, label %10759, label %10781

10759:                                            ; preds = %10752
  %10760 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10761 = call i32 @fileno(ptr noundef %10760) #11
  %10762 = call i32 @isatty(i32 noundef %10761) #11
  %10763 = icmp ne i32 %10762, 0
  br i1 %10763, label %10764, label %10781

10764:                                            ; preds = %10759
  %10765 = load i32, ptr %290, align 4, !tbaa !5
  %10766 = call ptr @__errno_location() #12
  store i32 %10765, ptr %10766, align 4, !tbaa !5
  %10767 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10768 = load i32, ptr @test_count, align 4, !tbaa !5
  %10769 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10770 = load i32, ptr %10769, align 4, !tbaa !5
  %10771 = call ptr @s2n_strerror(i32 noundef %10770, ptr noundef @.str.4)
  %10772 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10773 = load i32, ptr %10772, align 4, !tbaa !5
  %10774 = call ptr @s2n_strerror_debug(i32 noundef %10773, ptr noundef @.str.4)
  %10775 = call ptr @__errno_location() #12
  %10776 = load i32, ptr %10775, align 4, !tbaa !5
  %10777 = call ptr @strerror(i32 noundef %10776) #11
  %10778 = call ptr @__errno_location() #12
  %10779 = load i32, ptr %10778, align 4, !tbaa !5
  %10780 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10767, ptr noundef @.str.2, i32 noundef %10768, ptr noundef @.str.83, ptr noundef @.str.1, i32 noundef 481, ptr noundef %10771, ptr noundef %10774, ptr noundef %10777, i32 noundef %10779) #11
  br label %10798

10781:                                            ; preds = %10759, %10752
  %10782 = load i32, ptr %290, align 4, !tbaa !5
  %10783 = call ptr @__errno_location() #12
  store i32 %10782, ptr %10783, align 4, !tbaa !5
  %10784 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10785 = load i32, ptr @test_count, align 4, !tbaa !5
  %10786 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10787 = load i32, ptr %10786, align 4, !tbaa !5
  %10788 = call ptr @s2n_strerror(i32 noundef %10787, ptr noundef @.str.4)
  %10789 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10790 = load i32, ptr %10789, align 4, !tbaa !5
  %10791 = call ptr @s2n_strerror_debug(i32 noundef %10790, ptr noundef @.str.4)
  %10792 = call ptr @__errno_location() #12
  %10793 = load i32, ptr %10792, align 4, !tbaa !5
  %10794 = call ptr @strerror(i32 noundef %10793) #11
  %10795 = call ptr @__errno_location() #12
  %10796 = load i32, ptr %10795, align 4, !tbaa !5
  %10797 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10784, ptr noundef @.str.5, i32 noundef %10785, ptr noundef @.str.83, ptr noundef @.str.1, i32 noundef 481, ptr noundef %10788, ptr noundef %10791, ptr noundef %10794, i32 noundef %10796) #11
  br label %10798

10798:                                            ; preds = %10781, %10764
  call void @llvm.lifetime.end.p0(i64 4, ptr %290) #11
  br label %10799

10799:                                            ; preds = %10798
  br label %10800

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

10801:                                            ; No predecessors!
  br label %10802

10802:                                            ; preds = %10801
  br label %10803

10803:                                            ; preds = %10802, %10745
  br label %10804

10804:                                            ; preds = %10803
  br label %10805

10805:                                            ; preds = %10804
  br label %10806

10806:                                            ; preds = %10805
  %10807 = load i32, ptr @test_count, align 4, !tbaa !5
  %10808 = add nsw i32 %10807, 1
  store i32 %10808, ptr @test_count, align 4, !tbaa !5
  %10809 = load ptr, ptr %236, align 8, !tbaa !9
  %10810 = getelementptr inbounds %struct.s2n_connection, ptr %10809, i32 0, i32 41
  %10811 = call i32 @s2n_stuffer_wipe(ptr noundef %10810)
  %10812 = icmp eq i32 %10811, -1
  br i1 %10812, label %10813, label %10866

10813:                                            ; preds = %10806
  br label %10814

10814:                                            ; preds = %10813
  br label %10815

10815:                                            ; preds = %10814
  call void @llvm.lifetime.start.p0(i64 4, ptr %291) #11
  %10816 = call ptr @__errno_location() #12
  %10817 = load i32, ptr %10816, align 4, !tbaa !5
  store i32 %10817, ptr %291, align 4, !tbaa !5
  %10818 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10819 = call i32 @s2n_print_stacktrace(ptr noundef %10818)
  %10820 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10821 = trunc i8 %10820 to i1
  br i1 %10821, label %10822, label %10844

10822:                                            ; preds = %10815
  %10823 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10824 = call i32 @fileno(ptr noundef %10823) #11
  %10825 = call i32 @isatty(i32 noundef %10824) #11
  %10826 = icmp ne i32 %10825, 0
  br i1 %10826, label %10827, label %10844

10827:                                            ; preds = %10822
  %10828 = load i32, ptr %291, align 4, !tbaa !5
  %10829 = call ptr @__errno_location() #12
  store i32 %10828, ptr %10829, align 4, !tbaa !5
  %10830 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10831 = load i32, ptr @test_count, align 4, !tbaa !5
  %10832 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10833 = load i32, ptr %10832, align 4, !tbaa !5
  %10834 = call ptr @s2n_strerror(i32 noundef %10833, ptr noundef @.str.4)
  %10835 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10836 = load i32, ptr %10835, align 4, !tbaa !5
  %10837 = call ptr @s2n_strerror_debug(i32 noundef %10836, ptr noundef @.str.4)
  %10838 = call ptr @__errno_location() #12
  %10839 = load i32, ptr %10838, align 4, !tbaa !5
  %10840 = call ptr @strerror(i32 noundef %10839) #11
  %10841 = call ptr @__errno_location() #12
  %10842 = load i32, ptr %10841, align 4, !tbaa !5
  %10843 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10830, ptr noundef @.str.2, i32 noundef %10831, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 483, ptr noundef %10834, ptr noundef %10837, ptr noundef %10840, i32 noundef %10842) #11
  br label %10861

10844:                                            ; preds = %10822, %10815
  %10845 = load i32, ptr %291, align 4, !tbaa !5
  %10846 = call ptr @__errno_location() #12
  store i32 %10845, ptr %10846, align 4, !tbaa !5
  %10847 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10848 = load i32, ptr @test_count, align 4, !tbaa !5
  %10849 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10850 = load i32, ptr %10849, align 4, !tbaa !5
  %10851 = call ptr @s2n_strerror(i32 noundef %10850, ptr noundef @.str.4)
  %10852 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10853 = load i32, ptr %10852, align 4, !tbaa !5
  %10854 = call ptr @s2n_strerror_debug(i32 noundef %10853, ptr noundef @.str.4)
  %10855 = call ptr @__errno_location() #12
  %10856 = load i32, ptr %10855, align 4, !tbaa !5
  %10857 = call ptr @strerror(i32 noundef %10856) #11
  %10858 = call ptr @__errno_location() #12
  %10859 = load i32, ptr %10858, align 4, !tbaa !5
  %10860 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10847, ptr noundef @.str.5, i32 noundef %10848, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 483, ptr noundef %10851, ptr noundef %10854, ptr noundef %10857, i32 noundef %10859) #11
  br label %10861

10861:                                            ; preds = %10844, %10827
  call void @llvm.lifetime.end.p0(i64 4, ptr %291) #11
  br label %10862

10862:                                            ; preds = %10861
  br label %10863

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

10864:                                            ; No predecessors!
  br label %10865

10865:                                            ; preds = %10864
  br label %10866

10866:                                            ; preds = %10865, %10806
  br label %10867

10867:                                            ; preds = %10866
  br label %10868

10868:                                            ; preds = %10867
  br label %10869

10869:                                            ; preds = %10868
  %10870 = load i32, ptr @test_count, align 4, !tbaa !5
  %10871 = add nsw i32 %10870, 1
  store i32 %10871, ptr @test_count, align 4, !tbaa !5
  %10872 = load ptr, ptr %236, align 8, !tbaa !9
  %10873 = call i32 @s2n_connection_free(ptr noundef %10872)
  %10874 = icmp eq i32 %10873, -1
  br i1 %10874, label %10875, label %10928

10875:                                            ; preds = %10869
  br label %10876

10876:                                            ; preds = %10875
  br label %10877

10877:                                            ; preds = %10876
  call void @llvm.lifetime.start.p0(i64 4, ptr %292) #11
  %10878 = call ptr @__errno_location() #12
  %10879 = load i32, ptr %10878, align 4, !tbaa !5
  store i32 %10879, ptr %292, align 4, !tbaa !5
  %10880 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10881 = call i32 @s2n_print_stacktrace(ptr noundef %10880)
  %10882 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10883 = trunc i8 %10882 to i1
  br i1 %10883, label %10884, label %10906

10884:                                            ; preds = %10877
  %10885 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10886 = call i32 @fileno(ptr noundef %10885) #11
  %10887 = call i32 @isatty(i32 noundef %10886) #11
  %10888 = icmp ne i32 %10887, 0
  br i1 %10888, label %10889, label %10906

10889:                                            ; preds = %10884
  %10890 = load i32, ptr %292, align 4, !tbaa !5
  %10891 = call ptr @__errno_location() #12
  store i32 %10890, ptr %10891, align 4, !tbaa !5
  %10892 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10893 = load i32, ptr @test_count, align 4, !tbaa !5
  %10894 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10895 = load i32, ptr %10894, align 4, !tbaa !5
  %10896 = call ptr @s2n_strerror(i32 noundef %10895, ptr noundef @.str.4)
  %10897 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10898 = load i32, ptr %10897, align 4, !tbaa !5
  %10899 = call ptr @s2n_strerror_debug(i32 noundef %10898, ptr noundef @.str.4)
  %10900 = call ptr @__errno_location() #12
  %10901 = load i32, ptr %10900, align 4, !tbaa !5
  %10902 = call ptr @strerror(i32 noundef %10901) #11
  %10903 = call ptr @__errno_location() #12
  %10904 = load i32, ptr %10903, align 4, !tbaa !5
  %10905 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10892, ptr noundef @.str.2, i32 noundef %10893, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 485, ptr noundef %10896, ptr noundef %10899, ptr noundef %10902, i32 noundef %10904) #11
  br label %10923

10906:                                            ; preds = %10884, %10877
  %10907 = load i32, ptr %292, align 4, !tbaa !5
  %10908 = call ptr @__errno_location() #12
  store i32 %10907, ptr %10908, align 4, !tbaa !5
  %10909 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10910 = load i32, ptr @test_count, align 4, !tbaa !5
  %10911 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10912 = load i32, ptr %10911, align 4, !tbaa !5
  %10913 = call ptr @s2n_strerror(i32 noundef %10912, ptr noundef @.str.4)
  %10914 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10915 = load i32, ptr %10914, align 4, !tbaa !5
  %10916 = call ptr @s2n_strerror_debug(i32 noundef %10915, ptr noundef @.str.4)
  %10917 = call ptr @__errno_location() #12
  %10918 = load i32, ptr %10917, align 4, !tbaa !5
  %10919 = call ptr @strerror(i32 noundef %10918) #11
  %10920 = call ptr @__errno_location() #12
  %10921 = load i32, ptr %10920, align 4, !tbaa !5
  %10922 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10909, ptr noundef @.str.5, i32 noundef %10910, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 485, ptr noundef %10913, ptr noundef %10916, ptr noundef %10919, i32 noundef %10921) #11
  br label %10923

10923:                                            ; preds = %10906, %10889
  call void @llvm.lifetime.end.p0(i64 4, ptr %292) #11
  br label %10924

10924:                                            ; preds = %10923
  br label %10925

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

10926:                                            ; No predecessors!
  br label %10927

10927:                                            ; preds = %10926
  br label %10928

10928:                                            ; preds = %10927, %10869
  br label %10929

10929:                                            ; preds = %10928
  br label %10930

10930:                                            ; preds = %10929
  call void @llvm.lifetime.end.p0(i64 2, ptr %284) #11
  call void @llvm.lifetime.end.p0(i64 2, ptr %276) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %274) #11
  store i32 0, ptr %245, align 4
  br label %10931

10931:                                            ; preds = %10930, %9895
  call void @llvm.lifetime.end.p0(i64 24, ptr %273) #11
  br label %10932

10932:                                            ; preds = %10931, %9883
  call void @llvm.lifetime.end.p0(i64 100000, ptr %272) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %271) #11
  call void @llvm.lifetime.end.p0(i64 2, ptr %259) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %258) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %257) #11
  br label %10933

10933:                                            ; preds = %10932, %9252
  call void @llvm.lifetime.end.p0(i64 24, ptr %256) #11
  br label %10934

10934:                                            ; preds = %10933, %9240
  call void @llvm.lifetime.end.p0(i64 1024, ptr %255) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %254) #11
  br label %10935

10935:                                            ; preds = %10934, %9121
  %10936 = call i32 @s2n_free(ptr noundef %250)
  call void @llvm.lifetime.end.p0(i64 24, ptr %250) #11
  br label %10937

10937:                                            ; preds = %10935, %8967
  %10938 = call i32 @s2n_free(ptr noundef %243)
  call void @llvm.lifetime.end.p0(i64 24, ptr %243) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %240) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %239) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %238) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %236) #11
  %10939 = load i32, ptr %245, align 4
  switch i32 %10939, label %12216 [
    i32 0, label %10940
  ]

10940:                                            ; preds = %10937
  call void @llvm.lifetime.start.p0(i64 2, ptr %293) #11
  store i16 0, ptr %293, align 2, !tbaa !62
  call void @llvm.lifetime.start.p0(i64 8, ptr %294) #11
  %10941 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %10941, ptr %294, align 8, !tbaa !9
  br label %10942

10942:                                            ; preds = %10940
  %10943 = load i32, ptr @test_count, align 4, !tbaa !5
  %10944 = add nsw i32 %10943, 1
  store i32 %10944, ptr @test_count, align 4, !tbaa !5
  %10945 = load ptr, ptr %294, align 8, !tbaa !9
  %10946 = icmp eq ptr %10945, null
  br i1 %10946, label %10947, label %11000

10947:                                            ; preds = %10942
  br label %10948

10948:                                            ; preds = %10947
  br label %10949

10949:                                            ; preds = %10948
  call void @llvm.lifetime.start.p0(i64 4, ptr %295) #11
  %10950 = call ptr @__errno_location() #12
  %10951 = load i32, ptr %10950, align 4, !tbaa !5
  store i32 %10951, ptr %295, align 4, !tbaa !5
  %10952 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10953 = call i32 @s2n_print_stacktrace(ptr noundef %10952)
  %10954 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10955 = trunc i8 %10954 to i1
  br i1 %10955, label %10956, label %10978

10956:                                            ; preds = %10949
  %10957 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10958 = call i32 @fileno(ptr noundef %10957) #11
  %10959 = call i32 @isatty(i32 noundef %10958) #11
  %10960 = icmp ne i32 %10959, 0
  br i1 %10960, label %10961, label %10978

10961:                                            ; preds = %10956
  %10962 = load i32, ptr %295, align 4, !tbaa !5
  %10963 = call ptr @__errno_location() #12
  store i32 %10962, ptr %10963, align 4, !tbaa !5
  %10964 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10965 = load i32, ptr @test_count, align 4, !tbaa !5
  %10966 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10967 = load i32, ptr %10966, align 4, !tbaa !5
  %10968 = call ptr @s2n_strerror(i32 noundef %10967, ptr noundef @.str.4)
  %10969 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10970 = load i32, ptr %10969, align 4, !tbaa !5
  %10971 = call ptr @s2n_strerror_debug(i32 noundef %10970, ptr noundef @.str.4)
  %10972 = call ptr @__errno_location() #12
  %10973 = load i32, ptr %10972, align 4, !tbaa !5
  %10974 = call ptr @strerror(i32 noundef %10973) #11
  %10975 = call ptr @__errno_location() #12
  %10976 = load i32, ptr %10975, align 4, !tbaa !5
  %10977 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10964, ptr noundef @.str.2, i32 noundef %10965, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 493, ptr noundef %10968, ptr noundef %10971, ptr noundef %10974, i32 noundef %10976) #11
  br label %10995

10978:                                            ; preds = %10956, %10949
  %10979 = load i32, ptr %295, align 4, !tbaa !5
  %10980 = call ptr @__errno_location() #12
  store i32 %10979, ptr %10980, align 4, !tbaa !5
  %10981 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10982 = load i32, ptr @test_count, align 4, !tbaa !5
  %10983 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10984 = load i32, ptr %10983, align 4, !tbaa !5
  %10985 = call ptr @s2n_strerror(i32 noundef %10984, ptr noundef @.str.4)
  %10986 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10987 = load i32, ptr %10986, align 4, !tbaa !5
  %10988 = call ptr @s2n_strerror_debug(i32 noundef %10987, ptr noundef @.str.4)
  %10989 = call ptr @__errno_location() #12
  %10990 = load i32, ptr %10989, align 4, !tbaa !5
  %10991 = call ptr @strerror(i32 noundef %10990) #11
  %10992 = call ptr @__errno_location() #12
  %10993 = load i32, ptr %10992, align 4, !tbaa !5
  %10994 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10981, ptr noundef @.str.5, i32 noundef %10982, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 493, ptr noundef %10985, ptr noundef %10988, ptr noundef %10991, i32 noundef %10993) #11
  br label %10995

10995:                                            ; preds = %10978, %10961
  call void @llvm.lifetime.end.p0(i64 4, ptr %295) #11
  br label %10996

10996:                                            ; preds = %10995
  br label %10997

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

10998:                                            ; No predecessors!
  br label %10999

10999:                                            ; preds = %10998
  br label %11000

11000:                                            ; preds = %10999, %10942
  br label %11001

11001:                                            ; preds = %11000
  br label %11002

11002:                                            ; preds = %11001
  br label %11003

11003:                                            ; preds = %11002
  br label %11004

11004:                                            ; preds = %11003
  br label %11005

11005:                                            ; preds = %11004
  %11006 = load i32, ptr @test_count, align 4, !tbaa !5
  %11007 = add nsw i32 %11006, 1
  store i32 %11007, ptr @test_count, align 4, !tbaa !5
  %11008 = call i32 @s2n_record_max_write_size(ptr noundef null, i16 noundef zeroext 1, ptr noundef %293)
  %11009 = getelementptr inbounds %struct.s2n_result, ptr %296, i32 0, i32 0
  store i32 %11008, ptr %11009, align 4
  %11010 = getelementptr inbounds %struct.s2n_result, ptr %296, i32 0, i32 0
  %11011 = load i32, ptr %11010, align 4
  %11012 = call zeroext i1 @s2n_result_is_error(i32 %11011)
  br i1 %11012, label %11066, label %11013

11013:                                            ; preds = %11005
  br label %11014

11014:                                            ; preds = %11013
  br label %11015

11015:                                            ; preds = %11014
  call void @llvm.lifetime.start.p0(i64 4, ptr %297) #11
  %11016 = call ptr @__errno_location() #12
  %11017 = load i32, ptr %11016, align 4, !tbaa !5
  store i32 %11017, ptr %297, align 4, !tbaa !5
  %11018 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11019 = call i32 @s2n_print_stacktrace(ptr noundef %11018)
  %11020 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11021 = trunc i8 %11020 to i1
  br i1 %11021, label %11022, label %11044

11022:                                            ; preds = %11015
  %11023 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11024 = call i32 @fileno(ptr noundef %11023) #11
  %11025 = call i32 @isatty(i32 noundef %11024) #11
  %11026 = icmp ne i32 %11025, 0
  br i1 %11026, label %11027, label %11044

11027:                                            ; preds = %11022
  %11028 = load i32, ptr %297, align 4, !tbaa !5
  %11029 = call ptr @__errno_location() #12
  store i32 %11028, ptr %11029, align 4, !tbaa !5
  %11030 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11031 = load i32, ptr @test_count, align 4, !tbaa !5
  %11032 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11033 = load i32, ptr %11032, align 4, !tbaa !5
  %11034 = call ptr @s2n_strerror(i32 noundef %11033, ptr noundef @.str.4)
  %11035 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11036 = load i32, ptr %11035, align 4, !tbaa !5
  %11037 = call ptr @s2n_strerror_debug(i32 noundef %11036, ptr noundef @.str.4)
  %11038 = call ptr @__errno_location() #12
  %11039 = load i32, ptr %11038, align 4, !tbaa !5
  %11040 = call ptr @strerror(i32 noundef %11039) #11
  %11041 = call ptr @__errno_location() #12
  %11042 = load i32, ptr %11041, align 4, !tbaa !5
  %11043 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11030, ptr noundef @.str.2, i32 noundef %11031, ptr noundef @.str.90, ptr noundef @.str.1, i32 noundef 495, ptr noundef %11034, ptr noundef %11037, ptr noundef %11040, i32 noundef %11042) #11
  br label %11061

11044:                                            ; preds = %11022, %11015
  %11045 = load i32, ptr %297, align 4, !tbaa !5
  %11046 = call ptr @__errno_location() #12
  store i32 %11045, ptr %11046, align 4, !tbaa !5
  %11047 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11048 = load i32, ptr @test_count, align 4, !tbaa !5
  %11049 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11050 = load i32, ptr %11049, align 4, !tbaa !5
  %11051 = call ptr @s2n_strerror(i32 noundef %11050, ptr noundef @.str.4)
  %11052 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11053 = load i32, ptr %11052, align 4, !tbaa !5
  %11054 = call ptr @s2n_strerror_debug(i32 noundef %11053, ptr noundef @.str.4)
  %11055 = call ptr @__errno_location() #12
  %11056 = load i32, ptr %11055, align 4, !tbaa !5
  %11057 = call ptr @strerror(i32 noundef %11056) #11
  %11058 = call ptr @__errno_location() #12
  %11059 = load i32, ptr %11058, align 4, !tbaa !5
  %11060 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11047, ptr noundef @.str.5, i32 noundef %11048, ptr noundef @.str.90, ptr noundef @.str.1, i32 noundef 495, ptr noundef %11051, ptr noundef %11054, ptr noundef %11057, i32 noundef %11059) #11
  br label %11061

11061:                                            ; preds = %11044, %11027
  call void @llvm.lifetime.end.p0(i64 4, ptr %297) #11
  br label %11062

11062:                                            ; preds = %11061
  br label %11063

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

11064:                                            ; No predecessors!
  br label %11065

11065:                                            ; preds = %11064
  br label %11066

11066:                                            ; preds = %11065, %11005
  br label %11067

11067:                                            ; preds = %11066
  br label %11068

11068:                                            ; preds = %11067
  br label %11069

11069:                                            ; preds = %11068
  %11070 = load i32, ptr @test_count, align 4, !tbaa !5
  %11071 = add nsw i32 %11070, 1
  store i32 %11071, ptr @test_count, align 4, !tbaa !5
  %11072 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11073 = load i32, ptr %11072, align 4, !tbaa !5
  %11074 = icmp eq i32 %11073, 402653193
  br i1 %11074, label %11128, label %11075

11075:                                            ; preds = %11069
  br label %11076

11076:                                            ; preds = %11075
  br label %11077

11077:                                            ; preds = %11076
  call void @llvm.lifetime.start.p0(i64 4, ptr %298) #11
  %11078 = call ptr @__errno_location() #12
  %11079 = load i32, ptr %11078, align 4, !tbaa !5
  store i32 %11079, ptr %298, align 4, !tbaa !5
  %11080 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11081 = call i32 @s2n_print_stacktrace(ptr noundef %11080)
  %11082 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11083 = trunc i8 %11082 to i1
  br i1 %11083, label %11084, label %11106

11084:                                            ; preds = %11077
  %11085 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11086 = call i32 @fileno(ptr noundef %11085) #11
  %11087 = call i32 @isatty(i32 noundef %11086) #11
  %11088 = icmp ne i32 %11087, 0
  br i1 %11088, label %11089, label %11106

11089:                                            ; preds = %11084
  %11090 = load i32, ptr %298, align 4, !tbaa !5
  %11091 = call ptr @__errno_location() #12
  store i32 %11090, ptr %11091, align 4, !tbaa !5
  %11092 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11093 = load i32, ptr @test_count, align 4, !tbaa !5
  %11094 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11095 = load i32, ptr %11094, align 4, !tbaa !5
  %11096 = call ptr @s2n_strerror(i32 noundef %11095, ptr noundef @.str.4)
  %11097 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11098 = load i32, ptr %11097, align 4, !tbaa !5
  %11099 = call ptr @s2n_strerror_debug(i32 noundef %11098, ptr noundef @.str.4)
  %11100 = call ptr @__errno_location() #12
  %11101 = load i32, ptr %11100, align 4, !tbaa !5
  %11102 = call ptr @strerror(i32 noundef %11101) #11
  %11103 = call ptr @__errno_location() #12
  %11104 = load i32, ptr %11103, align 4, !tbaa !5
  %11105 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11092, ptr noundef @.str.2, i32 noundef %11093, ptr noundef @.str.91, ptr noundef @.str.1, i32 noundef 495, ptr noundef %11096, ptr noundef %11099, ptr noundef %11102, i32 noundef %11104) #11
  br label %11123

11106:                                            ; preds = %11084, %11077
  %11107 = load i32, ptr %298, align 4, !tbaa !5
  %11108 = call ptr @__errno_location() #12
  store i32 %11107, ptr %11108, align 4, !tbaa !5
  %11109 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11110 = load i32, ptr @test_count, align 4, !tbaa !5
  %11111 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11112 = load i32, ptr %11111, align 4, !tbaa !5
  %11113 = call ptr @s2n_strerror(i32 noundef %11112, ptr noundef @.str.4)
  %11114 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11115 = load i32, ptr %11114, align 4, !tbaa !5
  %11116 = call ptr @s2n_strerror_debug(i32 noundef %11115, ptr noundef @.str.4)
  %11117 = call ptr @__errno_location() #12
  %11118 = load i32, ptr %11117, align 4, !tbaa !5
  %11119 = call ptr @strerror(i32 noundef %11118) #11
  %11120 = call ptr @__errno_location() #12
  %11121 = load i32, ptr %11120, align 4, !tbaa !5
  %11122 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11109, ptr noundef @.str.5, i32 noundef %11110, ptr noundef @.str.91, ptr noundef @.str.1, i32 noundef 495, ptr noundef %11113, ptr noundef %11116, ptr noundef %11119, i32 noundef %11121) #11
  br label %11123

11123:                                            ; preds = %11106, %11089
  call void @llvm.lifetime.end.p0(i64 4, ptr %298) #11
  br label %11124

11124:                                            ; preds = %11123
  br label %11125

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

11126:                                            ; No predecessors!
  br label %11127

11127:                                            ; preds = %11126
  br label %11128

11128:                                            ; preds = %11127, %11069
  br label %11129

11129:                                            ; preds = %11128
  br label %11130

11130:                                            ; preds = %11129
  br label %11131

11131:                                            ; preds = %11130
  %11132 = load i32, ptr @test_count, align 4, !tbaa !5
  %11133 = add nsw i32 %11132, 1
  store i32 %11133, ptr @test_count, align 4, !tbaa !5
  %11134 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11135 = load i32, ptr %11134, align 4, !tbaa !5
  %11136 = call ptr @s2n_strerror_debug(i32 noundef %11135, ptr noundef @.str.4)
  %11137 = icmp eq ptr %11136, null
  br i1 %11137, label %11138, label %11191

11138:                                            ; preds = %11131
  br label %11139

11139:                                            ; preds = %11138
  br label %11140

11140:                                            ; preds = %11139
  call void @llvm.lifetime.start.p0(i64 4, ptr %299) #11
  %11141 = call ptr @__errno_location() #12
  %11142 = load i32, ptr %11141, align 4, !tbaa !5
  store i32 %11142, ptr %299, align 4, !tbaa !5
  %11143 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11144 = call i32 @s2n_print_stacktrace(ptr noundef %11143)
  %11145 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11146 = trunc i8 %11145 to i1
  br i1 %11146, label %11147, label %11169

11147:                                            ; preds = %11140
  %11148 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11149 = call i32 @fileno(ptr noundef %11148) #11
  %11150 = call i32 @isatty(i32 noundef %11149) #11
  %11151 = icmp ne i32 %11150, 0
  br i1 %11151, label %11152, label %11169

11152:                                            ; preds = %11147
  %11153 = load i32, ptr %299, align 4, !tbaa !5
  %11154 = call ptr @__errno_location() #12
  store i32 %11153, ptr %11154, align 4, !tbaa !5
  %11155 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11156 = load i32, ptr @test_count, align 4, !tbaa !5
  %11157 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11158 = load i32, ptr %11157, align 4, !tbaa !5
  %11159 = call ptr @s2n_strerror(i32 noundef %11158, ptr noundef @.str.4)
  %11160 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11161 = load i32, ptr %11160, align 4, !tbaa !5
  %11162 = call ptr @s2n_strerror_debug(i32 noundef %11161, ptr noundef @.str.4)
  %11163 = call ptr @__errno_location() #12
  %11164 = load i32, ptr %11163, align 4, !tbaa !5
  %11165 = call ptr @strerror(i32 noundef %11164) #11
  %11166 = call ptr @__errno_location() #12
  %11167 = load i32, ptr %11166, align 4, !tbaa !5
  %11168 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11155, ptr noundef @.str.2, i32 noundef %11156, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 495, ptr noundef %11159, ptr noundef %11162, ptr noundef %11165, i32 noundef %11167) #11
  br label %11186

11169:                                            ; preds = %11147, %11140
  %11170 = load i32, ptr %299, align 4, !tbaa !5
  %11171 = call ptr @__errno_location() #12
  store i32 %11170, ptr %11171, align 4, !tbaa !5
  %11172 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11173 = load i32, ptr @test_count, align 4, !tbaa !5
  %11174 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11175 = load i32, ptr %11174, align 4, !tbaa !5
  %11176 = call ptr @s2n_strerror(i32 noundef %11175, ptr noundef @.str.4)
  %11177 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11178 = load i32, ptr %11177, align 4, !tbaa !5
  %11179 = call ptr @s2n_strerror_debug(i32 noundef %11178, ptr noundef @.str.4)
  %11180 = call ptr @__errno_location() #12
  %11181 = load i32, ptr %11180, align 4, !tbaa !5
  %11182 = call ptr @strerror(i32 noundef %11181) #11
  %11183 = call ptr @__errno_location() #12
  %11184 = load i32, ptr %11183, align 4, !tbaa !5
  %11185 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11172, ptr noundef @.str.5, i32 noundef %11173, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 495, ptr noundef %11176, ptr noundef %11179, ptr noundef %11182, i32 noundef %11184) #11
  br label %11186

11186:                                            ; preds = %11169, %11152
  call void @llvm.lifetime.end.p0(i64 4, ptr %299) #11
  br label %11187

11187:                                            ; preds = %11186
  br label %11188

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

11189:                                            ; No predecessors!
  br label %11190

11190:                                            ; preds = %11189
  br label %11191

11191:                                            ; preds = %11190, %11131
  br label %11192

11192:                                            ; preds = %11191
  br label %11193

11193:                                            ; preds = %11192
  br label %11194

11194:                                            ; preds = %11193
  br label %11195

11195:                                            ; preds = %11194
  br label %11196

11196:                                            ; preds = %11195
  %11197 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %11197, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %11198 = call ptr @__errno_location() #12
  store i32 0, ptr %11198, align 4, !tbaa !5
  br label %11199

11199:                                            ; preds = %11196
  br label %11200

11200:                                            ; preds = %11199
  br label %11201

11201:                                            ; preds = %11200
  br label %11202

11202:                                            ; preds = %11201
  br label %11203

11203:                                            ; preds = %11202
  br label %11204

11204:                                            ; preds = %11203
  br label %11205

11205:                                            ; preds = %11204
  %11206 = load i32, ptr @test_count, align 4, !tbaa !5
  %11207 = add nsw i32 %11206, 1
  store i32 %11207, ptr @test_count, align 4, !tbaa !5
  %11208 = load ptr, ptr %294, align 8, !tbaa !9
  %11209 = call i32 @s2n_record_max_write_size(ptr noundef %11208, i16 noundef zeroext 1, ptr noundef null)
  %11210 = getelementptr inbounds %struct.s2n_result, ptr %300, i32 0, i32 0
  store i32 %11209, ptr %11210, align 4
  %11211 = getelementptr inbounds %struct.s2n_result, ptr %300, i32 0, i32 0
  %11212 = load i32, ptr %11211, align 4
  %11213 = call zeroext i1 @s2n_result_is_error(i32 %11212)
  br i1 %11213, label %11267, label %11214

11214:                                            ; preds = %11205
  br label %11215

11215:                                            ; preds = %11214
  br label %11216

11216:                                            ; preds = %11215
  call void @llvm.lifetime.start.p0(i64 4, ptr %301) #11
  %11217 = call ptr @__errno_location() #12
  %11218 = load i32, ptr %11217, align 4, !tbaa !5
  store i32 %11218, ptr %301, align 4, !tbaa !5
  %11219 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11220 = call i32 @s2n_print_stacktrace(ptr noundef %11219)
  %11221 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11222 = trunc i8 %11221 to i1
  br i1 %11222, label %11223, label %11245

11223:                                            ; preds = %11216
  %11224 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11225 = call i32 @fileno(ptr noundef %11224) #11
  %11226 = call i32 @isatty(i32 noundef %11225) #11
  %11227 = icmp ne i32 %11226, 0
  br i1 %11227, label %11228, label %11245

11228:                                            ; preds = %11223
  %11229 = load i32, ptr %301, align 4, !tbaa !5
  %11230 = call ptr @__errno_location() #12
  store i32 %11229, ptr %11230, align 4, !tbaa !5
  %11231 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11232 = load i32, ptr @test_count, align 4, !tbaa !5
  %11233 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11234 = load i32, ptr %11233, align 4, !tbaa !5
  %11235 = call ptr @s2n_strerror(i32 noundef %11234, ptr noundef @.str.4)
  %11236 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11237 = load i32, ptr %11236, align 4, !tbaa !5
  %11238 = call ptr @s2n_strerror_debug(i32 noundef %11237, ptr noundef @.str.4)
  %11239 = call ptr @__errno_location() #12
  %11240 = load i32, ptr %11239, align 4, !tbaa !5
  %11241 = call ptr @strerror(i32 noundef %11240) #11
  %11242 = call ptr @__errno_location() #12
  %11243 = load i32, ptr %11242, align 4, !tbaa !5
  %11244 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11231, ptr noundef @.str.2, i32 noundef %11232, ptr noundef @.str.92, ptr noundef @.str.1, i32 noundef 496, ptr noundef %11235, ptr noundef %11238, ptr noundef %11241, i32 noundef %11243) #11
  br label %11262

11245:                                            ; preds = %11223, %11216
  %11246 = load i32, ptr %301, align 4, !tbaa !5
  %11247 = call ptr @__errno_location() #12
  store i32 %11246, ptr %11247, align 4, !tbaa !5
  %11248 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11249 = load i32, ptr @test_count, align 4, !tbaa !5
  %11250 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11251 = load i32, ptr %11250, align 4, !tbaa !5
  %11252 = call ptr @s2n_strerror(i32 noundef %11251, ptr noundef @.str.4)
  %11253 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11254 = load i32, ptr %11253, align 4, !tbaa !5
  %11255 = call ptr @s2n_strerror_debug(i32 noundef %11254, ptr noundef @.str.4)
  %11256 = call ptr @__errno_location() #12
  %11257 = load i32, ptr %11256, align 4, !tbaa !5
  %11258 = call ptr @strerror(i32 noundef %11257) #11
  %11259 = call ptr @__errno_location() #12
  %11260 = load i32, ptr %11259, align 4, !tbaa !5
  %11261 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11248, ptr noundef @.str.5, i32 noundef %11249, ptr noundef @.str.92, ptr noundef @.str.1, i32 noundef 496, ptr noundef %11252, ptr noundef %11255, ptr noundef %11258, i32 noundef %11260) #11
  br label %11262

11262:                                            ; preds = %11245, %11228
  call void @llvm.lifetime.end.p0(i64 4, ptr %301) #11
  br label %11263

11263:                                            ; preds = %11262
  br label %11264

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

11265:                                            ; No predecessors!
  br label %11266

11266:                                            ; preds = %11265
  br label %11267

11267:                                            ; preds = %11266, %11205
  br label %11268

11268:                                            ; preds = %11267
  br label %11269

11269:                                            ; preds = %11268
  br label %11270

11270:                                            ; preds = %11269
  %11271 = load i32, ptr @test_count, align 4, !tbaa !5
  %11272 = add nsw i32 %11271, 1
  store i32 %11272, ptr @test_count, align 4, !tbaa !5
  %11273 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11274 = load i32, ptr %11273, align 4, !tbaa !5
  %11275 = icmp eq i32 %11274, 402653193
  br i1 %11275, label %11329, label %11276

11276:                                            ; preds = %11270
  br label %11277

11277:                                            ; preds = %11276
  br label %11278

11278:                                            ; preds = %11277
  call void @llvm.lifetime.start.p0(i64 4, ptr %302) #11
  %11279 = call ptr @__errno_location() #12
  %11280 = load i32, ptr %11279, align 4, !tbaa !5
  store i32 %11280, ptr %302, align 4, !tbaa !5
  %11281 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11282 = call i32 @s2n_print_stacktrace(ptr noundef %11281)
  %11283 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11284 = trunc i8 %11283 to i1
  br i1 %11284, label %11285, label %11307

11285:                                            ; preds = %11278
  %11286 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11287 = call i32 @fileno(ptr noundef %11286) #11
  %11288 = call i32 @isatty(i32 noundef %11287) #11
  %11289 = icmp ne i32 %11288, 0
  br i1 %11289, label %11290, label %11307

11290:                                            ; preds = %11285
  %11291 = load i32, ptr %302, align 4, !tbaa !5
  %11292 = call ptr @__errno_location() #12
  store i32 %11291, ptr %11292, align 4, !tbaa !5
  %11293 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11294 = load i32, ptr @test_count, align 4, !tbaa !5
  %11295 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11296 = load i32, ptr %11295, align 4, !tbaa !5
  %11297 = call ptr @s2n_strerror(i32 noundef %11296, ptr noundef @.str.4)
  %11298 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11299 = load i32, ptr %11298, align 4, !tbaa !5
  %11300 = call ptr @s2n_strerror_debug(i32 noundef %11299, ptr noundef @.str.4)
  %11301 = call ptr @__errno_location() #12
  %11302 = load i32, ptr %11301, align 4, !tbaa !5
  %11303 = call ptr @strerror(i32 noundef %11302) #11
  %11304 = call ptr @__errno_location() #12
  %11305 = load i32, ptr %11304, align 4, !tbaa !5
  %11306 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11293, ptr noundef @.str.2, i32 noundef %11294, ptr noundef @.str.91, ptr noundef @.str.1, i32 noundef 496, ptr noundef %11297, ptr noundef %11300, ptr noundef %11303, i32 noundef %11305) #11
  br label %11324

11307:                                            ; preds = %11285, %11278
  %11308 = load i32, ptr %302, align 4, !tbaa !5
  %11309 = call ptr @__errno_location() #12
  store i32 %11308, ptr %11309, align 4, !tbaa !5
  %11310 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11311 = load i32, ptr @test_count, align 4, !tbaa !5
  %11312 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11313 = load i32, ptr %11312, align 4, !tbaa !5
  %11314 = call ptr @s2n_strerror(i32 noundef %11313, ptr noundef @.str.4)
  %11315 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11316 = load i32, ptr %11315, align 4, !tbaa !5
  %11317 = call ptr @s2n_strerror_debug(i32 noundef %11316, ptr noundef @.str.4)
  %11318 = call ptr @__errno_location() #12
  %11319 = load i32, ptr %11318, align 4, !tbaa !5
  %11320 = call ptr @strerror(i32 noundef %11319) #11
  %11321 = call ptr @__errno_location() #12
  %11322 = load i32, ptr %11321, align 4, !tbaa !5
  %11323 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11310, ptr noundef @.str.5, i32 noundef %11311, ptr noundef @.str.91, ptr noundef @.str.1, i32 noundef 496, ptr noundef %11314, ptr noundef %11317, ptr noundef %11320, i32 noundef %11322) #11
  br label %11324

11324:                                            ; preds = %11307, %11290
  call void @llvm.lifetime.end.p0(i64 4, ptr %302) #11
  br label %11325

11325:                                            ; preds = %11324
  br label %11326

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

11327:                                            ; No predecessors!
  br label %11328

11328:                                            ; preds = %11327
  br label %11329

11329:                                            ; preds = %11328, %11270
  br label %11330

11330:                                            ; preds = %11329
  br label %11331

11331:                                            ; preds = %11330
  br label %11332

11332:                                            ; preds = %11331
  %11333 = load i32, ptr @test_count, align 4, !tbaa !5
  %11334 = add nsw i32 %11333, 1
  store i32 %11334, ptr @test_count, align 4, !tbaa !5
  %11335 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11336 = load i32, ptr %11335, align 4, !tbaa !5
  %11337 = call ptr @s2n_strerror_debug(i32 noundef %11336, ptr noundef @.str.4)
  %11338 = icmp eq ptr %11337, null
  br i1 %11338, label %11339, label %11392

11339:                                            ; preds = %11332
  br label %11340

11340:                                            ; preds = %11339
  br label %11341

11341:                                            ; preds = %11340
  call void @llvm.lifetime.start.p0(i64 4, ptr %303) #11
  %11342 = call ptr @__errno_location() #12
  %11343 = load i32, ptr %11342, align 4, !tbaa !5
  store i32 %11343, ptr %303, align 4, !tbaa !5
  %11344 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11345 = call i32 @s2n_print_stacktrace(ptr noundef %11344)
  %11346 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11347 = trunc i8 %11346 to i1
  br i1 %11347, label %11348, label %11370

11348:                                            ; preds = %11341
  %11349 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11350 = call i32 @fileno(ptr noundef %11349) #11
  %11351 = call i32 @isatty(i32 noundef %11350) #11
  %11352 = icmp ne i32 %11351, 0
  br i1 %11352, label %11353, label %11370

11353:                                            ; preds = %11348
  %11354 = load i32, ptr %303, align 4, !tbaa !5
  %11355 = call ptr @__errno_location() #12
  store i32 %11354, ptr %11355, align 4, !tbaa !5
  %11356 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11357 = load i32, ptr @test_count, align 4, !tbaa !5
  %11358 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11359 = load i32, ptr %11358, align 4, !tbaa !5
  %11360 = call ptr @s2n_strerror(i32 noundef %11359, ptr noundef @.str.4)
  %11361 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11362 = load i32, ptr %11361, align 4, !tbaa !5
  %11363 = call ptr @s2n_strerror_debug(i32 noundef %11362, ptr noundef @.str.4)
  %11364 = call ptr @__errno_location() #12
  %11365 = load i32, ptr %11364, align 4, !tbaa !5
  %11366 = call ptr @strerror(i32 noundef %11365) #11
  %11367 = call ptr @__errno_location() #12
  %11368 = load i32, ptr %11367, align 4, !tbaa !5
  %11369 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11356, ptr noundef @.str.2, i32 noundef %11357, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 496, ptr noundef %11360, ptr noundef %11363, ptr noundef %11366, i32 noundef %11368) #11
  br label %11387

11370:                                            ; preds = %11348, %11341
  %11371 = load i32, ptr %303, align 4, !tbaa !5
  %11372 = call ptr @__errno_location() #12
  store i32 %11371, ptr %11372, align 4, !tbaa !5
  %11373 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11374 = load i32, ptr @test_count, align 4, !tbaa !5
  %11375 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11376 = load i32, ptr %11375, align 4, !tbaa !5
  %11377 = call ptr @s2n_strerror(i32 noundef %11376, ptr noundef @.str.4)
  %11378 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11379 = load i32, ptr %11378, align 4, !tbaa !5
  %11380 = call ptr @s2n_strerror_debug(i32 noundef %11379, ptr noundef @.str.4)
  %11381 = call ptr @__errno_location() #12
  %11382 = load i32, ptr %11381, align 4, !tbaa !5
  %11383 = call ptr @strerror(i32 noundef %11382) #11
  %11384 = call ptr @__errno_location() #12
  %11385 = load i32, ptr %11384, align 4, !tbaa !5
  %11386 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11373, ptr noundef @.str.5, i32 noundef %11374, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 496, ptr noundef %11377, ptr noundef %11380, ptr noundef %11383, i32 noundef %11385) #11
  br label %11387

11387:                                            ; preds = %11370, %11353
  call void @llvm.lifetime.end.p0(i64 4, ptr %303) #11
  br label %11388

11388:                                            ; preds = %11387
  br label %11389

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

11390:                                            ; No predecessors!
  br label %11391

11391:                                            ; preds = %11390
  br label %11392

11392:                                            ; preds = %11391, %11332
  br label %11393

11393:                                            ; preds = %11392
  br label %11394

11394:                                            ; preds = %11393
  br label %11395

11395:                                            ; preds = %11394
  br label %11396

11396:                                            ; preds = %11395
  br label %11397

11397:                                            ; preds = %11396
  %11398 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %11398, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %11399 = call ptr @__errno_location() #12
  store i32 0, ptr %11399, align 4, !tbaa !5
  br label %11400

11400:                                            ; preds = %11397
  br label %11401

11401:                                            ; preds = %11400
  br label %11402

11402:                                            ; preds = %11401
  br label %11403

11403:                                            ; preds = %11402
  %11404 = load ptr, ptr %294, align 8, !tbaa !9
  %11405 = getelementptr inbounds %struct.s2n_connection, ptr %11404, i32 0, i32 23
  store i8 0, ptr %11405, align 4, !tbaa !57
  %11406 = load ptr, ptr %294, align 8, !tbaa !9
  %11407 = getelementptr inbounds %struct.s2n_connection, ptr %11406, i32 0, i32 52
  %11408 = getelementptr inbounds %struct.s2n_handshake, ptr %11407, i32 0, i32 6
  store i32 0, ptr %11408, align 4, !tbaa !79
  br label %11409

11409:                                            ; preds = %11403
  %11410 = load i32, ptr @test_count, align 4, !tbaa !5
  %11411 = add nsw i32 %11410, 1
  store i32 %11411, ptr @test_count, align 4, !tbaa !5
  %11412 = load ptr, ptr %294, align 8, !tbaa !9
  %11413 = call i32 @s2n_record_max_write_size(ptr noundef %11412, i16 noundef zeroext 16384, ptr noundef %293)
  %11414 = getelementptr inbounds %struct.s2n_result, ptr %304, i32 0, i32 0
  store i32 %11413, ptr %11414, align 4
  %11415 = getelementptr inbounds %struct.s2n_result, ptr %304, i32 0, i32 0
  %11416 = load i32, ptr %11415, align 4
  %11417 = call zeroext i1 @s2n_result_is_ok(i32 %11416)
  br i1 %11417, label %11471, label %11418

11418:                                            ; preds = %11409
  br label %11419

11419:                                            ; preds = %11418
  br label %11420

11420:                                            ; preds = %11419
  call void @llvm.lifetime.start.p0(i64 4, ptr %305) #11
  %11421 = call ptr @__errno_location() #12
  %11422 = load i32, ptr %11421, align 4, !tbaa !5
  store i32 %11422, ptr %305, align 4, !tbaa !5
  %11423 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11424 = call i32 @s2n_print_stacktrace(ptr noundef %11423)
  %11425 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11426 = trunc i8 %11425 to i1
  br i1 %11426, label %11427, label %11449

11427:                                            ; preds = %11420
  %11428 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11429 = call i32 @fileno(ptr noundef %11428) #11
  %11430 = call i32 @isatty(i32 noundef %11429) #11
  %11431 = icmp ne i32 %11430, 0
  br i1 %11431, label %11432, label %11449

11432:                                            ; preds = %11427
  %11433 = load i32, ptr %305, align 4, !tbaa !5
  %11434 = call ptr @__errno_location() #12
  store i32 %11433, ptr %11434, align 4, !tbaa !5
  %11435 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11436 = load i32, ptr @test_count, align 4, !tbaa !5
  %11437 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11438 = load i32, ptr %11437, align 4, !tbaa !5
  %11439 = call ptr @s2n_strerror(i32 noundef %11438, ptr noundef @.str.4)
  %11440 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11441 = load i32, ptr %11440, align 4, !tbaa !5
  %11442 = call ptr @s2n_strerror_debug(i32 noundef %11441, ptr noundef @.str.4)
  %11443 = call ptr @__errno_location() #12
  %11444 = load i32, ptr %11443, align 4, !tbaa !5
  %11445 = call ptr @strerror(i32 noundef %11444) #11
  %11446 = call ptr @__errno_location() #12
  %11447 = load i32, ptr %11446, align 4, !tbaa !5
  %11448 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11435, ptr noundef @.str.2, i32 noundef %11436, ptr noundef @.str.93, ptr noundef @.str.1, i32 noundef 500, ptr noundef %11439, ptr noundef %11442, ptr noundef %11445, i32 noundef %11447) #11
  br label %11466

11449:                                            ; preds = %11427, %11420
  %11450 = load i32, ptr %305, align 4, !tbaa !5
  %11451 = call ptr @__errno_location() #12
  store i32 %11450, ptr %11451, align 4, !tbaa !5
  %11452 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11453 = load i32, ptr @test_count, align 4, !tbaa !5
  %11454 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11455 = load i32, ptr %11454, align 4, !tbaa !5
  %11456 = call ptr @s2n_strerror(i32 noundef %11455, ptr noundef @.str.4)
  %11457 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11458 = load i32, ptr %11457, align 4, !tbaa !5
  %11459 = call ptr @s2n_strerror_debug(i32 noundef %11458, ptr noundef @.str.4)
  %11460 = call ptr @__errno_location() #12
  %11461 = load i32, ptr %11460, align 4, !tbaa !5
  %11462 = call ptr @strerror(i32 noundef %11461) #11
  %11463 = call ptr @__errno_location() #12
  %11464 = load i32, ptr %11463, align 4, !tbaa !5
  %11465 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11452, ptr noundef @.str.5, i32 noundef %11453, ptr noundef @.str.93, ptr noundef @.str.1, i32 noundef 500, ptr noundef %11456, ptr noundef %11459, ptr noundef %11462, i32 noundef %11464) #11
  br label %11466

11466:                                            ; preds = %11449, %11432
  call void @llvm.lifetime.end.p0(i64 4, ptr %305) #11
  br label %11467

11467:                                            ; preds = %11466
  br label %11468

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

11469:                                            ; No predecessors!
  br label %11470

11470:                                            ; preds = %11469
  br label %11471

11471:                                            ; preds = %11470, %11409
  br label %11472

11472:                                            ; preds = %11471
  br label %11473

11473:                                            ; preds = %11472
  br label %11474

11474:                                            ; preds = %11473
  %11475 = load i32, ptr @test_count, align 4, !tbaa !5
  %11476 = add nsw i32 %11475, 1
  store i32 %11476, ptr @test_count, align 4, !tbaa !5
  %11477 = load i16, ptr %293, align 2, !tbaa !62
  %11478 = zext i16 %11477 to i32
  %11479 = icmp eq i32 %11478, 17413
  br i1 %11479, label %11533, label %11480

11480:                                            ; preds = %11474
  br label %11481

11481:                                            ; preds = %11480
  br label %11482

11482:                                            ; preds = %11481
  call void @llvm.lifetime.start.p0(i64 4, ptr %306) #11
  %11483 = call ptr @__errno_location() #12
  %11484 = load i32, ptr %11483, align 4, !tbaa !5
  store i32 %11484, ptr %306, align 4, !tbaa !5
  %11485 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11486 = call i32 @s2n_print_stacktrace(ptr noundef %11485)
  %11487 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11488 = trunc i8 %11487 to i1
  br i1 %11488, label %11489, label %11511

11489:                                            ; preds = %11482
  %11490 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11491 = call i32 @fileno(ptr noundef %11490) #11
  %11492 = call i32 @isatty(i32 noundef %11491) #11
  %11493 = icmp ne i32 %11492, 0
  br i1 %11493, label %11494, label %11511

11494:                                            ; preds = %11489
  %11495 = load i32, ptr %306, align 4, !tbaa !5
  %11496 = call ptr @__errno_location() #12
  store i32 %11495, ptr %11496, align 4, !tbaa !5
  %11497 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11498 = load i32, ptr @test_count, align 4, !tbaa !5
  %11499 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11500 = load i32, ptr %11499, align 4, !tbaa !5
  %11501 = call ptr @s2n_strerror(i32 noundef %11500, ptr noundef @.str.4)
  %11502 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11503 = load i32, ptr %11502, align 4, !tbaa !5
  %11504 = call ptr @s2n_strerror_debug(i32 noundef %11503, ptr noundef @.str.4)
  %11505 = call ptr @__errno_location() #12
  %11506 = load i32, ptr %11505, align 4, !tbaa !5
  %11507 = call ptr @strerror(i32 noundef %11506) #11
  %11508 = call ptr @__errno_location() #12
  %11509 = load i32, ptr %11508, align 4, !tbaa !5
  %11510 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11497, ptr noundef @.str.2, i32 noundef %11498, ptr noundef @.str.94, ptr noundef @.str.1, i32 noundef 501, ptr noundef %11501, ptr noundef %11504, ptr noundef %11507, i32 noundef %11509) #11
  br label %11528

11511:                                            ; preds = %11489, %11482
  %11512 = load i32, ptr %306, align 4, !tbaa !5
  %11513 = call ptr @__errno_location() #12
  store i32 %11512, ptr %11513, align 4, !tbaa !5
  %11514 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11515 = load i32, ptr @test_count, align 4, !tbaa !5
  %11516 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11517 = load i32, ptr %11516, align 4, !tbaa !5
  %11518 = call ptr @s2n_strerror(i32 noundef %11517, ptr noundef @.str.4)
  %11519 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11520 = load i32, ptr %11519, align 4, !tbaa !5
  %11521 = call ptr @s2n_strerror_debug(i32 noundef %11520, ptr noundef @.str.4)
  %11522 = call ptr @__errno_location() #12
  %11523 = load i32, ptr %11522, align 4, !tbaa !5
  %11524 = call ptr @strerror(i32 noundef %11523) #11
  %11525 = call ptr @__errno_location() #12
  %11526 = load i32, ptr %11525, align 4, !tbaa !5
  %11527 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11514, ptr noundef @.str.5, i32 noundef %11515, ptr noundef @.str.94, ptr noundef @.str.1, i32 noundef 501, ptr noundef %11518, ptr noundef %11521, ptr noundef %11524, i32 noundef %11526) #11
  br label %11528

11528:                                            ; preds = %11511, %11494
  call void @llvm.lifetime.end.p0(i64 4, ptr %306) #11
  br label %11529

11529:                                            ; preds = %11528
  br label %11530

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

11531:                                            ; No predecessors!
  br label %11532

11532:                                            ; preds = %11531
  br label %11533

11533:                                            ; preds = %11532, %11474
  br label %11534

11534:                                            ; preds = %11533
  br label %11535

11535:                                            ; preds = %11534
  %11536 = load ptr, ptr %294, align 8, !tbaa !9
  %11537 = getelementptr inbounds %struct.s2n_connection, ptr %11536, i32 0, i32 52
  %11538 = getelementptr inbounds %struct.s2n_handshake, ptr %11537, i32 0, i32 6
  store i32 1, ptr %11538, align 4, !tbaa !79
  br label %11539

11539:                                            ; preds = %11535
  %11540 = load i32, ptr @test_count, align 4, !tbaa !5
  %11541 = add nsw i32 %11540, 1
  store i32 %11541, ptr @test_count, align 4, !tbaa !5
  %11542 = load ptr, ptr %294, align 8, !tbaa !9
  %11543 = call i32 @s2n_record_max_write_size(ptr noundef %11542, i16 noundef zeroext 16384, ptr noundef %293)
  %11544 = getelementptr inbounds %struct.s2n_result, ptr %307, i32 0, i32 0
  store i32 %11543, ptr %11544, align 4
  %11545 = getelementptr inbounds %struct.s2n_result, ptr %307, i32 0, i32 0
  %11546 = load i32, ptr %11545, align 4
  %11547 = call zeroext i1 @s2n_result_is_ok(i32 %11546)
  br i1 %11547, label %11601, label %11548

11548:                                            ; preds = %11539
  br label %11549

11549:                                            ; preds = %11548
  br label %11550

11550:                                            ; preds = %11549
  call void @llvm.lifetime.start.p0(i64 4, ptr %308) #11
  %11551 = call ptr @__errno_location() #12
  %11552 = load i32, ptr %11551, align 4, !tbaa !5
  store i32 %11552, ptr %308, align 4, !tbaa !5
  %11553 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11554 = call i32 @s2n_print_stacktrace(ptr noundef %11553)
  %11555 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11556 = trunc i8 %11555 to i1
  br i1 %11556, label %11557, label %11579

11557:                                            ; preds = %11550
  %11558 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11559 = call i32 @fileno(ptr noundef %11558) #11
  %11560 = call i32 @isatty(i32 noundef %11559) #11
  %11561 = icmp ne i32 %11560, 0
  br i1 %11561, label %11562, label %11579

11562:                                            ; preds = %11557
  %11563 = load i32, ptr %308, align 4, !tbaa !5
  %11564 = call ptr @__errno_location() #12
  store i32 %11563, ptr %11564, align 4, !tbaa !5
  %11565 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11566 = load i32, ptr @test_count, align 4, !tbaa !5
  %11567 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11568 = load i32, ptr %11567, align 4, !tbaa !5
  %11569 = call ptr @s2n_strerror(i32 noundef %11568, ptr noundef @.str.4)
  %11570 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11571 = load i32, ptr %11570, align 4, !tbaa !5
  %11572 = call ptr @s2n_strerror_debug(i32 noundef %11571, ptr noundef @.str.4)
  %11573 = call ptr @__errno_location() #12
  %11574 = load i32, ptr %11573, align 4, !tbaa !5
  %11575 = call ptr @strerror(i32 noundef %11574) #11
  %11576 = call ptr @__errno_location() #12
  %11577 = load i32, ptr %11576, align 4, !tbaa !5
  %11578 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11565, ptr noundef @.str.2, i32 noundef %11566, ptr noundef @.str.93, ptr noundef @.str.1, i32 noundef 504, ptr noundef %11569, ptr noundef %11572, ptr noundef %11575, i32 noundef %11577) #11
  br label %11596

11579:                                            ; preds = %11557, %11550
  %11580 = load i32, ptr %308, align 4, !tbaa !5
  %11581 = call ptr @__errno_location() #12
  store i32 %11580, ptr %11581, align 4, !tbaa !5
  %11582 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11583 = load i32, ptr @test_count, align 4, !tbaa !5
  %11584 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11585 = load i32, ptr %11584, align 4, !tbaa !5
  %11586 = call ptr @s2n_strerror(i32 noundef %11585, ptr noundef @.str.4)
  %11587 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11588 = load i32, ptr %11587, align 4, !tbaa !5
  %11589 = call ptr @s2n_strerror_debug(i32 noundef %11588, ptr noundef @.str.4)
  %11590 = call ptr @__errno_location() #12
  %11591 = load i32, ptr %11590, align 4, !tbaa !5
  %11592 = call ptr @strerror(i32 noundef %11591) #11
  %11593 = call ptr @__errno_location() #12
  %11594 = load i32, ptr %11593, align 4, !tbaa !5
  %11595 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11582, ptr noundef @.str.5, i32 noundef %11583, ptr noundef @.str.93, ptr noundef @.str.1, i32 noundef 504, ptr noundef %11586, ptr noundef %11589, ptr noundef %11592, i32 noundef %11594) #11
  br label %11596

11596:                                            ; preds = %11579, %11562
  call void @llvm.lifetime.end.p0(i64 4, ptr %308) #11
  br label %11597

11597:                                            ; preds = %11596
  br label %11598

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

11599:                                            ; No predecessors!
  br label %11600

11600:                                            ; preds = %11599
  br label %11601

11601:                                            ; preds = %11600, %11539
  br label %11602

11602:                                            ; preds = %11601
  br label %11603

11603:                                            ; preds = %11602
  br label %11604

11604:                                            ; preds = %11603
  %11605 = load i32, ptr @test_count, align 4, !tbaa !5
  %11606 = add nsw i32 %11605, 1
  store i32 %11606, ptr @test_count, align 4, !tbaa !5
  %11607 = load i16, ptr %293, align 2, !tbaa !62
  %11608 = zext i16 %11607 to i32
  %11609 = icmp eq i32 %11608, 17413
  br i1 %11609, label %11663, label %11610

11610:                                            ; preds = %11604
  br label %11611

11611:                                            ; preds = %11610
  br label %11612

11612:                                            ; preds = %11611
  call void @llvm.lifetime.start.p0(i64 4, ptr %309) #11
  %11613 = call ptr @__errno_location() #12
  %11614 = load i32, ptr %11613, align 4, !tbaa !5
  store i32 %11614, ptr %309, align 4, !tbaa !5
  %11615 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11616 = call i32 @s2n_print_stacktrace(ptr noundef %11615)
  %11617 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11618 = trunc i8 %11617 to i1
  br i1 %11618, label %11619, label %11641

11619:                                            ; preds = %11612
  %11620 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11621 = call i32 @fileno(ptr noundef %11620) #11
  %11622 = call i32 @isatty(i32 noundef %11621) #11
  %11623 = icmp ne i32 %11622, 0
  br i1 %11623, label %11624, label %11641

11624:                                            ; preds = %11619
  %11625 = load i32, ptr %309, align 4, !tbaa !5
  %11626 = call ptr @__errno_location() #12
  store i32 %11625, ptr %11626, align 4, !tbaa !5
  %11627 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11628 = load i32, ptr @test_count, align 4, !tbaa !5
  %11629 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11630 = load i32, ptr %11629, align 4, !tbaa !5
  %11631 = call ptr @s2n_strerror(i32 noundef %11630, ptr noundef @.str.4)
  %11632 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11633 = load i32, ptr %11632, align 4, !tbaa !5
  %11634 = call ptr @s2n_strerror_debug(i32 noundef %11633, ptr noundef @.str.4)
  %11635 = call ptr @__errno_location() #12
  %11636 = load i32, ptr %11635, align 4, !tbaa !5
  %11637 = call ptr @strerror(i32 noundef %11636) #11
  %11638 = call ptr @__errno_location() #12
  %11639 = load i32, ptr %11638, align 4, !tbaa !5
  %11640 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11627, ptr noundef @.str.2, i32 noundef %11628, ptr noundef @.str.94, ptr noundef @.str.1, i32 noundef 505, ptr noundef %11631, ptr noundef %11634, ptr noundef %11637, i32 noundef %11639) #11
  br label %11658

11641:                                            ; preds = %11619, %11612
  %11642 = load i32, ptr %309, align 4, !tbaa !5
  %11643 = call ptr @__errno_location() #12
  store i32 %11642, ptr %11643, align 4, !tbaa !5
  %11644 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11645 = load i32, ptr @test_count, align 4, !tbaa !5
  %11646 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11647 = load i32, ptr %11646, align 4, !tbaa !5
  %11648 = call ptr @s2n_strerror(i32 noundef %11647, ptr noundef @.str.4)
  %11649 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11650 = load i32, ptr %11649, align 4, !tbaa !5
  %11651 = call ptr @s2n_strerror_debug(i32 noundef %11650, ptr noundef @.str.4)
  %11652 = call ptr @__errno_location() #12
  %11653 = load i32, ptr %11652, align 4, !tbaa !5
  %11654 = call ptr @strerror(i32 noundef %11653) #11
  %11655 = call ptr @__errno_location() #12
  %11656 = load i32, ptr %11655, align 4, !tbaa !5
  %11657 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11644, ptr noundef @.str.5, i32 noundef %11645, ptr noundef @.str.94, ptr noundef @.str.1, i32 noundef 505, ptr noundef %11648, ptr noundef %11651, ptr noundef %11654, i32 noundef %11656) #11
  br label %11658

11658:                                            ; preds = %11641, %11624
  call void @llvm.lifetime.end.p0(i64 4, ptr %309) #11
  br label %11659

11659:                                            ; preds = %11658
  br label %11660

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

11661:                                            ; No predecessors!
  br label %11662

11662:                                            ; preds = %11661
  br label %11663

11663:                                            ; preds = %11662, %11604
  br label %11664

11664:                                            ; preds = %11663
  br label %11665

11665:                                            ; preds = %11664
  %11666 = load ptr, ptr %294, align 8, !tbaa !9
  %11667 = getelementptr inbounds %struct.s2n_connection, ptr %11666, i32 0, i32 23
  store i8 33, ptr %11667, align 4, !tbaa !57
  br label %11668

11668:                                            ; preds = %11665
  %11669 = load i32, ptr @test_count, align 4, !tbaa !5
  %11670 = add nsw i32 %11669, 1
  store i32 %11670, ptr @test_count, align 4, !tbaa !5
  %11671 = load ptr, ptr %294, align 8, !tbaa !9
  %11672 = call i32 @s2n_record_max_write_size(ptr noundef %11671, i16 noundef zeroext 16384, ptr noundef %293)
  %11673 = getelementptr inbounds %struct.s2n_result, ptr %310, i32 0, i32 0
  store i32 %11672, ptr %11673, align 4
  %11674 = getelementptr inbounds %struct.s2n_result, ptr %310, i32 0, i32 0
  %11675 = load i32, ptr %11674, align 4
  %11676 = call zeroext i1 @s2n_result_is_ok(i32 %11675)
  br i1 %11676, label %11730, label %11677

11677:                                            ; preds = %11668
  br label %11678

11678:                                            ; preds = %11677
  br label %11679

11679:                                            ; preds = %11678
  call void @llvm.lifetime.start.p0(i64 4, ptr %311) #11
  %11680 = call ptr @__errno_location() #12
  %11681 = load i32, ptr %11680, align 4, !tbaa !5
  store i32 %11681, ptr %311, align 4, !tbaa !5
  %11682 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11683 = call i32 @s2n_print_stacktrace(ptr noundef %11682)
  %11684 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11685 = trunc i8 %11684 to i1
  br i1 %11685, label %11686, label %11708

11686:                                            ; preds = %11679
  %11687 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11688 = call i32 @fileno(ptr noundef %11687) #11
  %11689 = call i32 @isatty(i32 noundef %11688) #11
  %11690 = icmp ne i32 %11689, 0
  br i1 %11690, label %11691, label %11708

11691:                                            ; preds = %11686
  %11692 = load i32, ptr %311, align 4, !tbaa !5
  %11693 = call ptr @__errno_location() #12
  store i32 %11692, ptr %11693, align 4, !tbaa !5
  %11694 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11695 = load i32, ptr @test_count, align 4, !tbaa !5
  %11696 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11697 = load i32, ptr %11696, align 4, !tbaa !5
  %11698 = call ptr @s2n_strerror(i32 noundef %11697, ptr noundef @.str.4)
  %11699 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11700 = load i32, ptr %11699, align 4, !tbaa !5
  %11701 = call ptr @s2n_strerror_debug(i32 noundef %11700, ptr noundef @.str.4)
  %11702 = call ptr @__errno_location() #12
  %11703 = load i32, ptr %11702, align 4, !tbaa !5
  %11704 = call ptr @strerror(i32 noundef %11703) #11
  %11705 = call ptr @__errno_location() #12
  %11706 = load i32, ptr %11705, align 4, !tbaa !5
  %11707 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11694, ptr noundef @.str.2, i32 noundef %11695, ptr noundef @.str.93, ptr noundef @.str.1, i32 noundef 508, ptr noundef %11698, ptr noundef %11701, ptr noundef %11704, i32 noundef %11706) #11
  br label %11725

11708:                                            ; preds = %11686, %11679
  %11709 = load i32, ptr %311, align 4, !tbaa !5
  %11710 = call ptr @__errno_location() #12
  store i32 %11709, ptr %11710, align 4, !tbaa !5
  %11711 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11712 = load i32, ptr @test_count, align 4, !tbaa !5
  %11713 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11714 = load i32, ptr %11713, align 4, !tbaa !5
  %11715 = call ptr @s2n_strerror(i32 noundef %11714, ptr noundef @.str.4)
  %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_debug(i32 noundef %11717, ptr noundef @.str.4)
  %11719 = call ptr @__errno_location() #12
  %11720 = load i32, ptr %11719, align 4, !tbaa !5
  %11721 = call ptr @strerror(i32 noundef %11720) #11
  %11722 = call ptr @__errno_location() #12
  %11723 = load i32, ptr %11722, align 4, !tbaa !5
  %11724 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11711, ptr noundef @.str.5, i32 noundef %11712, ptr noundef @.str.93, ptr noundef @.str.1, i32 noundef 508, ptr noundef %11715, ptr noundef %11718, ptr noundef %11721, i32 noundef %11723) #11
  br label %11725

11725:                                            ; preds = %11708, %11691
  call void @llvm.lifetime.end.p0(i64 4, ptr %311) #11
  br label %11726

11726:                                            ; preds = %11725
  br label %11727

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

11728:                                            ; No predecessors!
  br label %11729

11729:                                            ; preds = %11728
  br label %11730

11730:                                            ; preds = %11729, %11668
  br label %11731

11731:                                            ; preds = %11730
  br label %11732

11732:                                            ; preds = %11731
  br label %11733

11733:                                            ; preds = %11732
  %11734 = load i32, ptr @test_count, align 4, !tbaa !5
  %11735 = add nsw i32 %11734, 1
  store i32 %11735, ptr @test_count, align 4, !tbaa !5
  %11736 = load i16, ptr %293, align 2, !tbaa !62
  %11737 = zext i16 %11736 to i32
  %11738 = icmp eq i32 %11737, 17413
  br i1 %11738, label %11792, label %11739

11739:                                            ; preds = %11733
  br label %11740

11740:                                            ; preds = %11739
  br label %11741

11741:                                            ; preds = %11740
  call void @llvm.lifetime.start.p0(i64 4, ptr %312) #11
  %11742 = call ptr @__errno_location() #12
  %11743 = load i32, ptr %11742, align 4, !tbaa !5
  store i32 %11743, ptr %312, align 4, !tbaa !5
  %11744 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11745 = call i32 @s2n_print_stacktrace(ptr noundef %11744)
  %11746 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11747 = trunc i8 %11746 to i1
  br i1 %11747, label %11748, label %11770

11748:                                            ; preds = %11741
  %11749 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11750 = call i32 @fileno(ptr noundef %11749) #11
  %11751 = call i32 @isatty(i32 noundef %11750) #11
  %11752 = icmp ne i32 %11751, 0
  br i1 %11752, label %11753, label %11770

11753:                                            ; preds = %11748
  %11754 = load i32, ptr %312, align 4, !tbaa !5
  %11755 = call ptr @__errno_location() #12
  store i32 %11754, ptr %11755, align 4, !tbaa !5
  %11756 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11757 = load i32, ptr @test_count, align 4, !tbaa !5
  %11758 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11759 = load i32, ptr %11758, align 4, !tbaa !5
  %11760 = call ptr @s2n_strerror(i32 noundef %11759, ptr noundef @.str.4)
  %11761 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11762 = load i32, ptr %11761, align 4, !tbaa !5
  %11763 = call ptr @s2n_strerror_debug(i32 noundef %11762, ptr noundef @.str.4)
  %11764 = call ptr @__errno_location() #12
  %11765 = load i32, ptr %11764, align 4, !tbaa !5
  %11766 = call ptr @strerror(i32 noundef %11765) #11
  %11767 = call ptr @__errno_location() #12
  %11768 = load i32, ptr %11767, align 4, !tbaa !5
  %11769 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11756, ptr noundef @.str.2, i32 noundef %11757, ptr noundef @.str.94, ptr noundef @.str.1, i32 noundef 509, ptr noundef %11760, ptr noundef %11763, ptr noundef %11766, i32 noundef %11768) #11
  br label %11787

11770:                                            ; preds = %11748, %11741
  %11771 = load i32, ptr %312, align 4, !tbaa !5
  %11772 = call ptr @__errno_location() #12
  store i32 %11771, ptr %11772, align 4, !tbaa !5
  %11773 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11774 = load i32, ptr @test_count, align 4, !tbaa !5
  %11775 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11776 = load i32, ptr %11775, align 4, !tbaa !5
  %11777 = call ptr @s2n_strerror(i32 noundef %11776, ptr noundef @.str.4)
  %11778 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11779 = load i32, ptr %11778, align 4, !tbaa !5
  %11780 = call ptr @s2n_strerror_debug(i32 noundef %11779, ptr noundef @.str.4)
  %11781 = call ptr @__errno_location() #12
  %11782 = load i32, ptr %11781, align 4, !tbaa !5
  %11783 = call ptr @strerror(i32 noundef %11782) #11
  %11784 = call ptr @__errno_location() #12
  %11785 = load i32, ptr %11784, align 4, !tbaa !5
  %11786 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11773, ptr noundef @.str.5, i32 noundef %11774, ptr noundef @.str.94, ptr noundef @.str.1, i32 noundef 509, ptr noundef %11777, ptr noundef %11780, ptr noundef %11783, i32 noundef %11785) #11
  br label %11787

11787:                                            ; preds = %11770, %11753
  call void @llvm.lifetime.end.p0(i64 4, ptr %312) #11
  br label %11788

11788:                                            ; preds = %11787
  br label %11789

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

11790:                                            ; No predecessors!
  br label %11791

11791:                                            ; preds = %11790
  br label %11792

11792:                                            ; preds = %11791, %11733
  br label %11793

11793:                                            ; preds = %11792
  br label %11794

11794:                                            ; preds = %11793
  %11795 = load ptr, ptr %294, align 8, !tbaa !9
  %11796 = getelementptr inbounds %struct.s2n_connection, ptr %11795, i32 0, i32 23
  store i8 34, ptr %11796, align 4, !tbaa !57
  br label %11797

11797:                                            ; preds = %11794
  %11798 = load i32, ptr @test_count, align 4, !tbaa !5
  %11799 = add nsw i32 %11798, 1
  store i32 %11799, ptr @test_count, align 4, !tbaa !5
  %11800 = load ptr, ptr %294, align 8, !tbaa !9
  %11801 = call i32 @s2n_record_max_write_size(ptr noundef %11800, i16 noundef zeroext 16384, ptr noundef %293)
  %11802 = getelementptr inbounds %struct.s2n_result, ptr %313, i32 0, i32 0
  store i32 %11801, ptr %11802, align 4
  %11803 = getelementptr inbounds %struct.s2n_result, ptr %313, i32 0, i32 0
  %11804 = load i32, ptr %11803, align 4
  %11805 = call zeroext i1 @s2n_result_is_ok(i32 %11804)
  br i1 %11805, label %11859, label %11806

11806:                                            ; preds = %11797
  br label %11807

11807:                                            ; preds = %11806
  br label %11808

11808:                                            ; preds = %11807
  call void @llvm.lifetime.start.p0(i64 4, ptr %314) #11
  %11809 = call ptr @__errno_location() #12
  %11810 = load i32, ptr %11809, align 4, !tbaa !5
  store i32 %11810, ptr %314, align 4, !tbaa !5
  %11811 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11812 = call i32 @s2n_print_stacktrace(ptr noundef %11811)
  %11813 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11814 = trunc i8 %11813 to i1
  br i1 %11814, label %11815, label %11837

11815:                                            ; preds = %11808
  %11816 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11817 = call i32 @fileno(ptr noundef %11816) #11
  %11818 = call i32 @isatty(i32 noundef %11817) #11
  %11819 = icmp ne i32 %11818, 0
  br i1 %11819, label %11820, label %11837

11820:                                            ; preds = %11815
  %11821 = load i32, ptr %314, align 4, !tbaa !5
  %11822 = call ptr @__errno_location() #12
  store i32 %11821, ptr %11822, align 4, !tbaa !5
  %11823 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11824 = load i32, ptr @test_count, align 4, !tbaa !5
  %11825 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11826 = load i32, ptr %11825, align 4, !tbaa !5
  %11827 = call ptr @s2n_strerror(i32 noundef %11826, ptr noundef @.str.4)
  %11828 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11829 = load i32, ptr %11828, align 4, !tbaa !5
  %11830 = call ptr @s2n_strerror_debug(i32 noundef %11829, ptr noundef @.str.4)
  %11831 = call ptr @__errno_location() #12
  %11832 = load i32, ptr %11831, align 4, !tbaa !5
  %11833 = call ptr @strerror(i32 noundef %11832) #11
  %11834 = call ptr @__errno_location() #12
  %11835 = load i32, ptr %11834, align 4, !tbaa !5
  %11836 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11823, ptr noundef @.str.2, i32 noundef %11824, ptr noundef @.str.93, ptr noundef @.str.1, i32 noundef 512, ptr noundef %11827, ptr noundef %11830, ptr noundef %11833, i32 noundef %11835) #11
  br label %11854

11837:                                            ; preds = %11815, %11808
  %11838 = load i32, ptr %314, align 4, !tbaa !5
  %11839 = call ptr @__errno_location() #12
  store i32 %11838, ptr %11839, align 4, !tbaa !5
  %11840 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11841 = load i32, ptr @test_count, align 4, !tbaa !5
  %11842 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11843 = load i32, ptr %11842, align 4, !tbaa !5
  %11844 = call ptr @s2n_strerror(i32 noundef %11843, ptr noundef @.str.4)
  %11845 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11846 = load i32, ptr %11845, align 4, !tbaa !5
  %11847 = call ptr @s2n_strerror_debug(i32 noundef %11846, ptr noundef @.str.4)
  %11848 = call ptr @__errno_location() #12
  %11849 = load i32, ptr %11848, align 4, !tbaa !5
  %11850 = call ptr @strerror(i32 noundef %11849) #11
  %11851 = call ptr @__errno_location() #12
  %11852 = load i32, ptr %11851, align 4, !tbaa !5
  %11853 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11840, ptr noundef @.str.5, i32 noundef %11841, ptr noundef @.str.93, ptr noundef @.str.1, i32 noundef 512, ptr noundef %11844, ptr noundef %11847, ptr noundef %11850, i32 noundef %11852) #11
  br label %11854

11854:                                            ; preds = %11837, %11820
  call void @llvm.lifetime.end.p0(i64 4, ptr %314) #11
  br label %11855

11855:                                            ; preds = %11854
  br label %11856

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

11857:                                            ; No predecessors!
  br label %11858

11858:                                            ; preds = %11857
  br label %11859

11859:                                            ; preds = %11858, %11797
  br label %11860

11860:                                            ; preds = %11859
  br label %11861

11861:                                            ; preds = %11860
  br label %11862

11862:                                            ; preds = %11861
  %11863 = load i32, ptr @test_count, align 4, !tbaa !5
  %11864 = add nsw i32 %11863, 1
  store i32 %11864, ptr @test_count, align 4, !tbaa !5
  %11865 = load i16, ptr %293, align 2, !tbaa !62
  %11866 = zext i16 %11865 to i32
  %11867 = icmp eq i32 %11866, 16645
  br i1 %11867, label %11921, label %11868

11868:                                            ; preds = %11862
  br label %11869

11869:                                            ; preds = %11868
  br label %11870

11870:                                            ; preds = %11869
  call void @llvm.lifetime.start.p0(i64 4, ptr %315) #11
  %11871 = call ptr @__errno_location() #12
  %11872 = load i32, ptr %11871, align 4, !tbaa !5
  store i32 %11872, ptr %315, align 4, !tbaa !5
  %11873 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11874 = call i32 @s2n_print_stacktrace(ptr noundef %11873)
  %11875 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11876 = trunc i8 %11875 to i1
  br i1 %11876, label %11877, label %11899

11877:                                            ; preds = %11870
  %11878 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11879 = call i32 @fileno(ptr noundef %11878) #11
  %11880 = call i32 @isatty(i32 noundef %11879) #11
  %11881 = icmp ne i32 %11880, 0
  br i1 %11881, label %11882, label %11899

11882:                                            ; preds = %11877
  %11883 = load i32, ptr %315, align 4, !tbaa !5
  %11884 = call ptr @__errno_location() #12
  store i32 %11883, ptr %11884, align 4, !tbaa !5
  %11885 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11886 = load i32, ptr @test_count, align 4, !tbaa !5
  %11887 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11888 = load i32, ptr %11887, align 4, !tbaa !5
  %11889 = call ptr @s2n_strerror(i32 noundef %11888, ptr noundef @.str.4)
  %11890 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11891 = load i32, ptr %11890, align 4, !tbaa !5
  %11892 = call ptr @s2n_strerror_debug(i32 noundef %11891, ptr noundef @.str.4)
  %11893 = call ptr @__errno_location() #12
  %11894 = load i32, ptr %11893, align 4, !tbaa !5
  %11895 = call ptr @strerror(i32 noundef %11894) #11
  %11896 = call ptr @__errno_location() #12
  %11897 = load i32, ptr %11896, align 4, !tbaa !5
  %11898 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11885, ptr noundef @.str.2, i32 noundef %11886, ptr noundef @.str.95, ptr noundef @.str.1, i32 noundef 513, ptr noundef %11889, ptr noundef %11892, ptr noundef %11895, i32 noundef %11897) #11
  br label %11916

11899:                                            ; preds = %11877, %11870
  %11900 = load i32, ptr %315, align 4, !tbaa !5
  %11901 = call ptr @__errno_location() #12
  store i32 %11900, ptr %11901, align 4, !tbaa !5
  %11902 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11903 = load i32, ptr @test_count, align 4, !tbaa !5
  %11904 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11905 = load i32, ptr %11904, align 4, !tbaa !5
  %11906 = call ptr @s2n_strerror(i32 noundef %11905, ptr noundef @.str.4)
  %11907 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11908 = load i32, ptr %11907, align 4, !tbaa !5
  %11909 = call ptr @s2n_strerror_debug(i32 noundef %11908, ptr noundef @.str.4)
  %11910 = call ptr @__errno_location() #12
  %11911 = load i32, ptr %11910, align 4, !tbaa !5
  %11912 = call ptr @strerror(i32 noundef %11911) #11
  %11913 = call ptr @__errno_location() #12
  %11914 = load i32, ptr %11913, align 4, !tbaa !5
  %11915 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11902, ptr noundef @.str.5, i32 noundef %11903, ptr noundef @.str.95, ptr noundef @.str.1, i32 noundef 513, ptr noundef %11906, ptr noundef %11909, ptr noundef %11912, i32 noundef %11914) #11
  br label %11916

11916:                                            ; preds = %11899, %11882
  call void @llvm.lifetime.end.p0(i64 4, ptr %315) #11
  br label %11917

11917:                                            ; preds = %11916
  br label %11918

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

11919:                                            ; No predecessors!
  br label %11920

11920:                                            ; preds = %11919
  br label %11921

11921:                                            ; preds = %11920, %11862
  br label %11922

11922:                                            ; preds = %11921
  br label %11923

11923:                                            ; preds = %11922
  call void @llvm.lifetime.start.p0(i64 2, ptr %316) #11
  store i16 10, ptr %316, align 2, !tbaa !62
  %11924 = load ptr, ptr %294, align 8, !tbaa !9
  %11925 = getelementptr inbounds %struct.s2n_connection, ptr %11924, i32 0, i32 23
  store i8 34, ptr %11925, align 4, !tbaa !57
  br label %11926

11926:                                            ; preds = %11923
  %11927 = load i32, ptr @test_count, align 4, !tbaa !5
  %11928 = add nsw i32 %11927, 1
  store i32 %11928, ptr @test_count, align 4, !tbaa !5
  %11929 = load ptr, ptr %294, align 8, !tbaa !9
  %11930 = load i16, ptr %316, align 2, !tbaa !62
  %11931 = zext i16 %11930 to i32
  %11932 = sub nsw i32 16384, %11931
  %11933 = trunc i32 %11932 to i16
  %11934 = call i32 @s2n_record_max_write_size(ptr noundef %11929, i16 noundef zeroext %11933, ptr noundef %293)
  %11935 = getelementptr inbounds %struct.s2n_result, ptr %317, i32 0, i32 0
  store i32 %11934, ptr %11935, align 4
  %11936 = getelementptr inbounds %struct.s2n_result, ptr %317, i32 0, i32 0
  %11937 = load i32, ptr %11936, align 4
  %11938 = call zeroext i1 @s2n_result_is_ok(i32 %11937)
  br i1 %11938, label %11992, label %11939

11939:                                            ; preds = %11926
  br label %11940

11940:                                            ; preds = %11939
  br label %11941

11941:                                            ; preds = %11940
  call void @llvm.lifetime.start.p0(i64 4, ptr %318) #11
  %11942 = call ptr @__errno_location() #12
  %11943 = load i32, ptr %11942, align 4, !tbaa !5
  store i32 %11943, ptr %318, align 4, !tbaa !5
  %11944 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11945 = call i32 @s2n_print_stacktrace(ptr noundef %11944)
  %11946 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11947 = trunc i8 %11946 to i1
  br i1 %11947, label %11948, label %11970

11948:                                            ; preds = %11941
  %11949 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11950 = call i32 @fileno(ptr noundef %11949) #11
  %11951 = call i32 @isatty(i32 noundef %11950) #11
  %11952 = icmp ne i32 %11951, 0
  br i1 %11952, label %11953, label %11970

11953:                                            ; preds = %11948
  %11954 = load i32, ptr %318, align 4, !tbaa !5
  %11955 = call ptr @__errno_location() #12
  store i32 %11954, ptr %11955, align 4, !tbaa !5
  %11956 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11957 = load i32, ptr @test_count, align 4, !tbaa !5
  %11958 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11959 = load i32, ptr %11958, align 4, !tbaa !5
  %11960 = call ptr @s2n_strerror(i32 noundef %11959, ptr noundef @.str.4)
  %11961 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11962 = load i32, ptr %11961, align 4, !tbaa !5
  %11963 = call ptr @s2n_strerror_debug(i32 noundef %11962, ptr noundef @.str.4)
  %11964 = call ptr @__errno_location() #12
  %11965 = load i32, ptr %11964, align 4, !tbaa !5
  %11966 = call ptr @strerror(i32 noundef %11965) #11
  %11967 = call ptr @__errno_location() #12
  %11968 = load i32, ptr %11967, align 4, !tbaa !5
  %11969 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11956, ptr noundef @.str.2, i32 noundef %11957, ptr noundef @.str.96, ptr noundef @.str.1, i32 noundef 517, ptr noundef %11960, ptr noundef %11963, ptr noundef %11966, i32 noundef %11968) #11
  br label %11987

11970:                                            ; preds = %11948, %11941
  %11971 = load i32, ptr %318, align 4, !tbaa !5
  %11972 = call ptr @__errno_location() #12
  store i32 %11971, ptr %11972, align 4, !tbaa !5
  %11973 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11974 = load i32, ptr @test_count, align 4, !tbaa !5
  %11975 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11976 = load i32, ptr %11975, align 4, !tbaa !5
  %11977 = call ptr @s2n_strerror(i32 noundef %11976, ptr noundef @.str.4)
  %11978 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11979 = load i32, ptr %11978, align 4, !tbaa !5
  %11980 = call ptr @s2n_strerror_debug(i32 noundef %11979, ptr noundef @.str.4)
  %11981 = call ptr @__errno_location() #12
  %11982 = load i32, ptr %11981, align 4, !tbaa !5
  %11983 = call ptr @strerror(i32 noundef %11982) #11
  %11984 = call ptr @__errno_location() #12
  %11985 = load i32, ptr %11984, align 4, !tbaa !5
  %11986 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11973, ptr noundef @.str.5, i32 noundef %11974, ptr noundef @.str.96, ptr noundef @.str.1, i32 noundef 517, ptr noundef %11977, ptr noundef %11980, ptr noundef %11983, i32 noundef %11985) #11
  br label %11987

11987:                                            ; preds = %11970, %11953
  call void @llvm.lifetime.end.p0(i64 4, ptr %318) #11
  br label %11988

11988:                                            ; preds = %11987
  br label %11989

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

11990:                                            ; No predecessors!
  br label %11991

11991:                                            ; preds = %11990
  br label %11992

11992:                                            ; preds = %11991, %11926
  br label %11993

11993:                                            ; preds = %11992
  br label %11994

11994:                                            ; preds = %11993
  br label %11995

11995:                                            ; preds = %11994
  %11996 = load i32, ptr @test_count, align 4, !tbaa !5
  %11997 = add nsw i32 %11996, 1
  store i32 %11997, ptr @test_count, align 4, !tbaa !5
  %11998 = load i16, ptr %293, align 2, !tbaa !62
  %11999 = zext i16 %11998 to i32
  %12000 = load i16, ptr %316, align 2, !tbaa !62
  %12001 = zext i16 %12000 to i32
  %12002 = sub nsw i32 16645, %12001
  %12003 = icmp eq i32 %11999, %12002
  br i1 %12003, label %12057, label %12004

12004:                                            ; preds = %11995
  br label %12005

12005:                                            ; preds = %12004
  br label %12006

12006:                                            ; preds = %12005
  call void @llvm.lifetime.start.p0(i64 4, ptr %319) #11
  %12007 = call ptr @__errno_location() #12
  %12008 = load i32, ptr %12007, align 4, !tbaa !5
  store i32 %12008, ptr %319, align 4, !tbaa !5
  %12009 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12010 = call i32 @s2n_print_stacktrace(ptr noundef %12009)
  %12011 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12012 = trunc i8 %12011 to i1
  br i1 %12012, label %12013, label %12035

12013:                                            ; preds = %12006
  %12014 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12015 = call i32 @fileno(ptr noundef %12014) #11
  %12016 = call i32 @isatty(i32 noundef %12015) #11
  %12017 = icmp ne i32 %12016, 0
  br i1 %12017, label %12018, label %12035

12018:                                            ; preds = %12013
  %12019 = load i32, ptr %319, align 4, !tbaa !5
  %12020 = call ptr @__errno_location() #12
  store i32 %12019, ptr %12020, align 4, !tbaa !5
  %12021 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12022 = load i32, ptr @test_count, align 4, !tbaa !5
  %12023 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12024 = load i32, ptr %12023, align 4, !tbaa !5
  %12025 = call ptr @s2n_strerror(i32 noundef %12024, ptr noundef @.str.4)
  %12026 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12027 = load i32, ptr %12026, align 4, !tbaa !5
  %12028 = call ptr @s2n_strerror_debug(i32 noundef %12027, ptr noundef @.str.4)
  %12029 = call ptr @__errno_location() #12
  %12030 = load i32, ptr %12029, align 4, !tbaa !5
  %12031 = call ptr @strerror(i32 noundef %12030) #11
  %12032 = call ptr @__errno_location() #12
  %12033 = load i32, ptr %12032, align 4, !tbaa !5
  %12034 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12021, ptr noundef @.str.2, i32 noundef %12022, ptr noundef @.str.97, ptr noundef @.str.1, i32 noundef 518, ptr noundef %12025, ptr noundef %12028, ptr noundef %12031, i32 noundef %12033) #11
  br label %12052

12035:                                            ; preds = %12013, %12006
  %12036 = load i32, ptr %319, align 4, !tbaa !5
  %12037 = call ptr @__errno_location() #12
  store i32 %12036, ptr %12037, align 4, !tbaa !5
  %12038 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12039 = load i32, ptr @test_count, align 4, !tbaa !5
  %12040 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12041 = load i32, ptr %12040, align 4, !tbaa !5
  %12042 = call ptr @s2n_strerror(i32 noundef %12041, ptr noundef @.str.4)
  %12043 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12044 = load i32, ptr %12043, align 4, !tbaa !5
  %12045 = call ptr @s2n_strerror_debug(i32 noundef %12044, ptr noundef @.str.4)
  %12046 = call ptr @__errno_location() #12
  %12047 = load i32, ptr %12046, align 4, !tbaa !5
  %12048 = call ptr @strerror(i32 noundef %12047) #11
  %12049 = call ptr @__errno_location() #12
  %12050 = load i32, ptr %12049, align 4, !tbaa !5
  %12051 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12038, ptr noundef @.str.5, i32 noundef %12039, ptr noundef @.str.97, ptr noundef @.str.1, i32 noundef 518, ptr noundef %12042, ptr noundef %12045, ptr noundef %12048, i32 noundef %12050) #11
  br label %12052

12052:                                            ; preds = %12035, %12018
  call void @llvm.lifetime.end.p0(i64 4, ptr %319) #11
  br label %12053

12053:                                            ; preds = %12052
  br label %12054

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

12055:                                            ; No predecessors!
  br label %12056

12056:                                            ; preds = %12055
  br label %12057

12057:                                            ; preds = %12056, %11995
  br label %12058

12058:                                            ; preds = %12057
  br label %12059

12059:                                            ; preds = %12058
  call void @llvm.lifetime.end.p0(i64 2, ptr %316) #11
  %12060 = call i32 @s2n_connection_ptr_free(ptr noundef %294)
  %12061 = getelementptr inbounds %struct.s2n_result, ptr %320, i32 0, i32 0
  store i32 %12060, ptr %12061, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %294) #11
  call void @llvm.lifetime.end.p0(i64 2, ptr %293) #11
  br label %12062

12062:                                            ; preds = %12059
  br label %12063

12063:                                            ; preds = %12062
  %12064 = call i32 @s2n_cleanup()
  %12065 = icmp eq i32 %12064, -1
  br i1 %12065, label %12066, label %12119

12066:                                            ; preds = %12063
  br label %12067

12067:                                            ; preds = %12066
  br label %12068

12068:                                            ; preds = %12067
  call void @llvm.lifetime.start.p0(i64 4, ptr %321) #11
  %12069 = call ptr @__errno_location() #12
  %12070 = load i32, ptr %12069, align 4, !tbaa !5
  store i32 %12070, ptr %321, align 4, !tbaa !5
  %12071 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12072 = call i32 @s2n_print_stacktrace(ptr noundef %12071)
  %12073 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12074 = trunc i8 %12073 to i1
  br i1 %12074, label %12075, label %12097

12075:                                            ; preds = %12068
  %12076 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12077 = call i32 @fileno(ptr noundef %12076) #11
  %12078 = call i32 @isatty(i32 noundef %12077) #11
  %12079 = icmp ne i32 %12078, 0
  br i1 %12079, label %12080, label %12097

12080:                                            ; preds = %12075
  %12081 = load i32, ptr %321, align 4, !tbaa !5
  %12082 = call ptr @__errno_location() #12
  store i32 %12081, ptr %12082, align 4, !tbaa !5
  %12083 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12084 = load i32, ptr @test_count, align 4, !tbaa !5
  %12085 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12086 = load i32, ptr %12085, align 4, !tbaa !5
  %12087 = call ptr @s2n_strerror(i32 noundef %12086, ptr noundef @.str.4)
  %12088 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12089 = load i32, ptr %12088, align 4, !tbaa !5
  %12090 = call ptr @s2n_strerror_debug(i32 noundef %12089, ptr noundef @.str.4)
  %12091 = call ptr @__errno_location() #12
  %12092 = load i32, ptr %12091, align 4, !tbaa !5
  %12093 = call ptr @strerror(i32 noundef %12092) #11
  %12094 = call ptr @__errno_location() #12
  %12095 = load i32, ptr %12094, align 4, !tbaa !5
  %12096 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12083, ptr noundef @.str.2, i32 noundef %12084, ptr noundef @.str.98, ptr noundef @.str.1, i32 noundef 521, ptr noundef %12087, ptr noundef %12090, ptr noundef %12093, i32 noundef %12095) #11
  br label %12114

12097:                                            ; preds = %12075, %12068
  %12098 = load i32, ptr %321, align 4, !tbaa !5
  %12099 = call ptr @__errno_location() #12
  store i32 %12098, ptr %12099, align 4, !tbaa !5
  %12100 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12101 = load i32, ptr @test_count, align 4, !tbaa !5
  %12102 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12103 = load i32, ptr %12102, align 4, !tbaa !5
  %12104 = call ptr @s2n_strerror(i32 noundef %12103, ptr noundef @.str.4)
  %12105 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12106 = load i32, ptr %12105, align 4, !tbaa !5
  %12107 = call ptr @s2n_strerror_debug(i32 noundef %12106, ptr noundef @.str.4)
  %12108 = call ptr @__errno_location() #12
  %12109 = load i32, ptr %12108, align 4, !tbaa !5
  %12110 = call ptr @strerror(i32 noundef %12109) #11
  %12111 = call ptr @__errno_location() #12
  %12112 = load i32, ptr %12111, align 4, !tbaa !5
  %12113 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12100, ptr noundef @.str.5, i32 noundef %12101, ptr noundef @.str.98, ptr noundef @.str.1, i32 noundef 521, ptr noundef %12104, ptr noundef %12107, ptr noundef %12110, i32 noundef %12112) #11
  br label %12114

12114:                                            ; preds = %12097, %12080
  call void @llvm.lifetime.end.p0(i64 4, ptr %321) #11
  br label %12115

12115:                                            ; preds = %12114
  br label %12116

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

12117:                                            ; No predecessors!
  br label %12118

12118:                                            ; preds = %12117
  br label %12119

12119:                                            ; preds = %12118, %12063
  br label %12120

12120:                                            ; preds = %12119
  br label %12121

12121:                                            ; preds = %12120
  br label %12122

12122:                                            ; preds = %12121
  br label %12123

12123:                                            ; preds = %12122
  %12124 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %12125 = icmp eq i32 %12124, -1
  br i1 %12125, label %12126, label %12179

12126:                                            ; preds = %12123
  br label %12127

12127:                                            ; preds = %12126
  br label %12128

12128:                                            ; preds = %12127
  call void @llvm.lifetime.start.p0(i64 4, ptr %322) #11
  %12129 = call ptr @__errno_location() #12
  %12130 = load i32, ptr %12129, align 4, !tbaa !5
  store i32 %12130, ptr %322, align 4, !tbaa !5
  %12131 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12132 = call i32 @s2n_print_stacktrace(ptr noundef %12131)
  %12133 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12134 = trunc i8 %12133 to i1
  br i1 %12134, label %12135, label %12157

12135:                                            ; preds = %12128
  %12136 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12137 = call i32 @fileno(ptr noundef %12136) #11
  %12138 = call i32 @isatty(i32 noundef %12137) #11
  %12139 = icmp ne i32 %12138, 0
  br i1 %12139, label %12140, label %12157

12140:                                            ; preds = %12135
  %12141 = load i32, ptr %322, align 4, !tbaa !5
  %12142 = call ptr @__errno_location() #12
  store i32 %12141, ptr %12142, align 4, !tbaa !5
  %12143 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12144 = load i32, ptr @test_count, align 4, !tbaa !5
  %12145 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12146 = load i32, ptr %12145, align 4, !tbaa !5
  %12147 = call ptr @s2n_strerror(i32 noundef %12146, ptr noundef @.str.4)
  %12148 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12149 = load i32, ptr %12148, align 4, !tbaa !5
  %12150 = call ptr @s2n_strerror_debug(i32 noundef %12149, ptr noundef @.str.4)
  %12151 = call ptr @__errno_location() #12
  %12152 = load i32, ptr %12151, align 4, !tbaa !5
  %12153 = call ptr @strerror(i32 noundef %12152) #11
  %12154 = call ptr @__errno_location() #12
  %12155 = load i32, ptr %12154, align 4, !tbaa !5
  %12156 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12143, ptr noundef @.str.2, i32 noundef %12144, ptr noundef @.str.99, ptr noundef @.str.1, i32 noundef 521, ptr noundef %12147, ptr noundef %12150, ptr noundef %12153, i32 noundef %12155) #11
  br label %12174

12157:                                            ; preds = %12135, %12128
  %12158 = load i32, ptr %322, align 4, !tbaa !5
  %12159 = call ptr @__errno_location() #12
  store i32 %12158, ptr %12159, align 4, !tbaa !5
  %12160 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12161 = load i32, ptr @test_count, align 4, !tbaa !5
  %12162 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12163 = load i32, ptr %12162, align 4, !tbaa !5
  %12164 = call ptr @s2n_strerror(i32 noundef %12163, ptr noundef @.str.4)
  %12165 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12166 = load i32, ptr %12165, align 4, !tbaa !5
  %12167 = call ptr @s2n_strerror_debug(i32 noundef %12166, ptr noundef @.str.4)
  %12168 = call ptr @__errno_location() #12
  %12169 = load i32, ptr %12168, align 4, !tbaa !5
  %12170 = call ptr @strerror(i32 noundef %12169) #11
  %12171 = call ptr @__errno_location() #12
  %12172 = load i32, ptr %12171, align 4, !tbaa !5
  %12173 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12160, ptr noundef @.str.5, i32 noundef %12161, ptr noundef @.str.99, ptr noundef @.str.1, i32 noundef 521, ptr noundef %12164, ptr noundef %12167, ptr noundef %12170, i32 noundef %12172) #11
  br label %12174

12174:                                            ; preds = %12157, %12140
  call void @llvm.lifetime.end.p0(i64 4, ptr %322) #11
  br label %12175

12175:                                            ; preds = %12174
  br label %12176

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

12177:                                            ; No predecessors!
  br label %12178

12178:                                            ; preds = %12177
  br label %12179

12179:                                            ; preds = %12178, %12123
  br label %12180

12180:                                            ; preds = %12179
  br label %12181

12181:                                            ; preds = %12180
  %12182 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12183 = trunc i8 %12182 to i1
  br i1 %12183, label %12184, label %12200

12184:                                            ; preds = %12181
  %12185 = load ptr, ptr @stdout, align 8, !tbaa !9
  %12186 = call i32 @fileno(ptr noundef %12185) #11
  %12187 = call i32 @isatty(i32 noundef %12186) #11
  %12188 = icmp ne i32 %12187, 0
  br i1 %12188, label %12189, label %12200

12189:                                            ; preds = %12184
  %12190 = load i32, ptr @test_count, align 4, !tbaa !5
  %12191 = icmp ne i32 %12190, 0
  br i1 %12191, label %12192, label %12196

12192:                                            ; preds = %12189
  %12193 = load ptr, ptr @stdout, align 8, !tbaa !9
  %12194 = load i32, ptr @test_count, align 4, !tbaa !5
  %12195 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12193, ptr noundef @.str.100, i32 noundef %12194) #11
  br label %12199

12196:                                            ; preds = %12189
  %12197 = load ptr, ptr @stdout, align 8, !tbaa !9
  %12198 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12197, ptr noundef @.str.101) #11
  br label %12199

12199:                                            ; preds = %12196, %12192
  br label %12211

12200:                                            ; preds = %12184, %12181
  %12201 = load i32, ptr @test_count, align 4, !tbaa !5
  %12202 = icmp ne i32 %12201, 0
  br i1 %12202, label %12203, label %12207

12203:                                            ; preds = %12200
  %12204 = load ptr, ptr @stdout, align 8, !tbaa !9
  %12205 = load i32, ptr @test_count, align 4, !tbaa !5
  %12206 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12204, ptr noundef @.str.102, i32 noundef %12205) #11
  br label %12210

12207:                                            ; preds = %12200
  %12208 = load ptr, ptr @stdout, align 8, !tbaa !9
  %12209 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12208, ptr noundef @.str.103) #11
  br label %12210

12210:                                            ; preds = %12207, %12203
  br label %12211

12211:                                            ; preds = %12210, %12199
  store i32 0, ptr %3, align 4
  store i32 1, ptr %245, align 4
  br label %12216

12212:                                            ; No predecessors!
  br label %12213

12213:                                            ; preds = %12212
  br label %12214

12214:                                            ; preds = %12213
  br label %12215

12215:                                            ; preds = %12214
  store i32 0, ptr %245, align 4
  br label %12216

12216:                                            ; preds = %12215, %12211, %10937
  call void @llvm.lifetime.end.p0(i64 24, ptr %17) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %16) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %12) #11
  call void @llvm.lifetime.end.p0(i64 17414, ptr %11) #11
  call void @llvm.lifetime.end.p0(i64 15, ptr %10) #11
  %12217 = load i32, ptr %245, align 4
  switch i32 %12217, label %12220 [
    i32 0, label %12218
    i32 1, label %12218
  ]

12218:                                            ; preds = %12216, %12216
  %12219 = load i32, ptr %3, align 4
  ret i32 %12219

12220:                                            ; preds = %12216
  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: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #7

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

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

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

declare i32 @s2n_get_public_random_data(ptr noundef) #2

declare ptr @s2n_connection_new(i32 noundef) #2

declare i32 @s2n_connection_ptr_free(ptr noundef) #2

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

declare i32 @s2n_stuffer_wipe(ptr noundef) #2

declare i32 @s2n_record_write(ptr noundef, i8 noundef zeroext, ptr noundef) #2

declare i32 @s2n_connection_prefer_low_latency(ptr noundef) #2

declare i32 @s2n_connection_prefer_throughput(ptr noundef) #2

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

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

declare void @s2n_debug_info_reset() #2

declare i32 @s2n_connection_free(ptr noundef) #2

declare ptr @s2n_config_new() #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_config(ptr noundef, ptr noundef) #2

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

declare i32 @s2n_connection_wipe(ptr noundef) #2

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

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

declare i32 @s2n_free(ptr noundef) #2

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

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

declare i32 @s2n_calculate_stacktrace() #2

declare i32 @s2n_record_writev(ptr noundef, i8 noundef zeroext, ptr noundef, i32 noundef, i64 noundef, i64 noundef) #2

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

declare i32 @s2n_record_max_write_size(ptr noundef, i16 noundef zeroext, 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: readwrite) }
attributes #8 = { 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 = { 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 232}
!16 = !{!"s2n_connection", !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40, !10, i64 48, !10, i64 56, !10, i64 64, !10, i64 72, !7, i64 80, !7, i64 102, !7, i64 124, !6, i64 148, !6, i64 152, !17, i64 160, !18, i64 168, !18, i64 176, !7, i64 184, !7, i64 216, !7, i64 217, !7, i64 218, !7, i64 219, !7, i64 220, !7, i64 221, !7, i64 222, !10, i64 224, !10, i64 232, !19, i64 240, !10, i64 632, !10, i64 640, !20, i64 648, !26, i64 1144, !29, i64 1688, !10, i64 1752, !7, i64 1760, !6, i64 1764, !7, i64 1768, !32, i64 1776, !32, i64 1816, !32, i64 1856, !32, i64 1896, !6, i64 1936, !18, i64 1944, !7, i64 1952, !32, i64 1960, !7, i64 2000, !7, i64 2001, !7, i64 2002, !12, i64 2003, !33, i64 2004, !33, i64 2008, !34, i64 2016, !31, i64 2208, !6, i64 2212, !31, i64 2216, !18, i64 2224, !7, i64 2232, !18, i64 2240, !18, i64 2248, !18, i64 2256, !33, i64 2264, !33, i64 2268, !7, i64 2272, !7, i64 2528, !6, i64 2784, !25, i64 2792, !6, i64 2816, !25, i64 2824, !25, i64 2848, !25, i64 2872, !36, i64 2896, !38, i64 3704, !10, i64 3760, !10, i64 3768, !7, i64 3776, !6, i64 3780, !25, i64 3784, !6, i64 3808, !40, i64 3816, !7, i64 3848, !32, i64 3992, !25, i64 4032, !25, i64 4056, !12, i64 4080, !12, i64 4081, !12, i64 4082, !31, i64 4084, !31, i64 4086, !6, i64 4088, !6, i64 4092, !25, i64 4096, !6, i64 4120, !41, i64 4128, !33, i64 4176, !7, i64 4180, !7, i64 4181}
!17 = !{!"s2n_timer", !18, i64 0}
!18 = !{!"long", !7, i64 0}
!19 = !{!"s2n_secrets", !7, i64 0, !6, i64 388}
!20 = !{!"s2n_kex_parameters", !21, i64 0, !22, i64 8, !7, i64 24, !22, i64 56, !23, i64 72, !23, i64 184, !7, i64 296, !24, i64 360, !25, i64 448, !25, i64 472}
!21 = !{!"s2n_dh_params", !10, i64 0}
!22 = !{!"s2n_ecc_evp_params", !10, i64 0, !10, i64 8}
!23 = !{!"s2n_kem_group_params", !10, i64 0, !24, i64 8, !22, i64 96}
!24 = !{!"s2n_kem_params", !10, i64 0, !25, i64 8, !25, i64 32, !25, i64 56, !12, i64 80}
!25 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!26 = !{!"s2n_handshake_parameters", !27, i64 0, !27, i64 48, !25, i64 96, !6, i64 120, !28, i64 124, !10, i64 384, !10, i64 392, !10, i64 400, !7, i64 408, !7, i64 440, !7, i64 472, !7, i64 473, !7, i64 474, !7, i64 506}
!27 = !{!"s2n_pkey", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40}
!28 = !{!"s2n_sig_scheme_list", !7, i64 0, !7, i64 256}
!29 = !{!"s2n_psk_parameters", !6, i64 0, !30, i64 8, !31, i64 40, !31, i64 42, !10, i64 48, !6, i64 56}
!30 = !{!"s2n_array", !25, i64 0, !6, i64 24, !6, i64 28}
!31 = !{!"short", !7, i64 0}
!32 = !{!"s2n_stuffer", !25, i64 0, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 36, !6, i64 36}
!33 = !{!"", !6, i64 0}
!34 = !{!"s2n_handshake", !32, i64 0, !10, i64 40, !7, i64 48, !7, i64 56, !7, i64 104, !7, i64 152, !6, i64 156, !6, i64 160, !6, i64 164, !6, i64 168, !35, i64 176, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 188}
!35 = !{!"s2n_offered_early_data", !10, i64 0}
!36 = !{!"s2n_client_hello", !25, i64 0, !37, i64 24, !25, i64 728, !25, i64 752, !25, i64 776, !7, i64 800, !7, i64 801, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802}
!37 = !{!"", !7, i64 0, !25, i64 672, !31, i64 696}
!38 = !{!"s2n_x509_validator", !10, i64 0, !10, i64 8, !7, i64 16, !7, i64 17, !31, i64 18, !10, i64 24, !6, i64 32, !10, i64 40, !39, i64 48, !12, i64 52}
!39 = !{!"s2n_cert_validation_info", !6, i64 0, !6, i64 0}
!40 = !{!"s2n_ticket_fields", !25, i64 0, !6, i64 24}
!41 = !{!"s2n_post_handshake", !32, i64 0, !7, i64 40}
!42 = !{!16, !10, i64 640}
!43 = !{!16, !10, i64 632}
!44 = !{!45, !10, i64 0}
!45 = !{!"s2n_crypto_parameters", !10, i64 0, !46, i64 8, !46, i64 16, !47, i64 24, !47, i64 456, !7, i64 888, !7, i64 904, !7, i64 920, !7, i64 928}
!46 = !{!"s2n_session_key", !10, i64 0}
!47 = !{!"s2n_hmac_state", !6, i64 0, !31, i64 4, !6, i64 8, !31, i64 12, !7, i64 14, !48, i64 16, !48, i64 72, !48, i64 128, !48, i64 184, !7, i64 240, !7, i64 368}
!48 = !{!"s2n_hash_state", !10, i64 0, !6, i64 8, !7, i64 12, !18, i64 16, !7, i64 24}
!49 = !{!50, !10, i64 48}
!50 = !{!"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}
!51 = !{!52, !10, i64 0}
!52 = !{!"s2n_record_algorithm", !10, i64 0, !6, i64 8, !6, i64 12, !18, i64 16}
!53 = !{!54, !10, i64 64}
!54 = !{!"s2n_cipher", !6, i64 0, !7, i64 8, !7, i64 48, !10, i64 56, !10, i64 64, !10, i64 72, !10, i64 80, !10, i64 88, !10, i64 96}
!55 = !{!54, !10, i64 80}
!56 = !{!54, !10, i64 72}
!57 = !{!16, !7, i64 220}
!58 = !{i64 0, i64 8, !9, i64 8, i64 4, !5, i64 12, i64 4, !5, i64 16, i64 1, !59}
!59 = !{!7, !7, i64 0}
!60 = !{!25, !6, i64 8}
!61 = !{!54, !10, i64 88}
!62 = !{!31, !31, i64 0}
!63 = !{!16, !31, i64 2208}
!64 = !{!16, !10, i64 224}
!65 = !{!16, !6, i64 1924}
!66 = !{!16, !6, i64 1920}
!67 = !{!16, !10, i64 1896}
!68 = !{!54, !10, i64 56}
!69 = !{!18, !18, i64 0}
!70 = !{!25, !10, i64 0}
!71 = distinct !{!71, !72}
!72 = !{!"llvm.loop.mustprogress"}
!73 = !{!74, !10, i64 0}
!74 = !{!"s2n_debug_info", !10, i64 0, !10, i64 8}
!75 = !{!74, !10, i64 8}
!76 = !{!77, !10, i64 0}
!77 = !{!"iovec", !10, i64 0, !18, i64 8}
!78 = !{!77, !18, i64 8}
!79 = !{!16, !6, i64 2172}


; 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_record_algorithm = type { ptr, i32, i32, i64 }
%struct.s2n_cipher_suite = type { i8, ptr, ptr, [2 x i8], ptr, i32, ptr, [2 x ptr], i8, ptr, ptr, i32, i8 }
%struct.s2n_cipher = type { i32, %union.anon.1, i8, ptr, ptr, ptr, ptr, ptr, ptr }
%union.anon.1 = type { %struct.s2n_composite_cipher }
%struct.s2n_composite_cipher = type { i8, i8, i8, ptr, ptr, ptr, ptr }
%struct.s2n_blob = type { ptr, i32, i32, i8 }
%struct.iovec = type { ptr, i64 }

@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 [79 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
@__const.main.mac_key = external hidden unnamed_addr constant [15 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [62 x i8], align 1
@__const.main.aes128_key = external hidden unnamed_addr constant [16 x i8], align 16
@.str.11 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [39 x i8], align 1
@s2n_record_alg_aes128_sha = external constant %struct.s2n_record_algorithm, align 8
@.str.13 = external hidden unnamed_addr constant [111 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [111 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [134 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [134 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [117 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [117 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [67 x i8], align 1
@s2n_record_alg_null = external constant %struct.s2n_record_algorithm, align 8
@.str.23 = external hidden unnamed_addr constant [118 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [118 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [70 x i8], align 1
@s2n_tls13_aes_128_gcm_sha256 = external global %struct.s2n_cipher_suite, align 8
@.str.32 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [64 x i8], align 1
@s2n_record_alg_3des_sha = external constant %struct.s2n_record_algorithm, align 8
@__const.main.des3_key = external hidden unnamed_addr constant [24 x i8], align 16
@.str.44 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [125 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [125 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [146 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [146 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [124 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [115 x i8], align 1
@s2n_record_alg_aes128_gcm = external constant %struct.s2n_record_algorithm, align 8
@.str.54 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [61 x i8], align 1
@s2n_tls13_record_alg_aes128_gcm = external constant %struct.s2n_record_algorithm, align 8
@.str.57 = external hidden unnamed_addr constant [67 x i8], align 1
@s2n_chacha20_poly1305 = external local_unnamed_addr constant %struct.s2n_cipher, align 8
@s2n_record_alg_chacha20_poly1305 = external constant %struct.s2n_record_algorithm, align 8
@__const.main.chacha20_poly1305_key_data = external hidden unnamed_addr constant [32 x i8], align 16
@.str.58 = external hidden unnamed_addr constant [130 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [61 x i8], align 1
@s2n_tls13_record_alg_chacha20_poly1305 = external constant %struct.s2n_record_algorithm, align 8
@__const.main.chacha20_poly1305_key_data.61 = external hidden unnamed_addr constant [32 x i8], align 16
@.str.62 = external hidden unnamed_addr constant [65 x i8], align 1
@s2n_aes128_sha = external local_unnamed_addr constant %struct.s2n_cipher, align 8
@s2n_aes128_sha256 = external local_unnamed_addr constant %struct.s2n_cipher, align 8
@s2n_record_alg_aes128_sha_composite = external constant %struct.s2n_record_algorithm, align 8
@__const.main.mac_key_sha = external hidden unnamed_addr constant [20 x i8], align 16
@.str.63 = external hidden unnamed_addr constant [150 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [150 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [179 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [179 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [115 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [120 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [111 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [132 x i8], align 1
@.str.89 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.91 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.92 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.93 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.94 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.95 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.96 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.97 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.98 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.99 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.100 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.101 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.102 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.103 = 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 [15 x i8], align 1
  %4 = alloca [17414 x i8], align 16
  %5 = alloca %struct.s2n_blob, align 8
  %6 = alloca [16 x i8], align 16
  %7 = alloca %struct.s2n_blob, align 8
  %8 = alloca ptr, align 8
  %9 = alloca %struct.s2n_blob, align 8
  %10 = alloca i16, align 2
  %11 = alloca ptr, align 8
  %12 = alloca ptr, align 8
  %13 = alloca i16, align 2
  %14 = alloca ptr, align 8
  %15 = alloca i16, align 2
  %16 = alloca ptr, align 8
  %17 = alloca i16, align 2
  %18 = alloca ptr, align 8
  %19 = alloca i16, align 2
  %20 = alloca i16, align 2
  %21 = alloca [24 x i8], align 16
  %22 = alloca %struct.s2n_blob, align 8
  %23 = alloca [32 x i8], align 16
  %24 = alloca %struct.s2n_blob, align 8
  %25 = alloca [32 x i8], align 16
  %26 = alloca %struct.s2n_blob, align 8
  %27 = alloca [20 x i8], align 16
  %28 = alloca %struct.s2n_blob, align 8
  %29 = alloca %struct.s2n_blob, align 8
  %30 = alloca [1024 x i8], align 16
  %31 = alloca %struct.s2n_blob, align 8
  %32 = alloca %struct.iovec, align 8
  %33 = alloca [100000 x i8], align 16
  %34 = alloca %struct.s2n_blob, align 8
  %35 = alloca %struct.iovec, align 8
  %36 = alloca i16, align 2
  %37 = alloca ptr, align 8
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %38 = load ptr, ptr @stdout, align 8, !tbaa !9
  %39 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %38, ptr noundef nonnull @.str, ptr noundef nonnull @.str.1) #11
  %40 = load ptr, ptr @stdout, align 8, !tbaa !9
  %41 = tail call i32 @fflush(ptr noundef %40)
  %42 = tail call i32 @s2n_in_unit_test_set(i1 noundef zeroext true) #11
  %43 = icmp eq i32 %42, -1
  br i1 %43, label %44, label %68

44:                                               ; preds = %2
  %45 = tail call ptr @__errno_location() #12
  %46 = load i32, ptr %45, align 4, !tbaa !5
  %47 = load ptr, ptr @stderr, align 8, !tbaa !9
  %48 = tail call i32 @s2n_print_stacktrace(ptr noundef %47) #11
  %49 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %50 = trunc nuw i8 %49 to i1
  br i1 %50, label %51, label %55

51:                                               ; preds = %44
  %52 = load ptr, ptr @stderr, align 8, !tbaa !9
  %53 = tail call i32 @fileno(ptr noundef %52) #11
  %54 = tail call i32 @isatty(i32 noundef %53) #11
  %.not785 = icmp eq i32 %54, 0
  br i1 %.not785, label %55, label %56

55:                                               ; preds = %51, %44
  br label %56

56:                                               ; preds = %51, %55
  %.str.5.sink = phi ptr [ @.str.5, %55 ], [ @.str.2, %51 ]
  store i32 %46, ptr %45, align 4, !tbaa !5
  %57 = load ptr, ptr @stderr, align 8, !tbaa !9
  %58 = load i32, ptr @test_count, align 4, !tbaa !5
  %59 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %60 = load i32, ptr %59, align 4, !tbaa !5
  %61 = tail call ptr @s2n_strerror(i32 noundef %60, ptr noundef nonnull @.str.4) #11
  %62 = load i32, ptr %59, align 4, !tbaa !5
  %63 = tail call ptr @s2n_strerror_debug(i32 noundef %62, ptr noundef nonnull @.str.4) #11
  %64 = load i32, ptr %45, align 4, !tbaa !5
  %65 = tail call ptr @strerror(i32 noundef %64) #11
  %66 = load i32, ptr %45, align 4, !tbaa !5
  %67 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %57, ptr noundef nonnull %.str.5.sink, i32 noundef %58, ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.1, i32 noundef 59, ptr noundef %61, ptr noundef %63, ptr noundef %65, i32 noundef %66) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

68:                                               ; preds = %2
  %69 = load i32, ptr @test_count, align 4, !tbaa !5
  %70 = add nsw i32 %69, 1
  store i32 %70, ptr @test_count, align 4, !tbaa !5
  %71 = tail call i32 @s2n_enable_atexit() #11
  %72 = icmp eq i32 %71, -1
  br i1 %72, label %73, label %97

73:                                               ; preds = %68
  %74 = tail call ptr @__errno_location() #12
  %75 = load i32, ptr %74, align 4, !tbaa !5
  %76 = load ptr, ptr @stderr, align 8, !tbaa !9
  %77 = tail call i32 @s2n_print_stacktrace(ptr noundef %76) #11
  %78 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %79 = trunc nuw i8 %78 to i1
  br i1 %79, label %80, label %84

80:                                               ; preds = %73
  %81 = load ptr, ptr @stderr, align 8, !tbaa !9
  %82 = tail call i32 @fileno(ptr noundef %81) #11
  %83 = tail call i32 @isatty(i32 noundef %82) #11
  %.not784 = icmp eq i32 %83, 0
  br i1 %.not784, label %84, label %85

84:                                               ; preds = %80, %73
  br label %85

85:                                               ; preds = %80, %84
  %.str.5.sink803 = phi ptr [ @.str.5, %84 ], [ @.str.2, %80 ]
  store i32 %75, ptr %74, align 4, !tbaa !5
  %86 = load ptr, ptr @stderr, align 8, !tbaa !9
  %87 = load i32, ptr @test_count, align 4, !tbaa !5
  %88 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %89 = load i32, ptr %88, align 4, !tbaa !5
  %90 = tail call ptr @s2n_strerror(i32 noundef %89, ptr noundef nonnull @.str.4) #11
  %91 = load i32, ptr %88, align 4, !tbaa !5
  %92 = tail call ptr @s2n_strerror_debug(i32 noundef %91, ptr noundef nonnull @.str.4) #11
  %93 = load i32, ptr %74, align 4, !tbaa !5
  %94 = tail call ptr @strerror(i32 noundef %93) #11
  %95 = load i32, ptr %74, align 4, !tbaa !5
  %96 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %86, ptr noundef nonnull %.str.5.sink803, i32 noundef %87, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.1, i32 noundef 59, ptr noundef %90, ptr noundef %92, ptr noundef %94, i32 noundef %95) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

97:                                               ; preds = %68
  %98 = tail call i32 @s2n_init() #11
  %99 = icmp eq i32 %98, -1
  br i1 %99, label %100, label %124

100:                                              ; preds = %97
  %101 = tail call ptr @__errno_location() #12
  %102 = load i32, ptr %101, align 4, !tbaa !5
  %103 = load ptr, ptr @stderr, align 8, !tbaa !9
  %104 = tail call i32 @s2n_print_stacktrace(ptr noundef %103) #11
  %105 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %106 = trunc nuw i8 %105 to i1
  br i1 %106, label %107, label %111

107:                                              ; preds = %100
  %108 = load ptr, ptr @stderr, align 8, !tbaa !9
  %109 = tail call i32 @fileno(ptr noundef %108) #11
  %110 = tail call i32 @isatty(i32 noundef %109) #11
  %.not783 = icmp eq i32 %110, 0
  br i1 %.not783, label %111, label %112

111:                                              ; preds = %107, %100
  br label %112

112:                                              ; preds = %107, %111
  %.str.5.sink814 = phi ptr [ @.str.5, %111 ], [ @.str.2, %107 ]
  store i32 %102, ptr %101, align 4, !tbaa !5
  %113 = load ptr, ptr @stderr, align 8, !tbaa !9
  %114 = load i32, ptr @test_count, align 4, !tbaa !5
  %115 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %116 = load i32, ptr %115, align 4, !tbaa !5
  %117 = tail call ptr @s2n_strerror(i32 noundef %116, ptr noundef nonnull @.str.4) #11
  %118 = load i32, ptr %115, align 4, !tbaa !5
  %119 = tail call ptr @s2n_strerror_debug(i32 noundef %118, ptr noundef nonnull @.str.4) #11
  %120 = load i32, ptr %101, align 4, !tbaa !5
  %121 = tail call ptr @strerror(i32 noundef %120) #11
  %122 = load i32, ptr %101, align 4, !tbaa !5
  %123 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %113, ptr noundef nonnull %.str.5.sink814, i32 noundef %114, ptr noundef nonnull @.str.7, ptr noundef nonnull @.str.1, i32 noundef 59, ptr noundef %117, ptr noundef %119, ptr noundef %121, i32 noundef %122) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

124:                                              ; preds = %97
  %125 = load i32, ptr @test_count, align 4, !tbaa !5
  %126 = add nsw i32 %125, 1
  store i32 %126, ptr @test_count, align 4, !tbaa !5
  %127 = tail call i32 (...) @s2n_disable_tls13_in_test() #11
  %128 = icmp eq i32 %127, -1
  br i1 %128, label %129, label %153

129:                                              ; preds = %124
  %130 = tail call ptr @__errno_location() #12
  %131 = load i32, ptr %130, align 4, !tbaa !5
  %132 = load ptr, ptr @stderr, align 8, !tbaa !9
  %133 = tail call i32 @s2n_print_stacktrace(ptr noundef %132) #11
  %134 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %135 = trunc nuw i8 %134 to i1
  br i1 %135, label %136, label %140

136:                                              ; preds = %129
  %137 = load ptr, ptr @stderr, align 8, !tbaa !9
  %138 = tail call i32 @fileno(ptr noundef %137) #11
  %139 = tail call i32 @isatty(i32 noundef %138) #11
  %.not782 = icmp eq i32 %139, 0
  br i1 %.not782, label %140, label %141

140:                                              ; preds = %136, %129
  br label %141

141:                                              ; preds = %136, %140
  %.str.5.sink825 = phi ptr [ @.str.5, %140 ], [ @.str.2, %136 ]
  store i32 %131, ptr %130, align 4, !tbaa !5
  %142 = load ptr, ptr @stderr, align 8, !tbaa !9
  %143 = load i32, ptr @test_count, align 4, !tbaa !5
  %144 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %145 = load i32, ptr %144, align 4, !tbaa !5
  %146 = tail call ptr @s2n_strerror(i32 noundef %145, ptr noundef nonnull @.str.4) #11
  %147 = load i32, ptr %144, align 4, !tbaa !5
  %148 = tail call ptr @s2n_strerror_debug(i32 noundef %147, ptr noundef nonnull @.str.4) #11
  %149 = load i32, ptr %130, align 4, !tbaa !5
  %150 = tail call ptr @strerror(i32 noundef %149) #11
  %151 = load i32, ptr %130, align 4, !tbaa !5
  %152 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %142, ptr noundef nonnull %.str.5.sink825, i32 noundef %143, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 60, ptr noundef %146, ptr noundef %148, ptr noundef %150, i32 noundef %151) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

153:                                              ; preds = %124
  call void @llvm.lifetime.start.p0(i64 15, ptr nonnull %3) #11
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(15) %3, ptr noundef nonnull align 1 dereferenceable(15) @__const.main.mac_key, i64 15, i1 false)
  call void @llvm.lifetime.start.p0(i64 17414, ptr nonnull %4) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %5) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %5, i8 0, i64 24, i1 false)
  %154 = load i32, ptr @test_count, align 4, !tbaa !5
  %155 = add nsw i32 %154, 1
  store i32 %155, ptr @test_count, align 4, !tbaa !5
  %156 = call i32 @s2n_blob_init(ptr noundef nonnull %5, ptr noundef nonnull %4, i32 noundef 17414) #11
  %157 = icmp eq i32 %156, -1
  br i1 %157, label %158, label %182

158:                                              ; preds = %153
  %159 = tail call ptr @__errno_location() #12
  %160 = load i32, ptr %159, align 4, !tbaa !5
  %161 = load ptr, ptr @stderr, align 8, !tbaa !9
  %162 = call i32 @s2n_print_stacktrace(ptr noundef %161) #11
  %163 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %164 = trunc nuw i8 %163 to i1
  br i1 %164, label %165, label %169

165:                                              ; preds = %158
  %166 = load ptr, ptr @stderr, align 8, !tbaa !9
  %167 = call i32 @fileno(ptr noundef %166) #11
  %168 = call i32 @isatty(i32 noundef %167) #11
  %.not781 = icmp eq i32 %168, 0
  br i1 %.not781, label %169, label %170

169:                                              ; preds = %165, %158
  br label %170

170:                                              ; preds = %165, %169
  %.str.5.sink836 = phi ptr [ @.str.5, %169 ], [ @.str.2, %165 ]
  store i32 %160, ptr %159, align 4, !tbaa !5
  %171 = load ptr, ptr @stderr, align 8, !tbaa !9
  %172 = load i32, ptr @test_count, align 4, !tbaa !5
  %173 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %174 = load i32, ptr %173, align 4, !tbaa !5
  %175 = call ptr @s2n_strerror(i32 noundef %174, ptr noundef nonnull @.str.4) #11
  %176 = load i32, ptr %173, align 4, !tbaa !5
  %177 = call ptr @s2n_strerror_debug(i32 noundef %176, ptr noundef nonnull @.str.4) #11
  %178 = load i32, ptr %159, align 4, !tbaa !5
  %179 = call ptr @strerror(i32 noundef %178) #11
  %180 = load i32, ptr %159, align 4, !tbaa !5
  %181 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %171, ptr noundef nonnull %.str.5.sink836, i32 noundef %172, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, i32 noundef 66, ptr noundef %175, ptr noundef %177, ptr noundef %179, i32 noundef %180) #13
  call void @exit(i32 noundef 1) #14
  unreachable

182:                                              ; preds = %153
  %183 = load i32, ptr @test_count, align 4, !tbaa !5
  %184 = add nsw i32 %183, 1
  store i32 %184, ptr @test_count, align 4, !tbaa !5
  %185 = call i32 @s2n_get_public_random_data(ptr noundef nonnull %5) #11
  %186 = call zeroext i1 @s2n_result_is_ok(i32 %185)
  br i1 %186, label %211, label %187

187:                                              ; preds = %182
  %188 = tail call ptr @__errno_location() #12
  %189 = load i32, ptr %188, align 4, !tbaa !5
  %190 = load ptr, ptr @stderr, align 8, !tbaa !9
  %191 = call i32 @s2n_print_stacktrace(ptr noundef %190) #11
  %192 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %193 = trunc nuw i8 %192 to i1
  br i1 %193, label %194, label %198

194:                                              ; preds = %187
  %195 = load ptr, ptr @stderr, align 8, !tbaa !9
  %196 = call i32 @fileno(ptr noundef %195) #11
  %197 = call i32 @isatty(i32 noundef %196) #11
  %.not = icmp eq i32 %197, 0
  br i1 %.not, label %198, label %199

198:                                              ; preds = %194, %187
  br label %199

199:                                              ; preds = %194, %198
  %.str.5.sink847 = phi ptr [ @.str.5, %198 ], [ @.str.2, %194 ]
  store i32 %189, ptr %188, align 4, !tbaa !5
  %200 = load ptr, ptr @stderr, align 8, !tbaa !9
  %201 = load i32, ptr @test_count, align 4, !tbaa !5
  %202 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %203 = load i32, ptr %202, align 4, !tbaa !5
  %204 = call ptr @s2n_strerror(i32 noundef %203, ptr noundef nonnull @.str.4) #11
  %205 = load i32, ptr %202, align 4, !tbaa !5
  %206 = call ptr @s2n_strerror_debug(i32 noundef %205, ptr noundef nonnull @.str.4) #11
  %207 = load i32, ptr %188, align 4, !tbaa !5
  %208 = call ptr @strerror(i32 noundef %207) #11
  %209 = load i32, ptr %188, align 4, !tbaa !5
  %210 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %200, ptr noundef nonnull %.str.5.sink847, i32 noundef %201, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 67, ptr noundef %204, ptr noundef %206, ptr noundef %208, i32 noundef %209) #13
  call void @exit(i32 noundef 1) #14
  unreachable

211:                                              ; preds = %182
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %6) #11
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(16) %6, ptr noundef nonnull align 16 dereferenceable(16) @__const.main.aes128_key, i64 16, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %7) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %7, i8 0, i64 24, i1 false)
  %212 = load i32, ptr @test_count, align 4, !tbaa !5
  %213 = add nsw i32 %212, 1
  store i32 %213, ptr @test_count, align 4, !tbaa !5
  %214 = call i32 @s2n_blob_init(ptr noundef nonnull %7, ptr noundef nonnull %6, i32 noundef 16) #11
  %215 = icmp eq i32 %214, -1
  br i1 %215, label %216, label %240

216:                                              ; preds = %211
  %217 = tail call ptr @__errno_location() #12
  %218 = load i32, ptr %217, align 4, !tbaa !5
  %219 = load ptr, ptr @stderr, align 8, !tbaa !9
  %220 = call i32 @s2n_print_stacktrace(ptr noundef %219) #11
  %221 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %222 = trunc nuw i8 %221 to i1
  br i1 %222, label %223, label %227

223:                                              ; preds = %216
  %224 = load ptr, ptr @stderr, align 8, !tbaa !9
  %225 = call i32 @fileno(ptr noundef %224) #11
  %226 = call i32 @isatty(i32 noundef %225) #11
  %.not780 = icmp eq i32 %226, 0
  br i1 %.not780, label %227, label %228

227:                                              ; preds = %223, %216
  br label %228

228:                                              ; preds = %223, %227
  %.str.5.sink858 = phi ptr [ @.str.5, %227 ], [ @.str.2, %223 ]
  store i32 %218, ptr %217, align 4, !tbaa !5
  %229 = load ptr, ptr @stderr, align 8, !tbaa !9
  %230 = load i32, ptr @test_count, align 4, !tbaa !5
  %231 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %232 = load i32, ptr %231, align 4, !tbaa !5
  %233 = call ptr @s2n_strerror(i32 noundef %232, ptr noundef nonnull @.str.4) #11
  %234 = load i32, ptr %231, align 4, !tbaa !5
  %235 = call ptr @s2n_strerror_debug(i32 noundef %234, ptr noundef nonnull @.str.4) #11
  %236 = load i32, ptr %217, align 4, !tbaa !5
  %237 = call ptr @strerror(i32 noundef %236) #11
  %238 = load i32, ptr %217, align 4, !tbaa !5
  %239 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %229, ptr noundef nonnull %.str.5.sink858, i32 noundef %230, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 71, ptr noundef %233, ptr noundef %235, ptr noundef %237, i32 noundef %238) #13
  call void @exit(i32 noundef 1) #14
  unreachable

240:                                              ; preds = %211
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #11
  %241 = call ptr @s2n_connection_new(i32 noundef 0) #11
  store ptr %241, ptr %8, align 8, !tbaa !9
  %242 = load i32, ptr @test_count, align 4, !tbaa !5
  %243 = add nsw i32 %242, 1
  store i32 %243, ptr @test_count, align 4, !tbaa !5
  %244 = icmp eq ptr %241, null
  br i1 %244, label %245, label %269

245:                                              ; preds = %240
  %246 = tail call ptr @__errno_location() #12
  %247 = load i32, ptr %246, align 4, !tbaa !5
  %248 = load ptr, ptr @stderr, align 8, !tbaa !9
  %249 = call i32 @s2n_print_stacktrace(ptr noundef %248) #11
  %250 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %251 = trunc nuw i8 %250 to i1
  br i1 %251, label %252, label %256

252:                                              ; preds = %245
  %253 = load ptr, ptr @stderr, align 8, !tbaa !9
  %254 = call i32 @fileno(ptr noundef %253) #11
  %255 = call i32 @isatty(i32 noundef %254) #11
  %.not779 = icmp eq i32 %255, 0
  br i1 %.not779, label %256, label %257

256:                                              ; preds = %252, %245
  br label %257

257:                                              ; preds = %252, %256
  %.str.5.sink869 = phi ptr [ @.str.5, %256 ], [ @.str.2, %252 ]
  store i32 %247, ptr %246, align 4, !tbaa !5
  %258 = load ptr, ptr @stderr, align 8, !tbaa !9
  %259 = load i32, ptr @test_count, align 4, !tbaa !5
  %260 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %261 = load i32, ptr %260, align 4, !tbaa !5
  %262 = call ptr @s2n_strerror(i32 noundef %261, ptr noundef nonnull @.str.4) #11
  %263 = load i32, ptr %260, align 4, !tbaa !5
  %264 = call ptr @s2n_strerror_debug(i32 noundef %263, ptr noundef nonnull @.str.4) #11
  %265 = load i32, ptr %246, align 4, !tbaa !5
  %266 = call ptr @strerror(i32 noundef %265) #11
  %267 = load i32, ptr %246, align 4, !tbaa !5
  %268 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %258, ptr noundef nonnull %.str.5.sink869, i32 noundef %259, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 77, ptr noundef %262, ptr noundef %264, ptr noundef %266, i32 noundef %267) #13
  call void @exit(i32 noundef 1) #14
  unreachable

269:                                              ; preds = %240
  %270 = getelementptr inbounds i8, ptr %241, i64 232
  %271 = load ptr, ptr %270, align 8, !tbaa !15
  %272 = getelementptr inbounds i8, ptr %241, i64 640
  store ptr %271, ptr %272, align 8, !tbaa !42
  %273 = getelementptr inbounds i8, ptr %241, i64 632
  store ptr %271, ptr %273, align 8, !tbaa !43
  %274 = load ptr, ptr %271, align 8, !tbaa !44
  %275 = getelementptr inbounds i8, ptr %274, i64 48
  store ptr @s2n_record_alg_aes128_sha, ptr %275, align 8, !tbaa !49
  %276 = add nsw i32 %242, 2
  store i32 %276, ptr @test_count, align 4, !tbaa !5
  %277 = load ptr, ptr @s2n_record_alg_aes128_sha, align 8, !tbaa !51
  %278 = getelementptr inbounds i8, ptr %277, i64 64
  %279 = load ptr, ptr %278, align 8, !tbaa !53
  %280 = getelementptr inbounds i8, ptr %271, i64 16
  %281 = call i32 %279(ptr noundef nonnull %280) #11
  %282 = call zeroext i1 @s2n_result_is_ok(i32 %281)
  br i1 %282, label %307, label %283

283:                                              ; preds = %269
  %284 = tail call ptr @__errno_location() #12
  %285 = load i32, ptr %284, align 4, !tbaa !5
  %286 = load ptr, ptr @stderr, align 8, !tbaa !9
  %287 = call i32 @s2n_print_stacktrace(ptr noundef %286) #11
  %288 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %289 = trunc nuw i8 %288 to i1
  br i1 %289, label %290, label %294

290:                                              ; preds = %283
  %291 = load ptr, ptr @stderr, align 8, !tbaa !9
  %292 = call i32 @fileno(ptr noundef %291) #11
  %293 = call i32 @isatty(i32 noundef %292) #11
  %.not611 = icmp eq i32 %293, 0
  br i1 %.not611, label %294, label %295

294:                                              ; preds = %290, %283
  br label %295

295:                                              ; preds = %290, %294
  %.str.5.sink880 = phi ptr [ @.str.5, %294 ], [ @.str.2, %290 ]
  store i32 %285, ptr %284, align 4, !tbaa !5
  %296 = load ptr, ptr @stderr, align 8, !tbaa !9
  %297 = load i32, ptr @test_count, align 4, !tbaa !5
  %298 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %299 = load i32, ptr %298, align 4, !tbaa !5
  %300 = call ptr @s2n_strerror(i32 noundef %299, ptr noundef nonnull @.str.4) #11
  %301 = load i32, ptr %298, align 4, !tbaa !5
  %302 = call ptr @s2n_strerror_debug(i32 noundef %301, ptr noundef nonnull @.str.4) #11
  %303 = load i32, ptr %284, align 4, !tbaa !5
  %304 = call ptr @strerror(i32 noundef %303) #11
  %305 = load i32, ptr %284, align 4, !tbaa !5
  %306 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %296, ptr noundef nonnull %.str.5.sink880, i32 noundef %297, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 85, ptr noundef %300, ptr noundef %302, ptr noundef %304, i32 noundef %305) #13
  call void @exit(i32 noundef 1) #14
  unreachable

307:                                              ; preds = %269
  %308 = load i32, ptr @test_count, align 4, !tbaa !5
  %309 = add nsw i32 %308, 1
  store i32 %309, ptr @test_count, align 4, !tbaa !5
  %310 = load ptr, ptr %8, align 8, !tbaa !9
  %311 = getelementptr inbounds i8, ptr %310, i64 232
  %312 = load ptr, ptr %311, align 8, !tbaa !15
  %313 = load ptr, ptr %312, align 8, !tbaa !44
  %314 = getelementptr inbounds i8, ptr %313, i64 48
  %315 = load ptr, ptr %314, align 8, !tbaa !49
  %316 = load ptr, ptr %315, align 8, !tbaa !51
  %317 = getelementptr inbounds i8, ptr %316, i64 64
  %318 = load ptr, ptr %317, align 8, !tbaa !53
  %319 = getelementptr inbounds i8, ptr %312, i64 8
  %320 = call i32 %318(ptr noundef nonnull %319) #11
  %321 = call zeroext i1 @s2n_result_is_ok(i32 %320)
  br i1 %321, label %346, label %322

322:                                              ; preds = %307
  %323 = tail call ptr @__errno_location() #12
  %324 = load i32, ptr %323, align 4, !tbaa !5
  %325 = load ptr, ptr @stderr, align 8, !tbaa !9
  %326 = call i32 @s2n_print_stacktrace(ptr noundef %325) #11
  %327 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %328 = trunc nuw i8 %327 to i1
  br i1 %328, label %329, label %333

329:                                              ; preds = %322
  %330 = load ptr, ptr @stderr, align 8, !tbaa !9
  %331 = call i32 @fileno(ptr noundef %330) #11
  %332 = call i32 @isatty(i32 noundef %331) #11
  %.not612 = icmp eq i32 %332, 0
  br i1 %.not612, label %333, label %334

333:                                              ; preds = %329, %322
  br label %334

334:                                              ; preds = %329, %333
  %.str.5.sink891 = phi ptr [ @.str.5, %333 ], [ @.str.2, %329 ]
  store i32 %324, ptr %323, align 4, !tbaa !5
  %335 = load ptr, ptr @stderr, align 8, !tbaa !9
  %336 = load i32, ptr @test_count, align 4, !tbaa !5
  %337 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %338 = load i32, ptr %337, align 4, !tbaa !5
  %339 = call ptr @s2n_strerror(i32 noundef %338, ptr noundef nonnull @.str.4) #11
  %340 = load i32, ptr %337, align 4, !tbaa !5
  %341 = call ptr @s2n_strerror_debug(i32 noundef %340, ptr noundef nonnull @.str.4) #11
  %342 = load i32, ptr %323, align 4, !tbaa !5
  %343 = call ptr @strerror(i32 noundef %342) #11
  %344 = load i32, ptr %323, align 4, !tbaa !5
  %345 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %335, ptr noundef nonnull %.str.5.sink891, i32 noundef %336, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 86, ptr noundef %339, ptr noundef %341, ptr noundef %343, i32 noundef %344) #13
  call void @exit(i32 noundef 1) #14
  unreachable

346:                                              ; preds = %307
  %347 = load i32, ptr @test_count, align 4, !tbaa !5
  %348 = add nsw i32 %347, 1
  store i32 %348, ptr @test_count, align 4, !tbaa !5
  %349 = load ptr, ptr %8, align 8, !tbaa !9
  %350 = getelementptr inbounds i8, ptr %349, i64 232
  %351 = load ptr, ptr %350, align 8, !tbaa !15
  %352 = load ptr, ptr %351, align 8, !tbaa !44
  %353 = getelementptr inbounds i8, ptr %352, i64 48
  %354 = load ptr, ptr %353, align 8, !tbaa !49
  %355 = load ptr, ptr %354, align 8, !tbaa !51
  %356 = getelementptr inbounds i8, ptr %355, i64 80
  %357 = load ptr, ptr %356, align 8, !tbaa !55
  %358 = getelementptr inbounds i8, ptr %351, i64 16
  %359 = call i32 %357(ptr noundef nonnull %358, ptr noundef nonnull %7) #11
  %360 = call zeroext i1 @s2n_result_is_ok(i32 %359)
  br i1 %360, label %385, label %361

361:                                              ; preds = %346
  %362 = tail call ptr @__errno_location() #12
  %363 = load i32, ptr %362, align 4, !tbaa !5
  %364 = load ptr, ptr @stderr, align 8, !tbaa !9
  %365 = call i32 @s2n_print_stacktrace(ptr noundef %364) #11
  %366 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %367 = trunc nuw i8 %366 to i1
  br i1 %367, label %368, label %372

368:                                              ; preds = %361
  %369 = load ptr, ptr @stderr, align 8, !tbaa !9
  %370 = call i32 @fileno(ptr noundef %369) #11
  %371 = call i32 @isatty(i32 noundef %370) #11
  %.not613 = icmp eq i32 %371, 0
  br i1 %.not613, label %372, label %373

372:                                              ; preds = %368, %361
  br label %373

373:                                              ; preds = %368, %372
  %.str.5.sink902 = phi ptr [ @.str.5, %372 ], [ @.str.2, %368 ]
  store i32 %363, ptr %362, align 4, !tbaa !5
  %374 = load ptr, ptr @stderr, align 8, !tbaa !9
  %375 = load i32, ptr @test_count, align 4, !tbaa !5
  %376 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %377 = load i32, ptr %376, align 4, !tbaa !5
  %378 = call ptr @s2n_strerror(i32 noundef %377, ptr noundef nonnull @.str.4) #11
  %379 = load i32, ptr %376, align 4, !tbaa !5
  %380 = call ptr @s2n_strerror_debug(i32 noundef %379, ptr noundef nonnull @.str.4) #11
  %381 = load i32, ptr %362, align 4, !tbaa !5
  %382 = call ptr @strerror(i32 noundef %381) #11
  %383 = load i32, ptr %362, align 4, !tbaa !5
  %384 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %374, ptr noundef nonnull %.str.5.sink902, i32 noundef %375, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 87, ptr noundef %378, ptr noundef %380, ptr noundef %382, i32 noundef %383) #13
  call void @exit(i32 noundef 1) #14
  unreachable

385:                                              ; preds = %346
  %386 = load i32, ptr @test_count, align 4, !tbaa !5
  %387 = add nsw i32 %386, 1
  store i32 %387, ptr @test_count, align 4, !tbaa !5
  %388 = load ptr, ptr %8, align 8, !tbaa !9
  %389 = getelementptr inbounds i8, ptr %388, i64 232
  %390 = load ptr, ptr %389, align 8, !tbaa !15
  %391 = load ptr, ptr %390, align 8, !tbaa !44
  %392 = getelementptr inbounds i8, ptr %391, i64 48
  %393 = load ptr, ptr %392, align 8, !tbaa !49
  %394 = load ptr, ptr %393, align 8, !tbaa !51
  %395 = getelementptr inbounds i8, ptr %394, i64 72
  %396 = load ptr, ptr %395, align 8, !tbaa !56
  %397 = getelementptr inbounds i8, ptr %390, i64 8
  %398 = call i32 %396(ptr noundef nonnull %397, ptr noundef nonnull %7) #11
  %399 = call zeroext i1 @s2n_result_is_ok(i32 %398)
  br i1 %399, label %424, label %400

400:                                              ; preds = %385
  %401 = tail call ptr @__errno_location() #12
  %402 = load i32, ptr %401, align 4, !tbaa !5
  %403 = load ptr, ptr @stderr, align 8, !tbaa !9
  %404 = call i32 @s2n_print_stacktrace(ptr noundef %403) #11
  %405 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %406 = trunc nuw i8 %405 to i1
  br i1 %406, label %407, label %411

407:                                              ; preds = %400
  %408 = load ptr, ptr @stderr, align 8, !tbaa !9
  %409 = call i32 @fileno(ptr noundef %408) #11
  %410 = call i32 @isatty(i32 noundef %409) #11
  %.not614 = icmp eq i32 %410, 0
  br i1 %.not614, label %411, label %412

411:                                              ; preds = %407, %400
  br label %412

412:                                              ; preds = %407, %411
  %.str.5.sink913 = phi ptr [ @.str.5, %411 ], [ @.str.2, %407 ]
  store i32 %402, ptr %401, align 4, !tbaa !5
  %413 = load ptr, ptr @stderr, align 8, !tbaa !9
  %414 = load i32, ptr @test_count, align 4, !tbaa !5
  %415 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %416 = load i32, ptr %415, align 4, !tbaa !5
  %417 = call ptr @s2n_strerror(i32 noundef %416, ptr noundef nonnull @.str.4) #11
  %418 = load i32, ptr %415, align 4, !tbaa !5
  %419 = call ptr @s2n_strerror_debug(i32 noundef %418, ptr noundef nonnull @.str.4) #11
  %420 = load i32, ptr %401, align 4, !tbaa !5
  %421 = call ptr @strerror(i32 noundef %420) #11
  %422 = load i32, ptr %401, align 4, !tbaa !5
  %423 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %413, ptr noundef nonnull %.str.5.sink913, i32 noundef %414, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 88, ptr noundef %417, ptr noundef %419, ptr noundef %421, i32 noundef %422) #13
  call void @exit(i32 noundef 1) #14
  unreachable

424:                                              ; preds = %385
  %425 = load i32, ptr @test_count, align 4, !tbaa !5
  %426 = add nsw i32 %425, 1
  store i32 %426, ptr @test_count, align 4, !tbaa !5
  %427 = load ptr, ptr %8, align 8, !tbaa !9
  %428 = getelementptr inbounds i8, ptr %427, i64 232
  %429 = load ptr, ptr %428, align 8, !tbaa !15
  %430 = getelementptr inbounds i8, ptr %429, i64 24
  %431 = call i32 @s2n_hmac_init(ptr noundef nonnull %430, i32 noundef 2, ptr noundef nonnull %3, i32 noundef 15) #11
  %432 = icmp eq i32 %431, -1
  br i1 %432, label %433, label %457

433:                                              ; preds = %424
  %434 = tail call ptr @__errno_location() #12
  %435 = load i32, ptr %434, align 4, !tbaa !5
  %436 = load ptr, ptr @stderr, align 8, !tbaa !9
  %437 = call i32 @s2n_print_stacktrace(ptr noundef %436) #11
  %438 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %439 = trunc nuw i8 %438 to i1
  br i1 %439, label %440, label %444

440:                                              ; preds = %433
  %441 = load ptr, ptr @stderr, align 8, !tbaa !9
  %442 = call i32 @fileno(ptr noundef %441) #11
  %443 = call i32 @isatty(i32 noundef %442) #11
  %.not778 = icmp eq i32 %443, 0
  br i1 %.not778, label %444, label %445

444:                                              ; preds = %440, %433
  br label %445

445:                                              ; preds = %440, %444
  %.str.5.sink924 = phi ptr [ @.str.5, %444 ], [ @.str.2, %440 ]
  store i32 %435, ptr %434, align 4, !tbaa !5
  %446 = load ptr, ptr @stderr, align 8, !tbaa !9
  %447 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %449, ptr noundef nonnull @.str.4) #11
  %451 = load i32, ptr %448, align 4, !tbaa !5
  %452 = call ptr @s2n_strerror_debug(i32 noundef %451, ptr noundef nonnull @.str.4) #11
  %453 = load i32, ptr %434, align 4, !tbaa !5
  %454 = call ptr @strerror(i32 noundef %453) #11
  %455 = load i32, ptr %434, align 4, !tbaa !5
  %456 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %446, ptr noundef nonnull %.str.5.sink924, i32 noundef %447, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 89, ptr noundef %450, ptr noundef %452, ptr noundef %454, i32 noundef %455) #13
  call void @exit(i32 noundef 1) #14
  unreachable

457:                                              ; preds = %424
  %458 = load i32, ptr @test_count, align 4, !tbaa !5
  %459 = add nsw i32 %458, 1
  store i32 %459, ptr @test_count, align 4, !tbaa !5
  %460 = load ptr, ptr %8, align 8, !tbaa !9
  %461 = getelementptr inbounds i8, ptr %460, i64 232
  %462 = load ptr, ptr %461, align 8, !tbaa !15
  %463 = getelementptr inbounds i8, ptr %462, i64 456
  %464 = call i32 @s2n_hmac_init(ptr noundef nonnull %463, i32 noundef 2, ptr noundef nonnull %3, i32 noundef 15) #11
  %465 = icmp eq i32 %464, -1
  br i1 %465, label %466, label %490

466:                                              ; preds = %457
  %467 = tail call ptr @__errno_location() #12
  %468 = load i32, ptr %467, align 4, !tbaa !5
  %469 = load ptr, ptr @stderr, align 8, !tbaa !9
  %470 = call i32 @s2n_print_stacktrace(ptr noundef %469) #11
  %471 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %472 = trunc nuw i8 %471 to i1
  br i1 %472, label %473, label %477

473:                                              ; preds = %466
  %474 = load ptr, ptr @stderr, align 8, !tbaa !9
  %475 = call i32 @fileno(ptr noundef %474) #11
  %476 = call i32 @isatty(i32 noundef %475) #11
  %.not777 = icmp eq i32 %476, 0
  br i1 %.not777, label %477, label %478

477:                                              ; preds = %473, %466
  br label %478

478:                                              ; preds = %473, %477
  %.str.5.sink935 = phi ptr [ @.str.5, %477 ], [ @.str.2, %473 ]
  store i32 %468, ptr %467, align 4, !tbaa !5
  %479 = load ptr, ptr @stderr, align 8, !tbaa !9
  %480 = load i32, ptr @test_count, align 4, !tbaa !5
  %481 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %482 = load i32, ptr %481, align 4, !tbaa !5
  %483 = call ptr @s2n_strerror(i32 noundef %482, ptr noundef nonnull @.str.4) #11
  %484 = load i32, ptr %481, align 4, !tbaa !5
  %485 = call ptr @s2n_strerror_debug(i32 noundef %484, ptr noundef nonnull @.str.4) #11
  %486 = load i32, ptr %467, align 4, !tbaa !5
  %487 = call ptr @strerror(i32 noundef %486) #11
  %488 = load i32, ptr %467, align 4, !tbaa !5
  %489 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %479, ptr noundef nonnull %.str.5.sink935, i32 noundef %480, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 90, ptr noundef %483, ptr noundef %485, ptr noundef %487, i32 noundef %488) #13
  call void @exit(i32 noundef 1) #14
  unreachable

490:                                              ; preds = %457
  %491 = load ptr, ptr %8, align 8, !tbaa !9
  %492 = getelementptr inbounds i8, ptr %491, i64 220
  store i8 32, ptr %492, align 4, !tbaa !57
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %9) #11
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %9, ptr noundef nonnull align 8 dereferenceable(24) %5, i64 24, i1 false), !tbaa.struct !58
  %493 = getelementptr inbounds i8, ptr %9, i64 8
  store i32 8087, ptr %493, align 8, !tbaa !60
  %494 = load i32, ptr @test_count, align 4, !tbaa !5
  %495 = add nsw i32 %494, 1
  store i32 %495, ptr @test_count, align 4, !tbaa !5
  %496 = getelementptr inbounds i8, ptr %491, i64 1896
  %497 = call i32 @s2n_stuffer_wipe(ptr noundef nonnull %496) #11
  %498 = icmp eq i32 %497, -1
  br i1 %498, label %499, label %523

499:                                              ; preds = %490
  %500 = tail call ptr @__errno_location() #12
  %501 = load i32, ptr %500, align 4, !tbaa !5
  %502 = load ptr, ptr @stderr, align 8, !tbaa !9
  %503 = call i32 @s2n_print_stacktrace(ptr noundef %502) #11
  %504 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %505 = trunc nuw i8 %504 to i1
  br i1 %505, label %506, label %510

506:                                              ; preds = %499
  %507 = load ptr, ptr @stderr, align 8, !tbaa !9
  %508 = call i32 @fileno(ptr noundef %507) #11
  %509 = call i32 @isatty(i32 noundef %508) #11
  %.not776 = icmp eq i32 %509, 0
  br i1 %.not776, label %510, label %511

510:                                              ; preds = %506, %499
  br label %511

511:                                              ; preds = %506, %510
  %.str.5.sink946 = phi ptr [ @.str.5, %510 ], [ @.str.2, %506 ]
  store i32 %501, ptr %500, align 4, !tbaa !5
  %512 = load ptr, ptr @stderr, align 8, !tbaa !9
  %513 = load i32, ptr @test_count, align 4, !tbaa !5
  %514 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %515 = load i32, ptr %514, align 4, !tbaa !5
  %516 = call ptr @s2n_strerror(i32 noundef %515, ptr noundef nonnull @.str.4) #11
  %517 = load i32, ptr %514, align 4, !tbaa !5
  %518 = call ptr @s2n_strerror_debug(i32 noundef %517, ptr noundef nonnull @.str.4) #11
  %519 = load i32, ptr %500, align 4, !tbaa !5
  %520 = call ptr @strerror(i32 noundef %519) #11
  %521 = load i32, ptr %500, align 4, !tbaa !5
  %522 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %512, ptr noundef nonnull %.str.5.sink946, i32 noundef %513, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 102, ptr noundef %516, ptr noundef %518, ptr noundef %520, i32 noundef %521) #13
  call void @exit(i32 noundef 1) #14
  unreachable

523:                                              ; preds = %490
  %524 = load i32, ptr @test_count, align 4, !tbaa !5
  %525 = add nsw i32 %524, 1
  store i32 %525, ptr @test_count, align 4, !tbaa !5
  %526 = load ptr, ptr %8, align 8, !tbaa !9
  %527 = call i32 @s2n_record_write(ptr noundef %526, i8 noundef zeroext 23, ptr noundef nonnull %9) #11
  %528 = call zeroext i1 @s2n_result_is_ok(i32 %527)
  br i1 %528, label %553, label %529

529:                                              ; preds = %523
  %530 = tail call ptr @__errno_location() #12
  %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) #11
  %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) #11
  %539 = call i32 @isatty(i32 noundef %538) #11
  %.not615 = icmp eq i32 %539, 0
  br i1 %.not615, label %540, label %541

540:                                              ; preds = %536, %529
  br label %541

541:                                              ; preds = %536, %540
  %.str.5.sink957 = 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) #11
  %547 = load i32, ptr %544, align 4, !tbaa !5
  %548 = call ptr @s2n_strerror_debug(i32 noundef %547, ptr noundef nonnull @.str.4) #11
  %549 = load i32, ptr %530, align 4, !tbaa !5
  %550 = call ptr @strerror(i32 noundef %549) #11
  %551 = load i32, ptr %530, align 4, !tbaa !5
  %552 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %542, ptr noundef nonnull %.str.5.sink957, i32 noundef %543, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 103, ptr noundef %546, ptr noundef %548, ptr noundef %550, i32 noundef %551) #13
  call void @exit(i32 noundef 1) #14
  unreachable

553:                                              ; preds = %523
  store i32 1435, ptr %493, align 8, !tbaa !60
  %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 = load ptr, ptr %8, align 8, !tbaa !9
  %557 = call i32 @s2n_connection_prefer_low_latency(ptr noundef %556) #11
  %558 = icmp eq i32 %557, -1
  br i1 %558, label %559, label %583

559:                                              ; preds = %553
  %560 = tail call ptr @__errno_location() #12
  %561 = load i32, ptr %560, align 4, !tbaa !5
  %562 = load ptr, ptr @stderr, align 8, !tbaa !9
  %563 = call i32 @s2n_print_stacktrace(ptr noundef %562) #11
  %564 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %565 = trunc nuw i8 %564 to i1
  br i1 %565, label %566, label %570

566:                                              ; preds = %559
  %567 = load ptr, ptr @stderr, align 8, !tbaa !9
  %568 = call i32 @fileno(ptr noundef %567) #11
  %569 = call i32 @isatty(i32 noundef %568) #11
  %.not775 = icmp eq i32 %569, 0
  br i1 %.not775, label %570, label %571

570:                                              ; preds = %566, %559
  br label %571

571:                                              ; preds = %566, %570
  %.str.5.sink968 = phi ptr [ @.str.5, %570 ], [ @.str.2, %566 ]
  store i32 %561, ptr %560, align 4, !tbaa !5
  %572 = load ptr, ptr @stderr, align 8, !tbaa !9
  %573 = load i32, ptr @test_count, align 4, !tbaa !5
  %574 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %575 = load i32, ptr %574, align 4, !tbaa !5
  %576 = call ptr @s2n_strerror(i32 noundef %575, ptr noundef nonnull @.str.4) #11
  %577 = load i32, ptr %574, align 4, !tbaa !5
  %578 = call ptr @s2n_strerror_debug(i32 noundef %577, ptr noundef nonnull @.str.4) #11
  %579 = load i32, ptr %560, align 4, !tbaa !5
  %580 = call ptr @strerror(i32 noundef %579) #11
  %581 = load i32, ptr %560, align 4, !tbaa !5
  %582 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %572, ptr noundef nonnull %.str.5.sink968, i32 noundef %573, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 107, ptr noundef %576, ptr noundef %578, ptr noundef %580, i32 noundef %581) #13
  call void @exit(i32 noundef 1) #14
  unreachable

583:                                              ; preds = %553
  %584 = load i32, ptr @test_count, align 4, !tbaa !5
  %585 = add nsw i32 %584, 1
  store i32 %585, ptr @test_count, align 4, !tbaa !5
  %586 = load ptr, ptr %8, align 8, !tbaa !9
  %587 = getelementptr inbounds i8, ptr %586, i64 1896
  %588 = call i32 @s2n_stuffer_wipe(ptr noundef nonnull %587) #11
  %589 = icmp eq i32 %588, -1
  br i1 %589, label %590, label %614

590:                                              ; preds = %583
  %591 = tail call ptr @__errno_location() #12
  %592 = load i32, ptr %591, align 4, !tbaa !5
  %593 = load ptr, ptr @stderr, align 8, !tbaa !9
  %594 = call i32 @s2n_print_stacktrace(ptr noundef %593) #11
  %595 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %596 = trunc nuw i8 %595 to i1
  br i1 %596, label %597, label %601

597:                                              ; preds = %590
  %598 = load ptr, ptr @stderr, align 8, !tbaa !9
  %599 = call i32 @fileno(ptr noundef %598) #11
  %600 = call i32 @isatty(i32 noundef %599) #11
  %.not774 = icmp eq i32 %600, 0
  br i1 %.not774, label %601, label %602

601:                                              ; preds = %597, %590
  br label %602

602:                                              ; preds = %597, %601
  %.str.5.sink979 = phi ptr [ @.str.5, %601 ], [ @.str.2, %597 ]
  store i32 %592, ptr %591, align 4, !tbaa !5
  %603 = load ptr, ptr @stderr, align 8, !tbaa !9
  %604 = load i32, ptr @test_count, align 4, !tbaa !5
  %605 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %606 = load i32, ptr %605, align 4, !tbaa !5
  %607 = call ptr @s2n_strerror(i32 noundef %606, ptr noundef nonnull @.str.4) #11
  %608 = load i32, ptr %605, align 4, !tbaa !5
  %609 = call ptr @s2n_strerror_debug(i32 noundef %608, ptr noundef nonnull @.str.4) #11
  %610 = load i32, ptr %591, align 4, !tbaa !5
  %611 = call ptr @strerror(i32 noundef %610) #11
  %612 = load i32, ptr %591, align 4, !tbaa !5
  %613 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %603, ptr noundef nonnull %.str.5.sink979, i32 noundef %604, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 108, ptr noundef %607, ptr noundef %609, ptr noundef %611, i32 noundef %612) #13
  call void @exit(i32 noundef 1) #14
  unreachable

614:                                              ; preds = %583
  %615 = load i32, ptr @test_count, align 4, !tbaa !5
  %616 = add nsw i32 %615, 1
  store i32 %616, ptr @test_count, align 4, !tbaa !5
  %617 = load ptr, ptr %8, align 8, !tbaa !9
  %618 = call i32 @s2n_record_write(ptr noundef %617, i8 noundef zeroext 23, ptr noundef nonnull %9) #11
  %619 = call zeroext i1 @s2n_result_is_ok(i32 %618)
  br i1 %619, label %644, label %620

620:                                              ; preds = %614
  %621 = tail call ptr @__errno_location() #12
  %622 = load i32, ptr %621, align 4, !tbaa !5
  %623 = load ptr, ptr @stderr, align 8, !tbaa !9
  %624 = call i32 @s2n_print_stacktrace(ptr noundef %623) #11
  %625 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %626 = trunc nuw i8 %625 to i1
  br i1 %626, label %627, label %631

627:                                              ; preds = %620
  %628 = load ptr, ptr @stderr, align 8, !tbaa !9
  %629 = call i32 @fileno(ptr noundef %628) #11
  %630 = call i32 @isatty(i32 noundef %629) #11
  %.not616 = icmp eq i32 %630, 0
  br i1 %.not616, label %631, label %632

631:                                              ; preds = %627, %620
  br label %632

632:                                              ; preds = %627, %631
  %.str.5.sink990 = phi ptr [ @.str.5, %631 ], [ @.str.2, %627 ]
  store i32 %622, ptr %621, align 4, !tbaa !5
  %633 = load ptr, ptr @stderr, align 8, !tbaa !9
  %634 = load i32, ptr @test_count, align 4, !tbaa !5
  %635 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %636 = load i32, ptr %635, align 4, !tbaa !5
  %637 = call ptr @s2n_strerror(i32 noundef %636, ptr noundef nonnull @.str.4) #11
  %638 = load i32, ptr %635, align 4, !tbaa !5
  %639 = call ptr @s2n_strerror_debug(i32 noundef %638, ptr noundef nonnull @.str.4) #11
  %640 = load i32, ptr %621, align 4, !tbaa !5
  %641 = call ptr @strerror(i32 noundef %640) #11
  %642 = load i32, ptr %621, align 4, !tbaa !5
  %643 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %633, ptr noundef nonnull %.str.5.sink990, i32 noundef %634, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 109, ptr noundef %637, ptr noundef %639, ptr noundef %641, i32 noundef %642) #13
  call void @exit(i32 noundef 1) #14
  unreachable

644:                                              ; preds = %614
  store i32 16384, ptr %493, align 8, !tbaa !60
  %645 = load i32, ptr @test_count, align 4, !tbaa !5
  %646 = add nsw i32 %645, 1
  store i32 %646, ptr @test_count, align 4, !tbaa !5
  %647 = load ptr, ptr %8, align 8, !tbaa !9
  %648 = call i32 @s2n_connection_prefer_throughput(ptr noundef %647) #11
  %649 = icmp eq i32 %648, -1
  br i1 %649, label %650, label %674

650:                                              ; preds = %644
  %651 = tail call ptr @__errno_location() #12
  %652 = load i32, ptr %651, align 4, !tbaa !5
  %653 = load ptr, ptr @stderr, align 8, !tbaa !9
  %654 = call i32 @s2n_print_stacktrace(ptr noundef %653) #11
  %655 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %656 = trunc nuw i8 %655 to i1
  br i1 %656, label %657, label %661

657:                                              ; preds = %650
  %658 = load ptr, ptr @stderr, align 8, !tbaa !9
  %659 = call i32 @fileno(ptr noundef %658) #11
  %660 = call i32 @isatty(i32 noundef %659) #11
  %.not773 = icmp eq i32 %660, 0
  br i1 %.not773, label %661, label %662

661:                                              ; preds = %657, %650
  br label %662

662:                                              ; preds = %657, %661
  %.str.5.sink1001 = phi ptr [ @.str.5, %661 ], [ @.str.2, %657 ]
  store i32 %652, ptr %651, align 4, !tbaa !5
  %663 = load ptr, ptr @stderr, align 8, !tbaa !9
  %664 = load i32, ptr @test_count, align 4, !tbaa !5
  %665 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %666 = load i32, ptr %665, align 4, !tbaa !5
  %667 = call ptr @s2n_strerror(i32 noundef %666, ptr noundef nonnull @.str.4) #11
  %668 = load i32, ptr %665, align 4, !tbaa !5
  %669 = call ptr @s2n_strerror_debug(i32 noundef %668, ptr noundef nonnull @.str.4) #11
  %670 = load i32, ptr %651, align 4, !tbaa !5
  %671 = call ptr @strerror(i32 noundef %670) #11
  %672 = load i32, ptr %651, align 4, !tbaa !5
  %673 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %663, ptr noundef nonnull %.str.5.sink1001, i32 noundef %664, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 113, ptr noundef %667, ptr noundef %669, ptr noundef %671, i32 noundef %672) #13
  call void @exit(i32 noundef 1) #14
  unreachable

674:                                              ; preds = %644
  %675 = load i32, ptr @test_count, align 4, !tbaa !5
  %676 = add nsw i32 %675, 1
  store i32 %676, ptr @test_count, align 4, !tbaa !5
  %677 = load ptr, ptr %8, align 8, !tbaa !9
  %678 = getelementptr inbounds i8, ptr %677, i64 1896
  %679 = call i32 @s2n_stuffer_wipe(ptr noundef nonnull %678) #11
  %680 = icmp eq i32 %679, -1
  br i1 %680, label %681, label %705

681:                                              ; preds = %674
  %682 = tail call ptr @__errno_location() #12
  %683 = load i32, ptr %682, align 4, !tbaa !5
  %684 = load ptr, ptr @stderr, align 8, !tbaa !9
  %685 = call i32 @s2n_print_stacktrace(ptr noundef %684) #11
  %686 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %687 = trunc nuw i8 %686 to i1
  br i1 %687, label %688, label %692

688:                                              ; preds = %681
  %689 = load ptr, ptr @stderr, align 8, !tbaa !9
  %690 = call i32 @fileno(ptr noundef %689) #11
  %691 = call i32 @isatty(i32 noundef %690) #11
  %.not772 = icmp eq i32 %691, 0
  br i1 %.not772, label %692, label %693

692:                                              ; preds = %688, %681
  br label %693

693:                                              ; preds = %688, %692
  %.str.5.sink1012 = phi ptr [ @.str.5, %692 ], [ @.str.2, %688 ]
  store i32 %683, ptr %682, align 4, !tbaa !5
  %694 = load ptr, ptr @stderr, align 8, !tbaa !9
  %695 = load i32, ptr @test_count, align 4, !tbaa !5
  %696 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %697 = load i32, ptr %696, align 4, !tbaa !5
  %698 = call ptr @s2n_strerror(i32 noundef %697, ptr noundef nonnull @.str.4) #11
  %699 = load i32, ptr %696, align 4, !tbaa !5
  %700 = call ptr @s2n_strerror_debug(i32 noundef %699, ptr noundef nonnull @.str.4) #11
  %701 = load i32, ptr %682, align 4, !tbaa !5
  %702 = call ptr @strerror(i32 noundef %701) #11
  %703 = load i32, ptr %682, align 4, !tbaa !5
  %704 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %694, ptr noundef nonnull %.str.5.sink1012, i32 noundef %695, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 114, ptr noundef %698, ptr noundef %700, ptr noundef %702, i32 noundef %703) #13
  call void @exit(i32 noundef 1) #14
  unreachable

705:                                              ; preds = %674
  %706 = load i32, ptr @test_count, align 4, !tbaa !5
  %707 = add nsw i32 %706, 1
  store i32 %707, ptr @test_count, align 4, !tbaa !5
  %708 = load ptr, ptr %8, align 8, !tbaa !9
  %709 = call i32 @s2n_record_write(ptr noundef %708, i8 noundef zeroext 23, ptr noundef nonnull %9) #11
  %710 = call zeroext i1 @s2n_result_is_ok(i32 %709)
  br i1 %710, label %735, label %711

711:                                              ; preds = %705
  %712 = tail call ptr @__errno_location() #12
  %713 = load i32, ptr %712, align 4, !tbaa !5
  %714 = load ptr, ptr @stderr, align 8, !tbaa !9
  %715 = call i32 @s2n_print_stacktrace(ptr noundef %714) #11
  %716 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %717 = trunc nuw i8 %716 to i1
  br i1 %717, label %718, label %722

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

722:                                              ; preds = %718, %711
  br label %723

723:                                              ; preds = %718, %722
  %.str.5.sink1023 = phi ptr [ @.str.5, %722 ], [ @.str.2, %718 ]
  store i32 %713, ptr %712, align 4, !tbaa !5
  %724 = load ptr, ptr @stderr, align 8, !tbaa !9
  %725 = load i32, ptr @test_count, align 4, !tbaa !5
  %726 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %727 = load i32, ptr %726, align 4, !tbaa !5
  %728 = call ptr @s2n_strerror(i32 noundef %727, ptr noundef nonnull @.str.4) #11
  %729 = load i32, ptr %726, align 4, !tbaa !5
  %730 = call ptr @s2n_strerror_debug(i32 noundef %729, ptr noundef nonnull @.str.4) #11
  %731 = load i32, ptr %712, align 4, !tbaa !5
  %732 = call ptr @strerror(i32 noundef %731) #11
  %733 = load i32, ptr %712, align 4, !tbaa !5
  %734 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %724, ptr noundef nonnull %.str.5.sink1023, i32 noundef %725, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 115, ptr noundef %728, ptr noundef %730, ptr noundef %732, i32 noundef %733) #13
  call void @exit(i32 noundef 1) #14
  unreachable

735:                                              ; preds = %705
  %736 = load ptr, ptr %8, align 8, !tbaa !9
  %737 = getelementptr inbounds i8, ptr %736, i64 232
  %738 = load ptr, ptr %737, align 8, !tbaa !15
  %739 = load ptr, ptr %738, align 8, !tbaa !44
  %740 = getelementptr inbounds i8, ptr %739, i64 48
  store ptr @s2n_record_alg_null, ptr %740, align 8, !tbaa !49
  %741 = load i32, ptr @test_count, align 4, !tbaa !5
  %742 = add nsw i32 %741, 1
  store i32 %742, ptr @test_count, align 4, !tbaa !5
  %743 = load ptr, ptr @s2n_record_alg_null, align 8, !tbaa !51
  %744 = getelementptr inbounds i8, ptr %743, i64 88
  %745 = load ptr, ptr %744, align 8, !tbaa !61
  %746 = getelementptr inbounds i8, ptr %738, i64 16
  %747 = call i32 %745(ptr noundef nonnull %746) #11
  %748 = call zeroext i1 @s2n_result_is_ok(i32 %747)
  br i1 %748, label %773, label %749

749:                                              ; preds = %735
  %750 = tail call ptr @__errno_location() #12
  %751 = load i32, ptr %750, align 4, !tbaa !5
  %752 = load ptr, ptr @stderr, align 8, !tbaa !9
  %753 = call i32 @s2n_print_stacktrace(ptr noundef %752) #11
  %754 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %755 = trunc nuw i8 %754 to i1
  br i1 %755, label %756, label %760

756:                                              ; preds = %749
  %757 = load ptr, ptr @stderr, align 8, !tbaa !9
  %758 = call i32 @fileno(ptr noundef %757) #11
  %759 = call i32 @isatty(i32 noundef %758) #11
  %.not618 = icmp eq i32 %759, 0
  br i1 %.not618, label %760, label %761

760:                                              ; preds = %756, %749
  br label %761

761:                                              ; preds = %756, %760
  %.str.5.sink1034 = phi ptr [ @.str.5, %760 ], [ @.str.2, %756 ]
  store i32 %751, ptr %750, align 4, !tbaa !5
  %762 = load ptr, ptr @stderr, align 8, !tbaa !9
  %763 = load i32, ptr @test_count, align 4, !tbaa !5
  %764 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %765 = load i32, ptr %764, align 4, !tbaa !5
  %766 = call ptr @s2n_strerror(i32 noundef %765, ptr noundef nonnull @.str.4) #11
  %767 = load i32, ptr %764, align 4, !tbaa !5
  %768 = call ptr @s2n_strerror_debug(i32 noundef %767, ptr noundef nonnull @.str.4) #11
  %769 = load i32, ptr %750, align 4, !tbaa !5
  %770 = call ptr @strerror(i32 noundef %769) #11
  %771 = load i32, ptr %750, align 4, !tbaa !5
  %772 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %762, ptr noundef nonnull %.str.5.sink1034, i32 noundef %763, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 119, ptr noundef %766, ptr noundef %768, ptr noundef %770, i32 noundef %771) #13
  call void @exit(i32 noundef 1) #14
  unreachable

773:                                              ; preds = %735
  %774 = load i32, ptr @test_count, align 4, !tbaa !5
  %775 = add nsw i32 %774, 1
  store i32 %775, ptr @test_count, align 4, !tbaa !5
  %776 = load ptr, ptr %8, align 8, !tbaa !9
  %777 = getelementptr inbounds i8, ptr %776, i64 232
  %778 = load ptr, ptr %777, align 8, !tbaa !15
  %779 = load ptr, ptr %778, align 8, !tbaa !44
  %780 = getelementptr inbounds i8, ptr %779, i64 48
  %781 = load ptr, ptr %780, align 8, !tbaa !49
  %782 = load ptr, ptr %781, align 8, !tbaa !51
  %783 = getelementptr inbounds i8, ptr %782, i64 88
  %784 = load ptr, ptr %783, align 8, !tbaa !61
  %785 = getelementptr inbounds i8, ptr %778, i64 8
  %786 = call i32 %784(ptr noundef nonnull %785) #11
  %787 = call zeroext i1 @s2n_result_is_ok(i32 %786)
  br i1 %787, label %812, label %788

788:                                              ; preds = %773
  %789 = tail call ptr @__errno_location() #12
  %790 = load i32, ptr %789, align 4, !tbaa !5
  %791 = load ptr, ptr @stderr, align 8, !tbaa !9
  %792 = call i32 @s2n_print_stacktrace(ptr noundef %791) #11
  %793 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %794 = trunc nuw i8 %793 to i1
  br i1 %794, label %795, label %799

795:                                              ; preds = %788
  %796 = load ptr, ptr @stderr, align 8, !tbaa !9
  %797 = call i32 @fileno(ptr noundef %796) #11
  %798 = call i32 @isatty(i32 noundef %797) #11
  %.not619 = icmp eq i32 %798, 0
  br i1 %.not619, label %799, label %800

799:                                              ; preds = %795, %788
  br label %800

800:                                              ; preds = %795, %799
  %.str.5.sink1045 = phi ptr [ @.str.5, %799 ], [ @.str.2, %795 ]
  store i32 %790, ptr %789, align 4, !tbaa !5
  %801 = load ptr, ptr @stderr, align 8, !tbaa !9
  %802 = load i32, ptr @test_count, align 4, !tbaa !5
  %803 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %804 = load i32, ptr %803, align 4, !tbaa !5
  %805 = call ptr @s2n_strerror(i32 noundef %804, ptr noundef nonnull @.str.4) #11
  %806 = load i32, ptr %803, align 4, !tbaa !5
  %807 = call ptr @s2n_strerror_debug(i32 noundef %806, ptr noundef nonnull @.str.4) #11
  %808 = load i32, ptr %789, align 4, !tbaa !5
  %809 = call ptr @strerror(i32 noundef %808) #11
  %810 = load i32, ptr %789, align 4, !tbaa !5
  %811 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %801, ptr noundef nonnull %.str.5.sink1045, i32 noundef %802, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 120, ptr noundef %805, ptr noundef %807, ptr noundef %809, i32 noundef %810) #13
  call void @exit(i32 noundef 1) #14
  unreachable

812:                                              ; preds = %773
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %9) #11
  %813 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %8) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #11
  %814 = load i32, ptr @test_count, align 4, !tbaa !5
  %815 = add nsw i32 %814, 1
  store i32 %815, ptr @test_count, align 4, !tbaa !5
  %816 = call ptr @s2n_connection_new(i32 noundef 0) #11
  %817 = icmp eq ptr %816, null
  br i1 %817, label %818, label %842

818:                                              ; preds = %812
  %819 = tail call ptr @__errno_location() #12
  %820 = load i32, ptr %819, align 4, !tbaa !5
  %821 = load ptr, ptr @stderr, align 8, !tbaa !9
  %822 = call i32 @s2n_print_stacktrace(ptr noundef %821) #11
  %823 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %824 = trunc nuw i8 %823 to i1
  br i1 %824, label %825, label %829

825:                                              ; preds = %818
  %826 = load ptr, ptr @stderr, align 8, !tbaa !9
  %827 = call i32 @fileno(ptr noundef %826) #11
  %828 = call i32 @isatty(i32 noundef %827) #11
  %.not771 = icmp eq i32 %828, 0
  br i1 %.not771, label %829, label %830

829:                                              ; preds = %825, %818
  br label %830

830:                                              ; preds = %825, %829
  %.str.5.sink1056 = phi ptr [ @.str.5, %829 ], [ @.str.2, %825 ]
  store i32 %820, ptr %819, align 4, !tbaa !5
  %831 = load ptr, ptr @stderr, align 8, !tbaa !9
  %832 = load i32, ptr @test_count, align 4, !tbaa !5
  %833 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %834 = load i32, ptr %833, align 4, !tbaa !5
  %835 = call ptr @s2n_strerror(i32 noundef %834, ptr noundef nonnull @.str.4) #11
  %836 = load i32, ptr %833, align 4, !tbaa !5
  %837 = call ptr @s2n_strerror_debug(i32 noundef %836, ptr noundef nonnull @.str.4) #11
  %838 = load i32, ptr %819, align 4, !tbaa !5
  %839 = call ptr @strerror(i32 noundef %838) #11
  %840 = load i32, ptr %819, align 4, !tbaa !5
  %841 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %831, ptr noundef nonnull %.str.5.sink1056, i32 noundef %832, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 126, ptr noundef %835, ptr noundef %837, ptr noundef %839, i32 noundef %840) #13
  call void @exit(i32 noundef 1) #14
  unreachable

842:                                              ; preds = %812
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %10) #11
  store i16 0, ptr %10, align 2, !tbaa !62
  %843 = getelementptr inbounds i8, ptr %816, i64 2208
  store i16 1024, ptr %843, align 8, !tbaa !63
  %844 = load i32, ptr @test_count, align 4, !tbaa !5
  %845 = add nsw i32 %844, 1
  store i32 %845, ptr @test_count, align 4, !tbaa !5
  %846 = call i32 @s2n_record_max_write_payload_size(ptr noundef nonnull %816, ptr noundef nonnull %10) #11
  %847 = call zeroext i1 @s2n_result_is_ok(i32 %846)
  br i1 %847, label %872, label %848

848:                                              ; preds = %842
  %849 = tail call ptr @__errno_location() #12
  %850 = load i32, ptr %849, align 4, !tbaa !5
  %851 = load ptr, ptr @stderr, align 8, !tbaa !9
  %852 = call i32 @s2n_print_stacktrace(ptr noundef %851) #11
  %853 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %854 = trunc nuw i8 %853 to i1
  br i1 %854, label %855, label %859

855:                                              ; preds = %848
  %856 = load ptr, ptr @stderr, align 8, !tbaa !9
  %857 = call i32 @fileno(ptr noundef %856) #11
  %858 = call i32 @isatty(i32 noundef %857) #11
  %.not620 = icmp eq i32 %858, 0
  br i1 %.not620, label %859, label %860

859:                                              ; preds = %855, %848
  br label %860

860:                                              ; preds = %855, %859
  %.str.5.sink1067 = phi ptr [ @.str.5, %859 ], [ @.str.2, %855 ]
  store i32 %850, ptr %849, align 4, !tbaa !5
  %861 = load ptr, ptr @stderr, align 8, !tbaa !9
  %862 = load i32, ptr @test_count, align 4, !tbaa !5
  %863 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %864 = load i32, ptr %863, align 4, !tbaa !5
  %865 = call ptr @s2n_strerror(i32 noundef %864, ptr noundef nonnull @.str.4) #11
  %866 = load i32, ptr %863, align 4, !tbaa !5
  %867 = call ptr @s2n_strerror_debug(i32 noundef %866, ptr noundef nonnull @.str.4) #11
  %868 = load i32, ptr %849, align 4, !tbaa !5
  %869 = call ptr @strerror(i32 noundef %868) #11
  %870 = load i32, ptr %849, align 4, !tbaa !5
  %871 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %861, ptr noundef nonnull %.str.5.sink1067, i32 noundef %862, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 132, ptr noundef %865, ptr noundef %867, ptr noundef %869, i32 noundef %870) #13
  call void @exit(i32 noundef 1) #14
  unreachable

872:                                              ; preds = %842
  %873 = load i32, ptr @test_count, align 4, !tbaa !5
  %874 = add nsw i32 %873, 1
  store i32 %874, ptr @test_count, align 4, !tbaa !5
  %875 = load i16, ptr %10, align 2, !tbaa !62
  %876 = icmp eq i16 %875, 1024
  br i1 %876, label %901, label %877

877:                                              ; preds = %872
  %878 = tail call ptr @__errno_location() #12
  %879 = load i32, ptr %878, align 4, !tbaa !5
  %880 = load ptr, ptr @stderr, align 8, !tbaa !9
  %881 = call i32 @s2n_print_stacktrace(ptr noundef %880) #11
  %882 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %883 = trunc nuw i8 %882 to i1
  br i1 %883, label %884, label %888

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

888:                                              ; preds = %884, %877
  br label %889

889:                                              ; preds = %884, %888
  %.str.5.sink1078 = phi ptr [ @.str.5, %888 ], [ @.str.2, %884 ]
  store i32 %879, ptr %878, 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 nonnull @.str.4) #11
  %895 = load i32, ptr %892, align 4, !tbaa !5
  %896 = call ptr @s2n_strerror_debug(i32 noundef %895, ptr noundef nonnull @.str.4) #11
  %897 = load i32, ptr %878, align 4, !tbaa !5
  %898 = call ptr @strerror(i32 noundef %897) #11
  %899 = load i32, ptr %878, align 4, !tbaa !5
  %900 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %890, ptr noundef nonnull %.str.5.sink1078, i32 noundef %891, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 133, ptr noundef %894, ptr noundef %896, ptr noundef %898, i32 noundef %899) #13
  call void @exit(i32 noundef 1) #14
  unreachable

901:                                              ; preds = %872
  store i16 -1, ptr %843, align 8, !tbaa !63
  %902 = add nsw i32 %873, 2
  store i32 %902, ptr @test_count, align 4, !tbaa !5
  %903 = call i32 @s2n_record_max_write_payload_size(ptr noundef nonnull %816, ptr noundef nonnull %10) #11
  %904 = call zeroext i1 @s2n_result_is_ok(i32 %903)
  br i1 %904, label %929, label %905

905:                                              ; preds = %901
  %906 = tail call ptr @__errno_location() #12
  %907 = load i32, ptr %906, align 4, !tbaa !5
  %908 = load ptr, ptr @stderr, align 8, !tbaa !9
  %909 = call i32 @s2n_print_stacktrace(ptr noundef %908) #11
  %910 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %911 = trunc nuw i8 %910 to i1
  br i1 %911, label %912, label %916

912:                                              ; preds = %905
  %913 = load ptr, ptr @stderr, align 8, !tbaa !9
  %914 = call i32 @fileno(ptr noundef %913) #11
  %915 = call i32 @isatty(i32 noundef %914) #11
  %.not622 = icmp eq i32 %915, 0
  br i1 %.not622, label %916, label %917

916:                                              ; preds = %912, %905
  br label %917

917:                                              ; preds = %912, %916
  %.str.5.sink1089 = phi ptr [ @.str.5, %916 ], [ @.str.2, %912 ]
  store i32 %907, ptr %906, align 4, !tbaa !5
  %918 = load ptr, ptr @stderr, align 8, !tbaa !9
  %919 = load i32, ptr @test_count, align 4, !tbaa !5
  %920 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %921 = load i32, ptr %920, align 4, !tbaa !5
  %922 = call ptr @s2n_strerror(i32 noundef %921, ptr noundef nonnull @.str.4) #11
  %923 = load i32, ptr %920, align 4, !tbaa !5
  %924 = call ptr @s2n_strerror_debug(i32 noundef %923, ptr noundef nonnull @.str.4) #11
  %925 = load i32, ptr %906, align 4, !tbaa !5
  %926 = call ptr @strerror(i32 noundef %925) #11
  %927 = load i32, ptr %906, align 4, !tbaa !5
  %928 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %918, ptr noundef nonnull %.str.5.sink1089, i32 noundef %919, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 138, ptr noundef %922, ptr noundef %924, ptr noundef %926, i32 noundef %927) #13
  call void @exit(i32 noundef 1) #14
  unreachable

929:                                              ; preds = %901
  %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 = load i16, ptr %10, align 2, !tbaa !62
  %933 = icmp eq i16 %932, 16384
  br i1 %933, label %958, label %934

934:                                              ; preds = %929
  %935 = tail call ptr @__errno_location() #12
  %936 = load i32, ptr %935, align 4, !tbaa !5
  %937 = load ptr, ptr @stderr, align 8, !tbaa !9
  %938 = call i32 @s2n_print_stacktrace(ptr noundef %937) #11
  %939 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %940 = trunc nuw i8 %939 to i1
  br i1 %940, label %941, label %945

941:                                              ; preds = %934
  %942 = load ptr, ptr @stderr, align 8, !tbaa !9
  %943 = call i32 @fileno(ptr noundef %942) #11
  %944 = call i32 @isatty(i32 noundef %943) #11
  %.not623 = icmp eq i32 %944, 0
  br i1 %.not623, label %945, label %946

945:                                              ; preds = %941, %934
  br label %946

946:                                              ; preds = %941, %945
  %.str.5.sink1100 = phi ptr [ @.str.5, %945 ], [ @.str.2, %941 ]
  store i32 %936, ptr %935, align 4, !tbaa !5
  %947 = load ptr, ptr @stderr, align 8, !tbaa !9
  %948 = load i32, ptr @test_count, align 4, !tbaa !5
  %949 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %950 = load i32, ptr %949, align 4, !tbaa !5
  %951 = call ptr @s2n_strerror(i32 noundef %950, ptr noundef nonnull @.str.4) #11
  %952 = load i32, ptr %949, align 4, !tbaa !5
  %953 = call ptr @s2n_strerror_debug(i32 noundef %952, ptr noundef nonnull @.str.4) #11
  %954 = load i32, ptr %935, align 4, !tbaa !5
  %955 = call ptr @strerror(i32 noundef %954) #11
  %956 = load i32, ptr %935, align 4, !tbaa !5
  %957 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %947, ptr noundef nonnull %.str.5.sink1100, i32 noundef %948, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 139, ptr noundef %951, ptr noundef %953, ptr noundef %955, i32 noundef %956) #13
  call void @exit(i32 noundef 1) #14
  unreachable

958:                                              ; preds = %929
  store i16 0, ptr %843, align 8, !tbaa !63
  %959 = add nsw i32 %930, 2
  store i32 %959, ptr @test_count, align 4, !tbaa !5
  %960 = call i32 @s2n_record_max_write_payload_size(ptr noundef nonnull %816, ptr noundef nonnull %10) #11
  %961 = call zeroext i1 @s2n_result_is_error(i32 %960)
  br i1 %961, label %986, label %962

962:                                              ; preds = %958
  %963 = tail call ptr @__errno_location() #12
  %964 = load i32, ptr %963, align 4, !tbaa !5
  %965 = load ptr, ptr @stderr, align 8, !tbaa !9
  %966 = call i32 @s2n_print_stacktrace(ptr noundef %965) #11
  %967 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %968 = trunc nuw i8 %967 to i1
  br i1 %968, label %969, label %973

969:                                              ; preds = %962
  %970 = load ptr, ptr @stderr, align 8, !tbaa !9
  %971 = call i32 @fileno(ptr noundef %970) #11
  %972 = call i32 @isatty(i32 noundef %971) #11
  %.not624 = icmp eq i32 %972, 0
  br i1 %.not624, label %973, label %974

973:                                              ; preds = %969, %962
  br label %974

974:                                              ; preds = %969, %973
  %.str.5.sink1111 = phi ptr [ @.str.5, %973 ], [ @.str.2, %969 ]
  store i32 %964, ptr %963, align 4, !tbaa !5
  %975 = load ptr, ptr @stderr, align 8, !tbaa !9
  %976 = load i32, ptr @test_count, align 4, !tbaa !5
  %977 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %978 = load i32, ptr %977, align 4, !tbaa !5
  %979 = call ptr @s2n_strerror(i32 noundef %978, ptr noundef nonnull @.str.4) #11
  %980 = load i32, ptr %977, align 4, !tbaa !5
  %981 = call ptr @s2n_strerror_debug(i32 noundef %980, ptr noundef nonnull @.str.4) #11
  %982 = load i32, ptr %963, align 4, !tbaa !5
  %983 = call ptr @strerror(i32 noundef %982) #11
  %984 = load i32, ptr %963, align 4, !tbaa !5
  %985 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %975, ptr noundef nonnull %.str.5.sink1111, i32 noundef %976, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 143, ptr noundef %979, ptr noundef %981, ptr noundef %983, i32 noundef %984) #13
  call void @exit(i32 noundef 1) #14
  unreachable

986:                                              ; preds = %958
  %987 = load i32, ptr @test_count, align 4, !tbaa !5
  %988 = add nsw i32 %987, 1
  store i32 %988, ptr @test_count, align 4, !tbaa !5
  %989 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %990 = load i32, ptr %989, align 4, !tbaa !5
  %991 = icmp eq i32 %990, 335544391
  br i1 %991, label %1015, label %992

992:                                              ; preds = %986
  %993 = tail call ptr @__errno_location() #12
  %994 = load i32, ptr %993, align 4, !tbaa !5
  %995 = load ptr, ptr @stderr, align 8, !tbaa !9
  %996 = call i32 @s2n_print_stacktrace(ptr noundef %995) #11
  %997 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %998 = trunc nuw i8 %997 to i1
  br i1 %998, label %999, label %1003

999:                                              ; preds = %992
  %1000 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1001 = call i32 @fileno(ptr noundef %1000) #11
  %1002 = call i32 @isatty(i32 noundef %1001) #11
  %.not625 = icmp eq i32 %1002, 0
  br i1 %.not625, label %1003, label %1004

1003:                                             ; preds = %999, %992
  br label %1004

1004:                                             ; preds = %999, %1003
  %.str.5.sink1122 = phi ptr [ @.str.5, %1003 ], [ @.str.2, %999 ]
  store i32 %994, ptr %993, align 4, !tbaa !5
  %1005 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1006 = load i32, ptr @test_count, align 4, !tbaa !5
  %1007 = load i32, ptr %989, align 4, !tbaa !5
  %1008 = call ptr @s2n_strerror(i32 noundef %1007, ptr noundef nonnull @.str.4) #11
  %1009 = load i32, ptr %989, align 4, !tbaa !5
  %1010 = call ptr @s2n_strerror_debug(i32 noundef %1009, ptr noundef nonnull @.str.4) #11
  %1011 = load i32, ptr %993, align 4, !tbaa !5
  %1012 = call ptr @strerror(i32 noundef %1011) #11
  %1013 = load i32, ptr %993, align 4, !tbaa !5
  %1014 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1005, ptr noundef nonnull %.str.5.sink1122, i32 noundef %1006, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 143, ptr noundef %1008, ptr noundef %1010, ptr noundef %1012, i32 noundef %1013) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1015:                                             ; preds = %986
  %1016 = add nsw i32 %987, 2
  store i32 %1016, ptr @test_count, align 4, !tbaa !5
  %1017 = call ptr @s2n_strerror_debug(i32 noundef 335544391, ptr noundef nonnull @.str.4) #11
  %1018 = icmp eq ptr %1017, null
  br i1 %1018, label %1019, label %1042

1019:                                             ; preds = %1015
  %1020 = tail call ptr @__errno_location() #12
  %1021 = load i32, ptr %1020, align 4, !tbaa !5
  %1022 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1023 = call i32 @s2n_print_stacktrace(ptr noundef %1022) #11
  %1024 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1025 = trunc nuw i8 %1024 to i1
  br i1 %1025, label %1026, label %1030

1026:                                             ; preds = %1019
  %1027 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1028 = call i32 @fileno(ptr noundef %1027) #11
  %1029 = call i32 @isatty(i32 noundef %1028) #11
  %.not770 = icmp eq i32 %1029, 0
  br i1 %.not770, label %1030, label %1031

1030:                                             ; preds = %1026, %1019
  br label %1031

1031:                                             ; preds = %1026, %1030
  %.str.5.sink1131 = phi ptr [ @.str.5, %1030 ], [ @.str.2, %1026 ]
  store i32 %1021, ptr %1020, align 4, !tbaa !5
  %1032 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1033 = load i32, ptr @test_count, align 4, !tbaa !5
  %1034 = load i32, ptr %989, align 4, !tbaa !5
  %1035 = call ptr @s2n_strerror(i32 noundef %1034, ptr noundef nonnull @.str.4) #11
  %1036 = load i32, ptr %989, align 4, !tbaa !5
  %1037 = call ptr @s2n_strerror_debug(i32 noundef %1036, ptr noundef nonnull @.str.4) #11
  %1038 = load i32, ptr %1020, align 4, !tbaa !5
  %1039 = call ptr @strerror(i32 noundef %1038) #11
  %1040 = load i32, ptr %1020, align 4, !tbaa !5
  %1041 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1032, ptr noundef nonnull %.str.5.sink1131, i32 noundef %1033, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 143, ptr noundef %1035, ptr noundef %1037, ptr noundef %1039, i32 noundef %1040) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1042:                                             ; preds = %1015
  store i32 0, ptr %989, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  %1043 = tail call ptr @__errno_location() #12
  store i32 0, ptr %1043, align 4, !tbaa !5
  store i16 16384, ptr %843, align 8, !tbaa !63
  %1044 = load i32, ptr @test_count, align 4, !tbaa !5
  %1045 = add nsw i32 %1044, 1
  store i32 %1045, ptr @test_count, align 4, !tbaa !5
  %1046 = call i32 @s2n_record_max_write_payload_size(ptr noundef nonnull %816, ptr noundef nonnull %10) #11
  %1047 = call zeroext i1 @s2n_result_is_ok(i32 %1046)
  br i1 %1047, label %1070, label %1048

1048:                                             ; preds = %1042
  %1049 = load i32, ptr %1043, align 4, !tbaa !5
  %1050 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1051 = call i32 @s2n_print_stacktrace(ptr noundef %1050) #11
  %1052 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1053 = trunc nuw i8 %1052 to i1
  br i1 %1053, label %1054, label %1058

1054:                                             ; preds = %1048
  %1055 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1056 = call i32 @fileno(ptr noundef %1055) #11
  %1057 = call i32 @isatty(i32 noundef %1056) #11
  %.not626 = icmp eq i32 %1057, 0
  br i1 %.not626, label %1058, label %1059

1058:                                             ; preds = %1054, %1048
  br label %1059

1059:                                             ; preds = %1054, %1058
  %.str.5.sink1140 = phi ptr [ @.str.5, %1058 ], [ @.str.2, %1054 ]
  store i32 %1049, ptr %1043, align 4, !tbaa !5
  %1060 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1061 = load i32, ptr @test_count, align 4, !tbaa !5
  %1062 = load i32, ptr %989, align 4, !tbaa !5
  %1063 = call ptr @s2n_strerror(i32 noundef %1062, ptr noundef nonnull @.str.4) #11
  %1064 = load i32, ptr %989, align 4, !tbaa !5
  %1065 = call ptr @s2n_strerror_debug(i32 noundef %1064, ptr noundef nonnull @.str.4) #11
  %1066 = load i32, ptr %1043, align 4, !tbaa !5
  %1067 = call ptr @strerror(i32 noundef %1066) #11
  %1068 = load i32, ptr %1043, align 4, !tbaa !5
  %1069 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1060, ptr noundef nonnull %.str.5.sink1140, i32 noundef %1061, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 149, ptr noundef %1063, ptr noundef %1065, ptr noundef %1067, i32 noundef %1068) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1070:                                             ; preds = %1042
  %1071 = load i32, ptr @test_count, align 4, !tbaa !5
  %1072 = add nsw i32 %1071, 1
  store i32 %1072, ptr @test_count, align 4, !tbaa !5
  %1073 = load i16, ptr %10, align 2, !tbaa !62
  %1074 = icmp eq i16 %1073, 16384
  br i1 %1074, label %1097, label %1075

1075:                                             ; preds = %1070
  %1076 = load i32, ptr %1043, align 4, !tbaa !5
  %1077 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1078 = call i32 @s2n_print_stacktrace(ptr noundef %1077) #11
  %1079 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1080 = trunc nuw i8 %1079 to i1
  br i1 %1080, label %1081, label %1085

1081:                                             ; preds = %1075
  %1082 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1083 = call i32 @fileno(ptr noundef %1082) #11
  %1084 = call i32 @isatty(i32 noundef %1083) #11
  %.not627 = icmp eq i32 %1084, 0
  br i1 %.not627, label %1085, label %1086

1085:                                             ; preds = %1081, %1075
  br label %1086

1086:                                             ; preds = %1081, %1085
  %.str.5.sink1149 = phi ptr [ @.str.5, %1085 ], [ @.str.2, %1081 ]
  store i32 %1076, ptr %1043, align 4, !tbaa !5
  %1087 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1088 = load i32, ptr @test_count, align 4, !tbaa !5
  %1089 = load i32, ptr %989, align 4, !tbaa !5
  %1090 = call ptr @s2n_strerror(i32 noundef %1089, ptr noundef nonnull @.str.4) #11
  %1091 = load i32, ptr %989, align 4, !tbaa !5
  %1092 = call ptr @s2n_strerror_debug(i32 noundef %1091, ptr noundef nonnull @.str.4) #11
  %1093 = load i32, ptr %1043, align 4, !tbaa !5
  %1094 = call ptr @strerror(i32 noundef %1093) #11
  %1095 = load i32, ptr %1043, align 4, !tbaa !5
  %1096 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1087, ptr noundef nonnull %.str.5.sink1149, i32 noundef %1088, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 150, ptr noundef %1090, ptr noundef %1092, ptr noundef %1094, i32 noundef %1095) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1097:                                             ; preds = %1070
  %1098 = load i16, ptr %843, align 8, !tbaa !63
  %1099 = add i16 %1098, 1
  store i16 %1099, ptr %843, align 8, !tbaa !63
  %1100 = add nsw i32 %1071, 2
  store i32 %1100, ptr @test_count, align 4, !tbaa !5
  %1101 = call i32 @s2n_record_max_write_payload_size(ptr noundef nonnull %816, ptr noundef nonnull %10) #11
  %1102 = call zeroext i1 @s2n_result_is_ok(i32 %1101)
  br i1 %1102, label %1125, label %1103

1103:                                             ; preds = %1097
  %1104 = load i32, ptr %1043, align 4, !tbaa !5
  %1105 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1106 = call i32 @s2n_print_stacktrace(ptr noundef %1105) #11
  %1107 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1108 = trunc nuw i8 %1107 to i1
  br i1 %1108, label %1109, label %1113

1109:                                             ; preds = %1103
  %1110 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1111 = call i32 @fileno(ptr noundef %1110) #11
  %1112 = call i32 @isatty(i32 noundef %1111) #11
  %.not628 = icmp eq i32 %1112, 0
  br i1 %.not628, label %1113, label %1114

1113:                                             ; preds = %1109, %1103
  br label %1114

1114:                                             ; preds = %1109, %1113
  %.str.5.sink1158 = phi ptr [ @.str.5, %1113 ], [ @.str.2, %1109 ]
  store i32 %1104, ptr %1043, align 4, !tbaa !5
  %1115 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1116 = load i32, ptr @test_count, align 4, !tbaa !5
  %1117 = load i32, ptr %989, align 4, !tbaa !5
  %1118 = call ptr @s2n_strerror(i32 noundef %1117, ptr noundef nonnull @.str.4) #11
  %1119 = load i32, ptr %989, align 4, !tbaa !5
  %1120 = call ptr @s2n_strerror_debug(i32 noundef %1119, ptr noundef nonnull @.str.4) #11
  %1121 = load i32, ptr %1043, align 4, !tbaa !5
  %1122 = call ptr @strerror(i32 noundef %1121) #11
  %1123 = load i32, ptr %1043, align 4, !tbaa !5
  %1124 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1115, ptr noundef nonnull %.str.5.sink1158, i32 noundef %1116, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 154, ptr noundef %1118, ptr noundef %1120, ptr noundef %1122, i32 noundef %1123) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1125:                                             ; preds = %1097
  %1126 = load i32, ptr @test_count, align 4, !tbaa !5
  %1127 = add nsw i32 %1126, 1
  store i32 %1127, ptr @test_count, align 4, !tbaa !5
  %1128 = load i16, ptr %10, align 2, !tbaa !62
  %1129 = icmp eq i16 %1128, 16384
  br i1 %1129, label %1152, label %1130

1130:                                             ; preds = %1125
  %1131 = load i32, ptr %1043, align 4, !tbaa !5
  %1132 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1133 = call i32 @s2n_print_stacktrace(ptr noundef %1132) #11
  %1134 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1135 = trunc nuw i8 %1134 to i1
  br i1 %1135, label %1136, label %1140

1136:                                             ; preds = %1130
  %1137 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1138 = call i32 @fileno(ptr noundef %1137) #11
  %1139 = call i32 @isatty(i32 noundef %1138) #11
  %.not629 = icmp eq i32 %1139, 0
  br i1 %.not629, label %1140, label %1141

1140:                                             ; preds = %1136, %1130
  br label %1141

1141:                                             ; preds = %1136, %1140
  %.str.5.sink1167 = phi ptr [ @.str.5, %1140 ], [ @.str.2, %1136 ]
  store i32 %1131, ptr %1043, align 4, !tbaa !5
  %1142 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1143 = load i32, ptr @test_count, align 4, !tbaa !5
  %1144 = load i32, ptr %989, align 4, !tbaa !5
  %1145 = call ptr @s2n_strerror(i32 noundef %1144, ptr noundef nonnull @.str.4) #11
  %1146 = load i32, ptr %989, align 4, !tbaa !5
  %1147 = call ptr @s2n_strerror_debug(i32 noundef %1146, ptr noundef nonnull @.str.4) #11
  %1148 = load i32, ptr %1043, align 4, !tbaa !5
  %1149 = call ptr @strerror(i32 noundef %1148) #11
  %1150 = load i32, ptr %1043, align 4, !tbaa !5
  %1151 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1142, ptr noundef nonnull %.str.5.sink1167, i32 noundef %1143, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 155, ptr noundef %1145, ptr noundef %1147, ptr noundef %1149, i32 noundef %1150) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1152:                                             ; preds = %1125
  %1153 = getelementptr inbounds i8, ptr %816, i64 220
  store i8 34, ptr %1153, align 4, !tbaa !57
  %1154 = getelementptr inbounds i8, ptr %816, i64 640
  %1155 = load ptr, ptr %1154, align 8, !tbaa !42
  store ptr @s2n_tls13_aes_128_gcm_sha256, ptr %1155, align 8, !tbaa !44
  store i16 1024, ptr %843, align 8, !tbaa !63
  %1156 = add nsw i32 %1126, 2
  store i32 %1156, ptr @test_count, align 4, !tbaa !5
  %1157 = call i32 @s2n_record_max_write_payload_size(ptr noundef nonnull %816, ptr noundef nonnull %10) #11
  %1158 = call zeroext i1 @s2n_result_is_ok(i32 %1157)
  br i1 %1158, label %1181, label %1159

1159:                                             ; preds = %1152
  %1160 = load i32, ptr %1043, align 4, !tbaa !5
  %1161 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1162 = call i32 @s2n_print_stacktrace(ptr noundef %1161) #11
  %1163 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1164 = trunc nuw i8 %1163 to i1
  br i1 %1164, label %1165, label %1169

1165:                                             ; preds = %1159
  %1166 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1167 = call i32 @fileno(ptr noundef %1166) #11
  %1168 = call i32 @isatty(i32 noundef %1167) #11
  %.not630 = icmp eq i32 %1168, 0
  br i1 %.not630, label %1169, label %1170

1169:                                             ; preds = %1165, %1159
  br label %1170

1170:                                             ; preds = %1165, %1169
  %.str.5.sink1176 = phi ptr [ @.str.5, %1169 ], [ @.str.2, %1165 ]
  store i32 %1160, ptr %1043, align 4, !tbaa !5
  %1171 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1172 = load i32, ptr @test_count, align 4, !tbaa !5
  %1173 = load i32, ptr %989, align 4, !tbaa !5
  %1174 = call ptr @s2n_strerror(i32 noundef %1173, ptr noundef nonnull @.str.4) #11
  %1175 = load i32, ptr %989, align 4, !tbaa !5
  %1176 = call ptr @s2n_strerror_debug(i32 noundef %1175, ptr noundef nonnull @.str.4) #11
  %1177 = load i32, ptr %1043, align 4, !tbaa !5
  %1178 = call ptr @strerror(i32 noundef %1177) #11
  %1179 = load i32, ptr %1043, align 4, !tbaa !5
  %1180 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1171, ptr noundef nonnull %.str.5.sink1176, i32 noundef %1172, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 161, ptr noundef %1174, ptr noundef %1176, ptr noundef %1178, i32 noundef %1179) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1181:                                             ; preds = %1152
  %1182 = load i32, ptr @test_count, align 4, !tbaa !5
  %1183 = add nsw i32 %1182, 1
  store i32 %1183, ptr @test_count, align 4, !tbaa !5
  %1184 = load i16, ptr %10, align 2, !tbaa !62
  %1185 = icmp eq i16 %1184, 1024
  br i1 %1185, label %1208, label %1186

1186:                                             ; preds = %1181
  %1187 = load i32, ptr %1043, align 4, !tbaa !5
  %1188 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1189 = call i32 @s2n_print_stacktrace(ptr noundef %1188) #11
  %1190 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1191 = trunc nuw i8 %1190 to i1
  br i1 %1191, label %1192, label %1196

1192:                                             ; preds = %1186
  %1193 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1194 = call i32 @fileno(ptr noundef %1193) #11
  %1195 = call i32 @isatty(i32 noundef %1194) #11
  %.not631 = icmp eq i32 %1195, 0
  br i1 %.not631, label %1196, label %1197

1196:                                             ; preds = %1192, %1186
  br label %1197

1197:                                             ; preds = %1192, %1196
  %.str.5.sink1185 = phi ptr [ @.str.5, %1196 ], [ @.str.2, %1192 ]
  store i32 %1187, ptr %1043, align 4, !tbaa !5
  %1198 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1199 = load i32, ptr @test_count, align 4, !tbaa !5
  %1200 = load i32, ptr %989, align 4, !tbaa !5
  %1201 = call ptr @s2n_strerror(i32 noundef %1200, ptr noundef nonnull @.str.4) #11
  %1202 = load i32, ptr %989, align 4, !tbaa !5
  %1203 = call ptr @s2n_strerror_debug(i32 noundef %1202, ptr noundef nonnull @.str.4) #11
  %1204 = load i32, ptr %1043, align 4, !tbaa !5
  %1205 = call ptr @strerror(i32 noundef %1204) #11
  %1206 = load i32, ptr %1043, align 4, !tbaa !5
  %1207 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1198, ptr noundef nonnull %.str.5.sink1185, i32 noundef %1199, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 162, ptr noundef %1201, ptr noundef %1203, ptr noundef %1205, i32 noundef %1206) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1208:                                             ; preds = %1181
  %1209 = add nsw i32 %1182, 2
  store i32 %1209, ptr @test_count, align 4, !tbaa !5
  %1210 = call i32 @s2n_connection_free(ptr noundef nonnull %816) #11
  %1211 = icmp eq i32 %1210, -1
  br i1 %1211, label %1212, label %1234

1212:                                             ; preds = %1208
  %1213 = load i32, ptr %1043, align 4, !tbaa !5
  %1214 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1215 = call i32 @s2n_print_stacktrace(ptr noundef %1214) #11
  %1216 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1217 = trunc nuw i8 %1216 to i1
  br i1 %1217, label %1218, label %1222

1218:                                             ; preds = %1212
  %1219 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1220 = call i32 @fileno(ptr noundef %1219) #11
  %1221 = call i32 @isatty(i32 noundef %1220) #11
  %.not769 = icmp eq i32 %1221, 0
  br i1 %.not769, label %1222, label %1223

1222:                                             ; preds = %1218, %1212
  br label %1223

1223:                                             ; preds = %1218, %1222
  %.str.5.sink1194 = phi ptr [ @.str.5, %1222 ], [ @.str.2, %1218 ]
  store i32 %1213, ptr %1043, align 4, !tbaa !5
  %1224 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1225 = load i32, ptr @test_count, align 4, !tbaa !5
  %1226 = load i32, ptr %989, align 4, !tbaa !5
  %1227 = call ptr @s2n_strerror(i32 noundef %1226, ptr noundef nonnull @.str.4) #11
  %1228 = load i32, ptr %989, align 4, !tbaa !5
  %1229 = call ptr @s2n_strerror_debug(i32 noundef %1228, ptr noundef nonnull @.str.4) #11
  %1230 = load i32, ptr %1043, align 4, !tbaa !5
  %1231 = call ptr @strerror(i32 noundef %1230) #11
  %1232 = load i32, ptr %1043, align 4, !tbaa !5
  %1233 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1224, ptr noundef nonnull %.str.5.sink1194, i32 noundef %1225, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 164, ptr noundef %1227, ptr noundef %1229, ptr noundef %1231, i32 noundef %1232) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1234:                                             ; preds = %1208
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %10) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11) #11
  %1235 = call ptr @s2n_config_new() #11
  store ptr %1235, ptr %11, align 8, !tbaa !9
  %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 = icmp eq ptr %1235, null
  br i1 %1238, label %1239, label %1261

1239:                                             ; preds = %1234
  %1240 = load i32, ptr %1043, align 4, !tbaa !5
  %1241 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1242 = call i32 @s2n_print_stacktrace(ptr noundef %1241) #11
  %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) #11
  %1248 = call i32 @isatty(i32 noundef %1247) #11
  %.not768 = icmp eq i32 %1248, 0
  br i1 %.not768, label %1249, label %1250

1249:                                             ; preds = %1245, %1239
  br label %1250

1250:                                             ; preds = %1245, %1249
  %.str.5.sink1203 = phi ptr [ @.str.5, %1249 ], [ @.str.2, %1245 ]
  store i32 %1240, ptr %1043, 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 %989, align 4, !tbaa !5
  %1254 = call ptr @s2n_strerror(i32 noundef %1253, ptr noundef nonnull @.str.4) #11
  %1255 = load i32, ptr %989, align 4, !tbaa !5
  %1256 = call ptr @s2n_strerror_debug(i32 noundef %1255, ptr noundef nonnull @.str.4) #11
  %1257 = load i32, ptr %1043, align 4, !tbaa !5
  %1258 = call ptr @strerror(i32 noundef %1257) #11
  %1259 = load i32, ptr %1043, align 4, !tbaa !5
  %1260 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1251, ptr noundef nonnull %.str.5.sink1203, i32 noundef %1252, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 170, ptr noundef %1254, ptr noundef %1256, ptr noundef %1258, i32 noundef %1259) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1261:                                             ; preds = %1234
  %1262 = add nsw i32 %1236, 2
  store i32 %1262, ptr @test_count, align 4, !tbaa !5
  %1263 = call i32 @s2n_config_set_send_buffer_size(ptr noundef nonnull %1235, i32 noundef 1034) #11
  %1264 = icmp eq i32 %1263, -1
  br i1 %1264, label %1265, label %1287

1265:                                             ; preds = %1261
  %1266 = load i32, ptr %1043, align 4, !tbaa !5
  %1267 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1268 = call i32 @s2n_print_stacktrace(ptr noundef %1267) #11
  %1269 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1270 = trunc nuw i8 %1269 to i1
  br i1 %1270, label %1271, label %1275

1271:                                             ; preds = %1265
  %1272 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1273 = call i32 @fileno(ptr noundef %1272) #11
  %1274 = call i32 @isatty(i32 noundef %1273) #11
  %.not767 = icmp eq i32 %1274, 0
  br i1 %.not767, label %1275, label %1276

1275:                                             ; preds = %1271, %1265
  br label %1276

1276:                                             ; preds = %1271, %1275
  %.str.5.sink1212 = phi ptr [ @.str.5, %1275 ], [ @.str.2, %1271 ]
  store i32 %1266, ptr %1043, align 4, !tbaa !5
  %1277 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1278 = load i32, ptr @test_count, align 4, !tbaa !5
  %1279 = load i32, ptr %989, align 4, !tbaa !5
  %1280 = call ptr @s2n_strerror(i32 noundef %1279, ptr noundef nonnull @.str.4) #11
  %1281 = load i32, ptr %989, align 4, !tbaa !5
  %1282 = call ptr @s2n_strerror_debug(i32 noundef %1281, ptr noundef nonnull @.str.4) #11
  %1283 = load i32, ptr %1043, align 4, !tbaa !5
  %1284 = call ptr @strerror(i32 noundef %1283) #11
  %1285 = load i32, ptr %1043, align 4, !tbaa !5
  %1286 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1277, ptr noundef nonnull %.str.5.sink1212, i32 noundef %1278, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 175, ptr noundef %1280, ptr noundef %1282, ptr noundef %1284, i32 noundef %1285) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1287:                                             ; preds = %1261
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #11
  %1288 = call ptr @s2n_connection_new(i32 noundef 0) #11
  store ptr %1288, ptr %12, align 8, !tbaa !9
  %1289 = load i32, ptr @test_count, align 4, !tbaa !5
  %1290 = add nsw i32 %1289, 1
  store i32 %1290, ptr @test_count, align 4, !tbaa !5
  %1291 = icmp eq ptr %1288, null
  br i1 %1291, label %1292, label %1314

1292:                                             ; preds = %1287
  %1293 = load i32, ptr %1043, align 4, !tbaa !5
  %1294 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1295 = call i32 @s2n_print_stacktrace(ptr noundef %1294) #11
  %1296 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1297 = trunc nuw i8 %1296 to i1
  br i1 %1297, label %1298, label %1302

1298:                                             ; preds = %1292
  %1299 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1300 = call i32 @fileno(ptr noundef %1299) #11
  %1301 = call i32 @isatty(i32 noundef %1300) #11
  %.not766 = icmp eq i32 %1301, 0
  br i1 %.not766, label %1302, label %1303

1302:                                             ; preds = %1298, %1292
  br label %1303

1303:                                             ; preds = %1298, %1302
  %.str.5.sink1221 = phi ptr [ @.str.5, %1302 ], [ @.str.2, %1298 ]
  store i32 %1293, ptr %1043, align 4, !tbaa !5
  %1304 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1305 = load i32, ptr @test_count, align 4, !tbaa !5
  %1306 = load i32, ptr %989, align 4, !tbaa !5
  %1307 = call ptr @s2n_strerror(i32 noundef %1306, ptr noundef nonnull @.str.4) #11
  %1308 = load i32, ptr %989, align 4, !tbaa !5
  %1309 = call ptr @s2n_strerror_debug(i32 noundef %1308, ptr noundef nonnull @.str.4) #11
  %1310 = load i32, ptr %1043, align 4, !tbaa !5
  %1311 = call ptr @strerror(i32 noundef %1310) #11
  %1312 = load i32, ptr %1043, align 4, !tbaa !5
  %1313 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1304, ptr noundef nonnull %.str.5.sink1221, i32 noundef %1305, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 178, ptr noundef %1307, ptr noundef %1309, ptr noundef %1311, i32 noundef %1312) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1314:                                             ; preds = %1287
  %1315 = add nsw i32 %1289, 2
  store i32 %1315, ptr @test_count, align 4, !tbaa !5
  %1316 = load ptr, ptr %11, align 8, !tbaa !9
  %1317 = call i32 @s2n_connection_set_config(ptr noundef nonnull %1288, ptr noundef %1316) #11
  %1318 = icmp eq i32 %1317, -1
  br i1 %1318, label %1319, label %1341

1319:                                             ; preds = %1314
  %1320 = load i32, ptr %1043, align 4, !tbaa !5
  %1321 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1322 = call i32 @s2n_print_stacktrace(ptr noundef %1321) #11
  %1323 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1324 = trunc nuw i8 %1323 to i1
  br i1 %1324, label %1325, label %1329

1325:                                             ; preds = %1319
  %1326 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1327 = call i32 @fileno(ptr noundef %1326) #11
  %1328 = call i32 @isatty(i32 noundef %1327) #11
  %.not765 = icmp eq i32 %1328, 0
  br i1 %.not765, label %1329, label %1330

1329:                                             ; preds = %1325, %1319
  br label %1330

1330:                                             ; preds = %1325, %1329
  %.str.5.sink1230 = phi ptr [ @.str.5, %1329 ], [ @.str.2, %1325 ]
  store i32 %1320, ptr %1043, align 4, !tbaa !5
  %1331 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1332 = load i32, ptr @test_count, align 4, !tbaa !5
  %1333 = load i32, ptr %989, align 4, !tbaa !5
  %1334 = call ptr @s2n_strerror(i32 noundef %1333, ptr noundef nonnull @.str.4) #11
  %1335 = load i32, ptr %989, align 4, !tbaa !5
  %1336 = call ptr @s2n_strerror_debug(i32 noundef %1335, ptr noundef nonnull @.str.4) #11
  %1337 = load i32, ptr %1043, align 4, !tbaa !5
  %1338 = call ptr @strerror(i32 noundef %1337) #11
  %1339 = load i32, ptr %1043, align 4, !tbaa !5
  %1340 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1331, ptr noundef nonnull %.str.5.sink1230, i32 noundef %1332, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 179, ptr noundef %1334, ptr noundef %1336, ptr noundef %1338, i32 noundef %1339) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1341:                                             ; preds = %1314
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %13) #11
  store i16 0, ptr %13, align 2, !tbaa !62
  %1342 = load i32, ptr @test_count, align 4, !tbaa !5
  %1343 = add nsw i32 %1342, 1
  store i32 %1343, ptr @test_count, align 4, !tbaa !5
  %1344 = load ptr, ptr %12, align 8, !tbaa !9
  %1345 = call i32 @s2n_record_max_write_payload_size(ptr noundef %1344, ptr noundef nonnull %13) #11
  %1346 = call zeroext i1 @s2n_result_is_ok(i32 %1345)
  br i1 %1346, label %1369, label %1347

1347:                                             ; preds = %1341
  %1348 = load i32, ptr %1043, align 4, !tbaa !5
  %1349 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1350 = call i32 @s2n_print_stacktrace(ptr noundef %1349) #11
  %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) #11
  %1356 = call i32 @isatty(i32 noundef %1355) #11
  %.not632 = icmp eq i32 %1356, 0
  br i1 %.not632, label %1357, label %1358

1357:                                             ; preds = %1353, %1347
  br label %1358

1358:                                             ; preds = %1353, %1357
  %.str.5.sink1239 = phi ptr [ @.str.5, %1357 ], [ @.str.2, %1353 ]
  store i32 %1348, ptr %1043, 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 %989, align 4, !tbaa !5
  %1362 = call ptr @s2n_strerror(i32 noundef %1361, ptr noundef nonnull @.str.4) #11
  %1363 = load i32, ptr %989, align 4, !tbaa !5
  %1364 = call ptr @s2n_strerror_debug(i32 noundef %1363, ptr noundef nonnull @.str.4) #11
  %1365 = load i32, ptr %1043, align 4, !tbaa !5
  %1366 = call ptr @strerror(i32 noundef %1365) #11
  %1367 = load i32, ptr %1043, align 4, !tbaa !5
  %1368 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1359, ptr noundef nonnull %.str.5.sink1239, i32 noundef %1360, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 182, ptr noundef %1362, ptr noundef %1364, ptr noundef %1366, i32 noundef %1367) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1369:                                             ; preds = %1341
  %1370 = load i32, ptr @test_count, align 4, !tbaa !5
  %1371 = add nsw i32 %1370, 1
  store i32 %1371, ptr @test_count, align 4, !tbaa !5
  %1372 = load i16, ptr %13, align 2, !tbaa !62
  %1373 = icmp eq i16 %1372, 5
  br i1 %1373, label %1396, label %1374

1374:                                             ; preds = %1369
  %1375 = load i32, ptr %1043, align 4, !tbaa !5
  %1376 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1377 = call i32 @s2n_print_stacktrace(ptr noundef %1376) #11
  %1378 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1379 = trunc nuw i8 %1378 to i1
  br i1 %1379, label %1380, label %1384

1380:                                             ; preds = %1374
  %1381 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1382 = call i32 @fileno(ptr noundef %1381) #11
  %1383 = call i32 @isatty(i32 noundef %1382) #11
  %.not633 = icmp eq i32 %1383, 0
  br i1 %.not633, label %1384, label %1385

1384:                                             ; preds = %1380, %1374
  br label %1385

1385:                                             ; preds = %1380, %1384
  %.str.5.sink1248 = phi ptr [ @.str.5, %1384 ], [ @.str.2, %1380 ]
  store i32 %1375, ptr %1043, align 4, !tbaa !5
  %1386 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1387 = load i32, ptr @test_count, align 4, !tbaa !5
  %1388 = load i32, ptr %989, align 4, !tbaa !5
  %1389 = call ptr @s2n_strerror(i32 noundef %1388, ptr noundef nonnull @.str.4) #11
  %1390 = load i32, ptr %989, align 4, !tbaa !5
  %1391 = call ptr @s2n_strerror_debug(i32 noundef %1390, ptr noundef nonnull @.str.4) #11
  %1392 = load i32, ptr %1043, align 4, !tbaa !5
  %1393 = call ptr @strerror(i32 noundef %1392) #11
  %1394 = load i32, ptr %1043, align 4, !tbaa !5
  %1395 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1386, ptr noundef nonnull %.str.5.sink1248, i32 noundef %1387, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 183, ptr noundef %1389, ptr noundef %1391, ptr noundef %1393, i32 noundef %1394) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1396:                                             ; preds = %1369
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %13) #11
  %1397 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %12) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #11
  %1398 = load i32, ptr @test_count, align 4, !tbaa !5
  %1399 = add nsw i32 %1398, 1
  store i32 %1399, ptr @test_count, align 4, !tbaa !5
  %1400 = load ptr, ptr %11, align 8, !tbaa !9
  %1401 = call i32 @s2n_config_set_send_buffer_size(ptr noundef %1400, i32 noundef 2029) #11
  %1402 = icmp eq i32 %1401, -1
  br i1 %1402, label %1403, label %1425

1403:                                             ; preds = %1396
  %1404 = load i32, ptr %1043, align 4, !tbaa !5
  %1405 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1406 = call i32 @s2n_print_stacktrace(ptr noundef %1405) #11
  %1407 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1408 = trunc nuw i8 %1407 to i1
  br i1 %1408, label %1409, label %1413

1409:                                             ; preds = %1403
  %1410 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1411 = call i32 @fileno(ptr noundef %1410) #11
  %1412 = call i32 @isatty(i32 noundef %1411) #11
  %.not764 = icmp eq i32 %1412, 0
  br i1 %.not764, label %1413, label %1414

1413:                                             ; preds = %1409, %1403
  br label %1414

1414:                                             ; preds = %1409, %1413
  %.str.5.sink1257 = phi ptr [ @.str.5, %1413 ], [ @.str.2, %1409 ]
  store i32 %1404, ptr %1043, align 4, !tbaa !5
  %1415 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1416 = load i32, ptr @test_count, align 4, !tbaa !5
  %1417 = load i32, ptr %989, align 4, !tbaa !5
  %1418 = call ptr @s2n_strerror(i32 noundef %1417, ptr noundef nonnull @.str.4) #11
  %1419 = load i32, ptr %989, align 4, !tbaa !5
  %1420 = call ptr @s2n_strerror_debug(i32 noundef %1419, ptr noundef nonnull @.str.4) #11
  %1421 = load i32, ptr %1043, align 4, !tbaa !5
  %1422 = call ptr @strerror(i32 noundef %1421) #11
  %1423 = load i32, ptr %1043, align 4, !tbaa !5
  %1424 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1415, ptr noundef nonnull %.str.5.sink1257, i32 noundef %1416, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 190, ptr noundef %1418, ptr noundef %1420, ptr noundef %1422, i32 noundef %1423) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1425:                                             ; preds = %1396
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %14) #11
  %1426 = call ptr @s2n_connection_new(i32 noundef 0) #11
  store ptr %1426, ptr %14, align 8, !tbaa !9
  %1427 = load i32, ptr @test_count, align 4, !tbaa !5
  %1428 = add nsw i32 %1427, 1
  store i32 %1428, ptr @test_count, align 4, !tbaa !5
  %1429 = icmp eq ptr %1426, null
  br i1 %1429, label %1430, label %1452

1430:                                             ; preds = %1425
  %1431 = load i32, ptr %1043, align 4, !tbaa !5
  %1432 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1433 = call i32 @s2n_print_stacktrace(ptr noundef %1432) #11
  %1434 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1435 = trunc nuw i8 %1434 to i1
  br i1 %1435, label %1436, label %1440

1436:                                             ; preds = %1430
  %1437 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1438 = call i32 @fileno(ptr noundef %1437) #11
  %1439 = call i32 @isatty(i32 noundef %1438) #11
  %.not763 = icmp eq i32 %1439, 0
  br i1 %.not763, label %1440, label %1441

1440:                                             ; preds = %1436, %1430
  br label %1441

1441:                                             ; preds = %1436, %1440
  %.str.5.sink1266 = phi ptr [ @.str.5, %1440 ], [ @.str.2, %1436 ]
  store i32 %1431, ptr %1043, align 4, !tbaa !5
  %1442 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1443 = load i32, ptr @test_count, align 4, !tbaa !5
  %1444 = load i32, ptr %989, align 4, !tbaa !5
  %1445 = call ptr @s2n_strerror(i32 noundef %1444, ptr noundef nonnull @.str.4) #11
  %1446 = load i32, ptr %989, align 4, !tbaa !5
  %1447 = call ptr @s2n_strerror_debug(i32 noundef %1446, ptr noundef nonnull @.str.4) #11
  %1448 = load i32, ptr %1043, align 4, !tbaa !5
  %1449 = call ptr @strerror(i32 noundef %1448) #11
  %1450 = load i32, ptr %1043, align 4, !tbaa !5
  %1451 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1442, ptr noundef nonnull %.str.5.sink1266, i32 noundef %1443, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 193, ptr noundef %1445, ptr noundef %1447, ptr noundef %1449, i32 noundef %1450) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1452:                                             ; preds = %1425
  %1453 = add nsw i32 %1427, 2
  store i32 %1453, ptr @test_count, align 4, !tbaa !5
  %1454 = load ptr, ptr %11, align 8, !tbaa !9
  %1455 = call i32 @s2n_connection_set_config(ptr noundef nonnull %1426, ptr noundef %1454) #11
  %1456 = icmp eq i32 %1455, -1
  br i1 %1456, label %1457, label %1479

1457:                                             ; preds = %1452
  %1458 = load i32, ptr %1043, align 4, !tbaa !5
  %1459 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1460 = call i32 @s2n_print_stacktrace(ptr noundef %1459) #11
  %1461 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1462 = trunc nuw i8 %1461 to i1
  br i1 %1462, label %1463, label %1467

1463:                                             ; preds = %1457
  %1464 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1465 = call i32 @fileno(ptr noundef %1464) #11
  %1466 = call i32 @isatty(i32 noundef %1465) #11
  %.not762 = icmp eq i32 %1466, 0
  br i1 %.not762, label %1467, label %1468

1467:                                             ; preds = %1463, %1457
  br label %1468

1468:                                             ; preds = %1463, %1467
  %.str.5.sink1275 = phi ptr [ @.str.5, %1467 ], [ @.str.2, %1463 ]
  store i32 %1458, ptr %1043, align 4, !tbaa !5
  %1469 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1470 = load i32, ptr @test_count, align 4, !tbaa !5
  %1471 = load i32, ptr %989, align 4, !tbaa !5
  %1472 = call ptr @s2n_strerror(i32 noundef %1471, ptr noundef nonnull @.str.4) #11
  %1473 = load i32, ptr %989, align 4, !tbaa !5
  %1474 = call ptr @s2n_strerror_debug(i32 noundef %1473, ptr noundef nonnull @.str.4) #11
  %1475 = load i32, ptr %1043, align 4, !tbaa !5
  %1476 = call ptr @strerror(i32 noundef %1475) #11
  %1477 = load i32, ptr %1043, align 4, !tbaa !5
  %1478 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1469, ptr noundef nonnull %.str.5.sink1275, i32 noundef %1470, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 194, ptr noundef %1472, ptr noundef %1474, ptr noundef %1476, i32 noundef %1477) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1479:                                             ; preds = %1452
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %15) #11
  store i16 0, ptr %15, align 2, !tbaa !62
  %1480 = load i32, ptr @test_count, align 4, !tbaa !5
  %1481 = add nsw i32 %1480, 1
  store i32 %1481, ptr @test_count, align 4, !tbaa !5
  %1482 = load ptr, ptr %14, align 8, !tbaa !9
  %1483 = call i32 @s2n_record_max_write_payload_size(ptr noundef %1482, ptr noundef nonnull %15) #11
  %1484 = call zeroext i1 @s2n_result_is_ok(i32 %1483)
  br i1 %1484, label %1507, label %1485

1485:                                             ; preds = %1479
  %1486 = load i32, ptr %1043, align 4, !tbaa !5
  %1487 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1488 = call i32 @s2n_print_stacktrace(ptr noundef %1487) #11
  %1489 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1490 = trunc nuw i8 %1489 to i1
  br i1 %1490, label %1491, label %1495

1491:                                             ; preds = %1485
  %1492 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1493 = call i32 @fileno(ptr noundef %1492) #11
  %1494 = call i32 @isatty(i32 noundef %1493) #11
  %.not634 = icmp eq i32 %1494, 0
  br i1 %.not634, label %1495, label %1496

1495:                                             ; preds = %1491, %1485
  br label %1496

1496:                                             ; preds = %1491, %1495
  %.str.5.sink1284 = phi ptr [ @.str.5, %1495 ], [ @.str.2, %1491 ]
  store i32 %1486, ptr %1043, align 4, !tbaa !5
  %1497 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1498 = load i32, ptr @test_count, align 4, !tbaa !5
  %1499 = load i32, ptr %989, align 4, !tbaa !5
  %1500 = call ptr @s2n_strerror(i32 noundef %1499, ptr noundef nonnull @.str.4) #11
  %1501 = load i32, ptr %989, align 4, !tbaa !5
  %1502 = call ptr @s2n_strerror_debug(i32 noundef %1501, ptr noundef nonnull @.str.4) #11
  %1503 = load i32, ptr %1043, align 4, !tbaa !5
  %1504 = call ptr @strerror(i32 noundef %1503) #11
  %1505 = load i32, ptr %1043, align 4, !tbaa !5
  %1506 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1497, ptr noundef nonnull %.str.5.sink1284, i32 noundef %1498, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 197, ptr noundef %1500, ptr noundef %1502, ptr noundef %1504, i32 noundef %1505) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1507:                                             ; preds = %1479
  %1508 = load i32, ptr @test_count, align 4, !tbaa !5
  %1509 = add nsw i32 %1508, 1
  store i32 %1509, ptr @test_count, align 4, !tbaa !5
  %1510 = load i16, ptr %15, align 2, !tbaa !62
  %1511 = icmp eq i16 %1510, 1000
  br i1 %1511, label %1534, label %1512

1512:                                             ; preds = %1507
  %1513 = load i32, ptr %1043, align 4, !tbaa !5
  %1514 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1515 = call i32 @s2n_print_stacktrace(ptr noundef %1514) #11
  %1516 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1517 = trunc nuw i8 %1516 to i1
  br i1 %1517, label %1518, label %1522

1518:                                             ; preds = %1512
  %1519 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1520 = call i32 @fileno(ptr noundef %1519) #11
  %1521 = call i32 @isatty(i32 noundef %1520) #11
  %.not635 = icmp eq i32 %1521, 0
  br i1 %.not635, label %1522, label %1523

1522:                                             ; preds = %1518, %1512
  br label %1523

1523:                                             ; preds = %1518, %1522
  %.str.5.sink1293 = phi ptr [ @.str.5, %1522 ], [ @.str.2, %1518 ]
  store i32 %1513, ptr %1043, align 4, !tbaa !5
  %1524 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1525 = load i32, ptr @test_count, align 4, !tbaa !5
  %1526 = load i32, ptr %989, align 4, !tbaa !5
  %1527 = call ptr @s2n_strerror(i32 noundef %1526, ptr noundef nonnull @.str.4) #11
  %1528 = load i32, ptr %989, align 4, !tbaa !5
  %1529 = call ptr @s2n_strerror_debug(i32 noundef %1528, ptr noundef nonnull @.str.4) #11
  %1530 = load i32, ptr %1043, align 4, !tbaa !5
  %1531 = call ptr @strerror(i32 noundef %1530) #11
  %1532 = load i32, ptr %1043, align 4, !tbaa !5
  %1533 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1524, ptr noundef nonnull %.str.5.sink1293, i32 noundef %1525, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.1, i32 noundef 198, ptr noundef %1527, ptr noundef %1529, ptr noundef %1531, i32 noundef %1532) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1534:                                             ; preds = %1507
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %15) #11
  %1535 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %14) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %16) #11
  %1536 = call ptr @s2n_connection_new(i32 noundef 0) #11
  store ptr %1536, ptr %16, align 8, !tbaa !9
  %1537 = load i32, ptr @test_count, align 4, !tbaa !5
  %1538 = add nsw i32 %1537, 1
  store i32 %1538, ptr @test_count, align 4, !tbaa !5
  %1539 = icmp eq ptr %1536, null
  br i1 %1539, label %1540, label %1562

1540:                                             ; preds = %1534
  %1541 = load i32, ptr %1043, align 4, !tbaa !5
  %1542 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1543 = call i32 @s2n_print_stacktrace(ptr noundef %1542) #11
  %1544 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1545 = trunc nuw i8 %1544 to i1
  br i1 %1545, label %1546, label %1550

1546:                                             ; preds = %1540
  %1547 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1548 = call i32 @fileno(ptr noundef %1547) #11
  %1549 = call i32 @isatty(i32 noundef %1548) #11
  %.not761 = icmp eq i32 %1549, 0
  br i1 %.not761, label %1550, label %1551

1550:                                             ; preds = %1546, %1540
  br label %1551

1551:                                             ; preds = %1546, %1550
  %.str.5.sink1302 = phi ptr [ @.str.5, %1550 ], [ @.str.2, %1546 ]
  store i32 %1541, ptr %1043, align 4, !tbaa !5
  %1552 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1553 = load i32, ptr @test_count, align 4, !tbaa !5
  %1554 = load i32, ptr %989, align 4, !tbaa !5
  %1555 = call ptr @s2n_strerror(i32 noundef %1554, ptr noundef nonnull @.str.4) #11
  %1556 = load i32, ptr %989, align 4, !tbaa !5
  %1557 = call ptr @s2n_strerror_debug(i32 noundef %1556, ptr noundef nonnull @.str.4) #11
  %1558 = load i32, ptr %1043, align 4, !tbaa !5
  %1559 = call ptr @strerror(i32 noundef %1558) #11
  %1560 = load i32, ptr %1043, align 4, !tbaa !5
  %1561 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1552, ptr noundef nonnull %.str.5.sink1302, i32 noundef %1553, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 204, ptr noundef %1555, ptr noundef %1557, ptr noundef %1559, i32 noundef %1560) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1562:                                             ; preds = %1534
  %1563 = getelementptr inbounds i8, ptr %1536, i64 2208
  %1564 = load i16, ptr %1563, align 8, !tbaa !63
  %1565 = zext i16 %1564 to i32
  %1566 = add nuw nsw i32 %1565, 1029
  %1567 = add nsw i32 %1537, 2
  store i32 %1567, ptr @test_count, align 4, !tbaa !5
  %1568 = load ptr, ptr %11, align 8, !tbaa !9
  %1569 = call i32 @s2n_config_set_send_buffer_size(ptr noundef %1568, i32 noundef %1566) #11
  %1570 = icmp eq i32 %1569, -1
  br i1 %1570, label %1571, label %1593

1571:                                             ; preds = %1562
  %1572 = load i32, ptr %1043, align 4, !tbaa !5
  %1573 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1574 = call i32 @s2n_print_stacktrace(ptr noundef %1573) #11
  %1575 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1576 = trunc nuw i8 %1575 to i1
  br i1 %1576, label %1577, label %1581

1577:                                             ; preds = %1571
  %1578 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1579 = call i32 @fileno(ptr noundef %1578) #11
  %1580 = call i32 @isatty(i32 noundef %1579) #11
  %.not760 = icmp eq i32 %1580, 0
  br i1 %.not760, label %1581, label %1582

1581:                                             ; preds = %1577, %1571
  br label %1582

1582:                                             ; preds = %1577, %1581
  %.str.5.sink1311 = phi ptr [ @.str.5, %1581 ], [ @.str.2, %1577 ]
  store i32 %1572, ptr %1043, align 4, !tbaa !5
  %1583 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1584 = load i32, ptr @test_count, align 4, !tbaa !5
  %1585 = load i32, ptr %989, align 4, !tbaa !5
  %1586 = call ptr @s2n_strerror(i32 noundef %1585, ptr noundef nonnull @.str.4) #11
  %1587 = load i32, ptr %989, align 4, !tbaa !5
  %1588 = call ptr @s2n_strerror_debug(i32 noundef %1587, ptr noundef nonnull @.str.4) #11
  %1589 = load i32, ptr %1043, align 4, !tbaa !5
  %1590 = call ptr @strerror(i32 noundef %1589) #11
  %1591 = load i32, ptr %1043, align 4, !tbaa !5
  %1592 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1583, ptr noundef nonnull %.str.5.sink1311, i32 noundef %1584, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 208, ptr noundef %1586, ptr noundef %1588, ptr noundef %1590, i32 noundef %1591) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1593:                                             ; preds = %1562
  %1594 = load i32, ptr @test_count, align 4, !tbaa !5
  %1595 = add nsw i32 %1594, 1
  store i32 %1595, ptr @test_count, align 4, !tbaa !5
  %1596 = load ptr, ptr %16, align 8, !tbaa !9
  %1597 = load ptr, ptr %11, align 8, !tbaa !9
  %1598 = call i32 @s2n_connection_set_config(ptr noundef %1596, ptr noundef %1597) #11
  %1599 = icmp eq i32 %1598, -1
  br i1 %1599, label %1600, label %1622

1600:                                             ; preds = %1593
  %1601 = load i32, ptr %1043, align 4, !tbaa !5
  %1602 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1603 = call i32 @s2n_print_stacktrace(ptr noundef %1602) #11
  %1604 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1605 = trunc nuw i8 %1604 to i1
  br i1 %1605, label %1606, label %1610

1606:                                             ; preds = %1600
  %1607 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1608 = call i32 @fileno(ptr noundef %1607) #11
  %1609 = call i32 @isatty(i32 noundef %1608) #11
  %.not759 = icmp eq i32 %1609, 0
  br i1 %.not759, label %1610, label %1611

1610:                                             ; preds = %1606, %1600
  br label %1611

1611:                                             ; preds = %1606, %1610
  %.str.5.sink1320 = phi ptr [ @.str.5, %1610 ], [ @.str.2, %1606 ]
  store i32 %1601, ptr %1043, align 4, !tbaa !5
  %1612 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1613 = load i32, ptr @test_count, align 4, !tbaa !5
  %1614 = load i32, ptr %989, align 4, !tbaa !5
  %1615 = call ptr @s2n_strerror(i32 noundef %1614, ptr noundef nonnull @.str.4) #11
  %1616 = load i32, ptr %989, align 4, !tbaa !5
  %1617 = call ptr @s2n_strerror_debug(i32 noundef %1616, ptr noundef nonnull @.str.4) #11
  %1618 = load i32, ptr %1043, align 4, !tbaa !5
  %1619 = call ptr @strerror(i32 noundef %1618) #11
  %1620 = load i32, ptr %1043, align 4, !tbaa !5
  %1621 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1612, ptr noundef nonnull %.str.5.sink1320, i32 noundef %1613, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 209, ptr noundef %1615, ptr noundef %1617, ptr noundef %1619, i32 noundef %1620) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1622:                                             ; preds = %1593
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %17) #11
  store i16 0, ptr %17, align 2, !tbaa !62
  %1623 = load i32, ptr @test_count, align 4, !tbaa !5
  %1624 = add nsw i32 %1623, 1
  store i32 %1624, ptr @test_count, align 4, !tbaa !5
  %1625 = load ptr, ptr %16, align 8, !tbaa !9
  %1626 = call i32 @s2n_record_max_write_payload_size(ptr noundef %1625, ptr noundef nonnull %17) #11
  %1627 = call zeroext i1 @s2n_result_is_ok(i32 %1626)
  br i1 %1627, label %1650, label %1628

1628:                                             ; preds = %1622
  %1629 = load i32, ptr %1043, align 4, !tbaa !5
  %1630 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1631 = call i32 @s2n_print_stacktrace(ptr noundef %1630) #11
  %1632 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1633 = trunc nuw i8 %1632 to i1
  br i1 %1633, label %1634, label %1638

1634:                                             ; preds = %1628
  %1635 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1636 = call i32 @fileno(ptr noundef %1635) #11
  %1637 = call i32 @isatty(i32 noundef %1636) #11
  %.not636 = icmp eq i32 %1637, 0
  br i1 %.not636, label %1638, label %1639

1638:                                             ; preds = %1634, %1628
  br label %1639

1639:                                             ; preds = %1634, %1638
  %.str.5.sink1329 = phi ptr [ @.str.5, %1638 ], [ @.str.2, %1634 ]
  store i32 %1629, ptr %1043, align 4, !tbaa !5
  %1640 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1641 = load i32, ptr @test_count, align 4, !tbaa !5
  %1642 = load i32, ptr %989, align 4, !tbaa !5
  %1643 = call ptr @s2n_strerror(i32 noundef %1642, ptr noundef nonnull @.str.4) #11
  %1644 = load i32, ptr %989, align 4, !tbaa !5
  %1645 = call ptr @s2n_strerror_debug(i32 noundef %1644, ptr noundef nonnull @.str.4) #11
  %1646 = load i32, ptr %1043, align 4, !tbaa !5
  %1647 = call ptr @strerror(i32 noundef %1646) #11
  %1648 = load i32, ptr %1043, align 4, !tbaa !5
  %1649 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1640, ptr noundef nonnull %.str.5.sink1329, i32 noundef %1641, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 212, ptr noundef %1643, ptr noundef %1645, ptr noundef %1647, i32 noundef %1648) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1650:                                             ; preds = %1622
  %1651 = load i32, ptr @test_count, align 4, !tbaa !5
  %1652 = add nsw i32 %1651, 1
  store i32 %1652, ptr @test_count, align 4, !tbaa !5
  %1653 = load i16, ptr %17, align 2, !tbaa !62
  %1654 = icmp eq i16 %1653, %1564
  br i1 %1654, label %1677, label %1655

1655:                                             ; preds = %1650
  %1656 = load i32, ptr %1043, align 4, !tbaa !5
  %1657 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1658 = call i32 @s2n_print_stacktrace(ptr noundef %1657) #11
  %1659 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1660 = trunc nuw i8 %1659 to i1
  br i1 %1660, label %1661, label %1665

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

1665:                                             ; preds = %1661, %1655
  br label %1666

1666:                                             ; preds = %1661, %1665
  %.str.5.sink1338 = phi ptr [ @.str.5, %1665 ], [ @.str.2, %1661 ]
  store i32 %1656, ptr %1043, align 4, !tbaa !5
  %1667 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1668 = load i32, ptr @test_count, align 4, !tbaa !5
  %1669 = load i32, ptr %989, align 4, !tbaa !5
  %1670 = call ptr @s2n_strerror(i32 noundef %1669, ptr noundef nonnull @.str.4) #11
  %1671 = load i32, ptr %989, align 4, !tbaa !5
  %1672 = call ptr @s2n_strerror_debug(i32 noundef %1671, ptr noundef nonnull @.str.4) #11
  %1673 = load i32, ptr %1043, align 4, !tbaa !5
  %1674 = call ptr @strerror(i32 noundef %1673) #11
  %1675 = load i32, ptr %1043, align 4, !tbaa !5
  %1676 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1667, ptr noundef nonnull %.str.5.sink1338, i32 noundef %1668, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.1, i32 noundef 213, ptr noundef %1670, ptr noundef %1672, ptr noundef %1674, i32 noundef %1675) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1677:                                             ; preds = %1650
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %17) #11
  %1678 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %16) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #11
  %1679 = call ptr @s2n_connection_new(i32 noundef 0) #11
  store ptr %1679, ptr %18, align 8, !tbaa !9
  %1680 = load i32, ptr @test_count, align 4, !tbaa !5
  %1681 = add nsw i32 %1680, 1
  store i32 %1681, ptr @test_count, align 4, !tbaa !5
  %1682 = icmp eq ptr %1679, null
  br i1 %1682, label %1683, label %1705

1683:                                             ; preds = %1677
  %1684 = load i32, ptr %1043, align 4, !tbaa !5
  %1685 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1686 = call i32 @s2n_print_stacktrace(ptr noundef %1685) #11
  %1687 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1688 = trunc nuw i8 %1687 to i1
  br i1 %1688, label %1689, label %1693

1689:                                             ; preds = %1683
  %1690 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1691 = call i32 @fileno(ptr noundef %1690) #11
  %1692 = call i32 @isatty(i32 noundef %1691) #11
  %.not758 = icmp eq i32 %1692, 0
  br i1 %.not758, label %1693, label %1694

1693:                                             ; preds = %1689, %1683
  br label %1694

1694:                                             ; preds = %1689, %1693
  %.str.5.sink1347 = phi ptr [ @.str.5, %1693 ], [ @.str.2, %1689 ]
  store i32 %1684, ptr %1043, align 4, !tbaa !5
  %1695 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1696 = load i32, ptr @test_count, align 4, !tbaa !5
  %1697 = load i32, ptr %989, align 4, !tbaa !5
  %1698 = call ptr @s2n_strerror(i32 noundef %1697, ptr noundef nonnull @.str.4) #11
  %1699 = load i32, ptr %989, align 4, !tbaa !5
  %1700 = call ptr @s2n_strerror_debug(i32 noundef %1699, ptr noundef nonnull @.str.4) #11
  %1701 = load i32, ptr %1043, align 4, !tbaa !5
  %1702 = call ptr @strerror(i32 noundef %1701) #11
  %1703 = load i32, ptr %1043, align 4, !tbaa !5
  %1704 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1695, ptr noundef nonnull %.str.5.sink1347, i32 noundef %1696, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 219, ptr noundef %1698, ptr noundef %1700, ptr noundef %1702, i32 noundef %1703) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1705:                                             ; preds = %1677
  %1706 = getelementptr inbounds i8, ptr %1679, i64 2208
  %1707 = load i16, ptr %1706, align 8, !tbaa !63
  %1708 = zext i16 %1707 to i32
  %1709 = add nuw nsw i32 %1708, 1039
  %1710 = add nsw i32 %1680, 2
  store i32 %1710, ptr @test_count, align 4, !tbaa !5
  %1711 = load ptr, ptr %11, align 8, !tbaa !9
  %1712 = call i32 @s2n_config_set_send_buffer_size(ptr noundef %1711, i32 noundef %1709) #11
  %1713 = icmp eq i32 %1712, -1
  br i1 %1713, label %1714, label %1736

1714:                                             ; preds = %1705
  %1715 = load i32, ptr %1043, align 4, !tbaa !5
  %1716 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1717 = call i32 @s2n_print_stacktrace(ptr noundef %1716) #11
  %1718 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1719 = trunc nuw i8 %1718 to i1
  br i1 %1719, label %1720, label %1724

1720:                                             ; preds = %1714
  %1721 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1722 = call i32 @fileno(ptr noundef %1721) #11
  %1723 = call i32 @isatty(i32 noundef %1722) #11
  %.not757 = icmp eq i32 %1723, 0
  br i1 %.not757, label %1724, label %1725

1724:                                             ; preds = %1720, %1714
  br label %1725

1725:                                             ; preds = %1720, %1724
  %.str.5.sink1356 = phi ptr [ @.str.5, %1724 ], [ @.str.2, %1720 ]
  store i32 %1715, ptr %1043, align 4, !tbaa !5
  %1726 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1727 = load i32, ptr @test_count, align 4, !tbaa !5
  %1728 = load i32, ptr %989, align 4, !tbaa !5
  %1729 = call ptr @s2n_strerror(i32 noundef %1728, ptr noundef nonnull @.str.4) #11
  %1730 = load i32, ptr %989, align 4, !tbaa !5
  %1731 = call ptr @s2n_strerror_debug(i32 noundef %1730, ptr noundef nonnull @.str.4) #11
  %1732 = load i32, ptr %1043, align 4, !tbaa !5
  %1733 = call ptr @strerror(i32 noundef %1732) #11
  %1734 = load i32, ptr %1043, align 4, !tbaa !5
  %1735 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1726, ptr noundef nonnull %.str.5.sink1356, i32 noundef %1727, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 223, ptr noundef %1729, ptr noundef %1731, ptr noundef %1733, i32 noundef %1734) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1736:                                             ; preds = %1705
  %1737 = load i32, ptr @test_count, align 4, !tbaa !5
  %1738 = add nsw i32 %1737, 1
  store i32 %1738, ptr @test_count, align 4, !tbaa !5
  %1739 = load ptr, ptr %18, align 8, !tbaa !9
  %1740 = load ptr, ptr %11, align 8, !tbaa !9
  %1741 = call i32 @s2n_connection_set_config(ptr noundef %1739, ptr noundef %1740) #11
  %1742 = icmp eq i32 %1741, -1
  br i1 %1742, label %1743, label %1765

1743:                                             ; preds = %1736
  %1744 = load i32, ptr %1043, align 4, !tbaa !5
  %1745 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1746 = call i32 @s2n_print_stacktrace(ptr noundef %1745) #11
  %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) #11
  %1752 = call i32 @isatty(i32 noundef %1751) #11
  %.not756 = icmp eq i32 %1752, 0
  br i1 %.not756, label %1753, label %1754

1753:                                             ; preds = %1749, %1743
  br label %1754

1754:                                             ; preds = %1749, %1753
  %.str.5.sink1365 = phi ptr [ @.str.5, %1753 ], [ @.str.2, %1749 ]
  store i32 %1744, ptr %1043, 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 %989, align 4, !tbaa !5
  %1758 = call ptr @s2n_strerror(i32 noundef %1757, ptr noundef nonnull @.str.4) #11
  %1759 = load i32, ptr %989, align 4, !tbaa !5
  %1760 = call ptr @s2n_strerror_debug(i32 noundef %1759, ptr noundef nonnull @.str.4) #11
  %1761 = load i32, ptr %1043, align 4, !tbaa !5
  %1762 = call ptr @strerror(i32 noundef %1761) #11
  %1763 = load i32, ptr %1043, align 4, !tbaa !5
  %1764 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1755, ptr noundef nonnull %.str.5.sink1365, i32 noundef %1756, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 224, ptr noundef %1758, ptr noundef %1760, ptr noundef %1762, i32 noundef %1763) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1765:                                             ; preds = %1736
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %19) #11
  store i16 0, ptr %19, align 2, !tbaa !62
  %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 = load ptr, ptr %18, align 8, !tbaa !9
  %1769 = call i32 @s2n_record_max_write_payload_size(ptr noundef %1768, ptr noundef nonnull %19) #11
  %1770 = call zeroext i1 @s2n_result_is_ok(i32 %1769)
  br i1 %1770, label %1793, label %1771

1771:                                             ; preds = %1765
  %1772 = load i32, ptr %1043, align 4, !tbaa !5
  %1773 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1774 = call i32 @s2n_print_stacktrace(ptr noundef %1773) #11
  %1775 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1776 = trunc nuw i8 %1775 to i1
  br i1 %1776, label %1777, label %1781

1777:                                             ; preds = %1771
  %1778 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1779 = call i32 @fileno(ptr noundef %1778) #11
  %1780 = call i32 @isatty(i32 noundef %1779) #11
  %.not638 = icmp eq i32 %1780, 0
  br i1 %.not638, label %1781, label %1782

1781:                                             ; preds = %1777, %1771
  br label %1782

1782:                                             ; preds = %1777, %1781
  %.str.5.sink1374 = phi ptr [ @.str.5, %1781 ], [ @.str.2, %1777 ]
  store i32 %1772, ptr %1043, align 4, !tbaa !5
  %1783 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1784 = load i32, ptr @test_count, align 4, !tbaa !5
  %1785 = load i32, ptr %989, align 4, !tbaa !5
  %1786 = call ptr @s2n_strerror(i32 noundef %1785, ptr noundef nonnull @.str.4) #11
  %1787 = load i32, ptr %989, align 4, !tbaa !5
  %1788 = call ptr @s2n_strerror_debug(i32 noundef %1787, ptr noundef nonnull @.str.4) #11
  %1789 = load i32, ptr %1043, align 4, !tbaa !5
  %1790 = call ptr @strerror(i32 noundef %1789) #11
  %1791 = load i32, ptr %1043, align 4, !tbaa !5
  %1792 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1783, ptr noundef nonnull %.str.5.sink1374, i32 noundef %1784, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 227, ptr noundef %1786, ptr noundef %1788, ptr noundef %1790, i32 noundef %1791) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1793:                                             ; preds = %1765
  %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 = load i16, ptr %19, align 2, !tbaa !62
  %1797 = load ptr, ptr %18, align 8, !tbaa !9
  %1798 = getelementptr inbounds i8, ptr %1797, i64 2208
  %1799 = load i16, ptr %1798, align 8, !tbaa !63
  %1800 = icmp eq i16 %1796, %1799
  br i1 %1800, label %1823, label %1801

1801:                                             ; preds = %1793
  %1802 = load i32, ptr %1043, align 4, !tbaa !5
  %1803 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1804 = call i32 @s2n_print_stacktrace(ptr noundef %1803) #11
  %1805 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1806 = trunc nuw i8 %1805 to i1
  br i1 %1806, label %1807, label %1811

1807:                                             ; preds = %1801
  %1808 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1809 = call i32 @fileno(ptr noundef %1808) #11
  %1810 = call i32 @isatty(i32 noundef %1809) #11
  %.not639 = icmp eq i32 %1810, 0
  br i1 %.not639, label %1811, label %1812

1811:                                             ; preds = %1807, %1801
  br label %1812

1812:                                             ; preds = %1807, %1811
  %.str.5.sink1383 = phi ptr [ @.str.5, %1811 ], [ @.str.2, %1807 ]
  store i32 %1802, ptr %1043, align 4, !tbaa !5
  %1813 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1814 = load i32, ptr @test_count, align 4, !tbaa !5
  %1815 = load i32, ptr %989, align 4, !tbaa !5
  %1816 = call ptr @s2n_strerror(i32 noundef %1815, ptr noundef nonnull @.str.4) #11
  %1817 = load i32, ptr %989, align 4, !tbaa !5
  %1818 = call ptr @s2n_strerror_debug(i32 noundef %1817, ptr noundef nonnull @.str.4) #11
  %1819 = load i32, ptr %1043, align 4, !tbaa !5
  %1820 = call ptr @strerror(i32 noundef %1819) #11
  %1821 = load i32, ptr %1043, align 4, !tbaa !5
  %1822 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1813, ptr noundef nonnull %.str.5.sink1383, i32 noundef %1814, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 228, ptr noundef %1816, ptr noundef %1818, ptr noundef %1820, i32 noundef %1821) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1823:                                             ; preds = %1793
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %19) #11
  %1824 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %18) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #11
  %1825 = call i32 @s2n_config_ptr_free(ptr noundef nonnull %11) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #11
  %1826 = load i32, ptr @test_count, align 4, !tbaa !5
  %1827 = add nsw i32 %1826, 1
  store i32 %1827, ptr @test_count, align 4, !tbaa !5
  %1828 = call ptr @s2n_connection_new(i32 noundef 0) #11
  %1829 = icmp eq ptr %1828, null
  br i1 %1829, label %1830, label %1852

1830:                                             ; preds = %1823
  %1831 = load i32, ptr %1043, align 4, !tbaa !5
  %1832 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1833 = call i32 @s2n_print_stacktrace(ptr noundef %1832) #11
  %1834 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1835 = trunc nuw i8 %1834 to i1
  br i1 %1835, label %1836, label %1840

1836:                                             ; preds = %1830
  %1837 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1838 = call i32 @fileno(ptr noundef %1837) #11
  %1839 = call i32 @isatty(i32 noundef %1838) #11
  %.not755 = icmp eq i32 %1839, 0
  br i1 %.not755, label %1840, label %1841

1840:                                             ; preds = %1836, %1830
  br label %1841

1841:                                             ; preds = %1836, %1840
  %.str.5.sink1392 = phi ptr [ @.str.5, %1840 ], [ @.str.2, %1836 ]
  store i32 %1831, ptr %1043, align 4, !tbaa !5
  %1842 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1843 = load i32, ptr @test_count, align 4, !tbaa !5
  %1844 = load i32, ptr %989, align 4, !tbaa !5
  %1845 = call ptr @s2n_strerror(i32 noundef %1844, ptr noundef nonnull @.str.4) #11
  %1846 = load i32, ptr %989, align 4, !tbaa !5
  %1847 = call ptr @s2n_strerror_debug(i32 noundef %1846, ptr noundef nonnull @.str.4) #11
  %1848 = load i32, ptr %1043, align 4, !tbaa !5
  %1849 = call ptr @strerror(i32 noundef %1848) #11
  %1850 = load i32, ptr %1043, align 4, !tbaa !5
  %1851 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1842, ptr noundef nonnull %.str.5.sink1392, i32 noundef %1843, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 235, ptr noundef %1845, ptr noundef %1847, ptr noundef %1849, i32 noundef %1850) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1852:                                             ; preds = %1823
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %20) #11
  store i16 0, ptr %20, align 2, !tbaa !62
  %1853 = load i32, ptr @test_count, align 4, !tbaa !5
  %1854 = add nsw i32 %1853, 1
  store i32 %1854, ptr @test_count, align 4, !tbaa !5
  %1855 = call i32 @s2n_record_min_write_payload_size(ptr noundef nonnull %1828, ptr noundef nonnull %20) #11
  %1856 = call zeroext i1 @s2n_result_is_ok(i32 %1855)
  br i1 %1856, label %1879, label %1857

1857:                                             ; preds = %1852
  %1858 = load i32, ptr %1043, align 4, !tbaa !5
  %1859 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1860 = call i32 @s2n_print_stacktrace(ptr noundef %1859) #11
  %1861 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1862 = trunc nuw i8 %1861 to i1
  br i1 %1862, label %1863, label %1867

1863:                                             ; preds = %1857
  %1864 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1865 = call i32 @fileno(ptr noundef %1864) #11
  %1866 = call i32 @isatty(i32 noundef %1865) #11
  %.not640 = icmp eq i32 %1866, 0
  br i1 %.not640, label %1867, label %1868

1867:                                             ; preds = %1863, %1857
  br label %1868

1868:                                             ; preds = %1863, %1867
  %.str.5.sink1401 = phi ptr [ @.str.5, %1867 ], [ @.str.2, %1863 ]
  store i32 %1858, ptr %1043, align 4, !tbaa !5
  %1869 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1870 = load i32, ptr @test_count, align 4, !tbaa !5
  %1871 = load i32, ptr %989, align 4, !tbaa !5
  %1872 = call ptr @s2n_strerror(i32 noundef %1871, ptr noundef nonnull @.str.4) #11
  %1873 = load i32, ptr %989, align 4, !tbaa !5
  %1874 = call ptr @s2n_strerror_debug(i32 noundef %1873, ptr noundef nonnull @.str.4) #11
  %1875 = load i32, ptr %1043, align 4, !tbaa !5
  %1876 = call ptr @strerror(i32 noundef %1875) #11
  %1877 = load i32, ptr %1043, align 4, !tbaa !5
  %1878 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1869, ptr noundef nonnull %.str.5.sink1401, i32 noundef %1870, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.1, i32 noundef 240, ptr noundef %1872, ptr noundef %1874, ptr noundef %1876, i32 noundef %1877) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1879:                                             ; preds = %1852
  %1880 = load i32, ptr @test_count, align 4, !tbaa !5
  %1881 = add nsw i32 %1880, 1
  store i32 %1881, ptr @test_count, align 4, !tbaa !5
  %1882 = load i16, ptr %20, align 2, !tbaa !62
  %1883 = icmp eq i16 %1882, 1415
  br i1 %1883, label %1906, label %1884

1884:                                             ; preds = %1879
  %1885 = load i32, ptr %1043, align 4, !tbaa !5
  %1886 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1887 = call i32 @s2n_print_stacktrace(ptr noundef %1886) #11
  %1888 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1889 = trunc nuw i8 %1888 to i1
  br i1 %1889, label %1890, label %1894

1890:                                             ; preds = %1884
  %1891 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1892 = call i32 @fileno(ptr noundef %1891) #11
  %1893 = call i32 @isatty(i32 noundef %1892) #11
  %.not641 = icmp eq i32 %1893, 0
  br i1 %.not641, label %1894, label %1895

1894:                                             ; preds = %1890, %1884
  br label %1895

1895:                                             ; preds = %1890, %1894
  %.str.5.sink1410 = phi ptr [ @.str.5, %1894 ], [ @.str.2, %1890 ]
  store i32 %1885, ptr %1043, align 4, !tbaa !5
  %1896 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1897 = load i32, ptr @test_count, align 4, !tbaa !5
  %1898 = load i32, ptr %989, align 4, !tbaa !5
  %1899 = call ptr @s2n_strerror(i32 noundef %1898, ptr noundef nonnull @.str.4) #11
  %1900 = load i32, ptr %989, align 4, !tbaa !5
  %1901 = call ptr @s2n_strerror_debug(i32 noundef %1900, ptr noundef nonnull @.str.4) #11
  %1902 = load i32, ptr %1043, align 4, !tbaa !5
  %1903 = call ptr @strerror(i32 noundef %1902) #11
  %1904 = load i32, ptr %1043, align 4, !tbaa !5
  %1905 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1896, ptr noundef nonnull %.str.5.sink1410, i32 noundef %1897, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.1, i32 noundef 241, ptr noundef %1899, ptr noundef %1901, ptr noundef %1903, i32 noundef %1904) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1906:                                             ; preds = %1879
  %1907 = add nsw i32 %1880, 2
  store i32 %1907, ptr @test_count, align 4, !tbaa !5
  %1908 = call i32 @s2n_connection_wipe(ptr noundef nonnull %1828) #11
  %1909 = icmp eq i32 %1908, -1
  br i1 %1909, label %1910, label %1932

1910:                                             ; preds = %1906
  %1911 = load i32, ptr %1043, align 4, !tbaa !5
  %1912 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1913 = call i32 @s2n_print_stacktrace(ptr noundef %1912) #11
  %1914 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1915 = trunc nuw i8 %1914 to i1
  br i1 %1915, label %1916, label %1920

1916:                                             ; preds = %1910
  %1917 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1918 = call i32 @fileno(ptr noundef %1917) #11
  %1919 = call i32 @isatty(i32 noundef %1918) #11
  %.not754 = icmp eq i32 %1919, 0
  br i1 %.not754, label %1920, label %1921

1920:                                             ; preds = %1916, %1910
  br label %1921

1921:                                             ; preds = %1916, %1920
  %.str.5.sink1419 = phi ptr [ @.str.5, %1920 ], [ @.str.2, %1916 ]
  store i32 %1911, ptr %1043, align 4, !tbaa !5
  %1922 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1923 = load i32, ptr @test_count, align 4, !tbaa !5
  %1924 = load i32, ptr %989, align 4, !tbaa !5
  %1925 = call ptr @s2n_strerror(i32 noundef %1924, ptr noundef nonnull @.str.4) #11
  %1926 = load i32, ptr %989, align 4, !tbaa !5
  %1927 = call ptr @s2n_strerror_debug(i32 noundef %1926, ptr noundef nonnull @.str.4) #11
  %1928 = load i32, ptr %1043, align 4, !tbaa !5
  %1929 = call ptr @strerror(i32 noundef %1928) #11
  %1930 = load i32, ptr %1043, align 4, !tbaa !5
  %1931 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1922, ptr noundef nonnull %.str.5.sink1419, i32 noundef %1923, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 247, ptr noundef %1925, ptr noundef %1927, ptr noundef %1929, i32 noundef %1930) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1932:                                             ; preds = %1906
  %1933 = load i32, ptr @test_count, align 4, !tbaa !5
  %1934 = add nsw i32 %1933, 1
  store i32 %1934, ptr @test_count, align 4, !tbaa !5
  %1935 = getelementptr inbounds i8, ptr %1828, i64 1896
  %1936 = call i32 @s2n_stuffer_wipe(ptr noundef nonnull %1935) #11
  %1937 = icmp eq i32 %1936, -1
  br i1 %1937, label %1938, label %1960

1938:                                             ; preds = %1932
  %1939 = load i32, ptr %1043, align 4, !tbaa !5
  %1940 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1941 = call i32 @s2n_print_stacktrace(ptr noundef %1940) #11
  %1942 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1943 = trunc nuw i8 %1942 to i1
  br i1 %1943, label %1944, label %1948

1944:                                             ; preds = %1938
  %1945 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1946 = call i32 @fileno(ptr noundef %1945) #11
  %1947 = call i32 @isatty(i32 noundef %1946) #11
  %.not753 = icmp eq i32 %1947, 0
  br i1 %.not753, label %1948, label %1949

1948:                                             ; preds = %1944, %1938
  br label %1949

1949:                                             ; preds = %1944, %1948
  %.str.5.sink1428 = phi ptr [ @.str.5, %1948 ], [ @.str.2, %1944 ]
  store i32 %1939, ptr %1043, align 4, !tbaa !5
  %1950 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1951 = load i32, ptr @test_count, align 4, !tbaa !5
  %1952 = load i32, ptr %989, align 4, !tbaa !5
  %1953 = call ptr @s2n_strerror(i32 noundef %1952, ptr noundef nonnull @.str.4) #11
  %1954 = load i32, ptr %989, align 4, !tbaa !5
  %1955 = call ptr @s2n_strerror_debug(i32 noundef %1954, ptr noundef nonnull @.str.4) #11
  %1956 = load i32, ptr %1043, align 4, !tbaa !5
  %1957 = call ptr @strerror(i32 noundef %1956) #11
  %1958 = load i32, ptr %1043, align 4, !tbaa !5
  %1959 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1950, ptr noundef nonnull %.str.5.sink1428, i32 noundef %1951, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 248, ptr noundef %1953, ptr noundef %1955, ptr noundef %1957, i32 noundef %1958) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1960:                                             ; preds = %1932
  %1961 = getelementptr inbounds i8, ptr %1828, i64 220
  store i8 32, ptr %1961, align 4, !tbaa !57
  %1962 = getelementptr inbounds i8, ptr %1828, i64 224
  %1963 = load ptr, ptr %1962, align 8, !tbaa !64
  %1964 = load ptr, ptr %1963, align 8, !tbaa !44
  %1965 = getelementptr inbounds i8, ptr %1964, i64 48
  store ptr @s2n_record_alg_3des_sha, ptr %1965, align 8, !tbaa !49
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %21) #11
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(24) %21, ptr noundef nonnull align 16 dereferenceable(24) @__const.main.des3_key, i64 24, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %22) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %22, i8 0, i64 24, i1 false)
  %1966 = load i32, ptr @test_count, align 4, !tbaa !5
  %1967 = add nsw i32 %1966, 1
  store i32 %1967, ptr @test_count, align 4, !tbaa !5
  %1968 = call i32 @s2n_blob_init(ptr noundef nonnull %22, ptr noundef nonnull %21, i32 noundef 24) #11
  %1969 = icmp eq i32 %1968, -1
  br i1 %1969, label %1970, label %1992

1970:                                             ; preds = %1960
  %1971 = load i32, ptr %1043, align 4, !tbaa !5
  %1972 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1973 = call i32 @s2n_print_stacktrace(ptr noundef %1972) #11
  %1974 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1975 = trunc nuw i8 %1974 to i1
  br i1 %1975, label %1976, label %1980

1976:                                             ; preds = %1970
  %1977 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1978 = call i32 @fileno(ptr noundef %1977) #11
  %1979 = call i32 @isatty(i32 noundef %1978) #11
  %.not752 = icmp eq i32 %1979, 0
  br i1 %.not752, label %1980, label %1981

1980:                                             ; preds = %1976, %1970
  br label %1981

1981:                                             ; preds = %1976, %1980
  %.str.5.sink1437 = phi ptr [ @.str.5, %1980 ], [ @.str.2, %1976 ]
  store i32 %1971, ptr %1043, align 4, !tbaa !5
  %1982 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1983 = load i32, ptr @test_count, align 4, !tbaa !5
  %1984 = load i32, ptr %989, align 4, !tbaa !5
  %1985 = call ptr @s2n_strerror(i32 noundef %1984, ptr noundef nonnull @.str.4) #11
  %1986 = load i32, ptr %989, align 4, !tbaa !5
  %1987 = call ptr @s2n_strerror_debug(i32 noundef %1986, ptr noundef nonnull @.str.4) #11
  %1988 = load i32, ptr %1043, align 4, !tbaa !5
  %1989 = call ptr @strerror(i32 noundef %1988) #11
  %1990 = load i32, ptr %1043, align 4, !tbaa !5
  %1991 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1982, ptr noundef nonnull %.str.5.sink1437, i32 noundef %1983, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.1, i32 noundef 253, ptr noundef %1985, ptr noundef %1987, ptr noundef %1989, i32 noundef %1990) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1992:                                             ; preds = %1960
  %1993 = getelementptr inbounds i8, ptr %1828, i64 232
  %1994 = load ptr, ptr %1993, align 8, !tbaa !15
  %1995 = getelementptr inbounds i8, ptr %1828, i64 640
  store ptr %1994, ptr %1995, align 8, !tbaa !42
  %1996 = load i32, ptr @test_count, align 4, !tbaa !5
  %1997 = add nsw i32 %1996, 1
  store i32 %1997, ptr @test_count, align 4, !tbaa !5
  %1998 = load ptr, ptr %1994, align 8, !tbaa !44
  %1999 = getelementptr inbounds i8, ptr %1998, i64 48
  %2000 = load ptr, ptr %1999, align 8, !tbaa !49
  %2001 = load ptr, ptr %2000, align 8, !tbaa !51
  %2002 = getelementptr inbounds i8, ptr %2001, i64 64
  %2003 = load ptr, ptr %2002, align 8, !tbaa !53
  %2004 = getelementptr inbounds i8, ptr %1994, i64 16
  %2005 = call i32 %2003(ptr noundef nonnull %2004) #11
  %2006 = call zeroext i1 @s2n_result_is_ok(i32 %2005)
  br i1 %2006, label %2029, label %2007

2007:                                             ; preds = %1992
  %2008 = load i32, ptr %1043, align 4, !tbaa !5
  %2009 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2010 = call i32 @s2n_print_stacktrace(ptr noundef %2009) #11
  %2011 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2012 = trunc nuw i8 %2011 to i1
  br i1 %2012, label %2013, label %2017

2013:                                             ; preds = %2007
  %2014 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2015 = call i32 @fileno(ptr noundef %2014) #11
  %2016 = call i32 @isatty(i32 noundef %2015) #11
  %.not642 = icmp eq i32 %2016, 0
  br i1 %.not642, label %2017, label %2018

2017:                                             ; preds = %2013, %2007
  br label %2018

2018:                                             ; preds = %2013, %2017
  %.str.5.sink1446 = phi ptr [ @.str.5, %2017 ], [ @.str.2, %2013 ]
  store i32 %2008, ptr %1043, align 4, !tbaa !5
  %2019 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2020 = load i32, ptr @test_count, align 4, !tbaa !5
  %2021 = load i32, ptr %989, align 4, !tbaa !5
  %2022 = call ptr @s2n_strerror(i32 noundef %2021, ptr noundef nonnull @.str.4) #11
  %2023 = load i32, ptr %989, align 4, !tbaa !5
  %2024 = call ptr @s2n_strerror_debug(i32 noundef %2023, ptr noundef nonnull @.str.4) #11
  %2025 = load i32, ptr %1043, align 4, !tbaa !5
  %2026 = call ptr @strerror(i32 noundef %2025) #11
  %2027 = load i32, ptr %1043, align 4, !tbaa !5
  %2028 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2019, ptr noundef nonnull %.str.5.sink1446, i32 noundef %2020, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.1, i32 noundef 255, ptr noundef %2022, ptr noundef %2024, ptr noundef %2026, i32 noundef %2027) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2029:                                             ; preds = %1992
  %2030 = load i32, ptr @test_count, align 4, !tbaa !5
  %2031 = add nsw i32 %2030, 1
  store i32 %2031, ptr @test_count, align 4, !tbaa !5
  %2032 = load ptr, ptr %1993, align 8, !tbaa !15
  %2033 = load ptr, ptr %2032, align 8, !tbaa !44
  %2034 = getelementptr inbounds i8, ptr %2033, i64 48
  %2035 = load ptr, ptr %2034, align 8, !tbaa !49
  %2036 = load ptr, ptr %2035, align 8, !tbaa !51
  %2037 = getelementptr inbounds i8, ptr %2036, i64 64
  %2038 = load ptr, ptr %2037, align 8, !tbaa !53
  %2039 = getelementptr inbounds i8, ptr %2032, i64 8
  %2040 = call i32 %2038(ptr noundef nonnull %2039) #11
  %2041 = call zeroext i1 @s2n_result_is_ok(i32 %2040)
  br i1 %2041, label %2064, label %2042

2042:                                             ; preds = %2029
  %2043 = load i32, ptr %1043, align 4, !tbaa !5
  %2044 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2045 = call i32 @s2n_print_stacktrace(ptr noundef %2044) #11
  %2046 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2047 = trunc nuw i8 %2046 to i1
  br i1 %2047, label %2048, label %2052

2048:                                             ; preds = %2042
  %2049 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2050 = call i32 @fileno(ptr noundef %2049) #11
  %2051 = call i32 @isatty(i32 noundef %2050) #11
  %.not643 = icmp eq i32 %2051, 0
  br i1 %.not643, label %2052, label %2053

2052:                                             ; preds = %2048, %2042
  br label %2053

2053:                                             ; preds = %2048, %2052
  %.str.5.sink1455 = phi ptr [ @.str.5, %2052 ], [ @.str.2, %2048 ]
  store i32 %2043, ptr %1043, align 4, !tbaa !5
  %2054 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2055 = load i32, ptr @test_count, align 4, !tbaa !5
  %2056 = load i32, ptr %989, align 4, !tbaa !5
  %2057 = call ptr @s2n_strerror(i32 noundef %2056, ptr noundef nonnull @.str.4) #11
  %2058 = load i32, ptr %989, align 4, !tbaa !5
  %2059 = call ptr @s2n_strerror_debug(i32 noundef %2058, ptr noundef nonnull @.str.4) #11
  %2060 = load i32, ptr %1043, align 4, !tbaa !5
  %2061 = call ptr @strerror(i32 noundef %2060) #11
  %2062 = load i32, ptr %1043, align 4, !tbaa !5
  %2063 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2054, ptr noundef nonnull %.str.5.sink1455, i32 noundef %2055, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.1, i32 noundef 256, ptr noundef %2057, ptr noundef %2059, ptr noundef %2061, i32 noundef %2062) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2064:                                             ; preds = %2029
  %2065 = load i32, ptr @test_count, align 4, !tbaa !5
  %2066 = add nsw i32 %2065, 1
  store i32 %2066, ptr @test_count, align 4, !tbaa !5
  %2067 = load ptr, ptr %1993, align 8, !tbaa !15
  %2068 = load ptr, ptr %2067, align 8, !tbaa !44
  %2069 = getelementptr inbounds i8, ptr %2068, i64 48
  %2070 = load ptr, ptr %2069, align 8, !tbaa !49
  %2071 = load ptr, ptr %2070, align 8, !tbaa !51
  %2072 = getelementptr inbounds i8, ptr %2071, i64 80
  %2073 = load ptr, ptr %2072, align 8, !tbaa !55
  %2074 = getelementptr inbounds i8, ptr %2067, i64 16
  %2075 = call i32 %2073(ptr noundef nonnull %2074, ptr noundef nonnull %22) #11
  %2076 = call zeroext i1 @s2n_result_is_ok(i32 %2075)
  br i1 %2076, label %2099, label %2077

2077:                                             ; preds = %2064
  %2078 = load i32, ptr %1043, align 4, !tbaa !5
  %2079 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2080 = call i32 @s2n_print_stacktrace(ptr noundef %2079) #11
  %2081 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2082 = trunc nuw i8 %2081 to i1
  br i1 %2082, label %2083, label %2087

2083:                                             ; preds = %2077
  %2084 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2085 = call i32 @fileno(ptr noundef %2084) #11
  %2086 = call i32 @isatty(i32 noundef %2085) #11
  %.not644 = icmp eq i32 %2086, 0
  br i1 %.not644, label %2087, label %2088

2087:                                             ; preds = %2083, %2077
  br label %2088

2088:                                             ; preds = %2083, %2087
  %.str.5.sink1464 = phi ptr [ @.str.5, %2087 ], [ @.str.2, %2083 ]
  store i32 %2078, ptr %1043, align 4, !tbaa !5
  %2089 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2090 = load i32, ptr @test_count, align 4, !tbaa !5
  %2091 = load i32, ptr %989, align 4, !tbaa !5
  %2092 = call ptr @s2n_strerror(i32 noundef %2091, ptr noundef nonnull @.str.4) #11
  %2093 = load i32, ptr %989, align 4, !tbaa !5
  %2094 = call ptr @s2n_strerror_debug(i32 noundef %2093, ptr noundef nonnull @.str.4) #11
  %2095 = load i32, ptr %1043, align 4, !tbaa !5
  %2096 = call ptr @strerror(i32 noundef %2095) #11
  %2097 = load i32, ptr %1043, align 4, !tbaa !5
  %2098 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2089, ptr noundef nonnull %.str.5.sink1464, i32 noundef %2090, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.1, i32 noundef 257, ptr noundef %2092, ptr noundef %2094, ptr noundef %2096, i32 noundef %2097) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2099:                                             ; preds = %2064
  %2100 = load i32, ptr @test_count, align 4, !tbaa !5
  %2101 = add nsw i32 %2100, 1
  store i32 %2101, ptr @test_count, align 4, !tbaa !5
  %2102 = load ptr, ptr %1993, align 8, !tbaa !15
  %2103 = load ptr, ptr %2102, align 8, !tbaa !44
  %2104 = getelementptr inbounds i8, ptr %2103, i64 48
  %2105 = load ptr, ptr %2104, align 8, !tbaa !49
  %2106 = load ptr, ptr %2105, align 8, !tbaa !51
  %2107 = getelementptr inbounds i8, ptr %2106, i64 72
  %2108 = load ptr, ptr %2107, align 8, !tbaa !56
  %2109 = getelementptr inbounds i8, ptr %2102, i64 8
  %2110 = call i32 %2108(ptr noundef nonnull %2109, ptr noundef nonnull %22) #11
  %2111 = call zeroext i1 @s2n_result_is_ok(i32 %2110)
  br i1 %2111, label %2134, label %2112

2112:                                             ; preds = %2099
  %2113 = load i32, ptr %1043, align 4, !tbaa !5
  %2114 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2115 = call i32 @s2n_print_stacktrace(ptr noundef %2114) #11
  %2116 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2117 = trunc nuw i8 %2116 to i1
  br i1 %2117, label %2118, label %2122

2118:                                             ; preds = %2112
  %2119 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2120 = call i32 @fileno(ptr noundef %2119) #11
  %2121 = call i32 @isatty(i32 noundef %2120) #11
  %.not645 = icmp eq i32 %2121, 0
  br i1 %.not645, label %2122, label %2123

2122:                                             ; preds = %2118, %2112
  br label %2123

2123:                                             ; preds = %2118, %2122
  %.str.5.sink1473 = phi ptr [ @.str.5, %2122 ], [ @.str.2, %2118 ]
  store i32 %2113, ptr %1043, align 4, !tbaa !5
  %2124 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2125 = load i32, ptr @test_count, align 4, !tbaa !5
  %2126 = load i32, ptr %989, align 4, !tbaa !5
  %2127 = call ptr @s2n_strerror(i32 noundef %2126, ptr noundef nonnull @.str.4) #11
  %2128 = load i32, ptr %989, align 4, !tbaa !5
  %2129 = call ptr @s2n_strerror_debug(i32 noundef %2128, ptr noundef nonnull @.str.4) #11
  %2130 = load i32, ptr %1043, align 4, !tbaa !5
  %2131 = call ptr @strerror(i32 noundef %2130) #11
  %2132 = load i32, ptr %1043, align 4, !tbaa !5
  %2133 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2124, ptr noundef nonnull %.str.5.sink1473, i32 noundef %2125, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.1, i32 noundef 258, ptr noundef %2127, ptr noundef %2129, ptr noundef %2131, i32 noundef %2132) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2134:                                             ; preds = %2099
  %2135 = load i32, ptr @test_count, align 4, !tbaa !5
  %2136 = add nsw i32 %2135, 1
  store i32 %2136, ptr @test_count, align 4, !tbaa !5
  %2137 = load ptr, ptr %1993, align 8, !tbaa !15
  %2138 = getelementptr inbounds i8, ptr %2137, i64 456
  %2139 = call i32 @s2n_hmac_init(ptr noundef nonnull %2138, i32 noundef 2, ptr noundef nonnull %3, i32 noundef 15) #11
  %2140 = icmp eq i32 %2139, -1
  br i1 %2140, label %2141, label %2163

2141:                                             ; preds = %2134
  %2142 = load i32, ptr %1043, align 4, !tbaa !5
  %2143 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2144 = call i32 @s2n_print_stacktrace(ptr noundef %2143) #11
  %2145 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2146 = trunc nuw i8 %2145 to i1
  br i1 %2146, label %2147, label %2151

2147:                                             ; preds = %2141
  %2148 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2149 = call i32 @fileno(ptr noundef %2148) #11
  %2150 = call i32 @isatty(i32 noundef %2149) #11
  %.not751 = icmp eq i32 %2150, 0
  br i1 %.not751, label %2151, label %2152

2151:                                             ; preds = %2147, %2141
  br label %2152

2152:                                             ; preds = %2147, %2151
  %.str.5.sink1482 = phi ptr [ @.str.5, %2151 ], [ @.str.2, %2147 ]
  store i32 %2142, ptr %1043, align 4, !tbaa !5
  %2153 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2154 = load i32, ptr @test_count, align 4, !tbaa !5
  %2155 = load i32, ptr %989, align 4, !tbaa !5
  %2156 = call ptr @s2n_strerror(i32 noundef %2155, ptr noundef nonnull @.str.4) #11
  %2157 = load i32, ptr %989, align 4, !tbaa !5
  %2158 = call ptr @s2n_strerror_debug(i32 noundef %2157, ptr noundef nonnull @.str.4) #11
  %2159 = load i32, ptr %1043, align 4, !tbaa !5
  %2160 = call ptr @strerror(i32 noundef %2159) #11
  %2161 = load i32, ptr %1043, align 4, !tbaa !5
  %2162 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2153, ptr noundef nonnull %.str.5.sink1482, i32 noundef %2154, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.1, i32 noundef 259, ptr noundef %2156, ptr noundef %2158, ptr noundef %2160, i32 noundef %2161) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2163:                                             ; preds = %2134
  %2164 = load i32, ptr @test_count, align 4, !tbaa !5
  %2165 = add nsw i32 %2164, 1
  store i32 %2165, ptr @test_count, align 4, !tbaa !5
  %2166 = call i32 @s2n_record_min_write_payload_size(ptr noundef nonnull %1828, ptr noundef nonnull %20) #11
  %2167 = call zeroext i1 @s2n_result_is_ok(i32 %2166)
  br i1 %2167, label %2190, label %2168

2168:                                             ; preds = %2163
  %2169 = load i32, ptr %1043, align 4, !tbaa !5
  %2170 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2171 = call i32 @s2n_print_stacktrace(ptr noundef %2170) #11
  %2172 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2173 = trunc nuw i8 %2172 to i1
  br i1 %2173, label %2174, label %2178

2174:                                             ; preds = %2168
  %2175 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2176 = call i32 @fileno(ptr noundef %2175) #11
  %2177 = call i32 @isatty(i32 noundef %2176) #11
  %.not646 = icmp eq i32 %2177, 0
  br i1 %.not646, label %2178, label %2179

2178:                                             ; preds = %2174, %2168
  br label %2179

2179:                                             ; preds = %2174, %2178
  %.str.5.sink1491 = phi ptr [ @.str.5, %2178 ], [ @.str.2, %2174 ]
  store i32 %2169, ptr %1043, align 4, !tbaa !5
  %2180 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2181 = load i32, ptr @test_count, align 4, !tbaa !5
  %2182 = load i32, ptr %989, align 4, !tbaa !5
  %2183 = call ptr @s2n_strerror(i32 noundef %2182, ptr noundef nonnull @.str.4) #11
  %2184 = load i32, ptr %989, align 4, !tbaa !5
  %2185 = call ptr @s2n_strerror_debug(i32 noundef %2184, ptr noundef nonnull @.str.4) #11
  %2186 = load i32, ptr %1043, align 4, !tbaa !5
  %2187 = call ptr @strerror(i32 noundef %2186) #11
  %2188 = load i32, ptr %1043, align 4, !tbaa !5
  %2189 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2180, ptr noundef nonnull %.str.5.sink1491, i32 noundef %2181, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.1, i32 noundef 261, ptr noundef %2183, ptr noundef %2185, ptr noundef %2187, i32 noundef %2188) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2190:                                             ; preds = %2163
  %2191 = load i16, ptr %20, align 2, !tbaa !62
  %2192 = zext i16 %2191 to i32
  %2193 = getelementptr inbounds i8, ptr %5, i64 8
  store i32 %2192, ptr %2193, align 8, !tbaa !60
  %2194 = load i32, ptr @test_count, align 4, !tbaa !5
  %2195 = add nsw i32 %2194, 1
  store i32 %2195, ptr @test_count, align 4, !tbaa !5
  %2196 = icmp eq i16 %2191, 1379
  br i1 %2196, label %2219, label %2197

2197:                                             ; preds = %2190
  %2198 = load i32, ptr %1043, align 4, !tbaa !5
  %2199 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2200 = call i32 @s2n_print_stacktrace(ptr noundef %2199) #11
  %2201 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2202 = trunc nuw i8 %2201 to i1
  br i1 %2202, label %2203, label %2207

2203:                                             ; preds = %2197
  %2204 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2205 = call i32 @fileno(ptr noundef %2204) #11
  %2206 = call i32 @isatty(i32 noundef %2205) #11
  %.not647 = icmp eq i32 %2206, 0
  br i1 %.not647, label %2207, label %2208

2207:                                             ; preds = %2203, %2197
  br label %2208

2208:                                             ; preds = %2203, %2207
  %.str.5.sink1500 = phi ptr [ @.str.5, %2207 ], [ @.str.2, %2203 ]
  store i32 %2198, ptr %1043, align 4, !tbaa !5
  %2209 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2210 = load i32, ptr @test_count, align 4, !tbaa !5
  %2211 = load i32, ptr %989, align 4, !tbaa !5
  %2212 = call ptr @s2n_strerror(i32 noundef %2211, ptr noundef nonnull @.str.4) #11
  %2213 = load i32, ptr %989, align 4, !tbaa !5
  %2214 = call ptr @s2n_strerror_debug(i32 noundef %2213, ptr noundef nonnull @.str.4) #11
  %2215 = load i32, ptr %1043, align 4, !tbaa !5
  %2216 = call ptr @strerror(i32 noundef %2215) #11
  %2217 = load i32, ptr %1043, align 4, !tbaa !5
  %2218 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2209, ptr noundef nonnull %.str.5.sink1500, i32 noundef %2210, ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.1, i32 noundef 267, ptr noundef %2212, ptr noundef %2214, ptr noundef %2216, i32 noundef %2217) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2219:                                             ; preds = %2190
  %2220 = add nsw i32 %2194, 2
  store i32 %2220, ptr @test_count, align 4, !tbaa !5
  %2221 = call i32 @s2n_record_write(ptr noundef nonnull %1828, i8 noundef zeroext 23, ptr noundef nonnull %5) #11
  %2222 = call zeroext i1 @s2n_result_is_ok(i32 %2221)
  br i1 %2222, label %2245, label %2223

2223:                                             ; preds = %2219
  %2224 = load i32, ptr %1043, align 4, !tbaa !5
  %2225 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2226 = call i32 @s2n_print_stacktrace(ptr noundef %2225) #11
  %2227 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2228 = trunc nuw i8 %2227 to i1
  br i1 %2228, label %2229, label %2233

2229:                                             ; preds = %2223
  %2230 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2231 = call i32 @fileno(ptr noundef %2230) #11
  %2232 = call i32 @isatty(i32 noundef %2231) #11
  %.not648 = icmp eq i32 %2232, 0
  br i1 %.not648, label %2233, label %2234

2233:                                             ; preds = %2229, %2223
  br label %2234

2234:                                             ; preds = %2229, %2233
  %.str.5.sink1509 = phi ptr [ @.str.5, %2233 ], [ @.str.2, %2229 ]
  store i32 %2224, ptr %1043, align 4, !tbaa !5
  %2235 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2236 = load i32, ptr @test_count, align 4, !tbaa !5
  %2237 = load i32, ptr %989, align 4, !tbaa !5
  %2238 = call ptr @s2n_strerror(i32 noundef %2237, ptr noundef nonnull @.str.4) #11
  %2239 = load i32, ptr %989, align 4, !tbaa !5
  %2240 = call ptr @s2n_strerror_debug(i32 noundef %2239, ptr noundef nonnull @.str.4) #11
  %2241 = load i32, ptr %1043, align 4, !tbaa !5
  %2242 = call ptr @strerror(i32 noundef %2241) #11
  %2243 = load i32, ptr %1043, align 4, !tbaa !5
  %2244 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2235, ptr noundef nonnull %.str.5.sink1509, i32 noundef %2236, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.1, i32 noundef 269, ptr noundef %2238, ptr noundef %2240, ptr noundef %2242, i32 noundef %2243) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2245:                                             ; preds = %2219
  %2246 = getelementptr inbounds i8, ptr %1828, i64 1924
  %2247 = load i32, ptr %2246, align 4, !tbaa !65
  %2248 = getelementptr inbounds i8, ptr %1828, i64 1920
  %2249 = load i32, ptr %2248, align 8, !tbaa !66
  %2250 = sub i32 %2247, %2249
  %2251 = load i32, ptr @test_count, align 4, !tbaa !5
  %2252 = add nsw i32 %2251, 1
  store i32 %2252, ptr @test_count, align 4, !tbaa !5
  %2253 = and i32 %2250, 65535
  %2254 = icmp ult i32 %2253, 1421
  br i1 %2254, label %2277, label %2255

2255:                                             ; preds = %2245
  %2256 = load i32, ptr %1043, align 4, !tbaa !5
  %2257 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2258 = call i32 @s2n_print_stacktrace(ptr noundef %2257) #11
  %2259 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2260 = trunc nuw i8 %2259 to i1
  br i1 %2260, label %2261, label %2265

2261:                                             ; preds = %2255
  %2262 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2263 = call i32 @fileno(ptr noundef %2262) #11
  %2264 = call i32 @isatty(i32 noundef %2263) #11
  %.not649 = icmp eq i32 %2264, 0
  br i1 %.not649, label %2265, label %2266

2265:                                             ; preds = %2261, %2255
  br label %2266

2266:                                             ; preds = %2261, %2265
  %.str.5.sink1518 = phi ptr [ @.str.5, %2265 ], [ @.str.2, %2261 ]
  store i32 %2256, ptr %1043, align 4, !tbaa !5
  %2267 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2268 = load i32, ptr @test_count, align 4, !tbaa !5
  %2269 = load i32, ptr %989, align 4, !tbaa !5
  %2270 = call ptr @s2n_strerror(i32 noundef %2269, ptr noundef nonnull @.str.4) #11
  %2271 = load i32, ptr %989, align 4, !tbaa !5
  %2272 = call ptr @s2n_strerror_debug(i32 noundef %2271, ptr noundef nonnull @.str.4) #11
  %2273 = load i32, ptr %1043, align 4, !tbaa !5
  %2274 = call ptr @strerror(i32 noundef %2273) #11
  %2275 = load i32, ptr %1043, align 4, !tbaa !5
  %2276 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2267, ptr noundef nonnull %.str.5.sink1518, i32 noundef %2268, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 271, ptr noundef %2270, ptr noundef %2272, ptr noundef %2274, i32 noundef %2275) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2277:                                             ; preds = %2245
  %2278 = add nsw i32 %2251, 2
  store i32 %2278, ptr @test_count, align 4, !tbaa !5
  %2279 = load ptr, ptr %1935, align 8, !tbaa !67
  %2280 = getelementptr inbounds i8, ptr %2279, i64 3
  %2281 = load i8, ptr %2280, align 1, !tbaa !59
  %2282 = zext i8 %2281 to i32
  %2283 = shl nuw nsw i32 %2282, 8
  %2284 = getelementptr inbounds i8, ptr %2279, i64 4
  %2285 = load i8, ptr %2284, align 1, !tbaa !59
  %2286 = zext i8 %2285 to i32
  %2287 = or disjoint i32 %2283, %2286
  %2288 = add nsw i32 %2253, -5
  %2289 = icmp eq i32 %2287, %2288
  br i1 %2289, label %2312, label %2290

2290:                                             ; preds = %2277
  %2291 = load i32, ptr %1043, align 4, !tbaa !5
  %2292 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2293 = call i32 @s2n_print_stacktrace(ptr noundef %2292) #11
  %2294 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2295 = trunc nuw i8 %2294 to i1
  br i1 %2295, label %2296, label %2300

2296:                                             ; preds = %2290
  %2297 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2298 = call i32 @fileno(ptr noundef %2297) #11
  %2299 = call i32 @isatty(i32 noundef %2298) #11
  %.not650 = icmp eq i32 %2299, 0
  br i1 %.not650, label %2300, label %2301

2300:                                             ; preds = %2296, %2290
  br label %2301

2301:                                             ; preds = %2296, %2300
  %.str.5.sink1527 = phi ptr [ @.str.5, %2300 ], [ @.str.2, %2296 ]
  store i32 %2291, ptr %1043, align 4, !tbaa !5
  %2302 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2303 = load i32, ptr @test_count, align 4, !tbaa !5
  %2304 = load i32, ptr %989, align 4, !tbaa !5
  %2305 = call ptr @s2n_strerror(i32 noundef %2304, ptr noundef nonnull @.str.4) #11
  %2306 = load i32, ptr %989, align 4, !tbaa !5
  %2307 = call ptr @s2n_strerror_debug(i32 noundef %2306, ptr noundef nonnull @.str.4) #11
  %2308 = load i32, ptr %1043, align 4, !tbaa !5
  %2309 = call ptr @strerror(i32 noundef %2308) #11
  %2310 = load i32, ptr %1043, align 4, !tbaa !5
  %2311 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2302, ptr noundef nonnull %.str.5.sink1527, i32 noundef %2303, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.1, i32 noundef 272, ptr noundef %2305, ptr noundef %2307, ptr noundef %2309, i32 noundef %2310) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2312:                                             ; preds = %2277
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %22) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %21) #11
  %2313 = add nsw i32 %2251, 3
  store i32 %2313, ptr @test_count, align 4, !tbaa !5
  %2314 = call i32 @s2n_connection_wipe(ptr noundef nonnull %1828) #11
  %2315 = icmp eq i32 %2314, -1
  br i1 %2315, label %2316, label %2338

2316:                                             ; preds = %2312
  %2317 = load i32, ptr %1043, align 4, !tbaa !5
  %2318 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2319 = call i32 @s2n_print_stacktrace(ptr noundef %2318) #11
  %2320 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2321 = trunc nuw i8 %2320 to i1
  br i1 %2321, label %2322, label %2326

2322:                                             ; preds = %2316
  %2323 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2324 = call i32 @fileno(ptr noundef %2323) #11
  %2325 = call i32 @isatty(i32 noundef %2324) #11
  %.not750 = icmp eq i32 %2325, 0
  br i1 %.not750, label %2326, label %2327

2326:                                             ; preds = %2322, %2316
  br label %2327

2327:                                             ; preds = %2322, %2326
  %.str.5.sink1536 = phi ptr [ @.str.5, %2326 ], [ @.str.2, %2322 ]
  store i32 %2317, ptr %1043, align 4, !tbaa !5
  %2328 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2329 = load i32, ptr @test_count, align 4, !tbaa !5
  %2330 = load i32, ptr %989, align 4, !tbaa !5
  %2331 = call ptr @s2n_strerror(i32 noundef %2330, ptr noundef nonnull @.str.4) #11
  %2332 = load i32, ptr %989, align 4, !tbaa !5
  %2333 = call ptr @s2n_strerror_debug(i32 noundef %2332, ptr noundef nonnull @.str.4) #11
  %2334 = load i32, ptr %1043, align 4, !tbaa !5
  %2335 = call ptr @strerror(i32 noundef %2334) #11
  %2336 = load i32, ptr %1043, align 4, !tbaa !5
  %2337 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2328, ptr noundef nonnull %.str.5.sink1536, i32 noundef %2329, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 277, ptr noundef %2331, ptr noundef %2333, ptr noundef %2335, i32 noundef %2336) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2338:                                             ; preds = %2312
  %2339 = load i32, ptr @test_count, align 4, !tbaa !5
  %2340 = add nsw i32 %2339, 1
  store i32 %2340, ptr @test_count, align 4, !tbaa !5
  %2341 = call i32 @s2n_stuffer_wipe(ptr noundef nonnull %1935) #11
  %2342 = icmp eq i32 %2341, -1
  br i1 %2342, label %2343, label %2365

2343:                                             ; preds = %2338
  %2344 = load i32, ptr %1043, align 4, !tbaa !5
  %2345 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2346 = call i32 @s2n_print_stacktrace(ptr noundef %2345) #11
  %2347 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2348 = trunc nuw i8 %2347 to i1
  br i1 %2348, label %2349, label %2353

2349:                                             ; preds = %2343
  %2350 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2351 = call i32 @fileno(ptr noundef %2350) #11
  %2352 = call i32 @isatty(i32 noundef %2351) #11
  %.not749 = icmp eq i32 %2352, 0
  br i1 %.not749, label %2353, label %2354

2353:                                             ; preds = %2349, %2343
  br label %2354

2354:                                             ; preds = %2349, %2353
  %.str.5.sink1545 = phi ptr [ @.str.5, %2353 ], [ @.str.2, %2349 ]
  store i32 %2344, ptr %1043, align 4, !tbaa !5
  %2355 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2356 = load i32, ptr @test_count, align 4, !tbaa !5
  %2357 = load i32, ptr %989, align 4, !tbaa !5
  %2358 = call ptr @s2n_strerror(i32 noundef %2357, ptr noundef nonnull @.str.4) #11
  %2359 = load i32, ptr %989, align 4, !tbaa !5
  %2360 = call ptr @s2n_strerror_debug(i32 noundef %2359, ptr noundef nonnull @.str.4) #11
  %2361 = load i32, ptr %1043, align 4, !tbaa !5
  %2362 = call ptr @strerror(i32 noundef %2361) #11
  %2363 = load i32, ptr %1043, align 4, !tbaa !5
  %2364 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2355, ptr noundef nonnull %.str.5.sink1545, i32 noundef %2356, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 278, ptr noundef %2358, ptr noundef %2360, ptr noundef %2362, i32 noundef %2363) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2365:                                             ; preds = %2338
  %2366 = load ptr, ptr %1962, align 8, !tbaa !64
  %2367 = load ptr, ptr %2366, align 8, !tbaa !44
  %2368 = getelementptr inbounds i8, ptr %2367, i64 48
  store ptr @s2n_record_alg_aes128_gcm, ptr %2368, align 8, !tbaa !49
  %2369 = load i32, ptr @test_count, align 4, !tbaa !5
  %2370 = add nsw i32 %2369, 1
  store i32 %2370, ptr @test_count, align 4, !tbaa !5
  %2371 = call i32 @setup_server_keys(ptr noundef nonnull %1828, ptr noundef nonnull %7)
  %2372 = icmp eq i32 %2371, -1
  br i1 %2372, label %2373, label %2395

2373:                                             ; preds = %2365
  %2374 = load i32, ptr %1043, align 4, !tbaa !5
  %2375 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2376 = call i32 @s2n_print_stacktrace(ptr noundef %2375) #11
  %2377 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2378 = trunc nuw i8 %2377 to i1
  br i1 %2378, label %2379, label %2383

2379:                                             ; preds = %2373
  %2380 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2381 = call i32 @fileno(ptr noundef %2380) #11
  %2382 = call i32 @isatty(i32 noundef %2381) #11
  %.not748 = icmp eq i32 %2382, 0
  br i1 %.not748, label %2383, label %2384

2383:                                             ; preds = %2379, %2373
  br label %2384

2384:                                             ; preds = %2379, %2383
  %.str.5.sink1554 = phi ptr [ @.str.5, %2383 ], [ @.str.2, %2379 ]
  store i32 %2374, ptr %1043, align 4, !tbaa !5
  %2385 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2386 = load i32, ptr @test_count, align 4, !tbaa !5
  %2387 = load i32, ptr %989, align 4, !tbaa !5
  %2388 = call ptr @s2n_strerror(i32 noundef %2387, ptr noundef nonnull @.str.4) #11
  %2389 = load i32, ptr %989, align 4, !tbaa !5
  %2390 = call ptr @s2n_strerror_debug(i32 noundef %2389, ptr noundef nonnull @.str.4) #11
  %2391 = load i32, ptr %1043, align 4, !tbaa !5
  %2392 = call ptr @strerror(i32 noundef %2391) #11
  %2393 = load i32, ptr %1043, align 4, !tbaa !5
  %2394 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2385, ptr noundef nonnull %.str.5.sink1554, i32 noundef %2386, ptr noundef nonnull @.str.54, ptr noundef nonnull @.str.1, i32 noundef 281, ptr noundef %2388, ptr noundef %2390, ptr noundef %2392, i32 noundef %2393) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2395:                                             ; preds = %2365
  %2396 = load i32, ptr @test_count, align 4, !tbaa !5
  %2397 = add nsw i32 %2396, 1
  store i32 %2397, ptr @test_count, align 4, !tbaa !5
  %2398 = call i32 @s2n_record_min_write_payload_size(ptr noundef nonnull %1828, ptr noundef nonnull %20) #11
  %2399 = call zeroext i1 @s2n_result_is_ok(i32 %2398)
  br i1 %2399, label %2422, label %2400

2400:                                             ; preds = %2395
  %2401 = load i32, ptr %1043, align 4, !tbaa !5
  %2402 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2403 = call i32 @s2n_print_stacktrace(ptr noundef %2402) #11
  %2404 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2405 = trunc nuw i8 %2404 to i1
  br i1 %2405, label %2406, label %2410

2406:                                             ; preds = %2400
  %2407 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2408 = call i32 @fileno(ptr noundef %2407) #11
  %2409 = call i32 @isatty(i32 noundef %2408) #11
  %.not651 = icmp eq i32 %2409, 0
  br i1 %.not651, label %2410, label %2411

2410:                                             ; preds = %2406, %2400
  br label %2411

2411:                                             ; preds = %2406, %2410
  %.str.5.sink1563 = phi ptr [ @.str.5, %2410 ], [ @.str.2, %2406 ]
  store i32 %2401, ptr %1043, align 4, !tbaa !5
  %2412 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2413 = load i32, ptr @test_count, align 4, !tbaa !5
  %2414 = load i32, ptr %989, align 4, !tbaa !5
  %2415 = call ptr @s2n_strerror(i32 noundef %2414, ptr noundef nonnull @.str.4) #11
  %2416 = load i32, ptr %989, align 4, !tbaa !5
  %2417 = call ptr @s2n_strerror_debug(i32 noundef %2416, ptr noundef nonnull @.str.4) #11
  %2418 = load i32, ptr %1043, align 4, !tbaa !5
  %2419 = call ptr @strerror(i32 noundef %2418) #11
  %2420 = load i32, ptr %1043, align 4, !tbaa !5
  %2421 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2412, ptr noundef nonnull %.str.5.sink1563, i32 noundef %2413, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.1, i32 noundef 283, ptr noundef %2415, ptr noundef %2417, ptr noundef %2419, i32 noundef %2420) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2422:                                             ; preds = %2395
  %2423 = load i16, ptr %20, align 2, !tbaa !62
  %2424 = zext i16 %2423 to i32
  store i32 %2424, ptr %2193, align 8, !tbaa !60
  %2425 = load i32, ptr @test_count, align 4, !tbaa !5
  %2426 = add nsw i32 %2425, 1
  store i32 %2426, ptr @test_count, align 4, !tbaa !5
  %2427 = icmp eq i16 %2423, 1391
  br i1 %2427, label %2450, label %2428

2428:                                             ; preds = %2422
  %2429 = load i32, ptr %1043, align 4, !tbaa !5
  %2430 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2431 = call i32 @s2n_print_stacktrace(ptr noundef %2430) #11
  %2432 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2433 = trunc nuw i8 %2432 to i1
  br i1 %2433, label %2434, label %2438

2434:                                             ; preds = %2428
  %2435 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2436 = call i32 @fileno(ptr noundef %2435) #11
  %2437 = call i32 @isatty(i32 noundef %2436) #11
  %.not652 = icmp eq i32 %2437, 0
  br i1 %.not652, label %2438, label %2439

2438:                                             ; preds = %2434, %2428
  br label %2439

2439:                                             ; preds = %2434, %2438
  %.str.5.sink1572 = phi ptr [ @.str.5, %2438 ], [ @.str.2, %2434 ]
  store i32 %2429, ptr %1043, align 4, !tbaa !5
  %2440 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2441 = load i32, ptr @test_count, align 4, !tbaa !5
  %2442 = load i32, ptr %989, align 4, !tbaa !5
  %2443 = call ptr @s2n_strerror(i32 noundef %2442, ptr noundef nonnull @.str.4) #11
  %2444 = load i32, ptr %989, align 4, !tbaa !5
  %2445 = call ptr @s2n_strerror_debug(i32 noundef %2444, ptr noundef nonnull @.str.4) #11
  %2446 = load i32, ptr %1043, align 4, !tbaa !5
  %2447 = call ptr @strerror(i32 noundef %2446) #11
  %2448 = load i32, ptr %1043, align 4, !tbaa !5
  %2449 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2440, ptr noundef nonnull %.str.5.sink1572, i32 noundef %2441, ptr noundef nonnull @.str.55, ptr noundef nonnull @.str.1, i32 noundef 287, ptr noundef %2443, ptr noundef %2445, ptr noundef %2447, i32 noundef %2448) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2450:                                             ; preds = %2422
  %2451 = add nsw i32 %2425, 2
  store i32 %2451, ptr @test_count, align 4, !tbaa !5
  %2452 = call i32 @s2n_record_write(ptr noundef nonnull %1828, i8 noundef zeroext 23, ptr noundef nonnull %5) #11
  %2453 = call zeroext i1 @s2n_result_is_ok(i32 %2452)
  br i1 %2453, label %2476, label %2454

2454:                                             ; preds = %2450
  %2455 = load i32, ptr %1043, align 4, !tbaa !5
  %2456 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2457 = call i32 @s2n_print_stacktrace(ptr noundef %2456) #11
  %2458 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2459 = trunc nuw i8 %2458 to i1
  br i1 %2459, label %2460, label %2464

2460:                                             ; preds = %2454
  %2461 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2462 = call i32 @fileno(ptr noundef %2461) #11
  %2463 = call i32 @isatty(i32 noundef %2462) #11
  %.not653 = icmp eq i32 %2463, 0
  br i1 %.not653, label %2464, label %2465

2464:                                             ; preds = %2460, %2454
  br label %2465

2465:                                             ; preds = %2460, %2464
  %.str.5.sink1581 = phi ptr [ @.str.5, %2464 ], [ @.str.2, %2460 ]
  store i32 %2455, ptr %1043, align 4, !tbaa !5
  %2466 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2467 = load i32, ptr @test_count, align 4, !tbaa !5
  %2468 = load i32, ptr %989, align 4, !tbaa !5
  %2469 = call ptr @s2n_strerror(i32 noundef %2468, ptr noundef nonnull @.str.4) #11
  %2470 = load i32, ptr %989, align 4, !tbaa !5
  %2471 = call ptr @s2n_strerror_debug(i32 noundef %2470, ptr noundef nonnull @.str.4) #11
  %2472 = load i32, ptr %1043, align 4, !tbaa !5
  %2473 = call ptr @strerror(i32 noundef %2472) #11
  %2474 = load i32, ptr %1043, align 4, !tbaa !5
  %2475 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2466, ptr noundef nonnull %.str.5.sink1581, i32 noundef %2467, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.1, i32 noundef 289, ptr noundef %2469, ptr noundef %2471, ptr noundef %2473, i32 noundef %2474) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2476:                                             ; preds = %2450
  %2477 = load i32, ptr %2246, align 4, !tbaa !65
  %2478 = load i32, ptr %2248, align 8, !tbaa !66
  %2479 = sub i32 %2477, %2478
  %2480 = load i32, ptr @test_count, align 4, !tbaa !5
  %2481 = add nsw i32 %2480, 1
  store i32 %2481, ptr @test_count, align 4, !tbaa !5
  %2482 = and i32 %2479, 65535
  %2483 = icmp ult i32 %2482, 1421
  br i1 %2483, label %2506, label %2484

2484:                                             ; preds = %2476
  %2485 = load i32, ptr %1043, align 4, !tbaa !5
  %2486 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2487 = call i32 @s2n_print_stacktrace(ptr noundef %2486) #11
  %2488 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2489 = trunc nuw i8 %2488 to i1
  br i1 %2489, label %2490, label %2494

2490:                                             ; preds = %2484
  %2491 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2492 = call i32 @fileno(ptr noundef %2491) #11
  %2493 = call i32 @isatty(i32 noundef %2492) #11
  %.not654 = icmp eq i32 %2493, 0
  br i1 %.not654, label %2494, label %2495

2494:                                             ; preds = %2490, %2484
  br label %2495

2495:                                             ; preds = %2490, %2494
  %.str.5.sink1590 = phi ptr [ @.str.5, %2494 ], [ @.str.2, %2490 ]
  store i32 %2485, ptr %1043, align 4, !tbaa !5
  %2496 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2497 = load i32, ptr @test_count, align 4, !tbaa !5
  %2498 = load i32, ptr %989, align 4, !tbaa !5
  %2499 = call ptr @s2n_strerror(i32 noundef %2498, ptr noundef nonnull @.str.4) #11
  %2500 = load i32, ptr %989, align 4, !tbaa !5
  %2501 = call ptr @s2n_strerror_debug(i32 noundef %2500, ptr noundef nonnull @.str.4) #11
  %2502 = load i32, ptr %1043, align 4, !tbaa !5
  %2503 = call ptr @strerror(i32 noundef %2502) #11
  %2504 = load i32, ptr %1043, align 4, !tbaa !5
  %2505 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2496, ptr noundef nonnull %.str.5.sink1590, i32 noundef %2497, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 291, ptr noundef %2499, ptr noundef %2501, ptr noundef %2503, i32 noundef %2504) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2506:                                             ; preds = %2476
  %2507 = add nsw i32 %2480, 2
  store i32 %2507, ptr @test_count, align 4, !tbaa !5
  %2508 = load ptr, ptr %1935, align 8, !tbaa !67
  %2509 = getelementptr inbounds i8, ptr %2508, i64 3
  %2510 = load i8, ptr %2509, align 1, !tbaa !59
  %2511 = zext i8 %2510 to i32
  %2512 = shl nuw nsw i32 %2511, 8
  %2513 = getelementptr inbounds i8, ptr %2508, i64 4
  %2514 = load i8, ptr %2513, align 1, !tbaa !59
  %2515 = zext i8 %2514 to i32
  %2516 = or disjoint i32 %2512, %2515
  %2517 = add nsw i32 %2482, -5
  %2518 = icmp eq i32 %2516, %2517
  br i1 %2518, label %2541, label %2519

2519:                                             ; preds = %2506
  %2520 = load i32, ptr %1043, align 4, !tbaa !5
  %2521 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2522 = call i32 @s2n_print_stacktrace(ptr noundef %2521) #11
  %2523 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2524 = trunc nuw i8 %2523 to i1
  br i1 %2524, label %2525, label %2529

2525:                                             ; preds = %2519
  %2526 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2527 = call i32 @fileno(ptr noundef %2526) #11
  %2528 = call i32 @isatty(i32 noundef %2527) #11
  %.not655 = icmp eq i32 %2528, 0
  br i1 %.not655, label %2529, label %2530

2529:                                             ; preds = %2525, %2519
  br label %2530

2530:                                             ; preds = %2525, %2529
  %.str.5.sink1599 = phi ptr [ @.str.5, %2529 ], [ @.str.2, %2525 ]
  store i32 %2520, ptr %1043, align 4, !tbaa !5
  %2531 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2532 = load i32, ptr @test_count, align 4, !tbaa !5
  %2533 = load i32, ptr %989, align 4, !tbaa !5
  %2534 = call ptr @s2n_strerror(i32 noundef %2533, ptr noundef nonnull @.str.4) #11
  %2535 = load i32, ptr %989, align 4, !tbaa !5
  %2536 = call ptr @s2n_strerror_debug(i32 noundef %2535, ptr noundef nonnull @.str.4) #11
  %2537 = load i32, ptr %1043, align 4, !tbaa !5
  %2538 = call ptr @strerror(i32 noundef %2537) #11
  %2539 = load i32, ptr %1043, align 4, !tbaa !5
  %2540 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2531, ptr noundef nonnull %.str.5.sink1599, i32 noundef %2532, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.1, i32 noundef 292, ptr noundef %2534, ptr noundef %2536, ptr noundef %2538, i32 noundef %2539) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2541:                                             ; preds = %2506
  %2542 = add nsw i32 %2480, 3
  store i32 %2542, ptr @test_count, align 4, !tbaa !5
  %2543 = call i32 @destroy_server_keys(ptr noundef nonnull %1828)
  %2544 = icmp eq i32 %2543, -1
  br i1 %2544, label %2545, label %2567

2545:                                             ; preds = %2541
  %2546 = load i32, ptr %1043, align 4, !tbaa !5
  %2547 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2548 = call i32 @s2n_print_stacktrace(ptr noundef %2547) #11
  %2549 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2550 = trunc nuw i8 %2549 to i1
  br i1 %2550, label %2551, label %2555

2551:                                             ; preds = %2545
  %2552 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2553 = call i32 @fileno(ptr noundef %2552) #11
  %2554 = call i32 @isatty(i32 noundef %2553) #11
  %.not747 = icmp eq i32 %2554, 0
  br i1 %.not747, label %2555, label %2556

2555:                                             ; preds = %2551, %2545
  br label %2556

2556:                                             ; preds = %2551, %2555
  %.str.5.sink1608 = phi ptr [ @.str.5, %2555 ], [ @.str.2, %2551 ]
  store i32 %2546, ptr %1043, align 4, !tbaa !5
  %2557 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2558 = load i32, ptr @test_count, align 4, !tbaa !5
  %2559 = load i32, ptr %989, align 4, !tbaa !5
  %2560 = call ptr @s2n_strerror(i32 noundef %2559, ptr noundef nonnull @.str.4) #11
  %2561 = load i32, ptr %989, align 4, !tbaa !5
  %2562 = call ptr @s2n_strerror_debug(i32 noundef %2561, ptr noundef nonnull @.str.4) #11
  %2563 = load i32, ptr %1043, align 4, !tbaa !5
  %2564 = call ptr @strerror(i32 noundef %2563) #11
  %2565 = load i32, ptr %1043, align 4, !tbaa !5
  %2566 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2557, ptr noundef nonnull %.str.5.sink1608, i32 noundef %2558, ptr noundef nonnull @.str.56, ptr noundef nonnull @.str.1, i32 noundef 297, ptr noundef %2560, ptr noundef %2562, ptr noundef %2564, i32 noundef %2565) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2567:                                             ; preds = %2541
  %2568 = load i32, ptr @test_count, align 4, !tbaa !5
  %2569 = add nsw i32 %2568, 1
  store i32 %2569, ptr @test_count, align 4, !tbaa !5
  %2570 = call i32 @s2n_connection_wipe(ptr noundef nonnull %1828) #11
  %2571 = icmp eq i32 %2570, -1
  br i1 %2571, label %2572, label %2594

2572:                                             ; preds = %2567
  %2573 = load i32, ptr %1043, align 4, !tbaa !5
  %2574 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2575 = call i32 @s2n_print_stacktrace(ptr noundef %2574) #11
  %2576 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2577 = trunc nuw i8 %2576 to i1
  br i1 %2577, label %2578, label %2582

2578:                                             ; preds = %2572
  %2579 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2580 = call i32 @fileno(ptr noundef %2579) #11
  %2581 = call i32 @isatty(i32 noundef %2580) #11
  %.not746 = icmp eq i32 %2581, 0
  br i1 %.not746, label %2582, label %2583

2582:                                             ; preds = %2578, %2572
  br label %2583

2583:                                             ; preds = %2578, %2582
  %.str.5.sink1617 = phi ptr [ @.str.5, %2582 ], [ @.str.2, %2578 ]
  store i32 %2573, ptr %1043, align 4, !tbaa !5
  %2584 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2585 = load i32, ptr @test_count, align 4, !tbaa !5
  %2586 = load i32, ptr %989, align 4, !tbaa !5
  %2587 = call ptr @s2n_strerror(i32 noundef %2586, ptr noundef nonnull @.str.4) #11
  %2588 = load i32, ptr %989, align 4, !tbaa !5
  %2589 = call ptr @s2n_strerror_debug(i32 noundef %2588, ptr noundef nonnull @.str.4) #11
  %2590 = load i32, ptr %1043, align 4, !tbaa !5
  %2591 = call ptr @strerror(i32 noundef %2590) #11
  %2592 = load i32, ptr %1043, align 4, !tbaa !5
  %2593 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2584, ptr noundef nonnull %.str.5.sink1617, i32 noundef %2585, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 298, ptr noundef %2587, ptr noundef %2589, ptr noundef %2591, i32 noundef %2592) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2594:                                             ; preds = %2567
  %2595 = load i32, ptr @test_count, align 4, !tbaa !5
  %2596 = add nsw i32 %2595, 1
  store i32 %2596, ptr @test_count, align 4, !tbaa !5
  %2597 = call i32 @s2n_stuffer_wipe(ptr noundef nonnull %1935) #11
  %2598 = icmp eq i32 %2597, -1
  br i1 %2598, label %2599, label %2621

2599:                                             ; preds = %2594
  %2600 = load i32, ptr %1043, align 4, !tbaa !5
  %2601 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2602 = call i32 @s2n_print_stacktrace(ptr noundef %2601) #11
  %2603 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2604 = trunc nuw i8 %2603 to i1
  br i1 %2604, label %2605, label %2609

2605:                                             ; preds = %2599
  %2606 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2607 = call i32 @fileno(ptr noundef %2606) #11
  %2608 = call i32 @isatty(i32 noundef %2607) #11
  %.not745 = icmp eq i32 %2608, 0
  br i1 %.not745, label %2609, label %2610

2609:                                             ; preds = %2605, %2599
  br label %2610

2610:                                             ; preds = %2605, %2609
  %.str.5.sink1626 = phi ptr [ @.str.5, %2609 ], [ @.str.2, %2605 ]
  store i32 %2600, ptr %1043, align 4, !tbaa !5
  %2611 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2612 = load i32, ptr @test_count, align 4, !tbaa !5
  %2613 = load i32, ptr %989, align 4, !tbaa !5
  %2614 = call ptr @s2n_strerror(i32 noundef %2613, ptr noundef nonnull @.str.4) #11
  %2615 = load i32, ptr %989, align 4, !tbaa !5
  %2616 = call ptr @s2n_strerror_debug(i32 noundef %2615, ptr noundef nonnull @.str.4) #11
  %2617 = load i32, ptr %1043, align 4, !tbaa !5
  %2618 = call ptr @strerror(i32 noundef %2617) #11
  %2619 = load i32, ptr %1043, align 4, !tbaa !5
  %2620 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2611, ptr noundef nonnull %.str.5.sink1626, i32 noundef %2612, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 299, ptr noundef %2614, ptr noundef %2616, ptr noundef %2618, i32 noundef %2619) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2621:                                             ; preds = %2594
  store i8 34, ptr %1961, align 4, !tbaa !57
  %2622 = load ptr, ptr %1962, align 8, !tbaa !64
  %2623 = load ptr, ptr %2622, align 8, !tbaa !44
  %2624 = getelementptr inbounds i8, ptr %2623, i64 48
  store ptr @s2n_tls13_record_alg_aes128_gcm, ptr %2624, align 8, !tbaa !49
  %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 = call i32 @setup_server_keys(ptr noundef nonnull %1828, ptr noundef nonnull %7)
  %2628 = icmp eq i32 %2627, -1
  br i1 %2628, label %2629, label %2651

2629:                                             ; preds = %2621
  %2630 = load i32, ptr %1043, align 4, !tbaa !5
  %2631 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2632 = call i32 @s2n_print_stacktrace(ptr noundef %2631) #11
  %2633 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2634 = trunc nuw i8 %2633 to i1
  br i1 %2634, label %2635, label %2639

2635:                                             ; preds = %2629
  %2636 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2637 = call i32 @fileno(ptr noundef %2636) #11
  %2638 = call i32 @isatty(i32 noundef %2637) #11
  %.not744 = icmp eq i32 %2638, 0
  br i1 %.not744, label %2639, label %2640

2639:                                             ; preds = %2635, %2629
  br label %2640

2640:                                             ; preds = %2635, %2639
  %.str.5.sink1635 = phi ptr [ @.str.5, %2639 ], [ @.str.2, %2635 ]
  store i32 %2630, ptr %1043, align 4, !tbaa !5
  %2641 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2642 = load i32, ptr @test_count, align 4, !tbaa !5
  %2643 = load i32, ptr %989, align 4, !tbaa !5
  %2644 = call ptr @s2n_strerror(i32 noundef %2643, ptr noundef nonnull @.str.4) #11
  %2645 = load i32, ptr %989, align 4, !tbaa !5
  %2646 = call ptr @s2n_strerror_debug(i32 noundef %2645, ptr noundef nonnull @.str.4) #11
  %2647 = load i32, ptr %1043, align 4, !tbaa !5
  %2648 = call ptr @strerror(i32 noundef %2647) #11
  %2649 = load i32, ptr %1043, align 4, !tbaa !5
  %2650 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2641, ptr noundef nonnull %.str.5.sink1635, i32 noundef %2642, ptr noundef nonnull @.str.54, ptr noundef nonnull @.str.1, i32 noundef 303, ptr noundef %2644, ptr noundef %2646, ptr noundef %2648, i32 noundef %2649) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2651:                                             ; preds = %2621
  %2652 = load i32, ptr @test_count, align 4, !tbaa !5
  %2653 = add nsw i32 %2652, 1
  store i32 %2653, ptr @test_count, align 4, !tbaa !5
  %2654 = call i32 @s2n_record_min_write_payload_size(ptr noundef nonnull %1828, ptr noundef nonnull %20) #11
  %2655 = call zeroext i1 @s2n_result_is_ok(i32 %2654)
  br i1 %2655, label %2678, label %2656

2656:                                             ; preds = %2651
  %2657 = load i32, ptr %1043, align 4, !tbaa !5
  %2658 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2659 = call i32 @s2n_print_stacktrace(ptr noundef %2658) #11
  %2660 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2661 = trunc nuw i8 %2660 to i1
  br i1 %2661, label %2662, label %2666

2662:                                             ; preds = %2656
  %2663 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2664 = call i32 @fileno(ptr noundef %2663) #11
  %2665 = call i32 @isatty(i32 noundef %2664) #11
  %.not656 = icmp eq i32 %2665, 0
  br i1 %.not656, label %2666, label %2667

2666:                                             ; preds = %2662, %2656
  br label %2667

2667:                                             ; preds = %2662, %2666
  %.str.5.sink1644 = phi ptr [ @.str.5, %2666 ], [ @.str.2, %2662 ]
  store i32 %2657, ptr %1043, align 4, !tbaa !5
  %2668 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2669 = load i32, ptr @test_count, align 4, !tbaa !5
  %2670 = load i32, ptr %989, align 4, !tbaa !5
  %2671 = call ptr @s2n_strerror(i32 noundef %2670, ptr noundef nonnull @.str.4) #11
  %2672 = load i32, ptr %989, align 4, !tbaa !5
  %2673 = call ptr @s2n_strerror_debug(i32 noundef %2672, ptr noundef nonnull @.str.4) #11
  %2674 = load i32, ptr %1043, align 4, !tbaa !5
  %2675 = call ptr @strerror(i32 noundef %2674) #11
  %2676 = load i32, ptr %1043, align 4, !tbaa !5
  %2677 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2668, ptr noundef nonnull %.str.5.sink1644, i32 noundef %2669, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.1, i32 noundef 305, ptr noundef %2671, ptr noundef %2673, ptr noundef %2675, i32 noundef %2676) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2678:                                             ; preds = %2651
  %2679 = load i16, ptr %20, align 2, !tbaa !62
  %2680 = zext i16 %2679 to i32
  store i32 %2680, ptr %2193, align 8, !tbaa !60
  %2681 = load i32, ptr @test_count, align 4, !tbaa !5
  %2682 = add nsw i32 %2681, 1
  store i32 %2682, ptr @test_count, align 4, !tbaa !5
  %2683 = icmp eq i16 %2679, 1398
  br i1 %2683, label %2706, label %2684

2684:                                             ; preds = %2678
  %2685 = load i32, ptr %1043, align 4, !tbaa !5
  %2686 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2687 = call i32 @s2n_print_stacktrace(ptr noundef %2686) #11
  %2688 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2689 = trunc nuw i8 %2688 to i1
  br i1 %2689, label %2690, label %2694

2690:                                             ; preds = %2684
  %2691 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2692 = call i32 @fileno(ptr noundef %2691) #11
  %2693 = call i32 @isatty(i32 noundef %2692) #11
  %.not657 = icmp eq i32 %2693, 0
  br i1 %.not657, label %2694, label %2695

2694:                                             ; preds = %2690, %2684
  br label %2695

2695:                                             ; preds = %2690, %2694
  %.str.5.sink1653 = phi ptr [ @.str.5, %2694 ], [ @.str.2, %2690 ]
  store i32 %2685, ptr %1043, align 4, !tbaa !5
  %2696 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2697 = load i32, ptr @test_count, align 4, !tbaa !5
  %2698 = load i32, ptr %989, align 4, !tbaa !5
  %2699 = call ptr @s2n_strerror(i32 noundef %2698, ptr noundef nonnull @.str.4) #11
  %2700 = load i32, ptr %989, align 4, !tbaa !5
  %2701 = call ptr @s2n_strerror_debug(i32 noundef %2700, ptr noundef nonnull @.str.4) #11
  %2702 = load i32, ptr %1043, align 4, !tbaa !5
  %2703 = call ptr @strerror(i32 noundef %2702) #11
  %2704 = load i32, ptr %1043, align 4, !tbaa !5
  %2705 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2696, ptr noundef nonnull %.str.5.sink1653, i32 noundef %2697, ptr noundef nonnull @.str.57, ptr noundef nonnull @.str.1, i32 noundef 309, ptr noundef %2699, ptr noundef %2701, ptr noundef %2703, i32 noundef %2704) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2706:                                             ; preds = %2678
  %2707 = add nsw i32 %2681, 2
  store i32 %2707, ptr @test_count, align 4, !tbaa !5
  %2708 = call i32 @s2n_record_write(ptr noundef nonnull %1828, i8 noundef zeroext 23, ptr noundef nonnull %5) #11
  %2709 = call zeroext i1 @s2n_result_is_ok(i32 %2708)
  br i1 %2709, label %2732, label %2710

2710:                                             ; preds = %2706
  %2711 = load i32, ptr %1043, align 4, !tbaa !5
  %2712 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2713 = call i32 @s2n_print_stacktrace(ptr noundef %2712) #11
  %2714 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2715 = trunc nuw i8 %2714 to i1
  br i1 %2715, label %2716, label %2720

2716:                                             ; preds = %2710
  %2717 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2718 = call i32 @fileno(ptr noundef %2717) #11
  %2719 = call i32 @isatty(i32 noundef %2718) #11
  %.not658 = icmp eq i32 %2719, 0
  br i1 %.not658, label %2720, label %2721

2720:                                             ; preds = %2716, %2710
  br label %2721

2721:                                             ; preds = %2716, %2720
  %.str.5.sink1662 = phi ptr [ @.str.5, %2720 ], [ @.str.2, %2716 ]
  store i32 %2711, ptr %1043, align 4, !tbaa !5
  %2722 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2723 = load i32, ptr @test_count, align 4, !tbaa !5
  %2724 = load i32, ptr %989, align 4, !tbaa !5
  %2725 = call ptr @s2n_strerror(i32 noundef %2724, ptr noundef nonnull @.str.4) #11
  %2726 = load i32, ptr %989, align 4, !tbaa !5
  %2727 = call ptr @s2n_strerror_debug(i32 noundef %2726, ptr noundef nonnull @.str.4) #11
  %2728 = load i32, ptr %1043, align 4, !tbaa !5
  %2729 = call ptr @strerror(i32 noundef %2728) #11
  %2730 = load i32, ptr %1043, align 4, !tbaa !5
  %2731 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2722, ptr noundef nonnull %.str.5.sink1662, i32 noundef %2723, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.1, i32 noundef 311, ptr noundef %2725, ptr noundef %2727, ptr noundef %2729, i32 noundef %2730) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2732:                                             ; preds = %2706
  %2733 = load i32, ptr %2246, align 4, !tbaa !65
  %2734 = load i32, ptr %2248, align 8, !tbaa !66
  %2735 = sub i32 %2733, %2734
  %2736 = load i32, ptr @test_count, align 4, !tbaa !5
  %2737 = add nsw i32 %2736, 1
  store i32 %2737, ptr @test_count, align 4, !tbaa !5
  %2738 = and i32 %2735, 65535
  %2739 = icmp ult i32 %2738, 1421
  br i1 %2739, label %2762, label %2740

2740:                                             ; preds = %2732
  %2741 = load i32, ptr %1043, align 4, !tbaa !5
  %2742 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2743 = call i32 @s2n_print_stacktrace(ptr noundef %2742) #11
  %2744 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2745 = trunc nuw i8 %2744 to i1
  br i1 %2745, label %2746, label %2750

2746:                                             ; preds = %2740
  %2747 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2748 = call i32 @fileno(ptr noundef %2747) #11
  %2749 = call i32 @isatty(i32 noundef %2748) #11
  %.not659 = icmp eq i32 %2749, 0
  br i1 %.not659, label %2750, label %2751

2750:                                             ; preds = %2746, %2740
  br label %2751

2751:                                             ; preds = %2746, %2750
  %.str.5.sink1671 = phi ptr [ @.str.5, %2750 ], [ @.str.2, %2746 ]
  store i32 %2741, ptr %1043, align 4, !tbaa !5
  %2752 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2753 = load i32, ptr @test_count, align 4, !tbaa !5
  %2754 = load i32, ptr %989, align 4, !tbaa !5
  %2755 = call ptr @s2n_strerror(i32 noundef %2754, ptr noundef nonnull @.str.4) #11
  %2756 = load i32, ptr %989, align 4, !tbaa !5
  %2757 = call ptr @s2n_strerror_debug(i32 noundef %2756, ptr noundef nonnull @.str.4) #11
  %2758 = load i32, ptr %1043, align 4, !tbaa !5
  %2759 = call ptr @strerror(i32 noundef %2758) #11
  %2760 = load i32, ptr %1043, align 4, !tbaa !5
  %2761 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2752, ptr noundef nonnull %.str.5.sink1671, i32 noundef %2753, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 313, ptr noundef %2755, ptr noundef %2757, ptr noundef %2759, i32 noundef %2760) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2762:                                             ; preds = %2732
  %2763 = add nsw i32 %2736, 2
  store i32 %2763, ptr @test_count, align 4, !tbaa !5
  %2764 = load ptr, ptr %1935, align 8, !tbaa !67
  %2765 = getelementptr inbounds i8, ptr %2764, i64 3
  %2766 = load i8, ptr %2765, align 1, !tbaa !59
  %2767 = zext i8 %2766 to i32
  %2768 = shl nuw nsw i32 %2767, 8
  %2769 = getelementptr inbounds i8, ptr %2764, i64 4
  %2770 = load i8, ptr %2769, align 1, !tbaa !59
  %2771 = zext i8 %2770 to i32
  %2772 = or disjoint i32 %2768, %2771
  %2773 = add nsw i32 %2738, -5
  %2774 = icmp eq i32 %2772, %2773
  br i1 %2774, label %2797, label %2775

2775:                                             ; preds = %2762
  %2776 = load i32, ptr %1043, align 4, !tbaa !5
  %2777 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2778 = call i32 @s2n_print_stacktrace(ptr noundef %2777) #11
  %2779 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2780 = trunc nuw i8 %2779 to i1
  br i1 %2780, label %2781, label %2785

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

2785:                                             ; preds = %2781, %2775
  br label %2786

2786:                                             ; preds = %2781, %2785
  %.str.5.sink1680 = phi ptr [ @.str.5, %2785 ], [ @.str.2, %2781 ]
  store i32 %2776, ptr %1043, align 4, !tbaa !5
  %2787 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2788 = load i32, ptr @test_count, align 4, !tbaa !5
  %2789 = load i32, ptr %989, align 4, !tbaa !5
  %2790 = call ptr @s2n_strerror(i32 noundef %2789, ptr noundef nonnull @.str.4) #11
  %2791 = load i32, ptr %989, align 4, !tbaa !5
  %2792 = call ptr @s2n_strerror_debug(i32 noundef %2791, ptr noundef nonnull @.str.4) #11
  %2793 = load i32, ptr %1043, align 4, !tbaa !5
  %2794 = call ptr @strerror(i32 noundef %2793) #11
  %2795 = load i32, ptr %1043, align 4, !tbaa !5
  %2796 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2787, ptr noundef nonnull %.str.5.sink1680, i32 noundef %2788, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.1, i32 noundef 314, ptr noundef %2790, ptr noundef %2792, ptr noundef %2794, i32 noundef %2795) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2797:                                             ; preds = %2762
  %2798 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_chacha20_poly1305, i64 56), align 8, !tbaa !68
  %2799 = call zeroext i1 %2798() #11
  br i1 %2799, label %2800, label %3084

2800:                                             ; preds = %2797
  %2801 = load i32, ptr @test_count, align 4, !tbaa !5
  %2802 = add nsw i32 %2801, 1
  store i32 %2802, ptr @test_count, align 4, !tbaa !5
  %2803 = call i32 @destroy_server_keys(ptr noundef nonnull %1828)
  %2804 = icmp eq i32 %2803, -1
  br i1 %2804, label %2805, label %2827

2805:                                             ; preds = %2800
  %2806 = load i32, ptr %1043, align 4, !tbaa !5
  %2807 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2808 = call i32 @s2n_print_stacktrace(ptr noundef %2807) #11
  %2809 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2810 = trunc nuw i8 %2809 to i1
  br i1 %2810, label %2811, label %2815

2811:                                             ; preds = %2805
  %2812 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2813 = call i32 @fileno(ptr noundef %2812) #11
  %2814 = call i32 @isatty(i32 noundef %2813) #11
  %.not743 = icmp eq i32 %2814, 0
  br i1 %.not743, label %2815, label %2816

2815:                                             ; preds = %2811, %2805
  br label %2816

2816:                                             ; preds = %2811, %2815
  %.str.5.sink1689 = phi ptr [ @.str.5, %2815 ], [ @.str.2, %2811 ]
  store i32 %2806, ptr %1043, align 4, !tbaa !5
  %2817 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2818 = load i32, ptr @test_count, align 4, !tbaa !5
  %2819 = load i32, ptr %989, align 4, !tbaa !5
  %2820 = call ptr @s2n_strerror(i32 noundef %2819, ptr noundef nonnull @.str.4) #11
  %2821 = load i32, ptr %989, align 4, !tbaa !5
  %2822 = call ptr @s2n_strerror_debug(i32 noundef %2821, ptr noundef nonnull @.str.4) #11
  %2823 = load i32, ptr %1043, align 4, !tbaa !5
  %2824 = call ptr @strerror(i32 noundef %2823) #11
  %2825 = load i32, ptr %1043, align 4, !tbaa !5
  %2826 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2817, ptr noundef nonnull %.str.5.sink1689, i32 noundef %2818, ptr noundef nonnull @.str.56, ptr noundef nonnull @.str.1, i32 noundef 319, ptr noundef %2820, ptr noundef %2822, ptr noundef %2824, i32 noundef %2825) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2827:                                             ; preds = %2800
  %2828 = load i32, ptr @test_count, align 4, !tbaa !5
  %2829 = add nsw i32 %2828, 1
  store i32 %2829, ptr @test_count, align 4, !tbaa !5
  %2830 = call i32 @s2n_connection_wipe(ptr noundef nonnull %1828) #11
  %2831 = icmp eq i32 %2830, -1
  br i1 %2831, label %2832, label %2854

2832:                                             ; preds = %2827
  %2833 = load i32, ptr %1043, align 4, !tbaa !5
  %2834 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2835 = call i32 @s2n_print_stacktrace(ptr noundef %2834) #11
  %2836 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2837 = trunc nuw i8 %2836 to i1
  br i1 %2837, label %2838, label %2842

2838:                                             ; preds = %2832
  %2839 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2840 = call i32 @fileno(ptr noundef %2839) #11
  %2841 = call i32 @isatty(i32 noundef %2840) #11
  %.not742 = icmp eq i32 %2841, 0
  br i1 %.not742, label %2842, label %2843

2842:                                             ; preds = %2838, %2832
  br label %2843

2843:                                             ; preds = %2838, %2842
  %.str.5.sink1698 = phi ptr [ @.str.5, %2842 ], [ @.str.2, %2838 ]
  store i32 %2833, ptr %1043, align 4, !tbaa !5
  %2844 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2845 = load i32, ptr @test_count, align 4, !tbaa !5
  %2846 = load i32, ptr %989, align 4, !tbaa !5
  %2847 = call ptr @s2n_strerror(i32 noundef %2846, ptr noundef nonnull @.str.4) #11
  %2848 = load i32, ptr %989, align 4, !tbaa !5
  %2849 = call ptr @s2n_strerror_debug(i32 noundef %2848, ptr noundef nonnull @.str.4) #11
  %2850 = load i32, ptr %1043, align 4, !tbaa !5
  %2851 = call ptr @strerror(i32 noundef %2850) #11
  %2852 = load i32, ptr %1043, align 4, !tbaa !5
  %2853 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2844, ptr noundef nonnull %.str.5.sink1698, i32 noundef %2845, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 320, ptr noundef %2847, ptr noundef %2849, ptr noundef %2851, i32 noundef %2852) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2854:                                             ; preds = %2827
  %2855 = load ptr, ptr %1962, align 8, !tbaa !64
  %2856 = load ptr, ptr %2855, align 8, !tbaa !44
  %2857 = getelementptr inbounds i8, ptr %2856, i64 48
  store ptr @s2n_record_alg_chacha20_poly1305, ptr %2857, align 8, !tbaa !49
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %23) #11
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(32) %23, ptr noundef nonnull align 16 dereferenceable(32) @__const.main.chacha20_poly1305_key_data, i64 32, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %24) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %24, i8 0, i64 24, i1 false)
  %2858 = load i32, ptr @test_count, align 4, !tbaa !5
  %2859 = add nsw i32 %2858, 1
  store i32 %2859, ptr @test_count, align 4, !tbaa !5
  %2860 = call i32 @s2n_blob_init(ptr noundef nonnull %24, ptr noundef nonnull %23, i32 noundef 32) #11
  %2861 = icmp eq i32 %2860, -1
  br i1 %2861, label %2862, label %2884

2862:                                             ; preds = %2854
  %2863 = load i32, ptr %1043, align 4, !tbaa !5
  %2864 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2865 = call i32 @s2n_print_stacktrace(ptr noundef %2864) #11
  %2866 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2867 = trunc nuw i8 %2866 to i1
  br i1 %2867, label %2868, label %2872

2868:                                             ; preds = %2862
  %2869 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2870 = call i32 @fileno(ptr noundef %2869) #11
  %2871 = call i32 @isatty(i32 noundef %2870) #11
  %.not741 = icmp eq i32 %2871, 0
  br i1 %.not741, label %2872, label %2873

2872:                                             ; preds = %2868, %2862
  br label %2873

2873:                                             ; preds = %2868, %2872
  %.str.5.sink1707 = phi ptr [ @.str.5, %2872 ], [ @.str.2, %2868 ]
  store i32 %2863, ptr %1043, align 4, !tbaa !5
  %2874 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2875 = load i32, ptr @test_count, align 4, !tbaa !5
  %2876 = load i32, ptr %989, align 4, !tbaa !5
  %2877 = call ptr @s2n_strerror(i32 noundef %2876, ptr noundef nonnull @.str.4) #11
  %2878 = load i32, ptr %989, align 4, !tbaa !5
  %2879 = call ptr @s2n_strerror_debug(i32 noundef %2878, ptr noundef nonnull @.str.4) #11
  %2880 = load i32, ptr %1043, align 4, !tbaa !5
  %2881 = call ptr @strerror(i32 noundef %2880) #11
  %2882 = load i32, ptr %1043, align 4, !tbaa !5
  %2883 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2874, ptr noundef nonnull %.str.5.sink1707, i32 noundef %2875, ptr noundef nonnull @.str.58, ptr noundef nonnull @.str.1, i32 noundef 325, ptr noundef %2877, ptr noundef %2879, ptr noundef %2881, i32 noundef %2882) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2884:                                             ; preds = %2854
  %2885 = load i32, ptr @test_count, align 4, !tbaa !5
  %2886 = add nsw i32 %2885, 1
  store i32 %2886, ptr @test_count, align 4, !tbaa !5
  %2887 = call i32 @setup_server_keys(ptr noundef nonnull %1828, ptr noundef nonnull %24)
  %2888 = icmp eq i32 %2887, -1
  br i1 %2888, label %2889, label %2911

2889:                                             ; preds = %2884
  %2890 = load i32, ptr %1043, align 4, !tbaa !5
  %2891 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2892 = call i32 @s2n_print_stacktrace(ptr noundef %2891) #11
  %2893 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2894 = trunc nuw i8 %2893 to i1
  br i1 %2894, label %2895, label %2899

2895:                                             ; preds = %2889
  %2896 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2897 = call i32 @fileno(ptr noundef %2896) #11
  %2898 = call i32 @isatty(i32 noundef %2897) #11
  %.not740 = icmp eq i32 %2898, 0
  br i1 %.not740, label %2899, label %2900

2899:                                             ; preds = %2895, %2889
  br label %2900

2900:                                             ; preds = %2895, %2899
  %.str.5.sink1716 = phi ptr [ @.str.5, %2899 ], [ @.str.2, %2895 ]
  store i32 %2890, ptr %1043, align 4, !tbaa !5
  %2901 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2902 = load i32, ptr @test_count, align 4, !tbaa !5
  %2903 = load i32, ptr %989, align 4, !tbaa !5
  %2904 = call ptr @s2n_strerror(i32 noundef %2903, ptr noundef nonnull @.str.4) #11
  %2905 = load i32, ptr %989, align 4, !tbaa !5
  %2906 = call ptr @s2n_strerror_debug(i32 noundef %2905, ptr noundef nonnull @.str.4) #11
  %2907 = load i32, ptr %1043, align 4, !tbaa !5
  %2908 = call ptr @strerror(i32 noundef %2907) #11
  %2909 = load i32, ptr %1043, align 4, !tbaa !5
  %2910 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2901, ptr noundef nonnull %.str.5.sink1716, i32 noundef %2902, ptr noundef nonnull @.str.59, ptr noundef nonnull @.str.1, i32 noundef 327, ptr noundef %2904, ptr noundef %2906, ptr noundef %2908, i32 noundef %2909) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2911:                                             ; preds = %2884
  %2912 = load i32, ptr @test_count, align 4, !tbaa !5
  %2913 = add nsw i32 %2912, 1
  store i32 %2913, ptr @test_count, align 4, !tbaa !5
  %2914 = call i32 @s2n_stuffer_wipe(ptr noundef nonnull %1935) #11
  %2915 = icmp eq i32 %2914, -1
  br i1 %2915, label %2916, label %2938

2916:                                             ; preds = %2911
  %2917 = load i32, ptr %1043, align 4, !tbaa !5
  %2918 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2919 = call i32 @s2n_print_stacktrace(ptr noundef %2918) #11
  %2920 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2921 = trunc nuw i8 %2920 to i1
  br i1 %2921, label %2922, label %2926

2922:                                             ; preds = %2916
  %2923 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2924 = call i32 @fileno(ptr noundef %2923) #11
  %2925 = call i32 @isatty(i32 noundef %2924) #11
  %.not739 = icmp eq i32 %2925, 0
  br i1 %.not739, label %2926, label %2927

2926:                                             ; preds = %2922, %2916
  br label %2927

2927:                                             ; preds = %2922, %2926
  %.str.5.sink1725 = phi ptr [ @.str.5, %2926 ], [ @.str.2, %2922 ]
  store i32 %2917, ptr %1043, align 4, !tbaa !5
  %2928 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2929 = load i32, ptr @test_count, align 4, !tbaa !5
  %2930 = load i32, ptr %989, align 4, !tbaa !5
  %2931 = call ptr @s2n_strerror(i32 noundef %2930, ptr noundef nonnull @.str.4) #11
  %2932 = load i32, ptr %989, align 4, !tbaa !5
  %2933 = call ptr @s2n_strerror_debug(i32 noundef %2932, ptr noundef nonnull @.str.4) #11
  %2934 = load i32, ptr %1043, align 4, !tbaa !5
  %2935 = call ptr @strerror(i32 noundef %2934) #11
  %2936 = load i32, ptr %1043, align 4, !tbaa !5
  %2937 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2928, ptr noundef nonnull %.str.5.sink1725, i32 noundef %2929, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 328, ptr noundef %2931, ptr noundef %2933, ptr noundef %2935, i32 noundef %2936) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2938:                                             ; preds = %2911
  %2939 = load i32, ptr @test_count, align 4, !tbaa !5
  %2940 = add nsw i32 %2939, 1
  store i32 %2940, ptr @test_count, align 4, !tbaa !5
  %2941 = call i32 @s2n_record_min_write_payload_size(ptr noundef nonnull %1828, ptr noundef nonnull %20) #11
  %2942 = call zeroext i1 @s2n_result_is_ok(i32 %2941)
  br i1 %2942, label %2965, label %2943

2943:                                             ; preds = %2938
  %2944 = load i32, ptr %1043, align 4, !tbaa !5
  %2945 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2946 = call i32 @s2n_print_stacktrace(ptr noundef %2945) #11
  %2947 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2948 = trunc nuw i8 %2947 to i1
  br i1 %2948, label %2949, label %2953

2949:                                             ; preds = %2943
  %2950 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2951 = call i32 @fileno(ptr noundef %2950) #11
  %2952 = call i32 @isatty(i32 noundef %2951) #11
  %.not661 = icmp eq i32 %2952, 0
  br i1 %.not661, label %2953, label %2954

2953:                                             ; preds = %2949, %2943
  br label %2954

2954:                                             ; preds = %2949, %2953
  %.str.5.sink1734 = phi ptr [ @.str.5, %2953 ], [ @.str.2, %2949 ]
  store i32 %2944, ptr %1043, align 4, !tbaa !5
  %2955 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2956 = load i32, ptr @test_count, align 4, !tbaa !5
  %2957 = load i32, ptr %989, align 4, !tbaa !5
  %2958 = call ptr @s2n_strerror(i32 noundef %2957, ptr noundef nonnull @.str.4) #11
  %2959 = load i32, ptr %989, align 4, !tbaa !5
  %2960 = call ptr @s2n_strerror_debug(i32 noundef %2959, ptr noundef nonnull @.str.4) #11
  %2961 = load i32, ptr %1043, align 4, !tbaa !5
  %2962 = call ptr @strerror(i32 noundef %2961) #11
  %2963 = load i32, ptr %1043, align 4, !tbaa !5
  %2964 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2955, ptr noundef nonnull %.str.5.sink1734, i32 noundef %2956, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.1, i32 noundef 330, ptr noundef %2958, ptr noundef %2960, ptr noundef %2962, i32 noundef %2963) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2965:                                             ; preds = %2938
  %2966 = load i32, ptr @test_count, align 4, !tbaa !5
  %2967 = add nsw i32 %2966, 1
  store i32 %2967, ptr @test_count, align 4, !tbaa !5
  %2968 = load i16, ptr %20, align 2, !tbaa !62
  %2969 = icmp eq i16 %2968, 1399
  br i1 %2969, label %2992, label %2970

2970:                                             ; preds = %2965
  %2971 = load i32, ptr %1043, align 4, !tbaa !5
  %2972 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2973 = call i32 @s2n_print_stacktrace(ptr noundef %2972) #11
  %2974 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2975 = trunc nuw i8 %2974 to i1
  br i1 %2975, label %2976, label %2980

2976:                                             ; preds = %2970
  %2977 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2978 = call i32 @fileno(ptr noundef %2977) #11
  %2979 = call i32 @isatty(i32 noundef %2978) #11
  %.not662 = icmp eq i32 %2979, 0
  br i1 %.not662, label %2980, label %2981

2980:                                             ; preds = %2976, %2970
  br label %2981

2981:                                             ; preds = %2976, %2980
  %.str.5.sink1743 = phi ptr [ @.str.5, %2980 ], [ @.str.2, %2976 ]
  store i32 %2971, ptr %1043, align 4, !tbaa !5
  %2982 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2983 = load i32, ptr @test_count, align 4, !tbaa !5
  %2984 = load i32, ptr %989, align 4, !tbaa !5
  %2985 = call ptr @s2n_strerror(i32 noundef %2984, ptr noundef nonnull @.str.4) #11
  %2986 = load i32, ptr %989, align 4, !tbaa !5
  %2987 = call ptr @s2n_strerror_debug(i32 noundef %2986, ptr noundef nonnull @.str.4) #11
  %2988 = load i32, ptr %1043, align 4, !tbaa !5
  %2989 = call ptr @strerror(i32 noundef %2988) #11
  %2990 = load i32, ptr %1043, align 4, !tbaa !5
  %2991 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2982, ptr noundef nonnull %.str.5.sink1743, i32 noundef %2983, ptr noundef nonnull @.str.60, ptr noundef nonnull @.str.1, i32 noundef 331, ptr noundef %2985, ptr noundef %2987, ptr noundef %2989, i32 noundef %2990) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2992:                                             ; preds = %2965
  store i32 1399, ptr %2193, align 8, !tbaa !60
  %2993 = add nsw i32 %2966, 2
  store i32 %2993, ptr @test_count, align 4, !tbaa !5
  %2994 = call i32 @s2n_record_write(ptr noundef nonnull %1828, i8 noundef zeroext 23, ptr noundef nonnull %5) #11
  %2995 = call zeroext i1 @s2n_result_is_ok(i32 %2994)
  br i1 %2995, label %3018, label %2996

2996:                                             ; preds = %2992
  %2997 = load i32, ptr %1043, align 4, !tbaa !5
  %2998 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2999 = call i32 @s2n_print_stacktrace(ptr noundef %2998) #11
  %3000 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3001 = trunc nuw i8 %3000 to i1
  br i1 %3001, label %3002, label %3006

3002:                                             ; preds = %2996
  %3003 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3004 = call i32 @fileno(ptr noundef %3003) #11
  %3005 = call i32 @isatty(i32 noundef %3004) #11
  %.not663 = icmp eq i32 %3005, 0
  br i1 %.not663, label %3006, label %3007

3006:                                             ; preds = %3002, %2996
  br label %3007

3007:                                             ; preds = %3002, %3006
  %.str.5.sink1752 = phi ptr [ @.str.5, %3006 ], [ @.str.2, %3002 ]
  store i32 %2997, ptr %1043, align 4, !tbaa !5
  %3008 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3009 = load i32, ptr @test_count, align 4, !tbaa !5
  %3010 = load i32, ptr %989, align 4, !tbaa !5
  %3011 = call ptr @s2n_strerror(i32 noundef %3010, ptr noundef nonnull @.str.4) #11
  %3012 = load i32, ptr %989, align 4, !tbaa !5
  %3013 = call ptr @s2n_strerror_debug(i32 noundef %3012, ptr noundef nonnull @.str.4) #11
  %3014 = load i32, ptr %1043, align 4, !tbaa !5
  %3015 = call ptr @strerror(i32 noundef %3014) #11
  %3016 = load i32, ptr %1043, align 4, !tbaa !5
  %3017 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3008, ptr noundef nonnull %.str.5.sink1752, i32 noundef %3009, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.1, i32 noundef 334, ptr noundef %3011, ptr noundef %3013, ptr noundef %3015, i32 noundef %3016) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3018:                                             ; preds = %2992
  %3019 = load i32, ptr %2246, align 4, !tbaa !65
  %3020 = load i32, ptr %2248, align 8, !tbaa !66
  %3021 = sub i32 %3019, %3020
  %3022 = load i32, ptr @test_count, align 4, !tbaa !5
  %3023 = add nsw i32 %3022, 1
  store i32 %3023, ptr @test_count, align 4, !tbaa !5
  %3024 = and i32 %3021, 65535
  %3025 = icmp ult i32 %3024, 1421
  br i1 %3025, label %3048, label %3026

3026:                                             ; preds = %3018
  %3027 = load i32, ptr %1043, align 4, !tbaa !5
  %3028 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3029 = call i32 @s2n_print_stacktrace(ptr noundef %3028) #11
  %3030 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3031 = trunc nuw i8 %3030 to i1
  br i1 %3031, label %3032, label %3036

3032:                                             ; preds = %3026
  %3033 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3034 = call i32 @fileno(ptr noundef %3033) #11
  %3035 = call i32 @isatty(i32 noundef %3034) #11
  %.not664 = icmp eq i32 %3035, 0
  br i1 %.not664, label %3036, label %3037

3036:                                             ; preds = %3032, %3026
  br label %3037

3037:                                             ; preds = %3032, %3036
  %.str.5.sink1761 = phi ptr [ @.str.5, %3036 ], [ @.str.2, %3032 ]
  store i32 %3027, ptr %1043, align 4, !tbaa !5
  %3038 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3039 = load i32, ptr @test_count, align 4, !tbaa !5
  %3040 = load i32, ptr %989, align 4, !tbaa !5
  %3041 = call ptr @s2n_strerror(i32 noundef %3040, ptr noundef nonnull @.str.4) #11
  %3042 = load i32, ptr %989, align 4, !tbaa !5
  %3043 = call ptr @s2n_strerror_debug(i32 noundef %3042, ptr noundef nonnull @.str.4) #11
  %3044 = load i32, ptr %1043, align 4, !tbaa !5
  %3045 = call ptr @strerror(i32 noundef %3044) #11
  %3046 = load i32, ptr %1043, align 4, !tbaa !5
  %3047 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3038, ptr noundef nonnull %.str.5.sink1761, i32 noundef %3039, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 336, ptr noundef %3041, ptr noundef %3043, ptr noundef %3045, i32 noundef %3046) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3048:                                             ; preds = %3018
  %3049 = add nsw i32 %3022, 2
  store i32 %3049, ptr @test_count, align 4, !tbaa !5
  %3050 = load ptr, ptr %1935, align 8, !tbaa !67
  %3051 = getelementptr inbounds i8, ptr %3050, i64 3
  %3052 = load i8, ptr %3051, align 1, !tbaa !59
  %3053 = zext i8 %3052 to i32
  %3054 = shl nuw nsw i32 %3053, 8
  %3055 = getelementptr inbounds i8, ptr %3050, i64 4
  %3056 = load i8, ptr %3055, align 1, !tbaa !59
  %3057 = zext i8 %3056 to i32
  %3058 = or disjoint i32 %3054, %3057
  %3059 = add nsw i32 %3024, -5
  %3060 = icmp eq i32 %3058, %3059
  br i1 %3060, label %3083, label %3061

3061:                                             ; preds = %3048
  %3062 = load i32, ptr %1043, align 4, !tbaa !5
  %3063 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3064 = call i32 @s2n_print_stacktrace(ptr noundef %3063) #11
  %3065 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3066 = trunc nuw i8 %3065 to i1
  br i1 %3066, label %3067, label %3071

3067:                                             ; preds = %3061
  %3068 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3069 = call i32 @fileno(ptr noundef %3068) #11
  %3070 = call i32 @isatty(i32 noundef %3069) #11
  %.not665 = icmp eq i32 %3070, 0
  br i1 %.not665, label %3071, label %3072

3071:                                             ; preds = %3067, %3061
  br label %3072

3072:                                             ; preds = %3067, %3071
  %.str.5.sink1770 = phi ptr [ @.str.5, %3071 ], [ @.str.2, %3067 ]
  store i32 %3062, ptr %1043, align 4, !tbaa !5
  %3073 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3074 = load i32, ptr @test_count, align 4, !tbaa !5
  %3075 = load i32, ptr %989, align 4, !tbaa !5
  %3076 = call ptr @s2n_strerror(i32 noundef %3075, ptr noundef nonnull @.str.4) #11
  %3077 = load i32, ptr %989, align 4, !tbaa !5
  %3078 = call ptr @s2n_strerror_debug(i32 noundef %3077, ptr noundef nonnull @.str.4) #11
  %3079 = load i32, ptr %1043, align 4, !tbaa !5
  %3080 = call ptr @strerror(i32 noundef %3079) #11
  %3081 = load i32, ptr %1043, align 4, !tbaa !5
  %3082 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3073, ptr noundef nonnull %.str.5.sink1770, i32 noundef %3074, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.1, i32 noundef 337, ptr noundef %3076, ptr noundef %3078, ptr noundef %3080, i32 noundef %3081) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3083:                                             ; preds = %3048
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %24) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #11
  br label %3084

3084:                                             ; preds = %3083, %2797
  %3085 = call zeroext i1 %2798() #11
  br i1 %3085, label %3086, label %3370

3086:                                             ; preds = %3084
  %3087 = load i32, ptr @test_count, align 4, !tbaa !5
  %3088 = add nsw i32 %3087, 1
  store i32 %3088, ptr @test_count, align 4, !tbaa !5
  %3089 = call i32 @destroy_server_keys(ptr noundef nonnull %1828)
  %3090 = icmp eq i32 %3089, -1
  br i1 %3090, label %3091, label %3113

3091:                                             ; preds = %3086
  %3092 = load i32, ptr %1043, align 4, !tbaa !5
  %3093 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3094 = call i32 @s2n_print_stacktrace(ptr noundef %3093) #11
  %3095 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3096 = trunc nuw i8 %3095 to i1
  br i1 %3096, label %3097, label %3101

3097:                                             ; preds = %3091
  %3098 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3099 = call i32 @fileno(ptr noundef %3098) #11
  %3100 = call i32 @isatty(i32 noundef %3099) #11
  %.not738 = icmp eq i32 %3100, 0
  br i1 %.not738, label %3101, label %3102

3101:                                             ; preds = %3097, %3091
  br label %3102

3102:                                             ; preds = %3097, %3101
  %.str.5.sink1779 = phi ptr [ @.str.5, %3101 ], [ @.str.2, %3097 ]
  store i32 %3092, ptr %1043, align 4, !tbaa !5
  %3103 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3104 = load i32, ptr @test_count, align 4, !tbaa !5
  %3105 = load i32, ptr %989, align 4, !tbaa !5
  %3106 = call ptr @s2n_strerror(i32 noundef %3105, ptr noundef nonnull @.str.4) #11
  %3107 = load i32, ptr %989, align 4, !tbaa !5
  %3108 = call ptr @s2n_strerror_debug(i32 noundef %3107, ptr noundef nonnull @.str.4) #11
  %3109 = load i32, ptr %1043, align 4, !tbaa !5
  %3110 = call ptr @strerror(i32 noundef %3109) #11
  %3111 = load i32, ptr %1043, align 4, !tbaa !5
  %3112 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3103, ptr noundef nonnull %.str.5.sink1779, i32 noundef %3104, ptr noundef nonnull @.str.56, ptr noundef nonnull @.str.1, i32 noundef 342, ptr noundef %3106, ptr noundef %3108, ptr noundef %3110, i32 noundef %3111) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3113:                                             ; preds = %3086
  %3114 = load i32, ptr @test_count, align 4, !tbaa !5
  %3115 = add nsw i32 %3114, 1
  store i32 %3115, ptr @test_count, align 4, !tbaa !5
  %3116 = call i32 @s2n_connection_wipe(ptr noundef nonnull %1828) #11
  %3117 = icmp eq i32 %3116, -1
  br i1 %3117, label %3118, label %3140

3118:                                             ; preds = %3113
  %3119 = load i32, ptr %1043, align 4, !tbaa !5
  %3120 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3121 = call i32 @s2n_print_stacktrace(ptr noundef %3120) #11
  %3122 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3123 = trunc nuw i8 %3122 to i1
  br i1 %3123, label %3124, label %3128

3124:                                             ; preds = %3118
  %3125 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3126 = call i32 @fileno(ptr noundef %3125) #11
  %3127 = call i32 @isatty(i32 noundef %3126) #11
  %.not737 = icmp eq i32 %3127, 0
  br i1 %.not737, label %3128, label %3129

3128:                                             ; preds = %3124, %3118
  br label %3129

3129:                                             ; preds = %3124, %3128
  %.str.5.sink1788 = phi ptr [ @.str.5, %3128 ], [ @.str.2, %3124 ]
  store i32 %3119, ptr %1043, align 4, !tbaa !5
  %3130 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3131 = load i32, ptr @test_count, align 4, !tbaa !5
  %3132 = load i32, ptr %989, align 4, !tbaa !5
  %3133 = call ptr @s2n_strerror(i32 noundef %3132, ptr noundef nonnull @.str.4) #11
  %3134 = load i32, ptr %989, align 4, !tbaa !5
  %3135 = call ptr @s2n_strerror_debug(i32 noundef %3134, ptr noundef nonnull @.str.4) #11
  %3136 = load i32, ptr %1043, align 4, !tbaa !5
  %3137 = call ptr @strerror(i32 noundef %3136) #11
  %3138 = load i32, ptr %1043, align 4, !tbaa !5
  %3139 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3130, ptr noundef nonnull %.str.5.sink1788, i32 noundef %3131, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 343, ptr noundef %3133, ptr noundef %3135, ptr noundef %3137, i32 noundef %3138) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3140:                                             ; preds = %3113
  store i8 34, ptr %1961, align 4, !tbaa !57
  %3141 = load ptr, ptr %1962, align 8, !tbaa !64
  %3142 = load ptr, ptr %3141, align 8, !tbaa !44
  %3143 = getelementptr inbounds i8, ptr %3142, i64 48
  store ptr @s2n_tls13_record_alg_chacha20_poly1305, ptr %3143, align 8, !tbaa !49
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %25) #11
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(32) %25, ptr noundef nonnull align 16 dereferenceable(32) @__const.main.chacha20_poly1305_key_data.61, i64 32, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %26) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %26, i8 0, i64 24, i1 false)
  %3144 = load i32, ptr @test_count, align 4, !tbaa !5
  %3145 = add nsw i32 %3144, 1
  store i32 %3145, ptr @test_count, align 4, !tbaa !5
  %3146 = call i32 @s2n_blob_init(ptr noundef nonnull %26, ptr noundef nonnull %25, i32 noundef 32) #11
  %3147 = icmp eq i32 %3146, -1
  br i1 %3147, label %3148, label %3170

3148:                                             ; preds = %3140
  %3149 = load i32, ptr %1043, align 4, !tbaa !5
  %3150 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3151 = call i32 @s2n_print_stacktrace(ptr noundef %3150) #11
  %3152 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3153 = trunc nuw i8 %3152 to i1
  br i1 %3153, label %3154, label %3158

3154:                                             ; preds = %3148
  %3155 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3156 = call i32 @fileno(ptr noundef %3155) #11
  %3157 = call i32 @isatty(i32 noundef %3156) #11
  %.not736 = icmp eq i32 %3157, 0
  br i1 %.not736, label %3158, label %3159

3158:                                             ; preds = %3154, %3148
  br label %3159

3159:                                             ; preds = %3154, %3158
  %.str.5.sink1797 = phi ptr [ @.str.5, %3158 ], [ @.str.2, %3154 ]
  store i32 %3149, ptr %1043, align 4, !tbaa !5
  %3160 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3161 = load i32, ptr @test_count, align 4, !tbaa !5
  %3162 = load i32, ptr %989, align 4, !tbaa !5
  %3163 = call ptr @s2n_strerror(i32 noundef %3162, ptr noundef nonnull @.str.4) #11
  %3164 = load i32, ptr %989, align 4, !tbaa !5
  %3165 = call ptr @s2n_strerror_debug(i32 noundef %3164, ptr noundef nonnull @.str.4) #11
  %3166 = load i32, ptr %1043, align 4, !tbaa !5
  %3167 = call ptr @strerror(i32 noundef %3166) #11
  %3168 = load i32, ptr %1043, align 4, !tbaa !5
  %3169 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3160, ptr noundef nonnull %.str.5.sink1797, i32 noundef %3161, ptr noundef nonnull @.str.58, ptr noundef nonnull @.str.1, i32 noundef 349, ptr noundef %3163, ptr noundef %3165, ptr noundef %3167, i32 noundef %3168) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3170:                                             ; preds = %3140
  %3171 = load i32, ptr @test_count, align 4, !tbaa !5
  %3172 = add nsw i32 %3171, 1
  store i32 %3172, ptr @test_count, align 4, !tbaa !5
  %3173 = call i32 @setup_server_keys(ptr noundef nonnull %1828, ptr noundef nonnull %26)
  %3174 = icmp eq i32 %3173, -1
  br i1 %3174, label %3175, label %3197

3175:                                             ; preds = %3170
  %3176 = load i32, ptr %1043, align 4, !tbaa !5
  %3177 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3178 = call i32 @s2n_print_stacktrace(ptr noundef %3177) #11
  %3179 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3180 = trunc nuw i8 %3179 to i1
  br i1 %3180, label %3181, label %3185

3181:                                             ; preds = %3175
  %3182 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3183 = call i32 @fileno(ptr noundef %3182) #11
  %3184 = call i32 @isatty(i32 noundef %3183) #11
  %.not735 = icmp eq i32 %3184, 0
  br i1 %.not735, label %3185, label %3186

3185:                                             ; preds = %3181, %3175
  br label %3186

3186:                                             ; preds = %3181, %3185
  %.str.5.sink1806 = phi ptr [ @.str.5, %3185 ], [ @.str.2, %3181 ]
  store i32 %3176, ptr %1043, align 4, !tbaa !5
  %3187 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3188 = load i32, ptr @test_count, align 4, !tbaa !5
  %3189 = load i32, ptr %989, align 4, !tbaa !5
  %3190 = call ptr @s2n_strerror(i32 noundef %3189, ptr noundef nonnull @.str.4) #11
  %3191 = load i32, ptr %989, align 4, !tbaa !5
  %3192 = call ptr @s2n_strerror_debug(i32 noundef %3191, ptr noundef nonnull @.str.4) #11
  %3193 = load i32, ptr %1043, align 4, !tbaa !5
  %3194 = call ptr @strerror(i32 noundef %3193) #11
  %3195 = load i32, ptr %1043, align 4, !tbaa !5
  %3196 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3187, ptr noundef nonnull %.str.5.sink1806, i32 noundef %3188, ptr noundef nonnull @.str.59, ptr noundef nonnull @.str.1, i32 noundef 351, ptr noundef %3190, ptr noundef %3192, ptr noundef %3194, i32 noundef %3195) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3197:                                             ; preds = %3170
  %3198 = load i32, ptr @test_count, align 4, !tbaa !5
  %3199 = add nsw i32 %3198, 1
  store i32 %3199, ptr @test_count, align 4, !tbaa !5
  %3200 = call i32 @s2n_stuffer_wipe(ptr noundef nonnull %1935) #11
  %3201 = icmp eq i32 %3200, -1
  br i1 %3201, label %3202, label %3224

3202:                                             ; preds = %3197
  %3203 = load i32, ptr %1043, align 4, !tbaa !5
  %3204 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3205 = call i32 @s2n_print_stacktrace(ptr noundef %3204) #11
  %3206 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3207 = trunc nuw i8 %3206 to i1
  br i1 %3207, label %3208, label %3212

3208:                                             ; preds = %3202
  %3209 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3210 = call i32 @fileno(ptr noundef %3209) #11
  %3211 = call i32 @isatty(i32 noundef %3210) #11
  %.not734 = icmp eq i32 %3211, 0
  br i1 %.not734, label %3212, label %3213

3212:                                             ; preds = %3208, %3202
  br label %3213

3213:                                             ; preds = %3208, %3212
  %.str.5.sink1815 = phi ptr [ @.str.5, %3212 ], [ @.str.2, %3208 ]
  store i32 %3203, ptr %1043, align 4, !tbaa !5
  %3214 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3215 = load i32, ptr @test_count, align 4, !tbaa !5
  %3216 = load i32, ptr %989, align 4, !tbaa !5
  %3217 = call ptr @s2n_strerror(i32 noundef %3216, ptr noundef nonnull @.str.4) #11
  %3218 = load i32, ptr %989, align 4, !tbaa !5
  %3219 = call ptr @s2n_strerror_debug(i32 noundef %3218, ptr noundef nonnull @.str.4) #11
  %3220 = load i32, ptr %1043, align 4, !tbaa !5
  %3221 = call ptr @strerror(i32 noundef %3220) #11
  %3222 = load i32, ptr %1043, align 4, !tbaa !5
  %3223 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3214, ptr noundef nonnull %.str.5.sink1815, i32 noundef %3215, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 352, ptr noundef %3217, ptr noundef %3219, ptr noundef %3221, i32 noundef %3222) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3224:                                             ; preds = %3197
  %3225 = load i32, ptr @test_count, align 4, !tbaa !5
  %3226 = add nsw i32 %3225, 1
  store i32 %3226, ptr @test_count, align 4, !tbaa !5
  %3227 = call i32 @s2n_record_min_write_payload_size(ptr noundef nonnull %1828, ptr noundef nonnull %20) #11
  %3228 = call zeroext i1 @s2n_result_is_ok(i32 %3227)
  br i1 %3228, label %3251, label %3229

3229:                                             ; preds = %3224
  %3230 = load i32, ptr %1043, align 4, !tbaa !5
  %3231 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3232 = call i32 @s2n_print_stacktrace(ptr noundef %3231) #11
  %3233 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3234 = trunc nuw i8 %3233 to i1
  br i1 %3234, label %3235, label %3239

3235:                                             ; preds = %3229
  %3236 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3237 = call i32 @fileno(ptr noundef %3236) #11
  %3238 = call i32 @isatty(i32 noundef %3237) #11
  %.not666 = icmp eq i32 %3238, 0
  br i1 %.not666, label %3239, label %3240

3239:                                             ; preds = %3235, %3229
  br label %3240

3240:                                             ; preds = %3235, %3239
  %.str.5.sink1824 = phi ptr [ @.str.5, %3239 ], [ @.str.2, %3235 ]
  store i32 %3230, ptr %1043, align 4, !tbaa !5
  %3241 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3242 = load i32, ptr @test_count, align 4, !tbaa !5
  %3243 = load i32, ptr %989, align 4, !tbaa !5
  %3244 = call ptr @s2n_strerror(i32 noundef %3243, ptr noundef nonnull @.str.4) #11
  %3245 = load i32, ptr %989, align 4, !tbaa !5
  %3246 = call ptr @s2n_strerror_debug(i32 noundef %3245, ptr noundef nonnull @.str.4) #11
  %3247 = load i32, ptr %1043, align 4, !tbaa !5
  %3248 = call ptr @strerror(i32 noundef %3247) #11
  %3249 = load i32, ptr %1043, align 4, !tbaa !5
  %3250 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3241, ptr noundef nonnull %.str.5.sink1824, i32 noundef %3242, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.1, i32 noundef 354, ptr noundef %3244, ptr noundef %3246, ptr noundef %3248, i32 noundef %3249) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3251:                                             ; preds = %3224
  %3252 = load i32, ptr @test_count, align 4, !tbaa !5
  %3253 = add nsw i32 %3252, 1
  store i32 %3253, ptr @test_count, align 4, !tbaa !5
  %3254 = load i16, ptr %20, align 2, !tbaa !62
  %3255 = icmp eq i16 %3254, 1398
  br i1 %3255, label %3278, label %3256

3256:                                             ; preds = %3251
  %3257 = load i32, ptr %1043, align 4, !tbaa !5
  %3258 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3259 = call i32 @s2n_print_stacktrace(ptr noundef %3258) #11
  %3260 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3261 = trunc nuw i8 %3260 to i1
  br i1 %3261, label %3262, label %3266

3262:                                             ; preds = %3256
  %3263 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3264 = call i32 @fileno(ptr noundef %3263) #11
  %3265 = call i32 @isatty(i32 noundef %3264) #11
  %.not667 = icmp eq i32 %3265, 0
  br i1 %.not667, label %3266, label %3267

3266:                                             ; preds = %3262, %3256
  br label %3267

3267:                                             ; preds = %3262, %3266
  %.str.5.sink1833 = phi ptr [ @.str.5, %3266 ], [ @.str.2, %3262 ]
  store i32 %3257, ptr %1043, align 4, !tbaa !5
  %3268 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3269 = load i32, ptr @test_count, align 4, !tbaa !5
  %3270 = load i32, ptr %989, align 4, !tbaa !5
  %3271 = call ptr @s2n_strerror(i32 noundef %3270, ptr noundef nonnull @.str.4) #11
  %3272 = load i32, ptr %989, align 4, !tbaa !5
  %3273 = call ptr @s2n_strerror_debug(i32 noundef %3272, ptr noundef nonnull @.str.4) #11
  %3274 = load i32, ptr %1043, align 4, !tbaa !5
  %3275 = call ptr @strerror(i32 noundef %3274) #11
  %3276 = load i32, ptr %1043, align 4, !tbaa !5
  %3277 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3268, ptr noundef nonnull %.str.5.sink1833, i32 noundef %3269, ptr noundef nonnull @.str.62, ptr noundef nonnull @.str.1, i32 noundef 355, ptr noundef %3271, ptr noundef %3273, ptr noundef %3275, i32 noundef %3276) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3278:                                             ; preds = %3251
  store i32 1398, ptr %2193, align 8, !tbaa !60
  %3279 = add nsw i32 %3252, 2
  store i32 %3279, ptr @test_count, align 4, !tbaa !5
  %3280 = call i32 @s2n_record_write(ptr noundef nonnull %1828, i8 noundef zeroext 23, ptr noundef nonnull %5) #11
  %3281 = call zeroext i1 @s2n_result_is_ok(i32 %3280)
  br i1 %3281, label %3304, label %3282

3282:                                             ; preds = %3278
  %3283 = load i32, ptr %1043, align 4, !tbaa !5
  %3284 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3285 = call i32 @s2n_print_stacktrace(ptr noundef %3284) #11
  %3286 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3287 = trunc nuw i8 %3286 to i1
  br i1 %3287, label %3288, label %3292

3288:                                             ; preds = %3282
  %3289 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3290 = call i32 @fileno(ptr noundef %3289) #11
  %3291 = call i32 @isatty(i32 noundef %3290) #11
  %.not668 = icmp eq i32 %3291, 0
  br i1 %.not668, label %3292, label %3293

3292:                                             ; preds = %3288, %3282
  br label %3293

3293:                                             ; preds = %3288, %3292
  %.str.5.sink1842 = phi ptr [ @.str.5, %3292 ], [ @.str.2, %3288 ]
  store i32 %3283, ptr %1043, align 4, !tbaa !5
  %3294 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3295 = load i32, ptr @test_count, align 4, !tbaa !5
  %3296 = load i32, ptr %989, align 4, !tbaa !5
  %3297 = call ptr @s2n_strerror(i32 noundef %3296, ptr noundef nonnull @.str.4) #11
  %3298 = load i32, ptr %989, align 4, !tbaa !5
  %3299 = call ptr @s2n_strerror_debug(i32 noundef %3298, ptr noundef nonnull @.str.4) #11
  %3300 = load i32, ptr %1043, align 4, !tbaa !5
  %3301 = call ptr @strerror(i32 noundef %3300) #11
  %3302 = load i32, ptr %1043, align 4, !tbaa !5
  %3303 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3294, ptr noundef nonnull %.str.5.sink1842, i32 noundef %3295, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.1, i32 noundef 358, ptr noundef %3297, ptr noundef %3299, ptr noundef %3301, i32 noundef %3302) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3304:                                             ; preds = %3278
  %3305 = load i32, ptr %2246, align 4, !tbaa !65
  %3306 = load i32, ptr %2248, align 8, !tbaa !66
  %3307 = sub i32 %3305, %3306
  %3308 = load i32, ptr @test_count, align 4, !tbaa !5
  %3309 = add nsw i32 %3308, 1
  store i32 %3309, ptr @test_count, align 4, !tbaa !5
  %3310 = and i32 %3307, 65535
  %3311 = icmp ult i32 %3310, 1421
  br i1 %3311, label %3334, label %3312

3312:                                             ; preds = %3304
  %3313 = load i32, ptr %1043, align 4, !tbaa !5
  %3314 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3315 = call i32 @s2n_print_stacktrace(ptr noundef %3314) #11
  %3316 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3317 = trunc nuw i8 %3316 to i1
  br i1 %3317, label %3318, label %3322

3318:                                             ; preds = %3312
  %3319 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3320 = call i32 @fileno(ptr noundef %3319) #11
  %3321 = call i32 @isatty(i32 noundef %3320) #11
  %.not669 = icmp eq i32 %3321, 0
  br i1 %.not669, label %3322, label %3323

3322:                                             ; preds = %3318, %3312
  br label %3323

3323:                                             ; preds = %3318, %3322
  %.str.5.sink1851 = phi ptr [ @.str.5, %3322 ], [ @.str.2, %3318 ]
  store i32 %3313, ptr %1043, align 4, !tbaa !5
  %3324 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3325 = load i32, ptr @test_count, align 4, !tbaa !5
  %3326 = load i32, ptr %989, align 4, !tbaa !5
  %3327 = call ptr @s2n_strerror(i32 noundef %3326, ptr noundef nonnull @.str.4) #11
  %3328 = load i32, ptr %989, align 4, !tbaa !5
  %3329 = call ptr @s2n_strerror_debug(i32 noundef %3328, ptr noundef nonnull @.str.4) #11
  %3330 = load i32, ptr %1043, align 4, !tbaa !5
  %3331 = call ptr @strerror(i32 noundef %3330) #11
  %3332 = load i32, ptr %1043, align 4, !tbaa !5
  %3333 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3324, ptr noundef nonnull %.str.5.sink1851, i32 noundef %3325, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 360, ptr noundef %3327, ptr noundef %3329, ptr noundef %3331, i32 noundef %3332) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3334:                                             ; preds = %3304
  %3335 = add nsw i32 %3308, 2
  store i32 %3335, ptr @test_count, align 4, !tbaa !5
  %3336 = load ptr, ptr %1935, align 8, !tbaa !67
  %3337 = getelementptr inbounds i8, ptr %3336, i64 3
  %3338 = load i8, ptr %3337, align 1, !tbaa !59
  %3339 = zext i8 %3338 to i32
  %3340 = shl nuw nsw i32 %3339, 8
  %3341 = getelementptr inbounds i8, ptr %3336, i64 4
  %3342 = load i8, ptr %3341, align 1, !tbaa !59
  %3343 = zext i8 %3342 to i32
  %3344 = or disjoint i32 %3340, %3343
  %3345 = add nsw i32 %3310, -5
  %3346 = icmp eq i32 %3344, %3345
  br i1 %3346, label %3369, label %3347

3347:                                             ; preds = %3334
  %3348 = load i32, ptr %1043, align 4, !tbaa !5
  %3349 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3350 = call i32 @s2n_print_stacktrace(ptr noundef %3349) #11
  %3351 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3352 = trunc nuw i8 %3351 to i1
  br i1 %3352, label %3353, label %3357

3353:                                             ; preds = %3347
  %3354 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3355 = call i32 @fileno(ptr noundef %3354) #11
  %3356 = call i32 @isatty(i32 noundef %3355) #11
  %.not670 = icmp eq i32 %3356, 0
  br i1 %.not670, label %3357, label %3358

3357:                                             ; preds = %3353, %3347
  br label %3358

3358:                                             ; preds = %3353, %3357
  %.str.5.sink1860 = phi ptr [ @.str.5, %3357 ], [ @.str.2, %3353 ]
  store i32 %3348, ptr %1043, align 4, !tbaa !5
  %3359 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3360 = load i32, ptr @test_count, align 4, !tbaa !5
  %3361 = load i32, ptr %989, align 4, !tbaa !5
  %3362 = call ptr @s2n_strerror(i32 noundef %3361, ptr noundef nonnull @.str.4) #11
  %3363 = load i32, ptr %989, align 4, !tbaa !5
  %3364 = call ptr @s2n_strerror_debug(i32 noundef %3363, ptr noundef nonnull @.str.4) #11
  %3365 = load i32, ptr %1043, align 4, !tbaa !5
  %3366 = call ptr @strerror(i32 noundef %3365) #11
  %3367 = load i32, ptr %1043, align 4, !tbaa !5
  %3368 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3359, ptr noundef nonnull %.str.5.sink1860, i32 noundef %3360, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.1, i32 noundef 361, ptr noundef %3362, ptr noundef %3364, ptr noundef %3366, i32 noundef %3367) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3369:                                             ; preds = %3334
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %26) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #11
  br label %3370

3370:                                             ; preds = %3369, %3084
  %3371 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_aes128_sha, i64 56), align 8, !tbaa !68
  %3372 = call zeroext i1 %3371() #11
  br i1 %3372, label %3373, label %._crit_edge791

._crit_edge791:                                   ; preds = %3370
  %.pre = load i32, ptr @test_count, align 4, !tbaa !5
  br label %3744

3373:                                             ; preds = %3370
  %3374 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_aes128_sha256, i64 56), align 8, !tbaa !68
  %3375 = call zeroext i1 %3374() #11
  %.pre792 = load i32, ptr @test_count, align 4, !tbaa !5
  br i1 %3375, label %3376, label %3744

3376:                                             ; preds = %3373
  %3377 = add nsw i32 %.pre792, 1
  store i32 %3377, ptr @test_count, align 4, !tbaa !5
  %3378 = call i32 @destroy_server_keys(ptr noundef nonnull %1828)
  %3379 = icmp eq i32 %3378, -1
  br i1 %3379, label %3380, label %3402

3380:                                             ; preds = %3376
  %3381 = load i32, ptr %1043, align 4, !tbaa !5
  %3382 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3383 = call i32 @s2n_print_stacktrace(ptr noundef %3382) #11
  %3384 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3385 = trunc nuw i8 %3384 to i1
  br i1 %3385, label %3386, label %3390

3386:                                             ; preds = %3380
  %3387 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3388 = call i32 @fileno(ptr noundef %3387) #11
  %3389 = call i32 @isatty(i32 noundef %3388) #11
  %.not733 = icmp eq i32 %3389, 0
  br i1 %.not733, label %3390, label %3391

3390:                                             ; preds = %3386, %3380
  br label %3391

3391:                                             ; preds = %3386, %3390
  %.str.5.sink1869 = phi ptr [ @.str.5, %3390 ], [ @.str.2, %3386 ]
  store i32 %3381, ptr %1043, align 4, !tbaa !5
  %3392 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3393 = load i32, ptr @test_count, align 4, !tbaa !5
  %3394 = load i32, ptr %989, align 4, !tbaa !5
  %3395 = call ptr @s2n_strerror(i32 noundef %3394, ptr noundef nonnull @.str.4) #11
  %3396 = load i32, ptr %989, align 4, !tbaa !5
  %3397 = call ptr @s2n_strerror_debug(i32 noundef %3396, ptr noundef nonnull @.str.4) #11
  %3398 = load i32, ptr %1043, align 4, !tbaa !5
  %3399 = call ptr @strerror(i32 noundef %3398) #11
  %3400 = load i32, ptr %1043, align 4, !tbaa !5
  %3401 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3392, ptr noundef nonnull %.str.5.sink1869, i32 noundef %3393, ptr noundef nonnull @.str.56, ptr noundef nonnull @.str.1, i32 noundef 366, ptr noundef %3395, ptr noundef %3397, ptr noundef %3399, i32 noundef %3400) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3402:                                             ; preds = %3376
  %3403 = load i32, ptr @test_count, align 4, !tbaa !5
  %3404 = add nsw i32 %3403, 1
  store i32 %3404, ptr @test_count, align 4, !tbaa !5
  %3405 = call i32 @s2n_connection_wipe(ptr noundef nonnull %1828) #11
  %3406 = icmp eq i32 %3405, -1
  br i1 %3406, label %3407, label %3429

3407:                                             ; preds = %3402
  %3408 = load i32, ptr %1043, align 4, !tbaa !5
  %3409 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3410 = call i32 @s2n_print_stacktrace(ptr noundef %3409) #11
  %3411 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3412 = trunc nuw i8 %3411 to i1
  br i1 %3412, label %3413, label %3417

3413:                                             ; preds = %3407
  %3414 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3415 = call i32 @fileno(ptr noundef %3414) #11
  %3416 = call i32 @isatty(i32 noundef %3415) #11
  %.not732 = icmp eq i32 %3416, 0
  br i1 %.not732, label %3417, label %3418

3417:                                             ; preds = %3413, %3407
  br label %3418

3418:                                             ; preds = %3413, %3417
  %.str.5.sink1878 = phi ptr [ @.str.5, %3417 ], [ @.str.2, %3413 ]
  store i32 %3408, ptr %1043, align 4, !tbaa !5
  %3419 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3420 = load i32, ptr @test_count, align 4, !tbaa !5
  %3421 = load i32, ptr %989, align 4, !tbaa !5
  %3422 = call ptr @s2n_strerror(i32 noundef %3421, ptr noundef nonnull @.str.4) #11
  %3423 = load i32, ptr %989, align 4, !tbaa !5
  %3424 = call ptr @s2n_strerror_debug(i32 noundef %3423, ptr noundef nonnull @.str.4) #11
  %3425 = load i32, ptr %1043, align 4, !tbaa !5
  %3426 = call ptr @strerror(i32 noundef %3425) #11
  %3427 = load i32, ptr %1043, align 4, !tbaa !5
  %3428 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3419, ptr noundef nonnull %.str.5.sink1878, i32 noundef %3420, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 367, ptr noundef %3422, ptr noundef %3424, ptr noundef %3426, i32 noundef %3427) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3429:                                             ; preds = %3402
  %3430 = load i32, ptr @test_count, align 4, !tbaa !5
  %3431 = add nsw i32 %3430, 1
  store i32 %3431, ptr @test_count, align 4, !tbaa !5
  %3432 = call i32 @s2n_stuffer_wipe(ptr noundef nonnull %1935) #11
  %3433 = icmp eq i32 %3432, -1
  br i1 %3433, label %3434, label %3456

3434:                                             ; preds = %3429
  %3435 = load i32, ptr %1043, align 4, !tbaa !5
  %3436 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3437 = call i32 @s2n_print_stacktrace(ptr noundef %3436) #11
  %3438 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3439 = trunc nuw i8 %3438 to i1
  br i1 %3439, label %3440, label %3444

3440:                                             ; preds = %3434
  %3441 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3442 = call i32 @fileno(ptr noundef %3441) #11
  %3443 = call i32 @isatty(i32 noundef %3442) #11
  %.not731 = icmp eq i32 %3443, 0
  br i1 %.not731, label %3444, label %3445

3444:                                             ; preds = %3440, %3434
  br label %3445

3445:                                             ; preds = %3440, %3444
  %.str.5.sink1887 = phi ptr [ @.str.5, %3444 ], [ @.str.2, %3440 ]
  store i32 %3435, ptr %1043, align 4, !tbaa !5
  %3446 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3447 = load i32, ptr @test_count, align 4, !tbaa !5
  %3448 = load i32, ptr %989, align 4, !tbaa !5
  %3449 = call ptr @s2n_strerror(i32 noundef %3448, ptr noundef nonnull @.str.4) #11
  %3450 = load i32, ptr %989, align 4, !tbaa !5
  %3451 = call ptr @s2n_strerror_debug(i32 noundef %3450, ptr noundef nonnull @.str.4) #11
  %3452 = load i32, ptr %1043, align 4, !tbaa !5
  %3453 = call ptr @strerror(i32 noundef %3452) #11
  %3454 = load i32, ptr %1043, align 4, !tbaa !5
  %3455 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3446, ptr noundef nonnull %.str.5.sink1887, i32 noundef %3447, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 368, ptr noundef %3449, ptr noundef %3451, ptr noundef %3453, i32 noundef %3454) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3456:                                             ; preds = %3429
  %3457 = load ptr, ptr %1962, align 8, !tbaa !64
  %3458 = load ptr, ptr %3457, align 8, !tbaa !44
  %3459 = getelementptr inbounds i8, ptr %3458, i64 48
  store ptr @s2n_record_alg_aes128_sha_composite, ptr %3459, align 8, !tbaa !49
  store i8 32, ptr %1961, align 4, !tbaa !57
  call void @llvm.lifetime.start.p0(i64 20, ptr nonnull %27) #11
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(20) %27, ptr noundef nonnull align 16 dereferenceable(20) @__const.main.mac_key_sha, i64 20, i1 false)
  %3460 = load i32, ptr @test_count, align 4, !tbaa !5
  %3461 = add nsw i32 %3460, 1
  store i32 %3461, ptr @test_count, align 4, !tbaa !5
  %3462 = load ptr, ptr %3457, align 8, !tbaa !44
  %3463 = getelementptr inbounds i8, ptr %3462, i64 48
  %3464 = load ptr, ptr %3463, align 8, !tbaa !49
  %3465 = load ptr, ptr %3464, align 8, !tbaa !51
  %3466 = getelementptr inbounds i8, ptr %3465, i64 80
  %3467 = load ptr, ptr %3466, align 8, !tbaa !55
  %3468 = getelementptr inbounds i8, ptr %3457, i64 16
  %3469 = call i32 %3467(ptr noundef nonnull %3468, ptr noundef nonnull %7) #11
  %3470 = call zeroext i1 @s2n_result_is_ok(i32 %3469)
  br i1 %3470, label %3493, label %3471

3471:                                             ; preds = %3456
  %3472 = load i32, ptr %1043, align 4, !tbaa !5
  %3473 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3474 = call i32 @s2n_print_stacktrace(ptr noundef %3473) #11
  %3475 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3476 = trunc nuw i8 %3475 to i1
  br i1 %3476, label %3477, label %3481

3477:                                             ; preds = %3471
  %3478 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3479 = call i32 @fileno(ptr noundef %3478) #11
  %3480 = call i32 @isatty(i32 noundef %3479) #11
  %.not671 = icmp eq i32 %3480, 0
  br i1 %.not671, label %3481, label %3482

3481:                                             ; preds = %3477, %3471
  br label %3482

3482:                                             ; preds = %3477, %3481
  %.str.5.sink1896 = phi ptr [ @.str.5, %3481 ], [ @.str.2, %3477 ]
  store i32 %3472, ptr %1043, align 4, !tbaa !5
  %3483 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3484 = load i32, ptr @test_count, align 4, !tbaa !5
  %3485 = load i32, ptr %989, align 4, !tbaa !5
  %3486 = call ptr @s2n_strerror(i32 noundef %3485, ptr noundef nonnull @.str.4) #11
  %3487 = load i32, ptr %989, align 4, !tbaa !5
  %3488 = call ptr @s2n_strerror_debug(i32 noundef %3487, ptr noundef nonnull @.str.4) #11
  %3489 = load i32, ptr %1043, align 4, !tbaa !5
  %3490 = call ptr @strerror(i32 noundef %3489) #11
  %3491 = load i32, ptr %1043, align 4, !tbaa !5
  %3492 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3483, ptr noundef nonnull %.str.5.sink1896, i32 noundef %3484, ptr noundef nonnull @.str.63, ptr noundef nonnull @.str.1, i32 noundef 373, ptr noundef %3486, ptr noundef %3488, ptr noundef %3490, i32 noundef %3491) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3493:                                             ; preds = %3456
  %3494 = load i32, ptr @test_count, align 4, !tbaa !5
  %3495 = add nsw i32 %3494, 1
  store i32 %3495, ptr @test_count, align 4, !tbaa !5
  %3496 = load ptr, ptr %1962, align 8, !tbaa !64
  %3497 = load ptr, ptr %3496, align 8, !tbaa !44
  %3498 = getelementptr inbounds i8, ptr %3497, i64 48
  %3499 = load ptr, ptr %3498, align 8, !tbaa !49
  %3500 = load ptr, ptr %3499, align 8, !tbaa !51
  %3501 = getelementptr inbounds i8, ptr %3500, i64 72
  %3502 = load ptr, ptr %3501, align 8, !tbaa !56
  %3503 = getelementptr inbounds i8, ptr %3496, i64 8
  %3504 = call i32 %3502(ptr noundef nonnull %3503, ptr noundef nonnull %7) #11
  %3505 = call zeroext i1 @s2n_result_is_ok(i32 %3504)
  br i1 %3505, label %3528, label %3506

3506:                                             ; preds = %3493
  %3507 = load i32, ptr %1043, align 4, !tbaa !5
  %3508 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3509 = call i32 @s2n_print_stacktrace(ptr noundef %3508) #11
  %3510 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3511 = trunc nuw i8 %3510 to i1
  br i1 %3511, label %3512, label %3516

3512:                                             ; preds = %3506
  %3513 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3514 = call i32 @fileno(ptr noundef %3513) #11
  %3515 = call i32 @isatty(i32 noundef %3514) #11
  %.not672 = icmp eq i32 %3515, 0
  br i1 %.not672, label %3516, label %3517

3516:                                             ; preds = %3512, %3506
  br label %3517

3517:                                             ; preds = %3512, %3516
  %.str.5.sink1905 = phi ptr [ @.str.5, %3516 ], [ @.str.2, %3512 ]
  store i32 %3507, ptr %1043, align 4, !tbaa !5
  %3518 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3519 = load i32, ptr @test_count, align 4, !tbaa !5
  %3520 = load i32, ptr %989, align 4, !tbaa !5
  %3521 = call ptr @s2n_strerror(i32 noundef %3520, ptr noundef nonnull @.str.4) #11
  %3522 = load i32, ptr %989, align 4, !tbaa !5
  %3523 = call ptr @s2n_strerror_debug(i32 noundef %3522, ptr noundef nonnull @.str.4) #11
  %3524 = load i32, ptr %1043, align 4, !tbaa !5
  %3525 = call ptr @strerror(i32 noundef %3524) #11
  %3526 = load i32, ptr %1043, align 4, !tbaa !5
  %3527 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3518, ptr noundef nonnull %.str.5.sink1905, i32 noundef %3519, ptr noundef nonnull @.str.64, ptr noundef nonnull @.str.1, i32 noundef 374, ptr noundef %3521, ptr noundef %3523, ptr noundef %3525, i32 noundef %3526) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3528:                                             ; preds = %3493
  %3529 = load i32, ptr @test_count, align 4, !tbaa !5
  %3530 = add nsw i32 %3529, 1
  store i32 %3530, ptr @test_count, align 4, !tbaa !5
  %3531 = load ptr, ptr %1962, align 8, !tbaa !64
  %3532 = load ptr, ptr %3531, align 8, !tbaa !44
  %3533 = getelementptr inbounds i8, ptr %3532, i64 48
  %3534 = load ptr, ptr %3533, align 8, !tbaa !49
  %3535 = load ptr, ptr %3534, align 8, !tbaa !51
  %3536 = getelementptr inbounds i8, ptr %3535, i64 32
  %3537 = load ptr, ptr %3536, align 8, !tbaa !59
  %3538 = getelementptr inbounds i8, ptr %3531, i64 16
  %3539 = call i32 %3537(ptr noundef nonnull %3538, ptr noundef nonnull %27, i32 noundef 20) #11
  %3540 = icmp eq i32 %3539, -1
  br i1 %3540, label %3541, label %3563

3541:                                             ; preds = %3528
  %3542 = load i32, ptr %1043, align 4, !tbaa !5
  %3543 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3544 = call i32 @s2n_print_stacktrace(ptr noundef %3543) #11
  %3545 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3546 = trunc nuw i8 %3545 to i1
  br i1 %3546, label %3547, label %3551

3547:                                             ; preds = %3541
  %3548 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3549 = call i32 @fileno(ptr noundef %3548) #11
  %3550 = call i32 @isatty(i32 noundef %3549) #11
  %.not730 = icmp eq i32 %3550, 0
  br i1 %.not730, label %3551, label %3552

3551:                                             ; preds = %3547, %3541
  br label %3552

3552:                                             ; preds = %3547, %3551
  %.str.5.sink1914 = phi ptr [ @.str.5, %3551 ], [ @.str.2, %3547 ]
  store i32 %3542, ptr %1043, align 4, !tbaa !5
  %3553 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3554 = load i32, ptr @test_count, align 4, !tbaa !5
  %3555 = load i32, ptr %989, align 4, !tbaa !5
  %3556 = call ptr @s2n_strerror(i32 noundef %3555, ptr noundef nonnull @.str.4) #11
  %3557 = load i32, ptr %989, align 4, !tbaa !5
  %3558 = call ptr @s2n_strerror_debug(i32 noundef %3557, ptr noundef nonnull @.str.4) #11
  %3559 = load i32, ptr %1043, align 4, !tbaa !5
  %3560 = call ptr @strerror(i32 noundef %3559) #11
  %3561 = load i32, ptr %1043, align 4, !tbaa !5
  %3562 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3553, ptr noundef nonnull %.str.5.sink1914, i32 noundef %3554, ptr noundef nonnull @.str.65, ptr noundef nonnull @.str.1, i32 noundef 375, ptr noundef %3556, ptr noundef %3558, ptr noundef %3560, i32 noundef %3561) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3563:                                             ; preds = %3528
  %3564 = load i32, ptr @test_count, align 4, !tbaa !5
  %3565 = add nsw i32 %3564, 1
  store i32 %3565, ptr @test_count, align 4, !tbaa !5
  %3566 = load ptr, ptr %1962, align 8, !tbaa !64
  %3567 = load ptr, ptr %3566, align 8, !tbaa !44
  %3568 = getelementptr inbounds i8, ptr %3567, i64 48
  %3569 = load ptr, ptr %3568, align 8, !tbaa !49
  %3570 = load ptr, ptr %3569, align 8, !tbaa !51
  %3571 = getelementptr inbounds i8, ptr %3570, i64 32
  %3572 = load ptr, ptr %3571, align 8, !tbaa !59
  %3573 = getelementptr inbounds i8, ptr %3566, i64 8
  %3574 = call i32 %3572(ptr noundef nonnull %3573, ptr noundef nonnull %27, i32 noundef 20) #11
  %3575 = icmp eq i32 %3574, -1
  br i1 %3575, label %3576, label %3598

3576:                                             ; preds = %3563
  %3577 = load i32, ptr %1043, align 4, !tbaa !5
  %3578 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3579 = call i32 @s2n_print_stacktrace(ptr noundef %3578) #11
  %3580 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3581 = trunc nuw i8 %3580 to i1
  br i1 %3581, label %3582, label %3586

3582:                                             ; preds = %3576
  %3583 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3584 = call i32 @fileno(ptr noundef %3583) #11
  %3585 = call i32 @isatty(i32 noundef %3584) #11
  %.not729 = icmp eq i32 %3585, 0
  br i1 %.not729, label %3586, label %3587

3586:                                             ; preds = %3582, %3576
  br label %3587

3587:                                             ; preds = %3582, %3586
  %.str.5.sink1923 = phi ptr [ @.str.5, %3586 ], [ @.str.2, %3582 ]
  store i32 %3577, ptr %1043, align 4, !tbaa !5
  %3588 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3589 = load i32, ptr @test_count, align 4, !tbaa !5
  %3590 = load i32, ptr %989, align 4, !tbaa !5
  %3591 = call ptr @s2n_strerror(i32 noundef %3590, ptr noundef nonnull @.str.4) #11
  %3592 = load i32, ptr %989, align 4, !tbaa !5
  %3593 = call ptr @s2n_strerror_debug(i32 noundef %3592, ptr noundef nonnull @.str.4) #11
  %3594 = load i32, ptr %1043, align 4, !tbaa !5
  %3595 = call ptr @strerror(i32 noundef %3594) #11
  %3596 = load i32, ptr %1043, align 4, !tbaa !5
  %3597 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3588, ptr noundef nonnull %.str.5.sink1923, i32 noundef %3589, ptr noundef nonnull @.str.66, ptr noundef nonnull @.str.1, i32 noundef 376, ptr noundef %3591, ptr noundef %3593, ptr noundef %3595, i32 noundef %3596) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3598:                                             ; preds = %3563
  %3599 = load i32, ptr @test_count, align 4, !tbaa !5
  %3600 = add nsw i32 %3599, 1
  store i32 %3600, ptr @test_count, align 4, !tbaa !5
  %3601 = call i32 @s2n_record_min_write_payload_size(ptr noundef nonnull %1828, ptr noundef nonnull %20) #11
  %3602 = call zeroext i1 @s2n_result_is_ok(i32 %3601)
  br i1 %3602, label %3625, label %3603

3603:                                             ; preds = %3598
  %3604 = load i32, ptr %1043, align 4, !tbaa !5
  %3605 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3606 = call i32 @s2n_print_stacktrace(ptr noundef %3605) #11
  %3607 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3608 = trunc nuw i8 %3607 to i1
  br i1 %3608, label %3609, label %3613

3609:                                             ; preds = %3603
  %3610 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3611 = call i32 @fileno(ptr noundef %3610) #11
  %3612 = call i32 @isatty(i32 noundef %3611) #11
  %.not673 = icmp eq i32 %3612, 0
  br i1 %.not673, label %3613, label %3614

3613:                                             ; preds = %3609, %3603
  br label %3614

3614:                                             ; preds = %3609, %3613
  %.str.5.sink1932 = phi ptr [ @.str.5, %3613 ], [ @.str.2, %3609 ]
  store i32 %3604, ptr %1043, align 4, !tbaa !5
  %3615 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3616 = load i32, ptr @test_count, align 4, !tbaa !5
  %3617 = load i32, ptr %989, align 4, !tbaa !5
  %3618 = call ptr @s2n_strerror(i32 noundef %3617, ptr noundef nonnull @.str.4) #11
  %3619 = load i32, ptr %989, align 4, !tbaa !5
  %3620 = call ptr @s2n_strerror_debug(i32 noundef %3619, ptr noundef nonnull @.str.4) #11
  %3621 = load i32, ptr %1043, align 4, !tbaa !5
  %3622 = call ptr @strerror(i32 noundef %3621) #11
  %3623 = load i32, ptr %1043, align 4, !tbaa !5
  %3624 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3615, ptr noundef nonnull %.str.5.sink1932, i32 noundef %3616, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.1, i32 noundef 378, ptr noundef %3618, ptr noundef %3620, ptr noundef %3622, i32 noundef %3623) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3625:                                             ; preds = %3598
  %3626 = load i32, ptr @test_count, align 4, !tbaa !5
  %3627 = add nsw i32 %3626, 1
  store i32 %3627, ptr @test_count, align 4, !tbaa !5
  %3628 = load i16, ptr %20, align 2, !tbaa !62
  %3629 = icmp eq i16 %3628, 1371
  br i1 %3629, label %3652, label %3630

3630:                                             ; preds = %3625
  %3631 = load i32, ptr %1043, align 4, !tbaa !5
  %3632 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3633 = call i32 @s2n_print_stacktrace(ptr noundef %3632) #11
  %3634 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3635 = trunc nuw i8 %3634 to i1
  br i1 %3635, label %3636, label %3640

3636:                                             ; preds = %3630
  %3637 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3638 = call i32 @fileno(ptr noundef %3637) #11
  %3639 = call i32 @isatty(i32 noundef %3638) #11
  %.not674 = icmp eq i32 %3639, 0
  br i1 %.not674, label %3640, label %3641

3640:                                             ; preds = %3636, %3630
  br label %3641

3641:                                             ; preds = %3636, %3640
  %.str.5.sink1941 = phi ptr [ @.str.5, %3640 ], [ @.str.2, %3636 ]
  store i32 %3631, ptr %1043, align 4, !tbaa !5
  %3642 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3643 = load i32, ptr @test_count, align 4, !tbaa !5
  %3644 = load i32, ptr %989, align 4, !tbaa !5
  %3645 = call ptr @s2n_strerror(i32 noundef %3644, ptr noundef nonnull @.str.4) #11
  %3646 = load i32, ptr %989, align 4, !tbaa !5
  %3647 = call ptr @s2n_strerror_debug(i32 noundef %3646, ptr noundef nonnull @.str.4) #11
  %3648 = load i32, ptr %1043, align 4, !tbaa !5
  %3649 = call ptr @strerror(i32 noundef %3648) #11
  %3650 = load i32, ptr %1043, align 4, !tbaa !5
  %3651 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3642, ptr noundef nonnull %.str.5.sink1941, i32 noundef %3643, ptr noundef nonnull @.str.67, ptr noundef nonnull @.str.1, i32 noundef 385, ptr noundef %3645, ptr noundef %3647, ptr noundef %3649, i32 noundef %3650) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3652:                                             ; preds = %3625
  store i32 1371, ptr %2193, align 8, !tbaa !60
  %3653 = add nsw i32 %3626, 2
  store i32 %3653, ptr @test_count, align 4, !tbaa !5
  %3654 = call i32 @s2n_record_write(ptr noundef nonnull %1828, i8 noundef zeroext 23, ptr noundef nonnull %5) #11
  %3655 = call zeroext i1 @s2n_result_is_ok(i32 %3654)
  br i1 %3655, label %3678, label %3656

3656:                                             ; preds = %3652
  %3657 = load i32, ptr %1043, align 4, !tbaa !5
  %3658 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3659 = call i32 @s2n_print_stacktrace(ptr noundef %3658) #11
  %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) #11
  %3665 = call i32 @isatty(i32 noundef %3664) #11
  %.not675 = icmp eq i32 %3665, 0
  br i1 %.not675, label %3666, label %3667

3666:                                             ; preds = %3662, %3656
  br label %3667

3667:                                             ; preds = %3662, %3666
  %.str.5.sink1950 = phi ptr [ @.str.5, %3666 ], [ @.str.2, %3662 ]
  store i32 %3657, ptr %1043, 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 %989, align 4, !tbaa !5
  %3671 = call ptr @s2n_strerror(i32 noundef %3670, ptr noundef nonnull @.str.4) #11
  %3672 = load i32, ptr %989, align 4, !tbaa !5
  %3673 = call ptr @s2n_strerror_debug(i32 noundef %3672, ptr noundef nonnull @.str.4) #11
  %3674 = load i32, ptr %1043, align 4, !tbaa !5
  %3675 = call ptr @strerror(i32 noundef %3674) #11
  %3676 = load i32, ptr %1043, align 4, !tbaa !5
  %3677 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3668, ptr noundef nonnull %.str.5.sink1950, i32 noundef %3669, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.1, i32 noundef 388, ptr noundef %3671, ptr noundef %3673, ptr noundef %3675, i32 noundef %3676) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3678:                                             ; preds = %3652
  %3679 = load i32, ptr %2246, align 4, !tbaa !65
  %3680 = load i32, ptr %2248, align 8, !tbaa !66
  %3681 = sub i32 %3679, %3680
  %3682 = load i32, ptr @test_count, align 4, !tbaa !5
  %3683 = add nsw i32 %3682, 1
  store i32 %3683, ptr @test_count, align 4, !tbaa !5
  %3684 = and i32 %3681, 65535
  %3685 = icmp ult i32 %3684, 1421
  br i1 %3685, label %3708, label %3686

3686:                                             ; preds = %3678
  %3687 = load i32, ptr %1043, align 4, !tbaa !5
  %3688 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3689 = call i32 @s2n_print_stacktrace(ptr noundef %3688) #11
  %3690 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3691 = trunc nuw i8 %3690 to i1
  br i1 %3691, label %3692, label %3696

3692:                                             ; preds = %3686
  %3693 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3694 = call i32 @fileno(ptr noundef %3693) #11
  %3695 = call i32 @isatty(i32 noundef %3694) #11
  %.not676 = icmp eq i32 %3695, 0
  br i1 %.not676, label %3696, label %3697

3696:                                             ; preds = %3692, %3686
  br label %3697

3697:                                             ; preds = %3692, %3696
  %.str.5.sink1959 = phi ptr [ @.str.5, %3696 ], [ @.str.2, %3692 ]
  store i32 %3687, ptr %1043, align 4, !tbaa !5
  %3698 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3699 = load i32, ptr @test_count, align 4, !tbaa !5
  %3700 = load i32, ptr %989, align 4, !tbaa !5
  %3701 = call ptr @s2n_strerror(i32 noundef %3700, ptr noundef nonnull @.str.4) #11
  %3702 = load i32, ptr %989, align 4, !tbaa !5
  %3703 = call ptr @s2n_strerror_debug(i32 noundef %3702, ptr noundef nonnull @.str.4) #11
  %3704 = load i32, ptr %1043, align 4, !tbaa !5
  %3705 = call ptr @strerror(i32 noundef %3704) #11
  %3706 = load i32, ptr %1043, align 4, !tbaa !5
  %3707 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3698, ptr noundef nonnull %.str.5.sink1959, i32 noundef %3699, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 390, ptr noundef %3701, ptr noundef %3703, ptr noundef %3705, i32 noundef %3706) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3708:                                             ; preds = %3678
  %3709 = add nsw i32 %3682, 2
  store i32 %3709, ptr @test_count, align 4, !tbaa !5
  %3710 = load ptr, ptr %1935, align 8, !tbaa !67
  %3711 = getelementptr inbounds i8, ptr %3710, i64 3
  %3712 = load i8, ptr %3711, align 1, !tbaa !59
  %3713 = zext i8 %3712 to i32
  %3714 = shl nuw nsw i32 %3713, 8
  %3715 = getelementptr inbounds i8, ptr %3710, i64 4
  %3716 = load i8, ptr %3715, align 1, !tbaa !59
  %3717 = zext i8 %3716 to i32
  %3718 = or disjoint i32 %3714, %3717
  %3719 = add nsw i32 %3684, -5
  %3720 = icmp eq i32 %3718, %3719
  br i1 %3720, label %3743, label %3721

3721:                                             ; preds = %3708
  %3722 = load i32, ptr %1043, align 4, !tbaa !5
  %3723 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3724 = call i32 @s2n_print_stacktrace(ptr noundef %3723) #11
  %3725 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3726 = trunc nuw i8 %3725 to i1
  br i1 %3726, label %3727, label %3731

3727:                                             ; preds = %3721
  %3728 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3729 = call i32 @fileno(ptr noundef %3728) #11
  %3730 = call i32 @isatty(i32 noundef %3729) #11
  %.not677 = icmp eq i32 %3730, 0
  br i1 %.not677, label %3731, label %3732

3731:                                             ; preds = %3727, %3721
  br label %3732

3732:                                             ; preds = %3727, %3731
  %.str.5.sink1968 = phi ptr [ @.str.5, %3731 ], [ @.str.2, %3727 ]
  store i32 %3722, ptr %1043, align 4, !tbaa !5
  %3733 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3734 = load i32, ptr @test_count, align 4, !tbaa !5
  %3735 = load i32, ptr %989, align 4, !tbaa !5
  %3736 = call ptr @s2n_strerror(i32 noundef %3735, ptr noundef nonnull @.str.4) #11
  %3737 = load i32, ptr %989, align 4, !tbaa !5
  %3738 = call ptr @s2n_strerror_debug(i32 noundef %3737, ptr noundef nonnull @.str.4) #11
  %3739 = load i32, ptr %1043, align 4, !tbaa !5
  %3740 = call ptr @strerror(i32 noundef %3739) #11
  %3741 = load i32, ptr %1043, align 4, !tbaa !5
  %3742 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3733, ptr noundef nonnull %.str.5.sink1968, i32 noundef %3734, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.1, i32 noundef 391, ptr noundef %3736, ptr noundef %3738, ptr noundef %3740, i32 noundef %3741) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3743:                                             ; preds = %3708
  call void @llvm.lifetime.end.p0(i64 20, ptr nonnull %27) #11
  br label %3744

3744:                                             ; preds = %._crit_edge791, %3743, %3373
  %3745 = phi i32 [ %.pre, %._crit_edge791 ], [ %3709, %3743 ], [ %.pre792, %3373 ]
  store i32 17414, ptr %2193, align 8, !tbaa !60
  %3746 = add nsw i32 %3745, 1
  store i32 %3746, ptr @test_count, align 4, !tbaa !5
  %3747 = call i32 @s2n_connection_free(ptr noundef nonnull %1828) #11
  %3748 = icmp eq i32 %3747, -1
  br i1 %3748, label %3749, label %3771

3749:                                             ; preds = %3744
  %3750 = load i32, ptr %1043, align 4, !tbaa !5
  %3751 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3752 = call i32 @s2n_print_stacktrace(ptr noundef %3751) #11
  %3753 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3754 = trunc nuw i8 %3753 to i1
  br i1 %3754, label %3755, label %3759

3755:                                             ; preds = %3749
  %3756 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3757 = call i32 @fileno(ptr noundef %3756) #11
  %3758 = call i32 @isatty(i32 noundef %3757) #11
  %.not728 = icmp eq i32 %3758, 0
  br i1 %.not728, label %3759, label %3760

3759:                                             ; preds = %3755, %3749
  br label %3760

3760:                                             ; preds = %3755, %3759
  %.str.5.sink1977 = phi ptr [ @.str.5, %3759 ], [ @.str.2, %3755 ]
  store i32 %3750, ptr %1043, align 4, !tbaa !5
  %3761 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3762 = load i32, ptr @test_count, align 4, !tbaa !5
  %3763 = load i32, ptr %989, align 4, !tbaa !5
  %3764 = call ptr @s2n_strerror(i32 noundef %3763, ptr noundef nonnull @.str.4) #11
  %3765 = load i32, ptr %989, align 4, !tbaa !5
  %3766 = call ptr @s2n_strerror_debug(i32 noundef %3765, ptr noundef nonnull @.str.4) #11
  %3767 = load i32, ptr %1043, align 4, !tbaa !5
  %3768 = call ptr @strerror(i32 noundef %3767) #11
  %3769 = load i32, ptr %1043, align 4, !tbaa !5
  %3770 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3761, ptr noundef nonnull %.str.5.sink1977, i32 noundef %3762, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 395, ptr noundef %3764, ptr noundef %3766, ptr noundef %3768, i32 noundef %3769) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3771:                                             ; preds = %3744
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %20) #11
  %3772 = load i32, ptr @test_count, align 4, !tbaa !5
  %3773 = add nsw i32 %3772, 1
  store i32 %3773, ptr @test_count, align 4, !tbaa !5
  %3774 = call ptr @s2n_connection_new(i32 noundef 0) #11
  %3775 = icmp eq ptr %3774, null
  br i1 %3775, label %3776, label %3798

3776:                                             ; preds = %3771
  %3777 = load i32, ptr %1043, align 4, !tbaa !5
  %3778 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3779 = call i32 @s2n_print_stacktrace(ptr noundef %3778) #11
  %3780 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3781 = trunc nuw i8 %3780 to i1
  br i1 %3781, label %3782, label %3786

3782:                                             ; preds = %3776
  %3783 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3784 = call i32 @fileno(ptr noundef %3783) #11
  %3785 = call i32 @isatty(i32 noundef %3784) #11
  %.not727 = icmp eq i32 %3785, 0
  br i1 %.not727, label %3786, label %3787

3786:                                             ; preds = %3782, %3776
  br label %3787

3787:                                             ; preds = %3782, %3786
  %.str.5.sink1986 = phi ptr [ @.str.5, %3786 ], [ @.str.2, %3782 ]
  store i32 %3777, ptr %1043, align 4, !tbaa !5
  %3788 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3789 = load i32, ptr @test_count, align 4, !tbaa !5
  %3790 = load i32, ptr %989, align 4, !tbaa !5
  %3791 = call ptr @s2n_strerror(i32 noundef %3790, ptr noundef nonnull @.str.4) #11
  %3792 = load i32, ptr %989, align 4, !tbaa !5
  %3793 = call ptr @s2n_strerror_debug(i32 noundef %3792, ptr noundef nonnull @.str.4) #11
  %3794 = load i32, ptr %1043, align 4, !tbaa !5
  %3795 = call ptr @strerror(i32 noundef %3794) #11
  %3796 = load i32, ptr %1043, align 4, !tbaa !5
  %3797 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3788, ptr noundef nonnull %.str.5.sink1986, i32 noundef %3789, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 401, ptr noundef %3791, ptr noundef %3793, ptr noundef %3795, i32 noundef %3796) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3798:                                             ; preds = %3771
  %3799 = getelementptr inbounds i8, ptr %3774, i64 220
  store i8 34, ptr %3799, align 4, !tbaa !57
  %3800 = getelementptr inbounds i8, ptr %3774, i64 640
  %3801 = load ptr, ptr %3800, align 8, !tbaa !42
  store ptr @s2n_tls13_aes_128_gcm_sha256, ptr %3801, align 8, !tbaa !44
  %3802 = getelementptr inbounds i8, ptr %3801, i64 16
  %3803 = getelementptr inbounds i8, ptr %3801, i64 904
  %3804 = load i32, ptr @test_count, align 4, !tbaa !5
  %3805 = add nsw i32 %3804, 1
  store i32 %3805, ptr @test_count, align 4, !tbaa !5
  %3806 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_tls13_aes_128_gcm_sha256, i64 48), align 8, !tbaa !49
  %3807 = load ptr, ptr %3806, align 8, !tbaa !51
  %3808 = getelementptr inbounds i8, ptr %3807, i64 64
  %3809 = load ptr, ptr %3808, align 8, !tbaa !53
  %3810 = call i32 %3809(ptr noundef nonnull %3802) #11
  %3811 = call zeroext i1 @s2n_result_is_ok(i32 %3810)
  br i1 %3811, label %3834, label %3812

3812:                                             ; preds = %3798
  %3813 = load i32, ptr %1043, align 4, !tbaa !5
  %3814 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3815 = call i32 @s2n_print_stacktrace(ptr noundef %3814) #11
  %3816 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3817 = trunc nuw i8 %3816 to i1
  br i1 %3817, label %3818, label %3822

3818:                                             ; preds = %3812
  %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
  %.not678 = icmp eq i32 %3821, 0
  br i1 %.not678, label %3822, label %3823

3822:                                             ; preds = %3818, %3812
  br label %3823

3823:                                             ; preds = %3818, %3822
  %.str.5.sink1995 = phi ptr [ @.str.5, %3822 ], [ @.str.2, %3818 ]
  store i32 %3813, ptr %1043, align 4, !tbaa !5
  %3824 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3825 = load i32, ptr @test_count, align 4, !tbaa !5
  %3826 = load i32, ptr %989, align 4, !tbaa !5
  %3827 = call ptr @s2n_strerror(i32 noundef %3826, ptr noundef nonnull @.str.4) #11
  %3828 = load i32, ptr %989, align 4, !tbaa !5
  %3829 = call ptr @s2n_strerror_debug(i32 noundef %3828, ptr noundef nonnull @.str.4) #11
  %3830 = load i32, ptr %1043, align 4, !tbaa !5
  %3831 = call ptr @strerror(i32 noundef %3830) #11
  %3832 = load i32, ptr %1043, align 4, !tbaa !5
  %3833 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3824, ptr noundef nonnull %.str.5.sink1995, i32 noundef %3825, ptr noundef nonnull @.str.68, ptr noundef nonnull @.str.1, i32 noundef 410, ptr noundef %3827, ptr noundef %3829, ptr noundef %3831, i32 noundef %3832) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3834:                                             ; preds = %3798
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %28) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %28, i8 0, i64 24, i1 false)
  %3835 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef nonnull %28, ptr noundef nonnull @.str.69) #11
  %3836 = call zeroext i1 @s2n_result_is_ok(i32 %3835)
  br i1 %3836, label %3838, label %.thread

.thread:                                          ; preds = %3834
  %3837 = call i32 @s2n_free(ptr noundef nonnull %28) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %28) #11
  br label %5055

3838:                                             ; preds = %3834
  %3839 = load i32, ptr @test_count, align 4, !tbaa !5
  %3840 = add nsw i32 %3839, 1
  store i32 %3840, ptr @test_count, align 4, !tbaa !5
  %3841 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_tls13_aes_128_gcm_sha256, i64 48), align 8, !tbaa !49
  %3842 = load ptr, ptr %3841, align 8, !tbaa !51
  %3843 = getelementptr inbounds i8, ptr %3842, i64 80
  %3844 = load ptr, ptr %3843, align 8, !tbaa !55
  %3845 = call i32 %3844(ptr noundef nonnull %3802, ptr noundef nonnull %28) #11
  %3846 = call zeroext i1 @s2n_result_is_ok(i32 %3845)
  br i1 %3846, label %3869, label %3847

3847:                                             ; preds = %3838
  %3848 = load i32, ptr %1043, align 4, !tbaa !5
  %3849 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3850 = call i32 @s2n_print_stacktrace(ptr noundef %3849) #11
  %3851 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3852 = trunc nuw i8 %3851 to i1
  br i1 %3852, label %3853, label %3857

3853:                                             ; preds = %3847
  %3854 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3855 = call i32 @fileno(ptr noundef %3854) #11
  %3856 = call i32 @isatty(i32 noundef %3855) #11
  %.not679 = icmp eq i32 %3856, 0
  br i1 %.not679, label %3857, label %3858

3857:                                             ; preds = %3853, %3847
  br label %3858

3858:                                             ; preds = %3853, %3857
  %.str.5.sink2004 = phi ptr [ @.str.5, %3857 ], [ @.str.2, %3853 ]
  store i32 %3848, ptr %1043, align 4, !tbaa !5
  %3859 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3860 = load i32, ptr @test_count, align 4, !tbaa !5
  %3861 = load i32, ptr %989, align 4, !tbaa !5
  %3862 = call ptr @s2n_strerror(i32 noundef %3861, ptr noundef nonnull @.str.4) #11
  %3863 = load i32, ptr %989, align 4, !tbaa !5
  %3864 = call ptr @s2n_strerror_debug(i32 noundef %3863, ptr noundef nonnull @.str.4) #11
  %3865 = load i32, ptr %1043, align 4, !tbaa !5
  %3866 = call ptr @strerror(i32 noundef %3865) #11
  %3867 = load i32, ptr %1043, align 4, !tbaa !5
  %3868 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3859, ptr noundef nonnull %.str.5.sink2004, i32 noundef %3860, ptr noundef nonnull @.str.70, ptr noundef nonnull @.str.1, i32 noundef 412, ptr noundef %3862, ptr noundef %3864, ptr noundef %3866, i32 noundef %3867) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3869:                                             ; preds = %3838
  %3870 = load i32, ptr @test_count, align 4, !tbaa !5
  %3871 = add nsw i32 %3870, 1
  store i32 %3871, ptr @test_count, align 4, !tbaa !5
  %3872 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_tls13_aes_128_gcm_sha256, i64 48), align 8, !tbaa !49
  %3873 = load ptr, ptr %3872, align 8, !tbaa !51
  %3874 = getelementptr inbounds i8, ptr %3873, i64 72
  %3875 = load ptr, ptr %3874, align 8, !tbaa !56
  %3876 = call i32 %3875(ptr noundef nonnull %3802, ptr noundef nonnull %28) #11
  %3877 = call zeroext i1 @s2n_result_is_ok(i32 %3876)
  br i1 %3877, label %3900, label %3878

3878:                                             ; preds = %3869
  %3879 = load i32, ptr %1043, align 4, !tbaa !5
  %3880 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3881 = call i32 @s2n_print_stacktrace(ptr noundef %3880) #11
  %3882 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3883 = trunc nuw i8 %3882 to i1
  br i1 %3883, label %3884, label %3888

3884:                                             ; preds = %3878
  %3885 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3886 = call i32 @fileno(ptr noundef %3885) #11
  %3887 = call i32 @isatty(i32 noundef %3886) #11
  %.not680 = icmp eq i32 %3887, 0
  br i1 %.not680, label %3888, label %3889

3888:                                             ; preds = %3884, %3878
  br label %3889

3889:                                             ; preds = %3884, %3888
  %.str.5.sink2013 = phi ptr [ @.str.5, %3888 ], [ @.str.2, %3884 ]
  store i32 %3879, ptr %1043, align 4, !tbaa !5
  %3890 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3891 = load i32, ptr @test_count, align 4, !tbaa !5
  %3892 = load i32, ptr %989, align 4, !tbaa !5
  %3893 = call ptr @s2n_strerror(i32 noundef %3892, ptr noundef nonnull @.str.4) #11
  %3894 = load i32, ptr %989, align 4, !tbaa !5
  %3895 = call ptr @s2n_strerror_debug(i32 noundef %3894, ptr noundef nonnull @.str.4) #11
  %3896 = load i32, ptr %1043, align 4, !tbaa !5
  %3897 = call ptr @strerror(i32 noundef %3896) #11
  %3898 = load i32, ptr %1043, align 4, !tbaa !5
  %3899 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3890, ptr noundef nonnull %.str.5.sink2013, i32 noundef %3891, ptr noundef nonnull @.str.71, ptr noundef nonnull @.str.1, i32 noundef 413, ptr noundef %3893, ptr noundef %3895, ptr noundef %3897, i32 noundef %3898) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3900:                                             ; preds = %3869
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %29) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %29, i8 0, i64 24, i1 false)
  %3901 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef nonnull %29, ptr noundef nonnull @.str.72) #11
  %3902 = call zeroext i1 @s2n_result_is_ok(i32 %3901)
  br i1 %3902, label %.preheader, label %4526

.preheader:                                       ; preds = %3900
  %3903 = getelementptr inbounds i8, ptr %29, i64 8
  %3904 = load i32, ptr %3903, align 8, !tbaa !60
  %.not790 = icmp eq i32 %3904, 0
  br i1 %.not790, label %._crit_edge, label %.lr.ph

._crit_edge:                                      ; preds = %.lr.ph, %.preheader
  %3905 = load i32, ptr @test_count, align 4, !tbaa !5
  %3906 = add nsw i32 %3905, 1
  store i32 %3906, ptr @test_count, align 4, !tbaa !5
  %3907 = call i32 @s2n_connection_prefer_throughput(ptr noundef nonnull %3774) #11
  %3908 = icmp eq i32 %3907, -1
  br i1 %3908, label %3917, label %3939

.lr.ph:                                           ; preds = %.preheader, %.lr.ph
  %.0587789 = phi i64 [ %3913, %.lr.ph ], [ 0, %.preheader ]
  %3909 = load ptr, ptr %29, align 8, !tbaa !69
  %3910 = getelementptr inbounds i8, ptr %3909, i64 %.0587789
  %3911 = load i8, ptr %3910, align 1, !tbaa !59
  %3912 = getelementptr inbounds i8, ptr %3803, i64 %.0587789
  store i8 %3911, ptr %3912, align 1, !tbaa !59
  %3913 = add nuw nsw i64 %.0587789, 1
  %3914 = load i32, ptr %3903, align 8, !tbaa !60
  %3915 = zext i32 %3914 to i64
  %3916 = icmp ult i64 %3913, %3915
  br i1 %3916, label %.lr.ph, label %._crit_edge, !llvm.loop !70

3917:                                             ; preds = %._crit_edge
  %3918 = load i32, ptr %1043, align 4, !tbaa !5
  %3919 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3920 = call i32 @s2n_print_stacktrace(ptr noundef %3919) #11
  %3921 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3922 = trunc nuw i8 %3921 to i1
  br i1 %3922, label %3923, label %3927

3923:                                             ; preds = %3917
  %3924 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3925 = call i32 @fileno(ptr noundef %3924) #11
  %3926 = call i32 @isatty(i32 noundef %3925) #11
  %.not726 = icmp eq i32 %3926, 0
  br i1 %.not726, label %3927, label %3928

3927:                                             ; preds = %3923, %3917
  br label %3928

3928:                                             ; preds = %3923, %3927
  %.str.5.sink2022 = phi ptr [ @.str.5, %3927 ], [ @.str.2, %3923 ]
  store i32 %3918, ptr %1043, align 4, !tbaa !5
  %3929 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3930 = load i32, ptr @test_count, align 4, !tbaa !5
  %3931 = load i32, ptr %989, align 4, !tbaa !5
  %3932 = call ptr @s2n_strerror(i32 noundef %3931, ptr noundef nonnull @.str.4) #11
  %3933 = load i32, ptr %989, align 4, !tbaa !5
  %3934 = call ptr @s2n_strerror_debug(i32 noundef %3933, ptr noundef nonnull @.str.4) #11
  %3935 = load i32, ptr %1043, align 4, !tbaa !5
  %3936 = call ptr @strerror(i32 noundef %3935) #11
  %3937 = load i32, ptr %1043, align 4, !tbaa !5
  %3938 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3929, ptr noundef nonnull %.str.5.sink2022, i32 noundef %3930, ptr noundef nonnull @.str.73, ptr noundef nonnull @.str.1, i32 noundef 423, ptr noundef %3932, ptr noundef %3934, ptr noundef %3936, i32 noundef %3937) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3939:                                             ; preds = %._crit_edge
  call void @llvm.lifetime.start.p0(i64 1024, ptr nonnull %30) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(1024) %30, i8 0, i64 1024, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %31) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %31, i8 0, i64 24, i1 false)
  %3940 = call i32 @s2n_blob_init(ptr noundef nonnull %31, ptr noundef nonnull %30, i32 noundef 1024) #11
  %3941 = icmp sgt i32 %3940, -1
  br i1 %3941, label %3942, label %4525

3942:                                             ; preds = %3939
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %32) #11
  %3943 = load ptr, ptr %31, align 8, !tbaa !69
  store ptr %3943, ptr %32, align 8, !tbaa !72
  %3944 = getelementptr inbounds i8, ptr %31, i64 8
  %3945 = load i32, ptr %3944, align 8, !tbaa !60
  %3946 = zext i32 %3945 to i64
  %3947 = getelementptr inbounds i8, ptr %32, i64 8
  store i64 %3946, ptr %3947, align 8, !tbaa !74
  %3948 = load i32, ptr @test_count, align 4, !tbaa !5
  %3949 = add nsw i32 %3948, 1
  store i32 %3949, ptr @test_count, align 4, !tbaa !5
  %3950 = call i32 @s2n_record_writev(ptr noundef nonnull %3774, i8 noundef zeroext 23, ptr noundef nonnull %32, i32 noundef 1, i64 noundef 0, i64 noundef %3946) #11
  %3951 = icmp eq i32 %3950, -1
  br i1 %3951, label %3952, label %3974

3952:                                             ; preds = %3942
  %3953 = load i32, ptr %1043, align 4, !tbaa !5
  %3954 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3955 = call i32 @s2n_print_stacktrace(ptr noundef %3954) #11
  %3956 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3957 = trunc nuw i8 %3956 to i1
  br i1 %3957, label %3958, label %3962

3958:                                             ; preds = %3952
  %3959 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3960 = call i32 @fileno(ptr noundef %3959) #11
  %3961 = call i32 @isatty(i32 noundef %3960) #11
  %.not725 = icmp eq i32 %3961, 0
  br i1 %.not725, label %3962, label %3963

3962:                                             ; preds = %3958, %3952
  br label %3963

3963:                                             ; preds = %3958, %3962
  %.str.5.sink2031 = phi ptr [ @.str.5, %3962 ], [ @.str.2, %3958 ]
  store i32 %3953, ptr %1043, align 4, !tbaa !5
  %3964 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3965 = load i32, ptr @test_count, align 4, !tbaa !5
  %3966 = load i32, ptr %989, align 4, !tbaa !5
  %3967 = call ptr @s2n_strerror(i32 noundef %3966, ptr noundef nonnull @.str.4) #11
  %3968 = load i32, ptr %989, align 4, !tbaa !5
  %3969 = call ptr @s2n_strerror_debug(i32 noundef %3968, ptr noundef nonnull @.str.4) #11
  %3970 = load i32, ptr %1043, align 4, !tbaa !5
  %3971 = call ptr @strerror(i32 noundef %3970) #11
  %3972 = load i32, ptr %1043, align 4, !tbaa !5
  %3973 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3964, ptr noundef nonnull %.str.5.sink2031, i32 noundef %3965, ptr noundef nonnull @.str.75, ptr noundef nonnull @.str.1, i32 noundef 434, ptr noundef %3967, ptr noundef %3969, ptr noundef %3971, i32 noundef %3972) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3974:                                             ; preds = %3942
  %3975 = load i32, ptr @test_count, align 4, !tbaa !5
  %3976 = add nsw i32 %3975, 1
  store i32 %3976, ptr @test_count, align 4, !tbaa !5
  %3977 = icmp eq i32 %3950, 1024
  br i1 %3977, label %4000, label %3978

3978:                                             ; preds = %3974
  %3979 = load i32, ptr %1043, align 4, !tbaa !5
  %3980 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3981 = call i32 @s2n_print_stacktrace(ptr noundef %3980) #11
  %3982 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3983 = trunc nuw i8 %3982 to i1
  br i1 %3983, label %3984, label %3988

3984:                                             ; preds = %3978
  %3985 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3986 = call i32 @fileno(ptr noundef %3985) #11
  %3987 = call i32 @isatty(i32 noundef %3986) #11
  %.not681 = icmp eq i32 %3987, 0
  br i1 %.not681, label %3988, label %3989

3988:                                             ; preds = %3984, %3978
  br label %3989

3989:                                             ; preds = %3984, %3988
  %.str.5.sink2040 = phi ptr [ @.str.5, %3988 ], [ @.str.2, %3984 ]
  store i32 %3979, ptr %1043, align 4, !tbaa !5
  %3990 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3991 = load i32, ptr @test_count, align 4, !tbaa !5
  %3992 = load i32, ptr %989, align 4, !tbaa !5
  %3993 = call ptr @s2n_strerror(i32 noundef %3992, ptr noundef nonnull @.str.4) #11
  %3994 = load i32, ptr %989, align 4, !tbaa !5
  %3995 = call ptr @s2n_strerror_debug(i32 noundef %3994, ptr noundef nonnull @.str.4) #11
  %3996 = load i32, ptr %1043, align 4, !tbaa !5
  %3997 = call ptr @strerror(i32 noundef %3996) #11
  %3998 = load i32, ptr %1043, align 4, !tbaa !5
  %3999 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3990, ptr noundef nonnull %.str.5.sink2040, i32 noundef %3991, ptr noundef nonnull @.str.76, ptr noundef nonnull @.str.1, i32 noundef 435, ptr noundef %3993, ptr noundef %3995, ptr noundef %3997, i32 noundef %3998) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4000:                                             ; preds = %3974
  %4001 = add nsw i32 %3975, 2
  store i32 %4001, ptr @test_count, align 4, !tbaa !5
  %4002 = getelementptr inbounds i8, ptr %3774, i64 1896
  %4003 = getelementptr inbounds i8, ptr %3774, i64 1924
  %4004 = load i32, ptr %4003, align 4, !tbaa !65
  %4005 = getelementptr inbounds i8, ptr %3774, i64 1920
  %4006 = load i32, ptr %4005, align 8, !tbaa !66
  %4007 = sub i32 %4004, %4006
  %4008 = icmp eq i32 %4007, 1046
  br i1 %4008, label %4031, label %4009

4009:                                             ; preds = %4000
  %4010 = load i32, ptr %1043, align 4, !tbaa !5
  %4011 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4012 = call i32 @s2n_print_stacktrace(ptr noundef %4011) #11
  %4013 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4014 = trunc nuw i8 %4013 to i1
  br i1 %4014, label %4015, label %4019

4015:                                             ; preds = %4009
  %4016 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4017 = call i32 @fileno(ptr noundef %4016) #11
  %4018 = call i32 @isatty(i32 noundef %4017) #11
  %.not682 = icmp eq i32 %4018, 0
  br i1 %.not682, label %4019, label %4020

4019:                                             ; preds = %4015, %4009
  br label %4020

4020:                                             ; preds = %4015, %4019
  %.str.5.sink2049 = phi ptr [ @.str.5, %4019 ], [ @.str.2, %4015 ]
  store i32 %4010, ptr %1043, align 4, !tbaa !5
  %4021 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4022 = load i32, ptr @test_count, align 4, !tbaa !5
  %4023 = load i32, ptr %989, align 4, !tbaa !5
  %4024 = call ptr @s2n_strerror(i32 noundef %4023, ptr noundef nonnull @.str.4) #11
  %4025 = load i32, ptr %989, align 4, !tbaa !5
  %4026 = call ptr @s2n_strerror_debug(i32 noundef %4025, ptr noundef nonnull @.str.4) #11
  %4027 = load i32, ptr %1043, align 4, !tbaa !5
  %4028 = call ptr @strerror(i32 noundef %4027) #11
  %4029 = load i32, ptr %1043, align 4, !tbaa !5
  %4030 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4021, ptr noundef nonnull %.str.5.sink2049, i32 noundef %4022, ptr noundef nonnull @.str.77, ptr noundef nonnull @.str.1, i32 noundef 436, ptr noundef %4024, ptr noundef %4026, ptr noundef %4028, i32 noundef %4029) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4031:                                             ; preds = %4000
  %4032 = add nsw i32 %3975, 3
  store i32 %4032, ptr @test_count, align 4, !tbaa !5
  %4033 = call i32 @s2n_record_write(ptr noundef nonnull %3774, i8 noundef zeroext 23, ptr noundef nonnull %31) #11
  %4034 = call zeroext i1 @s2n_result_is_error(i32 %4033)
  br i1 %4034, label %4057, label %4035

4035:                                             ; preds = %4031
  %4036 = load i32, ptr %1043, align 4, !tbaa !5
  %4037 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4038 = call i32 @s2n_print_stacktrace(ptr noundef %4037) #11
  %4039 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4040 = trunc nuw i8 %4039 to i1
  br i1 %4040, label %4041, label %4045

4041:                                             ; preds = %4035
  %4042 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4043 = call i32 @fileno(ptr noundef %4042) #11
  %4044 = call i32 @isatty(i32 noundef %4043) #11
  %.not683 = icmp eq i32 %4044, 0
  br i1 %.not683, label %4045, label %4046

4045:                                             ; preds = %4041, %4035
  br label %4046

4046:                                             ; preds = %4041, %4045
  %.str.5.sink2058 = phi ptr [ @.str.5, %4045 ], [ @.str.2, %4041 ]
  store i32 %4036, ptr %1043, align 4, !tbaa !5
  %4047 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4048 = load i32, ptr @test_count, align 4, !tbaa !5
  %4049 = load i32, ptr %989, align 4, !tbaa !5
  %4050 = call ptr @s2n_strerror(i32 noundef %4049, ptr noundef nonnull @.str.4) #11
  %4051 = load i32, ptr %989, align 4, !tbaa !5
  %4052 = call ptr @s2n_strerror_debug(i32 noundef %4051, ptr noundef nonnull @.str.4) #11
  %4053 = load i32, ptr %1043, align 4, !tbaa !5
  %4054 = call ptr @strerror(i32 noundef %4053) #11
  %4055 = load i32, ptr %1043, align 4, !tbaa !5
  %4056 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4047, ptr noundef nonnull %.str.5.sink2058, i32 noundef %4048, ptr noundef nonnull @.str.78, ptr noundef nonnull @.str.1, i32 noundef 439, ptr noundef %4050, ptr noundef %4052, ptr noundef %4054, i32 noundef %4055) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4057:                                             ; preds = %4031
  %4058 = load i32, ptr @test_count, align 4, !tbaa !5
  %4059 = add nsw i32 %4058, 1
  store i32 %4059, ptr @test_count, align 4, !tbaa !5
  %4060 = load i32, ptr %989, align 4, !tbaa !5
  %4061 = icmp eq i32 %4060, 335544392
  br i1 %4061, label %4084, label %4062

4062:                                             ; preds = %4057
  %4063 = load i32, ptr %1043, align 4, !tbaa !5
  %4064 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4065 = call i32 @s2n_print_stacktrace(ptr noundef %4064) #11
  %4066 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4067 = trunc nuw i8 %4066 to i1
  br i1 %4067, label %4068, label %4072

4068:                                             ; preds = %4062
  %4069 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4070 = call i32 @fileno(ptr noundef %4069) #11
  %4071 = call i32 @isatty(i32 noundef %4070) #11
  %.not684 = icmp eq i32 %4071, 0
  br i1 %.not684, label %4072, label %4073

4072:                                             ; preds = %4068, %4062
  br label %4073

4073:                                             ; preds = %4068, %4072
  %.str.5.sink2067 = phi ptr [ @.str.5, %4072 ], [ @.str.2, %4068 ]
  store i32 %4063, ptr %1043, align 4, !tbaa !5
  %4074 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4075 = load i32, ptr @test_count, align 4, !tbaa !5
  %4076 = load i32, ptr %989, align 4, !tbaa !5
  %4077 = call ptr @s2n_strerror(i32 noundef %4076, ptr noundef nonnull @.str.4) #11
  %4078 = load i32, ptr %989, align 4, !tbaa !5
  %4079 = call ptr @s2n_strerror_debug(i32 noundef %4078, ptr noundef nonnull @.str.4) #11
  %4080 = load i32, ptr %1043, align 4, !tbaa !5
  %4081 = call ptr @strerror(i32 noundef %4080) #11
  %4082 = load i32, ptr %1043, align 4, !tbaa !5
  %4083 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4074, ptr noundef nonnull %.str.5.sink2067, i32 noundef %4075, ptr noundef nonnull @.str.79, ptr noundef nonnull @.str.1, i32 noundef 439, ptr noundef %4077, ptr noundef %4079, ptr noundef %4081, i32 noundef %4082) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4084:                                             ; preds = %4057
  %4085 = add nsw i32 %4058, 2
  store i32 %4085, ptr @test_count, align 4, !tbaa !5
  %4086 = call ptr @s2n_strerror_debug(i32 noundef 335544392, ptr noundef nonnull @.str.4) #11
  %4087 = icmp eq ptr %4086, null
  br i1 %4087, label %4088, label %4110

4088:                                             ; preds = %4084
  %4089 = load i32, ptr %1043, align 4, !tbaa !5
  %4090 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4091 = call i32 @s2n_print_stacktrace(ptr noundef %4090) #11
  %4092 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4093 = trunc nuw i8 %4092 to i1
  br i1 %4093, label %4094, label %4098

4094:                                             ; preds = %4088
  %4095 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4096 = call i32 @fileno(ptr noundef %4095) #11
  %4097 = call i32 @isatty(i32 noundef %4096) #11
  %.not724 = icmp eq i32 %4097, 0
  br i1 %.not724, label %4098, label %4099

4098:                                             ; preds = %4094, %4088
  br label %4099

4099:                                             ; preds = %4094, %4098
  %.str.5.sink2076 = phi ptr [ @.str.5, %4098 ], [ @.str.2, %4094 ]
  store i32 %4089, ptr %1043, align 4, !tbaa !5
  %4100 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4101 = load i32, ptr @test_count, align 4, !tbaa !5
  %4102 = load i32, ptr %989, align 4, !tbaa !5
  %4103 = call ptr @s2n_strerror(i32 noundef %4102, ptr noundef nonnull @.str.4) #11
  %4104 = load i32, ptr %989, align 4, !tbaa !5
  %4105 = call ptr @s2n_strerror_debug(i32 noundef %4104, ptr noundef nonnull @.str.4) #11
  %4106 = load i32, ptr %1043, align 4, !tbaa !5
  %4107 = call ptr @strerror(i32 noundef %4106) #11
  %4108 = load i32, ptr %1043, align 4, !tbaa !5
  %4109 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4100, ptr noundef nonnull %.str.5.sink2076, i32 noundef %4101, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 439, ptr noundef %4103, ptr noundef %4105, ptr noundef %4107, i32 noundef %4108) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4110:                                             ; preds = %4084
  store i32 0, ptr %989, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %1043, align 4, !tbaa !5
  %4111 = load i32, ptr @test_count, align 4, !tbaa !5
  %4112 = add nsw i32 %4111, 1
  store i32 %4112, ptr @test_count, align 4, !tbaa !5
  %4113 = call i32 @s2n_stuffer_wipe(ptr noundef nonnull %4002) #11
  %4114 = icmp eq i32 %4113, -1
  br i1 %4114, label %4115, label %4137

4115:                                             ; preds = %4110
  %4116 = load i32, ptr %1043, align 4, !tbaa !5
  %4117 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4118 = call i32 @s2n_print_stacktrace(ptr noundef %4117) #11
  %4119 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4120 = trunc nuw i8 %4119 to i1
  br i1 %4120, label %4121, label %4125

4121:                                             ; preds = %4115
  %4122 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4123 = call i32 @fileno(ptr noundef %4122) #11
  %4124 = call i32 @isatty(i32 noundef %4123) #11
  %.not723 = icmp eq i32 %4124, 0
  br i1 %.not723, label %4125, label %4126

4125:                                             ; preds = %4121, %4115
  br label %4126

4126:                                             ; preds = %4121, %4125
  %.str.5.sink2085 = phi ptr [ @.str.5, %4125 ], [ @.str.2, %4121 ]
  store i32 %4116, ptr %1043, align 4, !tbaa !5
  %4127 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4128 = load i32, ptr @test_count, align 4, !tbaa !5
  %4129 = load i32, ptr %989, align 4, !tbaa !5
  %4130 = call ptr @s2n_strerror(i32 noundef %4129, ptr noundef nonnull @.str.4) #11
  %4131 = load i32, ptr %989, align 4, !tbaa !5
  %4132 = call ptr @s2n_strerror_debug(i32 noundef %4131, ptr noundef nonnull @.str.4) #11
  %4133 = load i32, ptr %1043, align 4, !tbaa !5
  %4134 = call ptr @strerror(i32 noundef %4133) #11
  %4135 = load i32, ptr %1043, align 4, !tbaa !5
  %4136 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4127, ptr noundef nonnull %.str.5.sink2085, i32 noundef %4128, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 440, ptr noundef %4130, ptr noundef %4132, ptr noundef %4134, i32 noundef %4135) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4137:                                             ; preds = %4110
  %4138 = load i32, ptr @test_count, align 4, !tbaa !5
  %4139 = add nsw i32 %4138, 1
  store i32 %4139, ptr @test_count, align 4, !tbaa !5
  %4140 = call i32 @s2n_record_write(ptr noundef nonnull %3774, i8 noundef zeroext 23, ptr noundef nonnull %31) #11
  %4141 = call zeroext i1 @s2n_result_is_ok(i32 %4140)
  br i1 %4141, label %4164, label %4142

4142:                                             ; preds = %4137
  %4143 = load i32, ptr %1043, align 4, !tbaa !5
  %4144 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4145 = call i32 @s2n_print_stacktrace(ptr noundef %4144) #11
  %4146 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4147 = trunc nuw i8 %4146 to i1
  br i1 %4147, label %4148, label %4152

4148:                                             ; preds = %4142
  %4149 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4150 = call i32 @fileno(ptr noundef %4149) #11
  %4151 = call i32 @isatty(i32 noundef %4150) #11
  %.not685 = icmp eq i32 %4151, 0
  br i1 %.not685, label %4152, label %4153

4152:                                             ; preds = %4148, %4142
  br label %4153

4153:                                             ; preds = %4148, %4152
  %.str.5.sink2094 = phi ptr [ @.str.5, %4152 ], [ @.str.2, %4148 ]
  store i32 %4143, ptr %1043, align 4, !tbaa !5
  %4154 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4155 = load i32, ptr @test_count, align 4, !tbaa !5
  %4156 = load i32, ptr %989, align 4, !tbaa !5
  %4157 = call ptr @s2n_strerror(i32 noundef %4156, ptr noundef nonnull @.str.4) #11
  %4158 = load i32, ptr %989, align 4, !tbaa !5
  %4159 = call ptr @s2n_strerror_debug(i32 noundef %4158, ptr noundef nonnull @.str.4) #11
  %4160 = load i32, ptr %1043, align 4, !tbaa !5
  %4161 = call ptr @strerror(i32 noundef %4160) #11
  %4162 = load i32, ptr %1043, align 4, !tbaa !5
  %4163 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4154, ptr noundef nonnull %.str.5.sink2094, i32 noundef %4155, ptr noundef nonnull @.str.80, ptr noundef nonnull @.str.1, i32 noundef 441, ptr noundef %4157, ptr noundef %4159, ptr noundef %4161, i32 noundef %4162) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4164:                                             ; preds = %4137
  %4165 = load i32, ptr @test_count, align 4, !tbaa !5
  %4166 = add nsw i32 %4165, 1
  store i32 %4166, ptr @test_count, align 4, !tbaa !5
  %4167 = call i32 @s2n_stuffer_wipe(ptr noundef nonnull %4002) #11
  %4168 = icmp eq i32 %4167, -1
  br i1 %4168, label %4169, label %4191

4169:                                             ; preds = %4164
  %4170 = load i32, ptr %1043, align 4, !tbaa !5
  %4171 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4172 = call i32 @s2n_print_stacktrace(ptr noundef %4171) #11
  %4173 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4174 = trunc nuw i8 %4173 to i1
  br i1 %4174, label %4175, label %4179

4175:                                             ; preds = %4169
  %4176 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4177 = call i32 @fileno(ptr noundef %4176) #11
  %4178 = call i32 @isatty(i32 noundef %4177) #11
  %.not722 = icmp eq i32 %4178, 0
  br i1 %.not722, label %4179, label %4180

4179:                                             ; preds = %4175, %4169
  br label %4180

4180:                                             ; preds = %4175, %4179
  %.str.5.sink2103 = phi ptr [ @.str.5, %4179 ], [ @.str.2, %4175 ]
  store i32 %4170, ptr %1043, align 4, !tbaa !5
  %4181 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4182 = load i32, ptr @test_count, align 4, !tbaa !5
  %4183 = load i32, ptr %989, align 4, !tbaa !5
  %4184 = call ptr @s2n_strerror(i32 noundef %4183, ptr noundef nonnull @.str.4) #11
  %4185 = load i32, ptr %989, align 4, !tbaa !5
  %4186 = call ptr @s2n_strerror_debug(i32 noundef %4185, ptr noundef nonnull @.str.4) #11
  %4187 = load i32, ptr %1043, align 4, !tbaa !5
  %4188 = call ptr @strerror(i32 noundef %4187) #11
  %4189 = load i32, ptr %1043, align 4, !tbaa !5
  %4190 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4181, ptr noundef nonnull %.str.5.sink2103, i32 noundef %4182, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 442, ptr noundef %4184, ptr noundef %4186, ptr noundef %4188, i32 noundef %4189) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4191:                                             ; preds = %4164
  call void @llvm.lifetime.start.p0(i64 100000, ptr nonnull %33) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(100000) %33, i8 0, i64 100000, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %34) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %34, i8 0, i64 24, i1 false)
  %4192 = call i32 @s2n_blob_init(ptr noundef nonnull %34, ptr noundef nonnull %33, i32 noundef 100000) #11
  %4193 = icmp sgt i32 %4192, -1
  br i1 %4193, label %4194, label %4524

4194:                                             ; preds = %4191
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %35) #11
  %4195 = load ptr, ptr %34, align 8, !tbaa !69
  store ptr %4195, ptr %35, align 8, !tbaa !72
  %4196 = getelementptr inbounds i8, ptr %34, i64 8
  %4197 = load i32, ptr %4196, align 8, !tbaa !60
  %4198 = zext i32 %4197 to i64
  %4199 = getelementptr inbounds i8, ptr %35, i64 8
  store i64 %4198, ptr %4199, align 8, !tbaa !74
  %4200 = load i32, ptr @test_count, align 4, !tbaa !5
  %4201 = add nsw i32 %4200, 1
  store i32 %4201, ptr @test_count, align 4, !tbaa !5
  %4202 = call i32 @s2n_record_writev(ptr noundef nonnull %3774, i8 noundef zeroext 23, ptr noundef nonnull %35, i32 noundef 1, i64 noundef 0, i64 noundef %4198) #11
  %4203 = icmp eq i32 %4202, -1
  br i1 %4203, label %4204, label %4226

4204:                                             ; preds = %4194
  %4205 = load i32, ptr %1043, align 4, !tbaa !5
  %4206 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4207 = call i32 @s2n_print_stacktrace(ptr noundef %4206) #11
  %4208 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4209 = trunc nuw i8 %4208 to i1
  br i1 %4209, label %4210, label %4214

4210:                                             ; preds = %4204
  %4211 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4212 = call i32 @fileno(ptr noundef %4211) #11
  %4213 = call i32 @isatty(i32 noundef %4212) #11
  %.not721 = icmp eq i32 %4213, 0
  br i1 %.not721, label %4214, label %4215

4214:                                             ; preds = %4210, %4204
  br label %4215

4215:                                             ; preds = %4210, %4214
  %.str.5.sink2112 = phi ptr [ @.str.5, %4214 ], [ @.str.2, %4210 ]
  store i32 %4205, ptr %1043, align 4, !tbaa !5
  %4216 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4217 = load i32, ptr @test_count, align 4, !tbaa !5
  %4218 = load i32, ptr %989, align 4, !tbaa !5
  %4219 = call ptr @s2n_strerror(i32 noundef %4218, ptr noundef nonnull @.str.4) #11
  %4220 = load i32, ptr %989, align 4, !tbaa !5
  %4221 = call ptr @s2n_strerror_debug(i32 noundef %4220, ptr noundef nonnull @.str.4) #11
  %4222 = load i32, ptr %1043, align 4, !tbaa !5
  %4223 = call ptr @strerror(i32 noundef %4222) #11
  %4224 = load i32, ptr %1043, align 4, !tbaa !5
  %4225 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4216, ptr noundef nonnull %.str.5.sink2112, i32 noundef %4217, ptr noundef nonnull @.str.82, ptr noundef nonnull @.str.1, i32 noundef 453, ptr noundef %4219, ptr noundef %4221, ptr noundef %4223, i32 noundef %4224) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4226:                                             ; preds = %4194
  %4227 = load i32, ptr @test_count, align 4, !tbaa !5
  %4228 = add nsw i32 %4227, 1
  store i32 %4228, ptr @test_count, align 4, !tbaa !5
  %4229 = icmp eq i32 %4202, 16384
  br i1 %4229, label %4252, label %4230

4230:                                             ; preds = %4226
  %4231 = load i32, ptr %1043, align 4, !tbaa !5
  %4232 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4233 = call i32 @s2n_print_stacktrace(ptr noundef %4232) #11
  %4234 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4235 = trunc nuw i8 %4234 to i1
  br i1 %4235, label %4236, label %4240

4236:                                             ; preds = %4230
  %4237 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4238 = call i32 @fileno(ptr noundef %4237) #11
  %4239 = call i32 @isatty(i32 noundef %4238) #11
  %.not686 = icmp eq i32 %4239, 0
  br i1 %.not686, label %4240, label %4241

4240:                                             ; preds = %4236, %4230
  br label %4241

4241:                                             ; preds = %4236, %4240
  %.str.5.sink2121 = phi ptr [ @.str.5, %4240 ], [ @.str.2, %4236 ]
  store i32 %4231, ptr %1043, align 4, !tbaa !5
  %4242 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4243 = load i32, ptr @test_count, align 4, !tbaa !5
  %4244 = load i32, ptr %989, align 4, !tbaa !5
  %4245 = call ptr @s2n_strerror(i32 noundef %4244, ptr noundef nonnull @.str.4) #11
  %4246 = load i32, ptr %989, align 4, !tbaa !5
  %4247 = call ptr @s2n_strerror_debug(i32 noundef %4246, ptr noundef nonnull @.str.4) #11
  %4248 = load i32, ptr %1043, align 4, !tbaa !5
  %4249 = call ptr @strerror(i32 noundef %4248) #11
  %4250 = load i32, ptr %1043, align 4, !tbaa !5
  %4251 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4242, ptr noundef nonnull %.str.5.sink2121, i32 noundef %4243, ptr noundef nonnull @.str.83, ptr noundef nonnull @.str.1, i32 noundef 457, ptr noundef %4245, ptr noundef %4247, ptr noundef %4249, i32 noundef %4250) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4252:                                             ; preds = %4226
  %4253 = add nsw i32 %4227, 2
  store i32 %4253, ptr @test_count, align 4, !tbaa !5
  %4254 = load i32, ptr %4003, align 4, !tbaa !65
  %4255 = load i32, ptr %4005, align 8, !tbaa !66
  %4256 = sub i32 %4254, %4255
  %4257 = icmp eq i32 %4256, 16406
  br i1 %4257, label %4280, label %4258

4258:                                             ; preds = %4252
  %4259 = load i32, ptr %1043, align 4, !tbaa !5
  %4260 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4261 = call i32 @s2n_print_stacktrace(ptr noundef %4260) #11
  %4262 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4263 = trunc nuw i8 %4262 to i1
  br i1 %4263, label %4264, label %4268

4264:                                             ; preds = %4258
  %4265 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4266 = call i32 @fileno(ptr noundef %4265) #11
  %4267 = call i32 @isatty(i32 noundef %4266) #11
  %.not687 = icmp eq i32 %4267, 0
  br i1 %.not687, label %4268, label %4269

4268:                                             ; preds = %4264, %4258
  br label %4269

4269:                                             ; preds = %4264, %4268
  %.str.5.sink2130 = phi ptr [ @.str.5, %4268 ], [ @.str.2, %4264 ]
  store i32 %4259, ptr %1043, align 4, !tbaa !5
  %4270 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4271 = load i32, ptr @test_count, align 4, !tbaa !5
  %4272 = load i32, ptr %989, align 4, !tbaa !5
  %4273 = call ptr @s2n_strerror(i32 noundef %4272, ptr noundef nonnull @.str.4) #11
  %4274 = load i32, ptr %989, align 4, !tbaa !5
  %4275 = call ptr @s2n_strerror_debug(i32 noundef %4274, ptr noundef nonnull @.str.4) #11
  %4276 = load i32, ptr %1043, align 4, !tbaa !5
  %4277 = call ptr @strerror(i32 noundef %4276) #11
  %4278 = load i32, ptr %1043, align 4, !tbaa !5
  %4279 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4270, ptr noundef nonnull %.str.5.sink2130, i32 noundef %4271, ptr noundef nonnull @.str.84, ptr noundef nonnull @.str.1, i32 noundef 458, ptr noundef %4273, ptr noundef %4275, ptr noundef %4277, i32 noundef %4278) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4280:                                             ; preds = %4252
  %4281 = add nsw i32 %4227, 7
  store i32 %4281, ptr @test_count, align 4, !tbaa !5
  %4282 = call i32 @s2n_stuffer_wipe(ptr noundef nonnull %4002) #11
  %4283 = icmp eq i32 %4282, -1
  br i1 %4283, label %4284, label %4306

4284:                                             ; preds = %4280
  %4285 = load i32, ptr %1043, align 4, !tbaa !5
  %4286 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4287 = call i32 @s2n_print_stacktrace(ptr noundef %4286) #11
  %4288 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4289 = trunc nuw i8 %4288 to i1
  br i1 %4289, label %4290, label %4294

4290:                                             ; preds = %4284
  %4291 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4292 = call i32 @fileno(ptr noundef %4291) #11
  %4293 = call i32 @isatty(i32 noundef %4292) #11
  %.not720 = icmp eq i32 %4293, 0
  br i1 %.not720, label %4294, label %4295

4294:                                             ; preds = %4290, %4284
  br label %4295

4295:                                             ; preds = %4290, %4294
  %.str.5.sink2139 = phi ptr [ @.str.5, %4294 ], [ @.str.2, %4290 ]
  store i32 %4285, ptr %1043, align 4, !tbaa !5
  %4296 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4297 = load i32, ptr @test_count, align 4, !tbaa !5
  %4298 = load i32, ptr %989, align 4, !tbaa !5
  %4299 = call ptr @s2n_strerror(i32 noundef %4298, ptr noundef nonnull @.str.4) #11
  %4300 = load i32, ptr %989, align 4, !tbaa !5
  %4301 = call ptr @s2n_strerror_debug(i32 noundef %4300, ptr noundef nonnull @.str.4) #11
  %4302 = load i32, ptr %1043, align 4, !tbaa !5
  %4303 = call ptr @strerror(i32 noundef %4302) #11
  %4304 = load i32, ptr %1043, align 4, !tbaa !5
  %4305 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4296, ptr noundef nonnull %.str.5.sink2139, i32 noundef %4297, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 466, ptr noundef %4299, ptr noundef %4301, ptr noundef %4303, i32 noundef %4304) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4306:                                             ; preds = %4280
  %4307 = getelementptr inbounds i8, ptr %3774, i64 2208
  store i16 16400, ptr %4307, align 8, !tbaa !63
  %4308 = load i32, ptr @test_count, align 4, !tbaa !5
  %4309 = add nsw i32 %4308, 1
  store i32 %4309, ptr @test_count, align 4, !tbaa !5
  %4310 = load i32, ptr %4196, align 8, !tbaa !60
  %4311 = zext i32 %4310 to i64
  %4312 = call i32 @s2n_record_writev(ptr noundef nonnull %3774, i8 noundef zeroext 23, ptr noundef nonnull %35, i32 noundef 1, i64 noundef 0, i64 noundef %4311) #11
  %4313 = icmp eq i32 %4312, -1
  br i1 %4313, label %4314, label %4336

4314:                                             ; preds = %4306
  %4315 = load i32, ptr %1043, align 4, !tbaa !5
  %4316 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4317 = call i32 @s2n_print_stacktrace(ptr noundef %4316) #11
  %4318 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4319 = trunc nuw i8 %4318 to i1
  br i1 %4319, label %4320, label %4324

4320:                                             ; preds = %4314
  %4321 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4322 = call i32 @fileno(ptr noundef %4321) #11
  %4323 = call i32 @isatty(i32 noundef %4322) #11
  %.not719 = icmp eq i32 %4323, 0
  br i1 %.not719, label %4324, label %4325

4324:                                             ; preds = %4320, %4314
  br label %4325

4325:                                             ; preds = %4320, %4324
  %.str.5.sink2148 = phi ptr [ @.str.5, %4324 ], [ @.str.2, %4320 ]
  store i32 %4315, ptr %1043, align 4, !tbaa !5
  %4326 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4327 = load i32, ptr @test_count, align 4, !tbaa !5
  %4328 = load i32, ptr %989, align 4, !tbaa !5
  %4329 = call ptr @s2n_strerror(i32 noundef %4328, ptr noundef nonnull @.str.4) #11
  %4330 = load i32, ptr %989, align 4, !tbaa !5
  %4331 = call ptr @s2n_strerror_debug(i32 noundef %4330, ptr noundef nonnull @.str.4) #11
  %4332 = load i32, ptr %1043, align 4, !tbaa !5
  %4333 = call ptr @strerror(i32 noundef %4332) #11
  %4334 = load i32, ptr %1043, align 4, !tbaa !5
  %4335 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4326, ptr noundef nonnull %.str.5.sink2148, i32 noundef %4327, ptr noundef nonnull @.str.82, ptr noundef nonnull @.str.1, i32 noundef 473, ptr noundef %4329, ptr noundef %4331, ptr noundef %4333, i32 noundef %4334) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4336:                                             ; preds = %4306
  %4337 = load i32, ptr @test_count, align 4, !tbaa !5
  %4338 = add nsw i32 %4337, 1
  store i32 %4338, ptr @test_count, align 4, !tbaa !5
  %4339 = icmp eq i32 %4312, 16384
  br i1 %4339, label %4362, label %4340

4340:                                             ; preds = %4336
  %4341 = load i32, ptr %1043, align 4, !tbaa !5
  %4342 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4343 = call i32 @s2n_print_stacktrace(ptr noundef %4342) #11
  %4344 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4345 = trunc nuw i8 %4344 to i1
  br i1 %4345, label %4346, label %4350

4346:                                             ; preds = %4340
  %4347 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4348 = call i32 @fileno(ptr noundef %4347) #11
  %4349 = call i32 @isatty(i32 noundef %4348) #11
  %.not690 = icmp eq i32 %4349, 0
  br i1 %.not690, label %4350, label %4351

4350:                                             ; preds = %4346, %4340
  br label %4351

4351:                                             ; preds = %4346, %4350
  %.str.5.sink2157 = phi ptr [ @.str.5, %4350 ], [ @.str.2, %4346 ]
  store i32 %4341, ptr %1043, align 4, !tbaa !5
  %4352 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4353 = load i32, ptr @test_count, align 4, !tbaa !5
  %4354 = load i32, ptr %989, align 4, !tbaa !5
  %4355 = call ptr @s2n_strerror(i32 noundef %4354, ptr noundef nonnull @.str.4) #11
  %4356 = load i32, ptr %989, align 4, !tbaa !5
  %4357 = call ptr @s2n_strerror_debug(i32 noundef %4356, ptr noundef nonnull @.str.4) #11
  %4358 = load i32, ptr %1043, align 4, !tbaa !5
  %4359 = call ptr @strerror(i32 noundef %4358) #11
  %4360 = load i32, ptr %1043, align 4, !tbaa !5
  %4361 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4352, ptr noundef nonnull %.str.5.sink2157, i32 noundef %4353, ptr noundef nonnull @.str.83, ptr noundef nonnull @.str.1, i32 noundef 474, ptr noundef %4355, ptr noundef %4357, ptr noundef %4359, i32 noundef %4360) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4362:                                             ; preds = %4336
  %4363 = add nsw i32 %4337, 2
  store i32 %4363, ptr @test_count, align 4, !tbaa !5
  %4364 = call i32 @s2n_stuffer_wipe(ptr noundef nonnull %4002) #11
  %4365 = icmp eq i32 %4364, -1
  br i1 %4365, label %4366, label %4388

4366:                                             ; preds = %4362
  %4367 = load i32, ptr %1043, align 4, !tbaa !5
  %4368 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4369 = call i32 @s2n_print_stacktrace(ptr noundef %4368) #11
  %4370 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4371 = trunc nuw i8 %4370 to i1
  br i1 %4371, label %4372, label %4376

4372:                                             ; preds = %4366
  %4373 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4374 = call i32 @fileno(ptr noundef %4373) #11
  %4375 = call i32 @isatty(i32 noundef %4374) #11
  %.not718 = icmp eq i32 %4375, 0
  br i1 %.not718, label %4376, label %4377

4376:                                             ; preds = %4372, %4366
  br label %4377

4377:                                             ; preds = %4372, %4376
  %.str.5.sink2166 = phi ptr [ @.str.5, %4376 ], [ @.str.2, %4372 ]
  store i32 %4367, ptr %1043, align 4, !tbaa !5
  %4378 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4379 = load i32, ptr @test_count, align 4, !tbaa !5
  %4380 = load i32, ptr %989, align 4, !tbaa !5
  %4381 = call ptr @s2n_strerror(i32 noundef %4380, ptr noundef nonnull @.str.4) #11
  %4382 = load i32, ptr %989, align 4, !tbaa !5
  %4383 = call ptr @s2n_strerror_debug(i32 noundef %4382, ptr noundef nonnull @.str.4) #11
  %4384 = load i32, ptr %1043, align 4, !tbaa !5
  %4385 = call ptr @strerror(i32 noundef %4384) #11
  %4386 = load i32, ptr %1043, align 4, !tbaa !5
  %4387 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4378, ptr noundef nonnull %.str.5.sink2166, i32 noundef %4379, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 475, ptr noundef %4381, ptr noundef %4383, ptr noundef %4385, i32 noundef %4386) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4388:                                             ; preds = %4362
  %4389 = load i32, ptr @test_count, align 4, !tbaa !5
  %4390 = add nsw i32 %4389, 1
  store i32 %4390, ptr @test_count, align 4, !tbaa !5
  %4391 = call i32 @s2n_stuffer_resize(ptr noundef nonnull %4002, i32 noundef 100000) #11
  %4392 = icmp eq i32 %4391, -1
  br i1 %4392, label %4393, label %4415

4393:                                             ; preds = %4388
  %4394 = load i32, ptr %1043, align 4, !tbaa !5
  %4395 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4396 = call i32 @s2n_print_stacktrace(ptr noundef %4395) #11
  %4397 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4398 = trunc nuw i8 %4397 to i1
  br i1 %4398, label %4399, label %4403

4399:                                             ; preds = %4393
  %4400 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4401 = call i32 @fileno(ptr noundef %4400) #11
  %4402 = call i32 @isatty(i32 noundef %4401) #11
  %.not717 = icmp eq i32 %4402, 0
  br i1 %.not717, label %4403, label %4404

4403:                                             ; preds = %4399, %4393
  br label %4404

4404:                                             ; preds = %4399, %4403
  %.str.5.sink2175 = phi ptr [ @.str.5, %4403 ], [ @.str.2, %4399 ]
  store i32 %4394, ptr %1043, align 4, !tbaa !5
  %4405 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4406 = load i32, ptr @test_count, align 4, !tbaa !5
  %4407 = load i32, ptr %989, align 4, !tbaa !5
  %4408 = call ptr @s2n_strerror(i32 noundef %4407, ptr noundef nonnull @.str.4) #11
  %4409 = load i32, ptr %989, align 4, !tbaa !5
  %4410 = call ptr @s2n_strerror_debug(i32 noundef %4409, ptr noundef nonnull @.str.4) #11
  %4411 = load i32, ptr %1043, align 4, !tbaa !5
  %4412 = call ptr @strerror(i32 noundef %4411) #11
  %4413 = load i32, ptr %1043, align 4, !tbaa !5
  %4414 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4405, ptr noundef nonnull %.str.5.sink2175, i32 noundef %4406, ptr noundef nonnull @.str.89, ptr noundef nonnull @.str.1, i32 noundef 478, ptr noundef %4408, ptr noundef %4410, ptr noundef %4412, i32 noundef %4413) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4415:                                             ; preds = %4388
  store i16 16400, ptr %4307, align 8, !tbaa !63
  %4416 = load i32, ptr @test_count, align 4, !tbaa !5
  %4417 = add nsw i32 %4416, 1
  store i32 %4417, ptr @test_count, align 4, !tbaa !5
  %4418 = load i32, ptr %4196, align 8, !tbaa !60
  %4419 = zext i32 %4418 to i64
  %4420 = call i32 @s2n_record_writev(ptr noundef nonnull %3774, i8 noundef zeroext 23, ptr noundef nonnull %35, i32 noundef 1, i64 noundef 0, i64 noundef %4419) #11
  %4421 = icmp eq i32 %4420, -1
  br i1 %4421, label %4422, label %4444

4422:                                             ; preds = %4415
  %4423 = load i32, ptr %1043, align 4, !tbaa !5
  %4424 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4425 = call i32 @s2n_print_stacktrace(ptr noundef %4424) #11
  %4426 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4427 = trunc nuw i8 %4426 to i1
  br i1 %4427, label %4428, label %4432

4428:                                             ; preds = %4422
  %4429 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4430 = call i32 @fileno(ptr noundef %4429) #11
  %4431 = call i32 @isatty(i32 noundef %4430) #11
  %.not716 = icmp eq i32 %4431, 0
  br i1 %.not716, label %4432, label %4433

4432:                                             ; preds = %4428, %4422
  br label %4433

4433:                                             ; preds = %4428, %4432
  %.str.5.sink2184 = phi ptr [ @.str.5, %4432 ], [ @.str.2, %4428 ]
  store i32 %4423, ptr %1043, align 4, !tbaa !5
  %4434 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4435 = load i32, ptr @test_count, align 4, !tbaa !5
  %4436 = load i32, ptr %989, align 4, !tbaa !5
  %4437 = call ptr @s2n_strerror(i32 noundef %4436, ptr noundef nonnull @.str.4) #11
  %4438 = load i32, ptr %989, align 4, !tbaa !5
  %4439 = call ptr @s2n_strerror_debug(i32 noundef %4438, ptr noundef nonnull @.str.4) #11
  %4440 = load i32, ptr %1043, align 4, !tbaa !5
  %4441 = call ptr @strerror(i32 noundef %4440) #11
  %4442 = load i32, ptr %1043, align 4, !tbaa !5
  %4443 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4434, ptr noundef nonnull %.str.5.sink2184, i32 noundef %4435, ptr noundef nonnull @.str.82, ptr noundef nonnull @.str.1, i32 noundef 480, ptr noundef %4437, ptr noundef %4439, ptr noundef %4441, i32 noundef %4442) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4444:                                             ; preds = %4415
  %4445 = load i32, ptr @test_count, align 4, !tbaa !5
  %4446 = add nsw i32 %4445, 1
  store i32 %4446, ptr @test_count, align 4, !tbaa !5
  %4447 = icmp eq i32 %4420, 16384
  br i1 %4447, label %4470, label %4448

4448:                                             ; preds = %4444
  %4449 = load i32, ptr %1043, align 4, !tbaa !5
  %4450 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4451 = call i32 @s2n_print_stacktrace(ptr noundef %4450) #11
  %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) #11
  %4457 = call i32 @isatty(i32 noundef %4456) #11
  %.not691 = icmp eq i32 %4457, 0
  br i1 %.not691, label %4458, label %4459

4458:                                             ; preds = %4454, %4448
  br label %4459

4459:                                             ; preds = %4454, %4458
  %.str.5.sink2193 = phi ptr [ @.str.5, %4458 ], [ @.str.2, %4454 ]
  store i32 %4449, ptr %1043, 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 %989, align 4, !tbaa !5
  %4463 = call ptr @s2n_strerror(i32 noundef %4462, ptr noundef nonnull @.str.4) #11
  %4464 = load i32, ptr %989, align 4, !tbaa !5
  %4465 = call ptr @s2n_strerror_debug(i32 noundef %4464, ptr noundef nonnull @.str.4) #11
  %4466 = load i32, ptr %1043, align 4, !tbaa !5
  %4467 = call ptr @strerror(i32 noundef %4466) #11
  %4468 = load i32, ptr %1043, align 4, !tbaa !5
  %4469 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4460, ptr noundef nonnull %.str.5.sink2193, i32 noundef %4461, ptr noundef nonnull @.str.83, ptr noundef nonnull @.str.1, i32 noundef 481, ptr noundef %4463, ptr noundef %4465, ptr noundef %4467, i32 noundef %4468) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4470:                                             ; preds = %4444
  %4471 = add nsw i32 %4445, 2
  store i32 %4471, ptr @test_count, align 4, !tbaa !5
  %4472 = call i32 @s2n_stuffer_wipe(ptr noundef nonnull %4002) #11
  %4473 = icmp eq i32 %4472, -1
  br i1 %4473, label %4474, label %4496

4474:                                             ; preds = %4470
  %4475 = load i32, ptr %1043, align 4, !tbaa !5
  %4476 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4477 = call i32 @s2n_print_stacktrace(ptr noundef %4476) #11
  %4478 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4479 = trunc nuw i8 %4478 to i1
  br i1 %4479, label %4480, label %4484

4480:                                             ; preds = %4474
  %4481 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4482 = call i32 @fileno(ptr noundef %4481) #11
  %4483 = call i32 @isatty(i32 noundef %4482) #11
  %.not715 = icmp eq i32 %4483, 0
  br i1 %.not715, label %4484, label %4485

4484:                                             ; preds = %4480, %4474
  br label %4485

4485:                                             ; preds = %4480, %4484
  %.str.5.sink2202 = phi ptr [ @.str.5, %4484 ], [ @.str.2, %4480 ]
  store i32 %4475, ptr %1043, align 4, !tbaa !5
  %4486 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4487 = load i32, ptr @test_count, align 4, !tbaa !5
  %4488 = load i32, ptr %989, align 4, !tbaa !5
  %4489 = call ptr @s2n_strerror(i32 noundef %4488, ptr noundef nonnull @.str.4) #11
  %4490 = load i32, ptr %989, align 4, !tbaa !5
  %4491 = call ptr @s2n_strerror_debug(i32 noundef %4490, ptr noundef nonnull @.str.4) #11
  %4492 = load i32, ptr %1043, align 4, !tbaa !5
  %4493 = call ptr @strerror(i32 noundef %4492) #11
  %4494 = load i32, ptr %1043, align 4, !tbaa !5
  %4495 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4486, ptr noundef nonnull %.str.5.sink2202, i32 noundef %4487, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 483, ptr noundef %4489, ptr noundef %4491, ptr noundef %4493, i32 noundef %4494) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4496:                                             ; preds = %4470
  %4497 = load i32, ptr @test_count, align 4, !tbaa !5
  %4498 = add nsw i32 %4497, 1
  store i32 %4498, ptr @test_count, align 4, !tbaa !5
  %4499 = call i32 @s2n_connection_free(ptr noundef nonnull %3774) #11
  %4500 = icmp eq i32 %4499, -1
  br i1 %4500, label %4501, label %4523

4501:                                             ; preds = %4496
  %4502 = load i32, ptr %1043, align 4, !tbaa !5
  %4503 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4504 = call i32 @s2n_print_stacktrace(ptr noundef %4503) #11
  %4505 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4506 = trunc nuw i8 %4505 to i1
  br i1 %4506, label %4507, label %4511

4507:                                             ; preds = %4501
  %4508 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4509 = call i32 @fileno(ptr noundef %4508) #11
  %4510 = call i32 @isatty(i32 noundef %4509) #11
  %.not714 = icmp eq i32 %4510, 0
  br i1 %.not714, label %4511, label %4512

4511:                                             ; preds = %4507, %4501
  br label %4512

4512:                                             ; preds = %4507, %4511
  %.str.5.sink2211 = phi ptr [ @.str.5, %4511 ], [ @.str.2, %4507 ]
  store i32 %4502, ptr %1043, align 4, !tbaa !5
  %4513 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4514 = load i32, ptr @test_count, align 4, !tbaa !5
  %4515 = load i32, ptr %989, align 4, !tbaa !5
  %4516 = call ptr @s2n_strerror(i32 noundef %4515, ptr noundef nonnull @.str.4) #11
  %4517 = load i32, ptr %989, align 4, !tbaa !5
  %4518 = call ptr @s2n_strerror_debug(i32 noundef %4517, ptr noundef nonnull @.str.4) #11
  %4519 = load i32, ptr %1043, align 4, !tbaa !5
  %4520 = call ptr @strerror(i32 noundef %4519) #11
  %4521 = load i32, ptr %1043, align 4, !tbaa !5
  %4522 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4513, ptr noundef nonnull %.str.5.sink2211, i32 noundef %4514, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 485, ptr noundef %4516, ptr noundef %4518, ptr noundef %4520, i32 noundef %4521) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4523:                                             ; preds = %4496
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %35) #11
  br label %4524

4524:                                             ; preds = %4191, %4523
  %.0581 = phi i32 [ 0, %4523 ], [ 1, %4191 ]
  %.0 = phi i32 [ 0, %4523 ], [ -1, %4191 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %34) #11
  call void @llvm.lifetime.end.p0(i64 100000, ptr nonnull %33) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %32) #11
  br label %4525

4525:                                             ; preds = %3939, %4524
  %.2583 = phi i32 [ %.0581, %4524 ], [ 1, %3939 ]
  %.2 = phi i32 [ %.0, %4524 ], [ -1, %3939 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %31) #11
  call void @llvm.lifetime.end.p0(i64 1024, ptr nonnull %30) #11
  br label %4526

4526:                                             ; preds = %4525, %3900
  %.4585 = phi i32 [ %.2583, %4525 ], [ 1, %3900 ]
  %.4 = phi i32 [ %.2, %4525 ], [ -1, %3900 ]
  %4527 = call i32 @s2n_free(ptr noundef nonnull %29) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %29) #11
  %4528 = call i32 @s2n_free(ptr noundef nonnull %28) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %28) #11
  %cond = icmp eq i32 %.4585, 0
  br i1 %cond, label %4529, label %5055

4529:                                             ; preds = %4526
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %36) #11
  store i16 0, ptr %36, align 2, !tbaa !62
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %37) #11
  %4530 = call ptr @s2n_connection_new(i32 noundef 0) #11
  store ptr %4530, ptr %37, align 8, !tbaa !9
  %4531 = load i32, ptr @test_count, align 4, !tbaa !5
  %4532 = add nsw i32 %4531, 1
  store i32 %4532, ptr @test_count, align 4, !tbaa !5
  %4533 = icmp eq ptr %4530, null
  br i1 %4533, label %4534, label %4556

4534:                                             ; preds = %4529
  %4535 = load i32, ptr %1043, align 4, !tbaa !5
  %4536 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4537 = call i32 @s2n_print_stacktrace(ptr noundef %4536) #11
  %4538 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4539 = trunc nuw i8 %4538 to i1
  br i1 %4539, label %4540, label %4544

4540:                                             ; preds = %4534
  %4541 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4542 = call i32 @fileno(ptr noundef %4541) #11
  %4543 = call i32 @isatty(i32 noundef %4542) #11
  %.not713 = icmp eq i32 %4543, 0
  br i1 %.not713, label %4544, label %4545

4544:                                             ; preds = %4540, %4534
  br label %4545

4545:                                             ; preds = %4540, %4544
  %.str.5.sink2220 = phi ptr [ @.str.5, %4544 ], [ @.str.2, %4540 ]
  store i32 %4535, ptr %1043, align 4, !tbaa !5
  %4546 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4547 = load i32, ptr @test_count, align 4, !tbaa !5
  %4548 = load i32, ptr %989, align 4, !tbaa !5
  %4549 = call ptr @s2n_strerror(i32 noundef %4548, ptr noundef nonnull @.str.4) #11
  %4550 = load i32, ptr %989, align 4, !tbaa !5
  %4551 = call ptr @s2n_strerror_debug(i32 noundef %4550, ptr noundef nonnull @.str.4) #11
  %4552 = load i32, ptr %1043, align 4, !tbaa !5
  %4553 = call ptr @strerror(i32 noundef %4552) #11
  %4554 = load i32, ptr %1043, align 4, !tbaa !5
  %4555 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4546, ptr noundef nonnull %.str.5.sink2220, i32 noundef %4547, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 493, ptr noundef %4549, ptr noundef %4551, ptr noundef %4553, i32 noundef %4554) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4556:                                             ; preds = %4529
  %4557 = add nsw i32 %4531, 2
  store i32 %4557, ptr @test_count, align 4, !tbaa !5
  %4558 = call i32 @s2n_record_max_write_size(ptr noundef null, i16 noundef zeroext 1, ptr noundef nonnull %36) #11
  %4559 = call zeroext i1 @s2n_result_is_error(i32 %4558)
  br i1 %4559, label %4582, label %4560

4560:                                             ; preds = %4556
  %4561 = load i32, ptr %1043, align 4, !tbaa !5
  %4562 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4563 = call i32 @s2n_print_stacktrace(ptr noundef %4562) #11
  %4564 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4565 = trunc nuw i8 %4564 to i1
  br i1 %4565, label %4566, label %4570

4566:                                             ; preds = %4560
  %4567 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4568 = call i32 @fileno(ptr noundef %4567) #11
  %4569 = call i32 @isatty(i32 noundef %4568) #11
  %.not692 = icmp eq i32 %4569, 0
  br i1 %.not692, label %4570, label %4571

4570:                                             ; preds = %4566, %4560
  br label %4571

4571:                                             ; preds = %4566, %4570
  %.str.5.sink2229 = phi ptr [ @.str.5, %4570 ], [ @.str.2, %4566 ]
  store i32 %4561, ptr %1043, align 4, !tbaa !5
  %4572 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4573 = load i32, ptr @test_count, align 4, !tbaa !5
  %4574 = load i32, ptr %989, align 4, !tbaa !5
  %4575 = call ptr @s2n_strerror(i32 noundef %4574, ptr noundef nonnull @.str.4) #11
  %4576 = load i32, ptr %989, align 4, !tbaa !5
  %4577 = call ptr @s2n_strerror_debug(i32 noundef %4576, ptr noundef nonnull @.str.4) #11
  %4578 = load i32, ptr %1043, align 4, !tbaa !5
  %4579 = call ptr @strerror(i32 noundef %4578) #11
  %4580 = load i32, ptr %1043, align 4, !tbaa !5
  %4581 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4572, ptr noundef nonnull %.str.5.sink2229, i32 noundef %4573, ptr noundef nonnull @.str.90, ptr noundef nonnull @.str.1, i32 noundef 495, ptr noundef %4575, ptr noundef %4577, ptr noundef %4579, i32 noundef %4580) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4582:                                             ; preds = %4556
  %4583 = load i32, ptr @test_count, align 4, !tbaa !5
  %4584 = add nsw i32 %4583, 1
  store i32 %4584, ptr @test_count, align 4, !tbaa !5
  %4585 = load i32, ptr %989, align 4, !tbaa !5
  %4586 = icmp eq i32 %4585, 402653193
  br i1 %4586, label %4609, label %4587

4587:                                             ; preds = %4582
  %4588 = load i32, ptr %1043, align 4, !tbaa !5
  %4589 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4590 = call i32 @s2n_print_stacktrace(ptr noundef %4589) #11
  %4591 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4592 = trunc nuw i8 %4591 to i1
  br i1 %4592, label %4593, label %4597

4593:                                             ; preds = %4587
  %4594 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4595 = call i32 @fileno(ptr noundef %4594) #11
  %4596 = call i32 @isatty(i32 noundef %4595) #11
  %.not693 = icmp eq i32 %4596, 0
  br i1 %.not693, label %4597, label %4598

4597:                                             ; preds = %4593, %4587
  br label %4598

4598:                                             ; preds = %4593, %4597
  %.str.5.sink2238 = phi ptr [ @.str.5, %4597 ], [ @.str.2, %4593 ]
  store i32 %4588, ptr %1043, align 4, !tbaa !5
  %4599 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4600 = load i32, ptr @test_count, align 4, !tbaa !5
  %4601 = load i32, ptr %989, align 4, !tbaa !5
  %4602 = call ptr @s2n_strerror(i32 noundef %4601, ptr noundef nonnull @.str.4) #11
  %4603 = load i32, ptr %989, align 4, !tbaa !5
  %4604 = call ptr @s2n_strerror_debug(i32 noundef %4603, ptr noundef nonnull @.str.4) #11
  %4605 = load i32, ptr %1043, align 4, !tbaa !5
  %4606 = call ptr @strerror(i32 noundef %4605) #11
  %4607 = load i32, ptr %1043, align 4, !tbaa !5
  %4608 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4599, ptr noundef nonnull %.str.5.sink2238, i32 noundef %4600, ptr noundef nonnull @.str.91, ptr noundef nonnull @.str.1, i32 noundef 495, ptr noundef %4602, ptr noundef %4604, ptr noundef %4606, i32 noundef %4607) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4609:                                             ; preds = %4582
  %4610 = add nsw i32 %4583, 2
  store i32 %4610, ptr @test_count, align 4, !tbaa !5
  %4611 = call ptr @s2n_strerror_debug(i32 noundef 402653193, ptr noundef nonnull @.str.4) #11
  %4612 = icmp eq ptr %4611, null
  br i1 %4612, label %4613, label %4635

4613:                                             ; preds = %4609
  %4614 = load i32, ptr %1043, align 4, !tbaa !5
  %4615 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4616 = call i32 @s2n_print_stacktrace(ptr noundef %4615) #11
  %4617 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4618 = trunc nuw i8 %4617 to i1
  br i1 %4618, label %4619, label %4623

4619:                                             ; preds = %4613
  %4620 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4621 = call i32 @fileno(ptr noundef %4620) #11
  %4622 = call i32 @isatty(i32 noundef %4621) #11
  %.not712 = icmp eq i32 %4622, 0
  br i1 %.not712, label %4623, label %4624

4623:                                             ; preds = %4619, %4613
  br label %4624

4624:                                             ; preds = %4619, %4623
  %.str.5.sink2247 = phi ptr [ @.str.5, %4623 ], [ @.str.2, %4619 ]
  store i32 %4614, ptr %1043, align 4, !tbaa !5
  %4625 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4626 = load i32, ptr @test_count, align 4, !tbaa !5
  %4627 = load i32, ptr %989, align 4, !tbaa !5
  %4628 = call ptr @s2n_strerror(i32 noundef %4627, ptr noundef nonnull @.str.4) #11
  %4629 = load i32, ptr %989, align 4, !tbaa !5
  %4630 = call ptr @s2n_strerror_debug(i32 noundef %4629, ptr noundef nonnull @.str.4) #11
  %4631 = load i32, ptr %1043, align 4, !tbaa !5
  %4632 = call ptr @strerror(i32 noundef %4631) #11
  %4633 = load i32, ptr %1043, align 4, !tbaa !5
  %4634 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4625, ptr noundef nonnull %.str.5.sink2247, i32 noundef %4626, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 495, ptr noundef %4628, ptr noundef %4630, ptr noundef %4632, i32 noundef %4633) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4635:                                             ; preds = %4609
  store i32 0, ptr %989, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %1043, align 4, !tbaa !5
  %4636 = load i32, ptr @test_count, align 4, !tbaa !5
  %4637 = add nsw i32 %4636, 1
  store i32 %4637, ptr @test_count, align 4, !tbaa !5
  %4638 = call i32 @s2n_record_max_write_size(ptr noundef nonnull %4530, i16 noundef zeroext 1, ptr noundef null) #11
  %4639 = call zeroext i1 @s2n_result_is_error(i32 %4638)
  br i1 %4639, label %4662, label %4640

4640:                                             ; preds = %4635
  %4641 = load i32, ptr %1043, align 4, !tbaa !5
  %4642 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4643 = call i32 @s2n_print_stacktrace(ptr noundef %4642) #11
  %4644 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4645 = trunc nuw i8 %4644 to i1
  br i1 %4645, label %4646, label %4650

4646:                                             ; preds = %4640
  %4647 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4648 = call i32 @fileno(ptr noundef %4647) #11
  %4649 = call i32 @isatty(i32 noundef %4648) #11
  %.not694 = icmp eq i32 %4649, 0
  br i1 %.not694, label %4650, label %4651

4650:                                             ; preds = %4646, %4640
  br label %4651

4651:                                             ; preds = %4646, %4650
  %.str.5.sink2256 = phi ptr [ @.str.5, %4650 ], [ @.str.2, %4646 ]
  store i32 %4641, ptr %1043, align 4, !tbaa !5
  %4652 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4653 = load i32, ptr @test_count, align 4, !tbaa !5
  %4654 = load i32, ptr %989, align 4, !tbaa !5
  %4655 = call ptr @s2n_strerror(i32 noundef %4654, ptr noundef nonnull @.str.4) #11
  %4656 = load i32, ptr %989, align 4, !tbaa !5
  %4657 = call ptr @s2n_strerror_debug(i32 noundef %4656, ptr noundef nonnull @.str.4) #11
  %4658 = load i32, ptr %1043, align 4, !tbaa !5
  %4659 = call ptr @strerror(i32 noundef %4658) #11
  %4660 = load i32, ptr %1043, align 4, !tbaa !5
  %4661 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4652, ptr noundef nonnull %.str.5.sink2256, i32 noundef %4653, ptr noundef nonnull @.str.92, ptr noundef nonnull @.str.1, i32 noundef 496, ptr noundef %4655, ptr noundef %4657, ptr noundef %4659, i32 noundef %4660) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4662:                                             ; preds = %4635
  %4663 = load i32, ptr @test_count, align 4, !tbaa !5
  %4664 = add nsw i32 %4663, 1
  store i32 %4664, ptr @test_count, align 4, !tbaa !5
  %4665 = load i32, ptr %989, align 4, !tbaa !5
  %4666 = icmp eq i32 %4665, 402653193
  br i1 %4666, label %4689, label %4667

4667:                                             ; preds = %4662
  %4668 = load i32, ptr %1043, align 4, !tbaa !5
  %4669 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4670 = call i32 @s2n_print_stacktrace(ptr noundef %4669) #11
  %4671 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4672 = trunc nuw i8 %4671 to i1
  br i1 %4672, label %4673, label %4677

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

4677:                                             ; preds = %4673, %4667
  br label %4678

4678:                                             ; preds = %4673, %4677
  %.str.5.sink2265 = phi ptr [ @.str.5, %4677 ], [ @.str.2, %4673 ]
  store i32 %4668, ptr %1043, align 4, !tbaa !5
  %4679 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4680 = load i32, ptr @test_count, align 4, !tbaa !5
  %4681 = load i32, ptr %989, align 4, !tbaa !5
  %4682 = call ptr @s2n_strerror(i32 noundef %4681, ptr noundef nonnull @.str.4) #11
  %4683 = load i32, ptr %989, align 4, !tbaa !5
  %4684 = call ptr @s2n_strerror_debug(i32 noundef %4683, ptr noundef nonnull @.str.4) #11
  %4685 = load i32, ptr %1043, align 4, !tbaa !5
  %4686 = call ptr @strerror(i32 noundef %4685) #11
  %4687 = load i32, ptr %1043, align 4, !tbaa !5
  %4688 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4679, ptr noundef nonnull %.str.5.sink2265, i32 noundef %4680, ptr noundef nonnull @.str.91, ptr noundef nonnull @.str.1, i32 noundef 496, ptr noundef %4682, ptr noundef %4684, ptr noundef %4686, i32 noundef %4687) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4689:                                             ; preds = %4662
  %4690 = add nsw i32 %4663, 2
  store i32 %4690, ptr @test_count, align 4, !tbaa !5
  %4691 = call ptr @s2n_strerror_debug(i32 noundef 402653193, ptr noundef nonnull @.str.4) #11
  %4692 = icmp eq ptr %4691, null
  br i1 %4692, label %4693, label %4715

4693:                                             ; preds = %4689
  %4694 = load i32, ptr %1043, align 4, !tbaa !5
  %4695 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4696 = call i32 @s2n_print_stacktrace(ptr noundef %4695) #11
  %4697 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4698 = trunc nuw i8 %4697 to i1
  br i1 %4698, label %4699, label %4703

4699:                                             ; preds = %4693
  %4700 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4701 = call i32 @fileno(ptr noundef %4700) #11
  %4702 = call i32 @isatty(i32 noundef %4701) #11
  %.not711 = icmp eq i32 %4702, 0
  br i1 %.not711, label %4703, label %4704

4703:                                             ; preds = %4699, %4693
  br label %4704

4704:                                             ; preds = %4699, %4703
  %.str.5.sink2274 = phi ptr [ @.str.5, %4703 ], [ @.str.2, %4699 ]
  store i32 %4694, ptr %1043, align 4, !tbaa !5
  %4705 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4706 = load i32, ptr @test_count, align 4, !tbaa !5
  %4707 = load i32, ptr %989, align 4, !tbaa !5
  %4708 = call ptr @s2n_strerror(i32 noundef %4707, ptr noundef nonnull @.str.4) #11
  %4709 = load i32, ptr %989, align 4, !tbaa !5
  %4710 = call ptr @s2n_strerror_debug(i32 noundef %4709, ptr noundef nonnull @.str.4) #11
  %4711 = load i32, ptr %1043, align 4, !tbaa !5
  %4712 = call ptr @strerror(i32 noundef %4711) #11
  %4713 = load i32, ptr %1043, align 4, !tbaa !5
  %4714 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4705, ptr noundef nonnull %.str.5.sink2274, i32 noundef %4706, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 496, ptr noundef %4708, ptr noundef %4710, ptr noundef %4712, i32 noundef %4713) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4715:                                             ; preds = %4689
  store i32 0, ptr %989, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %1043, align 4, !tbaa !5
  %4716 = getelementptr inbounds i8, ptr %4530, i64 220
  store i8 0, ptr %4716, align 4, !tbaa !57
  %4717 = getelementptr inbounds i8, ptr %4530, i64 2172
  store i32 0, ptr %4717, align 4, !tbaa !75
  %4718 = load i32, ptr @test_count, align 4, !tbaa !5
  %4719 = add nsw i32 %4718, 1
  store i32 %4719, ptr @test_count, align 4, !tbaa !5
  %4720 = call i32 @s2n_record_max_write_size(ptr noundef nonnull %4530, i16 noundef zeroext 16384, ptr noundef nonnull %36) #11
  %4721 = call zeroext i1 @s2n_result_is_ok(i32 %4720)
  br i1 %4721, label %4744, label %4722

4722:                                             ; preds = %4715
  %4723 = load i32, ptr %1043, align 4, !tbaa !5
  %4724 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4725 = call i32 @s2n_print_stacktrace(ptr noundef %4724) #11
  %4726 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4727 = trunc nuw i8 %4726 to i1
  br i1 %4727, label %4728, label %4732

4728:                                             ; preds = %4722
  %4729 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4730 = call i32 @fileno(ptr noundef %4729) #11
  %4731 = call i32 @isatty(i32 noundef %4730) #11
  %.not696 = icmp eq i32 %4731, 0
  br i1 %.not696, label %4732, label %4733

4732:                                             ; preds = %4728, %4722
  br label %4733

4733:                                             ; preds = %4728, %4732
  %.str.5.sink2283 = phi ptr [ @.str.5, %4732 ], [ @.str.2, %4728 ]
  store i32 %4723, ptr %1043, align 4, !tbaa !5
  %4734 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4735 = load i32, ptr @test_count, align 4, !tbaa !5
  %4736 = load i32, ptr %989, align 4, !tbaa !5
  %4737 = call ptr @s2n_strerror(i32 noundef %4736, ptr noundef nonnull @.str.4) #11
  %4738 = load i32, ptr %989, align 4, !tbaa !5
  %4739 = call ptr @s2n_strerror_debug(i32 noundef %4738, ptr noundef nonnull @.str.4) #11
  %4740 = load i32, ptr %1043, align 4, !tbaa !5
  %4741 = call ptr @strerror(i32 noundef %4740) #11
  %4742 = load i32, ptr %1043, align 4, !tbaa !5
  %4743 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4734, ptr noundef nonnull %.str.5.sink2283, i32 noundef %4735, ptr noundef nonnull @.str.93, ptr noundef nonnull @.str.1, i32 noundef 500, ptr noundef %4737, ptr noundef %4739, ptr noundef %4741, i32 noundef %4742) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4744:                                             ; preds = %4715
  %4745 = load i32, ptr @test_count, align 4, !tbaa !5
  %4746 = add nsw i32 %4745, 1
  store i32 %4746, ptr @test_count, align 4, !tbaa !5
  %4747 = load i16, ptr %36, align 2, !tbaa !62
  %4748 = icmp eq i16 %4747, 17413
  br i1 %4748, label %4771, label %4749

4749:                                             ; preds = %4744
  %4750 = load i32, ptr %1043, align 4, !tbaa !5
  %4751 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4752 = call i32 @s2n_print_stacktrace(ptr noundef %4751) #11
  %4753 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4754 = trunc nuw i8 %4753 to i1
  br i1 %4754, label %4755, label %4759

4755:                                             ; preds = %4749
  %4756 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4757 = call i32 @fileno(ptr noundef %4756) #11
  %4758 = call i32 @isatty(i32 noundef %4757) #11
  %.not697 = icmp eq i32 %4758, 0
  br i1 %.not697, label %4759, label %4760

4759:                                             ; preds = %4755, %4749
  br label %4760

4760:                                             ; preds = %4755, %4759
  %.str.5.sink2292 = phi ptr [ @.str.5, %4759 ], [ @.str.2, %4755 ]
  store i32 %4750, ptr %1043, align 4, !tbaa !5
  %4761 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4762 = load i32, ptr @test_count, align 4, !tbaa !5
  %4763 = load i32, ptr %989, align 4, !tbaa !5
  %4764 = call ptr @s2n_strerror(i32 noundef %4763, ptr noundef nonnull @.str.4) #11
  %4765 = load i32, ptr %989, align 4, !tbaa !5
  %4766 = call ptr @s2n_strerror_debug(i32 noundef %4765, ptr noundef nonnull @.str.4) #11
  %4767 = load i32, ptr %1043, align 4, !tbaa !5
  %4768 = call ptr @strerror(i32 noundef %4767) #11
  %4769 = load i32, ptr %1043, align 4, !tbaa !5
  %4770 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4761, ptr noundef nonnull %.str.5.sink2292, i32 noundef %4762, ptr noundef nonnull @.str.94, ptr noundef nonnull @.str.1, i32 noundef 501, ptr noundef %4764, ptr noundef %4766, ptr noundef %4768, i32 noundef %4769) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4771:                                             ; preds = %4744
  store i32 1, ptr %4717, align 4, !tbaa !75
  %4772 = add nsw i32 %4745, 2
  store i32 %4772, ptr @test_count, align 4, !tbaa !5
  %4773 = call i32 @s2n_record_max_write_size(ptr noundef nonnull %4530, i16 noundef zeroext 16384, ptr noundef nonnull %36) #11
  %4774 = call zeroext i1 @s2n_result_is_ok(i32 %4773)
  br i1 %4774, label %4797, label %4775

4775:                                             ; preds = %4771
  %4776 = load i32, ptr %1043, align 4, !tbaa !5
  %4777 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4778 = call i32 @s2n_print_stacktrace(ptr noundef %4777) #11
  %4779 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4780 = trunc nuw i8 %4779 to i1
  br i1 %4780, label %4781, label %4785

4781:                                             ; preds = %4775
  %4782 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4783 = call i32 @fileno(ptr noundef %4782) #11
  %4784 = call i32 @isatty(i32 noundef %4783) #11
  %.not698 = icmp eq i32 %4784, 0
  br i1 %.not698, label %4785, label %4786

4785:                                             ; preds = %4781, %4775
  br label %4786

4786:                                             ; preds = %4781, %4785
  %.str.5.sink2301 = phi ptr [ @.str.5, %4785 ], [ @.str.2, %4781 ]
  store i32 %4776, ptr %1043, align 4, !tbaa !5
  %4787 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4788 = load i32, ptr @test_count, align 4, !tbaa !5
  %4789 = load i32, ptr %989, align 4, !tbaa !5
  %4790 = call ptr @s2n_strerror(i32 noundef %4789, ptr noundef nonnull @.str.4) #11
  %4791 = load i32, ptr %989, align 4, !tbaa !5
  %4792 = call ptr @s2n_strerror_debug(i32 noundef %4791, ptr noundef nonnull @.str.4) #11
  %4793 = load i32, ptr %1043, align 4, !tbaa !5
  %4794 = call ptr @strerror(i32 noundef %4793) #11
  %4795 = load i32, ptr %1043, align 4, !tbaa !5
  %4796 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4787, ptr noundef nonnull %.str.5.sink2301, i32 noundef %4788, ptr noundef nonnull @.str.93, ptr noundef nonnull @.str.1, i32 noundef 504, ptr noundef %4790, ptr noundef %4792, ptr noundef %4794, i32 noundef %4795) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4797:                                             ; preds = %4771
  %4798 = load i32, ptr @test_count, align 4, !tbaa !5
  %4799 = add nsw i32 %4798, 1
  store i32 %4799, ptr @test_count, align 4, !tbaa !5
  %4800 = load i16, ptr %36, align 2, !tbaa !62
  %4801 = icmp eq i16 %4800, 17413
  br i1 %4801, label %4824, label %4802

4802:                                             ; preds = %4797
  %4803 = load i32, ptr %1043, align 4, !tbaa !5
  %4804 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4805 = call i32 @s2n_print_stacktrace(ptr noundef %4804) #11
  %4806 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4807 = trunc nuw i8 %4806 to i1
  br i1 %4807, label %4808, label %4812

4808:                                             ; preds = %4802
  %4809 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4810 = call i32 @fileno(ptr noundef %4809) #11
  %4811 = call i32 @isatty(i32 noundef %4810) #11
  %.not699 = icmp eq i32 %4811, 0
  br i1 %.not699, label %4812, label %4813

4812:                                             ; preds = %4808, %4802
  br label %4813

4813:                                             ; preds = %4808, %4812
  %.str.5.sink2310 = phi ptr [ @.str.5, %4812 ], [ @.str.2, %4808 ]
  store i32 %4803, ptr %1043, align 4, !tbaa !5
  %4814 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4815 = load i32, ptr @test_count, align 4, !tbaa !5
  %4816 = load i32, ptr %989, align 4, !tbaa !5
  %4817 = call ptr @s2n_strerror(i32 noundef %4816, ptr noundef nonnull @.str.4) #11
  %4818 = load i32, ptr %989, align 4, !tbaa !5
  %4819 = call ptr @s2n_strerror_debug(i32 noundef %4818, ptr noundef nonnull @.str.4) #11
  %4820 = load i32, ptr %1043, align 4, !tbaa !5
  %4821 = call ptr @strerror(i32 noundef %4820) #11
  %4822 = load i32, ptr %1043, align 4, !tbaa !5
  %4823 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4814, ptr noundef nonnull %.str.5.sink2310, i32 noundef %4815, ptr noundef nonnull @.str.94, ptr noundef nonnull @.str.1, i32 noundef 505, ptr noundef %4817, ptr noundef %4819, ptr noundef %4821, i32 noundef %4822) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4824:                                             ; preds = %4797
  store i8 33, ptr %4716, align 4, !tbaa !57
  %4825 = add nsw i32 %4798, 2
  store i32 %4825, ptr @test_count, align 4, !tbaa !5
  %4826 = call i32 @s2n_record_max_write_size(ptr noundef nonnull %4530, i16 noundef zeroext 16384, ptr noundef nonnull %36) #11
  %4827 = call zeroext i1 @s2n_result_is_ok(i32 %4826)
  br i1 %4827, label %4850, label %4828

4828:                                             ; preds = %4824
  %4829 = load i32, ptr %1043, align 4, !tbaa !5
  %4830 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4831 = call i32 @s2n_print_stacktrace(ptr noundef %4830) #11
  %4832 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4833 = trunc nuw i8 %4832 to i1
  br i1 %4833, label %4834, label %4838

4834:                                             ; preds = %4828
  %4835 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4836 = call i32 @fileno(ptr noundef %4835) #11
  %4837 = call i32 @isatty(i32 noundef %4836) #11
  %.not700 = icmp eq i32 %4837, 0
  br i1 %.not700, label %4838, label %4839

4838:                                             ; preds = %4834, %4828
  br label %4839

4839:                                             ; preds = %4834, %4838
  %.str.5.sink2319 = phi ptr [ @.str.5, %4838 ], [ @.str.2, %4834 ]
  store i32 %4829, ptr %1043, align 4, !tbaa !5
  %4840 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4841 = load i32, ptr @test_count, align 4, !tbaa !5
  %4842 = load i32, ptr %989, align 4, !tbaa !5
  %4843 = call ptr @s2n_strerror(i32 noundef %4842, ptr noundef nonnull @.str.4) #11
  %4844 = load i32, ptr %989, align 4, !tbaa !5
  %4845 = call ptr @s2n_strerror_debug(i32 noundef %4844, ptr noundef nonnull @.str.4) #11
  %4846 = load i32, ptr %1043, align 4, !tbaa !5
  %4847 = call ptr @strerror(i32 noundef %4846) #11
  %4848 = load i32, ptr %1043, align 4, !tbaa !5
  %4849 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4840, ptr noundef nonnull %.str.5.sink2319, i32 noundef %4841, ptr noundef nonnull @.str.93, ptr noundef nonnull @.str.1, i32 noundef 508, ptr noundef %4843, ptr noundef %4845, ptr noundef %4847, i32 noundef %4848) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4850:                                             ; preds = %4824
  %4851 = load i32, ptr @test_count, align 4, !tbaa !5
  %4852 = add nsw i32 %4851, 1
  store i32 %4852, ptr @test_count, align 4, !tbaa !5
  %4853 = load i16, ptr %36, align 2, !tbaa !62
  %4854 = icmp eq i16 %4853, 17413
  br i1 %4854, label %4877, label %4855

4855:                                             ; preds = %4850
  %4856 = load i32, ptr %1043, align 4, !tbaa !5
  %4857 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4858 = call i32 @s2n_print_stacktrace(ptr noundef %4857) #11
  %4859 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4860 = trunc nuw i8 %4859 to i1
  br i1 %4860, label %4861, label %4865

4861:                                             ; preds = %4855
  %4862 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4863 = call i32 @fileno(ptr noundef %4862) #11
  %4864 = call i32 @isatty(i32 noundef %4863) #11
  %.not701 = icmp eq i32 %4864, 0
  br i1 %.not701, label %4865, label %4866

4865:                                             ; preds = %4861, %4855
  br label %4866

4866:                                             ; preds = %4861, %4865
  %.str.5.sink2328 = phi ptr [ @.str.5, %4865 ], [ @.str.2, %4861 ]
  store i32 %4856, ptr %1043, align 4, !tbaa !5
  %4867 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4868 = load i32, ptr @test_count, align 4, !tbaa !5
  %4869 = load i32, ptr %989, align 4, !tbaa !5
  %4870 = call ptr @s2n_strerror(i32 noundef %4869, ptr noundef nonnull @.str.4) #11
  %4871 = load i32, ptr %989, align 4, !tbaa !5
  %4872 = call ptr @s2n_strerror_debug(i32 noundef %4871, ptr noundef nonnull @.str.4) #11
  %4873 = load i32, ptr %1043, align 4, !tbaa !5
  %4874 = call ptr @strerror(i32 noundef %4873) #11
  %4875 = load i32, ptr %1043, align 4, !tbaa !5
  %4876 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4867, ptr noundef nonnull %.str.5.sink2328, i32 noundef %4868, ptr noundef nonnull @.str.94, ptr noundef nonnull @.str.1, i32 noundef 509, ptr noundef %4870, ptr noundef %4872, ptr noundef %4874, i32 noundef %4875) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4877:                                             ; preds = %4850
  store i8 34, ptr %4716, align 4, !tbaa !57
  %4878 = add nsw i32 %4851, 2
  store i32 %4878, ptr @test_count, align 4, !tbaa !5
  %4879 = call i32 @s2n_record_max_write_size(ptr noundef nonnull %4530, i16 noundef zeroext 16384, ptr noundef nonnull %36) #11
  %4880 = call zeroext i1 @s2n_result_is_ok(i32 %4879)
  br i1 %4880, label %4903, label %4881

4881:                                             ; preds = %4877
  %4882 = load i32, ptr %1043, align 4, !tbaa !5
  %4883 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4884 = call i32 @s2n_print_stacktrace(ptr noundef %4883) #11
  %4885 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4886 = trunc nuw i8 %4885 to i1
  br i1 %4886, label %4887, label %4891

4887:                                             ; preds = %4881
  %4888 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4889 = call i32 @fileno(ptr noundef %4888) #11
  %4890 = call i32 @isatty(i32 noundef %4889) #11
  %.not702 = icmp eq i32 %4890, 0
  br i1 %.not702, label %4891, label %4892

4891:                                             ; preds = %4887, %4881
  br label %4892

4892:                                             ; preds = %4887, %4891
  %.str.5.sink2337 = phi ptr [ @.str.5, %4891 ], [ @.str.2, %4887 ]
  store i32 %4882, ptr %1043, align 4, !tbaa !5
  %4893 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4894 = load i32, ptr @test_count, align 4, !tbaa !5
  %4895 = load i32, ptr %989, align 4, !tbaa !5
  %4896 = call ptr @s2n_strerror(i32 noundef %4895, ptr noundef nonnull @.str.4) #11
  %4897 = load i32, ptr %989, align 4, !tbaa !5
  %4898 = call ptr @s2n_strerror_debug(i32 noundef %4897, ptr noundef nonnull @.str.4) #11
  %4899 = load i32, ptr %1043, align 4, !tbaa !5
  %4900 = call ptr @strerror(i32 noundef %4899) #11
  %4901 = load i32, ptr %1043, align 4, !tbaa !5
  %4902 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4893, ptr noundef nonnull %.str.5.sink2337, i32 noundef %4894, ptr noundef nonnull @.str.93, ptr noundef nonnull @.str.1, i32 noundef 512, ptr noundef %4896, ptr noundef %4898, ptr noundef %4900, i32 noundef %4901) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4903:                                             ; preds = %4877
  %4904 = load i32, ptr @test_count, align 4, !tbaa !5
  %4905 = add nsw i32 %4904, 1
  store i32 %4905, ptr @test_count, align 4, !tbaa !5
  %4906 = load i16, ptr %36, align 2, !tbaa !62
  %4907 = icmp eq i16 %4906, 16645
  br i1 %4907, label %4930, label %4908

4908:                                             ; preds = %4903
  %4909 = load i32, ptr %1043, align 4, !tbaa !5
  %4910 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4911 = call i32 @s2n_print_stacktrace(ptr noundef %4910) #11
  %4912 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4913 = trunc nuw i8 %4912 to i1
  br i1 %4913, label %4914, label %4918

4914:                                             ; preds = %4908
  %4915 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4916 = call i32 @fileno(ptr noundef %4915) #11
  %4917 = call i32 @isatty(i32 noundef %4916) #11
  %.not703 = icmp eq i32 %4917, 0
  br i1 %.not703, label %4918, label %4919

4918:                                             ; preds = %4914, %4908
  br label %4919

4919:                                             ; preds = %4914, %4918
  %.str.5.sink2346 = phi ptr [ @.str.5, %4918 ], [ @.str.2, %4914 ]
  store i32 %4909, ptr %1043, align 4, !tbaa !5
  %4920 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4921 = load i32, ptr @test_count, align 4, !tbaa !5
  %4922 = load i32, ptr %989, align 4, !tbaa !5
  %4923 = call ptr @s2n_strerror(i32 noundef %4922, ptr noundef nonnull @.str.4) #11
  %4924 = load i32, ptr %989, align 4, !tbaa !5
  %4925 = call ptr @s2n_strerror_debug(i32 noundef %4924, ptr noundef nonnull @.str.4) #11
  %4926 = load i32, ptr %1043, align 4, !tbaa !5
  %4927 = call ptr @strerror(i32 noundef %4926) #11
  %4928 = load i32, ptr %1043, align 4, !tbaa !5
  %4929 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4920, ptr noundef nonnull %.str.5.sink2346, i32 noundef %4921, ptr noundef nonnull @.str.95, ptr noundef nonnull @.str.1, i32 noundef 513, ptr noundef %4923, ptr noundef %4925, ptr noundef %4927, i32 noundef %4928) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4930:                                             ; preds = %4903
  store i8 34, ptr %4716, align 4, !tbaa !57
  %4931 = add nsw i32 %4904, 2
  store i32 %4931, ptr @test_count, align 4, !tbaa !5
  %4932 = call i32 @s2n_record_max_write_size(ptr noundef nonnull %4530, i16 noundef zeroext 16374, ptr noundef nonnull %36) #11
  %4933 = call zeroext i1 @s2n_result_is_ok(i32 %4932)
  br i1 %4933, label %4956, label %4934

4934:                                             ; preds = %4930
  %4935 = load i32, ptr %1043, align 4, !tbaa !5
  %4936 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4937 = call i32 @s2n_print_stacktrace(ptr noundef %4936) #11
  %4938 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4939 = trunc nuw i8 %4938 to i1
  br i1 %4939, label %4940, label %4944

4940:                                             ; preds = %4934
  %4941 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4942 = call i32 @fileno(ptr noundef %4941) #11
  %4943 = call i32 @isatty(i32 noundef %4942) #11
  %.not704 = icmp eq i32 %4943, 0
  br i1 %.not704, label %4944, label %4945

4944:                                             ; preds = %4940, %4934
  br label %4945

4945:                                             ; preds = %4940, %4944
  %.str.5.sink2355 = phi ptr [ @.str.5, %4944 ], [ @.str.2, %4940 ]
  store i32 %4935, ptr %1043, align 4, !tbaa !5
  %4946 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4947 = load i32, ptr @test_count, align 4, !tbaa !5
  %4948 = load i32, ptr %989, align 4, !tbaa !5
  %4949 = call ptr @s2n_strerror(i32 noundef %4948, ptr noundef nonnull @.str.4) #11
  %4950 = load i32, ptr %989, align 4, !tbaa !5
  %4951 = call ptr @s2n_strerror_debug(i32 noundef %4950, ptr noundef nonnull @.str.4) #11
  %4952 = load i32, ptr %1043, align 4, !tbaa !5
  %4953 = call ptr @strerror(i32 noundef %4952) #11
  %4954 = load i32, ptr %1043, align 4, !tbaa !5
  %4955 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4946, ptr noundef nonnull %.str.5.sink2355, i32 noundef %4947, ptr noundef nonnull @.str.96, ptr noundef nonnull @.str.1, i32 noundef 517, ptr noundef %4949, ptr noundef %4951, ptr noundef %4953, i32 noundef %4954) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4956:                                             ; preds = %4930
  %4957 = load i32, ptr @test_count, align 4, !tbaa !5
  %4958 = add nsw i32 %4957, 1
  store i32 %4958, ptr @test_count, align 4, !tbaa !5
  %4959 = load i16, ptr %36, align 2, !tbaa !62
  %4960 = icmp eq i16 %4959, 16635
  br i1 %4960, label %4983, label %4961

4961:                                             ; preds = %4956
  %4962 = load i32, ptr %1043, align 4, !tbaa !5
  %4963 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4964 = call i32 @s2n_print_stacktrace(ptr noundef %4963) #11
  %4965 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4966 = trunc nuw i8 %4965 to i1
  br i1 %4966, label %4967, label %4971

4967:                                             ; preds = %4961
  %4968 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4969 = call i32 @fileno(ptr noundef %4968) #11
  %4970 = call i32 @isatty(i32 noundef %4969) #11
  %.not705 = icmp eq i32 %4970, 0
  br i1 %.not705, label %4971, label %4972

4971:                                             ; preds = %4967, %4961
  br label %4972

4972:                                             ; preds = %4967, %4971
  %.str.5.sink2364 = phi ptr [ @.str.5, %4971 ], [ @.str.2, %4967 ]
  store i32 %4962, ptr %1043, align 4, !tbaa !5
  %4973 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4974 = load i32, ptr @test_count, align 4, !tbaa !5
  %4975 = load i32, ptr %989, align 4, !tbaa !5
  %4976 = call ptr @s2n_strerror(i32 noundef %4975, ptr noundef nonnull @.str.4) #11
  %4977 = load i32, ptr %989, align 4, !tbaa !5
  %4978 = call ptr @s2n_strerror_debug(i32 noundef %4977, ptr noundef nonnull @.str.4) #11
  %4979 = load i32, ptr %1043, align 4, !tbaa !5
  %4980 = call ptr @strerror(i32 noundef %4979) #11
  %4981 = load i32, ptr %1043, align 4, !tbaa !5
  %4982 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4973, ptr noundef nonnull %.str.5.sink2364, i32 noundef %4974, ptr noundef nonnull @.str.97, ptr noundef nonnull @.str.1, i32 noundef 518, ptr noundef %4976, ptr noundef %4978, ptr noundef %4980, i32 noundef %4981) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4983:                                             ; preds = %4956
  %4984 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %37) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #11
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %36) #11
  %4985 = call i32 @s2n_cleanup() #11
  %4986 = icmp eq i32 %4985, -1
  br i1 %4986, label %4987, label %5009

4987:                                             ; preds = %4983
  %4988 = load i32, ptr %1043, align 4, !tbaa !5
  %4989 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4990 = call i32 @s2n_print_stacktrace(ptr noundef %4989) #11
  %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) #11
  %4996 = call i32 @isatty(i32 noundef %4995) #11
  %.not710 = icmp eq i32 %4996, 0
  br i1 %.not710, label %4997, label %4998

4997:                                             ; preds = %4993, %4987
  br label %4998

4998:                                             ; preds = %4993, %4997
  %.str.5.sink2373 = phi ptr [ @.str.5, %4997 ], [ @.str.2, %4993 ]
  store i32 %4988, ptr %1043, 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 %989, align 4, !tbaa !5
  %5002 = call ptr @s2n_strerror(i32 noundef %5001, ptr noundef nonnull @.str.4) #11
  %5003 = load i32, ptr %989, align 4, !tbaa !5
  %5004 = call ptr @s2n_strerror_debug(i32 noundef %5003, ptr noundef nonnull @.str.4) #11
  %5005 = load i32, ptr %1043, align 4, !tbaa !5
  %5006 = call ptr @strerror(i32 noundef %5005) #11
  %5007 = load i32, ptr %1043, align 4, !tbaa !5
  %5008 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4999, ptr noundef nonnull %.str.5.sink2373, i32 noundef %5000, ptr noundef nonnull @.str.98, ptr noundef nonnull @.str.1, i32 noundef 521, ptr noundef %5002, ptr noundef %5004, ptr noundef %5006, i32 noundef %5007) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5009:                                             ; preds = %4983
  %5010 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #11
  %5011 = icmp eq i32 %5010, -1
  br i1 %5011, label %5012, label %5034

5012:                                             ; preds = %5009
  %5013 = load i32, ptr %1043, align 4, !tbaa !5
  %5014 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5015 = call i32 @s2n_print_stacktrace(ptr noundef %5014) #11
  %5016 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5017 = trunc nuw i8 %5016 to i1
  br i1 %5017, label %5018, label %5022

5018:                                             ; preds = %5012
  %5019 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5020 = call i32 @fileno(ptr noundef %5019) #11
  %5021 = call i32 @isatty(i32 noundef %5020) #11
  %.not709 = icmp eq i32 %5021, 0
  br i1 %.not709, label %5022, label %5023

5022:                                             ; preds = %5018, %5012
  br label %5023

5023:                                             ; preds = %5018, %5022
  %.str.5.sink2382 = phi ptr [ @.str.5, %5022 ], [ @.str.2, %5018 ]
  store i32 %5013, ptr %1043, align 4, !tbaa !5
  %5024 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5025 = load i32, ptr @test_count, align 4, !tbaa !5
  %5026 = load i32, ptr %989, align 4, !tbaa !5
  %5027 = call ptr @s2n_strerror(i32 noundef %5026, ptr noundef nonnull @.str.4) #11
  %5028 = load i32, ptr %989, align 4, !tbaa !5
  %5029 = call ptr @s2n_strerror_debug(i32 noundef %5028, ptr noundef nonnull @.str.4) #11
  %5030 = load i32, ptr %1043, align 4, !tbaa !5
  %5031 = call ptr @strerror(i32 noundef %5030) #11
  %5032 = load i32, ptr %1043, align 4, !tbaa !5
  %5033 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5024, ptr noundef nonnull %.str.5.sink2382, i32 noundef %5025, ptr noundef nonnull @.str.99, ptr noundef nonnull @.str.1, i32 noundef 521, ptr noundef %5027, ptr noundef %5029, ptr noundef %5031, i32 noundef %5032) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5034:                                             ; preds = %5009
  %5035 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5036 = trunc nuw i8 %5035 to i1
  br i1 %5036, label %5037, label %5048

5037:                                             ; preds = %5034
  %5038 = load ptr, ptr @stdout, align 8, !tbaa !9
  %5039 = call i32 @fileno(ptr noundef %5038) #11
  %5040 = call i32 @isatty(i32 noundef %5039) #11
  %.not706 = icmp eq i32 %5040, 0
  br i1 %.not706, label %5048, label %5041

5041:                                             ; preds = %5037
  %5042 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not708 = icmp eq i32 %5042, 0
  %5043 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not708, label %5046, label %5044

5044:                                             ; preds = %5041
  %5045 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5043, ptr noundef nonnull @.str.100, i32 noundef %5042) #11
  br label %5055

5046:                                             ; preds = %5041
  %5047 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5043, ptr noundef nonnull @.str.101) #11
  br label %5055

5048:                                             ; preds = %5037, %5034
  %5049 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not707 = icmp eq i32 %5049, 0
  %5050 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not707, label %5053, label %5051

5051:                                             ; preds = %5048
  %5052 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5050, ptr noundef nonnull @.str.102, i32 noundef %5049) #11
  br label %5055

5053:                                             ; preds = %5048
  %5054 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5050, ptr noundef nonnull @.str.103) #11
  br label %5055

5055:                                             ; preds = %.thread, %5046, %5044, %5053, %5051, %4526
  %.6 = phi i32 [ %.4, %4526 ], [ 0, %5051 ], [ 0, %5053 ], [ 0, %5044 ], [ 0, %5046 ], [ -1, %.thread ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %7) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %6) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %5) #11
  call void @llvm.lifetime.end.p0(i64 17414, ptr nonnull %4) #11
  call void @llvm.lifetime.end.p0(i64 15, ptr nonnull %3) #11
  ret i32 %.6
}

; 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: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #8

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

declare i32 @s2n_blob_init(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #2

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

declare i32 @s2n_get_public_random_data(ptr noundef) local_unnamed_addr #2

declare ptr @s2n_connection_new(i32 noundef) local_unnamed_addr #2

declare i32 @s2n_connection_ptr_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_hmac_init(ptr noundef, i32 noundef, ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_wipe(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_record_write(ptr noundef, i8 noundef zeroext, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_connection_prefer_low_latency(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_connection_prefer_throughput(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_record_max_write_payload_size(ptr noundef, ptr noundef) local_unnamed_addr #2

; Function Attrs: inlinehint nounwind uwtable
declare hidden zeroext i1 @s2n_result_is_error(i32) local_unnamed_addr #10

declare void @s2n_debug_info_reset() local_unnamed_addr #2

declare i32 @s2n_connection_free(ptr noundef) local_unnamed_addr #2

declare ptr @s2n_config_new() 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_config(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_record_min_write_payload_size(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_connection_wipe(ptr noundef) local_unnamed_addr #2

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

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

declare i32 @s2n_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_record_writev(ptr noundef, i8 noundef zeroext, ptr noundef, i32 noundef, i64 noundef, i64 noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_resize(ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @s2n_record_max_write_size(ptr noundef, i16 noundef zeroext, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_cleanup() local_unnamed_addr #2

attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { nofree nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #4 = { mustprogress nofree nosync nounwind willreturn memory(none) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #7 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #9 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #10 = { inlinehint nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #11 = { nounwind }
attributes #12 = { nounwind willreturn memory(none) }
attributes #13 = { cold nounwind }
attributes #14 = { noreturn nounwind }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"_Bool", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = !{!16, !10, i64 232}
!16 = !{!"s2n_connection", !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40, !10, i64 48, !10, i64 56, !10, i64 64, !10, i64 72, !7, i64 80, !7, i64 102, !7, i64 124, !6, i64 148, !6, i64 152, !17, i64 160, !18, i64 168, !18, i64 176, !7, i64 184, !7, i64 216, !7, i64 217, !7, i64 218, !7, i64 219, !7, i64 220, !7, i64 221, !7, i64 222, !10, i64 224, !10, i64 232, !19, i64 240, !10, i64 632, !10, i64 640, !20, i64 648, !26, i64 1144, !29, i64 1688, !10, i64 1752, !7, i64 1760, !6, i64 1764, !7, i64 1768, !32, i64 1776, !32, i64 1816, !32, i64 1856, !32, i64 1896, !6, i64 1936, !18, i64 1944, !7, i64 1952, !32, i64 1960, !7, i64 2000, !7, i64 2001, !7, i64 2002, !12, i64 2003, !33, i64 2004, !33, i64 2008, !34, i64 2016, !31, i64 2208, !6, i64 2212, !31, i64 2216, !18, i64 2224, !7, i64 2232, !18, i64 2240, !18, i64 2248, !18, i64 2256, !33, i64 2264, !33, i64 2268, !7, i64 2272, !7, i64 2528, !6, i64 2784, !25, i64 2792, !6, i64 2816, !25, i64 2824, !25, i64 2848, !25, i64 2872, !36, i64 2896, !38, i64 3704, !10, i64 3760, !10, i64 3768, !7, i64 3776, !6, i64 3780, !25, i64 3784, !6, i64 3808, !40, i64 3816, !7, i64 3848, !32, i64 3992, !25, i64 4032, !25, i64 4056, !12, i64 4080, !12, i64 4081, !12, i64 4082, !31, i64 4084, !31, i64 4086, !6, i64 4088, !6, i64 4092, !25, i64 4096, !6, i64 4120, !41, i64 4128, !33, i64 4176, !7, i64 4180, !7, i64 4181}
!17 = !{!"s2n_timer", !18, i64 0}
!18 = !{!"long", !7, i64 0}
!19 = !{!"s2n_secrets", !7, i64 0, !6, i64 388}
!20 = !{!"s2n_kex_parameters", !21, i64 0, !22, i64 8, !7, i64 24, !22, i64 56, !23, i64 72, !23, i64 184, !7, i64 296, !24, i64 360, !25, i64 448, !25, i64 472}
!21 = !{!"s2n_dh_params", !10, i64 0}
!22 = !{!"s2n_ecc_evp_params", !10, i64 0, !10, i64 8}
!23 = !{!"s2n_kem_group_params", !10, i64 0, !24, i64 8, !22, i64 96}
!24 = !{!"s2n_kem_params", !10, i64 0, !25, i64 8, !25, i64 32, !25, i64 56, !12, i64 80}
!25 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!26 = !{!"s2n_handshake_parameters", !27, i64 0, !27, i64 48, !25, i64 96, !6, i64 120, !28, i64 124, !10, i64 384, !10, i64 392, !10, i64 400, !7, i64 408, !7, i64 440, !7, i64 472, !7, i64 473, !7, i64 474, !7, i64 506}
!27 = !{!"s2n_pkey", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40}
!28 = !{!"s2n_sig_scheme_list", !7, i64 0, !7, i64 256}
!29 = !{!"s2n_psk_parameters", !6, i64 0, !30, i64 8, !31, i64 40, !31, i64 42, !10, i64 48, !6, i64 56}
!30 = !{!"s2n_array", !25, i64 0, !6, i64 24, !6, i64 28}
!31 = !{!"short", !7, i64 0}
!32 = !{!"s2n_stuffer", !25, i64 0, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 36, !6, i64 36}
!33 = !{!"", !6, i64 0}
!34 = !{!"s2n_handshake", !32, i64 0, !10, i64 40, !7, i64 48, !7, i64 56, !7, i64 104, !7, i64 152, !6, i64 156, !6, i64 160, !6, i64 164, !6, i64 168, !35, i64 176, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 188}
!35 = !{!"s2n_offered_early_data", !10, i64 0}
!36 = !{!"s2n_client_hello", !25, i64 0, !37, i64 24, !25, i64 728, !25, i64 752, !25, i64 776, !7, i64 800, !7, i64 801, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802}
!37 = !{!"", !7, i64 0, !25, i64 672, !31, i64 696}
!38 = !{!"s2n_x509_validator", !10, i64 0, !10, i64 8, !7, i64 16, !7, i64 17, !31, i64 18, !10, i64 24, !6, i64 32, !10, i64 40, !39, i64 48, !12, i64 52}
!39 = !{!"s2n_cert_validation_info", !6, i64 0, !6, i64 0}
!40 = !{!"s2n_ticket_fields", !25, i64 0, !6, i64 24}
!41 = !{!"s2n_post_handshake", !32, i64 0, !7, i64 40}
!42 = !{!16, !10, i64 640}
!43 = !{!16, !10, i64 632}
!44 = !{!45, !10, i64 0}
!45 = !{!"s2n_crypto_parameters", !10, i64 0, !46, i64 8, !46, i64 16, !47, i64 24, !47, i64 456, !7, i64 888, !7, i64 904, !7, i64 920, !7, i64 928}
!46 = !{!"s2n_session_key", !10, i64 0}
!47 = !{!"s2n_hmac_state", !6, i64 0, !31, i64 4, !6, i64 8, !31, i64 12, !7, i64 14, !48, i64 16, !48, i64 72, !48, i64 128, !48, i64 184, !7, i64 240, !7, i64 368}
!48 = !{!"s2n_hash_state", !10, i64 0, !6, i64 8, !7, i64 12, !18, i64 16, !7, i64 24}
!49 = !{!50, !10, i64 48}
!50 = !{!"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}
!51 = !{!52, !10, i64 0}
!52 = !{!"s2n_record_algorithm", !10, i64 0, !6, i64 8, !6, i64 12, !18, i64 16}
!53 = !{!54, !10, i64 64}
!54 = !{!"s2n_cipher", !6, i64 0, !7, i64 8, !7, i64 48, !10, i64 56, !10, i64 64, !10, i64 72, !10, i64 80, !10, i64 88, !10, i64 96}
!55 = !{!54, !10, i64 80}
!56 = !{!54, !10, i64 72}
!57 = !{!16, !7, i64 220}
!58 = !{i64 0, i64 8, !9, i64 8, i64 4, !5, i64 12, i64 4, !5, i64 16, i64 1, !59}
!59 = !{!7, !7, i64 0}
!60 = !{!25, !6, i64 8}
!61 = !{!54, !10, i64 88}
!62 = !{!31, !31, i64 0}
!63 = !{!16, !31, i64 2208}
!64 = !{!16, !10, i64 224}
!65 = !{!16, !6, i64 1924}
!66 = !{!16, !6, i64 1920}
!67 = !{!16, !10, i64 1896}
!68 = !{!54, !10, i64 56}
!69 = !{!25, !10, i64 0}
!70 = distinct !{!70, !71}
!71 = !{!"llvm.loop.mustprogress"}
!72 = !{!73, !10, i64 0}
!73 = !{!"iovec", !10, i64 0, !18, i64 8}
!74 = !{!73, !18, i64 8}
!75 = !{!16, !6, i64 2172}


; Effective O3 passes: CorrelatedValuePropagationPass,DSEPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,LICMPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,PostOrderFunctionAttrsPass,SCCPPass,SROAPass,SimplifyCFGPass,TailCallElimPass