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

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

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

348:                                              ; preds = %2
  br label %349

349:                                              ; preds = %348
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %350 = load ptr, ptr @stdout, align 8, !tbaa !9
  %351 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %350, ptr noundef @.str, ptr noundef @.str.1) #11
  %352 = load ptr, ptr @stdout, align 8, !tbaa !9
  %353 = call i32 @fflush(ptr noundef %352)
  br label %354

354:                                              ; preds = %349
  %355 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true)
  %356 = icmp eq i32 %355, -1
  br i1 %356, label %357, label %408

357:                                              ; preds = %354
  br label %358

358:                                              ; preds = %357
  br label %359

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

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

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

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

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

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

407:                                              ; No predecessors!
  br label %408

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

409:                                              ; preds = %408
  br label %410

410:                                              ; preds = %409
  %411 = load i32, ptr @test_count, align 4, !tbaa !5
  %412 = add nsw i32 %411, 1
  store i32 %412, ptr @test_count, align 4, !tbaa !5
  %413 = call i32 @s2n_enable_atexit()
  %414 = icmp eq i32 %413, -1
  br i1 %414, label %415, label %466

415:                                              ; preds = %410
  br label %416

416:                                              ; preds = %415
  br label %417

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

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

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

446:                                              ; preds = %424, %417
  %447 = load i32, ptr %7, align 4, !tbaa !5
  %448 = call ptr @__errno_location() #12
  store i32 %447, ptr %448, align 4, !tbaa !5
  %449 = load ptr, ptr @stderr, align 8, !tbaa !9
  %450 = load i32, ptr @test_count, align 4, !tbaa !5
  %451 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %452 = load i32, ptr %451, align 4, !tbaa !5
  %453 = call ptr @s2n_strerror(i32 noundef %452, ptr noundef @.str.4)
  %454 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %455 = load i32, ptr %454, align 4, !tbaa !5
  %456 = call ptr @s2n_strerror_debug(i32 noundef %455, ptr noundef @.str.4)
  %457 = call ptr @__errno_location() #12
  %458 = load i32, ptr %457, align 4, !tbaa !5
  %459 = call ptr @strerror(i32 noundef %458) #11
  %460 = call ptr @__errno_location() #12
  %461 = load i32, ptr %460, align 4, !tbaa !5
  %462 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %449, ptr noundef @.str.5, i32 noundef %450, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 49, ptr noundef %453, ptr noundef %456, ptr noundef %459, i32 noundef %461) #11
  br label %463

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

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

465:                                              ; No predecessors!
  br label %466

466:                                              ; preds = %465, %410
  br label %467

467:                                              ; preds = %466
  br label %468

468:                                              ; preds = %467
  br label %469

469:                                              ; preds = %468
  %470 = call i32 @s2n_init()
  %471 = icmp eq i32 %470, -1
  br i1 %471, label %472, label %523

472:                                              ; preds = %469
  br label %473

473:                                              ; preds = %472
  br label %474

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

481:                                              ; preds = %474
  %482 = load ptr, ptr @stderr, align 8, !tbaa !9
  %483 = call i32 @fileno(ptr noundef %482) #11
  %484 = call i32 @isatty(i32 noundef %483) #11
  %485 = icmp ne i32 %484, 0
  br i1 %485, label %486, label %503

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

503:                                              ; preds = %481, %474
  %504 = load i32, ptr %8, align 4, !tbaa !5
  %505 = call ptr @__errno_location() #12
  store i32 %504, ptr %505, align 4, !tbaa !5
  %506 = load ptr, ptr @stderr, align 8, !tbaa !9
  %507 = load i32, ptr @test_count, align 4, !tbaa !5
  %508 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %509 = load i32, ptr %508, align 4, !tbaa !5
  %510 = call ptr @s2n_strerror(i32 noundef %509, ptr noundef @.str.4)
  %511 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %512 = load i32, ptr %511, align 4, !tbaa !5
  %513 = call ptr @s2n_strerror_debug(i32 noundef %512, ptr noundef @.str.4)
  %514 = call ptr @__errno_location() #12
  %515 = load i32, ptr %514, align 4, !tbaa !5
  %516 = call ptr @strerror(i32 noundef %515) #11
  %517 = call ptr @__errno_location() #12
  %518 = load i32, ptr %517, align 4, !tbaa !5
  %519 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %506, ptr noundef @.str.5, i32 noundef %507, ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 49, ptr noundef %510, ptr noundef %513, ptr noundef %516, i32 noundef %518) #11
  br label %520

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

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

522:                                              ; No predecessors!
  br label %523

523:                                              ; preds = %522, %469
  br label %524

524:                                              ; preds = %523
  br label %525

525:                                              ; preds = %524
  call void @llvm.lifetime.start.p0(i64 48, ptr %9) #11
  call void @llvm.memset.p0.i64(ptr align 16 %9, i8 0, i64 48, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %10) #11
  store ptr @cipher_preferences_test_all_tls13, ptr %10, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #11
  store ptr @s2n_ecc_preferences_test_all, ptr %11, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %12, ptr align 4 @__const.main.modes, i64 8, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr %13) #11
  call void @llvm.memset.p0.i64(ptr align 8 %13, i8 0, i64 24, i1 false)
  call void @llvm.lifetime.start.p0(i64 48, ptr %14) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %14, ptr align 16 @__const.main.test_secret_bytes, i64 48, i1 false)
  br label %526

526:                                              ; preds = %525
  %527 = load i32, ptr @test_count, align 4, !tbaa !5
  %528 = add nsw i32 %527, 1
  store i32 %528, ptr @test_count, align 4, !tbaa !5
  %529 = getelementptr inbounds [48 x i8], ptr %14, i64 0, i64 0
  %530 = call i32 @s2n_blob_init(ptr noundef %13, ptr noundef %529, i32 noundef 48)
  %531 = icmp eq i32 %530, -1
  br i1 %531, label %532, label %585

532:                                              ; preds = %526
  br label %533

533:                                              ; preds = %532
  br label %534

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

541:                                              ; preds = %534
  %542 = load ptr, ptr @stderr, align 8, !tbaa !9
  %543 = call i32 @fileno(ptr noundef %542) #11
  %544 = call i32 @isatty(i32 noundef %543) #11
  %545 = icmp ne i32 %544, 0
  br i1 %545, label %546, label %563

546:                                              ; preds = %541
  %547 = load i32, ptr %15, align 4, !tbaa !5
  %548 = call ptr @__errno_location() #12
  store i32 %547, ptr %548, align 4, !tbaa !5
  %549 = load ptr, ptr @stderr, align 8, !tbaa !9
  %550 = load i32, ptr @test_count, align 4, !tbaa !5
  %551 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %552 = load i32, ptr %551, align 4, !tbaa !5
  %553 = call ptr @s2n_strerror(i32 noundef %552, ptr noundef @.str.4)
  %554 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %555 = load i32, ptr %554, align 4, !tbaa !5
  %556 = call ptr @s2n_strerror_debug(i32 noundef %555, ptr noundef @.str.4)
  %557 = call ptr @__errno_location() #12
  %558 = load i32, ptr %557, align 4, !tbaa !5
  %559 = call ptr @strerror(i32 noundef %558) #11
  %560 = call ptr @__errno_location() #12
  %561 = load i32, ptr %560, align 4, !tbaa !5
  %562 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %549, ptr noundef @.str.2, i32 noundef %550, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 59, ptr noundef %553, ptr noundef %556, ptr noundef %559, i32 noundef %561) #11
  br label %580

563:                                              ; preds = %541, %534
  %564 = load i32, ptr %15, align 4, !tbaa !5
  %565 = call ptr @__errno_location() #12
  store i32 %564, ptr %565, align 4, !tbaa !5
  %566 = load ptr, ptr @stderr, align 8, !tbaa !9
  %567 = load i32, ptr @test_count, align 4, !tbaa !5
  %568 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %569 = load i32, ptr %568, align 4, !tbaa !5
  %570 = call ptr @s2n_strerror(i32 noundef %569, ptr noundef @.str.4)
  %571 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %572 = load i32, ptr %571, align 4, !tbaa !5
  %573 = call ptr @s2n_strerror_debug(i32 noundef %572, ptr noundef @.str.4)
  %574 = call ptr @__errno_location() #12
  %575 = load i32, ptr %574, align 4, !tbaa !5
  %576 = call ptr @strerror(i32 noundef %575) #11
  %577 = call ptr @__errno_location() #12
  %578 = load i32, ptr %577, align 4, !tbaa !5
  %579 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %566, ptr noundef @.str.5, i32 noundef %567, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 59, ptr noundef %570, ptr noundef %573, ptr noundef %576, i32 noundef %578) #11
  br label %580

580:                                              ; preds = %563, %546
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #11
  br label %581

581:                                              ; preds = %580
  br label %582

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

583:                                              ; No predecessors!
  br label %584

584:                                              ; preds = %583
  br label %585

585:                                              ; preds = %584, %526
  br label %586

586:                                              ; preds = %585
  br label %587

587:                                              ; preds = %586
  call void @llvm.lifetime.start.p0(i64 32000, ptr %16) #11
  call void @llvm.memset.p0.i64(ptr align 16 %16, i8 0, i64 32000, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #11
  store i64 0, ptr %17, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #11
  store i32 1, ptr %18, align 4, !tbaa !5
  br label %588

588:                                              ; preds = %681, %587
  %589 = load i32, ptr %18, align 4, !tbaa !5
  %590 = icmp ule i32 %589, 3
  br i1 %590, label %592, label %591

591:                                              ; preds = %588
  store i32 30, ptr %19, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #11
  br label %684

592:                                              ; preds = %588
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #11
  store i32 0, ptr %20, align 4, !tbaa !5
  br label %593

593:                                              ; preds = %677, %592
  %594 = load i32, ptr %20, align 4, !tbaa !5
  %595 = icmp ule i32 %594, 3
  br i1 %595, label %597, label %596

596:                                              ; preds = %593
  store i32 33, ptr %19, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #11
  br label %680

597:                                              ; preds = %593
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #11
  store i64 0, ptr %21, align 8, !tbaa !15
  br label %598

598:                                              ; preds = %673, %597
  %599 = load i64, ptr %21, align 8, !tbaa !15
  %600 = load ptr, ptr %10, align 8, !tbaa !9
  %601 = getelementptr inbounds %struct.s2n_cipher_preferences, ptr %600, i32 0, i32 0
  %602 = load i16, ptr %601, align 8, !tbaa !17
  %603 = zext i16 %602 to i64
  %604 = icmp ult i64 %599, %603
  br i1 %604, label %606, label %605

605:                                              ; preds = %598
  store i32 36, ptr %19, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #11
  br label %676

606:                                              ; preds = %598
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #11
  store i64 0, ptr %22, align 8, !tbaa !15
  br label %607

607:                                              ; preds = %669, %606
  %608 = load i64, ptr %22, align 8, !tbaa !15
  %609 = load ptr, ptr %11, align 8, !tbaa !9
  %610 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %609, i32 0, i32 0
  %611 = load i8, ptr %610, align 8, !tbaa !20
  %612 = zext i8 %611 to i64
  %613 = icmp ult i64 %608, %612
  br i1 %613, label %615, label %614

614:                                              ; preds = %607
  store i32 39, ptr %19, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #11
  br label %672

615:                                              ; preds = %607
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #11
  store i64 0, ptr %23, align 8, !tbaa !15
  br label %616

616:                                              ; preds = %665, %615
  %617 = load i64, ptr %23, align 8, !tbaa !15
  %618 = icmp ult i64 %617, 2
  br i1 %618, label %620, label %619

619:                                              ; preds = %616
  store i32 42, ptr %19, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #11
  br label %668

620:                                              ; preds = %616
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #11
  store i64 0, ptr %24, align 8, !tbaa !15
  br label %621

621:                                              ; preds = %661, %620
  %622 = load i64, ptr %24, align 8, !tbaa !15
  %623 = icmp ult i64 %622, 2
  br i1 %623, label %625, label %624

624:                                              ; preds = %621
  store i32 45, ptr %19, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #11
  br label %664

625:                                              ; preds = %621
  %626 = load i32, ptr %20, align 4, !tbaa !5
  %627 = load i32, ptr %18, align 4, !tbaa !5
  %628 = icmp ugt i32 %626, %627
  br i1 %628, label %629, label %630

629:                                              ; preds = %625
  br label %661

630:                                              ; preds = %625
  %631 = load i64, ptr %17, align 8, !tbaa !15
  %632 = getelementptr inbounds [1000 x %struct.s2n_tls13_secrets_test_case], ptr %16, i64 0, i64 %631
  %633 = getelementptr inbounds %struct.s2n_tls13_secrets_test_case, ptr %25, i32 0, i32 0
  %634 = load i32, ptr %20, align 4, !tbaa !5
  store i32 %634, ptr %633, align 8, !tbaa !22
  %635 = getelementptr inbounds %struct.s2n_tls13_secrets_test_case, ptr %25, i32 0, i32 1
  %636 = load i32, ptr %18, align 4, !tbaa !5
  store i32 %636, ptr %635, align 4, !tbaa !24
  %637 = getelementptr inbounds %struct.s2n_tls13_secrets_test_case, ptr %25, i32 0, i32 2
  %638 = load i64, ptr %23, align 8, !tbaa !15
  %639 = getelementptr inbounds [2 x i32], ptr %12, i64 0, i64 %638
  %640 = load i32, ptr %639, align 4, !tbaa !5
  store i32 %640, ptr %637, align 8, !tbaa !25
  %641 = getelementptr inbounds %struct.s2n_tls13_secrets_test_case, ptr %25, i32 0, i32 3
  %642 = load i64, ptr %24, align 8, !tbaa !15
  %643 = getelementptr inbounds [2 x i32], ptr %12, i64 0, i64 %642
  %644 = load i32, ptr %643, align 4, !tbaa !5
  store i32 %644, ptr %641, align 4, !tbaa !26
  %645 = getelementptr inbounds %struct.s2n_tls13_secrets_test_case, ptr %25, i32 0, i32 4
  %646 = load ptr, ptr %10, align 8, !tbaa !9
  %647 = getelementptr inbounds %struct.s2n_cipher_preferences, ptr %646, i32 0, i32 1
  %648 = load ptr, ptr %647, align 8, !tbaa !27
  %649 = load i64, ptr %21, align 8, !tbaa !15
  %650 = getelementptr inbounds ptr, ptr %648, i64 %649
  %651 = load ptr, ptr %650, align 8, !tbaa !9
  store ptr %651, ptr %645, align 8, !tbaa !28
  %652 = getelementptr inbounds %struct.s2n_tls13_secrets_test_case, ptr %25, i32 0, i32 5
  %653 = load ptr, ptr %11, align 8, !tbaa !9
  %654 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %653, i32 0, i32 1
  %655 = load ptr, ptr %654, align 8, !tbaa !29
  %656 = load i64, ptr %22, align 8, !tbaa !15
  %657 = getelementptr inbounds ptr, ptr %655, i64 %656
  %658 = load ptr, ptr %657, align 8, !tbaa !9
  store ptr %658, ptr %652, align 8, !tbaa !30
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %632, ptr align 8 %25, i64 32, i1 false), !tbaa.struct !31
  %659 = load i64, ptr %17, align 8, !tbaa !15
  %660 = add i64 %659, 1
  store i64 %660, ptr %17, align 8, !tbaa !15
  br label %661

661:                                              ; preds = %630, %629
  %662 = load i64, ptr %24, align 8, !tbaa !15
  %663 = add i64 %662, 1
  store i64 %663, ptr %24, align 8, !tbaa !15
  br label %621, !llvm.loop !32

664:                                              ; preds = %624
  br label %665

665:                                              ; preds = %664
  %666 = load i64, ptr %23, align 8, !tbaa !15
  %667 = add i64 %666, 1
  store i64 %667, ptr %23, align 8, !tbaa !15
  br label %616, !llvm.loop !34

668:                                              ; preds = %619
  br label %669

669:                                              ; preds = %668
  %670 = load i64, ptr %22, align 8, !tbaa !15
  %671 = add i64 %670, 1
  store i64 %671, ptr %22, align 8, !tbaa !15
  br label %607, !llvm.loop !35

672:                                              ; preds = %614
  br label %673

673:                                              ; preds = %672
  %674 = load i64, ptr %21, align 8, !tbaa !15
  %675 = add i64 %674, 1
  store i64 %675, ptr %21, align 8, !tbaa !15
  br label %598, !llvm.loop !36

676:                                              ; preds = %605
  br label %677

677:                                              ; preds = %676
  %678 = load i32, ptr %20, align 4, !tbaa !5
  %679 = add i32 %678, 1
  store i32 %679, ptr %20, align 4, !tbaa !5
  br label %593, !llvm.loop !37

680:                                              ; preds = %596
  br label %681

681:                                              ; preds = %680
  %682 = load i32, ptr %18, align 4, !tbaa !5
  %683 = add i32 %682, 1
  store i32 %683, ptr %18, align 4, !tbaa !5
  br label %588, !llvm.loop !38

684:                                              ; preds = %591
  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 = load i64, ptr %17, align 8, !tbaa !15
  %689 = icmp ugt i64 %688, 0
  br i1 %689, label %743, label %690

690:                                              ; preds = %685
  br label %691

691:                                              ; preds = %690
  br label %692

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

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

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

721:                                              ; preds = %699, %692
  %722 = load i32, ptr %26, align 4, !tbaa !5
  %723 = call ptr @__errno_location() #12
  store i32 %722, ptr %723, 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 @.str.4)
  %729 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %730 = load i32, ptr %729, align 4, !tbaa !5
  %731 = call ptr @s2n_strerror_debug(i32 noundef %730, ptr noundef @.str.4)
  %732 = call ptr @__errno_location() #12
  %733 = load i32, ptr %732, align 4, !tbaa !5
  %734 = call ptr @strerror(i32 noundef %733) #11
  %735 = call ptr @__errno_location() #12
  %736 = load i32, ptr %735, align 4, !tbaa !5
  %737 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %724, ptr noundef @.str.5, i32 noundef %725, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 88, ptr noundef %728, ptr noundef %731, ptr noundef %734, i32 noundef %736) #11
  br label %738

738:                                              ; preds = %721, %704
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #11
  br label %739

739:                                              ; preds = %738
  br label %740

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

741:                                              ; No predecessors!
  br label %742

742:                                              ; preds = %741
  br label %743

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

744:                                              ; preds = %743
  br label %745

745:                                              ; preds = %744
  call void @llvm.lifetime.start.p0(i64 4184, ptr %27) #11
  call void @llvm.memset.p0.i64(ptr align 8 %27, i8 0, i64 4184, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #11
  %746 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %746, ptr %28, align 8, !tbaa !9
  br label %747

747:                                              ; preds = %745
  br label %748

748:                                              ; preds = %747
  br label %749

749:                                              ; preds = %748
  %750 = load i32, ptr @test_count, align 4, !tbaa !5
  %751 = add nsw i32 %750, 1
  store i32 %751, ptr @test_count, align 4, !tbaa !5
  %752 = call i32 @s2n_tls13_extract_secret(ptr noundef null, i32 noundef 1)
  %753 = getelementptr inbounds %struct.s2n_result, ptr %29, i32 0, i32 0
  store i32 %752, ptr %753, align 4
  %754 = getelementptr inbounds %struct.s2n_result, ptr %29, i32 0, i32 0
  %755 = load i32, ptr %754, align 4
  %756 = call zeroext i1 @s2n_result_is_error(i32 %755)
  br i1 %756, label %810, label %757

757:                                              ; preds = %749
  br label %758

758:                                              ; preds = %757
  br label %759

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

766:                                              ; preds = %759
  %767 = load ptr, ptr @stderr, align 8, !tbaa !9
  %768 = call i32 @fileno(ptr noundef %767) #11
  %769 = call i32 @isatty(i32 noundef %768) #11
  %770 = icmp ne i32 %769, 0
  br i1 %770, label %771, label %788

771:                                              ; preds = %766
  %772 = load i32, ptr %30, align 4, !tbaa !5
  %773 = call ptr @__errno_location() #12
  store i32 %772, ptr %773, align 4, !tbaa !5
  %774 = load ptr, ptr @stderr, align 8, !tbaa !9
  %775 = load i32, ptr @test_count, align 4, !tbaa !5
  %776 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %777 = load i32, ptr %776, align 4, !tbaa !5
  %778 = call ptr @s2n_strerror(i32 noundef %777, ptr noundef @.str.4)
  %779 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %780 = load i32, ptr %779, align 4, !tbaa !5
  %781 = call ptr @s2n_strerror_debug(i32 noundef %780, ptr noundef @.str.4)
  %782 = call ptr @__errno_location() #12
  %783 = load i32, ptr %782, align 4, !tbaa !5
  %784 = call ptr @strerror(i32 noundef %783) #11
  %785 = call ptr @__errno_location() #12
  %786 = load i32, ptr %785, align 4, !tbaa !5
  %787 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %774, ptr noundef @.str.2, i32 noundef %775, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 98, ptr noundef %778, ptr noundef %781, ptr noundef %784, i32 noundef %786) #11
  br label %805

788:                                              ; preds = %766, %759
  %789 = load i32, ptr %30, align 4, !tbaa !5
  %790 = call ptr @__errno_location() #12
  store i32 %789, ptr %790, align 4, !tbaa !5
  %791 = load ptr, ptr @stderr, align 8, !tbaa !9
  %792 = load i32, ptr @test_count, align 4, !tbaa !5
  %793 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %794 = load i32, ptr %793, align 4, !tbaa !5
  %795 = call ptr @s2n_strerror(i32 noundef %794, ptr noundef @.str.4)
  %796 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %797 = load i32, ptr %796, align 4, !tbaa !5
  %798 = call ptr @s2n_strerror_debug(i32 noundef %797, ptr noundef @.str.4)
  %799 = call ptr @__errno_location() #12
  %800 = load i32, ptr %799, align 4, !tbaa !5
  %801 = call ptr @strerror(i32 noundef %800) #11
  %802 = call ptr @__errno_location() #12
  %803 = load i32, ptr %802, align 4, !tbaa !5
  %804 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %791, ptr noundef @.str.5, i32 noundef %792, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 98, ptr noundef %795, ptr noundef %798, ptr noundef %801, i32 noundef %803) #11
  br label %805

805:                                              ; preds = %788, %771
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #11
  br label %806

806:                                              ; preds = %805
  br label %807

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

808:                                              ; No predecessors!
  br label %809

809:                                              ; preds = %808
  br label %810

810:                                              ; preds = %809, %749
  br label %811

811:                                              ; preds = %810
  br label %812

812:                                              ; preds = %811
  br label %813

813:                                              ; preds = %812
  %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 align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %817 = load i32, ptr %816, align 4, !tbaa !5
  %818 = icmp eq i32 %817, 402653193
  br i1 %818, label %872, label %819

819:                                              ; preds = %813
  br label %820

820:                                              ; preds = %819
  br label %821

821:                                              ; preds = %820
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #11
  %822 = call ptr @__errno_location() #12
  %823 = load i32, ptr %822, align 4, !tbaa !5
  store i32 %823, ptr %31, align 4, !tbaa !5
  %824 = load ptr, ptr @stderr, align 8, !tbaa !9
  %825 = call i32 @s2n_print_stacktrace(ptr noundef %824)
  %826 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %827 = trunc i8 %826 to i1
  br i1 %827, label %828, label %850

828:                                              ; preds = %821
  %829 = load ptr, ptr @stderr, align 8, !tbaa !9
  %830 = call i32 @fileno(ptr noundef %829) #11
  %831 = call i32 @isatty(i32 noundef %830) #11
  %832 = icmp ne i32 %831, 0
  br i1 %832, label %833, label %850

833:                                              ; preds = %828
  %834 = load i32, ptr %31, align 4, !tbaa !5
  %835 = call ptr @__errno_location() #12
  store i32 %834, ptr %835, align 4, !tbaa !5
  %836 = load ptr, ptr @stderr, align 8, !tbaa !9
  %837 = load i32, ptr @test_count, align 4, !tbaa !5
  %838 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %839 = load i32, ptr %838, align 4, !tbaa !5
  %840 = call ptr @s2n_strerror(i32 noundef %839, ptr noundef @.str.4)
  %841 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %842 = load i32, ptr %841, align 4, !tbaa !5
  %843 = call ptr @s2n_strerror_debug(i32 noundef %842, ptr noundef @.str.4)
  %844 = call ptr @__errno_location() #12
  %845 = load i32, ptr %844, align 4, !tbaa !5
  %846 = call ptr @strerror(i32 noundef %845) #11
  %847 = call ptr @__errno_location() #12
  %848 = load i32, ptr %847, align 4, !tbaa !5
  %849 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %836, ptr noundef @.str.2, i32 noundef %837, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 98, ptr noundef %840, ptr noundef %843, ptr noundef %846, i32 noundef %848) #11
  br label %867

850:                                              ; preds = %828, %821
  %851 = load i32, ptr %31, align 4, !tbaa !5
  %852 = call ptr @__errno_location() #12
  store i32 %851, ptr %852, align 4, !tbaa !5
  %853 = load ptr, ptr @stderr, align 8, !tbaa !9
  %854 = load i32, ptr @test_count, align 4, !tbaa !5
  %855 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %856 = load i32, ptr %855, align 4, !tbaa !5
  %857 = call ptr @s2n_strerror(i32 noundef %856, ptr noundef @.str.4)
  %858 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %859 = load i32, ptr %858, align 4, !tbaa !5
  %860 = call ptr @s2n_strerror_debug(i32 noundef %859, ptr noundef @.str.4)
  %861 = call ptr @__errno_location() #12
  %862 = load i32, ptr %861, align 4, !tbaa !5
  %863 = call ptr @strerror(i32 noundef %862) #11
  %864 = call ptr @__errno_location() #12
  %865 = load i32, ptr %864, align 4, !tbaa !5
  %866 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %853, ptr noundef @.str.5, i32 noundef %854, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 98, ptr noundef %857, ptr noundef %860, ptr noundef %863, i32 noundef %865) #11
  br label %867

867:                                              ; preds = %850, %833
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #11
  br label %868

868:                                              ; preds = %867
  br label %869

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

870:                                              ; No predecessors!
  br label %871

871:                                              ; preds = %870
  br label %872

872:                                              ; preds = %871, %813
  br label %873

873:                                              ; preds = %872
  br label %874

874:                                              ; preds = %873
  br label %875

875:                                              ; preds = %874
  %876 = load i32, ptr @test_count, align 4, !tbaa !5
  %877 = add nsw i32 %876, 1
  store i32 %877, ptr @test_count, align 4, !tbaa !5
  %878 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %879 = load i32, ptr %878, align 4, !tbaa !5
  %880 = call ptr @s2n_strerror_debug(i32 noundef %879, ptr noundef @.str.4)
  %881 = icmp eq ptr %880, null
  br i1 %881, label %882, label %935

882:                                              ; preds = %875
  br label %883

883:                                              ; preds = %882
  br label %884

884:                                              ; preds = %883
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #11
  %885 = call ptr @__errno_location() #12
  %886 = load i32, ptr %885, align 4, !tbaa !5
  store i32 %886, ptr %32, align 4, !tbaa !5
  %887 = load ptr, ptr @stderr, align 8, !tbaa !9
  %888 = call i32 @s2n_print_stacktrace(ptr noundef %887)
  %889 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %890 = trunc i8 %889 to i1
  br i1 %890, label %891, label %913

891:                                              ; preds = %884
  %892 = load ptr, ptr @stderr, align 8, !tbaa !9
  %893 = call i32 @fileno(ptr noundef %892) #11
  %894 = call i32 @isatty(i32 noundef %893) #11
  %895 = icmp ne i32 %894, 0
  br i1 %895, label %896, label %913

896:                                              ; preds = %891
  %897 = load i32, ptr %32, align 4, !tbaa !5
  %898 = call ptr @__errno_location() #12
  store i32 %897, ptr %898, align 4, !tbaa !5
  %899 = load ptr, ptr @stderr, align 8, !tbaa !9
  %900 = load i32, ptr @test_count, align 4, !tbaa !5
  %901 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %902 = load i32, ptr %901, align 4, !tbaa !5
  %903 = call ptr @s2n_strerror(i32 noundef %902, ptr noundef @.str.4)
  %904 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %905 = load i32, ptr %904, align 4, !tbaa !5
  %906 = call ptr @s2n_strerror_debug(i32 noundef %905, ptr noundef @.str.4)
  %907 = call ptr @__errno_location() #12
  %908 = load i32, ptr %907, align 4, !tbaa !5
  %909 = call ptr @strerror(i32 noundef %908) #11
  %910 = call ptr @__errno_location() #12
  %911 = load i32, ptr %910, align 4, !tbaa !5
  %912 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %899, ptr noundef @.str.2, i32 noundef %900, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 98, ptr noundef %903, ptr noundef %906, ptr noundef %909, i32 noundef %911) #11
  br label %930

913:                                              ; preds = %891, %884
  %914 = load i32, ptr %32, align 4, !tbaa !5
  %915 = call ptr @__errno_location() #12
  store i32 %914, ptr %915, align 4, !tbaa !5
  %916 = load ptr, ptr @stderr, align 8, !tbaa !9
  %917 = load i32, ptr @test_count, align 4, !tbaa !5
  %918 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %919 = load i32, ptr %918, align 4, !tbaa !5
  %920 = call ptr @s2n_strerror(i32 noundef %919, ptr noundef @.str.4)
  %921 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %922 = load i32, ptr %921, align 4, !tbaa !5
  %923 = call ptr @s2n_strerror_debug(i32 noundef %922, ptr noundef @.str.4)
  %924 = call ptr @__errno_location() #12
  %925 = load i32, ptr %924, align 4, !tbaa !5
  %926 = call ptr @strerror(i32 noundef %925) #11
  %927 = call ptr @__errno_location() #12
  %928 = load i32, ptr %927, align 4, !tbaa !5
  %929 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %916, ptr noundef @.str.5, i32 noundef %917, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 98, ptr noundef %920, ptr noundef %923, ptr noundef %926, i32 noundef %928) #11
  br label %930

930:                                              ; preds = %913, %896
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #11
  br label %931

931:                                              ; preds = %930
  br label %932

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

933:                                              ; No predecessors!
  br label %934

934:                                              ; preds = %933
  br label %935

935:                                              ; preds = %934, %875
  br label %936

936:                                              ; preds = %935
  br label %937

937:                                              ; preds = %936
  br label %938

938:                                              ; preds = %937
  br label %939

939:                                              ; preds = %938
  br label %940

940:                                              ; preds = %939
  %941 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %941, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %942 = call ptr @__errno_location() #12
  store i32 0, ptr %942, align 4, !tbaa !5
  br label %943

943:                                              ; preds = %940
  br label %944

944:                                              ; preds = %943
  br label %945

945:                                              ; preds = %944
  br label %946

946:                                              ; preds = %945
  br label %947

947:                                              ; preds = %946
  br label %948

948:                                              ; preds = %947
  br label %949

949:                                              ; preds = %948
  %950 = load i32, ptr @test_count, align 4, !tbaa !5
  %951 = add nsw i32 %950, 1
  store i32 %951, ptr @test_count, align 4, !tbaa !5
  %952 = call i32 @s2n_tls13_extract_secret(ptr noundef %27, i32 noundef 1)
  %953 = getelementptr inbounds %struct.s2n_result, ptr %33, i32 0, i32 0
  store i32 %952, ptr %953, align 4
  %954 = getelementptr inbounds %struct.s2n_result, ptr %33, i32 0, i32 0
  %955 = load i32, ptr %954, align 4
  %956 = call zeroext i1 @s2n_result_is_error(i32 %955)
  br i1 %956, label %1010, label %957

957:                                              ; preds = %949
  br label %958

958:                                              ; preds = %957
  br label %959

959:                                              ; preds = %958
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #11
  %960 = call ptr @__errno_location() #12
  %961 = load i32, ptr %960, align 4, !tbaa !5
  store i32 %961, ptr %34, align 4, !tbaa !5
  %962 = load ptr, ptr @stderr, align 8, !tbaa !9
  %963 = call i32 @s2n_print_stacktrace(ptr noundef %962)
  %964 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %965 = trunc i8 %964 to i1
  br i1 %965, label %966, label %988

966:                                              ; preds = %959
  %967 = load ptr, ptr @stderr, align 8, !tbaa !9
  %968 = call i32 @fileno(ptr noundef %967) #11
  %969 = call i32 @isatty(i32 noundef %968) #11
  %970 = icmp ne i32 %969, 0
  br i1 %970, label %971, label %988

971:                                              ; preds = %966
  %972 = load i32, ptr %34, align 4, !tbaa !5
  %973 = call ptr @__errno_location() #12
  store i32 %972, ptr %973, align 4, !tbaa !5
  %974 = load ptr, ptr @stderr, align 8, !tbaa !9
  %975 = load i32, ptr @test_count, align 4, !tbaa !5
  %976 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %977 = load i32, ptr %976, align 4, !tbaa !5
  %978 = call ptr @s2n_strerror(i32 noundef %977, ptr noundef @.str.4)
  %979 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %980 = load i32, ptr %979, align 4, !tbaa !5
  %981 = call ptr @s2n_strerror_debug(i32 noundef %980, ptr noundef @.str.4)
  %982 = call ptr @__errno_location() #12
  %983 = load i32, ptr %982, align 4, !tbaa !5
  %984 = call ptr @strerror(i32 noundef %983) #11
  %985 = call ptr @__errno_location() #12
  %986 = load i32, ptr %985, align 4, !tbaa !5
  %987 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %974, ptr noundef @.str.2, i32 noundef %975, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 99, ptr noundef %978, ptr noundef %981, ptr noundef %984, i32 noundef %986) #11
  br label %1005

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

1005:                                             ; preds = %988, %971
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #11
  br label %1006

1006:                                             ; preds = %1005
  br label %1007

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

1008:                                             ; No predecessors!
  br label %1009

1009:                                             ; preds = %1008
  br label %1010

1010:                                             ; preds = %1009, %949
  br label %1011

1011:                                             ; preds = %1010
  br label %1012

1012:                                             ; preds = %1011
  br label %1013

1013:                                             ; preds = %1012
  %1014 = load i32, ptr @test_count, align 4, !tbaa !5
  %1015 = add nsw i32 %1014, 1
  store i32 %1015, ptr @test_count, align 4, !tbaa !5
  %1016 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1017 = load i32, ptr %1016, align 4, !tbaa !5
  %1018 = icmp eq i32 %1017, 402653193
  br i1 %1018, label %1072, label %1019

1019:                                             ; preds = %1013
  br label %1020

1020:                                             ; preds = %1019
  br label %1021

1021:                                             ; preds = %1020
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #11
  %1022 = call ptr @__errno_location() #12
  %1023 = load i32, ptr %1022, align 4, !tbaa !5
  store i32 %1023, ptr %35, align 4, !tbaa !5
  %1024 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1025 = call i32 @s2n_print_stacktrace(ptr noundef %1024)
  %1026 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1027 = trunc i8 %1026 to i1
  br i1 %1027, label %1028, label %1050

1028:                                             ; preds = %1021
  %1029 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1030 = call i32 @fileno(ptr noundef %1029) #11
  %1031 = call i32 @isatty(i32 noundef %1030) #11
  %1032 = icmp ne i32 %1031, 0
  br i1 %1032, label %1033, label %1050

1033:                                             ; preds = %1028
  %1034 = load i32, ptr %35, align 4, !tbaa !5
  %1035 = call ptr @__errno_location() #12
  store i32 %1034, ptr %1035, align 4, !tbaa !5
  %1036 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1037 = load i32, ptr @test_count, align 4, !tbaa !5
  %1038 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1039 = load i32, ptr %1038, align 4, !tbaa !5
  %1040 = call ptr @s2n_strerror(i32 noundef %1039, ptr noundef @.str.4)
  %1041 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1042 = load i32, ptr %1041, align 4, !tbaa !5
  %1043 = call ptr @s2n_strerror_debug(i32 noundef %1042, ptr noundef @.str.4)
  %1044 = call ptr @__errno_location() #12
  %1045 = load i32, ptr %1044, align 4, !tbaa !5
  %1046 = call ptr @strerror(i32 noundef %1045) #11
  %1047 = call ptr @__errno_location() #12
  %1048 = load i32, ptr %1047, align 4, !tbaa !5
  %1049 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1036, ptr noundef @.str.2, i32 noundef %1037, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 99, ptr noundef %1040, ptr noundef %1043, ptr noundef %1046, i32 noundef %1048) #11
  br label %1067

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

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

1068:                                             ; preds = %1067
  br label %1069

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

1070:                                             ; No predecessors!
  br label %1071

1071:                                             ; preds = %1070
  br label %1072

1072:                                             ; preds = %1071, %1013
  br label %1073

1073:                                             ; preds = %1072
  br label %1074

1074:                                             ; preds = %1073
  br label %1075

1075:                                             ; preds = %1074
  %1076 = load i32, ptr @test_count, align 4, !tbaa !5
  %1077 = add nsw i32 %1076, 1
  store i32 %1077, ptr @test_count, align 4, !tbaa !5
  %1078 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1079 = load i32, ptr %1078, align 4, !tbaa !5
  %1080 = call ptr @s2n_strerror_debug(i32 noundef %1079, ptr noundef @.str.4)
  %1081 = icmp eq ptr %1080, null
  br i1 %1081, label %1082, label %1135

1082:                                             ; preds = %1075
  br label %1083

1083:                                             ; preds = %1082
  br label %1084

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

1091:                                             ; preds = %1084
  %1092 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1093 = call i32 @fileno(ptr noundef %1092) #11
  %1094 = call i32 @isatty(i32 noundef %1093) #11
  %1095 = icmp ne i32 %1094, 0
  br i1 %1095, label %1096, label %1113

1096:                                             ; preds = %1091
  %1097 = load i32, ptr %36, align 4, !tbaa !5
  %1098 = call ptr @__errno_location() #12
  store i32 %1097, ptr %1098, align 4, !tbaa !5
  %1099 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1100 = load i32, ptr @test_count, align 4, !tbaa !5
  %1101 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1102 = load i32, ptr %1101, align 4, !tbaa !5
  %1103 = call ptr @s2n_strerror(i32 noundef %1102, ptr noundef @.str.4)
  %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_debug(i32 noundef %1105, ptr noundef @.str.4)
  %1107 = call ptr @__errno_location() #12
  %1108 = load i32, ptr %1107, align 4, !tbaa !5
  %1109 = call ptr @strerror(i32 noundef %1108) #11
  %1110 = call ptr @__errno_location() #12
  %1111 = load i32, ptr %1110, align 4, !tbaa !5
  %1112 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1099, ptr noundef @.str.2, i32 noundef %1100, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 99, ptr noundef %1103, ptr noundef %1106, ptr noundef %1109, i32 noundef %1111) #11
  br label %1130

1113:                                             ; preds = %1091, %1084
  %1114 = load i32, ptr %36, align 4, !tbaa !5
  %1115 = call ptr @__errno_location() #12
  store i32 %1114, ptr %1115, align 4, !tbaa !5
  %1116 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1117 = load i32, ptr @test_count, align 4, !tbaa !5
  %1118 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1119 = load i32, ptr %1118, align 4, !tbaa !5
  %1120 = call ptr @s2n_strerror(i32 noundef %1119, ptr noundef @.str.4)
  %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_debug(i32 noundef %1122, ptr noundef @.str.4)
  %1124 = call ptr @__errno_location() #12
  %1125 = load i32, ptr %1124, align 4, !tbaa !5
  %1126 = call ptr @strerror(i32 noundef %1125) #11
  %1127 = call ptr @__errno_location() #12
  %1128 = load i32, ptr %1127, align 4, !tbaa !5
  %1129 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1116, ptr noundef @.str.5, i32 noundef %1117, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 99, ptr noundef %1120, ptr noundef %1123, ptr noundef %1126, i32 noundef %1128) #11
  br label %1130

1130:                                             ; preds = %1113, %1096
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #11
  br label %1131

1131:                                             ; preds = %1130
  br label %1132

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

1133:                                             ; No predecessors!
  br label %1134

1134:                                             ; preds = %1133
  br label %1135

1135:                                             ; preds = %1134, %1075
  br label %1136

1136:                                             ; preds = %1135
  br label %1137

1137:                                             ; preds = %1136
  br label %1138

1138:                                             ; preds = %1137
  br label %1139

1139:                                             ; preds = %1138
  br label %1140

1140:                                             ; preds = %1139
  %1141 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %1141, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %1142 = call ptr @__errno_location() #12
  store i32 0, ptr %1142, align 4, !tbaa !5
  br label %1143

1143:                                             ; preds = %1140
  br label %1144

1144:                                             ; preds = %1143
  br label %1145

1145:                                             ; preds = %1144
  br label %1146

1146:                                             ; preds = %1145
  br label %1147

1147:                                             ; preds = %1146
  br label %1148

1148:                                             ; preds = %1147
  br label %1149

1149:                                             ; preds = %1148
  %1150 = load i32, ptr @test_count, align 4, !tbaa !5
  %1151 = add nsw i32 %1150, 1
  store i32 %1151, ptr @test_count, align 4, !tbaa !5
  %1152 = load ptr, ptr %28, align 8, !tbaa !9
  %1153 = call i32 @s2n_tls13_extract_secret(ptr noundef %1152, i32 noundef -1)
  %1154 = getelementptr inbounds %struct.s2n_result, ptr %37, i32 0, i32 0
  store i32 %1153, ptr %1154, align 4
  %1155 = getelementptr inbounds %struct.s2n_result, ptr %37, i32 0, i32 0
  %1156 = load i32, ptr %1155, align 4
  %1157 = call zeroext i1 @s2n_result_is_error(i32 %1156)
  br i1 %1157, label %1211, label %1158

1158:                                             ; preds = %1149
  br label %1159

1159:                                             ; preds = %1158
  br label %1160

1160:                                             ; preds = %1159
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #11
  %1161 = call ptr @__errno_location() #12
  %1162 = load i32, ptr %1161, align 4, !tbaa !5
  store i32 %1162, ptr %38, align 4, !tbaa !5
  %1163 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1164 = call i32 @s2n_print_stacktrace(ptr noundef %1163)
  %1165 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1166 = trunc i8 %1165 to i1
  br i1 %1166, label %1167, label %1189

1167:                                             ; preds = %1160
  %1168 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1169 = call i32 @fileno(ptr noundef %1168) #11
  %1170 = call i32 @isatty(i32 noundef %1169) #11
  %1171 = icmp ne i32 %1170, 0
  br i1 %1171, label %1172, label %1189

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

1189:                                             ; preds = %1167, %1160
  %1190 = load i32, ptr %38, align 4, !tbaa !5
  %1191 = call ptr @__errno_location() #12
  store i32 %1190, ptr %1191, align 4, !tbaa !5
  %1192 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1193 = load i32, ptr @test_count, align 4, !tbaa !5
  %1194 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1195 = load i32, ptr %1194, align 4, !tbaa !5
  %1196 = call ptr @s2n_strerror(i32 noundef %1195, ptr noundef @.str.4)
  %1197 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1198 = load i32, ptr %1197, align 4, !tbaa !5
  %1199 = call ptr @s2n_strerror_debug(i32 noundef %1198, ptr noundef @.str.4)
  %1200 = call ptr @__errno_location() #12
  %1201 = load i32, ptr %1200, align 4, !tbaa !5
  %1202 = call ptr @strerror(i32 noundef %1201) #11
  %1203 = call ptr @__errno_location() #12
  %1204 = load i32, ptr %1203, align 4, !tbaa !5
  %1205 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1192, ptr noundef @.str.5, i32 noundef %1193, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 100, ptr noundef %1196, ptr noundef %1199, ptr noundef %1202, i32 noundef %1204) #11
  br label %1206

1206:                                             ; preds = %1189, %1172
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #11
  br label %1207

1207:                                             ; preds = %1206
  br label %1208

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

1209:                                             ; No predecessors!
  br label %1210

1210:                                             ; preds = %1209
  br label %1211

1211:                                             ; preds = %1210, %1149
  br label %1212

1212:                                             ; preds = %1211
  br label %1213

1213:                                             ; preds = %1212
  br label %1214

1214:                                             ; preds = %1213
  %1215 = load i32, ptr @test_count, align 4, !tbaa !5
  %1216 = add nsw i32 %1215, 1
  store i32 %1216, ptr @test_count, align 4, !tbaa !5
  %1217 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1218 = load i32, ptr %1217, align 4, !tbaa !5
  %1219 = icmp eq i32 %1218, 402653194
  br i1 %1219, label %1273, label %1220

1220:                                             ; preds = %1214
  br label %1221

1221:                                             ; preds = %1220
  br label %1222

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

1229:                                             ; preds = %1222
  %1230 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1231 = call i32 @fileno(ptr noundef %1230) #11
  %1232 = call i32 @isatty(i32 noundef %1231) #11
  %1233 = icmp ne i32 %1232, 0
  br i1 %1233, label %1234, label %1251

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

1251:                                             ; preds = %1229, %1222
  %1252 = load i32, ptr %39, align 4, !tbaa !5
  %1253 = call ptr @__errno_location() #12
  store i32 %1252, ptr %1253, align 4, !tbaa !5
  %1254 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1255 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %1257, ptr noundef @.str.4)
  %1259 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1260 = load i32, ptr %1259, align 4, !tbaa !5
  %1261 = call ptr @s2n_strerror_debug(i32 noundef %1260, ptr noundef @.str.4)
  %1262 = call ptr @__errno_location() #12
  %1263 = load i32, ptr %1262, align 4, !tbaa !5
  %1264 = call ptr @strerror(i32 noundef %1263) #11
  %1265 = call ptr @__errno_location() #12
  %1266 = load i32, ptr %1265, align 4, !tbaa !5
  %1267 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1254, ptr noundef @.str.5, i32 noundef %1255, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 100, ptr noundef %1258, ptr noundef %1261, ptr noundef %1264, i32 noundef %1266) #11
  br label %1268

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

1269:                                             ; preds = %1268
  br label %1270

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

1271:                                             ; No predecessors!
  br label %1272

1272:                                             ; preds = %1271
  br label %1273

1273:                                             ; preds = %1272, %1214
  br label %1274

1274:                                             ; preds = %1273
  br label %1275

1275:                                             ; preds = %1274
  br label %1276

1276:                                             ; preds = %1275
  %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 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1280 = load i32, ptr %1279, align 4, !tbaa !5
  %1281 = call ptr @s2n_strerror_debug(i32 noundef %1280, ptr noundef @.str.4)
  %1282 = icmp eq ptr %1281, null
  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 %40) #11
  %1286 = call ptr @__errno_location() #12
  %1287 = load i32, ptr %1286, align 4, !tbaa !5
  store i32 %1287, ptr %40, 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 %40, 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.12, ptr noundef @.str.1, i32 noundef 100, ptr noundef %1304, ptr noundef %1307, ptr noundef %1310, i32 noundef %1312) #11
  br label %1331

1314:                                             ; preds = %1292, %1285
  %1315 = load i32, ptr %40, 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.12, ptr noundef @.str.1, i32 noundef 100, 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 %40) #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
  br label %1340

1340:                                             ; preds = %1339
  br label %1341

1341:                                             ; preds = %1340
  %1342 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %1342, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %1343 = call ptr @__errno_location() #12
  store i32 0, ptr %1343, align 4, !tbaa !5
  br label %1344

1344:                                             ; preds = %1341
  br label %1345

1345:                                             ; preds = %1344
  br label %1346

1346:                                             ; preds = %1345
  br label %1347

1347:                                             ; preds = %1346
  br label %1348

1348:                                             ; preds = %1347
  br label %1349

1349:                                             ; preds = %1348
  br label %1350

1350:                                             ; preds = %1349
  %1351 = load i32, ptr @test_count, align 4, !tbaa !5
  %1352 = add nsw i32 %1351, 1
  store i32 %1352, ptr @test_count, align 4, !tbaa !5
  %1353 = load ptr, ptr %28, align 8, !tbaa !9
  %1354 = call i32 @s2n_tls13_extract_secret(ptr noundef %1353, i32 noundef 255)
  %1355 = getelementptr inbounds %struct.s2n_result, ptr %41, i32 0, i32 0
  store i32 %1354, ptr %1355, align 4
  %1356 = getelementptr inbounds %struct.s2n_result, ptr %41, i32 0, i32 0
  %1357 = load i32, ptr %1356, align 4
  %1358 = call zeroext i1 @s2n_result_is_error(i32 %1357)
  br i1 %1358, label %1412, label %1359

1359:                                             ; preds = %1350
  br label %1360

1360:                                             ; preds = %1359
  br label %1361

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

1368:                                             ; preds = %1361
  %1369 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1370 = call i32 @fileno(ptr noundef %1369) #11
  %1371 = call i32 @isatty(i32 noundef %1370) #11
  %1372 = icmp ne i32 %1371, 0
  br i1 %1372, label %1373, label %1390

1373:                                             ; preds = %1368
  %1374 = load i32, ptr %42, align 4, !tbaa !5
  %1375 = call ptr @__errno_location() #12
  store i32 %1374, ptr %1375, align 4, !tbaa !5
  %1376 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1377 = load i32, ptr @test_count, align 4, !tbaa !5
  %1378 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1379 = load i32, ptr %1378, align 4, !tbaa !5
  %1380 = call ptr @s2n_strerror(i32 noundef %1379, ptr noundef @.str.4)
  %1381 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1382 = load i32, ptr %1381, align 4, !tbaa !5
  %1383 = call ptr @s2n_strerror_debug(i32 noundef %1382, ptr noundef @.str.4)
  %1384 = call ptr @__errno_location() #12
  %1385 = load i32, ptr %1384, align 4, !tbaa !5
  %1386 = call ptr @strerror(i32 noundef %1385) #11
  %1387 = call ptr @__errno_location() #12
  %1388 = load i32, ptr %1387, align 4, !tbaa !5
  %1389 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1376, ptr noundef @.str.2, i32 noundef %1377, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 101, ptr noundef %1380, ptr noundef %1383, ptr noundef %1386, i32 noundef %1388) #11
  br label %1407

1390:                                             ; preds = %1368, %1361
  %1391 = load i32, ptr %42, align 4, !tbaa !5
  %1392 = call ptr @__errno_location() #12
  store i32 %1391, ptr %1392, align 4, !tbaa !5
  %1393 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1394 = load i32, ptr @test_count, align 4, !tbaa !5
  %1395 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1396 = load i32, ptr %1395, align 4, !tbaa !5
  %1397 = call ptr @s2n_strerror(i32 noundef %1396, ptr noundef @.str.4)
  %1398 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1399 = load i32, ptr %1398, align 4, !tbaa !5
  %1400 = call ptr @s2n_strerror_debug(i32 noundef %1399, ptr noundef @.str.4)
  %1401 = call ptr @__errno_location() #12
  %1402 = load i32, ptr %1401, align 4, !tbaa !5
  %1403 = call ptr @strerror(i32 noundef %1402) #11
  %1404 = call ptr @__errno_location() #12
  %1405 = load i32, ptr %1404, align 4, !tbaa !5
  %1406 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1393, ptr noundef @.str.5, i32 noundef %1394, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 101, ptr noundef %1397, ptr noundef %1400, ptr noundef %1403, i32 noundef %1405) #11
  br label %1407

1407:                                             ; preds = %1390, %1373
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #11
  br label %1408

1408:                                             ; preds = %1407
  br label %1409

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

1410:                                             ; No predecessors!
  br label %1411

1411:                                             ; preds = %1410
  br label %1412

1412:                                             ; preds = %1411, %1350
  br label %1413

1413:                                             ; preds = %1412
  br label %1414

1414:                                             ; preds = %1413
  br label %1415

1415:                                             ; preds = %1414
  %1416 = load i32, ptr @test_count, align 4, !tbaa !5
  %1417 = add nsw i32 %1416, 1
  store i32 %1417, ptr @test_count, align 4, !tbaa !5
  %1418 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1419 = load i32, ptr %1418, align 4, !tbaa !5
  %1420 = icmp eq i32 %1419, 402653194
  br i1 %1420, label %1474, label %1421

1421:                                             ; preds = %1415
  br label %1422

1422:                                             ; preds = %1421
  br label %1423

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

1430:                                             ; preds = %1423
  %1431 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1432 = call i32 @fileno(ptr noundef %1431) #11
  %1433 = call i32 @isatty(i32 noundef %1432) #11
  %1434 = icmp ne i32 %1433, 0
  br i1 %1434, label %1435, label %1452

1435:                                             ; preds = %1430
  %1436 = load i32, ptr %43, align 4, !tbaa !5
  %1437 = call ptr @__errno_location() #12
  store i32 %1436, ptr %1437, align 4, !tbaa !5
  %1438 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1439 = load i32, ptr @test_count, align 4, !tbaa !5
  %1440 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1441 = load i32, ptr %1440, align 4, !tbaa !5
  %1442 = call ptr @s2n_strerror(i32 noundef %1441, ptr noundef @.str.4)
  %1443 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1444 = load i32, ptr %1443, align 4, !tbaa !5
  %1445 = call ptr @s2n_strerror_debug(i32 noundef %1444, ptr noundef @.str.4)
  %1446 = call ptr @__errno_location() #12
  %1447 = load i32, ptr %1446, align 4, !tbaa !5
  %1448 = call ptr @strerror(i32 noundef %1447) #11
  %1449 = call ptr @__errno_location() #12
  %1450 = load i32, ptr %1449, align 4, !tbaa !5
  %1451 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1438, ptr noundef @.str.2, i32 noundef %1439, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 101, ptr noundef %1442, ptr noundef %1445, ptr noundef %1448, i32 noundef %1450) #11
  br label %1469

1452:                                             ; preds = %1430, %1423
  %1453 = load i32, ptr %43, align 4, !tbaa !5
  %1454 = call ptr @__errno_location() #12
  store i32 %1453, ptr %1454, align 4, !tbaa !5
  %1455 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1456 = load i32, ptr @test_count, align 4, !tbaa !5
  %1457 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1458 = load i32, ptr %1457, align 4, !tbaa !5
  %1459 = call ptr @s2n_strerror(i32 noundef %1458, ptr noundef @.str.4)
  %1460 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1461 = load i32, ptr %1460, align 4, !tbaa !5
  %1462 = call ptr @s2n_strerror_debug(i32 noundef %1461, ptr noundef @.str.4)
  %1463 = call ptr @__errno_location() #12
  %1464 = load i32, ptr %1463, align 4, !tbaa !5
  %1465 = call ptr @strerror(i32 noundef %1464) #11
  %1466 = call ptr @__errno_location() #12
  %1467 = load i32, ptr %1466, align 4, !tbaa !5
  %1468 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1455, ptr noundef @.str.5, i32 noundef %1456, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 101, ptr noundef %1459, ptr noundef %1462, ptr noundef %1465, i32 noundef %1467) #11
  br label %1469

1469:                                             ; preds = %1452, %1435
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #11
  br label %1470

1470:                                             ; preds = %1469
  br label %1471

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

1472:                                             ; No predecessors!
  br label %1473

1473:                                             ; preds = %1472
  br label %1474

1474:                                             ; preds = %1473, %1415
  br label %1475

1475:                                             ; preds = %1474
  br label %1476

1476:                                             ; preds = %1475
  br label %1477

1477:                                             ; preds = %1476
  %1478 = load i32, ptr @test_count, align 4, !tbaa !5
  %1479 = add nsw i32 %1478, 1
  store i32 %1479, ptr @test_count, align 4, !tbaa !5
  %1480 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1481 = load i32, ptr %1480, align 4, !tbaa !5
  %1482 = call ptr @s2n_strerror_debug(i32 noundef %1481, ptr noundef @.str.4)
  %1483 = icmp eq ptr %1482, null
  br i1 %1483, label %1484, label %1537

1484:                                             ; preds = %1477
  br label %1485

1485:                                             ; preds = %1484
  br label %1486

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

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

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

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

1532:                                             ; preds = %1515, %1498
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #11
  br label %1533

1533:                                             ; preds = %1532
  br label %1534

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

1535:                                             ; No predecessors!
  br label %1536

1536:                                             ; preds = %1535
  br label %1537

1537:                                             ; preds = %1536, %1477
  br label %1538

1538:                                             ; preds = %1537
  br label %1539

1539:                                             ; preds = %1538
  br label %1540

1540:                                             ; preds = %1539
  br label %1541

1541:                                             ; preds = %1540
  br label %1542

1542:                                             ; preds = %1541
  %1543 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %1543, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %1544 = call ptr @__errno_location() #12
  store i32 0, ptr %1544, align 4, !tbaa !5
  br label %1545

1545:                                             ; preds = %1542
  br label %1546

1546:                                             ; preds = %1545
  br label %1547

1547:                                             ; preds = %1546
  br label %1548

1548:                                             ; preds = %1547
  br label %1549

1549:                                             ; preds = %1548
  br label %1550

1550:                                             ; preds = %1549
  br label %1551

1551:                                             ; preds = %1550
  %1552 = load i32, ptr @test_count, align 4, !tbaa !5
  %1553 = add nsw i32 %1552, 1
  store i32 %1553, ptr @test_count, align 4, !tbaa !5
  %1554 = load ptr, ptr %28, align 8, !tbaa !9
  %1555 = call i32 @s2n_tls13_extract_secret(ptr noundef %1554, i32 noundef 4)
  %1556 = getelementptr inbounds %struct.s2n_result, ptr %45, i32 0, i32 0
  store i32 %1555, ptr %1556, align 4
  %1557 = getelementptr inbounds %struct.s2n_result, ptr %45, i32 0, i32 0
  %1558 = load i32, ptr %1557, align 4
  %1559 = call zeroext i1 @s2n_result_is_error(i32 %1558)
  br i1 %1559, label %1613, label %1560

1560:                                             ; preds = %1551
  br label %1561

1561:                                             ; preds = %1560
  br label %1562

1562:                                             ; preds = %1561
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #11
  %1563 = call ptr @__errno_location() #12
  %1564 = load i32, ptr %1563, align 4, !tbaa !5
  store i32 %1564, ptr %46, align 4, !tbaa !5
  %1565 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1566 = call i32 @s2n_print_stacktrace(ptr noundef %1565)
  %1567 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1568 = trunc i8 %1567 to i1
  br i1 %1568, label %1569, label %1591

1569:                                             ; preds = %1562
  %1570 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1571 = call i32 @fileno(ptr noundef %1570) #11
  %1572 = call i32 @isatty(i32 noundef %1571) #11
  %1573 = icmp ne i32 %1572, 0
  br i1 %1573, label %1574, label %1591

1574:                                             ; preds = %1569
  %1575 = load i32, ptr %46, align 4, !tbaa !5
  %1576 = call ptr @__errno_location() #12
  store i32 %1575, ptr %1576, align 4, !tbaa !5
  %1577 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1578 = load i32, ptr @test_count, align 4, !tbaa !5
  %1579 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1580 = load i32, ptr %1579, align 4, !tbaa !5
  %1581 = call ptr @s2n_strerror(i32 noundef %1580, ptr noundef @.str.4)
  %1582 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1583 = load i32, ptr %1582, align 4, !tbaa !5
  %1584 = call ptr @s2n_strerror_debug(i32 noundef %1583, ptr noundef @.str.4)
  %1585 = call ptr @__errno_location() #12
  %1586 = load i32, ptr %1585, align 4, !tbaa !5
  %1587 = call ptr @strerror(i32 noundef %1586) #11
  %1588 = call ptr @__errno_location() #12
  %1589 = load i32, ptr %1588, align 4, !tbaa !5
  %1590 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1577, ptr noundef @.str.2, i32 noundef %1578, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 102, ptr noundef %1581, ptr noundef %1584, ptr noundef %1587, i32 noundef %1589) #11
  br label %1608

1591:                                             ; preds = %1569, %1562
  %1592 = load i32, ptr %46, align 4, !tbaa !5
  %1593 = call ptr @__errno_location() #12
  store i32 %1592, ptr %1593, align 4, !tbaa !5
  %1594 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1595 = load i32, ptr @test_count, align 4, !tbaa !5
  %1596 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1597 = load i32, ptr %1596, align 4, !tbaa !5
  %1598 = call ptr @s2n_strerror(i32 noundef %1597, ptr noundef @.str.4)
  %1599 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1600 = load i32, ptr %1599, align 4, !tbaa !5
  %1601 = call ptr @s2n_strerror_debug(i32 noundef %1600, ptr noundef @.str.4)
  %1602 = call ptr @__errno_location() #12
  %1603 = load i32, ptr %1602, align 4, !tbaa !5
  %1604 = call ptr @strerror(i32 noundef %1603) #11
  %1605 = call ptr @__errno_location() #12
  %1606 = load i32, ptr %1605, align 4, !tbaa !5
  %1607 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1594, ptr noundef @.str.5, i32 noundef %1595, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 102, ptr noundef %1598, ptr noundef %1601, ptr noundef %1604, i32 noundef %1606) #11
  br label %1608

1608:                                             ; preds = %1591, %1574
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #11
  br label %1609

1609:                                             ; preds = %1608
  br label %1610

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

1611:                                             ; No predecessors!
  br label %1612

1612:                                             ; preds = %1611
  br label %1613

1613:                                             ; preds = %1612, %1551
  br label %1614

1614:                                             ; preds = %1613
  br label %1615

1615:                                             ; preds = %1614
  br label %1616

1616:                                             ; preds = %1615
  %1617 = load i32, ptr @test_count, align 4, !tbaa !5
  %1618 = add nsw i32 %1617, 1
  store i32 %1618, ptr @test_count, align 4, !tbaa !5
  %1619 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1620 = load i32, ptr %1619, align 4, !tbaa !5
  %1621 = icmp eq i32 %1620, 402653194
  br i1 %1621, label %1675, label %1622

1622:                                             ; preds = %1616
  br label %1623

1623:                                             ; preds = %1622
  br label %1624

1624:                                             ; preds = %1623
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #11
  %1625 = call ptr @__errno_location() #12
  %1626 = load i32, ptr %1625, align 4, !tbaa !5
  store i32 %1626, ptr %47, align 4, !tbaa !5
  %1627 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1628 = call i32 @s2n_print_stacktrace(ptr noundef %1627)
  %1629 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1630 = trunc i8 %1629 to i1
  br i1 %1630, label %1631, label %1653

1631:                                             ; preds = %1624
  %1632 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1633 = call i32 @fileno(ptr noundef %1632) #11
  %1634 = call i32 @isatty(i32 noundef %1633) #11
  %1635 = icmp ne i32 %1634, 0
  br i1 %1635, label %1636, label %1653

1636:                                             ; preds = %1631
  %1637 = load i32, ptr %47, align 4, !tbaa !5
  %1638 = call ptr @__errno_location() #12
  store i32 %1637, ptr %1638, align 4, !tbaa !5
  %1639 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1640 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %1642, ptr noundef @.str.4)
  %1644 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1645 = load i32, ptr %1644, align 4, !tbaa !5
  %1646 = call ptr @s2n_strerror_debug(i32 noundef %1645, ptr noundef @.str.4)
  %1647 = call ptr @__errno_location() #12
  %1648 = load i32, ptr %1647, align 4, !tbaa !5
  %1649 = call ptr @strerror(i32 noundef %1648) #11
  %1650 = call ptr @__errno_location() #12
  %1651 = load i32, ptr %1650, align 4, !tbaa !5
  %1652 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1639, ptr noundef @.str.2, i32 noundef %1640, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 102, ptr noundef %1643, ptr noundef %1646, ptr noundef %1649, i32 noundef %1651) #11
  br label %1670

1653:                                             ; preds = %1631, %1624
  %1654 = load i32, ptr %47, align 4, !tbaa !5
  %1655 = call ptr @__errno_location() #12
  store i32 %1654, ptr %1655, align 4, !tbaa !5
  %1656 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1657 = load i32, ptr @test_count, align 4, !tbaa !5
  %1658 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1659 = load i32, ptr %1658, align 4, !tbaa !5
  %1660 = call ptr @s2n_strerror(i32 noundef %1659, ptr noundef @.str.4)
  %1661 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1662 = load i32, ptr %1661, align 4, !tbaa !5
  %1663 = call ptr @s2n_strerror_debug(i32 noundef %1662, ptr noundef @.str.4)
  %1664 = call ptr @__errno_location() #12
  %1665 = load i32, ptr %1664, align 4, !tbaa !5
  %1666 = call ptr @strerror(i32 noundef %1665) #11
  %1667 = call ptr @__errno_location() #12
  %1668 = load i32, ptr %1667, align 4, !tbaa !5
  %1669 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1656, ptr noundef @.str.5, i32 noundef %1657, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 102, ptr noundef %1660, ptr noundef %1663, ptr noundef %1666, i32 noundef %1668) #11
  br label %1670

1670:                                             ; preds = %1653, %1636
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #11
  br label %1671

1671:                                             ; preds = %1670
  br label %1672

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

1673:                                             ; No predecessors!
  br label %1674

1674:                                             ; preds = %1673
  br label %1675

1675:                                             ; preds = %1674, %1616
  br label %1676

1676:                                             ; preds = %1675
  br label %1677

1677:                                             ; preds = %1676
  br label %1678

1678:                                             ; preds = %1677
  %1679 = load i32, ptr @test_count, align 4, !tbaa !5
  %1680 = add nsw i32 %1679, 1
  store i32 %1680, ptr @test_count, align 4, !tbaa !5
  %1681 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1682 = load i32, ptr %1681, align 4, !tbaa !5
  %1683 = call ptr @s2n_strerror_debug(i32 noundef %1682, ptr noundef @.str.4)
  %1684 = icmp eq ptr %1683, null
  br i1 %1684, label %1685, label %1738

1685:                                             ; preds = %1678
  br label %1686

1686:                                             ; preds = %1685
  br label %1687

1687:                                             ; preds = %1686
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #11
  %1688 = call ptr @__errno_location() #12
  %1689 = load i32, ptr %1688, align 4, !tbaa !5
  store i32 %1689, ptr %48, align 4, !tbaa !5
  %1690 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1691 = call i32 @s2n_print_stacktrace(ptr noundef %1690)
  %1692 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1693 = trunc i8 %1692 to i1
  br i1 %1693, label %1694, label %1716

1694:                                             ; preds = %1687
  %1695 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1696 = call i32 @fileno(ptr noundef %1695) #11
  %1697 = call i32 @isatty(i32 noundef %1696) #11
  %1698 = icmp ne i32 %1697, 0
  br i1 %1698, label %1699, label %1716

1699:                                             ; preds = %1694
  %1700 = load i32, ptr %48, align 4, !tbaa !5
  %1701 = call ptr @__errno_location() #12
  store i32 %1700, ptr %1701, align 4, !tbaa !5
  %1702 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1703 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %1705, ptr noundef @.str.4)
  %1707 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1708 = load i32, ptr %1707, align 4, !tbaa !5
  %1709 = call ptr @s2n_strerror_debug(i32 noundef %1708, ptr noundef @.str.4)
  %1710 = call ptr @__errno_location() #12
  %1711 = load i32, ptr %1710, align 4, !tbaa !5
  %1712 = call ptr @strerror(i32 noundef %1711) #11
  %1713 = call ptr @__errno_location() #12
  %1714 = load i32, ptr %1713, align 4, !tbaa !5
  %1715 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1702, ptr noundef @.str.2, i32 noundef %1703, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 102, ptr noundef %1706, ptr noundef %1709, ptr noundef %1712, i32 noundef %1714) #11
  br label %1733

1716:                                             ; preds = %1694, %1687
  %1717 = load i32, ptr %48, align 4, !tbaa !5
  %1718 = call ptr @__errno_location() #12
  store i32 %1717, ptr %1718, align 4, !tbaa !5
  %1719 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1720 = load i32, ptr @test_count, align 4, !tbaa !5
  %1721 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1722 = load i32, ptr %1721, align 4, !tbaa !5
  %1723 = call ptr @s2n_strerror(i32 noundef %1722, ptr noundef @.str.4)
  %1724 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1725 = load i32, ptr %1724, align 4, !tbaa !5
  %1726 = call ptr @s2n_strerror_debug(i32 noundef %1725, ptr noundef @.str.4)
  %1727 = call ptr @__errno_location() #12
  %1728 = load i32, ptr %1727, align 4, !tbaa !5
  %1729 = call ptr @strerror(i32 noundef %1728) #11
  %1730 = call ptr @__errno_location() #12
  %1731 = load i32, ptr %1730, align 4, !tbaa !5
  %1732 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1719, ptr noundef @.str.5, i32 noundef %1720, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 102, ptr noundef %1723, ptr noundef %1726, ptr noundef %1729, i32 noundef %1731) #11
  br label %1733

1733:                                             ; preds = %1716, %1699
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #11
  br label %1734

1734:                                             ; preds = %1733
  br label %1735

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

1736:                                             ; No predecessors!
  br label %1737

1737:                                             ; preds = %1736
  br label %1738

1738:                                             ; preds = %1737, %1678
  br label %1739

1739:                                             ; preds = %1738
  br label %1740

1740:                                             ; preds = %1739
  br label %1741

1741:                                             ; preds = %1740
  br label %1742

1742:                                             ; preds = %1741
  br label %1743

1743:                                             ; preds = %1742
  %1744 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %1744, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %1745 = call ptr @__errno_location() #12
  store i32 0, ptr %1745, align 4, !tbaa !5
  br label %1746

1746:                                             ; preds = %1743
  br label %1747

1747:                                             ; preds = %1746
  br label %1748

1748:                                             ; preds = %1747
  br label %1749

1749:                                             ; preds = %1748
  %1750 = call i32 @s2n_connection_ptr_free(ptr noundef %28)
  %1751 = getelementptr inbounds %struct.s2n_result, ptr %49, i32 0, i32 0
  store i32 %1750, ptr %1751, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #11
  call void @llvm.lifetime.end.p0(i64 4184, ptr %27) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #11
  %1752 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %1752, ptr %50, align 8, !tbaa !9
  %1753 = load ptr, ptr %50, align 8, !tbaa !9
  %1754 = getelementptr inbounds %struct.s2n_connection, ptr %1753, i32 0, i32 27
  %1755 = load ptr, ptr %1754, align 8, !tbaa !39
  %1756 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %1755, i32 0, i32 0
  store ptr @s2n_tls13_aes_256_gcm_sha384, ptr %1756, align 8, !tbaa !64
  %1757 = load ptr, ptr %50, align 8, !tbaa !9
  %1758 = getelementptr inbounds %struct.s2n_connection, ptr %1757, i32 0, i32 28
  %1759 = getelementptr inbounds %struct.s2n_secrets, ptr %1758, i32 0, i32 1
  store i32 1, ptr %1759, align 4, !tbaa !69
  br label %1760

1760:                                             ; preds = %1749
  %1761 = load i32, ptr @test_count, align 4, !tbaa !5
  %1762 = add nsw i32 %1761, 1
  store i32 %1762, ptr @test_count, align 4, !tbaa !5
  %1763 = load ptr, ptr %50, align 8, !tbaa !9
  %1764 = call i32 @s2n_tls13_extract_secret(ptr noundef %1763, i32 noundef 1)
  %1765 = getelementptr inbounds %struct.s2n_result, ptr %51, i32 0, i32 0
  store i32 %1764, ptr %1765, align 4
  %1766 = getelementptr inbounds %struct.s2n_result, ptr %51, i32 0, i32 0
  %1767 = load i32, ptr %1766, align 4
  %1768 = call zeroext i1 @s2n_result_is_ok(i32 %1767)
  br i1 %1768, label %1822, label %1769

1769:                                             ; preds = %1760
  br label %1770

1770:                                             ; preds = %1769
  br label %1771

1771:                                             ; preds = %1770
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #11
  %1772 = call ptr @__errno_location() #12
  %1773 = load i32, ptr %1772, align 4, !tbaa !5
  store i32 %1773, ptr %52, align 4, !tbaa !5
  %1774 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1775 = call i32 @s2n_print_stacktrace(ptr noundef %1774)
  %1776 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1777 = trunc i8 %1776 to i1
  br i1 %1777, label %1778, label %1800

1778:                                             ; preds = %1771
  %1779 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1780 = call i32 @fileno(ptr noundef %1779) #11
  %1781 = call i32 @isatty(i32 noundef %1780) #11
  %1782 = icmp ne i32 %1781, 0
  br i1 %1782, label %1783, label %1800

1783:                                             ; preds = %1778
  %1784 = load i32, ptr %52, align 4, !tbaa !5
  %1785 = call ptr @__errno_location() #12
  store i32 %1784, ptr %1785, align 4, !tbaa !5
  %1786 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1787 = load i32, ptr @test_count, align 4, !tbaa !5
  %1788 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1789 = load i32, ptr %1788, align 4, !tbaa !5
  %1790 = call ptr @s2n_strerror(i32 noundef %1789, ptr noundef @.str.4)
  %1791 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1792 = load i32, ptr %1791, align 4, !tbaa !5
  %1793 = call ptr @s2n_strerror_debug(i32 noundef %1792, ptr noundef @.str.4)
  %1794 = call ptr @__errno_location() #12
  %1795 = load i32, ptr %1794, align 4, !tbaa !5
  %1796 = call ptr @strerror(i32 noundef %1795) #11
  %1797 = call ptr @__errno_location() #12
  %1798 = load i32, ptr %1797, align 4, !tbaa !5
  %1799 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1786, ptr noundef @.str.2, i32 noundef %1787, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 112, ptr noundef %1790, ptr noundef %1793, ptr noundef %1796, i32 noundef %1798) #11
  br label %1817

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

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

1818:                                             ; preds = %1817
  br label %1819

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

1820:                                             ; No predecessors!
  br label %1821

1821:                                             ; preds = %1820
  br label %1822

1822:                                             ; preds = %1821, %1760
  br label %1823

1823:                                             ; preds = %1822
  br label %1824

1824:                                             ; preds = %1823
  br label %1825

1825:                                             ; preds = %1824
  %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 = load ptr, ptr %50, align 8, !tbaa !9
  %1829 = getelementptr inbounds %struct.s2n_connection, ptr %1828, i32 0, i32 28
  %1830 = getelementptr inbounds %struct.s2n_secrets, ptr %1829, i32 0, i32 1
  %1831 = load i32, ptr %1830, align 4, !tbaa !69
  %1832 = icmp eq i32 %1831, 1
  br i1 %1832, label %1886, label %1833

1833:                                             ; preds = %1825
  br label %1834

1834:                                             ; preds = %1833
  br label %1835

1835:                                             ; preds = %1834
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #11
  %1836 = call ptr @__errno_location() #12
  %1837 = load i32, ptr %1836, align 4, !tbaa !5
  store i32 %1837, ptr %53, align 4, !tbaa !5
  %1838 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1839 = call i32 @s2n_print_stacktrace(ptr noundef %1838)
  %1840 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1841 = trunc i8 %1840 to i1
  br i1 %1841, label %1842, label %1864

1842:                                             ; preds = %1835
  %1843 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1844 = call i32 @fileno(ptr noundef %1843) #11
  %1845 = call i32 @isatty(i32 noundef %1844) #11
  %1846 = icmp ne i32 %1845, 0
  br i1 %1846, label %1847, label %1864

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

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

1881:                                             ; preds = %1864, %1847
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #11
  br label %1882

1882:                                             ; preds = %1881
  br label %1883

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

1884:                                             ; No predecessors!
  br label %1885

1885:                                             ; preds = %1884
  br label %1886

1886:                                             ; preds = %1885, %1825
  br label %1887

1887:                                             ; preds = %1886
  br label %1888

1888:                                             ; preds = %1887
  br label %1889

1889:                                             ; preds = %1888
  br label %1890

1890:                                             ; preds = %1889
  %1891 = load i32, ptr @test_count, align 4, !tbaa !5
  %1892 = add nsw i32 %1891, 1
  store i32 %1892, ptr @test_count, align 4, !tbaa !5
  %1893 = load ptr, ptr %50, align 8, !tbaa !9
  %1894 = getelementptr inbounds %struct.s2n_connection, ptr %1893, i32 0, i32 28
  %1895 = getelementptr inbounds %struct.s2n_secrets, ptr %1894, i32 0, i32 0
  %1896 = getelementptr inbounds %struct.s2n_tls13_secrets, ptr %1895, i32 0, i32 0
  %1897 = getelementptr inbounds [48 x i8], ptr %1896, i64 0, i64 0
  %1898 = getelementptr inbounds [48 x i8], ptr %9, i64 0, i64 0
  %1899 = call i32 @memcmp(ptr noundef %1897, ptr noundef %1898, i64 noundef 48) #14
  %1900 = icmp eq i32 %1899, 0
  br i1 %1900, label %1954, label %1901

1901:                                             ; preds = %1890
  br label %1902

1902:                                             ; preds = %1901
  br label %1903

1903:                                             ; preds = %1902
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #11
  %1904 = call ptr @__errno_location() #12
  %1905 = load i32, ptr %1904, align 4, !tbaa !5
  store i32 %1905, ptr %54, align 4, !tbaa !5
  %1906 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1907 = call i32 @s2n_print_stacktrace(ptr noundef %1906)
  %1908 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1909 = trunc i8 %1908 to i1
  br i1 %1909, label %1910, label %1932

1910:                                             ; preds = %1903
  %1911 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1912 = call i32 @fileno(ptr noundef %1911) #11
  %1913 = call i32 @isatty(i32 noundef %1912) #11
  %1914 = icmp ne i32 %1913, 0
  br i1 %1914, label %1915, label %1932

1915:                                             ; preds = %1910
  %1916 = load i32, ptr %54, align 4, !tbaa !5
  %1917 = call ptr @__errno_location() #12
  store i32 %1916, ptr %1917, align 4, !tbaa !5
  %1918 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1919 = load i32, ptr @test_count, align 4, !tbaa !5
  %1920 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1921 = load i32, ptr %1920, align 4, !tbaa !5
  %1922 = call ptr @s2n_strerror(i32 noundef %1921, ptr noundef @.str.4)
  %1923 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1924 = load i32, ptr %1923, align 4, !tbaa !5
  %1925 = call ptr @s2n_strerror_debug(i32 noundef %1924, ptr noundef @.str.4)
  %1926 = call ptr @__errno_location() #12
  %1927 = load i32, ptr %1926, align 4, !tbaa !5
  %1928 = call ptr @strerror(i32 noundef %1927) #11
  %1929 = call ptr @__errno_location() #12
  %1930 = load i32, ptr %1929, align 4, !tbaa !5
  %1931 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1918, ptr noundef @.str.2, i32 noundef %1919, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 114, ptr noundef %1922, ptr noundef %1925, ptr noundef %1928, i32 noundef %1930) #11
  br label %1949

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

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

1950:                                             ; preds = %1949
  br label %1951

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

1952:                                             ; No predecessors!
  br label %1953

1953:                                             ; preds = %1952
  br label %1954

1954:                                             ; preds = %1953, %1890
  br label %1955

1955:                                             ; preds = %1954
  br label %1956

1956:                                             ; preds = %1955
  br label %1957

1957:                                             ; preds = %1956
  br label %1958

1958:                                             ; preds = %1957
  %1959 = call i32 @s2n_connection_ptr_free(ptr noundef %50)
  %1960 = getelementptr inbounds %struct.s2n_result, ptr %55, i32 0, i32 0
  store i32 %1959, ptr %1960, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %56) #11
  %1961 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %1961, ptr %56, align 8, !tbaa !9
  %1962 = load ptr, ptr %56, align 8, !tbaa !9
  %1963 = getelementptr inbounds %struct.s2n_connection, ptr %1962, i32 0, i32 27
  %1964 = load ptr, ptr %1963, align 8, !tbaa !39
  %1965 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %1964, i32 0, i32 0
  store ptr @s2n_tls13_aes_128_gcm_sha256, ptr %1965, align 8, !tbaa !64
  %1966 = load ptr, ptr %56, align 8, !tbaa !9
  %1967 = getelementptr inbounds %struct.s2n_connection, ptr %1966, i32 0, i32 28
  %1968 = getelementptr inbounds %struct.s2n_secrets, ptr %1967, i32 0, i32 1
  store i32 0, ptr %1968, align 4, !tbaa !69
  br label %1969

1969:                                             ; preds = %1958
  %1970 = load i32, ptr @test_count, align 4, !tbaa !5
  %1971 = add nsw i32 %1970, 1
  store i32 %1971, ptr @test_count, align 4, !tbaa !5
  %1972 = load ptr, ptr %56, align 8, !tbaa !9
  %1973 = call i32 @s2n_tls13_extract_secret(ptr noundef %1972, i32 noundef 1)
  %1974 = getelementptr inbounds %struct.s2n_result, ptr %57, i32 0, i32 0
  store i32 %1973, ptr %1974, align 4
  %1975 = getelementptr inbounds %struct.s2n_result, ptr %57, i32 0, i32 0
  %1976 = load i32, ptr %1975, align 4
  %1977 = call zeroext i1 @s2n_result_is_ok(i32 %1976)
  br i1 %1977, label %2031, label %1978

1978:                                             ; preds = %1969
  br label %1979

1979:                                             ; preds = %1978
  br label %1980

1980:                                             ; preds = %1979
  call void @llvm.lifetime.start.p0(i64 4, ptr %58) #11
  %1981 = call ptr @__errno_location() #12
  %1982 = load i32, ptr %1981, align 4, !tbaa !5
  store i32 %1982, ptr %58, align 4, !tbaa !5
  %1983 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1984 = call i32 @s2n_print_stacktrace(ptr noundef %1983)
  %1985 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1986 = trunc i8 %1985 to i1
  br i1 %1986, label %1987, label %2009

1987:                                             ; preds = %1980
  %1988 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1989 = call i32 @fileno(ptr noundef %1988) #11
  %1990 = call i32 @isatty(i32 noundef %1989) #11
  %1991 = icmp ne i32 %1990, 0
  br i1 %1991, label %1992, label %2009

1992:                                             ; preds = %1987
  %1993 = load i32, ptr %58, align 4, !tbaa !5
  %1994 = call ptr @__errno_location() #12
  store i32 %1993, ptr %1994, align 4, !tbaa !5
  %1995 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1996 = load i32, ptr @test_count, align 4, !tbaa !5
  %1997 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1998 = load i32, ptr %1997, align 4, !tbaa !5
  %1999 = call ptr @s2n_strerror(i32 noundef %1998, ptr noundef @.str.4)
  %2000 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2001 = load i32, ptr %2000, align 4, !tbaa !5
  %2002 = call ptr @s2n_strerror_debug(i32 noundef %2001, ptr noundef @.str.4)
  %2003 = call ptr @__errno_location() #12
  %2004 = load i32, ptr %2003, align 4, !tbaa !5
  %2005 = call ptr @strerror(i32 noundef %2004) #11
  %2006 = call ptr @__errno_location() #12
  %2007 = load i32, ptr %2006, align 4, !tbaa !5
  %2008 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1995, ptr noundef @.str.2, i32 noundef %1996, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 124, ptr noundef %1999, ptr noundef %2002, ptr noundef %2005, i32 noundef %2007) #11
  br label %2026

2009:                                             ; preds = %1987, %1980
  %2010 = load i32, ptr %58, align 4, !tbaa !5
  %2011 = call ptr @__errno_location() #12
  store i32 %2010, ptr %2011, align 4, !tbaa !5
  %2012 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2013 = load i32, ptr @test_count, align 4, !tbaa !5
  %2014 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2015 = load i32, ptr %2014, align 4, !tbaa !5
  %2016 = call ptr @s2n_strerror(i32 noundef %2015, ptr noundef @.str.4)
  %2017 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2018 = load i32, ptr %2017, align 4, !tbaa !5
  %2019 = call ptr @s2n_strerror_debug(i32 noundef %2018, ptr noundef @.str.4)
  %2020 = call ptr @__errno_location() #12
  %2021 = load i32, ptr %2020, align 4, !tbaa !5
  %2022 = call ptr @strerror(i32 noundef %2021) #11
  %2023 = call ptr @__errno_location() #12
  %2024 = load i32, ptr %2023, align 4, !tbaa !5
  %2025 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2012, ptr noundef @.str.5, i32 noundef %2013, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 124, ptr noundef %2016, ptr noundef %2019, ptr noundef %2022, i32 noundef %2024) #11
  br label %2026

2026:                                             ; preds = %2009, %1992
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #11
  br label %2027

2027:                                             ; preds = %2026
  br label %2028

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

2029:                                             ; No predecessors!
  br label %2030

2030:                                             ; preds = %2029
  br label %2031

2031:                                             ; preds = %2030, %1969
  br label %2032

2032:                                             ; preds = %2031
  br label %2033

2033:                                             ; preds = %2032
  br label %2034

2034:                                             ; preds = %2033
  %2035 = load i32, ptr @test_count, align 4, !tbaa !5
  %2036 = add nsw i32 %2035, 1
  store i32 %2036, ptr @test_count, align 4, !tbaa !5
  %2037 = load ptr, ptr %56, align 8, !tbaa !9
  %2038 = getelementptr inbounds %struct.s2n_connection, ptr %2037, i32 0, i32 28
  %2039 = getelementptr inbounds %struct.s2n_secrets, ptr %2038, i32 0, i32 1
  %2040 = load i32, ptr %2039, align 4, !tbaa !69
  %2041 = icmp eq i32 %2040, 1
  br i1 %2041, label %2095, label %2042

2042:                                             ; preds = %2034
  br label %2043

2043:                                             ; preds = %2042
  br label %2044

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

2051:                                             ; preds = %2044
  %2052 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2053 = call i32 @fileno(ptr noundef %2052) #11
  %2054 = call i32 @isatty(i32 noundef %2053) #11
  %2055 = icmp ne i32 %2054, 0
  br i1 %2055, label %2056, label %2073

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

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

2090:                                             ; preds = %2073, %2056
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #11
  br label %2091

2091:                                             ; preds = %2090
  br label %2092

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

2093:                                             ; No predecessors!
  br label %2094

2094:                                             ; preds = %2093
  br label %2095

2095:                                             ; preds = %2094, %2034
  br label %2096

2096:                                             ; preds = %2095
  br label %2097

2097:                                             ; preds = %2096
  br label %2098

2098:                                             ; preds = %2097
  %2099 = load i32, ptr @test_count, align 4, !tbaa !5
  %2100 = add nsw i32 %2099, 1
  store i32 %2100, ptr @test_count, align 4, !tbaa !5
  %2101 = load ptr, ptr %56, align 8, !tbaa !9
  %2102 = getelementptr inbounds %struct.s2n_connection, ptr %2101, i32 0, i32 28
  %2103 = getelementptr inbounds %struct.s2n_secrets, ptr %2102, i32 0, i32 0
  %2104 = getelementptr inbounds %struct.s2n_tls13_secrets, ptr %2103, i32 0, i32 0
  %2105 = getelementptr inbounds [48 x i8], ptr %2104, i64 0, i64 0
  %2106 = getelementptr inbounds [48 x i8], ptr %9, i64 0, i64 0
  %2107 = call i32 @memcmp(ptr noundef %2105, ptr noundef %2106, i64 noundef 48) #14
  %2108 = icmp eq i32 %2107, 0
  br i1 %2108, label %2109, label %2162

2109:                                             ; preds = %2098
  br label %2110

2110:                                             ; preds = %2109
  br label %2111

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

2118:                                             ; preds = %2111
  %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
  %2122 = icmp ne i32 %2121, 0
  br i1 %2122, label %2123, label %2140

2123:                                             ; preds = %2118
  %2124 = load i32, ptr %60, align 4, !tbaa !5
  %2125 = call ptr @__errno_location() #12
  store i32 %2124, ptr %2125, align 4, !tbaa !5
  %2126 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2127 = load i32, ptr @test_count, align 4, !tbaa !5
  %2128 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2129 = load i32, ptr %2128, align 4, !tbaa !5
  %2130 = call ptr @s2n_strerror(i32 noundef %2129, ptr noundef @.str.4)
  %2131 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2132 = load i32, ptr %2131, align 4, !tbaa !5
  %2133 = call ptr @s2n_strerror_debug(i32 noundef %2132, ptr noundef @.str.4)
  %2134 = call ptr @__errno_location() #12
  %2135 = load i32, ptr %2134, align 4, !tbaa !5
  %2136 = call ptr @strerror(i32 noundef %2135) #11
  %2137 = call ptr @__errno_location() #12
  %2138 = load i32, ptr %2137, align 4, !tbaa !5
  %2139 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2126, ptr noundef @.str.2, i32 noundef %2127, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 126, ptr noundef %2130, ptr noundef %2133, ptr noundef %2136, i32 noundef %2138) #11
  br label %2157

2140:                                             ; preds = %2118, %2111
  %2141 = load i32, ptr %60, align 4, !tbaa !5
  %2142 = call ptr @__errno_location() #12
  store i32 %2141, ptr %2142, align 4, !tbaa !5
  %2143 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2144 = load i32, ptr @test_count, align 4, !tbaa !5
  %2145 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2146 = load i32, ptr %2145, align 4, !tbaa !5
  %2147 = call ptr @s2n_strerror(i32 noundef %2146, ptr noundef @.str.4)
  %2148 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2149 = load i32, ptr %2148, align 4, !tbaa !5
  %2150 = call ptr @s2n_strerror_debug(i32 noundef %2149, ptr noundef @.str.4)
  %2151 = call ptr @__errno_location() #12
  %2152 = load i32, ptr %2151, align 4, !tbaa !5
  %2153 = call ptr @strerror(i32 noundef %2152) #11
  %2154 = call ptr @__errno_location() #12
  %2155 = load i32, ptr %2154, align 4, !tbaa !5
  %2156 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2143, ptr noundef @.str.5, i32 noundef %2144, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 126, ptr noundef %2147, ptr noundef %2150, ptr noundef %2153, i32 noundef %2155) #11
  br label %2157

2157:                                             ; preds = %2140, %2123
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #11
  br label %2158

2158:                                             ; preds = %2157
  br label %2159

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

2160:                                             ; No predecessors!
  br label %2161

2161:                                             ; preds = %2160
  br label %2162

2162:                                             ; preds = %2161, %2098
  br label %2163

2163:                                             ; preds = %2162
  br label %2164

2164:                                             ; preds = %2163
  br label %2165

2165:                                             ; preds = %2164
  %2166 = load i32, ptr @test_count, align 4, !tbaa !5
  %2167 = add nsw i32 %2166, 1
  store i32 %2167, ptr @test_count, align 4, !tbaa !5
  %2168 = load ptr, ptr %56, align 8, !tbaa !9
  %2169 = call i32 @s2n_set_test_key_shares(ptr noundef %2168, ptr noundef @s2n_ecc_curve_secp256r1)
  %2170 = getelementptr inbounds %struct.s2n_result, ptr %61, i32 0, i32 0
  store i32 %2169, ptr %2170, align 4
  %2171 = getelementptr inbounds %struct.s2n_result, ptr %61, i32 0, i32 0
  %2172 = load i32, ptr %2171, align 4
  %2173 = call zeroext i1 @s2n_result_is_ok(i32 %2172)
  br i1 %2173, label %2227, label %2174

2174:                                             ; preds = %2165
  br label %2175

2175:                                             ; preds = %2174
  br label %2176

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

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

2188:                                             ; preds = %2183
  %2189 = load i32, ptr %62, align 4, !tbaa !5
  %2190 = call ptr @__errno_location() #12
  store i32 %2189, ptr %2190, align 4, !tbaa !5
  %2191 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2192 = load i32, ptr @test_count, align 4, !tbaa !5
  %2193 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2194 = load i32, ptr %2193, align 4, !tbaa !5
  %2195 = call ptr @s2n_strerror(i32 noundef %2194, ptr noundef @.str.4)
  %2196 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2197 = load i32, ptr %2196, align 4, !tbaa !5
  %2198 = call ptr @s2n_strerror_debug(i32 noundef %2197, ptr noundef @.str.4)
  %2199 = call ptr @__errno_location() #12
  %2200 = load i32, ptr %2199, align 4, !tbaa !5
  %2201 = call ptr @strerror(i32 noundef %2200) #11
  %2202 = call ptr @__errno_location() #12
  %2203 = load i32, ptr %2202, align 4, !tbaa !5
  %2204 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2191, ptr noundef @.str.2, i32 noundef %2192, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 128, ptr noundef %2195, ptr noundef %2198, ptr noundef %2201, i32 noundef %2203) #11
  br label %2222

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

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

2223:                                             ; preds = %2222
  br label %2224

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

2225:                                             ; No predecessors!
  br label %2226

2226:                                             ; preds = %2225
  br label %2227

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

2228:                                             ; preds = %2227
  br label %2229

2229:                                             ; preds = %2228
  br label %2230

2230:                                             ; preds = %2229
  %2231 = load i32, ptr @test_count, align 4, !tbaa !5
  %2232 = add nsw i32 %2231, 1
  store i32 %2232, ptr @test_count, align 4, !tbaa !5
  %2233 = load ptr, ptr %56, align 8, !tbaa !9
  %2234 = call i32 @s2n_tls13_extract_secret(ptr noundef %2233, i32 noundef 2)
  %2235 = getelementptr inbounds %struct.s2n_result, ptr %63, i32 0, i32 0
  store i32 %2234, ptr %2235, align 4
  %2236 = getelementptr inbounds %struct.s2n_result, ptr %63, i32 0, i32 0
  %2237 = load i32, ptr %2236, align 4
  %2238 = call zeroext i1 @s2n_result_is_ok(i32 %2237)
  br i1 %2238, label %2292, label %2239

2239:                                             ; preds = %2230
  br label %2240

2240:                                             ; preds = %2239
  br label %2241

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

2248:                                             ; preds = %2241
  %2249 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2250 = call i32 @fileno(ptr noundef %2249) #11
  %2251 = call i32 @isatty(i32 noundef %2250) #11
  %2252 = icmp ne i32 %2251, 0
  br i1 %2252, label %2253, label %2270

2253:                                             ; preds = %2248
  %2254 = load i32, ptr %64, align 4, !tbaa !5
  %2255 = call ptr @__errno_location() #12
  store i32 %2254, ptr %2255, align 4, !tbaa !5
  %2256 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2257 = load i32, ptr @test_count, align 4, !tbaa !5
  %2258 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2259 = load i32, ptr %2258, align 4, !tbaa !5
  %2260 = call ptr @s2n_strerror(i32 noundef %2259, ptr noundef @.str.4)
  %2261 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2262 = load i32, ptr %2261, align 4, !tbaa !5
  %2263 = call ptr @s2n_strerror_debug(i32 noundef %2262, ptr noundef @.str.4)
  %2264 = call ptr @__errno_location() #12
  %2265 = load i32, ptr %2264, align 4, !tbaa !5
  %2266 = call ptr @strerror(i32 noundef %2265) #11
  %2267 = call ptr @__errno_location() #12
  %2268 = load i32, ptr %2267, align 4, !tbaa !5
  %2269 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2256, ptr noundef @.str.2, i32 noundef %2257, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 129, ptr noundef %2260, ptr noundef %2263, ptr noundef %2266, i32 noundef %2268) #11
  br label %2287

2270:                                             ; preds = %2248, %2241
  %2271 = load i32, ptr %64, align 4, !tbaa !5
  %2272 = call ptr @__errno_location() #12
  store i32 %2271, ptr %2272, align 4, !tbaa !5
  %2273 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2274 = load i32, ptr @test_count, align 4, !tbaa !5
  %2275 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2276 = load i32, ptr %2275, align 4, !tbaa !5
  %2277 = call ptr @s2n_strerror(i32 noundef %2276, ptr noundef @.str.4)
  %2278 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2279 = load i32, ptr %2278, align 4, !tbaa !5
  %2280 = call ptr @s2n_strerror_debug(i32 noundef %2279, ptr noundef @.str.4)
  %2281 = call ptr @__errno_location() #12
  %2282 = load i32, ptr %2281, align 4, !tbaa !5
  %2283 = call ptr @strerror(i32 noundef %2282) #11
  %2284 = call ptr @__errno_location() #12
  %2285 = load i32, ptr %2284, align 4, !tbaa !5
  %2286 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2273, ptr noundef @.str.5, i32 noundef %2274, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 129, ptr noundef %2277, ptr noundef %2280, ptr noundef %2283, i32 noundef %2285) #11
  br label %2287

2287:                                             ; preds = %2270, %2253
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #11
  br label %2288

2288:                                             ; preds = %2287
  br label %2289

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

2290:                                             ; No predecessors!
  br label %2291

2291:                                             ; preds = %2290
  br label %2292

2292:                                             ; preds = %2291, %2230
  br label %2293

2293:                                             ; preds = %2292
  br label %2294

2294:                                             ; preds = %2293
  br label %2295

2295:                                             ; preds = %2294
  %2296 = load i32, ptr @test_count, align 4, !tbaa !5
  %2297 = add nsw i32 %2296, 1
  store i32 %2297, ptr @test_count, align 4, !tbaa !5
  %2298 = load ptr, ptr %56, align 8, !tbaa !9
  %2299 = getelementptr inbounds %struct.s2n_connection, ptr %2298, i32 0, i32 28
  %2300 = getelementptr inbounds %struct.s2n_secrets, ptr %2299, i32 0, i32 1
  %2301 = load i32, ptr %2300, align 4, !tbaa !69
  %2302 = icmp eq i32 %2301, 2
  br i1 %2302, label %2356, label %2303

2303:                                             ; preds = %2295
  br label %2304

2304:                                             ; preds = %2303
  br label %2305

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

2312:                                             ; preds = %2305
  %2313 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2314 = call i32 @fileno(ptr noundef %2313) #11
  %2315 = call i32 @isatty(i32 noundef %2314) #11
  %2316 = icmp ne i32 %2315, 0
  br i1 %2316, label %2317, label %2334

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

2334:                                             ; preds = %2312, %2305
  %2335 = load i32, ptr %65, align 4, !tbaa !5
  %2336 = call ptr @__errno_location() #12
  store i32 %2335, ptr %2336, align 4, !tbaa !5
  %2337 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2338 = load i32, ptr @test_count, align 4, !tbaa !5
  %2339 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2340 = load i32, ptr %2339, align 4, !tbaa !5
  %2341 = call ptr @s2n_strerror(i32 noundef %2340, ptr noundef @.str.4)
  %2342 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2343 = load i32, ptr %2342, align 4, !tbaa !5
  %2344 = call ptr @s2n_strerror_debug(i32 noundef %2343, ptr noundef @.str.4)
  %2345 = call ptr @__errno_location() #12
  %2346 = load i32, ptr %2345, align 4, !tbaa !5
  %2347 = call ptr @strerror(i32 noundef %2346) #11
  %2348 = call ptr @__errno_location() #12
  %2349 = load i32, ptr %2348, align 4, !tbaa !5
  %2350 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2337, ptr noundef @.str.5, i32 noundef %2338, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 130, ptr noundef %2341, ptr noundef %2344, ptr noundef %2347, i32 noundef %2349) #11
  br label %2351

2351:                                             ; preds = %2334, %2317
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #11
  br label %2352

2352:                                             ; preds = %2351
  br label %2353

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

2354:                                             ; No predecessors!
  br label %2355

2355:                                             ; preds = %2354
  br label %2356

2356:                                             ; preds = %2355, %2295
  br label %2357

2357:                                             ; preds = %2356
  br label %2358

2358:                                             ; preds = %2357
  br label %2359

2359:                                             ; preds = %2358
  %2360 = load i32, ptr @test_count, align 4, !tbaa !5
  %2361 = add nsw i32 %2360, 1
  store i32 %2361, ptr @test_count, align 4, !tbaa !5
  %2362 = load ptr, ptr %56, align 8, !tbaa !9
  %2363 = getelementptr inbounds %struct.s2n_connection, ptr %2362, i32 0, i32 28
  %2364 = getelementptr inbounds %struct.s2n_secrets, ptr %2363, i32 0, i32 0
  %2365 = getelementptr inbounds %struct.s2n_tls13_secrets, ptr %2364, i32 0, i32 0
  %2366 = getelementptr inbounds [48 x i8], ptr %2365, i64 0, i64 0
  %2367 = getelementptr inbounds [48 x i8], ptr %9, i64 0, i64 0
  %2368 = call i32 @memcmp(ptr noundef %2366, ptr noundef %2367, i64 noundef 48) #14
  %2369 = icmp eq i32 %2368, 0
  br i1 %2369, label %2370, label %2423

2370:                                             ; preds = %2359
  br label %2371

2371:                                             ; preds = %2370
  br label %2372

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

2379:                                             ; preds = %2372
  %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
  %2383 = icmp ne i32 %2382, 0
  br i1 %2383, label %2384, label %2401

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

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

2418:                                             ; preds = %2401, %2384
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #11
  br label %2419

2419:                                             ; preds = %2418
  br label %2420

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

2421:                                             ; No predecessors!
  br label %2422

2422:                                             ; preds = %2421
  br label %2423

2423:                                             ; preds = %2422, %2359
  br label %2424

2424:                                             ; preds = %2423
  br label %2425

2425:                                             ; preds = %2424
  br label %2426

2426:                                             ; preds = %2425
  %2427 = load i32, ptr @test_count, align 4, !tbaa !5
  %2428 = add nsw i32 %2427, 1
  store i32 %2428, ptr @test_count, align 4, !tbaa !5
  %2429 = load ptr, ptr %56, align 8, !tbaa !9
  %2430 = call i32 @s2n_tls13_extract_secret(ptr noundef %2429, i32 noundef 3)
  %2431 = getelementptr inbounds %struct.s2n_result, ptr %67, i32 0, i32 0
  store i32 %2430, ptr %2431, align 4
  %2432 = getelementptr inbounds %struct.s2n_result, ptr %67, i32 0, i32 0
  %2433 = load i32, ptr %2432, align 4
  %2434 = call zeroext i1 @s2n_result_is_ok(i32 %2433)
  br i1 %2434, label %2488, label %2435

2435:                                             ; preds = %2426
  br label %2436

2436:                                             ; preds = %2435
  br label %2437

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

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

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

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

2483:                                             ; preds = %2466, %2449
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #11
  br label %2484

2484:                                             ; preds = %2483
  br label %2485

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

2486:                                             ; No predecessors!
  br label %2487

2487:                                             ; preds = %2486
  br label %2488

2488:                                             ; preds = %2487, %2426
  br label %2489

2489:                                             ; preds = %2488
  br label %2490

2490:                                             ; preds = %2489
  br label %2491

2491:                                             ; preds = %2490
  %2492 = load i32, ptr @test_count, align 4, !tbaa !5
  %2493 = add nsw i32 %2492, 1
  store i32 %2493, ptr @test_count, align 4, !tbaa !5
  %2494 = load ptr, ptr %56, align 8, !tbaa !9
  %2495 = getelementptr inbounds %struct.s2n_connection, ptr %2494, i32 0, i32 28
  %2496 = getelementptr inbounds %struct.s2n_secrets, ptr %2495, i32 0, i32 1
  %2497 = load i32, ptr %2496, align 4, !tbaa !69
  %2498 = icmp eq i32 %2497, 3
  br i1 %2498, label %2552, label %2499

2499:                                             ; preds = %2491
  br label %2500

2500:                                             ; preds = %2499
  br label %2501

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

2508:                                             ; preds = %2501
  %2509 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2510 = call i32 @fileno(ptr noundef %2509) #11
  %2511 = call i32 @isatty(i32 noundef %2510) #11
  %2512 = icmp ne i32 %2511, 0
  br i1 %2512, label %2513, label %2530

2513:                                             ; preds = %2508
  %2514 = load i32, ptr %69, align 4, !tbaa !5
  %2515 = call ptr @__errno_location() #12
  store i32 %2514, ptr %2515, align 4, !tbaa !5
  %2516 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2517 = load i32, ptr @test_count, align 4, !tbaa !5
  %2518 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2519 = load i32, ptr %2518, align 4, !tbaa !5
  %2520 = call ptr @s2n_strerror(i32 noundef %2519, ptr noundef @.str.4)
  %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_debug(i32 noundef %2522, ptr noundef @.str.4)
  %2524 = call ptr @__errno_location() #12
  %2525 = load i32, ptr %2524, align 4, !tbaa !5
  %2526 = call ptr @strerror(i32 noundef %2525) #11
  %2527 = call ptr @__errno_location() #12
  %2528 = load i32, ptr %2527, align 4, !tbaa !5
  %2529 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2516, ptr noundef @.str.2, i32 noundef %2517, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 134, ptr noundef %2520, ptr noundef %2523, ptr noundef %2526, i32 noundef %2528) #11
  br label %2547

2530:                                             ; preds = %2508, %2501
  %2531 = load i32, ptr %69, align 4, !tbaa !5
  %2532 = call ptr @__errno_location() #12
  store i32 %2531, ptr %2532, align 4, !tbaa !5
  %2533 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2534 = load i32, ptr @test_count, align 4, !tbaa !5
  %2535 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2536 = load i32, ptr %2535, align 4, !tbaa !5
  %2537 = call ptr @s2n_strerror(i32 noundef %2536, ptr noundef @.str.4)
  %2538 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2539 = load i32, ptr %2538, align 4, !tbaa !5
  %2540 = call ptr @s2n_strerror_debug(i32 noundef %2539, ptr noundef @.str.4)
  %2541 = call ptr @__errno_location() #12
  %2542 = load i32, ptr %2541, align 4, !tbaa !5
  %2543 = call ptr @strerror(i32 noundef %2542) #11
  %2544 = call ptr @__errno_location() #12
  %2545 = load i32, ptr %2544, align 4, !tbaa !5
  %2546 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2533, ptr noundef @.str.5, i32 noundef %2534, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 134, ptr noundef %2537, ptr noundef %2540, ptr noundef %2543, i32 noundef %2545) #11
  br label %2547

2547:                                             ; preds = %2530, %2513
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #11
  br label %2548

2548:                                             ; preds = %2547
  br label %2549

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

2550:                                             ; No predecessors!
  br label %2551

2551:                                             ; preds = %2550
  br label %2552

2552:                                             ; preds = %2551, %2491
  br label %2553

2553:                                             ; preds = %2552
  br label %2554

2554:                                             ; preds = %2553
  br label %2555

2555:                                             ; preds = %2554
  %2556 = load i32, ptr @test_count, align 4, !tbaa !5
  %2557 = add nsw i32 %2556, 1
  store i32 %2557, ptr @test_count, align 4, !tbaa !5
  %2558 = load ptr, ptr %56, align 8, !tbaa !9
  %2559 = getelementptr inbounds %struct.s2n_connection, ptr %2558, i32 0, i32 28
  %2560 = getelementptr inbounds %struct.s2n_secrets, ptr %2559, i32 0, i32 0
  %2561 = getelementptr inbounds %struct.s2n_tls13_secrets, ptr %2560, i32 0, i32 0
  %2562 = getelementptr inbounds [48 x i8], ptr %2561, i64 0, i64 0
  %2563 = getelementptr inbounds [48 x i8], ptr %9, i64 0, i64 0
  %2564 = call i32 @memcmp(ptr noundef %2562, ptr noundef %2563, i64 noundef 48) #14
  %2565 = icmp eq i32 %2564, 0
  br i1 %2565, label %2566, label %2619

2566:                                             ; preds = %2555
  br label %2567

2567:                                             ; preds = %2566
  br label %2568

2568:                                             ; preds = %2567
  call void @llvm.lifetime.start.p0(i64 4, ptr %70) #11
  %2569 = call ptr @__errno_location() #12
  %2570 = load i32, ptr %2569, align 4, !tbaa !5
  store i32 %2570, ptr %70, align 4, !tbaa !5
  %2571 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2572 = call i32 @s2n_print_stacktrace(ptr noundef %2571)
  %2573 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2574 = trunc i8 %2573 to i1
  br i1 %2574, label %2575, label %2597

2575:                                             ; preds = %2568
  %2576 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2577 = call i32 @fileno(ptr noundef %2576) #11
  %2578 = call i32 @isatty(i32 noundef %2577) #11
  %2579 = icmp ne i32 %2578, 0
  br i1 %2579, label %2580, label %2597

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

2597:                                             ; preds = %2575, %2568
  %2598 = load i32, ptr %70, align 4, !tbaa !5
  %2599 = call ptr @__errno_location() #12
  store i32 %2598, ptr %2599, align 4, !tbaa !5
  %2600 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2601 = load i32, ptr @test_count, align 4, !tbaa !5
  %2602 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2603 = load i32, ptr %2602, align 4, !tbaa !5
  %2604 = call ptr @s2n_strerror(i32 noundef %2603, ptr noundef @.str.4)
  %2605 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2606 = load i32, ptr %2605, align 4, !tbaa !5
  %2607 = call ptr @s2n_strerror_debug(i32 noundef %2606, ptr noundef @.str.4)
  %2608 = call ptr @__errno_location() #12
  %2609 = load i32, ptr %2608, align 4, !tbaa !5
  %2610 = call ptr @strerror(i32 noundef %2609) #11
  %2611 = call ptr @__errno_location() #12
  %2612 = load i32, ptr %2611, align 4, !tbaa !5
  %2613 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2600, ptr noundef @.str.5, i32 noundef %2601, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 135, ptr noundef %2604, ptr noundef %2607, ptr noundef %2610, i32 noundef %2612) #11
  br label %2614

2614:                                             ; preds = %2597, %2580
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #11
  br label %2615

2615:                                             ; preds = %2614
  br label %2616

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

2617:                                             ; No predecessors!
  br label %2618

2618:                                             ; preds = %2617
  br label %2619

2619:                                             ; preds = %2618, %2555
  br label %2620

2620:                                             ; preds = %2619
  br label %2621

2621:                                             ; preds = %2620
  %2622 = call i32 @s2n_connection_ptr_free(ptr noundef %56)
  %2623 = getelementptr inbounds %struct.s2n_result, ptr %71, i32 0, i32 0
  store i32 %2622, ptr %2623, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %72) #11
  %2624 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %2624, ptr %72, align 8, !tbaa !9
  %2625 = load ptr, ptr %72, align 8, !tbaa !9
  %2626 = getelementptr inbounds %struct.s2n_connection, ptr %2625, i32 0, i32 27
  %2627 = load ptr, ptr %2626, align 8, !tbaa !39
  %2628 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %2627, i32 0, i32 0
  store ptr @s2n_tls13_aes_256_gcm_sha384, ptr %2628, align 8, !tbaa !64
  %2629 = load ptr, ptr %72, align 8, !tbaa !9
  %2630 = getelementptr inbounds %struct.s2n_connection, ptr %2629, i32 0, i32 28
  %2631 = getelementptr inbounds %struct.s2n_secrets, ptr %2630, i32 0, i32 1
  store i32 0, ptr %2631, align 4, !tbaa !69
  br label %2632

2632:                                             ; preds = %2621
  %2633 = load i32, ptr @test_count, align 4, !tbaa !5
  %2634 = add nsw i32 %2633, 1
  store i32 %2634, ptr @test_count, align 4, !tbaa !5
  %2635 = load ptr, ptr %72, align 8, !tbaa !9
  %2636 = call i32 @s2n_set_test_key_shares(ptr noundef %2635, ptr noundef @s2n_ecc_curve_secp256r1)
  %2637 = getelementptr inbounds %struct.s2n_result, ptr %73, i32 0, i32 0
  store i32 %2636, ptr %2637, align 4
  %2638 = getelementptr inbounds %struct.s2n_result, ptr %73, i32 0, i32 0
  %2639 = load i32, ptr %2638, align 4
  %2640 = call zeroext i1 @s2n_result_is_ok(i32 %2639)
  br i1 %2640, label %2694, label %2641

2641:                                             ; preds = %2632
  br label %2642

2642:                                             ; preds = %2641
  br label %2643

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

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

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

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

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

2690:                                             ; preds = %2689
  br label %2691

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

2692:                                             ; No predecessors!
  br label %2693

2693:                                             ; preds = %2692
  br label %2694

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

2695:                                             ; preds = %2694
  br label %2696

2696:                                             ; preds = %2695
  br label %2697

2697:                                             ; preds = %2696
  %2698 = load i32, ptr @test_count, align 4, !tbaa !5
  %2699 = add nsw i32 %2698, 1
  store i32 %2699, ptr @test_count, align 4, !tbaa !5
  %2700 = load ptr, ptr %72, align 8, !tbaa !9
  %2701 = call i32 @s2n_tls13_extract_secret(ptr noundef %2700, i32 noundef 3)
  %2702 = getelementptr inbounds %struct.s2n_result, ptr %75, i32 0, i32 0
  store i32 %2701, ptr %2702, align 4
  %2703 = getelementptr inbounds %struct.s2n_result, ptr %75, i32 0, i32 0
  %2704 = load i32, ptr %2703, align 4
  %2705 = call zeroext i1 @s2n_result_is_ok(i32 %2704)
  br i1 %2705, label %2759, label %2706

2706:                                             ; preds = %2697
  br label %2707

2707:                                             ; preds = %2706
  br label %2708

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

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

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

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

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

2755:                                             ; preds = %2754
  br label %2756

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

2757:                                             ; No predecessors!
  br label %2758

2758:                                             ; preds = %2757
  br label %2759

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

2760:                                             ; preds = %2759
  br label %2761

2761:                                             ; preds = %2760
  br label %2762

2762:                                             ; preds = %2761
  %2763 = load i32, ptr @test_count, align 4, !tbaa !5
  %2764 = add nsw i32 %2763, 1
  store i32 %2764, ptr @test_count, align 4, !tbaa !5
  %2765 = load ptr, ptr %72, align 8, !tbaa !9
  %2766 = getelementptr inbounds %struct.s2n_connection, ptr %2765, i32 0, i32 28
  %2767 = getelementptr inbounds %struct.s2n_secrets, ptr %2766, i32 0, i32 1
  %2768 = load i32, ptr %2767, align 4, !tbaa !69
  %2769 = icmp eq i32 %2768, 3
  br i1 %2769, label %2823, label %2770

2770:                                             ; preds = %2762
  br label %2771

2771:                                             ; preds = %2770
  br label %2772

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

2779:                                             ; preds = %2772
  %2780 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2781 = call i32 @fileno(ptr noundef %2780) #11
  %2782 = call i32 @isatty(i32 noundef %2781) #11
  %2783 = icmp ne i32 %2782, 0
  br i1 %2783, label %2784, label %2801

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

2801:                                             ; preds = %2779, %2772
  %2802 = load i32, ptr %77, align 4, !tbaa !5
  %2803 = call ptr @__errno_location() #12
  store i32 %2802, ptr %2803, align 4, !tbaa !5
  %2804 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2805 = load i32, ptr @test_count, align 4, !tbaa !5
  %2806 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2807 = load i32, ptr %2806, align 4, !tbaa !5
  %2808 = call ptr @s2n_strerror(i32 noundef %2807, ptr noundef @.str.4)
  %2809 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2810 = load i32, ptr %2809, align 4, !tbaa !5
  %2811 = call ptr @s2n_strerror_debug(i32 noundef %2810, ptr noundef @.str.4)
  %2812 = call ptr @__errno_location() #12
  %2813 = load i32, ptr %2812, align 4, !tbaa !5
  %2814 = call ptr @strerror(i32 noundef %2813) #11
  %2815 = call ptr @__errno_location() #12
  %2816 = load i32, ptr %2815, align 4, !tbaa !5
  %2817 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2804, ptr noundef @.str.5, i32 noundef %2805, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 147, ptr noundef %2808, ptr noundef %2811, ptr noundef %2814, i32 noundef %2816) #11
  br label %2818

2818:                                             ; preds = %2801, %2784
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #11
  br label %2819

2819:                                             ; preds = %2818
  br label %2820

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

2821:                                             ; No predecessors!
  br label %2822

2822:                                             ; preds = %2821
  br label %2823

2823:                                             ; preds = %2822, %2762
  br label %2824

2824:                                             ; preds = %2823
  br label %2825

2825:                                             ; preds = %2824
  br label %2826

2826:                                             ; preds = %2825
  %2827 = load i32, ptr @test_count, align 4, !tbaa !5
  %2828 = add nsw i32 %2827, 1
  store i32 %2828, ptr @test_count, align 4, !tbaa !5
  %2829 = load ptr, ptr %72, align 8, !tbaa !9
  %2830 = getelementptr inbounds %struct.s2n_connection, ptr %2829, i32 0, i32 28
  %2831 = getelementptr inbounds %struct.s2n_secrets, ptr %2830, i32 0, i32 0
  %2832 = getelementptr inbounds %struct.s2n_tls13_secrets, ptr %2831, i32 0, i32 0
  %2833 = getelementptr inbounds [48 x i8], ptr %2832, i64 0, i64 0
  %2834 = getelementptr inbounds [48 x i8], ptr %9, i64 0, i64 0
  %2835 = call i32 @memcmp(ptr noundef %2833, ptr noundef %2834, i64 noundef 48) #14
  %2836 = icmp eq i32 %2835, 0
  br i1 %2836, label %2837, label %2890

2837:                                             ; preds = %2826
  br label %2838

2838:                                             ; preds = %2837
  br label %2839

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

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

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

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

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

2886:                                             ; preds = %2885
  br label %2887

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

2888:                                             ; No predecessors!
  br label %2889

2889:                                             ; preds = %2888
  br label %2890

2890:                                             ; preds = %2889, %2826
  br label %2891

2891:                                             ; preds = %2890
  br label %2892

2892:                                             ; preds = %2891
  %2893 = call i32 @s2n_connection_ptr_free(ptr noundef %72)
  %2894 = getelementptr inbounds %struct.s2n_result, ptr %79, i32 0, i32 0
  store i32 %2893, ptr %2894, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %80) #11
  store i64 0, ptr %80, align 8, !tbaa !15
  br label %2895

2895:                                             ; preds = %3061, %2892
  %2896 = load i64, ptr %80, align 8, !tbaa !15
  %2897 = load i64, ptr %17, align 8, !tbaa !15
  %2898 = icmp ult i64 %2896, %2897
  br i1 %2898, label %2900, label %2899

2899:                                             ; preds = %2895
  store i32 278, ptr %19, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #11
  br label %3064

2900:                                             ; preds = %2895
  call void @llvm.lifetime.start.p0(i64 8, ptr %81) #11
  %2901 = load i64, ptr %80, align 8, !tbaa !15
  %2902 = getelementptr inbounds [1000 x %struct.s2n_tls13_secrets_test_case], ptr %16, i64 0, i64 %2901
  %2903 = getelementptr inbounds %struct.s2n_tls13_secrets_test_case, ptr %2902, i32 0, i32 3
  %2904 = load i32, ptr %2903, align 4, !tbaa !26
  %2905 = call ptr @s2n_connection_new(i32 noundef %2904)
  store ptr %2905, ptr %81, align 8, !tbaa !9
  %2906 = load i64, ptr %80, align 8, !tbaa !15
  %2907 = getelementptr inbounds [1000 x %struct.s2n_tls13_secrets_test_case], ptr %16, i64 0, i64 %2906
  %2908 = getelementptr inbounds %struct.s2n_tls13_secrets_test_case, ptr %2907, i32 0, i32 4
  %2909 = load ptr, ptr %2908, align 16, !tbaa !28
  %2910 = load ptr, ptr %81, align 8, !tbaa !9
  %2911 = getelementptr inbounds %struct.s2n_connection, ptr %2910, i32 0, i32 27
  %2912 = load ptr, ptr %2911, align 8, !tbaa !39
  %2913 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %2912, i32 0, i32 0
  store ptr %2909, ptr %2913, align 8, !tbaa !64
  %2914 = load i64, ptr %80, align 8, !tbaa !15
  %2915 = getelementptr inbounds [1000 x %struct.s2n_tls13_secrets_test_case], ptr %16, i64 0, i64 %2914
  %2916 = getelementptr inbounds %struct.s2n_tls13_secrets_test_case, ptr %2915, i32 0, i32 0
  %2917 = load i32, ptr %2916, align 16, !tbaa !22
  %2918 = load ptr, ptr %81, align 8, !tbaa !9
  %2919 = getelementptr inbounds %struct.s2n_connection, ptr %2918, i32 0, i32 28
  %2920 = getelementptr inbounds %struct.s2n_secrets, ptr %2919, i32 0, i32 1
  store i32 %2917, ptr %2920, align 4, !tbaa !69
  br label %2921

2921:                                             ; preds = %2900
  %2922 = load i32, ptr @test_count, align 4, !tbaa !5
  %2923 = add nsw i32 %2922, 1
  store i32 %2923, ptr @test_count, align 4, !tbaa !5
  %2924 = load ptr, ptr %81, align 8, !tbaa !9
  %2925 = load i64, ptr %80, align 8, !tbaa !15
  %2926 = getelementptr inbounds [1000 x %struct.s2n_tls13_secrets_test_case], ptr %16, i64 0, i64 %2925
  %2927 = getelementptr inbounds %struct.s2n_tls13_secrets_test_case, ptr %2926, i32 0, i32 5
  %2928 = load ptr, ptr %2927, align 8, !tbaa !30
  %2929 = call i32 @s2n_set_test_key_shares(ptr noundef %2924, ptr noundef %2928)
  %2930 = getelementptr inbounds %struct.s2n_result, ptr %82, i32 0, i32 0
  store i32 %2929, ptr %2930, align 4
  %2931 = getelementptr inbounds %struct.s2n_result, ptr %82, i32 0, i32 0
  %2932 = load i32, ptr %2931, align 4
  %2933 = call zeroext i1 @s2n_result_is_ok(i32 %2932)
  br i1 %2933, label %2987, label %2934

2934:                                             ; preds = %2921
  br label %2935

2935:                                             ; preds = %2934
  br label %2936

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

2943:                                             ; preds = %2936
  %2944 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2945 = call i32 @fileno(ptr noundef %2944) #11
  %2946 = call i32 @isatty(i32 noundef %2945) #11
  %2947 = icmp ne i32 %2946, 0
  br i1 %2947, label %2948, label %2965

2948:                                             ; preds = %2943
  %2949 = load i32, ptr %83, align 4, !tbaa !5
  %2950 = call ptr @__errno_location() #12
  store i32 %2949, ptr %2950, align 4, !tbaa !5
  %2951 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2952 = load i32, ptr @test_count, align 4, !tbaa !5
  %2953 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2954 = load i32, ptr %2953, align 4, !tbaa !5
  %2955 = call ptr @s2n_strerror(i32 noundef %2954, ptr noundef @.str.4)
  %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_debug(i32 noundef %2957, ptr noundef @.str.4)
  %2959 = call ptr @__errno_location() #12
  %2960 = load i32, ptr %2959, align 4, !tbaa !5
  %2961 = call ptr @strerror(i32 noundef %2960) #11
  %2962 = call ptr @__errno_location() #12
  %2963 = load i32, ptr %2962, align 4, !tbaa !5
  %2964 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2951, ptr noundef @.str.2, i32 noundef %2952, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 157, ptr noundef %2955, ptr noundef %2958, ptr noundef %2961, i32 noundef %2963) #11
  br label %2982

2965:                                             ; preds = %2943, %2936
  %2966 = load i32, ptr %83, align 4, !tbaa !5
  %2967 = call ptr @__errno_location() #12
  store i32 %2966, ptr %2967, align 4, !tbaa !5
  %2968 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2969 = load i32, ptr @test_count, align 4, !tbaa !5
  %2970 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2971 = load i32, ptr %2970, align 4, !tbaa !5
  %2972 = call ptr @s2n_strerror(i32 noundef %2971, ptr noundef @.str.4)
  %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_debug(i32 noundef %2974, ptr noundef @.str.4)
  %2976 = call ptr @__errno_location() #12
  %2977 = load i32, ptr %2976, align 4, !tbaa !5
  %2978 = call ptr @strerror(i32 noundef %2977) #11
  %2979 = call ptr @__errno_location() #12
  %2980 = load i32, ptr %2979, align 4, !tbaa !5
  %2981 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2968, ptr noundef @.str.5, i32 noundef %2969, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 157, ptr noundef %2972, ptr noundef %2975, ptr noundef %2978, i32 noundef %2980) #11
  br label %2982

2982:                                             ; preds = %2965, %2948
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #11
  br label %2983

2983:                                             ; preds = %2982
  br label %2984

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

2985:                                             ; No predecessors!
  br label %2986

2986:                                             ; preds = %2985
  br label %2987

2987:                                             ; preds = %2986, %2921
  br label %2988

2988:                                             ; preds = %2987
  br label %2989

2989:                                             ; preds = %2988
  br label %2990

2990:                                             ; preds = %2989
  %2991 = load i32, ptr @test_count, align 4, !tbaa !5
  %2992 = add nsw i32 %2991, 1
  store i32 %2992, ptr @test_count, align 4, !tbaa !5
  %2993 = load ptr, ptr %81, align 8, !tbaa !9
  %2994 = load i64, ptr %80, align 8, !tbaa !15
  %2995 = getelementptr inbounds [1000 x %struct.s2n_tls13_secrets_test_case], ptr %16, i64 0, i64 %2994
  %2996 = getelementptr inbounds %struct.s2n_tls13_secrets_test_case, ptr %2995, i32 0, i32 1
  %2997 = load i32, ptr %2996, align 4, !tbaa !24
  %2998 = call i32 @s2n_tls13_extract_secret(ptr noundef %2993, i32 noundef %2997)
  %2999 = getelementptr inbounds %struct.s2n_result, ptr %84, i32 0, i32 0
  store i32 %2998, ptr %2999, align 4
  %3000 = getelementptr inbounds %struct.s2n_result, ptr %84, i32 0, i32 0
  %3001 = load i32, ptr %3000, align 4
  %3002 = call zeroext i1 @s2n_result_is_ok(i32 %3001)
  br i1 %3002, label %3056, label %3003

3003:                                             ; preds = %2990
  br label %3004

3004:                                             ; preds = %3003
  br label %3005

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

3012:                                             ; preds = %3005
  %3013 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3014 = call i32 @fileno(ptr noundef %3013) #11
  %3015 = call i32 @isatty(i32 noundef %3014) #11
  %3016 = icmp ne i32 %3015, 0
  br i1 %3016, label %3017, label %3034

3017:                                             ; preds = %3012
  %3018 = load i32, ptr %85, align 4, !tbaa !5
  %3019 = call ptr @__errno_location() #12
  store i32 %3018, ptr %3019, align 4, !tbaa !5
  %3020 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3021 = load i32, ptr @test_count, align 4, !tbaa !5
  %3022 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3023 = load i32, ptr %3022, align 4, !tbaa !5
  %3024 = call ptr @s2n_strerror(i32 noundef %3023, ptr noundef @.str.4)
  %3025 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3026 = load i32, ptr %3025, align 4, !tbaa !5
  %3027 = call ptr @s2n_strerror_debug(i32 noundef %3026, ptr noundef @.str.4)
  %3028 = call ptr @__errno_location() #12
  %3029 = load i32, ptr %3028, align 4, !tbaa !5
  %3030 = call ptr @strerror(i32 noundef %3029) #11
  %3031 = call ptr @__errno_location() #12
  %3032 = load i32, ptr %3031, align 4, !tbaa !5
  %3033 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3020, ptr noundef @.str.2, i32 noundef %3021, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 158, ptr noundef %3024, ptr noundef %3027, ptr noundef %3030, i32 noundef %3032) #11
  br label %3051

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

3051:                                             ; preds = %3034, %3017
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #11
  br label %3052

3052:                                             ; preds = %3051
  br label %3053

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

3054:                                             ; No predecessors!
  br label %3055

3055:                                             ; preds = %3054
  br label %3056

3056:                                             ; preds = %3055, %2990
  br label %3057

3057:                                             ; preds = %3056
  br label %3058

3058:                                             ; preds = %3057
  %3059 = call i32 @s2n_connection_ptr_free(ptr noundef %81)
  %3060 = getelementptr inbounds %struct.s2n_result, ptr %86, i32 0, i32 0
  store i32 %3059, ptr %3060, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #11
  br label %3061

3061:                                             ; preds = %3058
  %3062 = load i64, ptr %80, align 8, !tbaa !15
  %3063 = add i64 %3062, 1
  store i64 %3063, ptr %80, align 8, !tbaa !15
  br label %2895, !llvm.loop !70

3064:                                             ; preds = %2899
  call void @llvm.lifetime.start.p0(i64 4, ptr %87) #11
  store i32 3, ptr %87, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %88) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %88, ptr align 16 @__const.main.message_nums, i64 16, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr %89) #11
  call void @llvm.memset.p0.i64(ptr align 8 %89, i8 0, i64 24, i1 false)
  call void @llvm.lifetime.start.p0(i64 4184, ptr %90) #11
  call void @llvm.memset.p0.i64(ptr align 8 %90, i8 0, i64 4184, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %91) #11
  %3065 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %3065, ptr %91, align 8, !tbaa !9
  br label %3066

3066:                                             ; preds = %3064
  br label %3067

3067:                                             ; preds = %3066
  br label %3068

3068:                                             ; preds = %3067
  %3069 = load i32, ptr @test_count, align 4, !tbaa !5
  %3070 = add nsw i32 %3069, 1
  store i32 %3070, ptr @test_count, align 4, !tbaa !5
  %3071 = call i32 @s2n_tls13_derive_secret(ptr noundef null, i32 noundef 1, i32 noundef 1, ptr noundef %89)
  %3072 = getelementptr inbounds %struct.s2n_result, ptr %92, i32 0, i32 0
  store i32 %3071, ptr %3072, align 4
  %3073 = getelementptr inbounds %struct.s2n_result, ptr %92, i32 0, i32 0
  %3074 = load i32, ptr %3073, align 4
  %3075 = call zeroext i1 @s2n_result_is_error(i32 %3074)
  br i1 %3075, label %3129, label %3076

3076:                                             ; preds = %3068
  br label %3077

3077:                                             ; preds = %3076
  br label %3078

3078:                                             ; preds = %3077
  call void @llvm.lifetime.start.p0(i64 4, ptr %93) #11
  %3079 = call ptr @__errno_location() #12
  %3080 = load i32, ptr %3079, align 4, !tbaa !5
  store i32 %3080, ptr %93, align 4, !tbaa !5
  %3081 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3082 = call i32 @s2n_print_stacktrace(ptr noundef %3081)
  %3083 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3084 = trunc i8 %3083 to i1
  br i1 %3084, label %3085, label %3107

3085:                                             ; preds = %3078
  %3086 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3087 = call i32 @fileno(ptr noundef %3086) #11
  %3088 = call i32 @isatty(i32 noundef %3087) #11
  %3089 = icmp ne i32 %3088, 0
  br i1 %3089, label %3090, label %3107

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

3107:                                             ; preds = %3085, %3078
  %3108 = load i32, ptr %93, align 4, !tbaa !5
  %3109 = call ptr @__errno_location() #12
  store i32 %3108, ptr %3109, align 4, !tbaa !5
  %3110 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3111 = load i32, ptr @test_count, align 4, !tbaa !5
  %3112 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3113 = load i32, ptr %3112, align 4, !tbaa !5
  %3114 = call ptr @s2n_strerror(i32 noundef %3113, ptr noundef @.str.4)
  %3115 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3116 = load i32, ptr %3115, align 4, !tbaa !5
  %3117 = call ptr @s2n_strerror_debug(i32 noundef %3116, ptr noundef @.str.4)
  %3118 = call ptr @__errno_location() #12
  %3119 = load i32, ptr %3118, align 4, !tbaa !5
  %3120 = call ptr @strerror(i32 noundef %3119) #11
  %3121 = call ptr @__errno_location() #12
  %3122 = load i32, ptr %3121, align 4, !tbaa !5
  %3123 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3110, ptr noundef @.str.5, i32 noundef %3111, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 178, ptr noundef %3114, ptr noundef %3117, ptr noundef %3120, i32 noundef %3122) #11
  br label %3124

3124:                                             ; preds = %3107, %3090
  call void @llvm.lifetime.end.p0(i64 4, ptr %93) #11
  br label %3125

3125:                                             ; preds = %3124
  br label %3126

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

3127:                                             ; No predecessors!
  br label %3128

3128:                                             ; preds = %3127
  br label %3129

3129:                                             ; preds = %3128, %3068
  br label %3130

3130:                                             ; preds = %3129
  br label %3131

3131:                                             ; preds = %3130
  br label %3132

3132:                                             ; preds = %3131
  %3133 = load i32, ptr @test_count, align 4, !tbaa !5
  %3134 = add nsw i32 %3133, 1
  store i32 %3134, ptr @test_count, align 4, !tbaa !5
  %3135 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3136 = load i32, ptr %3135, align 4, !tbaa !5
  %3137 = icmp eq i32 %3136, 402653193
  br i1 %3137, label %3191, label %3138

3138:                                             ; preds = %3132
  br label %3139

3139:                                             ; preds = %3138
  br label %3140

3140:                                             ; preds = %3139
  call void @llvm.lifetime.start.p0(i64 4, ptr %94) #11
  %3141 = call ptr @__errno_location() #12
  %3142 = load i32, ptr %3141, align 4, !tbaa !5
  store i32 %3142, ptr %94, align 4, !tbaa !5
  %3143 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3144 = call i32 @s2n_print_stacktrace(ptr noundef %3143)
  %3145 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3146 = trunc i8 %3145 to i1
  br i1 %3146, label %3147, label %3169

3147:                                             ; preds = %3140
  %3148 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3149 = call i32 @fileno(ptr noundef %3148) #11
  %3150 = call i32 @isatty(i32 noundef %3149) #11
  %3151 = icmp ne i32 %3150, 0
  br i1 %3151, label %3152, label %3169

3152:                                             ; preds = %3147
  %3153 = load i32, ptr %94, align 4, !tbaa !5
  %3154 = call ptr @__errno_location() #12
  store i32 %3153, ptr %3154, align 4, !tbaa !5
  %3155 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3156 = load i32, ptr @test_count, align 4, !tbaa !5
  %3157 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3158 = load i32, ptr %3157, align 4, !tbaa !5
  %3159 = call ptr @s2n_strerror(i32 noundef %3158, ptr noundef @.str.4)
  %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_debug(i32 noundef %3161, ptr noundef @.str.4)
  %3163 = call ptr @__errno_location() #12
  %3164 = load i32, ptr %3163, align 4, !tbaa !5
  %3165 = call ptr @strerror(i32 noundef %3164) #11
  %3166 = call ptr @__errno_location() #12
  %3167 = load i32, ptr %3166, align 4, !tbaa !5
  %3168 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3155, ptr noundef @.str.2, i32 noundef %3156, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 178, ptr noundef %3159, ptr noundef %3162, ptr noundef %3165, i32 noundef %3167) #11
  br label %3186

3169:                                             ; preds = %3147, %3140
  %3170 = load i32, ptr %94, align 4, !tbaa !5
  %3171 = call ptr @__errno_location() #12
  store i32 %3170, ptr %3171, align 4, !tbaa !5
  %3172 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3173 = load i32, ptr @test_count, align 4, !tbaa !5
  %3174 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3175 = load i32, ptr %3174, align 4, !tbaa !5
  %3176 = call ptr @s2n_strerror(i32 noundef %3175, ptr noundef @.str.4)
  %3177 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3178 = load i32, ptr %3177, align 4, !tbaa !5
  %3179 = call ptr @s2n_strerror_debug(i32 noundef %3178, ptr noundef @.str.4)
  %3180 = call ptr @__errno_location() #12
  %3181 = load i32, ptr %3180, align 4, !tbaa !5
  %3182 = call ptr @strerror(i32 noundef %3181) #11
  %3183 = call ptr @__errno_location() #12
  %3184 = load i32, ptr %3183, align 4, !tbaa !5
  %3185 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3172, ptr noundef @.str.5, i32 noundef %3173, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 178, ptr noundef %3176, ptr noundef %3179, ptr noundef %3182, i32 noundef %3184) #11
  br label %3186

3186:                                             ; preds = %3169, %3152
  call void @llvm.lifetime.end.p0(i64 4, ptr %94) #11
  br label %3187

3187:                                             ; preds = %3186
  br label %3188

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

3189:                                             ; No predecessors!
  br label %3190

3190:                                             ; preds = %3189
  br label %3191

3191:                                             ; preds = %3190, %3132
  br label %3192

3192:                                             ; preds = %3191
  br label %3193

3193:                                             ; preds = %3192
  br label %3194

3194:                                             ; preds = %3193
  %3195 = load i32, ptr @test_count, align 4, !tbaa !5
  %3196 = add nsw i32 %3195, 1
  store i32 %3196, ptr @test_count, align 4, !tbaa !5
  %3197 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3198 = load i32, ptr %3197, align 4, !tbaa !5
  %3199 = call ptr @s2n_strerror_debug(i32 noundef %3198, ptr noundef @.str.4)
  %3200 = icmp eq ptr %3199, null
  br i1 %3200, label %3201, label %3254

3201:                                             ; preds = %3194
  br label %3202

3202:                                             ; preds = %3201
  br label %3203

3203:                                             ; preds = %3202
  call void @llvm.lifetime.start.p0(i64 4, ptr %95) #11
  %3204 = call ptr @__errno_location() #12
  %3205 = load i32, ptr %3204, align 4, !tbaa !5
  store i32 %3205, ptr %95, align 4, !tbaa !5
  %3206 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3207 = call i32 @s2n_print_stacktrace(ptr noundef %3206)
  %3208 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3209 = trunc i8 %3208 to i1
  br i1 %3209, label %3210, label %3232

3210:                                             ; preds = %3203
  %3211 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3212 = call i32 @fileno(ptr noundef %3211) #11
  %3213 = call i32 @isatty(i32 noundef %3212) #11
  %3214 = icmp ne i32 %3213, 0
  br i1 %3214, label %3215, label %3232

3215:                                             ; preds = %3210
  %3216 = load i32, ptr %95, align 4, !tbaa !5
  %3217 = call ptr @__errno_location() #12
  store i32 %3216, ptr %3217, align 4, !tbaa !5
  %3218 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3219 = load i32, ptr @test_count, align 4, !tbaa !5
  %3220 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3221 = load i32, ptr %3220, align 4, !tbaa !5
  %3222 = call ptr @s2n_strerror(i32 noundef %3221, ptr noundef @.str.4)
  %3223 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3224 = load i32, ptr %3223, align 4, !tbaa !5
  %3225 = call ptr @s2n_strerror_debug(i32 noundef %3224, ptr noundef @.str.4)
  %3226 = call ptr @__errno_location() #12
  %3227 = load i32, ptr %3226, align 4, !tbaa !5
  %3228 = call ptr @strerror(i32 noundef %3227) #11
  %3229 = call ptr @__errno_location() #12
  %3230 = load i32, ptr %3229, align 4, !tbaa !5
  %3231 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3218, ptr noundef @.str.2, i32 noundef %3219, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 178, ptr noundef %3222, ptr noundef %3225, ptr noundef %3228, i32 noundef %3230) #11
  br label %3249

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

3249:                                             ; preds = %3232, %3215
  call void @llvm.lifetime.end.p0(i64 4, ptr %95) #11
  br label %3250

3250:                                             ; preds = %3249
  br label %3251

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

3252:                                             ; No predecessors!
  br label %3253

3253:                                             ; preds = %3252
  br label %3254

3254:                                             ; preds = %3253, %3194
  br label %3255

3255:                                             ; preds = %3254
  br label %3256

3256:                                             ; preds = %3255
  br label %3257

3257:                                             ; preds = %3256
  br label %3258

3258:                                             ; preds = %3257
  br label %3259

3259:                                             ; preds = %3258
  %3260 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %3260, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %3261 = call ptr @__errno_location() #12
  store i32 0, ptr %3261, align 4, !tbaa !5
  br label %3262

3262:                                             ; preds = %3259
  br label %3263

3263:                                             ; preds = %3262
  br label %3264

3264:                                             ; preds = %3263
  br label %3265

3265:                                             ; preds = %3264
  br label %3266

3266:                                             ; preds = %3265
  br label %3267

3267:                                             ; preds = %3266
  br label %3268

3268:                                             ; preds = %3267
  %3269 = load i32, ptr @test_count, align 4, !tbaa !5
  %3270 = add nsw i32 %3269, 1
  store i32 %3270, ptr @test_count, align 4, !tbaa !5
  %3271 = call i32 @s2n_tls13_derive_secret(ptr noundef %90, i32 noundef 1, i32 noundef 1, ptr noundef %89)
  %3272 = getelementptr inbounds %struct.s2n_result, ptr %96, i32 0, i32 0
  store i32 %3271, ptr %3272, align 4
  %3273 = getelementptr inbounds %struct.s2n_result, ptr %96, i32 0, i32 0
  %3274 = load i32, ptr %3273, align 4
  %3275 = call zeroext i1 @s2n_result_is_error(i32 %3274)
  br i1 %3275, label %3329, label %3276

3276:                                             ; preds = %3268
  br label %3277

3277:                                             ; preds = %3276
  br label %3278

3278:                                             ; preds = %3277
  call void @llvm.lifetime.start.p0(i64 4, ptr %97) #11
  %3279 = call ptr @__errno_location() #12
  %3280 = load i32, ptr %3279, align 4, !tbaa !5
  store i32 %3280, ptr %97, align 4, !tbaa !5
  %3281 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3282 = call i32 @s2n_print_stacktrace(ptr noundef %3281)
  %3283 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3284 = trunc i8 %3283 to i1
  br i1 %3284, label %3285, label %3307

3285:                                             ; preds = %3278
  %3286 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3287 = call i32 @fileno(ptr noundef %3286) #11
  %3288 = call i32 @isatty(i32 noundef %3287) #11
  %3289 = icmp ne i32 %3288, 0
  br i1 %3289, label %3290, label %3307

3290:                                             ; preds = %3285
  %3291 = load i32, ptr %97, align 4, !tbaa !5
  %3292 = call ptr @__errno_location() #12
  store i32 %3291, ptr %3292, align 4, !tbaa !5
  %3293 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3294 = load i32, ptr @test_count, align 4, !tbaa !5
  %3295 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3296 = load i32, ptr %3295, align 4, !tbaa !5
  %3297 = call ptr @s2n_strerror(i32 noundef %3296, ptr noundef @.str.4)
  %3298 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3299 = load i32, ptr %3298, align 4, !tbaa !5
  %3300 = call ptr @s2n_strerror_debug(i32 noundef %3299, ptr noundef @.str.4)
  %3301 = call ptr @__errno_location() #12
  %3302 = load i32, ptr %3301, align 4, !tbaa !5
  %3303 = call ptr @strerror(i32 noundef %3302) #11
  %3304 = call ptr @__errno_location() #12
  %3305 = load i32, ptr %3304, align 4, !tbaa !5
  %3306 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3293, ptr noundef @.str.2, i32 noundef %3294, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 179, ptr noundef %3297, ptr noundef %3300, ptr noundef %3303, i32 noundef %3305) #11
  br label %3324

3307:                                             ; preds = %3285, %3278
  %3308 = load i32, ptr %97, align 4, !tbaa !5
  %3309 = call ptr @__errno_location() #12
  store i32 %3308, ptr %3309, align 4, !tbaa !5
  %3310 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3311 = load i32, ptr @test_count, align 4, !tbaa !5
  %3312 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3313 = load i32, ptr %3312, align 4, !tbaa !5
  %3314 = call ptr @s2n_strerror(i32 noundef %3313, ptr noundef @.str.4)
  %3315 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3316 = load i32, ptr %3315, align 4, !tbaa !5
  %3317 = call ptr @s2n_strerror_debug(i32 noundef %3316, ptr noundef @.str.4)
  %3318 = call ptr @__errno_location() #12
  %3319 = load i32, ptr %3318, align 4, !tbaa !5
  %3320 = call ptr @strerror(i32 noundef %3319) #11
  %3321 = call ptr @__errno_location() #12
  %3322 = load i32, ptr %3321, align 4, !tbaa !5
  %3323 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3310, ptr noundef @.str.5, i32 noundef %3311, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 179, ptr noundef %3314, ptr noundef %3317, ptr noundef %3320, i32 noundef %3322) #11
  br label %3324

3324:                                             ; preds = %3307, %3290
  call void @llvm.lifetime.end.p0(i64 4, ptr %97) #11
  br label %3325

3325:                                             ; preds = %3324
  br label %3326

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

3327:                                             ; No predecessors!
  br label %3328

3328:                                             ; preds = %3327
  br label %3329

3329:                                             ; preds = %3328, %3268
  br label %3330

3330:                                             ; preds = %3329
  br label %3331

3331:                                             ; preds = %3330
  br label %3332

3332:                                             ; preds = %3331
  %3333 = load i32, ptr @test_count, align 4, !tbaa !5
  %3334 = add nsw i32 %3333, 1
  store i32 %3334, ptr @test_count, align 4, !tbaa !5
  %3335 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3336 = load i32, ptr %3335, align 4, !tbaa !5
  %3337 = icmp eq i32 %3336, 402653193
  br i1 %3337, label %3391, label %3338

3338:                                             ; preds = %3332
  br label %3339

3339:                                             ; preds = %3338
  br label %3340

3340:                                             ; preds = %3339
  call void @llvm.lifetime.start.p0(i64 4, ptr %98) #11
  %3341 = call ptr @__errno_location() #12
  %3342 = load i32, ptr %3341, align 4, !tbaa !5
  store i32 %3342, ptr %98, align 4, !tbaa !5
  %3343 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3344 = call i32 @s2n_print_stacktrace(ptr noundef %3343)
  %3345 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3346 = trunc i8 %3345 to i1
  br i1 %3346, label %3347, label %3369

3347:                                             ; preds = %3340
  %3348 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3349 = call i32 @fileno(ptr noundef %3348) #11
  %3350 = call i32 @isatty(i32 noundef %3349) #11
  %3351 = icmp ne i32 %3350, 0
  br i1 %3351, label %3352, label %3369

3352:                                             ; preds = %3347
  %3353 = load i32, ptr %98, align 4, !tbaa !5
  %3354 = call ptr @__errno_location() #12
  store i32 %3353, ptr %3354, align 4, !tbaa !5
  %3355 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3356 = load i32, ptr @test_count, align 4, !tbaa !5
  %3357 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3358 = load i32, ptr %3357, align 4, !tbaa !5
  %3359 = call ptr @s2n_strerror(i32 noundef %3358, ptr noundef @.str.4)
  %3360 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3361 = load i32, ptr %3360, align 4, !tbaa !5
  %3362 = call ptr @s2n_strerror_debug(i32 noundef %3361, ptr noundef @.str.4)
  %3363 = call ptr @__errno_location() #12
  %3364 = load i32, ptr %3363, align 4, !tbaa !5
  %3365 = call ptr @strerror(i32 noundef %3364) #11
  %3366 = call ptr @__errno_location() #12
  %3367 = load i32, ptr %3366, align 4, !tbaa !5
  %3368 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3355, ptr noundef @.str.2, i32 noundef %3356, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 179, ptr noundef %3359, ptr noundef %3362, ptr noundef %3365, i32 noundef %3367) #11
  br label %3386

3369:                                             ; preds = %3347, %3340
  %3370 = load i32, ptr %98, align 4, !tbaa !5
  %3371 = call ptr @__errno_location() #12
  store i32 %3370, ptr %3371, align 4, !tbaa !5
  %3372 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3373 = load i32, ptr @test_count, align 4, !tbaa !5
  %3374 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3375 = load i32, ptr %3374, align 4, !tbaa !5
  %3376 = call ptr @s2n_strerror(i32 noundef %3375, ptr noundef @.str.4)
  %3377 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3378 = load i32, ptr %3377, align 4, !tbaa !5
  %3379 = call ptr @s2n_strerror_debug(i32 noundef %3378, ptr noundef @.str.4)
  %3380 = call ptr @__errno_location() #12
  %3381 = load i32, ptr %3380, align 4, !tbaa !5
  %3382 = call ptr @strerror(i32 noundef %3381) #11
  %3383 = call ptr @__errno_location() #12
  %3384 = load i32, ptr %3383, align 4, !tbaa !5
  %3385 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3372, ptr noundef @.str.5, i32 noundef %3373, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 179, ptr noundef %3376, ptr noundef %3379, ptr noundef %3382, i32 noundef %3384) #11
  br label %3386

3386:                                             ; preds = %3369, %3352
  call void @llvm.lifetime.end.p0(i64 4, ptr %98) #11
  br label %3387

3387:                                             ; preds = %3386
  br label %3388

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

3389:                                             ; No predecessors!
  br label %3390

3390:                                             ; preds = %3389
  br label %3391

3391:                                             ; preds = %3390, %3332
  br label %3392

3392:                                             ; preds = %3391
  br label %3393

3393:                                             ; preds = %3392
  br label %3394

3394:                                             ; preds = %3393
  %3395 = load i32, ptr @test_count, align 4, !tbaa !5
  %3396 = add nsw i32 %3395, 1
  store i32 %3396, ptr @test_count, align 4, !tbaa !5
  %3397 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3398 = load i32, ptr %3397, align 4, !tbaa !5
  %3399 = call ptr @s2n_strerror_debug(i32 noundef %3398, ptr noundef @.str.4)
  %3400 = icmp eq ptr %3399, null
  br i1 %3400, label %3401, label %3454

3401:                                             ; preds = %3394
  br label %3402

3402:                                             ; preds = %3401
  br label %3403

3403:                                             ; preds = %3402
  call void @llvm.lifetime.start.p0(i64 4, ptr %99) #11
  %3404 = call ptr @__errno_location() #12
  %3405 = load i32, ptr %3404, align 4, !tbaa !5
  store i32 %3405, ptr %99, align 4, !tbaa !5
  %3406 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3407 = call i32 @s2n_print_stacktrace(ptr noundef %3406)
  %3408 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3409 = trunc i8 %3408 to i1
  br i1 %3409, label %3410, label %3432

3410:                                             ; preds = %3403
  %3411 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3412 = call i32 @fileno(ptr noundef %3411) #11
  %3413 = call i32 @isatty(i32 noundef %3412) #11
  %3414 = icmp ne i32 %3413, 0
  br i1 %3414, label %3415, label %3432

3415:                                             ; preds = %3410
  %3416 = load i32, ptr %99, align 4, !tbaa !5
  %3417 = call ptr @__errno_location() #12
  store i32 %3416, ptr %3417, align 4, !tbaa !5
  %3418 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3419 = load i32, ptr @test_count, align 4, !tbaa !5
  %3420 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3421 = load i32, ptr %3420, align 4, !tbaa !5
  %3422 = call ptr @s2n_strerror(i32 noundef %3421, ptr noundef @.str.4)
  %3423 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3424 = load i32, ptr %3423, align 4, !tbaa !5
  %3425 = call ptr @s2n_strerror_debug(i32 noundef %3424, ptr noundef @.str.4)
  %3426 = call ptr @__errno_location() #12
  %3427 = load i32, ptr %3426, align 4, !tbaa !5
  %3428 = call ptr @strerror(i32 noundef %3427) #11
  %3429 = call ptr @__errno_location() #12
  %3430 = load i32, ptr %3429, align 4, !tbaa !5
  %3431 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3418, ptr noundef @.str.2, i32 noundef %3419, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 179, ptr noundef %3422, ptr noundef %3425, ptr noundef %3428, i32 noundef %3430) #11
  br label %3449

3432:                                             ; preds = %3410, %3403
  %3433 = load i32, ptr %99, align 4, !tbaa !5
  %3434 = call ptr @__errno_location() #12
  store i32 %3433, ptr %3434, align 4, !tbaa !5
  %3435 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3436 = load i32, ptr @test_count, align 4, !tbaa !5
  %3437 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3438 = load i32, ptr %3437, align 4, !tbaa !5
  %3439 = call ptr @s2n_strerror(i32 noundef %3438, ptr noundef @.str.4)
  %3440 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3441 = load i32, ptr %3440, align 4, !tbaa !5
  %3442 = call ptr @s2n_strerror_debug(i32 noundef %3441, ptr noundef @.str.4)
  %3443 = call ptr @__errno_location() #12
  %3444 = load i32, ptr %3443, align 4, !tbaa !5
  %3445 = call ptr @strerror(i32 noundef %3444) #11
  %3446 = call ptr @__errno_location() #12
  %3447 = load i32, ptr %3446, align 4, !tbaa !5
  %3448 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3435, ptr noundef @.str.5, i32 noundef %3436, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 179, ptr noundef %3439, ptr noundef %3442, ptr noundef %3445, i32 noundef %3447) #11
  br label %3449

3449:                                             ; preds = %3432, %3415
  call void @llvm.lifetime.end.p0(i64 4, ptr %99) #11
  br label %3450

3450:                                             ; preds = %3449
  br label %3451

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

3452:                                             ; No predecessors!
  br label %3453

3453:                                             ; preds = %3452
  br label %3454

3454:                                             ; preds = %3453, %3394
  br label %3455

3455:                                             ; preds = %3454
  br label %3456

3456:                                             ; preds = %3455
  br label %3457

3457:                                             ; preds = %3456
  br label %3458

3458:                                             ; preds = %3457
  br label %3459

3459:                                             ; preds = %3458
  %3460 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %3460, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %3461 = call ptr @__errno_location() #12
  store i32 0, ptr %3461, align 4, !tbaa !5
  br label %3462

3462:                                             ; preds = %3459
  br label %3463

3463:                                             ; preds = %3462
  br label %3464

3464:                                             ; preds = %3463
  br label %3465

3465:                                             ; preds = %3464
  br label %3466

3466:                                             ; preds = %3465
  br label %3467

3467:                                             ; preds = %3466
  br label %3468

3468:                                             ; preds = %3467
  %3469 = load i32, ptr @test_count, align 4, !tbaa !5
  %3470 = add nsw i32 %3469, 1
  store i32 %3470, ptr @test_count, align 4, !tbaa !5
  %3471 = load ptr, ptr %91, align 8, !tbaa !9
  %3472 = call i32 @s2n_tls13_derive_secret(ptr noundef %3471, i32 noundef -1, i32 noundef 1, ptr noundef %89)
  %3473 = getelementptr inbounds %struct.s2n_result, ptr %100, i32 0, i32 0
  store i32 %3472, ptr %3473, align 4
  %3474 = getelementptr inbounds %struct.s2n_result, ptr %100, i32 0, i32 0
  %3475 = load i32, ptr %3474, align 4
  %3476 = call zeroext i1 @s2n_result_is_error(i32 %3475)
  br i1 %3476, label %3530, label %3477

3477:                                             ; preds = %3468
  br label %3478

3478:                                             ; preds = %3477
  br label %3479

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

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

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

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

3525:                                             ; preds = %3508, %3491
  call void @llvm.lifetime.end.p0(i64 4, ptr %101) #11
  br label %3526

3526:                                             ; preds = %3525
  br label %3527

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

3528:                                             ; No predecessors!
  br label %3529

3529:                                             ; preds = %3528
  br label %3530

3530:                                             ; preds = %3529, %3468
  br label %3531

3531:                                             ; preds = %3530
  br label %3532

3532:                                             ; preds = %3531
  br label %3533

3533:                                             ; preds = %3532
  %3534 = load i32, ptr @test_count, align 4, !tbaa !5
  %3535 = add nsw i32 %3534, 1
  store i32 %3535, ptr @test_count, align 4, !tbaa !5
  %3536 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3537 = load i32, ptr %3536, align 4, !tbaa !5
  %3538 = icmp eq i32 %3537, 402653194
  br i1 %3538, label %3592, label %3539

3539:                                             ; preds = %3533
  br label %3540

3540:                                             ; preds = %3539
  br label %3541

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

3548:                                             ; preds = %3541
  %3549 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3550 = call i32 @fileno(ptr noundef %3549) #11
  %3551 = call i32 @isatty(i32 noundef %3550) #11
  %3552 = icmp ne i32 %3551, 0
  br i1 %3552, label %3553, label %3570

3553:                                             ; preds = %3548
  %3554 = load i32, ptr %102, align 4, !tbaa !5
  %3555 = call ptr @__errno_location() #12
  store i32 %3554, ptr %3555, align 4, !tbaa !5
  %3556 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3557 = load i32, ptr @test_count, align 4, !tbaa !5
  %3558 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3559 = load i32, ptr %3558, align 4, !tbaa !5
  %3560 = call ptr @s2n_strerror(i32 noundef %3559, ptr noundef @.str.4)
  %3561 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3562 = load i32, ptr %3561, align 4, !tbaa !5
  %3563 = call ptr @s2n_strerror_debug(i32 noundef %3562, ptr noundef @.str.4)
  %3564 = call ptr @__errno_location() #12
  %3565 = load i32, ptr %3564, align 4, !tbaa !5
  %3566 = call ptr @strerror(i32 noundef %3565) #11
  %3567 = call ptr @__errno_location() #12
  %3568 = load i32, ptr %3567, align 4, !tbaa !5
  %3569 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3556, ptr noundef @.str.2, i32 noundef %3557, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 180, ptr noundef %3560, ptr noundef %3563, ptr noundef %3566, i32 noundef %3568) #11
  br label %3587

3570:                                             ; preds = %3548, %3541
  %3571 = load i32, ptr %102, align 4, !tbaa !5
  %3572 = call ptr @__errno_location() #12
  store i32 %3571, ptr %3572, align 4, !tbaa !5
  %3573 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3574 = load i32, ptr @test_count, align 4, !tbaa !5
  %3575 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3576 = load i32, ptr %3575, align 4, !tbaa !5
  %3577 = call ptr @s2n_strerror(i32 noundef %3576, ptr noundef @.str.4)
  %3578 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3579 = load i32, ptr %3578, align 4, !tbaa !5
  %3580 = call ptr @s2n_strerror_debug(i32 noundef %3579, ptr noundef @.str.4)
  %3581 = call ptr @__errno_location() #12
  %3582 = load i32, ptr %3581, align 4, !tbaa !5
  %3583 = call ptr @strerror(i32 noundef %3582) #11
  %3584 = call ptr @__errno_location() #12
  %3585 = load i32, ptr %3584, align 4, !tbaa !5
  %3586 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3573, ptr noundef @.str.5, i32 noundef %3574, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 180, ptr noundef %3577, ptr noundef %3580, ptr noundef %3583, i32 noundef %3585) #11
  br label %3587

3587:                                             ; preds = %3570, %3553
  call void @llvm.lifetime.end.p0(i64 4, ptr %102) #11
  br label %3588

3588:                                             ; preds = %3587
  br label %3589

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

3590:                                             ; No predecessors!
  br label %3591

3591:                                             ; preds = %3590
  br label %3592

3592:                                             ; preds = %3591, %3533
  br label %3593

3593:                                             ; preds = %3592
  br label %3594

3594:                                             ; preds = %3593
  br label %3595

3595:                                             ; preds = %3594
  %3596 = load i32, ptr @test_count, align 4, !tbaa !5
  %3597 = add nsw i32 %3596, 1
  store i32 %3597, ptr @test_count, align 4, !tbaa !5
  %3598 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3599 = load i32, ptr %3598, align 4, !tbaa !5
  %3600 = call ptr @s2n_strerror_debug(i32 noundef %3599, ptr noundef @.str.4)
  %3601 = icmp eq ptr %3600, null
  br i1 %3601, label %3602, label %3655

3602:                                             ; preds = %3595
  br label %3603

3603:                                             ; preds = %3602
  br label %3604

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

3611:                                             ; preds = %3604
  %3612 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3613 = call i32 @fileno(ptr noundef %3612) #11
  %3614 = call i32 @isatty(i32 noundef %3613) #11
  %3615 = icmp ne i32 %3614, 0
  br i1 %3615, label %3616, label %3633

3616:                                             ; preds = %3611
  %3617 = load i32, ptr %103, align 4, !tbaa !5
  %3618 = call ptr @__errno_location() #12
  store i32 %3617, ptr %3618, align 4, !tbaa !5
  %3619 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3620 = load i32, ptr @test_count, align 4, !tbaa !5
  %3621 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3622 = load i32, ptr %3621, align 4, !tbaa !5
  %3623 = call ptr @s2n_strerror(i32 noundef %3622, ptr noundef @.str.4)
  %3624 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3625 = load i32, ptr %3624, align 4, !tbaa !5
  %3626 = call ptr @s2n_strerror_debug(i32 noundef %3625, ptr noundef @.str.4)
  %3627 = call ptr @__errno_location() #12
  %3628 = load i32, ptr %3627, align 4, !tbaa !5
  %3629 = call ptr @strerror(i32 noundef %3628) #11
  %3630 = call ptr @__errno_location() #12
  %3631 = load i32, ptr %3630, align 4, !tbaa !5
  %3632 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3619, ptr noundef @.str.2, i32 noundef %3620, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 180, ptr noundef %3623, ptr noundef %3626, ptr noundef %3629, i32 noundef %3631) #11
  br label %3650

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

3650:                                             ; preds = %3633, %3616
  call void @llvm.lifetime.end.p0(i64 4, ptr %103) #11
  br label %3651

3651:                                             ; preds = %3650
  br label %3652

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

3653:                                             ; No predecessors!
  br label %3654

3654:                                             ; preds = %3653
  br label %3655

3655:                                             ; preds = %3654, %3595
  br label %3656

3656:                                             ; preds = %3655
  br label %3657

3657:                                             ; preds = %3656
  br label %3658

3658:                                             ; preds = %3657
  br label %3659

3659:                                             ; preds = %3658
  br label %3660

3660:                                             ; preds = %3659
  %3661 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %3661, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %3662 = call ptr @__errno_location() #12
  store i32 0, ptr %3662, align 4, !tbaa !5
  br label %3663

3663:                                             ; preds = %3660
  br label %3664

3664:                                             ; preds = %3663
  br label %3665

3665:                                             ; preds = %3664
  br label %3666

3666:                                             ; preds = %3665
  br label %3667

3667:                                             ; preds = %3666
  br label %3668

3668:                                             ; preds = %3667
  br label %3669

3669:                                             ; preds = %3668
  %3670 = load i32, ptr @test_count, align 4, !tbaa !5
  %3671 = add nsw i32 %3670, 1
  store i32 %3671, ptr @test_count, align 4, !tbaa !5
  %3672 = load ptr, ptr %91, align 8, !tbaa !9
  %3673 = call i32 @s2n_tls13_derive_secret(ptr noundef %3672, i32 noundef 255, i32 noundef 1, ptr noundef %89)
  %3674 = getelementptr inbounds %struct.s2n_result, ptr %104, i32 0, i32 0
  store i32 %3673, ptr %3674, align 4
  %3675 = getelementptr inbounds %struct.s2n_result, ptr %104, i32 0, i32 0
  %3676 = load i32, ptr %3675, align 4
  %3677 = call zeroext i1 @s2n_result_is_error(i32 %3676)
  br i1 %3677, label %3731, label %3678

3678:                                             ; preds = %3669
  br label %3679

3679:                                             ; preds = %3678
  br label %3680

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

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

3692:                                             ; preds = %3687
  %3693 = load i32, ptr %105, align 4, !tbaa !5
  %3694 = call ptr @__errno_location() #12
  store i32 %3693, ptr %3694, align 4, !tbaa !5
  %3695 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3696 = load i32, ptr @test_count, align 4, !tbaa !5
  %3697 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3698 = load i32, ptr %3697, align 4, !tbaa !5
  %3699 = call ptr @s2n_strerror(i32 noundef %3698, ptr noundef @.str.4)
  %3700 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3701 = load i32, ptr %3700, align 4, !tbaa !5
  %3702 = call ptr @s2n_strerror_debug(i32 noundef %3701, ptr noundef @.str.4)
  %3703 = call ptr @__errno_location() #12
  %3704 = load i32, ptr %3703, align 4, !tbaa !5
  %3705 = call ptr @strerror(i32 noundef %3704) #11
  %3706 = call ptr @__errno_location() #12
  %3707 = load i32, ptr %3706, align 4, !tbaa !5
  %3708 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3695, ptr noundef @.str.2, i32 noundef %3696, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 181, ptr noundef %3699, ptr noundef %3702, ptr noundef %3705, i32 noundef %3707) #11
  br label %3726

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

3726:                                             ; preds = %3709, %3692
  call void @llvm.lifetime.end.p0(i64 4, ptr %105) #11
  br label %3727

3727:                                             ; preds = %3726
  br label %3728

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

3729:                                             ; No predecessors!
  br label %3730

3730:                                             ; preds = %3729
  br label %3731

3731:                                             ; preds = %3730, %3669
  br label %3732

3732:                                             ; preds = %3731
  br label %3733

3733:                                             ; preds = %3732
  br label %3734

3734:                                             ; preds = %3733
  %3735 = load i32, ptr @test_count, align 4, !tbaa !5
  %3736 = add nsw i32 %3735, 1
  store i32 %3736, 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 = icmp eq i32 %3738, 402653194
  br i1 %3739, label %3793, label %3740

3740:                                             ; preds = %3734
  br label %3741

3741:                                             ; preds = %3740
  br label %3742

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

3749:                                             ; preds = %3742
  %3750 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3751 = call i32 @fileno(ptr noundef %3750) #11
  %3752 = call i32 @isatty(i32 noundef %3751) #11
  %3753 = icmp ne i32 %3752, 0
  br i1 %3753, label %3754, label %3771

3754:                                             ; preds = %3749
  %3755 = load i32, ptr %106, align 4, !tbaa !5
  %3756 = call ptr @__errno_location() #12
  store i32 %3755, ptr %3756, align 4, !tbaa !5
  %3757 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3758 = load i32, ptr @test_count, align 4, !tbaa !5
  %3759 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3760 = load i32, ptr %3759, align 4, !tbaa !5
  %3761 = call ptr @s2n_strerror(i32 noundef %3760, ptr noundef @.str.4)
  %3762 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3763 = load i32, ptr %3762, align 4, !tbaa !5
  %3764 = call ptr @s2n_strerror_debug(i32 noundef %3763, ptr noundef @.str.4)
  %3765 = call ptr @__errno_location() #12
  %3766 = load i32, ptr %3765, align 4, !tbaa !5
  %3767 = call ptr @strerror(i32 noundef %3766) #11
  %3768 = call ptr @__errno_location() #12
  %3769 = load i32, ptr %3768, align 4, !tbaa !5
  %3770 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3757, ptr noundef @.str.2, i32 noundef %3758, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 181, ptr noundef %3761, ptr noundef %3764, ptr noundef %3767, i32 noundef %3769) #11
  br label %3788

3771:                                             ; preds = %3749, %3742
  %3772 = load i32, ptr %106, align 4, !tbaa !5
  %3773 = call ptr @__errno_location() #12
  store i32 %3772, ptr %3773, align 4, !tbaa !5
  %3774 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3775 = load i32, ptr @test_count, align 4, !tbaa !5
  %3776 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3777 = load i32, ptr %3776, align 4, !tbaa !5
  %3778 = call ptr @s2n_strerror(i32 noundef %3777, ptr noundef @.str.4)
  %3779 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3780 = load i32, ptr %3779, align 4, !tbaa !5
  %3781 = call ptr @s2n_strerror_debug(i32 noundef %3780, ptr noundef @.str.4)
  %3782 = call ptr @__errno_location() #12
  %3783 = load i32, ptr %3782, align 4, !tbaa !5
  %3784 = call ptr @strerror(i32 noundef %3783) #11
  %3785 = call ptr @__errno_location() #12
  %3786 = load i32, ptr %3785, align 4, !tbaa !5
  %3787 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3774, ptr noundef @.str.5, i32 noundef %3775, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 181, ptr noundef %3778, ptr noundef %3781, ptr noundef %3784, i32 noundef %3786) #11
  br label %3788

3788:                                             ; preds = %3771, %3754
  call void @llvm.lifetime.end.p0(i64 4, ptr %106) #11
  br label %3789

3789:                                             ; preds = %3788
  br label %3790

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

3791:                                             ; No predecessors!
  br label %3792

3792:                                             ; preds = %3791
  br label %3793

3793:                                             ; preds = %3792, %3734
  br label %3794

3794:                                             ; preds = %3793
  br label %3795

3795:                                             ; preds = %3794
  br label %3796

3796:                                             ; preds = %3795
  %3797 = load i32, ptr @test_count, align 4, !tbaa !5
  %3798 = add nsw i32 %3797, 1
  store i32 %3798, ptr @test_count, align 4, !tbaa !5
  %3799 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3800 = load i32, ptr %3799, align 4, !tbaa !5
  %3801 = call ptr @s2n_strerror_debug(i32 noundef %3800, ptr noundef @.str.4)
  %3802 = icmp eq ptr %3801, null
  br i1 %3802, label %3803, label %3856

3803:                                             ; preds = %3796
  br label %3804

3804:                                             ; preds = %3803
  br label %3805

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

3812:                                             ; preds = %3805
  %3813 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3814 = call i32 @fileno(ptr noundef %3813) #11
  %3815 = call i32 @isatty(i32 noundef %3814) #11
  %3816 = icmp ne i32 %3815, 0
  br i1 %3816, label %3817, label %3834

3817:                                             ; preds = %3812
  %3818 = load i32, ptr %107, align 4, !tbaa !5
  %3819 = call ptr @__errno_location() #12
  store i32 %3818, ptr %3819, align 4, !tbaa !5
  %3820 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3821 = load i32, ptr @test_count, align 4, !tbaa !5
  %3822 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3823 = load i32, ptr %3822, align 4, !tbaa !5
  %3824 = call ptr @s2n_strerror(i32 noundef %3823, ptr noundef @.str.4)
  %3825 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3826 = load i32, ptr %3825, align 4, !tbaa !5
  %3827 = call ptr @s2n_strerror_debug(i32 noundef %3826, ptr noundef @.str.4)
  %3828 = call ptr @__errno_location() #12
  %3829 = load i32, ptr %3828, align 4, !tbaa !5
  %3830 = call ptr @strerror(i32 noundef %3829) #11
  %3831 = call ptr @__errno_location() #12
  %3832 = load i32, ptr %3831, align 4, !tbaa !5
  %3833 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3820, ptr noundef @.str.2, i32 noundef %3821, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 181, ptr noundef %3824, ptr noundef %3827, ptr noundef %3830, i32 noundef %3832) #11
  br label %3851

3834:                                             ; preds = %3812, %3805
  %3835 = load i32, ptr %107, align 4, !tbaa !5
  %3836 = call ptr @__errno_location() #12
  store i32 %3835, ptr %3836, align 4, !tbaa !5
  %3837 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3838 = load i32, ptr @test_count, align 4, !tbaa !5
  %3839 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3840 = load i32, ptr %3839, align 4, !tbaa !5
  %3841 = call ptr @s2n_strerror(i32 noundef %3840, ptr noundef @.str.4)
  %3842 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3843 = load i32, ptr %3842, align 4, !tbaa !5
  %3844 = call ptr @s2n_strerror_debug(i32 noundef %3843, ptr noundef @.str.4)
  %3845 = call ptr @__errno_location() #12
  %3846 = load i32, ptr %3845, align 4, !tbaa !5
  %3847 = call ptr @strerror(i32 noundef %3846) #11
  %3848 = call ptr @__errno_location() #12
  %3849 = load i32, ptr %3848, align 4, !tbaa !5
  %3850 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3837, ptr noundef @.str.5, i32 noundef %3838, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 181, ptr noundef %3841, ptr noundef %3844, ptr noundef %3847, i32 noundef %3849) #11
  br label %3851

3851:                                             ; preds = %3834, %3817
  call void @llvm.lifetime.end.p0(i64 4, ptr %107) #11
  br label %3852

3852:                                             ; preds = %3851
  br label %3853

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

3854:                                             ; No predecessors!
  br label %3855

3855:                                             ; preds = %3854
  br label %3856

3856:                                             ; preds = %3855, %3796
  br label %3857

3857:                                             ; preds = %3856
  br label %3858

3858:                                             ; preds = %3857
  br label %3859

3859:                                             ; preds = %3858
  br label %3860

3860:                                             ; preds = %3859
  br label %3861

3861:                                             ; preds = %3860
  %3862 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %3862, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %3863 = call ptr @__errno_location() #12
  store i32 0, ptr %3863, align 4, !tbaa !5
  br label %3864

3864:                                             ; preds = %3861
  br label %3865

3865:                                             ; preds = %3864
  br label %3866

3866:                                             ; preds = %3865
  br label %3867

3867:                                             ; preds = %3866
  br label %3868

3868:                                             ; preds = %3867
  br label %3869

3869:                                             ; preds = %3868
  br label %3870

3870:                                             ; preds = %3869
  %3871 = load i32, ptr @test_count, align 4, !tbaa !5
  %3872 = add nsw i32 %3871, 1
  store i32 %3872, ptr @test_count, align 4, !tbaa !5
  %3873 = load ptr, ptr %91, align 8, !tbaa !9
  %3874 = call i32 @s2n_tls13_derive_secret(ptr noundef %3873, i32 noundef 1, i32 noundef 1, ptr noundef null)
  %3875 = getelementptr inbounds %struct.s2n_result, ptr %108, i32 0, i32 0
  store i32 %3874, ptr %3875, align 4
  %3876 = getelementptr inbounds %struct.s2n_result, ptr %108, i32 0, i32 0
  %3877 = load i32, ptr %3876, align 4
  %3878 = call zeroext i1 @s2n_result_is_error(i32 %3877)
  br i1 %3878, label %3932, label %3879

3879:                                             ; preds = %3870
  br label %3880

3880:                                             ; preds = %3879
  br label %3881

3881:                                             ; preds = %3880
  call void @llvm.lifetime.start.p0(i64 4, ptr %109) #11
  %3882 = call ptr @__errno_location() #12
  %3883 = load i32, ptr %3882, align 4, !tbaa !5
  store i32 %3883, ptr %109, align 4, !tbaa !5
  %3884 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3885 = call i32 @s2n_print_stacktrace(ptr noundef %3884)
  %3886 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3887 = trunc i8 %3886 to i1
  br i1 %3887, label %3888, label %3910

3888:                                             ; preds = %3881
  %3889 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3890 = call i32 @fileno(ptr noundef %3889) #11
  %3891 = call i32 @isatty(i32 noundef %3890) #11
  %3892 = icmp ne i32 %3891, 0
  br i1 %3892, label %3893, label %3910

3893:                                             ; preds = %3888
  %3894 = load i32, ptr %109, align 4, !tbaa !5
  %3895 = call ptr @__errno_location() #12
  store i32 %3894, ptr %3895, align 4, !tbaa !5
  %3896 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3897 = load i32, ptr @test_count, align 4, !tbaa !5
  %3898 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3899 = load i32, ptr %3898, align 4, !tbaa !5
  %3900 = call ptr @s2n_strerror(i32 noundef %3899, ptr noundef @.str.4)
  %3901 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3902 = load i32, ptr %3901, align 4, !tbaa !5
  %3903 = call ptr @s2n_strerror_debug(i32 noundef %3902, ptr noundef @.str.4)
  %3904 = call ptr @__errno_location() #12
  %3905 = load i32, ptr %3904, align 4, !tbaa !5
  %3906 = call ptr @strerror(i32 noundef %3905) #11
  %3907 = call ptr @__errno_location() #12
  %3908 = load i32, ptr %3907, align 4, !tbaa !5
  %3909 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3896, ptr noundef @.str.2, i32 noundef %3897, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 182, ptr noundef %3900, ptr noundef %3903, ptr noundef %3906, i32 noundef %3908) #11
  br label %3927

3910:                                             ; preds = %3888, %3881
  %3911 = load i32, ptr %109, align 4, !tbaa !5
  %3912 = call ptr @__errno_location() #12
  store i32 %3911, ptr %3912, align 4, !tbaa !5
  %3913 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3914 = load i32, ptr @test_count, align 4, !tbaa !5
  %3915 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3916 = load i32, ptr %3915, align 4, !tbaa !5
  %3917 = call ptr @s2n_strerror(i32 noundef %3916, ptr noundef @.str.4)
  %3918 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3919 = load i32, ptr %3918, align 4, !tbaa !5
  %3920 = call ptr @s2n_strerror_debug(i32 noundef %3919, ptr noundef @.str.4)
  %3921 = call ptr @__errno_location() #12
  %3922 = load i32, ptr %3921, align 4, !tbaa !5
  %3923 = call ptr @strerror(i32 noundef %3922) #11
  %3924 = call ptr @__errno_location() #12
  %3925 = load i32, ptr %3924, align 4, !tbaa !5
  %3926 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3913, ptr noundef @.str.5, i32 noundef %3914, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 182, ptr noundef %3917, ptr noundef %3920, ptr noundef %3923, i32 noundef %3925) #11
  br label %3927

3927:                                             ; preds = %3910, %3893
  call void @llvm.lifetime.end.p0(i64 4, ptr %109) #11
  br label %3928

3928:                                             ; preds = %3927
  br label %3929

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

3930:                                             ; No predecessors!
  br label %3931

3931:                                             ; preds = %3930
  br label %3932

3932:                                             ; preds = %3931, %3870
  br label %3933

3933:                                             ; preds = %3932
  br label %3934

3934:                                             ; preds = %3933
  br label %3935

3935:                                             ; preds = %3934
  %3936 = load i32, ptr @test_count, align 4, !tbaa !5
  %3937 = add nsw i32 %3936, 1
  store i32 %3937, ptr @test_count, align 4, !tbaa !5
  %3938 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3939 = load i32, ptr %3938, align 4, !tbaa !5
  %3940 = icmp eq i32 %3939, 402653193
  br i1 %3940, label %3994, label %3941

3941:                                             ; preds = %3935
  br label %3942

3942:                                             ; preds = %3941
  br label %3943

3943:                                             ; preds = %3942
  call void @llvm.lifetime.start.p0(i64 4, ptr %110) #11
  %3944 = call ptr @__errno_location() #12
  %3945 = load i32, ptr %3944, align 4, !tbaa !5
  store i32 %3945, ptr %110, align 4, !tbaa !5
  %3946 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3947 = call i32 @s2n_print_stacktrace(ptr noundef %3946)
  %3948 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3949 = trunc i8 %3948 to i1
  br i1 %3949, label %3950, label %3972

3950:                                             ; preds = %3943
  %3951 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3952 = call i32 @fileno(ptr noundef %3951) #11
  %3953 = call i32 @isatty(i32 noundef %3952) #11
  %3954 = icmp ne i32 %3953, 0
  br i1 %3954, label %3955, label %3972

3955:                                             ; preds = %3950
  %3956 = load i32, ptr %110, align 4, !tbaa !5
  %3957 = call ptr @__errno_location() #12
  store i32 %3956, ptr %3957, align 4, !tbaa !5
  %3958 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3959 = load i32, ptr @test_count, align 4, !tbaa !5
  %3960 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3961 = load i32, ptr %3960, align 4, !tbaa !5
  %3962 = call ptr @s2n_strerror(i32 noundef %3961, ptr noundef @.str.4)
  %3963 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3964 = load i32, ptr %3963, align 4, !tbaa !5
  %3965 = call ptr @s2n_strerror_debug(i32 noundef %3964, ptr noundef @.str.4)
  %3966 = call ptr @__errno_location() #12
  %3967 = load i32, ptr %3966, align 4, !tbaa !5
  %3968 = call ptr @strerror(i32 noundef %3967) #11
  %3969 = call ptr @__errno_location() #12
  %3970 = load i32, ptr %3969, align 4, !tbaa !5
  %3971 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3958, ptr noundef @.str.2, i32 noundef %3959, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 182, ptr noundef %3962, ptr noundef %3965, ptr noundef %3968, i32 noundef %3970) #11
  br label %3989

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

3989:                                             ; preds = %3972, %3955
  call void @llvm.lifetime.end.p0(i64 4, ptr %110) #11
  br label %3990

3990:                                             ; preds = %3989
  br label %3991

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

3992:                                             ; No predecessors!
  br label %3993

3993:                                             ; preds = %3992
  br label %3994

3994:                                             ; preds = %3993, %3935
  br label %3995

3995:                                             ; preds = %3994
  br label %3996

3996:                                             ; preds = %3995
  br label %3997

3997:                                             ; preds = %3996
  %3998 = load i32, ptr @test_count, align 4, !tbaa !5
  %3999 = add nsw i32 %3998, 1
  store i32 %3999, ptr @test_count, align 4, !tbaa !5
  %4000 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4001 = load i32, ptr %4000, align 4, !tbaa !5
  %4002 = call ptr @s2n_strerror_debug(i32 noundef %4001, ptr noundef @.str.4)
  %4003 = icmp eq ptr %4002, null
  br i1 %4003, label %4004, label %4057

4004:                                             ; preds = %3997
  br label %4005

4005:                                             ; preds = %4004
  br label %4006

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

4013:                                             ; preds = %4006
  %4014 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4015 = call i32 @fileno(ptr noundef %4014) #11
  %4016 = call i32 @isatty(i32 noundef %4015) #11
  %4017 = icmp ne i32 %4016, 0
  br i1 %4017, label %4018, label %4035

4018:                                             ; preds = %4013
  %4019 = load i32, ptr %111, align 4, !tbaa !5
  %4020 = call ptr @__errno_location() #12
  store i32 %4019, ptr %4020, align 4, !tbaa !5
  %4021 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4022 = load i32, ptr @test_count, align 4, !tbaa !5
  %4023 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4024 = load i32, ptr %4023, align 4, !tbaa !5
  %4025 = call ptr @s2n_strerror(i32 noundef %4024, ptr noundef @.str.4)
  %4026 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4027 = load i32, ptr %4026, align 4, !tbaa !5
  %4028 = call ptr @s2n_strerror_debug(i32 noundef %4027, ptr noundef @.str.4)
  %4029 = call ptr @__errno_location() #12
  %4030 = load i32, ptr %4029, align 4, !tbaa !5
  %4031 = call ptr @strerror(i32 noundef %4030) #11
  %4032 = call ptr @__errno_location() #12
  %4033 = load i32, ptr %4032, align 4, !tbaa !5
  %4034 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4021, ptr noundef @.str.2, i32 noundef %4022, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 182, ptr noundef %4025, ptr noundef %4028, ptr noundef %4031, i32 noundef %4033) #11
  br label %4052

4035:                                             ; preds = %4013, %4006
  %4036 = load i32, ptr %111, align 4, !tbaa !5
  %4037 = call ptr @__errno_location() #12
  store i32 %4036, ptr %4037, align 4, !tbaa !5
  %4038 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4039 = load i32, ptr @test_count, align 4, !tbaa !5
  %4040 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4041 = load i32, ptr %4040, align 4, !tbaa !5
  %4042 = call ptr @s2n_strerror(i32 noundef %4041, ptr noundef @.str.4)
  %4043 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4044 = load i32, ptr %4043, align 4, !tbaa !5
  %4045 = call ptr @s2n_strerror_debug(i32 noundef %4044, ptr noundef @.str.4)
  %4046 = call ptr @__errno_location() #12
  %4047 = load i32, ptr %4046, align 4, !tbaa !5
  %4048 = call ptr @strerror(i32 noundef %4047) #11
  %4049 = call ptr @__errno_location() #12
  %4050 = load i32, ptr %4049, align 4, !tbaa !5
  %4051 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4038, ptr noundef @.str.5, i32 noundef %4039, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 182, ptr noundef %4042, ptr noundef %4045, ptr noundef %4048, i32 noundef %4050) #11
  br label %4052

4052:                                             ; preds = %4035, %4018
  call void @llvm.lifetime.end.p0(i64 4, ptr %111) #11
  br label %4053

4053:                                             ; preds = %4052
  br label %4054

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

4055:                                             ; No predecessors!
  br label %4056

4056:                                             ; preds = %4055
  br label %4057

4057:                                             ; preds = %4056, %3997
  br label %4058

4058:                                             ; preds = %4057
  br label %4059

4059:                                             ; preds = %4058
  br label %4060

4060:                                             ; preds = %4059
  br label %4061

4061:                                             ; preds = %4060
  br label %4062

4062:                                             ; preds = %4061
  %4063 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %4063, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %4064 = call ptr @__errno_location() #12
  store i32 0, ptr %4064, align 4, !tbaa !5
  br label %4065

4065:                                             ; preds = %4062
  br label %4066

4066:                                             ; preds = %4065
  br label %4067

4067:                                             ; preds = %4066
  br label %4068

4068:                                             ; preds = %4067
  %4069 = call i32 @s2n_connection_ptr_free(ptr noundef %91)
  %4070 = getelementptr inbounds %struct.s2n_result, ptr %112, i32 0, i32 0
  store i32 %4069, ptr %4070, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %91) #11
  call void @llvm.lifetime.end.p0(i64 4184, ptr %90) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %89) #11
  call void @llvm.lifetime.start.p0(i64 48, ptr %113) #11
  call void @llvm.memset.p0.i64(ptr align 16 %113, i8 0, i64 48, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr %114) #11
  call void @llvm.memset.p0.i64(ptr align 8 %114, i8 0, i64 24, i1 false)
  br label %4071

4071:                                             ; preds = %4068
  %4072 = load i32, ptr @test_count, align 4, !tbaa !5
  %4073 = add nsw i32 %4072, 1
  store i32 %4073, ptr @test_count, align 4, !tbaa !5
  %4074 = getelementptr inbounds [48 x i8], ptr %113, i64 0, i64 0
  %4075 = call i32 @s2n_blob_init(ptr noundef %114, ptr noundef %4074, i32 noundef 48)
  %4076 = icmp eq i32 %4075, -1
  br i1 %4076, label %4077, label %4130

4077:                                             ; preds = %4071
  br label %4078

4078:                                             ; preds = %4077
  br label %4079

4079:                                             ; preds = %4078
  call void @llvm.lifetime.start.p0(i64 4, ptr %115) #11
  %4080 = call ptr @__errno_location() #12
  %4081 = load i32, ptr %4080, align 4, !tbaa !5
  store i32 %4081, ptr %115, align 4, !tbaa !5
  %4082 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4083 = call i32 @s2n_print_stacktrace(ptr noundef %4082)
  %4084 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4085 = trunc i8 %4084 to i1
  br i1 %4085, label %4086, label %4108

4086:                                             ; preds = %4079
  %4087 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4088 = call i32 @fileno(ptr noundef %4087) #11
  %4089 = call i32 @isatty(i32 noundef %4088) #11
  %4090 = icmp ne i32 %4089, 0
  br i1 %4090, label %4091, label %4108

4091:                                             ; preds = %4086
  %4092 = load i32, ptr %115, align 4, !tbaa !5
  %4093 = call ptr @__errno_location() #12
  store i32 %4092, ptr %4093, align 4, !tbaa !5
  %4094 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4095 = load i32, ptr @test_count, align 4, !tbaa !5
  %4096 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4097 = load i32, ptr %4096, align 4, !tbaa !5
  %4098 = call ptr @s2n_strerror(i32 noundef %4097, ptr noundef @.str.4)
  %4099 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4100 = load i32, ptr %4099, align 4, !tbaa !5
  %4101 = call ptr @s2n_strerror_debug(i32 noundef %4100, ptr noundef @.str.4)
  %4102 = call ptr @__errno_location() #12
  %4103 = load i32, ptr %4102, align 4, !tbaa !5
  %4104 = call ptr @strerror(i32 noundef %4103) #11
  %4105 = call ptr @__errno_location() #12
  %4106 = load i32, ptr %4105, align 4, !tbaa !5
  %4107 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4094, ptr noundef @.str.2, i32 noundef %4095, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 189, ptr noundef %4098, ptr noundef %4101, ptr noundef %4104, i32 noundef %4106) #11
  br label %4125

4108:                                             ; preds = %4086, %4079
  %4109 = load i32, ptr %115, align 4, !tbaa !5
  %4110 = call ptr @__errno_location() #12
  store i32 %4109, ptr %4110, align 4, !tbaa !5
  %4111 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4112 = load i32, ptr @test_count, align 4, !tbaa !5
  %4113 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4114 = load i32, ptr %4113, align 4, !tbaa !5
  %4115 = call ptr @s2n_strerror(i32 noundef %4114, ptr noundef @.str.4)
  %4116 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4117 = load i32, ptr %4116, align 4, !tbaa !5
  %4118 = call ptr @s2n_strerror_debug(i32 noundef %4117, ptr noundef @.str.4)
  %4119 = call ptr @__errno_location() #12
  %4120 = load i32, ptr %4119, align 4, !tbaa !5
  %4121 = call ptr @strerror(i32 noundef %4120) #11
  %4122 = call ptr @__errno_location() #12
  %4123 = load i32, ptr %4122, align 4, !tbaa !5
  %4124 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4111, ptr noundef @.str.5, i32 noundef %4112, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 189, ptr noundef %4115, ptr noundef %4118, ptr noundef %4121, i32 noundef %4123) #11
  br label %4125

4125:                                             ; preds = %4108, %4091
  call void @llvm.lifetime.end.p0(i64 4, ptr %115) #11
  br label %4126

4126:                                             ; preds = %4125
  br label %4127

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

4128:                                             ; No predecessors!
  br label %4129

4129:                                             ; preds = %4128
  br label %4130

4130:                                             ; preds = %4129, %4071
  br label %4131

4131:                                             ; preds = %4130
  br label %4132

4132:                                             ; preds = %4131
  call void @llvm.lifetime.start.p0(i64 8, ptr %116) #11
  %4133 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %4133, ptr %116, align 8, !tbaa !9
  %4134 = load ptr, ptr %116, align 8, !tbaa !9
  %4135 = getelementptr inbounds %struct.s2n_connection, ptr %4134, i32 0, i32 27
  %4136 = load ptr, ptr %4135, align 8, !tbaa !39
  %4137 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %4136, i32 0, i32 0
  store ptr @s2n_tls13_aes_256_gcm_sha384, ptr %4137, align 8, !tbaa !64
  %4138 = load ptr, ptr %116, align 8, !tbaa !9
  %4139 = getelementptr inbounds %struct.s2n_connection, ptr %4138, i32 0, i32 28
  %4140 = getelementptr inbounds %struct.s2n_secrets, ptr %4139, i32 0, i32 1
  store i32 0, ptr %4140, align 4, !tbaa !69
  br label %4141

4141:                                             ; preds = %4132
  %4142 = load i32, ptr @test_count, align 4, !tbaa !5
  %4143 = add nsw i32 %4142, 1
  store i32 %4143, ptr @test_count, align 4, !tbaa !5
  %4144 = load ptr, ptr %116, align 8, !tbaa !9
  %4145 = call i32 @s2n_tls13_derive_secret(ptr noundef %4144, i32 noundef 1, i32 noundef 0, ptr noundef %114)
  %4146 = getelementptr inbounds %struct.s2n_result, ptr %117, i32 0, i32 0
  store i32 %4145, ptr %4146, align 4
  %4147 = getelementptr inbounds %struct.s2n_result, ptr %117, i32 0, i32 0
  %4148 = load i32, ptr %4147, align 4
  %4149 = call zeroext i1 @s2n_result_is_ok(i32 %4148)
  br i1 %4149, label %4203, label %4150

4150:                                             ; preds = %4141
  br label %4151

4151:                                             ; preds = %4150
  br label %4152

4152:                                             ; preds = %4151
  call void @llvm.lifetime.start.p0(i64 4, ptr %118) #11
  %4153 = call ptr @__errno_location() #12
  %4154 = load i32, ptr %4153, align 4, !tbaa !5
  store i32 %4154, ptr %118, align 4, !tbaa !5
  %4155 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4156 = call i32 @s2n_print_stacktrace(ptr noundef %4155)
  %4157 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4158 = trunc i8 %4157 to i1
  br i1 %4158, label %4159, label %4181

4159:                                             ; preds = %4152
  %4160 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4161 = call i32 @fileno(ptr noundef %4160) #11
  %4162 = call i32 @isatty(i32 noundef %4161) #11
  %4163 = icmp ne i32 %4162, 0
  br i1 %4163, label %4164, label %4181

4164:                                             ; preds = %4159
  %4165 = load i32, ptr %118, align 4, !tbaa !5
  %4166 = call ptr @__errno_location() #12
  store i32 %4165, ptr %4166, align 4, !tbaa !5
  %4167 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4168 = load i32, ptr @test_count, align 4, !tbaa !5
  %4169 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4170 = load i32, ptr %4169, align 4, !tbaa !5
  %4171 = call ptr @s2n_strerror(i32 noundef %4170, ptr noundef @.str.4)
  %4172 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4173 = load i32, ptr %4172, align 4, !tbaa !5
  %4174 = call ptr @s2n_strerror_debug(i32 noundef %4173, ptr noundef @.str.4)
  %4175 = call ptr @__errno_location() #12
  %4176 = load i32, ptr %4175, align 4, !tbaa !5
  %4177 = call ptr @strerror(i32 noundef %4176) #11
  %4178 = call ptr @__errno_location() #12
  %4179 = load i32, ptr %4178, align 4, !tbaa !5
  %4180 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4167, ptr noundef @.str.2, i32 noundef %4168, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 196, ptr noundef %4171, ptr noundef %4174, ptr noundef %4177, i32 noundef %4179) #11
  br label %4198

4181:                                             ; preds = %4159, %4152
  %4182 = load i32, ptr %118, align 4, !tbaa !5
  %4183 = call ptr @__errno_location() #12
  store i32 %4182, ptr %4183, align 4, !tbaa !5
  %4184 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4185 = load i32, ptr @test_count, align 4, !tbaa !5
  %4186 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4187 = load i32, ptr %4186, align 4, !tbaa !5
  %4188 = call ptr @s2n_strerror(i32 noundef %4187, ptr noundef @.str.4)
  %4189 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4190 = load i32, ptr %4189, align 4, !tbaa !5
  %4191 = call ptr @s2n_strerror_debug(i32 noundef %4190, ptr noundef @.str.4)
  %4192 = call ptr @__errno_location() #12
  %4193 = load i32, ptr %4192, align 4, !tbaa !5
  %4194 = call ptr @strerror(i32 noundef %4193) #11
  %4195 = call ptr @__errno_location() #12
  %4196 = load i32, ptr %4195, align 4, !tbaa !5
  %4197 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4184, ptr noundef @.str.5, i32 noundef %4185, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 196, ptr noundef %4188, ptr noundef %4191, ptr noundef %4194, i32 noundef %4196) #11
  br label %4198

4198:                                             ; preds = %4181, %4164
  call void @llvm.lifetime.end.p0(i64 4, ptr %118) #11
  br label %4199

4199:                                             ; preds = %4198
  br label %4200

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

4201:                                             ; No predecessors!
  br label %4202

4202:                                             ; preds = %4201
  br label %4203

4203:                                             ; preds = %4202, %4141
  br label %4204

4204:                                             ; preds = %4203
  br label %4205

4205:                                             ; preds = %4204
  br label %4206

4206:                                             ; preds = %4205
  %4207 = load i32, ptr @test_count, align 4, !tbaa !5
  %4208 = add nsw i32 %4207, 1
  store i32 %4208, ptr @test_count, align 4, !tbaa !5
  %4209 = getelementptr inbounds %struct.s2n_blob, ptr %114, i32 0, i32 0
  %4210 = load ptr, ptr %4209, align 8, !tbaa !71
  %4211 = getelementptr inbounds [48 x i8], ptr %9, i64 0, i64 0
  %4212 = call i32 @memcmp(ptr noundef %4210, ptr noundef %4211, i64 noundef 48) #14
  %4213 = icmp eq i32 %4212, 0
  br i1 %4213, label %4214, label %4267

4214:                                             ; preds = %4206
  br label %4215

4215:                                             ; preds = %4214
  br label %4216

4216:                                             ; preds = %4215
  call void @llvm.lifetime.start.p0(i64 4, ptr %119) #11
  %4217 = call ptr @__errno_location() #12
  %4218 = load i32, ptr %4217, align 4, !tbaa !5
  store i32 %4218, ptr %119, align 4, !tbaa !5
  %4219 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4220 = call i32 @s2n_print_stacktrace(ptr noundef %4219)
  %4221 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4222 = trunc i8 %4221 to i1
  br i1 %4222, label %4223, label %4245

4223:                                             ; preds = %4216
  %4224 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4225 = call i32 @fileno(ptr noundef %4224) #11
  %4226 = call i32 @isatty(i32 noundef %4225) #11
  %4227 = icmp ne i32 %4226, 0
  br i1 %4227, label %4228, label %4245

4228:                                             ; preds = %4223
  %4229 = load i32, ptr %119, align 4, !tbaa !5
  %4230 = call ptr @__errno_location() #12
  store i32 %4229, ptr %4230, align 4, !tbaa !5
  %4231 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4232 = load i32, ptr @test_count, align 4, !tbaa !5
  %4233 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4234 = load i32, ptr %4233, align 4, !tbaa !5
  %4235 = call ptr @s2n_strerror(i32 noundef %4234, ptr noundef @.str.4)
  %4236 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4237 = load i32, ptr %4236, align 4, !tbaa !5
  %4238 = call ptr @s2n_strerror_debug(i32 noundef %4237, ptr noundef @.str.4)
  %4239 = call ptr @__errno_location() #12
  %4240 = load i32, ptr %4239, align 4, !tbaa !5
  %4241 = call ptr @strerror(i32 noundef %4240) #11
  %4242 = call ptr @__errno_location() #12
  %4243 = load i32, ptr %4242, align 4, !tbaa !5
  %4244 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4231, ptr noundef @.str.2, i32 noundef %4232, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 197, ptr noundef %4235, ptr noundef %4238, ptr noundef %4241, i32 noundef %4243) #11
  br label %4262

4245:                                             ; preds = %4223, %4216
  %4246 = load i32, ptr %119, align 4, !tbaa !5
  %4247 = call ptr @__errno_location() #12
  store i32 %4246, ptr %4247, align 4, !tbaa !5
  %4248 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4249 = load i32, ptr @test_count, align 4, !tbaa !5
  %4250 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4251 = load i32, ptr %4250, align 4, !tbaa !5
  %4252 = call ptr @s2n_strerror(i32 noundef %4251, ptr noundef @.str.4)
  %4253 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4254 = load i32, ptr %4253, align 4, !tbaa !5
  %4255 = call ptr @s2n_strerror_debug(i32 noundef %4254, ptr noundef @.str.4)
  %4256 = call ptr @__errno_location() #12
  %4257 = load i32, ptr %4256, align 4, !tbaa !5
  %4258 = call ptr @strerror(i32 noundef %4257) #11
  %4259 = call ptr @__errno_location() #12
  %4260 = load i32, ptr %4259, align 4, !tbaa !5
  %4261 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4248, ptr noundef @.str.5, i32 noundef %4249, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 197, ptr noundef %4252, ptr noundef %4255, ptr noundef %4258, i32 noundef %4260) #11
  br label %4262

4262:                                             ; preds = %4245, %4228
  call void @llvm.lifetime.end.p0(i64 4, ptr %119) #11
  br label %4263

4263:                                             ; preds = %4262
  br label %4264

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

4265:                                             ; No predecessors!
  br label %4266

4266:                                             ; preds = %4265
  br label %4267

4267:                                             ; preds = %4266, %4206
  br label %4268

4268:                                             ; preds = %4267
  br label %4269

4269:                                             ; preds = %4268
  %4270 = call i32 @s2n_connection_ptr_free(ptr noundef %116)
  %4271 = getelementptr inbounds %struct.s2n_result, ptr %120, i32 0, i32 0
  store i32 %4270, ptr %4271, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %116) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %114) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr %113) #11
  call void @llvm.lifetime.start.p0(i64 48, ptr %121) #11
  call void @llvm.memset.p0.i64(ptr align 16 %121, i8 0, i64 48, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr %122) #11
  call void @llvm.memset.p0.i64(ptr align 8 %122, i8 0, i64 24, i1 false)
  br label %4272

4272:                                             ; preds = %4269
  %4273 = load i32, ptr @test_count, align 4, !tbaa !5
  %4274 = add nsw i32 %4273, 1
  store i32 %4274, ptr @test_count, align 4, !tbaa !5
  %4275 = getelementptr inbounds [48 x i8], ptr %121, i64 0, i64 0
  %4276 = call i32 @s2n_blob_init(ptr noundef %122, ptr noundef %4275, i32 noundef 48)
  %4277 = icmp eq i32 %4276, -1
  br i1 %4277, label %4278, label %4331

4278:                                             ; preds = %4272
  br label %4279

4279:                                             ; preds = %4278
  br label %4280

4280:                                             ; preds = %4279
  call void @llvm.lifetime.start.p0(i64 4, ptr %123) #11
  %4281 = call ptr @__errno_location() #12
  %4282 = load i32, ptr %4281, align 4, !tbaa !5
  store i32 %4282, ptr %123, align 4, !tbaa !5
  %4283 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4284 = call i32 @s2n_print_stacktrace(ptr noundef %4283)
  %4285 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4286 = trunc i8 %4285 to i1
  br i1 %4286, label %4287, label %4309

4287:                                             ; preds = %4280
  %4288 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4289 = call i32 @fileno(ptr noundef %4288) #11
  %4290 = call i32 @isatty(i32 noundef %4289) #11
  %4291 = icmp ne i32 %4290, 0
  br i1 %4291, label %4292, label %4309

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

4309:                                             ; preds = %4287, %4280
  %4310 = load i32, ptr %123, align 4, !tbaa !5
  %4311 = call ptr @__errno_location() #12
  store i32 %4310, ptr %4311, align 4, !tbaa !5
  %4312 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4313 = load i32, ptr @test_count, align 4, !tbaa !5
  %4314 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4315 = load i32, ptr %4314, align 4, !tbaa !5
  %4316 = call ptr @s2n_strerror(i32 noundef %4315, ptr noundef @.str.4)
  %4317 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4318 = load i32, ptr %4317, align 4, !tbaa !5
  %4319 = call ptr @s2n_strerror_debug(i32 noundef %4318, ptr noundef @.str.4)
  %4320 = call ptr @__errno_location() #12
  %4321 = load i32, ptr %4320, align 4, !tbaa !5
  %4322 = call ptr @strerror(i32 noundef %4321) #11
  %4323 = call ptr @__errno_location() #12
  %4324 = load i32, ptr %4323, align 4, !tbaa !5
  %4325 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4312, ptr noundef @.str.5, i32 noundef %4313, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 204, ptr noundef %4316, ptr noundef %4319, ptr noundef %4322, i32 noundef %4324) #11
  br label %4326

4326:                                             ; preds = %4309, %4292
  call void @llvm.lifetime.end.p0(i64 4, ptr %123) #11
  br label %4327

4327:                                             ; preds = %4326
  br label %4328

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

4329:                                             ; No predecessors!
  br label %4330

4330:                                             ; preds = %4329
  br label %4331

4331:                                             ; preds = %4330, %4272
  br label %4332

4332:                                             ; preds = %4331
  br label %4333

4333:                                             ; preds = %4332
  call void @llvm.lifetime.start.p0(i64 8, ptr %124) #11
  %4334 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %4334, ptr %124, align 8, !tbaa !9
  %4335 = load ptr, ptr %124, align 8, !tbaa !9
  %4336 = getelementptr inbounds %struct.s2n_connection, ptr %4335, i32 0, i32 23
  store i8 34, ptr %4336, align 4, !tbaa !72
  br label %4337

4337:                                             ; preds = %4333
  %4338 = load i32, ptr @test_count, align 4, !tbaa !5
  %4339 = add nsw i32 %4338, 1
  store i32 %4339, ptr @test_count, align 4, !tbaa !5
  %4340 = load ptr, ptr %124, align 8, !tbaa !9
  %4341 = call i32 @s2n_conn_choose_state_machine(ptr noundef %4340, i8 noundef zeroext 34)
  %4342 = getelementptr inbounds %struct.s2n_result, ptr %125, i32 0, i32 0
  store i32 %4341, ptr %4342, align 4
  %4343 = getelementptr inbounds %struct.s2n_result, ptr %125, i32 0, i32 0
  %4344 = load i32, ptr %4343, align 4
  %4345 = call zeroext i1 @s2n_result_is_ok(i32 %4344)
  br i1 %4345, label %4399, label %4346

4346:                                             ; preds = %4337
  br label %4347

4347:                                             ; preds = %4346
  br label %4348

4348:                                             ; preds = %4347
  call void @llvm.lifetime.start.p0(i64 4, ptr %126) #11
  %4349 = call ptr @__errno_location() #12
  %4350 = load i32, ptr %4349, align 4, !tbaa !5
  store i32 %4350, ptr %126, align 4, !tbaa !5
  %4351 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4352 = call i32 @s2n_print_stacktrace(ptr noundef %4351)
  %4353 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4354 = trunc i8 %4353 to i1
  br i1 %4354, label %4355, label %4377

4355:                                             ; preds = %4348
  %4356 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4357 = call i32 @fileno(ptr noundef %4356) #11
  %4358 = call i32 @isatty(i32 noundef %4357) #11
  %4359 = icmp ne i32 %4358, 0
  br i1 %4359, label %4360, label %4377

4360:                                             ; preds = %4355
  %4361 = load i32, ptr %126, align 4, !tbaa !5
  %4362 = call ptr @__errno_location() #12
  store i32 %4361, ptr %4362, align 4, !tbaa !5
  %4363 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4364 = load i32, ptr @test_count, align 4, !tbaa !5
  %4365 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4366 = load i32, ptr %4365, align 4, !tbaa !5
  %4367 = call ptr @s2n_strerror(i32 noundef %4366, ptr noundef @.str.4)
  %4368 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4369 = load i32, ptr %4368, align 4, !tbaa !5
  %4370 = call ptr @s2n_strerror_debug(i32 noundef %4369, ptr noundef @.str.4)
  %4371 = call ptr @__errno_location() #12
  %4372 = load i32, ptr %4371, align 4, !tbaa !5
  %4373 = call ptr @strerror(i32 noundef %4372) #11
  %4374 = call ptr @__errno_location() #12
  %4375 = load i32, ptr %4374, align 4, !tbaa !5
  %4376 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4363, ptr noundef @.str.2, i32 noundef %4364, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 209, ptr noundef %4367, ptr noundef %4370, ptr noundef %4373, i32 noundef %4375) #11
  br label %4394

4377:                                             ; preds = %4355, %4348
  %4378 = load i32, ptr %126, align 4, !tbaa !5
  %4379 = call ptr @__errno_location() #12
  store i32 %4378, ptr %4379, align 4, !tbaa !5
  %4380 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4381 = load i32, ptr @test_count, align 4, !tbaa !5
  %4382 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4383 = load i32, ptr %4382, align 4, !tbaa !5
  %4384 = call ptr @s2n_strerror(i32 noundef %4383, ptr noundef @.str.4)
  %4385 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4386 = load i32, ptr %4385, align 4, !tbaa !5
  %4387 = call ptr @s2n_strerror_debug(i32 noundef %4386, ptr noundef @.str.4)
  %4388 = call ptr @__errno_location() #12
  %4389 = load i32, ptr %4388, align 4, !tbaa !5
  %4390 = call ptr @strerror(i32 noundef %4389) #11
  %4391 = call ptr @__errno_location() #12
  %4392 = load i32, ptr %4391, align 4, !tbaa !5
  %4393 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4380, ptr noundef @.str.5, i32 noundef %4381, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 209, ptr noundef %4384, ptr noundef %4387, ptr noundef %4390, i32 noundef %4392) #11
  br label %4394

4394:                                             ; preds = %4377, %4360
  call void @llvm.lifetime.end.p0(i64 4, ptr %126) #11
  br label %4395

4395:                                             ; preds = %4394
  br label %4396

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

4397:                                             ; No predecessors!
  br label %4398

4398:                                             ; preds = %4397
  br label %4399

4399:                                             ; preds = %4398, %4337
  br label %4400

4400:                                             ; preds = %4399
  br label %4401

4401:                                             ; preds = %4400
  %4402 = load ptr, ptr %124, align 8, !tbaa !9
  %4403 = getelementptr inbounds %struct.s2n_connection, ptr %4402, i32 0, i32 27
  %4404 = load ptr, ptr %4403, align 8, !tbaa !39
  %4405 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %4404, i32 0, i32 0
  store ptr @s2n_tls13_aes_256_gcm_sha384, ptr %4405, align 8, !tbaa !64
  %4406 = load ptr, ptr %124, align 8, !tbaa !9
  %4407 = getelementptr inbounds %struct.s2n_connection, ptr %4406, i32 0, i32 52
  %4408 = getelementptr inbounds %struct.s2n_handshake, ptr %4407, i32 0, i32 6
  store i32 3, ptr %4408, align 4, !tbaa !73
  br label %4409

4409:                                             ; preds = %4401
  %4410 = load i32, ptr @test_count, align 4, !tbaa !5
  %4411 = add nsw i32 %4410, 1
  store i32 %4411, ptr @test_count, align 4, !tbaa !5
  %4412 = load ptr, ptr %124, align 8, !tbaa !9
  %4413 = call i32 @s2n_set_test_key_shares(ptr noundef %4412, ptr noundef @s2n_ecc_curve_secp256r1)
  %4414 = getelementptr inbounds %struct.s2n_result, ptr %127, i32 0, i32 0
  store i32 %4413, ptr %4414, align 4
  %4415 = getelementptr inbounds %struct.s2n_result, ptr %127, i32 0, i32 0
  %4416 = load i32, ptr %4415, align 4
  %4417 = call zeroext i1 @s2n_result_is_ok(i32 %4416)
  br i1 %4417, label %4471, label %4418

4418:                                             ; preds = %4409
  br label %4419

4419:                                             ; preds = %4418
  br label %4420

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

4427:                                             ; preds = %4420
  %4428 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4429 = call i32 @fileno(ptr noundef %4428) #11
  %4430 = call i32 @isatty(i32 noundef %4429) #11
  %4431 = icmp ne i32 %4430, 0
  br i1 %4431, label %4432, label %4449

4432:                                             ; preds = %4427
  %4433 = load i32, ptr %128, align 4, !tbaa !5
  %4434 = call ptr @__errno_location() #12
  store i32 %4433, ptr %4434, align 4, !tbaa !5
  %4435 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4436 = load i32, ptr @test_count, align 4, !tbaa !5
  %4437 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4438 = load i32, ptr %4437, align 4, !tbaa !5
  %4439 = call ptr @s2n_strerror(i32 noundef %4438, ptr noundef @.str.4)
  %4440 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4441 = load i32, ptr %4440, align 4, !tbaa !5
  %4442 = call ptr @s2n_strerror_debug(i32 noundef %4441, ptr noundef @.str.4)
  %4443 = call ptr @__errno_location() #12
  %4444 = load i32, ptr %4443, align 4, !tbaa !5
  %4445 = call ptr @strerror(i32 noundef %4444) #11
  %4446 = call ptr @__errno_location() #12
  %4447 = load i32, ptr %4446, align 4, !tbaa !5
  %4448 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4435, ptr noundef @.str.2, i32 noundef %4436, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 212, ptr noundef %4439, ptr noundef %4442, ptr noundef %4445, i32 noundef %4447) #11
  br label %4466

4449:                                             ; preds = %4427, %4420
  %4450 = load i32, ptr %128, align 4, !tbaa !5
  %4451 = call ptr @__errno_location() #12
  store i32 %4450, ptr %4451, align 4, !tbaa !5
  %4452 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4453 = load i32, ptr @test_count, align 4, !tbaa !5
  %4454 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4455 = load i32, ptr %4454, align 4, !tbaa !5
  %4456 = call ptr @s2n_strerror(i32 noundef %4455, ptr noundef @.str.4)
  %4457 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4458 = load i32, ptr %4457, align 4, !tbaa !5
  %4459 = call ptr @s2n_strerror_debug(i32 noundef %4458, ptr noundef @.str.4)
  %4460 = call ptr @__errno_location() #12
  %4461 = load i32, ptr %4460, align 4, !tbaa !5
  %4462 = call ptr @strerror(i32 noundef %4461) #11
  %4463 = call ptr @__errno_location() #12
  %4464 = load i32, ptr %4463, align 4, !tbaa !5
  %4465 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4452, ptr noundef @.str.5, i32 noundef %4453, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 212, ptr noundef %4456, ptr noundef %4459, ptr noundef %4462, i32 noundef %4464) #11
  br label %4466

4466:                                             ; preds = %4449, %4432
  call void @llvm.lifetime.end.p0(i64 4, ptr %128) #11
  br label %4467

4467:                                             ; preds = %4466
  br label %4468

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

4469:                                             ; No predecessors!
  br label %4470

4470:                                             ; preds = %4469
  br label %4471

4471:                                             ; preds = %4470, %4409
  br label %4472

4472:                                             ; preds = %4471
  br label %4473

4473:                                             ; preds = %4472
  %4474 = getelementptr inbounds [4 x i32], ptr %88, i64 0, i64 2
  %4475 = load i32, ptr %4474, align 8, !tbaa !5
  %4476 = load ptr, ptr %124, align 8, !tbaa !9
  %4477 = getelementptr inbounds %struct.s2n_connection, ptr %4476, i32 0, i32 52
  %4478 = getelementptr inbounds %struct.s2n_handshake, ptr %4477, i32 0, i32 7
  store i32 %4475, ptr %4478, align 8, !tbaa !74
  br label %4479

4479:                                             ; preds = %4473
  br label %4480

4480:                                             ; preds = %4479
  br label %4481

4481:                                             ; preds = %4480
  %4482 = load i32, ptr @test_count, align 4, !tbaa !5
  %4483 = add nsw i32 %4482, 1
  store i32 %4483, ptr @test_count, align 4, !tbaa !5
  %4484 = load ptr, ptr %124, align 8, !tbaa !9
  %4485 = call i32 @s2n_tls13_derive_secret(ptr noundef %4484, i32 noundef 3, i32 noundef 0, ptr noundef %122)
  %4486 = getelementptr inbounds %struct.s2n_result, ptr %129, i32 0, i32 0
  store i32 %4485, ptr %4486, align 4
  %4487 = getelementptr inbounds %struct.s2n_result, ptr %129, i32 0, i32 0
  %4488 = load i32, ptr %4487, align 4
  %4489 = call zeroext i1 @s2n_result_is_error(i32 %4488)
  br i1 %4489, label %4543, label %4490

4490:                                             ; preds = %4481
  br label %4491

4491:                                             ; preds = %4490
  br label %4492

4492:                                             ; preds = %4491
  call void @llvm.lifetime.start.p0(i64 4, ptr %130) #11
  %4493 = call ptr @__errno_location() #12
  %4494 = load i32, ptr %4493, align 4, !tbaa !5
  store i32 %4494, ptr %130, align 4, !tbaa !5
  %4495 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4496 = call i32 @s2n_print_stacktrace(ptr noundef %4495)
  %4497 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4498 = trunc i8 %4497 to i1
  br i1 %4498, label %4499, label %4521

4499:                                             ; preds = %4492
  %4500 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4501 = call i32 @fileno(ptr noundef %4500) #11
  %4502 = call i32 @isatty(i32 noundef %4501) #11
  %4503 = icmp ne i32 %4502, 0
  br i1 %4503, label %4504, label %4521

4504:                                             ; preds = %4499
  %4505 = load i32, ptr %130, align 4, !tbaa !5
  %4506 = call ptr @__errno_location() #12
  store i32 %4505, ptr %4506, align 4, !tbaa !5
  %4507 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4508 = load i32, ptr @test_count, align 4, !tbaa !5
  %4509 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4510 = load i32, ptr %4509, align 4, !tbaa !5
  %4511 = call ptr @s2n_strerror(i32 noundef %4510, ptr noundef @.str.4)
  %4512 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4513 = load i32, ptr %4512, align 4, !tbaa !5
  %4514 = call ptr @s2n_strerror_debug(i32 noundef %4513, ptr noundef @.str.4)
  %4515 = call ptr @__errno_location() #12
  %4516 = load i32, ptr %4515, align 4, !tbaa !5
  %4517 = call ptr @strerror(i32 noundef %4516) #11
  %4518 = call ptr @__errno_location() #12
  %4519 = load i32, ptr %4518, align 4, !tbaa !5
  %4520 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4507, ptr noundef @.str.2, i32 noundef %4508, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 217, ptr noundef %4511, ptr noundef %4514, ptr noundef %4517, i32 noundef %4519) #11
  br label %4538

4521:                                             ; preds = %4499, %4492
  %4522 = load i32, ptr %130, align 4, !tbaa !5
  %4523 = call ptr @__errno_location() #12
  store i32 %4522, ptr %4523, align 4, !tbaa !5
  %4524 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4525 = load i32, ptr @test_count, align 4, !tbaa !5
  %4526 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4527 = load i32, ptr %4526, align 4, !tbaa !5
  %4528 = call ptr @s2n_strerror(i32 noundef %4527, ptr noundef @.str.4)
  %4529 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4530 = load i32, ptr %4529, align 4, !tbaa !5
  %4531 = call ptr @s2n_strerror_debug(i32 noundef %4530, ptr noundef @.str.4)
  %4532 = call ptr @__errno_location() #12
  %4533 = load i32, ptr %4532, align 4, !tbaa !5
  %4534 = call ptr @strerror(i32 noundef %4533) #11
  %4535 = call ptr @__errno_location() #12
  %4536 = load i32, ptr %4535, align 4, !tbaa !5
  %4537 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4524, ptr noundef @.str.5, i32 noundef %4525, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 217, ptr noundef %4528, ptr noundef %4531, ptr noundef %4534, i32 noundef %4536) #11
  br label %4538

4538:                                             ; preds = %4521, %4504
  call void @llvm.lifetime.end.p0(i64 4, ptr %130) #11
  br label %4539

4539:                                             ; preds = %4538
  br label %4540

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

4541:                                             ; No predecessors!
  br label %4542

4542:                                             ; preds = %4541
  br label %4543

4543:                                             ; preds = %4542, %4481
  br label %4544

4544:                                             ; preds = %4543
  br label %4545

4545:                                             ; preds = %4544
  br label %4546

4546:                                             ; preds = %4545
  %4547 = load i32, ptr @test_count, align 4, !tbaa !5
  %4548 = add nsw i32 %4547, 1
  store i32 %4548, ptr @test_count, align 4, !tbaa !5
  %4549 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4550 = load i32, ptr %4549, align 4, !tbaa !5
  %4551 = icmp eq i32 %4550, 469762122
  br i1 %4551, label %4605, label %4552

4552:                                             ; preds = %4546
  br label %4553

4553:                                             ; preds = %4552
  br label %4554

4554:                                             ; preds = %4553
  call void @llvm.lifetime.start.p0(i64 4, ptr %131) #11
  %4555 = call ptr @__errno_location() #12
  %4556 = load i32, ptr %4555, align 4, !tbaa !5
  store i32 %4556, ptr %131, align 4, !tbaa !5
  %4557 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4558 = call i32 @s2n_print_stacktrace(ptr noundef %4557)
  %4559 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4560 = trunc i8 %4559 to i1
  br i1 %4560, label %4561, label %4583

4561:                                             ; preds = %4554
  %4562 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4563 = call i32 @fileno(ptr noundef %4562) #11
  %4564 = call i32 @isatty(i32 noundef %4563) #11
  %4565 = icmp ne i32 %4564, 0
  br i1 %4565, label %4566, label %4583

4566:                                             ; preds = %4561
  %4567 = load i32, ptr %131, align 4, !tbaa !5
  %4568 = call ptr @__errno_location() #12
  store i32 %4567, ptr %4568, align 4, !tbaa !5
  %4569 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4570 = load i32, ptr @test_count, align 4, !tbaa !5
  %4571 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4572 = load i32, ptr %4571, align 4, !tbaa !5
  %4573 = call ptr @s2n_strerror(i32 noundef %4572, ptr noundef @.str.4)
  %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_debug(i32 noundef %4575, ptr noundef @.str.4)
  %4577 = call ptr @__errno_location() #12
  %4578 = load i32, ptr %4577, align 4, !tbaa !5
  %4579 = call ptr @strerror(i32 noundef %4578) #11
  %4580 = call ptr @__errno_location() #12
  %4581 = load i32, ptr %4580, align 4, !tbaa !5
  %4582 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4569, ptr noundef @.str.2, i32 noundef %4570, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 217, ptr noundef %4573, ptr noundef %4576, ptr noundef %4579, i32 noundef %4581) #11
  br label %4600

4583:                                             ; preds = %4561, %4554
  %4584 = load i32, ptr %131, align 4, !tbaa !5
  %4585 = call ptr @__errno_location() #12
  store i32 %4584, ptr %4585, align 4, !tbaa !5
  %4586 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4587 = load i32, ptr @test_count, align 4, !tbaa !5
  %4588 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4589 = load i32, ptr %4588, align 4, !tbaa !5
  %4590 = call ptr @s2n_strerror(i32 noundef %4589, ptr noundef @.str.4)
  %4591 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4592 = load i32, ptr %4591, align 4, !tbaa !5
  %4593 = call ptr @s2n_strerror_debug(i32 noundef %4592, ptr noundef @.str.4)
  %4594 = call ptr @__errno_location() #12
  %4595 = load i32, ptr %4594, align 4, !tbaa !5
  %4596 = call ptr @strerror(i32 noundef %4595) #11
  %4597 = call ptr @__errno_location() #12
  %4598 = load i32, ptr %4597, align 4, !tbaa !5
  %4599 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4586, ptr noundef @.str.5, i32 noundef %4587, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 217, ptr noundef %4590, ptr noundef %4593, ptr noundef %4596, i32 noundef %4598) #11
  br label %4600

4600:                                             ; preds = %4583, %4566
  call void @llvm.lifetime.end.p0(i64 4, ptr %131) #11
  br label %4601

4601:                                             ; preds = %4600
  br label %4602

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

4603:                                             ; No predecessors!
  br label %4604

4604:                                             ; preds = %4603
  br label %4605

4605:                                             ; preds = %4604, %4546
  br label %4606

4606:                                             ; preds = %4605
  br label %4607

4607:                                             ; preds = %4606
  br label %4608

4608:                                             ; preds = %4607
  %4609 = load i32, ptr @test_count, align 4, !tbaa !5
  %4610 = add nsw i32 %4609, 1
  store i32 %4610, ptr @test_count, align 4, !tbaa !5
  %4611 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4612 = load i32, ptr %4611, align 4, !tbaa !5
  %4613 = call ptr @s2n_strerror_debug(i32 noundef %4612, ptr noundef @.str.4)
  %4614 = icmp eq ptr %4613, null
  br i1 %4614, label %4615, label %4668

4615:                                             ; preds = %4608
  br label %4616

4616:                                             ; preds = %4615
  br label %4617

4617:                                             ; preds = %4616
  call void @llvm.lifetime.start.p0(i64 4, ptr %132) #11
  %4618 = call ptr @__errno_location() #12
  %4619 = load i32, ptr %4618, align 4, !tbaa !5
  store i32 %4619, ptr %132, align 4, !tbaa !5
  %4620 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4621 = call i32 @s2n_print_stacktrace(ptr noundef %4620)
  %4622 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4623 = trunc i8 %4622 to i1
  br i1 %4623, label %4624, label %4646

4624:                                             ; preds = %4617
  %4625 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4626 = call i32 @fileno(ptr noundef %4625) #11
  %4627 = call i32 @isatty(i32 noundef %4626) #11
  %4628 = icmp ne i32 %4627, 0
  br i1 %4628, label %4629, label %4646

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

4646:                                             ; preds = %4624, %4617
  %4647 = load i32, ptr %132, align 4, !tbaa !5
  %4648 = call ptr @__errno_location() #12
  store i32 %4647, ptr %4648, align 4, !tbaa !5
  %4649 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4650 = load i32, ptr @test_count, align 4, !tbaa !5
  %4651 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4652 = load i32, ptr %4651, align 4, !tbaa !5
  %4653 = call ptr @s2n_strerror(i32 noundef %4652, ptr noundef @.str.4)
  %4654 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4655 = load i32, ptr %4654, align 4, !tbaa !5
  %4656 = call ptr @s2n_strerror_debug(i32 noundef %4655, ptr noundef @.str.4)
  %4657 = call ptr @__errno_location() #12
  %4658 = load i32, ptr %4657, align 4, !tbaa !5
  %4659 = call ptr @strerror(i32 noundef %4658) #11
  %4660 = call ptr @__errno_location() #12
  %4661 = load i32, ptr %4660, align 4, !tbaa !5
  %4662 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4649, ptr noundef @.str.5, i32 noundef %4650, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 217, ptr noundef %4653, ptr noundef %4656, ptr noundef %4659, i32 noundef %4661) #11
  br label %4663

4663:                                             ; preds = %4646, %4629
  call void @llvm.lifetime.end.p0(i64 4, ptr %132) #11
  br label %4664

4664:                                             ; preds = %4663
  br label %4665

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

4666:                                             ; No predecessors!
  br label %4667

4667:                                             ; preds = %4666
  br label %4668

4668:                                             ; preds = %4667, %4608
  br label %4669

4669:                                             ; preds = %4668
  br label %4670

4670:                                             ; preds = %4669
  br label %4671

4671:                                             ; preds = %4670
  br label %4672

4672:                                             ; preds = %4671
  br label %4673

4673:                                             ; preds = %4672
  %4674 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %4674, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %4675 = call ptr @__errno_location() #12
  store i32 0, ptr %4675, align 4, !tbaa !5
  br label %4676

4676:                                             ; preds = %4673
  br label %4677

4677:                                             ; preds = %4676
  br label %4678

4678:                                             ; preds = %4677
  br label %4679

4679:                                             ; preds = %4678
  %4680 = getelementptr inbounds [4 x i32], ptr %88, i64 0, i64 3
  %4681 = load i32, ptr %4680, align 4, !tbaa !5
  %4682 = load ptr, ptr %124, align 8, !tbaa !9
  %4683 = getelementptr inbounds %struct.s2n_connection, ptr %4682, i32 0, i32 52
  %4684 = getelementptr inbounds %struct.s2n_handshake, ptr %4683, i32 0, i32 7
  store i32 %4681, ptr %4684, align 8, !tbaa !74
  br label %4685

4685:                                             ; preds = %4679
  %4686 = load i32, ptr @test_count, align 4, !tbaa !5
  %4687 = add nsw i32 %4686, 1
  store i32 %4687, ptr @test_count, align 4, !tbaa !5
  %4688 = load ptr, ptr %124, align 8, !tbaa !9
  %4689 = call i32 @s2n_tls13_derive_secret(ptr noundef %4688, i32 noundef 3, i32 noundef 0, ptr noundef %122)
  %4690 = getelementptr inbounds %struct.s2n_result, ptr %133, i32 0, i32 0
  store i32 %4689, ptr %4690, align 4
  %4691 = getelementptr inbounds %struct.s2n_result, ptr %133, i32 0, i32 0
  %4692 = load i32, ptr %4691, align 4
  %4693 = call zeroext i1 @s2n_result_is_ok(i32 %4692)
  br i1 %4693, label %4747, label %4694

4694:                                             ; preds = %4685
  br label %4695

4695:                                             ; preds = %4694
  br label %4696

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

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

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

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

4742:                                             ; preds = %4725, %4708
  call void @llvm.lifetime.end.p0(i64 4, ptr %134) #11
  br label %4743

4743:                                             ; preds = %4742
  br label %4744

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

4745:                                             ; No predecessors!
  br label %4746

4746:                                             ; preds = %4745
  br label %4747

4747:                                             ; preds = %4746, %4685
  br label %4748

4748:                                             ; preds = %4747
  br label %4749

4749:                                             ; preds = %4748
  %4750 = call i32 @s2n_connection_ptr_free(ptr noundef %124)
  %4751 = getelementptr inbounds %struct.s2n_result, ptr %135, i32 0, i32 0
  store i32 %4750, ptr %4751, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %124) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %122) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr %121) #11
  call void @llvm.lifetime.start.p0(i64 48, ptr %136) #11
  call void @llvm.memset.p0.i64(ptr align 16 %136, i8 0, i64 48, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr %137) #11
  call void @llvm.memset.p0.i64(ptr align 8 %137, i8 0, i64 24, i1 false)
  br label %4752

4752:                                             ; preds = %4749
  %4753 = load i32, ptr @test_count, align 4, !tbaa !5
  %4754 = add nsw i32 %4753, 1
  store i32 %4754, ptr @test_count, align 4, !tbaa !5
  %4755 = getelementptr inbounds [48 x i8], ptr %136, i64 0, i64 0
  %4756 = call i32 @s2n_blob_init(ptr noundef %137, ptr noundef %4755, i32 noundef 48)
  %4757 = icmp eq i32 %4756, -1
  br i1 %4757, label %4758, label %4811

4758:                                             ; preds = %4752
  br label %4759

4759:                                             ; preds = %4758
  br label %4760

4760:                                             ; preds = %4759
  call void @llvm.lifetime.start.p0(i64 4, ptr %138) #11
  %4761 = call ptr @__errno_location() #12
  %4762 = load i32, ptr %4761, align 4, !tbaa !5
  store i32 %4762, ptr %138, align 4, !tbaa !5
  %4763 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4764 = call i32 @s2n_print_stacktrace(ptr noundef %4763)
  %4765 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4766 = trunc i8 %4765 to i1
  br i1 %4766, label %4767, label %4789

4767:                                             ; preds = %4760
  %4768 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4769 = call i32 @fileno(ptr noundef %4768) #11
  %4770 = call i32 @isatty(i32 noundef %4769) #11
  %4771 = icmp ne i32 %4770, 0
  br i1 %4771, label %4772, label %4789

4772:                                             ; preds = %4767
  %4773 = load i32, ptr %138, align 4, !tbaa !5
  %4774 = call ptr @__errno_location() #12
  store i32 %4773, ptr %4774, align 4, !tbaa !5
  %4775 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4776 = load i32, ptr @test_count, align 4, !tbaa !5
  %4777 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4778 = load i32, ptr %4777, align 4, !tbaa !5
  %4779 = call ptr @s2n_strerror(i32 noundef %4778, ptr noundef @.str.4)
  %4780 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4781 = load i32, ptr %4780, align 4, !tbaa !5
  %4782 = call ptr @s2n_strerror_debug(i32 noundef %4781, ptr noundef @.str.4)
  %4783 = call ptr @__errno_location() #12
  %4784 = load i32, ptr %4783, align 4, !tbaa !5
  %4785 = call ptr @strerror(i32 noundef %4784) #11
  %4786 = call ptr @__errno_location() #12
  %4787 = load i32, ptr %4786, align 4, !tbaa !5
  %4788 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4775, ptr noundef @.str.2, i32 noundef %4776, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 228, ptr noundef %4779, ptr noundef %4782, ptr noundef %4785, i32 noundef %4787) #11
  br label %4806

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

4806:                                             ; preds = %4789, %4772
  call void @llvm.lifetime.end.p0(i64 4, ptr %138) #11
  br label %4807

4807:                                             ; preds = %4806
  br label %4808

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

4809:                                             ; No predecessors!
  br label %4810

4810:                                             ; preds = %4809
  br label %4811

4811:                                             ; preds = %4810, %4752
  br label %4812

4812:                                             ; preds = %4811
  br label %4813

4813:                                             ; preds = %4812
  call void @llvm.lifetime.start.p0(i64 8, ptr %139) #11
  %4814 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %4814, ptr %139, align 8, !tbaa !9
  %4815 = load ptr, ptr %139, align 8, !tbaa !9
  %4816 = getelementptr inbounds %struct.s2n_connection, ptr %4815, i32 0, i32 27
  %4817 = load ptr, ptr %4816, align 8, !tbaa !39
  %4818 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %4817, i32 0, i32 0
  store ptr @s2n_tls13_aes_256_gcm_sha384, ptr %4818, align 8, !tbaa !64
  br label %4819

4819:                                             ; preds = %4813
  %4820 = load i32, ptr @test_count, align 4, !tbaa !5
  %4821 = add nsw i32 %4820, 1
  store i32 %4821, ptr @test_count, align 4, !tbaa !5
  %4822 = load ptr, ptr %139, align 8, !tbaa !9
  %4823 = call i32 @s2n_conn_choose_state_machine(ptr noundef %4822, i8 noundef zeroext 34)
  %4824 = getelementptr inbounds %struct.s2n_result, ptr %140, i32 0, i32 0
  store i32 %4823, ptr %4824, align 4
  %4825 = getelementptr inbounds %struct.s2n_result, ptr %140, i32 0, i32 0
  %4826 = load i32, ptr %4825, align 4
  %4827 = call zeroext i1 @s2n_result_is_ok(i32 %4826)
  br i1 %4827, label %4881, label %4828

4828:                                             ; preds = %4819
  br label %4829

4829:                                             ; preds = %4828
  br label %4830

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

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

4842:                                             ; preds = %4837
  %4843 = load i32, ptr %141, align 4, !tbaa !5
  %4844 = call ptr @__errno_location() #12
  store i32 %4843, ptr %4844, align 4, !tbaa !5
  %4845 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4846 = load i32, ptr @test_count, align 4, !tbaa !5
  %4847 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4848 = load i32, ptr %4847, align 4, !tbaa !5
  %4849 = call ptr @s2n_strerror(i32 noundef %4848, ptr noundef @.str.4)
  %4850 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4851 = load i32, ptr %4850, align 4, !tbaa !5
  %4852 = call ptr @s2n_strerror_debug(i32 noundef %4851, ptr noundef @.str.4)
  %4853 = call ptr @__errno_location() #12
  %4854 = load i32, ptr %4853, align 4, !tbaa !5
  %4855 = call ptr @strerror(i32 noundef %4854) #11
  %4856 = call ptr @__errno_location() #12
  %4857 = load i32, ptr %4856, align 4, !tbaa !5
  %4858 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4845, ptr noundef @.str.2, i32 noundef %4846, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 233, ptr noundef %4849, ptr noundef %4852, ptr noundef %4855, i32 noundef %4857) #11
  br label %4876

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

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

4877:                                             ; preds = %4876
  br label %4878

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

4879:                                             ; No predecessors!
  br label %4880

4880:                                             ; preds = %4879
  br label %4881

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

4882:                                             ; preds = %4881
  br label %4883

4883:                                             ; preds = %4882
  %4884 = load ptr, ptr %139, align 8, !tbaa !9
  %4885 = getelementptr inbounds %struct.s2n_connection, ptr %4884, i32 0, i32 23
  store i8 34, ptr %4885, align 4, !tbaa !72
  %4886 = load ptr, ptr %139, align 8, !tbaa !9
  %4887 = getelementptr inbounds %struct.s2n_connection, ptr %4886, i32 0, i32 52
  %4888 = getelementptr inbounds %struct.s2n_handshake, ptr %4887, i32 0, i32 6
  store i32 3, ptr %4888, align 4, !tbaa !73
  %4889 = getelementptr inbounds [4 x i32], ptr %88, i64 0, i64 2
  %4890 = load i32, ptr %4889, align 8, !tbaa !5
  %4891 = load ptr, ptr %139, align 8, !tbaa !9
  %4892 = getelementptr inbounds %struct.s2n_connection, ptr %4891, i32 0, i32 52
  %4893 = getelementptr inbounds %struct.s2n_handshake, ptr %4892, i32 0, i32 7
  store i32 %4890, ptr %4893, align 8, !tbaa !74
  br label %4894

4894:                                             ; preds = %4883
  %4895 = load i32, ptr @test_count, align 4, !tbaa !5
  %4896 = add nsw i32 %4895, 1
  store i32 %4896, ptr @test_count, align 4, !tbaa !5
  %4897 = load ptr, ptr %139, align 8, !tbaa !9
  %4898 = call i32 @s2n_set_test_key_shares(ptr noundef %4897, ptr noundef @s2n_ecc_curve_secp256r1)
  %4899 = getelementptr inbounds %struct.s2n_result, ptr %142, i32 0, i32 0
  store i32 %4898, ptr %4899, align 4
  %4900 = getelementptr inbounds %struct.s2n_result, ptr %142, i32 0, i32 0
  %4901 = load i32, ptr %4900, align 4
  %4902 = call zeroext i1 @s2n_result_is_ok(i32 %4901)
  br i1 %4902, label %4956, label %4903

4903:                                             ; preds = %4894
  br label %4904

4904:                                             ; preds = %4903
  br label %4905

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

4912:                                             ; preds = %4905
  %4913 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4914 = call i32 @fileno(ptr noundef %4913) #11
  %4915 = call i32 @isatty(i32 noundef %4914) #11
  %4916 = icmp ne i32 %4915, 0
  br i1 %4916, label %4917, label %4934

4917:                                             ; preds = %4912
  %4918 = load i32, ptr %143, align 4, !tbaa !5
  %4919 = call ptr @__errno_location() #12
  store i32 %4918, ptr %4919, align 4, !tbaa !5
  %4920 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4921 = load i32, ptr @test_count, align 4, !tbaa !5
  %4922 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4923 = load i32, ptr %4922, align 4, !tbaa !5
  %4924 = call ptr @s2n_strerror(i32 noundef %4923, ptr noundef @.str.4)
  %4925 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4926 = load i32, ptr %4925, align 4, !tbaa !5
  %4927 = call ptr @s2n_strerror_debug(i32 noundef %4926, ptr noundef @.str.4)
  %4928 = call ptr @__errno_location() #12
  %4929 = load i32, ptr %4928, align 4, !tbaa !5
  %4930 = call ptr @strerror(i32 noundef %4929) #11
  %4931 = call ptr @__errno_location() #12
  %4932 = load i32, ptr %4931, align 4, !tbaa !5
  %4933 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4920, ptr noundef @.str.2, i32 noundef %4921, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 237, ptr noundef %4924, ptr noundef %4927, ptr noundef %4930, i32 noundef %4932) #11
  br label %4951

4934:                                             ; preds = %4912, %4905
  %4935 = load i32, ptr %143, align 4, !tbaa !5
  %4936 = call ptr @__errno_location() #12
  store i32 %4935, ptr %4936, align 4, !tbaa !5
  %4937 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4938 = load i32, ptr @test_count, align 4, !tbaa !5
  %4939 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4940 = load i32, ptr %4939, align 4, !tbaa !5
  %4941 = call ptr @s2n_strerror(i32 noundef %4940, ptr noundef @.str.4)
  %4942 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4943 = load i32, ptr %4942, align 4, !tbaa !5
  %4944 = call ptr @s2n_strerror_debug(i32 noundef %4943, ptr noundef @.str.4)
  %4945 = call ptr @__errno_location() #12
  %4946 = load i32, ptr %4945, align 4, !tbaa !5
  %4947 = call ptr @strerror(i32 noundef %4946) #11
  %4948 = call ptr @__errno_location() #12
  %4949 = load i32, ptr %4948, align 4, !tbaa !5
  %4950 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4937, ptr noundef @.str.5, i32 noundef %4938, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 237, ptr noundef %4941, ptr noundef %4944, ptr noundef %4947, i32 noundef %4949) #11
  br label %4951

4951:                                             ; preds = %4934, %4917
  call void @llvm.lifetime.end.p0(i64 4, ptr %143) #11
  br label %4952

4952:                                             ; preds = %4951
  br label %4953

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

4954:                                             ; No predecessors!
  br label %4955

4955:                                             ; preds = %4954
  br label %4956

4956:                                             ; preds = %4955, %4894
  br label %4957

4957:                                             ; preds = %4956
  br label %4958

4958:                                             ; preds = %4957
  %4959 = load ptr, ptr %139, align 8, !tbaa !9
  %4960 = getelementptr inbounds %struct.s2n_connection, ptr %4959, i32 0, i32 28
  %4961 = getelementptr inbounds %struct.s2n_secrets, ptr %4960, i32 0, i32 1
  store i32 0, ptr %4961, align 4, !tbaa !69
  br label %4962

4962:                                             ; preds = %4958
  %4963 = load i32, ptr @test_count, align 4, !tbaa !5
  %4964 = add nsw i32 %4963, 1
  store i32 %4964, ptr @test_count, align 4, !tbaa !5
  %4965 = load ptr, ptr %139, align 8, !tbaa !9
  %4966 = call i32 @s2n_tls13_derive_secret(ptr noundef %4965, i32 noundef 2, i32 noundef 0, ptr noundef %137)
  %4967 = getelementptr inbounds %struct.s2n_result, ptr %144, i32 0, i32 0
  store i32 %4966, ptr %4967, align 4
  %4968 = getelementptr inbounds %struct.s2n_result, ptr %144, i32 0, i32 0
  %4969 = load i32, ptr %4968, align 4
  %4970 = call zeroext i1 @s2n_result_is_ok(i32 %4969)
  br i1 %4970, label %5024, label %4971

4971:                                             ; preds = %4962
  br label %4972

4972:                                             ; preds = %4971
  br label %4973

4973:                                             ; preds = %4972
  call void @llvm.lifetime.start.p0(i64 4, ptr %145) #11
  %4974 = call ptr @__errno_location() #12
  %4975 = load i32, ptr %4974, align 4, !tbaa !5
  store i32 %4975, ptr %145, align 4, !tbaa !5
  %4976 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4977 = call i32 @s2n_print_stacktrace(ptr noundef %4976)
  %4978 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4979 = trunc i8 %4978 to i1
  br i1 %4979, label %4980, label %5002

4980:                                             ; preds = %4973
  %4981 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4982 = call i32 @fileno(ptr noundef %4981) #11
  %4983 = call i32 @isatty(i32 noundef %4982) #11
  %4984 = icmp ne i32 %4983, 0
  br i1 %4984, label %4985, label %5002

4985:                                             ; preds = %4980
  %4986 = load i32, ptr %145, align 4, !tbaa !5
  %4987 = call ptr @__errno_location() #12
  store i32 %4986, ptr %4987, align 4, !tbaa !5
  %4988 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4989 = load i32, ptr @test_count, align 4, !tbaa !5
  %4990 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4991 = load i32, ptr %4990, align 4, !tbaa !5
  %4992 = call ptr @s2n_strerror(i32 noundef %4991, ptr noundef @.str.4)
  %4993 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4994 = load i32, ptr %4993, align 4, !tbaa !5
  %4995 = call ptr @s2n_strerror_debug(i32 noundef %4994, ptr noundef @.str.4)
  %4996 = call ptr @__errno_location() #12
  %4997 = load i32, ptr %4996, align 4, !tbaa !5
  %4998 = call ptr @strerror(i32 noundef %4997) #11
  %4999 = call ptr @__errno_location() #12
  %5000 = load i32, ptr %4999, align 4, !tbaa !5
  %5001 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4988, ptr noundef @.str.2, i32 noundef %4989, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 240, ptr noundef %4992, ptr noundef %4995, ptr noundef %4998, i32 noundef %5000) #11
  br label %5019

5002:                                             ; preds = %4980, %4973
  %5003 = load i32, ptr %145, align 4, !tbaa !5
  %5004 = call ptr @__errno_location() #12
  store i32 %5003, ptr %5004, align 4, !tbaa !5
  %5005 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5006 = load i32, ptr @test_count, align 4, !tbaa !5
  %5007 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5008 = load i32, ptr %5007, align 4, !tbaa !5
  %5009 = call ptr @s2n_strerror(i32 noundef %5008, ptr noundef @.str.4)
  %5010 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5011 = load i32, ptr %5010, align 4, !tbaa !5
  %5012 = call ptr @s2n_strerror_debug(i32 noundef %5011, ptr noundef @.str.4)
  %5013 = call ptr @__errno_location() #12
  %5014 = load i32, ptr %5013, align 4, !tbaa !5
  %5015 = call ptr @strerror(i32 noundef %5014) #11
  %5016 = call ptr @__errno_location() #12
  %5017 = load i32, ptr %5016, align 4, !tbaa !5
  %5018 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5005, ptr noundef @.str.5, i32 noundef %5006, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 240, ptr noundef %5009, ptr noundef %5012, ptr noundef %5015, i32 noundef %5017) #11
  br label %5019

5019:                                             ; preds = %5002, %4985
  call void @llvm.lifetime.end.p0(i64 4, ptr %145) #11
  br label %5020

5020:                                             ; preds = %5019
  br label %5021

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

5022:                                             ; No predecessors!
  br label %5023

5023:                                             ; preds = %5022
  br label %5024

5024:                                             ; preds = %5023, %4962
  br label %5025

5025:                                             ; preds = %5024
  br label %5026

5026:                                             ; preds = %5025
  br label %5027

5027:                                             ; preds = %5026
  %5028 = load i32, ptr @test_count, align 4, !tbaa !5
  %5029 = add nsw i32 %5028, 1
  store i32 %5029, ptr @test_count, align 4, !tbaa !5
  %5030 = load ptr, ptr %139, align 8, !tbaa !9
  %5031 = getelementptr inbounds %struct.s2n_connection, ptr %5030, i32 0, i32 28
  %5032 = getelementptr inbounds %struct.s2n_secrets, ptr %5031, i32 0, i32 1
  %5033 = load i32, ptr %5032, align 4, !tbaa !69
  %5034 = icmp eq i32 %5033, 2
  br i1 %5034, label %5088, label %5035

5035:                                             ; preds = %5027
  br label %5036

5036:                                             ; preds = %5035
  br label %5037

5037:                                             ; preds = %5036
  call void @llvm.lifetime.start.p0(i64 4, ptr %146) #11
  %5038 = call ptr @__errno_location() #12
  %5039 = load i32, ptr %5038, align 4, !tbaa !5
  store i32 %5039, ptr %146, align 4, !tbaa !5
  %5040 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5041 = call i32 @s2n_print_stacktrace(ptr noundef %5040)
  %5042 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5043 = trunc i8 %5042 to i1
  br i1 %5043, label %5044, label %5066

5044:                                             ; preds = %5037
  %5045 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5046 = call i32 @fileno(ptr noundef %5045) #11
  %5047 = call i32 @isatty(i32 noundef %5046) #11
  %5048 = icmp ne i32 %5047, 0
  br i1 %5048, label %5049, label %5066

5049:                                             ; preds = %5044
  %5050 = load i32, ptr %146, align 4, !tbaa !5
  %5051 = call ptr @__errno_location() #12
  store i32 %5050, ptr %5051, align 4, !tbaa !5
  %5052 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5053 = load i32, ptr @test_count, align 4, !tbaa !5
  %5054 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5055 = load i32, ptr %5054, align 4, !tbaa !5
  %5056 = call ptr @s2n_strerror(i32 noundef %5055, ptr noundef @.str.4)
  %5057 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5058 = load i32, ptr %5057, align 4, !tbaa !5
  %5059 = call ptr @s2n_strerror_debug(i32 noundef %5058, ptr noundef @.str.4)
  %5060 = call ptr @__errno_location() #12
  %5061 = load i32, ptr %5060, align 4, !tbaa !5
  %5062 = call ptr @strerror(i32 noundef %5061) #11
  %5063 = call ptr @__errno_location() #12
  %5064 = load i32, ptr %5063, align 4, !tbaa !5
  %5065 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5052, ptr noundef @.str.2, i32 noundef %5053, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 241, ptr noundef %5056, ptr noundef %5059, ptr noundef %5062, i32 noundef %5064) #11
  br label %5083

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

5083:                                             ; preds = %5066, %5049
  call void @llvm.lifetime.end.p0(i64 4, ptr %146) #11
  br label %5084

5084:                                             ; preds = %5083
  br label %5085

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

5086:                                             ; No predecessors!
  br label %5087

5087:                                             ; preds = %5086
  br label %5088

5088:                                             ; preds = %5087, %5027
  br label %5089

5089:                                             ; preds = %5088
  br label %5090

5090:                                             ; preds = %5089
  br label %5091

5091:                                             ; preds = %5090
  %5092 = load i32, ptr @test_count, align 4, !tbaa !5
  %5093 = add nsw i32 %5092, 1
  store i32 %5093, ptr @test_count, align 4, !tbaa !5
  %5094 = load ptr, ptr %139, align 8, !tbaa !9
  %5095 = getelementptr inbounds %struct.s2n_connection, ptr %5094, i32 0, i32 28
  %5096 = getelementptr inbounds %struct.s2n_secrets, ptr %5095, i32 0, i32 0
  %5097 = getelementptr inbounds %struct.s2n_tls13_secrets, ptr %5096, i32 0, i32 0
  %5098 = getelementptr inbounds [48 x i8], ptr %5097, i64 0, i64 0
  %5099 = getelementptr inbounds [48 x i8], ptr %9, i64 0, i64 0
  %5100 = call i32 @memcmp(ptr noundef %5098, ptr noundef %5099, i64 noundef 48) #14
  %5101 = icmp eq i32 %5100, 0
  br i1 %5101, label %5102, label %5155

5102:                                             ; preds = %5091
  br label %5103

5103:                                             ; preds = %5102
  br label %5104

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

5111:                                             ; preds = %5104
  %5112 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5113 = call i32 @fileno(ptr noundef %5112) #11
  %5114 = call i32 @isatty(i32 noundef %5113) #11
  %5115 = icmp ne i32 %5114, 0
  br i1 %5115, label %5116, label %5133

5116:                                             ; preds = %5111
  %5117 = load i32, ptr %147, align 4, !tbaa !5
  %5118 = call ptr @__errno_location() #12
  store i32 %5117, ptr %5118, align 4, !tbaa !5
  %5119 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5120 = load i32, ptr @test_count, align 4, !tbaa !5
  %5121 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5122 = load i32, ptr %5121, align 4, !tbaa !5
  %5123 = call ptr @s2n_strerror(i32 noundef %5122, ptr noundef @.str.4)
  %5124 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5125 = load i32, ptr %5124, align 4, !tbaa !5
  %5126 = call ptr @s2n_strerror_debug(i32 noundef %5125, ptr noundef @.str.4)
  %5127 = call ptr @__errno_location() #12
  %5128 = load i32, ptr %5127, align 4, !tbaa !5
  %5129 = call ptr @strerror(i32 noundef %5128) #11
  %5130 = call ptr @__errno_location() #12
  %5131 = load i32, ptr %5130, align 4, !tbaa !5
  %5132 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5119, ptr noundef @.str.2, i32 noundef %5120, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 242, ptr noundef %5123, ptr noundef %5126, ptr noundef %5129, i32 noundef %5131) #11
  br label %5150

5133:                                             ; preds = %5111, %5104
  %5134 = load i32, ptr %147, align 4, !tbaa !5
  %5135 = call ptr @__errno_location() #12
  store i32 %5134, ptr %5135, align 4, !tbaa !5
  %5136 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5137 = load i32, ptr @test_count, align 4, !tbaa !5
  %5138 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5139 = load i32, ptr %5138, align 4, !tbaa !5
  %5140 = call ptr @s2n_strerror(i32 noundef %5139, ptr noundef @.str.4)
  %5141 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5142 = load i32, ptr %5141, align 4, !tbaa !5
  %5143 = call ptr @s2n_strerror_debug(i32 noundef %5142, ptr noundef @.str.4)
  %5144 = call ptr @__errno_location() #12
  %5145 = load i32, ptr %5144, align 4, !tbaa !5
  %5146 = call ptr @strerror(i32 noundef %5145) #11
  %5147 = call ptr @__errno_location() #12
  %5148 = load i32, ptr %5147, align 4, !tbaa !5
  %5149 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5136, ptr noundef @.str.5, i32 noundef %5137, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 242, ptr noundef %5140, ptr noundef %5143, ptr noundef %5146, i32 noundef %5148) #11
  br label %5150

5150:                                             ; preds = %5133, %5116
  call void @llvm.lifetime.end.p0(i64 4, ptr %147) #11
  br label %5151

5151:                                             ; preds = %5150
  br label %5152

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

5153:                                             ; No predecessors!
  br label %5154

5154:                                             ; preds = %5153
  br label %5155

5155:                                             ; preds = %5154, %5091
  br label %5156

5156:                                             ; preds = %5155
  br label %5157

5157:                                             ; preds = %5156
  br label %5158

5158:                                             ; preds = %5157
  %5159 = load i32, ptr @test_count, align 4, !tbaa !5
  %5160 = add nsw i32 %5159, 1
  store i32 %5160, ptr @test_count, align 4, !tbaa !5
  %5161 = getelementptr inbounds %struct.s2n_blob, ptr %137, i32 0, i32 0
  %5162 = load ptr, ptr %5161, align 8, !tbaa !71
  %5163 = getelementptr inbounds [48 x i8], ptr %9, i64 0, i64 0
  %5164 = call i32 @memcmp(ptr noundef %5162, ptr noundef %5163, i64 noundef 48) #14
  %5165 = icmp eq i32 %5164, 0
  br i1 %5165, label %5166, label %5219

5166:                                             ; preds = %5158
  br label %5167

5167:                                             ; preds = %5166
  br label %5168

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

5175:                                             ; preds = %5168
  %5176 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5177 = call i32 @fileno(ptr noundef %5176) #11
  %5178 = call i32 @isatty(i32 noundef %5177) #11
  %5179 = icmp ne i32 %5178, 0
  br i1 %5179, label %5180, label %5197

5180:                                             ; preds = %5175
  %5181 = load i32, ptr %148, align 4, !tbaa !5
  %5182 = call ptr @__errno_location() #12
  store i32 %5181, ptr %5182, align 4, !tbaa !5
  %5183 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5184 = load i32, ptr @test_count, align 4, !tbaa !5
  %5185 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5186 = load i32, ptr %5185, align 4, !tbaa !5
  %5187 = call ptr @s2n_strerror(i32 noundef %5186, ptr noundef @.str.4)
  %5188 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5189 = load i32, ptr %5188, align 4, !tbaa !5
  %5190 = call ptr @s2n_strerror_debug(i32 noundef %5189, ptr noundef @.str.4)
  %5191 = call ptr @__errno_location() #12
  %5192 = load i32, ptr %5191, align 4, !tbaa !5
  %5193 = call ptr @strerror(i32 noundef %5192) #11
  %5194 = call ptr @__errno_location() #12
  %5195 = load i32, ptr %5194, align 4, !tbaa !5
  %5196 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5183, ptr noundef @.str.2, i32 noundef %5184, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 243, ptr noundef %5187, ptr noundef %5190, ptr noundef %5193, i32 noundef %5195) #11
  br label %5214

5197:                                             ; preds = %5175, %5168
  %5198 = load i32, ptr %148, align 4, !tbaa !5
  %5199 = call ptr @__errno_location() #12
  store i32 %5198, ptr %5199, align 4, !tbaa !5
  %5200 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5201 = load i32, ptr @test_count, align 4, !tbaa !5
  %5202 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5203 = load i32, ptr %5202, align 4, !tbaa !5
  %5204 = call ptr @s2n_strerror(i32 noundef %5203, ptr noundef @.str.4)
  %5205 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5206 = load i32, ptr %5205, align 4, !tbaa !5
  %5207 = call ptr @s2n_strerror_debug(i32 noundef %5206, ptr noundef @.str.4)
  %5208 = call ptr @__errno_location() #12
  %5209 = load i32, ptr %5208, align 4, !tbaa !5
  %5210 = call ptr @strerror(i32 noundef %5209) #11
  %5211 = call ptr @__errno_location() #12
  %5212 = load i32, ptr %5211, align 4, !tbaa !5
  %5213 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5200, ptr noundef @.str.5, i32 noundef %5201, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 243, ptr noundef %5204, ptr noundef %5207, ptr noundef %5210, i32 noundef %5212) #11
  br label %5214

5214:                                             ; preds = %5197, %5180
  call void @llvm.lifetime.end.p0(i64 4, ptr %148) #11
  br label %5215

5215:                                             ; preds = %5214
  br label %5216

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

5217:                                             ; No predecessors!
  br label %5218

5218:                                             ; preds = %5217
  br label %5219

5219:                                             ; preds = %5218, %5158
  br label %5220

5220:                                             ; preds = %5219
  br label %5221

5221:                                             ; preds = %5220
  %5222 = call i32 @s2n_connection_ptr_free(ptr noundef %139)
  %5223 = getelementptr inbounds %struct.s2n_result, ptr %149, i32 0, i32 0
  store i32 %5222, ptr %5223, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %139) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %137) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr %136) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %150) #11
  store i64 0, ptr %150, align 8, !tbaa !15
  br label %5224

5224:                                             ; preds = %5600, %5221
  %5225 = load i64, ptr %150, align 8, !tbaa !15
  %5226 = load i64, ptr %17, align 8, !tbaa !15
  %5227 = icmp ult i64 %5225, %5226
  br i1 %5227, label %5229, label %5228

5228:                                             ; preds = %5224
  store i32 521, ptr %19, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %150) #11
  br label %5603

5229:                                             ; preds = %5224
  call void @llvm.lifetime.start.p0(i64 48, ptr %151) #11
  call void @llvm.memset.p0.i64(ptr align 16 %151, i8 0, i64 48, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr %152) #11
  call void @llvm.memset.p0.i64(ptr align 8 %152, i8 0, i64 24, i1 false)
  br label %5230

5230:                                             ; preds = %5229
  %5231 = load i32, ptr @test_count, align 4, !tbaa !5
  %5232 = add nsw i32 %5231, 1
  store i32 %5232, ptr @test_count, align 4, !tbaa !5
  %5233 = getelementptr inbounds [48 x i8], ptr %151, i64 0, i64 0
  %5234 = call i32 @s2n_blob_init(ptr noundef %152, ptr noundef %5233, i32 noundef 48)
  %5235 = icmp eq i32 %5234, -1
  br i1 %5235, label %5236, label %5289

5236:                                             ; preds = %5230
  br label %5237

5237:                                             ; preds = %5236
  br label %5238

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

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

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

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

5284:                                             ; preds = %5267, %5250
  call void @llvm.lifetime.end.p0(i64 4, ptr %153) #11
  br label %5285

5285:                                             ; preds = %5284
  br label %5286

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

5287:                                             ; No predecessors!
  br label %5288

5288:                                             ; preds = %5287
  br label %5289

5289:                                             ; preds = %5288, %5230
  br label %5290

5290:                                             ; preds = %5289
  br label %5291

5291:                                             ; preds = %5290
  call void @llvm.lifetime.start.p0(i64 8, ptr %154) #11
  %5292 = load i64, ptr %150, align 8, !tbaa !15
  %5293 = getelementptr inbounds [1000 x %struct.s2n_tls13_secrets_test_case], ptr %16, i64 0, i64 %5292
  %5294 = getelementptr inbounds %struct.s2n_tls13_secrets_test_case, ptr %5293, i32 0, i32 3
  %5295 = load i32, ptr %5294, align 4, !tbaa !26
  %5296 = call ptr @s2n_connection_new(i32 noundef %5295)
  store ptr %5296, ptr %154, align 8, !tbaa !9
  %5297 = load i64, ptr %150, align 8, !tbaa !15
  %5298 = getelementptr inbounds [1000 x %struct.s2n_tls13_secrets_test_case], ptr %16, i64 0, i64 %5297
  %5299 = getelementptr inbounds %struct.s2n_tls13_secrets_test_case, ptr %5298, i32 0, i32 4
  %5300 = load ptr, ptr %5299, align 16, !tbaa !28
  %5301 = load ptr, ptr %154, align 8, !tbaa !9
  %5302 = getelementptr inbounds %struct.s2n_connection, ptr %5301, i32 0, i32 27
  %5303 = load ptr, ptr %5302, align 8, !tbaa !39
  %5304 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %5303, i32 0, i32 0
  store ptr %5300, ptr %5304, align 8, !tbaa !64
  %5305 = load i64, ptr %150, align 8, !tbaa !15
  %5306 = getelementptr inbounds [1000 x %struct.s2n_tls13_secrets_test_case], ptr %16, i64 0, i64 %5305
  %5307 = getelementptr inbounds %struct.s2n_tls13_secrets_test_case, ptr %5306, i32 0, i32 0
  %5308 = load i32, ptr %5307, align 16, !tbaa !22
  %5309 = load ptr, ptr %154, align 8, !tbaa !9
  %5310 = getelementptr inbounds %struct.s2n_connection, ptr %5309, i32 0, i32 28
  %5311 = getelementptr inbounds %struct.s2n_secrets, ptr %5310, i32 0, i32 1
  store i32 %5308, ptr %5311, align 4, !tbaa !69
  br label %5312

5312:                                             ; preds = %5291
  %5313 = load i32, ptr @test_count, align 4, !tbaa !5
  %5314 = add nsw i32 %5313, 1
  store i32 %5314, ptr @test_count, align 4, !tbaa !5
  %5315 = load ptr, ptr %154, align 8, !tbaa !9
  %5316 = call i32 @s2n_conn_choose_state_machine(ptr noundef %5315, i8 noundef zeroext 34)
  %5317 = getelementptr inbounds %struct.s2n_result, ptr %155, i32 0, i32 0
  store i32 %5316, ptr %5317, align 4
  %5318 = getelementptr inbounds %struct.s2n_result, ptr %155, i32 0, i32 0
  %5319 = load i32, ptr %5318, align 4
  %5320 = call zeroext i1 @s2n_result_is_ok(i32 %5319)
  br i1 %5320, label %5374, label %5321

5321:                                             ; preds = %5312
  br label %5322

5322:                                             ; preds = %5321
  br label %5323

5323:                                             ; preds = %5322
  call void @llvm.lifetime.start.p0(i64 4, ptr %156) #11
  %5324 = call ptr @__errno_location() #12
  %5325 = load i32, ptr %5324, align 4, !tbaa !5
  store i32 %5325, ptr %156, align 4, !tbaa !5
  %5326 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5327 = call i32 @s2n_print_stacktrace(ptr noundef %5326)
  %5328 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5329 = trunc i8 %5328 to i1
  br i1 %5329, label %5330, label %5352

5330:                                             ; preds = %5323
  %5331 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5332 = call i32 @fileno(ptr noundef %5331) #11
  %5333 = call i32 @isatty(i32 noundef %5332) #11
  %5334 = icmp ne i32 %5333, 0
  br i1 %5334, label %5335, label %5352

5335:                                             ; preds = %5330
  %5336 = load i32, ptr %156, align 4, !tbaa !5
  %5337 = call ptr @__errno_location() #12
  store i32 %5336, ptr %5337, align 4, !tbaa !5
  %5338 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5339 = load i32, ptr @test_count, align 4, !tbaa !5
  %5340 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5341 = load i32, ptr %5340, align 4, !tbaa !5
  %5342 = call ptr @s2n_strerror(i32 noundef %5341, ptr noundef @.str.4)
  %5343 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5344 = load i32, ptr %5343, align 4, !tbaa !5
  %5345 = call ptr @s2n_strerror_debug(i32 noundef %5344, ptr noundef @.str.4)
  %5346 = call ptr @__errno_location() #12
  %5347 = load i32, ptr %5346, align 4, !tbaa !5
  %5348 = call ptr @strerror(i32 noundef %5347) #11
  %5349 = call ptr @__errno_location() #12
  %5350 = load i32, ptr %5349, align 4, !tbaa !5
  %5351 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5338, ptr noundef @.str.2, i32 noundef %5339, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 256, ptr noundef %5342, ptr noundef %5345, ptr noundef %5348, i32 noundef %5350) #11
  br label %5369

5352:                                             ; preds = %5330, %5323
  %5353 = load i32, ptr %156, align 4, !tbaa !5
  %5354 = call ptr @__errno_location() #12
  store i32 %5353, ptr %5354, align 4, !tbaa !5
  %5355 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5356 = load i32, ptr @test_count, align 4, !tbaa !5
  %5357 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5358 = load i32, ptr %5357, align 4, !tbaa !5
  %5359 = call ptr @s2n_strerror(i32 noundef %5358, ptr noundef @.str.4)
  %5360 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5361 = load i32, ptr %5360, align 4, !tbaa !5
  %5362 = call ptr @s2n_strerror_debug(i32 noundef %5361, ptr noundef @.str.4)
  %5363 = call ptr @__errno_location() #12
  %5364 = load i32, ptr %5363, align 4, !tbaa !5
  %5365 = call ptr @strerror(i32 noundef %5364) #11
  %5366 = call ptr @__errno_location() #12
  %5367 = load i32, ptr %5366, align 4, !tbaa !5
  %5368 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5355, ptr noundef @.str.5, i32 noundef %5356, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 256, ptr noundef %5359, ptr noundef %5362, ptr noundef %5365, i32 noundef %5367) #11
  br label %5369

5369:                                             ; preds = %5352, %5335
  call void @llvm.lifetime.end.p0(i64 4, ptr %156) #11
  br label %5370

5370:                                             ; preds = %5369
  br label %5371

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

5372:                                             ; No predecessors!
  br label %5373

5373:                                             ; preds = %5372
  br label %5374

5374:                                             ; preds = %5373, %5312
  br label %5375

5375:                                             ; preds = %5374
  br label %5376

5376:                                             ; preds = %5375
  %5377 = load ptr, ptr %154, align 8, !tbaa !9
  %5378 = getelementptr inbounds %struct.s2n_connection, ptr %5377, i32 0, i32 23
  store i8 34, ptr %5378, align 4, !tbaa !72
  %5379 = load ptr, ptr %154, align 8, !tbaa !9
  %5380 = getelementptr inbounds %struct.s2n_connection, ptr %5379, i32 0, i32 52
  %5381 = getelementptr inbounds %struct.s2n_handshake, ptr %5380, i32 0, i32 6
  store i32 3, ptr %5381, align 4, !tbaa !73
  %5382 = load i64, ptr %150, align 8, !tbaa !15
  %5383 = getelementptr inbounds [1000 x %struct.s2n_tls13_secrets_test_case], ptr %16, i64 0, i64 %5382
  %5384 = getelementptr inbounds %struct.s2n_tls13_secrets_test_case, ptr %5383, i32 0, i32 1
  %5385 = load i32, ptr %5384, align 4, !tbaa !24
  %5386 = zext i32 %5385 to i64
  %5387 = getelementptr inbounds [4 x i32], ptr %88, i64 0, i64 %5386
  %5388 = load i32, ptr %5387, align 4, !tbaa !5
  %5389 = load ptr, ptr %154, align 8, !tbaa !9
  %5390 = getelementptr inbounds %struct.s2n_connection, ptr %5389, i32 0, i32 52
  %5391 = getelementptr inbounds %struct.s2n_handshake, ptr %5390, i32 0, i32 7
  store i32 %5388, ptr %5391, align 8, !tbaa !74
  br label %5392

5392:                                             ; preds = %5376
  %5393 = load i32, ptr @test_count, align 4, !tbaa !5
  %5394 = add nsw i32 %5393, 1
  store i32 %5394, ptr @test_count, align 4, !tbaa !5
  %5395 = load ptr, ptr %154, align 8, !tbaa !9
  %5396 = load i64, ptr %150, align 8, !tbaa !15
  %5397 = getelementptr inbounds [1000 x %struct.s2n_tls13_secrets_test_case], ptr %16, i64 0, i64 %5396
  %5398 = getelementptr inbounds %struct.s2n_tls13_secrets_test_case, ptr %5397, i32 0, i32 5
  %5399 = load ptr, ptr %5398, align 8, !tbaa !30
  %5400 = call i32 @s2n_set_test_key_shares(ptr noundef %5395, ptr noundef %5399)
  %5401 = getelementptr inbounds %struct.s2n_result, ptr %157, i32 0, i32 0
  store i32 %5400, ptr %5401, align 4
  %5402 = getelementptr inbounds %struct.s2n_result, ptr %157, i32 0, i32 0
  %5403 = load i32, ptr %5402, align 4
  %5404 = call zeroext i1 @s2n_result_is_ok(i32 %5403)
  br i1 %5404, label %5458, label %5405

5405:                                             ; preds = %5392
  br label %5406

5406:                                             ; preds = %5405
  br label %5407

5407:                                             ; preds = %5406
  call void @llvm.lifetime.start.p0(i64 4, ptr %158) #11
  %5408 = call ptr @__errno_location() #12
  %5409 = load i32, ptr %5408, align 4, !tbaa !5
  store i32 %5409, ptr %158, 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 %158, 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.27, ptr noundef @.str.1, i32 noundef 260, ptr noundef %5426, ptr noundef %5429, ptr noundef %5432, i32 noundef %5434) #11
  br label %5453

5436:                                             ; preds = %5414, %5407
  %5437 = load i32, ptr %158, 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.27, ptr noundef @.str.1, i32 noundef 260, 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 %158) #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, %5392
  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 %154, align 8, !tbaa !9
  %5465 = load i64, ptr %150, align 8, !tbaa !15
  %5466 = getelementptr inbounds [1000 x %struct.s2n_tls13_secrets_test_case], ptr %16, i64 0, i64 %5465
  %5467 = getelementptr inbounds %struct.s2n_tls13_secrets_test_case, ptr %5466, i32 0, i32 1
  %5468 = load i32, ptr %5467, align 4, !tbaa !24
  %5469 = load i64, ptr %150, align 8, !tbaa !15
  %5470 = getelementptr inbounds [1000 x %struct.s2n_tls13_secrets_test_case], ptr %16, i64 0, i64 %5469
  %5471 = getelementptr inbounds %struct.s2n_tls13_secrets_test_case, ptr %5470, i32 0, i32 2
  %5472 = load i32, ptr %5471, align 8, !tbaa !25
  %5473 = call i32 @s2n_tls13_derive_secret(ptr noundef %5464, i32 noundef %5468, i32 noundef %5472, ptr noundef %152)
  %5474 = getelementptr inbounds %struct.s2n_result, ptr %159, i32 0, i32 0
  store i32 %5473, ptr %5474, align 4
  %5475 = getelementptr inbounds %struct.s2n_result, ptr %159, i32 0, i32 0
  %5476 = load i32, ptr %5475, align 4
  %5477 = call zeroext i1 @s2n_result_is_ok(i32 %5476)
  br i1 %5477, label %5531, label %5478

5478:                                             ; preds = %5461
  br label %5479

5479:                                             ; preds = %5478
  br label %5480

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

5487:                                             ; preds = %5480
  %5488 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5489 = call i32 @fileno(ptr noundef %5488) #11
  %5490 = call i32 @isatty(i32 noundef %5489) #11
  %5491 = icmp ne i32 %5490, 0
  br i1 %5491, label %5492, label %5509

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

5509:                                             ; preds = %5487, %5480
  %5510 = load i32, ptr %160, align 4, !tbaa !5
  %5511 = call ptr @__errno_location() #12
  store i32 %5510, ptr %5511, align 4, !tbaa !5
  %5512 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5513 = load i32, ptr @test_count, align 4, !tbaa !5
  %5514 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5515 = load i32, ptr %5514, align 4, !tbaa !5
  %5516 = call ptr @s2n_strerror(i32 noundef %5515, ptr noundef @.str.4)
  %5517 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5518 = load i32, ptr %5517, align 4, !tbaa !5
  %5519 = call ptr @s2n_strerror_debug(i32 noundef %5518, ptr noundef @.str.4)
  %5520 = call ptr @__errno_location() #12
  %5521 = load i32, ptr %5520, align 4, !tbaa !5
  %5522 = call ptr @strerror(i32 noundef %5521) #11
  %5523 = call ptr @__errno_location() #12
  %5524 = load i32, ptr %5523, align 4, !tbaa !5
  %5525 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5512, ptr noundef @.str.5, i32 noundef %5513, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 261, ptr noundef %5516, ptr noundef %5519, ptr noundef %5522, i32 noundef %5524) #11
  br label %5526

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

5527:                                             ; preds = %5526
  br label %5528

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

5529:                                             ; No predecessors!
  br label %5530

5530:                                             ; preds = %5529
  br label %5531

5531:                                             ; preds = %5530, %5461
  br label %5532

5532:                                             ; preds = %5531
  br label %5533

5533:                                             ; preds = %5532
  br label %5534

5534:                                             ; preds = %5533
  %5535 = load i32, ptr @test_count, align 4, !tbaa !5
  %5536 = add nsw i32 %5535, 1
  store i32 %5536, ptr @test_count, align 4, !tbaa !5
  %5537 = getelementptr inbounds %struct.s2n_blob, ptr %152, i32 0, i32 0
  %5538 = load ptr, ptr %5537, align 8, !tbaa !71
  %5539 = getelementptr inbounds [48 x i8], ptr %9, i64 0, i64 0
  %5540 = call i32 @memcmp(ptr noundef %5538, ptr noundef %5539, i64 noundef 48) #14
  %5541 = icmp eq i32 %5540, 0
  br i1 %5541, label %5542, label %5595

5542:                                             ; preds = %5534
  br label %5543

5543:                                             ; preds = %5542
  br label %5544

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

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

5556:                                             ; preds = %5551
  %5557 = load i32, ptr %161, align 4, !tbaa !5
  %5558 = call ptr @__errno_location() #12
  store i32 %5557, ptr %5558, align 4, !tbaa !5
  %5559 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5560 = load i32, ptr @test_count, align 4, !tbaa !5
  %5561 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5562 = load i32, ptr %5561, align 4, !tbaa !5
  %5563 = call ptr @s2n_strerror(i32 noundef %5562, ptr noundef @.str.4)
  %5564 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5565 = load i32, ptr %5564, align 4, !tbaa !5
  %5566 = call ptr @s2n_strerror_debug(i32 noundef %5565, ptr noundef @.str.4)
  %5567 = call ptr @__errno_location() #12
  %5568 = load i32, ptr %5567, align 4, !tbaa !5
  %5569 = call ptr @strerror(i32 noundef %5568) #11
  %5570 = call ptr @__errno_location() #12
  %5571 = load i32, ptr %5570, align 4, !tbaa !5
  %5572 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5559, ptr noundef @.str.2, i32 noundef %5560, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 262, ptr noundef %5563, ptr noundef %5566, ptr noundef %5569, i32 noundef %5571) #11
  br label %5590

5573:                                             ; preds = %5551, %5544
  %5574 = load i32, ptr %161, align 4, !tbaa !5
  %5575 = call ptr @__errno_location() #12
  store i32 %5574, ptr %5575, align 4, !tbaa !5
  %5576 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5577 = load i32, ptr @test_count, align 4, !tbaa !5
  %5578 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5579 = load i32, ptr %5578, align 4, !tbaa !5
  %5580 = call ptr @s2n_strerror(i32 noundef %5579, ptr noundef @.str.4)
  %5581 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5582 = load i32, ptr %5581, align 4, !tbaa !5
  %5583 = call ptr @s2n_strerror_debug(i32 noundef %5582, ptr noundef @.str.4)
  %5584 = call ptr @__errno_location() #12
  %5585 = load i32, ptr %5584, align 4, !tbaa !5
  %5586 = call ptr @strerror(i32 noundef %5585) #11
  %5587 = call ptr @__errno_location() #12
  %5588 = load i32, ptr %5587, align 4, !tbaa !5
  %5589 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5576, ptr noundef @.str.5, i32 noundef %5577, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 262, ptr noundef %5580, ptr noundef %5583, ptr noundef %5586, i32 noundef %5588) #11
  br label %5590

5590:                                             ; preds = %5573, %5556
  call void @llvm.lifetime.end.p0(i64 4, ptr %161) #11
  br label %5591

5591:                                             ; preds = %5590
  br label %5592

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

5593:                                             ; No predecessors!
  br label %5594

5594:                                             ; preds = %5593
  br label %5595

5595:                                             ; preds = %5594, %5534
  br label %5596

5596:                                             ; preds = %5595
  br label %5597

5597:                                             ; preds = %5596
  %5598 = call i32 @s2n_connection_ptr_free(ptr noundef %154)
  %5599 = getelementptr inbounds %struct.s2n_result, ptr %162, i32 0, i32 0
  store i32 %5598, ptr %5599, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %154) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %152) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr %151) #11
  br label %5600

5600:                                             ; preds = %5597
  %5601 = load i64, ptr %150, align 8, !tbaa !15
  %5602 = add i64 %5601, 1
  store i64 %5602, ptr %150, align 8, !tbaa !15
  br label %5224, !llvm.loop !75

5603:                                             ; preds = %5228
  call void @llvm.lifetime.end.p0(i64 16, ptr %88) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #11
  br label %5604

5604:                                             ; preds = %5603
  br label %5605

5605:                                             ; preds = %5604
  br label %5606

5606:                                             ; preds = %5605
  %5607 = load i32, ptr @test_count, align 4, !tbaa !5
  %5608 = add nsw i32 %5607, 1
  store i32 %5608, ptr @test_count, align 4, !tbaa !5
  %5609 = call i32 @s2n_tls13_secrets_clean(ptr noundef null)
  %5610 = getelementptr inbounds %struct.s2n_result, ptr %163, i32 0, i32 0
  store i32 %5609, ptr %5610, align 4
  %5611 = getelementptr inbounds %struct.s2n_result, ptr %163, i32 0, i32 0
  %5612 = load i32, ptr %5611, align 4
  %5613 = call zeroext i1 @s2n_result_is_error(i32 %5612)
  br i1 %5613, label %5667, label %5614

5614:                                             ; preds = %5606
  br label %5615

5615:                                             ; preds = %5614
  br label %5616

5616:                                             ; preds = %5615
  call void @llvm.lifetime.start.p0(i64 4, ptr %164) #11
  %5617 = call ptr @__errno_location() #12
  %5618 = load i32, ptr %5617, align 4, !tbaa !5
  store i32 %5618, ptr %164, align 4, !tbaa !5
  %5619 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5620 = call i32 @s2n_print_stacktrace(ptr noundef %5619)
  %5621 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5622 = trunc i8 %5621 to i1
  br i1 %5622, label %5623, label %5645

5623:                                             ; preds = %5616
  %5624 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5625 = call i32 @fileno(ptr noundef %5624) #11
  %5626 = call i32 @isatty(i32 noundef %5625) #11
  %5627 = icmp ne i32 %5626, 0
  br i1 %5627, label %5628, label %5645

5628:                                             ; preds = %5623
  %5629 = load i32, ptr %164, align 4, !tbaa !5
  %5630 = call ptr @__errno_location() #12
  store i32 %5629, ptr %5630, align 4, !tbaa !5
  %5631 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5632 = load i32, ptr @test_count, align 4, !tbaa !5
  %5633 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5634 = load i32, ptr %5633, align 4, !tbaa !5
  %5635 = call ptr @s2n_strerror(i32 noundef %5634, ptr noundef @.str.4)
  %5636 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5637 = load i32, ptr %5636, align 4, !tbaa !5
  %5638 = call ptr @s2n_strerror_debug(i32 noundef %5637, ptr noundef @.str.4)
  %5639 = call ptr @__errno_location() #12
  %5640 = load i32, ptr %5639, align 4, !tbaa !5
  %5641 = call ptr @strerror(i32 noundef %5640) #11
  %5642 = call ptr @__errno_location() #12
  %5643 = load i32, ptr %5642, align 4, !tbaa !5
  %5644 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5631, ptr noundef @.str.2, i32 noundef %5632, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 269, ptr noundef %5635, ptr noundef %5638, ptr noundef %5641, i32 noundef %5643) #11
  br label %5662

5645:                                             ; preds = %5623, %5616
  %5646 = load i32, ptr %164, align 4, !tbaa !5
  %5647 = call ptr @__errno_location() #12
  store i32 %5646, ptr %5647, align 4, !tbaa !5
  %5648 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5649 = load i32, ptr @test_count, align 4, !tbaa !5
  %5650 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5651 = load i32, ptr %5650, align 4, !tbaa !5
  %5652 = call ptr @s2n_strerror(i32 noundef %5651, ptr noundef @.str.4)
  %5653 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5654 = load i32, ptr %5653, align 4, !tbaa !5
  %5655 = call ptr @s2n_strerror_debug(i32 noundef %5654, ptr noundef @.str.4)
  %5656 = call ptr @__errno_location() #12
  %5657 = load i32, ptr %5656, align 4, !tbaa !5
  %5658 = call ptr @strerror(i32 noundef %5657) #11
  %5659 = call ptr @__errno_location() #12
  %5660 = load i32, ptr %5659, align 4, !tbaa !5
  %5661 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5648, ptr noundef @.str.5, i32 noundef %5649, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 269, ptr noundef %5652, ptr noundef %5655, ptr noundef %5658, i32 noundef %5660) #11
  br label %5662

5662:                                             ; preds = %5645, %5628
  call void @llvm.lifetime.end.p0(i64 4, ptr %164) #11
  br label %5663

5663:                                             ; preds = %5662
  br label %5664

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

5665:                                             ; No predecessors!
  br label %5666

5666:                                             ; preds = %5665
  br label %5667

5667:                                             ; preds = %5666, %5606
  br label %5668

5668:                                             ; preds = %5667
  br label %5669

5669:                                             ; preds = %5668
  br label %5670

5670:                                             ; preds = %5669
  %5671 = load i32, ptr @test_count, align 4, !tbaa !5
  %5672 = add nsw i32 %5671, 1
  store i32 %5672, ptr @test_count, align 4, !tbaa !5
  %5673 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5674 = load i32, ptr %5673, align 4, !tbaa !5
  %5675 = icmp eq i32 %5674, 402653193
  br i1 %5675, label %5729, label %5676

5676:                                             ; preds = %5670
  br label %5677

5677:                                             ; preds = %5676
  br label %5678

5678:                                             ; preds = %5677
  call void @llvm.lifetime.start.p0(i64 4, ptr %165) #11
  %5679 = call ptr @__errno_location() #12
  %5680 = load i32, ptr %5679, align 4, !tbaa !5
  store i32 %5680, ptr %165, align 4, !tbaa !5
  %5681 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5682 = call i32 @s2n_print_stacktrace(ptr noundef %5681)
  %5683 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5684 = trunc i8 %5683 to i1
  br i1 %5684, label %5685, label %5707

5685:                                             ; preds = %5678
  %5686 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5687 = call i32 @fileno(ptr noundef %5686) #11
  %5688 = call i32 @isatty(i32 noundef %5687) #11
  %5689 = icmp ne i32 %5688, 0
  br i1 %5689, label %5690, label %5707

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

5707:                                             ; preds = %5685, %5678
  %5708 = load i32, ptr %165, align 4, !tbaa !5
  %5709 = call ptr @__errno_location() #12
  store i32 %5708, ptr %5709, align 4, !tbaa !5
  %5710 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5711 = load i32, ptr @test_count, align 4, !tbaa !5
  %5712 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5713 = load i32, ptr %5712, align 4, !tbaa !5
  %5714 = call ptr @s2n_strerror(i32 noundef %5713, ptr noundef @.str.4)
  %5715 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5716 = load i32, ptr %5715, align 4, !tbaa !5
  %5717 = call ptr @s2n_strerror_debug(i32 noundef %5716, ptr noundef @.str.4)
  %5718 = call ptr @__errno_location() #12
  %5719 = load i32, ptr %5718, align 4, !tbaa !5
  %5720 = call ptr @strerror(i32 noundef %5719) #11
  %5721 = call ptr @__errno_location() #12
  %5722 = load i32, ptr %5721, align 4, !tbaa !5
  %5723 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5710, ptr noundef @.str.5, i32 noundef %5711, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 269, ptr noundef %5714, ptr noundef %5717, ptr noundef %5720, i32 noundef %5722) #11
  br label %5724

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

5725:                                             ; preds = %5724
  br label %5726

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

5727:                                             ; No predecessors!
  br label %5728

5728:                                             ; preds = %5727
  br label %5729

5729:                                             ; preds = %5728, %5670
  br label %5730

5730:                                             ; preds = %5729
  br label %5731

5731:                                             ; preds = %5730
  br label %5732

5732:                                             ; preds = %5731
  %5733 = load i32, ptr @test_count, align 4, !tbaa !5
  %5734 = add nsw i32 %5733, 1
  store i32 %5734, ptr @test_count, align 4, !tbaa !5
  %5735 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5736 = load i32, ptr %5735, align 4, !tbaa !5
  %5737 = call ptr @s2n_strerror_debug(i32 noundef %5736, ptr noundef @.str.4)
  %5738 = icmp eq ptr %5737, null
  br i1 %5738, label %5739, label %5792

5739:                                             ; preds = %5732
  br label %5740

5740:                                             ; preds = %5739
  br label %5741

5741:                                             ; preds = %5740
  call void @llvm.lifetime.start.p0(i64 4, ptr %166) #11
  %5742 = call ptr @__errno_location() #12
  %5743 = load i32, ptr %5742, align 4, !tbaa !5
  store i32 %5743, ptr %166, align 4, !tbaa !5
  %5744 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5745 = call i32 @s2n_print_stacktrace(ptr noundef %5744)
  %5746 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5747 = trunc i8 %5746 to i1
  br i1 %5747, label %5748, label %5770

5748:                                             ; preds = %5741
  %5749 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5750 = call i32 @fileno(ptr noundef %5749) #11
  %5751 = call i32 @isatty(i32 noundef %5750) #11
  %5752 = icmp ne i32 %5751, 0
  br i1 %5752, label %5753, label %5770

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

5770:                                             ; preds = %5748, %5741
  %5771 = load i32, ptr %166, align 4, !tbaa !5
  %5772 = call ptr @__errno_location() #12
  store i32 %5771, ptr %5772, align 4, !tbaa !5
  %5773 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5774 = load i32, ptr @test_count, align 4, !tbaa !5
  %5775 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5776 = load i32, ptr %5775, align 4, !tbaa !5
  %5777 = call ptr @s2n_strerror(i32 noundef %5776, ptr noundef @.str.4)
  %5778 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5779 = load i32, ptr %5778, align 4, !tbaa !5
  %5780 = call ptr @s2n_strerror_debug(i32 noundef %5779, ptr noundef @.str.4)
  %5781 = call ptr @__errno_location() #12
  %5782 = load i32, ptr %5781, align 4, !tbaa !5
  %5783 = call ptr @strerror(i32 noundef %5782) #11
  %5784 = call ptr @__errno_location() #12
  %5785 = load i32, ptr %5784, align 4, !tbaa !5
  %5786 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5773, ptr noundef @.str.5, i32 noundef %5774, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 269, ptr noundef %5777, ptr noundef %5780, ptr noundef %5783, i32 noundef %5785) #11
  br label %5787

5787:                                             ; preds = %5770, %5753
  call void @llvm.lifetime.end.p0(i64 4, ptr %166) #11
  br label %5788

5788:                                             ; preds = %5787
  br label %5789

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

5790:                                             ; No predecessors!
  br label %5791

5791:                                             ; preds = %5790
  br label %5792

5792:                                             ; preds = %5791, %5732
  br label %5793

5793:                                             ; preds = %5792
  br label %5794

5794:                                             ; preds = %5793
  br label %5795

5795:                                             ; preds = %5794
  br label %5796

5796:                                             ; preds = %5795
  br label %5797

5797:                                             ; preds = %5796
  %5798 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %5798, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %5799 = call ptr @__errno_location() #12
  store i32 0, ptr %5799, align 4, !tbaa !5
  br label %5800

5800:                                             ; preds = %5797
  br label %5801

5801:                                             ; preds = %5800
  br label %5802

5802:                                             ; preds = %5801
  br label %5803

5803:                                             ; preds = %5802
  call void @llvm.lifetime.start.p0(i64 8, ptr %167) #11
  %5804 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %5804, ptr %167, align 8, !tbaa !9
  %5805 = load ptr, ptr %167, align 8, !tbaa !9
  %5806 = getelementptr inbounds %struct.s2n_connection, ptr %5805, i32 0, i32 27
  %5807 = load ptr, ptr %5806, align 8, !tbaa !39
  %5808 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %5807, i32 0, i32 0
  store ptr @s2n_tls13_aes_128_gcm_sha256, ptr %5808, align 8, !tbaa !64
  %5809 = load ptr, ptr %167, align 8, !tbaa !9
  %5810 = getelementptr inbounds %struct.s2n_connection, ptr %5809, i32 0, i32 23
  store i8 34, ptr %5810, align 4, !tbaa !72
  br label %5811

5811:                                             ; preds = %5803
  call void @llvm.lifetime.start.p0(i64 4, ptr %168) #11
  %5812 = getelementptr inbounds %struct.s2n_blob, ptr %13, i32 0, i32 1
  %5813 = load i32, ptr %5812, align 8, !tbaa !76
  store i32 %5813, ptr %168, align 4, !tbaa !5
  %5814 = load i32, ptr %168, align 4, !tbaa !5
  %5815 = icmp ne i32 %5814, 0
  br i1 %5815, label %5816, label %5881

5816:                                             ; preds = %5811
  %5817 = load ptr, ptr %167, align 8, !tbaa !9
  %5818 = getelementptr inbounds %struct.s2n_connection, ptr %5817, i32 0, i32 28
  %5819 = getelementptr inbounds %struct.s2n_secrets, ptr %5818, i32 0, i32 0
  %5820 = getelementptr inbounds %struct.s2n_tls13_secrets, ptr %5819, i32 0, i32 0
  %5821 = getelementptr inbounds [48 x i8], ptr %5820, i64 0, i64 0
  %5822 = getelementptr inbounds %struct.s2n_blob, ptr %13, i32 0, i32 0
  %5823 = load ptr, ptr %5822, align 8, !tbaa !71
  %5824 = load i32, ptr %168, align 4, !tbaa !5
  %5825 = zext i32 %5824 to i64
  call void @llvm.memmove.p0.p0.i64(ptr align 8 %5821, ptr align 1 %5823, i64 %5825, i1 false)
  %5826 = icmp eq ptr %5821, null
  br i1 %5826, label %5827, label %5880

5827:                                             ; preds = %5816
  br label %5828

5828:                                             ; preds = %5827
  br label %5829

5829:                                             ; preds = %5828
  call void @llvm.lifetime.start.p0(i64 4, ptr %169) #11
  %5830 = call ptr @__errno_location() #12
  %5831 = load i32, ptr %5830, align 4, !tbaa !5
  store i32 %5831, ptr %169, align 4, !tbaa !5
  %5832 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5833 = call i32 @s2n_print_stacktrace(ptr noundef %5832)
  %5834 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5835 = trunc i8 %5834 to i1
  br i1 %5835, label %5836, label %5858

5836:                                             ; preds = %5829
  %5837 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5838 = call i32 @fileno(ptr noundef %5837) #11
  %5839 = call i32 @isatty(i32 noundef %5838) #11
  %5840 = icmp ne i32 %5839, 0
  br i1 %5840, label %5841, label %5858

5841:                                             ; preds = %5836
  %5842 = load i32, ptr %169, align 4, !tbaa !5
  %5843 = call ptr @__errno_location() #12
  store i32 %5842, ptr %5843, align 4, !tbaa !5
  %5844 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5845 = load i32, ptr @test_count, align 4, !tbaa !5
  %5846 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5847 = load i32, ptr %5846, align 4, !tbaa !5
  %5848 = call ptr @s2n_strerror(i32 noundef %5847, ptr noundef @.str.4)
  %5849 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5850 = load i32, ptr %5849, align 4, !tbaa !5
  %5851 = call ptr @s2n_strerror_debug(i32 noundef %5850, ptr noundef @.str.4)
  %5852 = call ptr @__errno_location() #12
  %5853 = load i32, ptr %5852, align 4, !tbaa !5
  %5854 = call ptr @strerror(i32 noundef %5853) #11
  %5855 = call ptr @__errno_location() #12
  %5856 = load i32, ptr %5855, align 4, !tbaa !5
  %5857 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5844, ptr noundef @.str.2, i32 noundef %5845, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 278, ptr noundef %5848, ptr noundef %5851, ptr noundef %5854, i32 noundef %5856) #11
  br label %5875

5858:                                             ; preds = %5836, %5829
  %5859 = load i32, ptr %169, align 4, !tbaa !5
  %5860 = call ptr @__errno_location() #12
  store i32 %5859, ptr %5860, align 4, !tbaa !5
  %5861 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5862 = load i32, ptr @test_count, align 4, !tbaa !5
  %5863 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5864 = load i32, ptr %5863, align 4, !tbaa !5
  %5865 = call ptr @s2n_strerror(i32 noundef %5864, ptr noundef @.str.4)
  %5866 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5867 = load i32, ptr %5866, align 4, !tbaa !5
  %5868 = call ptr @s2n_strerror_debug(i32 noundef %5867, ptr noundef @.str.4)
  %5869 = call ptr @__errno_location() #12
  %5870 = load i32, ptr %5869, align 4, !tbaa !5
  %5871 = call ptr @strerror(i32 noundef %5870) #11
  %5872 = call ptr @__errno_location() #12
  %5873 = load i32, ptr %5872, align 4, !tbaa !5
  %5874 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5861, ptr noundef @.str.5, i32 noundef %5862, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 278, ptr noundef %5865, ptr noundef %5868, ptr noundef %5871, i32 noundef %5873) #11
  br label %5875

5875:                                             ; preds = %5858, %5841
  call void @llvm.lifetime.end.p0(i64 4, ptr %169) #11
  br label %5876

5876:                                             ; preds = %5875
  br label %5877

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

5878:                                             ; No predecessors!
  br label %5879

5879:                                             ; preds = %5878
  br label %5880

5880:                                             ; preds = %5879, %5816
  br label %5881

5881:                                             ; preds = %5880, %5811
  call void @llvm.lifetime.end.p0(i64 4, ptr %168) #11
  br label %5882

5882:                                             ; preds = %5881
  br label %5883

5883:                                             ; preds = %5882
  br label %5884

5884:                                             ; preds = %5883
  call void @llvm.lifetime.start.p0(i64 4, ptr %170) #11
  %5885 = getelementptr inbounds %struct.s2n_blob, ptr %13, i32 0, i32 1
  %5886 = load i32, ptr %5885, align 8, !tbaa !76
  store i32 %5886, ptr %170, align 4, !tbaa !5
  %5887 = load i32, ptr %170, align 4, !tbaa !5
  %5888 = icmp ne i32 %5887, 0
  br i1 %5888, label %5889, label %5954

5889:                                             ; preds = %5884
  %5890 = load ptr, ptr %167, align 8, !tbaa !9
  %5891 = getelementptr inbounds %struct.s2n_connection, ptr %5890, i32 0, i32 28
  %5892 = getelementptr inbounds %struct.s2n_secrets, ptr %5891, i32 0, i32 0
  %5893 = getelementptr inbounds %struct.s2n_tls13_secrets, ptr %5892, i32 0, i32 1
  %5894 = getelementptr inbounds [48 x i8], ptr %5893, i64 0, i64 0
  %5895 = getelementptr inbounds %struct.s2n_blob, ptr %13, i32 0, i32 0
  %5896 = load ptr, ptr %5895, align 8, !tbaa !71
  %5897 = load i32, ptr %170, align 4, !tbaa !5
  %5898 = zext i32 %5897 to i64
  call void @llvm.memmove.p0.p0.i64(ptr align 8 %5894, ptr align 1 %5896, i64 %5898, i1 false)
  %5899 = icmp eq ptr %5894, null
  br i1 %5899, label %5900, label %5953

5900:                                             ; preds = %5889
  br label %5901

5901:                                             ; preds = %5900
  br label %5902

5902:                                             ; preds = %5901
  call void @llvm.lifetime.start.p0(i64 4, ptr %171) #11
  %5903 = call ptr @__errno_location() #12
  %5904 = load i32, ptr %5903, align 4, !tbaa !5
  store i32 %5904, ptr %171, align 4, !tbaa !5
  %5905 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5906 = call i32 @s2n_print_stacktrace(ptr noundef %5905)
  %5907 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5908 = trunc i8 %5907 to i1
  br i1 %5908, label %5909, label %5931

5909:                                             ; preds = %5902
  %5910 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5911 = call i32 @fileno(ptr noundef %5910) #11
  %5912 = call i32 @isatty(i32 noundef %5911) #11
  %5913 = icmp ne i32 %5912, 0
  br i1 %5913, label %5914, label %5931

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

5931:                                             ; preds = %5909, %5902
  %5932 = load i32, ptr %171, align 4, !tbaa !5
  %5933 = call ptr @__errno_location() #12
  store i32 %5932, ptr %5933, align 4, !tbaa !5
  %5934 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5935 = load i32, ptr @test_count, align 4, !tbaa !5
  %5936 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5937 = load i32, ptr %5936, align 4, !tbaa !5
  %5938 = call ptr @s2n_strerror(i32 noundef %5937, ptr noundef @.str.4)
  %5939 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5940 = load i32, ptr %5939, align 4, !tbaa !5
  %5941 = call ptr @s2n_strerror_debug(i32 noundef %5940, ptr noundef @.str.4)
  %5942 = call ptr @__errno_location() #12
  %5943 = load i32, ptr %5942, align 4, !tbaa !5
  %5944 = call ptr @strerror(i32 noundef %5943) #11
  %5945 = call ptr @__errno_location() #12
  %5946 = load i32, ptr %5945, align 4, !tbaa !5
  %5947 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5934, ptr noundef @.str.5, i32 noundef %5935, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 279, ptr noundef %5938, ptr noundef %5941, ptr noundef %5944, i32 noundef %5946) #11
  br label %5948

5948:                                             ; preds = %5931, %5914
  call void @llvm.lifetime.end.p0(i64 4, ptr %171) #11
  br label %5949

5949:                                             ; preds = %5948
  br label %5950

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

5951:                                             ; No predecessors!
  br label %5952

5952:                                             ; preds = %5951
  br label %5953

5953:                                             ; preds = %5952, %5889
  br label %5954

5954:                                             ; preds = %5953, %5884
  call void @llvm.lifetime.end.p0(i64 4, ptr %170) #11
  br label %5955

5955:                                             ; preds = %5954
  br label %5956

5956:                                             ; preds = %5955
  br label %5957

5957:                                             ; preds = %5956
  call void @llvm.lifetime.start.p0(i64 4, ptr %172) #11
  %5958 = getelementptr inbounds %struct.s2n_blob, ptr %13, i32 0, i32 1
  %5959 = load i32, ptr %5958, align 8, !tbaa !76
  store i32 %5959, ptr %172, align 4, !tbaa !5
  %5960 = load i32, ptr %172, align 4, !tbaa !5
  %5961 = icmp ne i32 %5960, 0
  br i1 %5961, label %5962, label %6027

5962:                                             ; preds = %5957
  %5963 = load ptr, ptr %167, align 8, !tbaa !9
  %5964 = getelementptr inbounds %struct.s2n_connection, ptr %5963, i32 0, i32 28
  %5965 = getelementptr inbounds %struct.s2n_secrets, ptr %5964, i32 0, i32 0
  %5966 = getelementptr inbounds %struct.s2n_tls13_secrets, ptr %5965, i32 0, i32 2
  %5967 = getelementptr inbounds [48 x i8], ptr %5966, i64 0, i64 0
  %5968 = getelementptr inbounds %struct.s2n_blob, ptr %13, i32 0, i32 0
  %5969 = load ptr, ptr %5968, align 8, !tbaa !71
  %5970 = load i32, ptr %172, align 4, !tbaa !5
  %5971 = zext i32 %5970 to i64
  call void @llvm.memmove.p0.p0.i64(ptr align 8 %5967, ptr align 1 %5969, i64 %5971, i1 false)
  %5972 = icmp eq ptr %5967, null
  br i1 %5972, label %5973, label %6026

5973:                                             ; preds = %5962
  br label %5974

5974:                                             ; preds = %5973
  br label %5975

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

5982:                                             ; preds = %5975
  %5983 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5984 = call i32 @fileno(ptr noundef %5983) #11
  %5985 = call i32 @isatty(i32 noundef %5984) #11
  %5986 = icmp ne i32 %5985, 0
  br i1 %5986, label %5987, label %6004

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

6004:                                             ; preds = %5982, %5975
  %6005 = load i32, ptr %173, align 4, !tbaa !5
  %6006 = call ptr @__errno_location() #12
  store i32 %6005, ptr %6006, align 4, !tbaa !5
  %6007 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6008 = load i32, ptr @test_count, align 4, !tbaa !5
  %6009 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6010 = load i32, ptr %6009, align 4, !tbaa !5
  %6011 = call ptr @s2n_strerror(i32 noundef %6010, ptr noundef @.str.4)
  %6012 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6013 = load i32, ptr %6012, align 4, !tbaa !5
  %6014 = call ptr @s2n_strerror_debug(i32 noundef %6013, ptr noundef @.str.4)
  %6015 = call ptr @__errno_location() #12
  %6016 = load i32, ptr %6015, align 4, !tbaa !5
  %6017 = call ptr @strerror(i32 noundef %6016) #11
  %6018 = call ptr @__errno_location() #12
  %6019 = load i32, ptr %6018, align 4, !tbaa !5
  %6020 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6007, ptr noundef @.str.5, i32 noundef %6008, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 280, ptr noundef %6011, ptr noundef %6014, ptr noundef %6017, i32 noundef %6019) #11
  br label %6021

6021:                                             ; preds = %6004, %5987
  call void @llvm.lifetime.end.p0(i64 4, ptr %173) #11
  br label %6022

6022:                                             ; preds = %6021
  br label %6023

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

6024:                                             ; No predecessors!
  br label %6025

6025:                                             ; preds = %6024
  br label %6026

6026:                                             ; preds = %6025, %5962
  br label %6027

6027:                                             ; preds = %6026, %5957
  call void @llvm.lifetime.end.p0(i64 4, ptr %172) #11
  br label %6028

6028:                                             ; preds = %6027
  br label %6029

6029:                                             ; preds = %6028
  br label %6030

6030:                                             ; preds = %6029
  call void @llvm.lifetime.start.p0(i64 4, ptr %174) #11
  %6031 = getelementptr inbounds %struct.s2n_blob, ptr %13, i32 0, i32 1
  %6032 = load i32, ptr %6031, align 8, !tbaa !76
  store i32 %6032, ptr %174, align 4, !tbaa !5
  %6033 = load i32, ptr %174, align 4, !tbaa !5
  %6034 = icmp ne i32 %6033, 0
  br i1 %6034, label %6035, label %6100

6035:                                             ; preds = %6030
  %6036 = load ptr, ptr %167, align 8, !tbaa !9
  %6037 = getelementptr inbounds %struct.s2n_connection, ptr %6036, i32 0, i32 28
  %6038 = getelementptr inbounds %struct.s2n_secrets, ptr %6037, i32 0, i32 0
  %6039 = getelementptr inbounds %struct.s2n_tls13_secrets, ptr %6038, i32 0, i32 3
  %6040 = getelementptr inbounds [48 x i8], ptr %6039, i64 0, i64 0
  %6041 = getelementptr inbounds %struct.s2n_blob, ptr %13, i32 0, i32 0
  %6042 = load ptr, ptr %6041, align 8, !tbaa !71
  %6043 = load i32, ptr %174, align 4, !tbaa !5
  %6044 = zext i32 %6043 to i64
  call void @llvm.memmove.p0.p0.i64(ptr align 8 %6040, ptr align 1 %6042, i64 %6044, i1 false)
  %6045 = icmp eq ptr %6040, null
  br i1 %6045, label %6046, label %6099

6046:                                             ; preds = %6035
  br label %6047

6047:                                             ; preds = %6046
  br label %6048

6048:                                             ; preds = %6047
  call void @llvm.lifetime.start.p0(i64 4, ptr %175) #11
  %6049 = call ptr @__errno_location() #12
  %6050 = load i32, ptr %6049, align 4, !tbaa !5
  store i32 %6050, ptr %175, align 4, !tbaa !5
  %6051 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6052 = call i32 @s2n_print_stacktrace(ptr noundef %6051)
  %6053 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6054 = trunc i8 %6053 to i1
  br i1 %6054, label %6055, label %6077

6055:                                             ; preds = %6048
  %6056 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6057 = call i32 @fileno(ptr noundef %6056) #11
  %6058 = call i32 @isatty(i32 noundef %6057) #11
  %6059 = icmp ne i32 %6058, 0
  br i1 %6059, label %6060, label %6077

6060:                                             ; preds = %6055
  %6061 = load i32, ptr %175, align 4, !tbaa !5
  %6062 = call ptr @__errno_location() #12
  store i32 %6061, ptr %6062, align 4, !tbaa !5
  %6063 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6064 = load i32, ptr @test_count, align 4, !tbaa !5
  %6065 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6066 = load i32, ptr %6065, align 4, !tbaa !5
  %6067 = call ptr @s2n_strerror(i32 noundef %6066, ptr noundef @.str.4)
  %6068 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6069 = load i32, ptr %6068, align 4, !tbaa !5
  %6070 = call ptr @s2n_strerror_debug(i32 noundef %6069, ptr noundef @.str.4)
  %6071 = call ptr @__errno_location() #12
  %6072 = load i32, ptr %6071, align 4, !tbaa !5
  %6073 = call ptr @strerror(i32 noundef %6072) #11
  %6074 = call ptr @__errno_location() #12
  %6075 = load i32, ptr %6074, align 4, !tbaa !5
  %6076 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6063, ptr noundef @.str.2, i32 noundef %6064, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 281, ptr noundef %6067, ptr noundef %6070, ptr noundef %6073, i32 noundef %6075) #11
  br label %6094

6077:                                             ; preds = %6055, %6048
  %6078 = load i32, ptr %175, align 4, !tbaa !5
  %6079 = call ptr @__errno_location() #12
  store i32 %6078, ptr %6079, align 4, !tbaa !5
  %6080 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6081 = load i32, ptr @test_count, align 4, !tbaa !5
  %6082 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6083 = load i32, ptr %6082, align 4, !tbaa !5
  %6084 = call ptr @s2n_strerror(i32 noundef %6083, ptr noundef @.str.4)
  %6085 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6086 = load i32, ptr %6085, align 4, !tbaa !5
  %6087 = call ptr @s2n_strerror_debug(i32 noundef %6086, ptr noundef @.str.4)
  %6088 = call ptr @__errno_location() #12
  %6089 = load i32, ptr %6088, align 4, !tbaa !5
  %6090 = call ptr @strerror(i32 noundef %6089) #11
  %6091 = call ptr @__errno_location() #12
  %6092 = load i32, ptr %6091, align 4, !tbaa !5
  %6093 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6080, ptr noundef @.str.5, i32 noundef %6081, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 281, ptr noundef %6084, ptr noundef %6087, ptr noundef %6090, i32 noundef %6092) #11
  br label %6094

6094:                                             ; preds = %6077, %6060
  call void @llvm.lifetime.end.p0(i64 4, ptr %175) #11
  br label %6095

6095:                                             ; preds = %6094
  br label %6096

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

6097:                                             ; No predecessors!
  br label %6098

6098:                                             ; preds = %6097
  br label %6099

6099:                                             ; preds = %6098, %6035
  br label %6100

6100:                                             ; preds = %6099, %6030
  call void @llvm.lifetime.end.p0(i64 4, ptr %174) #11
  br label %6101

6101:                                             ; preds = %6100
  br label %6102

6102:                                             ; preds = %6101
  br label %6103

6103:                                             ; preds = %6102
  call void @llvm.lifetime.start.p0(i64 4, ptr %176) #11
  %6104 = getelementptr inbounds %struct.s2n_blob, ptr %13, i32 0, i32 1
  %6105 = load i32, ptr %6104, align 8, !tbaa !76
  store i32 %6105, ptr %176, align 4, !tbaa !5
  %6106 = load i32, ptr %176, align 4, !tbaa !5
  %6107 = icmp ne i32 %6106, 0
  br i1 %6107, label %6108, label %6173

6108:                                             ; preds = %6103
  %6109 = load ptr, ptr %167, align 8, !tbaa !9
  %6110 = getelementptr inbounds %struct.s2n_connection, ptr %6109, i32 0, i32 28
  %6111 = getelementptr inbounds %struct.s2n_secrets, ptr %6110, i32 0, i32 0
  %6112 = getelementptr inbounds %struct.s2n_tls13_secrets, ptr %6111, i32 0, i32 4
  %6113 = getelementptr inbounds [48 x i8], ptr %6112, i64 0, i64 0
  %6114 = getelementptr inbounds %struct.s2n_blob, ptr %13, i32 0, i32 0
  %6115 = load ptr, ptr %6114, align 8, !tbaa !71
  %6116 = load i32, ptr %176, align 4, !tbaa !5
  %6117 = zext i32 %6116 to i64
  call void @llvm.memmove.p0.p0.i64(ptr align 8 %6113, ptr align 1 %6115, i64 %6117, i1 false)
  %6118 = icmp eq ptr %6113, null
  br i1 %6118, label %6119, label %6172

6119:                                             ; preds = %6108
  br label %6120

6120:                                             ; preds = %6119
  br label %6121

6121:                                             ; preds = %6120
  call void @llvm.lifetime.start.p0(i64 4, ptr %177) #11
  %6122 = call ptr @__errno_location() #12
  %6123 = load i32, ptr %6122, align 4, !tbaa !5
  store i32 %6123, ptr %177, align 4, !tbaa !5
  %6124 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6125 = call i32 @s2n_print_stacktrace(ptr noundef %6124)
  %6126 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6127 = trunc i8 %6126 to i1
  br i1 %6127, label %6128, label %6150

6128:                                             ; preds = %6121
  %6129 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6130 = call i32 @fileno(ptr noundef %6129) #11
  %6131 = call i32 @isatty(i32 noundef %6130) #11
  %6132 = icmp ne i32 %6131, 0
  br i1 %6132, label %6133, label %6150

6133:                                             ; preds = %6128
  %6134 = load i32, ptr %177, align 4, !tbaa !5
  %6135 = call ptr @__errno_location() #12
  store i32 %6134, ptr %6135, align 4, !tbaa !5
  %6136 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6137 = load i32, ptr @test_count, align 4, !tbaa !5
  %6138 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6139 = load i32, ptr %6138, align 4, !tbaa !5
  %6140 = call ptr @s2n_strerror(i32 noundef %6139, ptr noundef @.str.4)
  %6141 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6142 = load i32, ptr %6141, align 4, !tbaa !5
  %6143 = call ptr @s2n_strerror_debug(i32 noundef %6142, ptr noundef @.str.4)
  %6144 = call ptr @__errno_location() #12
  %6145 = load i32, ptr %6144, align 4, !tbaa !5
  %6146 = call ptr @strerror(i32 noundef %6145) #11
  %6147 = call ptr @__errno_location() #12
  %6148 = load i32, ptr %6147, align 4, !tbaa !5
  %6149 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6136, ptr noundef @.str.2, i32 noundef %6137, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 282, ptr noundef %6140, ptr noundef %6143, ptr noundef %6146, i32 noundef %6148) #11
  br label %6167

6150:                                             ; preds = %6128, %6121
  %6151 = load i32, ptr %177, align 4, !tbaa !5
  %6152 = call ptr @__errno_location() #12
  store i32 %6151, ptr %6152, align 4, !tbaa !5
  %6153 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6154 = load i32, ptr @test_count, align 4, !tbaa !5
  %6155 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6156 = load i32, ptr %6155, align 4, !tbaa !5
  %6157 = call ptr @s2n_strerror(i32 noundef %6156, ptr noundef @.str.4)
  %6158 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6159 = load i32, ptr %6158, align 4, !tbaa !5
  %6160 = call ptr @s2n_strerror_debug(i32 noundef %6159, ptr noundef @.str.4)
  %6161 = call ptr @__errno_location() #12
  %6162 = load i32, ptr %6161, align 4, !tbaa !5
  %6163 = call ptr @strerror(i32 noundef %6162) #11
  %6164 = call ptr @__errno_location() #12
  %6165 = load i32, ptr %6164, align 4, !tbaa !5
  %6166 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6153, ptr noundef @.str.5, i32 noundef %6154, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 282, ptr noundef %6157, ptr noundef %6160, ptr noundef %6163, i32 noundef %6165) #11
  br label %6167

6167:                                             ; preds = %6150, %6133
  call void @llvm.lifetime.end.p0(i64 4, ptr %177) #11
  br label %6168

6168:                                             ; preds = %6167
  br label %6169

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

6170:                                             ; No predecessors!
  br label %6171

6171:                                             ; preds = %6170
  br label %6172

6172:                                             ; preds = %6171, %6108
  br label %6173

6173:                                             ; preds = %6172, %6103
  call void @llvm.lifetime.end.p0(i64 4, ptr %176) #11
  br label %6174

6174:                                             ; preds = %6173
  br label %6175

6175:                                             ; preds = %6174
  br label %6176

6176:                                             ; preds = %6175
  call void @llvm.lifetime.start.p0(i64 4, ptr %178) #11
  %6177 = getelementptr inbounds %struct.s2n_blob, ptr %13, i32 0, i32 1
  %6178 = load i32, ptr %6177, align 8, !tbaa !76
  store i32 %6178, ptr %178, align 4, !tbaa !5
  %6179 = load i32, ptr %178, align 4, !tbaa !5
  %6180 = icmp ne i32 %6179, 0
  br i1 %6180, label %6181, label %6246

6181:                                             ; preds = %6176
  %6182 = load ptr, ptr %167, align 8, !tbaa !9
  %6183 = getelementptr inbounds %struct.s2n_connection, ptr %6182, i32 0, i32 28
  %6184 = getelementptr inbounds %struct.s2n_secrets, ptr %6183, i32 0, i32 0
  %6185 = getelementptr inbounds %struct.s2n_tls13_secrets, ptr %6184, i32 0, i32 5
  %6186 = getelementptr inbounds [48 x i8], ptr %6185, i64 0, i64 0
  %6187 = getelementptr inbounds %struct.s2n_blob, ptr %13, i32 0, i32 0
  %6188 = load ptr, ptr %6187, align 8, !tbaa !71
  %6189 = load i32, ptr %178, align 4, !tbaa !5
  %6190 = zext i32 %6189 to i64
  call void @llvm.memmove.p0.p0.i64(ptr align 8 %6186, ptr align 1 %6188, i64 %6190, i1 false)
  %6191 = icmp eq ptr %6186, null
  br i1 %6191, label %6192, label %6245

6192:                                             ; preds = %6181
  br label %6193

6193:                                             ; preds = %6192
  br label %6194

6194:                                             ; preds = %6193
  call void @llvm.lifetime.start.p0(i64 4, ptr %179) #11
  %6195 = call ptr @__errno_location() #12
  %6196 = load i32, ptr %6195, align 4, !tbaa !5
  store i32 %6196, ptr %179, align 4, !tbaa !5
  %6197 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6198 = call i32 @s2n_print_stacktrace(ptr noundef %6197)
  %6199 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6200 = trunc i8 %6199 to i1
  br i1 %6200, label %6201, label %6223

6201:                                             ; preds = %6194
  %6202 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6203 = call i32 @fileno(ptr noundef %6202) #11
  %6204 = call i32 @isatty(i32 noundef %6203) #11
  %6205 = icmp ne i32 %6204, 0
  br i1 %6205, label %6206, label %6223

6206:                                             ; preds = %6201
  %6207 = load i32, ptr %179, align 4, !tbaa !5
  %6208 = call ptr @__errno_location() #12
  store i32 %6207, ptr %6208, align 4, !tbaa !5
  %6209 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6210 = load i32, ptr @test_count, align 4, !tbaa !5
  %6211 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6212 = load i32, ptr %6211, align 4, !tbaa !5
  %6213 = call ptr @s2n_strerror(i32 noundef %6212, ptr noundef @.str.4)
  %6214 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6215 = load i32, ptr %6214, align 4, !tbaa !5
  %6216 = call ptr @s2n_strerror_debug(i32 noundef %6215, ptr noundef @.str.4)
  %6217 = call ptr @__errno_location() #12
  %6218 = load i32, ptr %6217, align 4, !tbaa !5
  %6219 = call ptr @strerror(i32 noundef %6218) #11
  %6220 = call ptr @__errno_location() #12
  %6221 = load i32, ptr %6220, align 4, !tbaa !5
  %6222 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6209, ptr noundef @.str.2, i32 noundef %6210, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 283, ptr noundef %6213, ptr noundef %6216, ptr noundef %6219, i32 noundef %6221) #11
  br label %6240

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

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

6241:                                             ; preds = %6240
  br label %6242

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

6243:                                             ; No predecessors!
  br label %6244

6244:                                             ; preds = %6243
  br label %6245

6245:                                             ; preds = %6244, %6181
  br label %6246

6246:                                             ; preds = %6245, %6176
  call void @llvm.lifetime.end.p0(i64 4, ptr %178) #11
  br label %6247

6247:                                             ; preds = %6246
  br label %6248

6248:                                             ; preds = %6247
  br label %6249

6249:                                             ; preds = %6248
  call void @llvm.lifetime.start.p0(i64 4, ptr %180) #11
  %6250 = getelementptr inbounds %struct.s2n_blob, ptr %13, i32 0, i32 1
  %6251 = load i32, ptr %6250, align 8, !tbaa !76
  store i32 %6251, ptr %180, align 4, !tbaa !5
  %6252 = load i32, ptr %180, align 4, !tbaa !5
  %6253 = icmp ne i32 %6252, 0
  br i1 %6253, label %6254, label %6319

6254:                                             ; preds = %6249
  %6255 = load ptr, ptr %167, align 8, !tbaa !9
  %6256 = getelementptr inbounds %struct.s2n_connection, ptr %6255, i32 0, i32 28
  %6257 = getelementptr inbounds %struct.s2n_secrets, ptr %6256, i32 0, i32 0
  %6258 = getelementptr inbounds %struct.s2n_tls13_secrets, ptr %6257, i32 0, i32 7
  %6259 = getelementptr inbounds [48 x i8], ptr %6258, i64 0, i64 0
  %6260 = getelementptr inbounds %struct.s2n_blob, ptr %13, i32 0, i32 0
  %6261 = load ptr, ptr %6260, align 8, !tbaa !71
  %6262 = load i32, ptr %180, align 4, !tbaa !5
  %6263 = zext i32 %6262 to i64
  call void @llvm.memmove.p0.p0.i64(ptr align 8 %6259, ptr align 1 %6261, i64 %6263, i1 false)
  %6264 = icmp eq ptr %6259, null
  br i1 %6264, label %6265, label %6318

6265:                                             ; preds = %6254
  br label %6266

6266:                                             ; preds = %6265
  br label %6267

6267:                                             ; preds = %6266
  call void @llvm.lifetime.start.p0(i64 4, ptr %181) #11
  %6268 = call ptr @__errno_location() #12
  %6269 = load i32, ptr %6268, align 4, !tbaa !5
  store i32 %6269, ptr %181, align 4, !tbaa !5
  %6270 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6271 = call i32 @s2n_print_stacktrace(ptr noundef %6270)
  %6272 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6273 = trunc i8 %6272 to i1
  br i1 %6273, label %6274, label %6296

6274:                                             ; preds = %6267
  %6275 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6276 = call i32 @fileno(ptr noundef %6275) #11
  %6277 = call i32 @isatty(i32 noundef %6276) #11
  %6278 = icmp ne i32 %6277, 0
  br i1 %6278, label %6279, label %6296

6279:                                             ; preds = %6274
  %6280 = load i32, ptr %181, align 4, !tbaa !5
  %6281 = call ptr @__errno_location() #12
  store i32 %6280, ptr %6281, align 4, !tbaa !5
  %6282 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6283 = load i32, ptr @test_count, align 4, !tbaa !5
  %6284 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6285 = load i32, ptr %6284, align 4, !tbaa !5
  %6286 = call ptr @s2n_strerror(i32 noundef %6285, ptr noundef @.str.4)
  %6287 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6288 = load i32, ptr %6287, align 4, !tbaa !5
  %6289 = call ptr @s2n_strerror_debug(i32 noundef %6288, ptr noundef @.str.4)
  %6290 = call ptr @__errno_location() #12
  %6291 = load i32, ptr %6290, align 4, !tbaa !5
  %6292 = call ptr @strerror(i32 noundef %6291) #11
  %6293 = call ptr @__errno_location() #12
  %6294 = load i32, ptr %6293, align 4, !tbaa !5
  %6295 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6282, ptr noundef @.str.2, i32 noundef %6283, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 284, ptr noundef %6286, ptr noundef %6289, ptr noundef %6292, i32 noundef %6294) #11
  br label %6313

6296:                                             ; preds = %6274, %6267
  %6297 = load i32, ptr %181, align 4, !tbaa !5
  %6298 = call ptr @__errno_location() #12
  store i32 %6297, ptr %6298, align 4, !tbaa !5
  %6299 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6300 = load i32, ptr @test_count, align 4, !tbaa !5
  %6301 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6302 = load i32, ptr %6301, align 4, !tbaa !5
  %6303 = call ptr @s2n_strerror(i32 noundef %6302, ptr noundef @.str.4)
  %6304 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6305 = load i32, ptr %6304, align 4, !tbaa !5
  %6306 = call ptr @s2n_strerror_debug(i32 noundef %6305, ptr noundef @.str.4)
  %6307 = call ptr @__errno_location() #12
  %6308 = load i32, ptr %6307, align 4, !tbaa !5
  %6309 = call ptr @strerror(i32 noundef %6308) #11
  %6310 = call ptr @__errno_location() #12
  %6311 = load i32, ptr %6310, align 4, !tbaa !5
  %6312 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6299, ptr noundef @.str.5, i32 noundef %6300, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 284, ptr noundef %6303, ptr noundef %6306, ptr noundef %6309, i32 noundef %6311) #11
  br label %6313

6313:                                             ; preds = %6296, %6279
  call void @llvm.lifetime.end.p0(i64 4, ptr %181) #11
  br label %6314

6314:                                             ; preds = %6313
  br label %6315

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

6316:                                             ; No predecessors!
  br label %6317

6317:                                             ; preds = %6316
  br label %6318

6318:                                             ; preds = %6317, %6254
  br label %6319

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

6320:                                             ; preds = %6319
  br label %6321

6321:                                             ; preds = %6320
  br label %6322

6322:                                             ; preds = %6321
  call void @llvm.lifetime.start.p0(i64 4, ptr %182) #11
  %6323 = getelementptr inbounds %struct.s2n_blob, ptr %13, i32 0, i32 1
  %6324 = load i32, ptr %6323, align 8, !tbaa !76
  store i32 %6324, ptr %182, align 4, !tbaa !5
  %6325 = load i32, ptr %182, align 4, !tbaa !5
  %6326 = icmp ne i32 %6325, 0
  br i1 %6326, label %6327, label %6392

6327:                                             ; preds = %6322
  %6328 = load ptr, ptr %167, align 8, !tbaa !9
  %6329 = getelementptr inbounds %struct.s2n_connection, ptr %6328, i32 0, i32 28
  %6330 = getelementptr inbounds %struct.s2n_secrets, ptr %6329, i32 0, i32 0
  %6331 = getelementptr inbounds %struct.s2n_tls13_secrets, ptr %6330, i32 0, i32 6
  %6332 = getelementptr inbounds [48 x i8], ptr %6331, i64 0, i64 0
  %6333 = getelementptr inbounds %struct.s2n_blob, ptr %13, i32 0, i32 0
  %6334 = load ptr, ptr %6333, align 8, !tbaa !71
  %6335 = load i32, ptr %182, align 4, !tbaa !5
  %6336 = zext i32 %6335 to i64
  call void @llvm.memmove.p0.p0.i64(ptr align 8 %6332, ptr align 1 %6334, i64 %6336, i1 false)
  %6337 = icmp eq ptr %6332, null
  br i1 %6337, label %6338, label %6391

6338:                                             ; preds = %6327
  br label %6339

6339:                                             ; preds = %6338
  br label %6340

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

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

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

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

6386:                                             ; preds = %6369, %6352
  call void @llvm.lifetime.end.p0(i64 4, ptr %183) #11
  br label %6387

6387:                                             ; preds = %6386
  br label %6388

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

6389:                                             ; No predecessors!
  br label %6390

6390:                                             ; preds = %6389
  br label %6391

6391:                                             ; preds = %6390, %6327
  br label %6392

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

6393:                                             ; preds = %6392
  br label %6394

6394:                                             ; preds = %6393
  br label %6395

6395:                                             ; preds = %6394
  %6396 = load i32, ptr @test_count, align 4, !tbaa !5
  %6397 = add nsw i32 %6396, 1
  store i32 %6397, ptr @test_count, align 4, !tbaa !5
  %6398 = load ptr, ptr %167, align 8, !tbaa !9
  %6399 = getelementptr inbounds %struct.s2n_connection, ptr %6398, i32 0, i32 28
  %6400 = getelementptr inbounds %struct.s2n_secrets, ptr %6399, i32 0, i32 0
  %6401 = getelementptr inbounds %struct.s2n_tls13_secrets, ptr %6400, i32 0, i32 0
  %6402 = getelementptr inbounds [48 x i8], ptr %6401, i64 0, i64 0
  %6403 = getelementptr inbounds [48 x i8], ptr %9, i64 0, i64 0
  %6404 = call i32 @memcmp(ptr noundef %6402, ptr noundef %6403, i64 noundef 48) #14
  %6405 = icmp eq i32 %6404, 0
  br i1 %6405, label %6406, label %6459

6406:                                             ; preds = %6395
  br label %6407

6407:                                             ; preds = %6406
  br label %6408

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

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

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

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

6454:                                             ; preds = %6437, %6420
  call void @llvm.lifetime.end.p0(i64 4, ptr %184) #11
  br label %6455

6455:                                             ; preds = %6454
  br label %6456

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

6457:                                             ; No predecessors!
  br label %6458

6458:                                             ; preds = %6457
  br label %6459

6459:                                             ; preds = %6458, %6395
  br label %6460

6460:                                             ; preds = %6459
  br label %6461

6461:                                             ; preds = %6460
  br label %6462

6462:                                             ; preds = %6461
  %6463 = load i32, ptr @test_count, align 4, !tbaa !5
  %6464 = add nsw i32 %6463, 1
  store i32 %6464, ptr @test_count, align 4, !tbaa !5
  %6465 = load ptr, ptr %167, align 8, !tbaa !9
  %6466 = getelementptr inbounds %struct.s2n_connection, ptr %6465, i32 0, i32 28
  %6467 = getelementptr inbounds %struct.s2n_secrets, ptr %6466, i32 0, i32 0
  %6468 = getelementptr inbounds %struct.s2n_tls13_secrets, ptr %6467, i32 0, i32 1
  %6469 = getelementptr inbounds [48 x i8], ptr %6468, i64 0, i64 0
  %6470 = getelementptr inbounds [48 x i8], ptr %9, i64 0, i64 0
  %6471 = call i32 @memcmp(ptr noundef %6469, ptr noundef %6470, i64 noundef 48) #14
  %6472 = icmp eq i32 %6471, 0
  br i1 %6472, label %6473, label %6526

6473:                                             ; preds = %6462
  br label %6474

6474:                                             ; preds = %6473
  br label %6475

6475:                                             ; preds = %6474
  call void @llvm.lifetime.start.p0(i64 4, ptr %185) #11
  %6476 = call ptr @__errno_location() #12
  %6477 = load i32, ptr %6476, align 4, !tbaa !5
  store i32 %6477, ptr %185, align 4, !tbaa !5
  %6478 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6479 = call i32 @s2n_print_stacktrace(ptr noundef %6478)
  %6480 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6481 = trunc i8 %6480 to i1
  br i1 %6481, label %6482, label %6504

6482:                                             ; preds = %6475
  %6483 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6484 = call i32 @fileno(ptr noundef %6483) #11
  %6485 = call i32 @isatty(i32 noundef %6484) #11
  %6486 = icmp ne i32 %6485, 0
  br i1 %6486, label %6487, label %6504

6487:                                             ; preds = %6482
  %6488 = load i32, ptr %185, align 4, !tbaa !5
  %6489 = call ptr @__errno_location() #12
  store i32 %6488, ptr %6489, align 4, !tbaa !5
  %6490 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6491 = load i32, ptr @test_count, align 4, !tbaa !5
  %6492 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6493 = load i32, ptr %6492, align 4, !tbaa !5
  %6494 = call ptr @s2n_strerror(i32 noundef %6493, ptr noundef @.str.4)
  %6495 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6496 = load i32, ptr %6495, align 4, !tbaa !5
  %6497 = call ptr @s2n_strerror_debug(i32 noundef %6496, ptr noundef @.str.4)
  %6498 = call ptr @__errno_location() #12
  %6499 = load i32, ptr %6498, align 4, !tbaa !5
  %6500 = call ptr @strerror(i32 noundef %6499) #11
  %6501 = call ptr @__errno_location() #12
  %6502 = load i32, ptr %6501, align 4, !tbaa !5
  %6503 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6490, ptr noundef @.str.2, i32 noundef %6491, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 288, ptr noundef %6494, ptr noundef %6497, ptr noundef %6500, i32 noundef %6502) #11
  br label %6521

6504:                                             ; preds = %6482, %6475
  %6505 = load i32, ptr %185, align 4, !tbaa !5
  %6506 = call ptr @__errno_location() #12
  store i32 %6505, ptr %6506, align 4, !tbaa !5
  %6507 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6508 = load i32, ptr @test_count, align 4, !tbaa !5
  %6509 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6510 = load i32, ptr %6509, align 4, !tbaa !5
  %6511 = call ptr @s2n_strerror(i32 noundef %6510, ptr noundef @.str.4)
  %6512 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6513 = load i32, ptr %6512, align 4, !tbaa !5
  %6514 = call ptr @s2n_strerror_debug(i32 noundef %6513, ptr noundef @.str.4)
  %6515 = call ptr @__errno_location() #12
  %6516 = load i32, ptr %6515, align 4, !tbaa !5
  %6517 = call ptr @strerror(i32 noundef %6516) #11
  %6518 = call ptr @__errno_location() #12
  %6519 = load i32, ptr %6518, align 4, !tbaa !5
  %6520 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6507, ptr noundef @.str.5, i32 noundef %6508, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 288, ptr noundef %6511, ptr noundef %6514, ptr noundef %6517, i32 noundef %6519) #11
  br label %6521

6521:                                             ; preds = %6504, %6487
  call void @llvm.lifetime.end.p0(i64 4, ptr %185) #11
  br label %6522

6522:                                             ; preds = %6521
  br label %6523

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

6524:                                             ; No predecessors!
  br label %6525

6525:                                             ; preds = %6524
  br label %6526

6526:                                             ; preds = %6525, %6462
  br label %6527

6527:                                             ; preds = %6526
  br label %6528

6528:                                             ; preds = %6527
  br label %6529

6529:                                             ; preds = %6528
  %6530 = load i32, ptr @test_count, align 4, !tbaa !5
  %6531 = add nsw i32 %6530, 1
  store i32 %6531, ptr @test_count, align 4, !tbaa !5
  %6532 = load ptr, ptr %167, align 8, !tbaa !9
  %6533 = getelementptr inbounds %struct.s2n_connection, ptr %6532, i32 0, i32 28
  %6534 = getelementptr inbounds %struct.s2n_secrets, ptr %6533, i32 0, i32 0
  %6535 = getelementptr inbounds %struct.s2n_tls13_secrets, ptr %6534, i32 0, i32 2
  %6536 = getelementptr inbounds [48 x i8], ptr %6535, i64 0, i64 0
  %6537 = getelementptr inbounds [48 x i8], ptr %9, i64 0, i64 0
  %6538 = call i32 @memcmp(ptr noundef %6536, ptr noundef %6537, i64 noundef 48) #14
  %6539 = icmp eq i32 %6538, 0
  br i1 %6539, label %6540, label %6593

6540:                                             ; preds = %6529
  br label %6541

6541:                                             ; preds = %6540
  br label %6542

6542:                                             ; preds = %6541
  call void @llvm.lifetime.start.p0(i64 4, ptr %186) #11
  %6543 = call ptr @__errno_location() #12
  %6544 = load i32, ptr %6543, align 4, !tbaa !5
  store i32 %6544, ptr %186, align 4, !tbaa !5
  %6545 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6546 = call i32 @s2n_print_stacktrace(ptr noundef %6545)
  %6547 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6548 = trunc i8 %6547 to i1
  br i1 %6548, label %6549, label %6571

6549:                                             ; preds = %6542
  %6550 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6551 = call i32 @fileno(ptr noundef %6550) #11
  %6552 = call i32 @isatty(i32 noundef %6551) #11
  %6553 = icmp ne i32 %6552, 0
  br i1 %6553, label %6554, label %6571

6554:                                             ; preds = %6549
  %6555 = load i32, ptr %186, align 4, !tbaa !5
  %6556 = call ptr @__errno_location() #12
  store i32 %6555, ptr %6556, align 4, !tbaa !5
  %6557 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6558 = load i32, ptr @test_count, align 4, !tbaa !5
  %6559 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6560 = load i32, ptr %6559, align 4, !tbaa !5
  %6561 = call ptr @s2n_strerror(i32 noundef %6560, ptr noundef @.str.4)
  %6562 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6563 = load i32, ptr %6562, align 4, !tbaa !5
  %6564 = call ptr @s2n_strerror_debug(i32 noundef %6563, ptr noundef @.str.4)
  %6565 = call ptr @__errno_location() #12
  %6566 = load i32, ptr %6565, align 4, !tbaa !5
  %6567 = call ptr @strerror(i32 noundef %6566) #11
  %6568 = call ptr @__errno_location() #12
  %6569 = load i32, ptr %6568, align 4, !tbaa !5
  %6570 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6557, ptr noundef @.str.2, i32 noundef %6558, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 289, ptr noundef %6561, ptr noundef %6564, ptr noundef %6567, i32 noundef %6569) #11
  br label %6588

6571:                                             ; preds = %6549, %6542
  %6572 = load i32, ptr %186, align 4, !tbaa !5
  %6573 = call ptr @__errno_location() #12
  store i32 %6572, ptr %6573, align 4, !tbaa !5
  %6574 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6575 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %6577, ptr noundef @.str.4)
  %6579 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6580 = load i32, ptr %6579, align 4, !tbaa !5
  %6581 = call ptr @s2n_strerror_debug(i32 noundef %6580, ptr noundef @.str.4)
  %6582 = call ptr @__errno_location() #12
  %6583 = load i32, ptr %6582, align 4, !tbaa !5
  %6584 = call ptr @strerror(i32 noundef %6583) #11
  %6585 = call ptr @__errno_location() #12
  %6586 = load i32, ptr %6585, align 4, !tbaa !5
  %6587 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6574, ptr noundef @.str.5, i32 noundef %6575, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 289, ptr noundef %6578, ptr noundef %6581, ptr noundef %6584, i32 noundef %6586) #11
  br label %6588

6588:                                             ; preds = %6571, %6554
  call void @llvm.lifetime.end.p0(i64 4, ptr %186) #11
  br label %6589

6589:                                             ; preds = %6588
  br label %6590

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

6591:                                             ; No predecessors!
  br label %6592

6592:                                             ; preds = %6591
  br label %6593

6593:                                             ; preds = %6592, %6529
  br label %6594

6594:                                             ; preds = %6593
  br label %6595

6595:                                             ; preds = %6594
  br label %6596

6596:                                             ; preds = %6595
  %6597 = load i32, ptr @test_count, align 4, !tbaa !5
  %6598 = add nsw i32 %6597, 1
  store i32 %6598, ptr @test_count, align 4, !tbaa !5
  %6599 = load ptr, ptr %167, align 8, !tbaa !9
  %6600 = getelementptr inbounds %struct.s2n_connection, ptr %6599, i32 0, i32 28
  %6601 = getelementptr inbounds %struct.s2n_secrets, ptr %6600, i32 0, i32 0
  %6602 = getelementptr inbounds %struct.s2n_tls13_secrets, ptr %6601, i32 0, i32 3
  %6603 = getelementptr inbounds [48 x i8], ptr %6602, i64 0, i64 0
  %6604 = getelementptr inbounds [48 x i8], ptr %9, i64 0, i64 0
  %6605 = call i32 @memcmp(ptr noundef %6603, ptr noundef %6604, i64 noundef 48) #14
  %6606 = icmp eq i32 %6605, 0
  br i1 %6606, label %6607, label %6660

6607:                                             ; preds = %6596
  br label %6608

6608:                                             ; preds = %6607
  br label %6609

6609:                                             ; preds = %6608
  call void @llvm.lifetime.start.p0(i64 4, ptr %187) #11
  %6610 = call ptr @__errno_location() #12
  %6611 = load i32, ptr %6610, align 4, !tbaa !5
  store i32 %6611, ptr %187, align 4, !tbaa !5
  %6612 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6613 = call i32 @s2n_print_stacktrace(ptr noundef %6612)
  %6614 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6615 = trunc i8 %6614 to i1
  br i1 %6615, label %6616, label %6638

6616:                                             ; preds = %6609
  %6617 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6618 = call i32 @fileno(ptr noundef %6617) #11
  %6619 = call i32 @isatty(i32 noundef %6618) #11
  %6620 = icmp ne i32 %6619, 0
  br i1 %6620, label %6621, label %6638

6621:                                             ; preds = %6616
  %6622 = load i32, ptr %187, align 4, !tbaa !5
  %6623 = call ptr @__errno_location() #12
  store i32 %6622, ptr %6623, align 4, !tbaa !5
  %6624 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6625 = load i32, ptr @test_count, align 4, !tbaa !5
  %6626 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6627 = load i32, ptr %6626, align 4, !tbaa !5
  %6628 = call ptr @s2n_strerror(i32 noundef %6627, ptr noundef @.str.4)
  %6629 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6630 = load i32, ptr %6629, align 4, !tbaa !5
  %6631 = call ptr @s2n_strerror_debug(i32 noundef %6630, ptr noundef @.str.4)
  %6632 = call ptr @__errno_location() #12
  %6633 = load i32, ptr %6632, align 4, !tbaa !5
  %6634 = call ptr @strerror(i32 noundef %6633) #11
  %6635 = call ptr @__errno_location() #12
  %6636 = load i32, ptr %6635, align 4, !tbaa !5
  %6637 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6624, ptr noundef @.str.2, i32 noundef %6625, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 290, ptr noundef %6628, ptr noundef %6631, ptr noundef %6634, i32 noundef %6636) #11
  br label %6655

6638:                                             ; preds = %6616, %6609
  %6639 = load i32, ptr %187, align 4, !tbaa !5
  %6640 = call ptr @__errno_location() #12
  store i32 %6639, ptr %6640, align 4, !tbaa !5
  %6641 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6642 = load i32, ptr @test_count, align 4, !tbaa !5
  %6643 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6644 = load i32, ptr %6643, align 4, !tbaa !5
  %6645 = call ptr @s2n_strerror(i32 noundef %6644, ptr noundef @.str.4)
  %6646 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6647 = load i32, ptr %6646, align 4, !tbaa !5
  %6648 = call ptr @s2n_strerror_debug(i32 noundef %6647, ptr noundef @.str.4)
  %6649 = call ptr @__errno_location() #12
  %6650 = load i32, ptr %6649, align 4, !tbaa !5
  %6651 = call ptr @strerror(i32 noundef %6650) #11
  %6652 = call ptr @__errno_location() #12
  %6653 = load i32, ptr %6652, align 4, !tbaa !5
  %6654 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6641, ptr noundef @.str.5, i32 noundef %6642, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 290, ptr noundef %6645, ptr noundef %6648, ptr noundef %6651, i32 noundef %6653) #11
  br label %6655

6655:                                             ; preds = %6638, %6621
  call void @llvm.lifetime.end.p0(i64 4, ptr %187) #11
  br label %6656

6656:                                             ; preds = %6655
  br label %6657

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

6658:                                             ; No predecessors!
  br label %6659

6659:                                             ; preds = %6658
  br label %6660

6660:                                             ; preds = %6659, %6596
  br label %6661

6661:                                             ; preds = %6660
  br label %6662

6662:                                             ; preds = %6661
  br label %6663

6663:                                             ; preds = %6662
  %6664 = load i32, ptr @test_count, align 4, !tbaa !5
  %6665 = add nsw i32 %6664, 1
  store i32 %6665, ptr @test_count, align 4, !tbaa !5
  %6666 = load ptr, ptr %167, align 8, !tbaa !9
  %6667 = getelementptr inbounds %struct.s2n_connection, ptr %6666, i32 0, i32 28
  %6668 = getelementptr inbounds %struct.s2n_secrets, ptr %6667, i32 0, i32 0
  %6669 = getelementptr inbounds %struct.s2n_tls13_secrets, ptr %6668, i32 0, i32 4
  %6670 = getelementptr inbounds [48 x i8], ptr %6669, i64 0, i64 0
  %6671 = getelementptr inbounds [48 x i8], ptr %9, i64 0, i64 0
  %6672 = call i32 @memcmp(ptr noundef %6670, ptr noundef %6671, i64 noundef 48) #14
  %6673 = icmp eq i32 %6672, 0
  br i1 %6673, label %6674, label %6727

6674:                                             ; preds = %6663
  br label %6675

6675:                                             ; preds = %6674
  br label %6676

6676:                                             ; preds = %6675
  call void @llvm.lifetime.start.p0(i64 4, ptr %188) #11
  %6677 = call ptr @__errno_location() #12
  %6678 = load i32, ptr %6677, align 4, !tbaa !5
  store i32 %6678, ptr %188, align 4, !tbaa !5
  %6679 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6680 = call i32 @s2n_print_stacktrace(ptr noundef %6679)
  %6681 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6682 = trunc i8 %6681 to i1
  br i1 %6682, label %6683, label %6705

6683:                                             ; preds = %6676
  %6684 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6685 = call i32 @fileno(ptr noundef %6684) #11
  %6686 = call i32 @isatty(i32 noundef %6685) #11
  %6687 = icmp ne i32 %6686, 0
  br i1 %6687, label %6688, label %6705

6688:                                             ; preds = %6683
  %6689 = load i32, ptr %188, align 4, !tbaa !5
  %6690 = call ptr @__errno_location() #12
  store i32 %6689, ptr %6690, align 4, !tbaa !5
  %6691 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6692 = load i32, ptr @test_count, align 4, !tbaa !5
  %6693 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6694 = load i32, ptr %6693, align 4, !tbaa !5
  %6695 = call ptr @s2n_strerror(i32 noundef %6694, ptr noundef @.str.4)
  %6696 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6697 = load i32, ptr %6696, align 4, !tbaa !5
  %6698 = call ptr @s2n_strerror_debug(i32 noundef %6697, ptr noundef @.str.4)
  %6699 = call ptr @__errno_location() #12
  %6700 = load i32, ptr %6699, align 4, !tbaa !5
  %6701 = call ptr @strerror(i32 noundef %6700) #11
  %6702 = call ptr @__errno_location() #12
  %6703 = load i32, ptr %6702, align 4, !tbaa !5
  %6704 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6691, ptr noundef @.str.2, i32 noundef %6692, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 291, ptr noundef %6695, ptr noundef %6698, ptr noundef %6701, i32 noundef %6703) #11
  br label %6722

6705:                                             ; preds = %6683, %6676
  %6706 = load i32, ptr %188, align 4, !tbaa !5
  %6707 = call ptr @__errno_location() #12
  store i32 %6706, ptr %6707, align 4, !tbaa !5
  %6708 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6709 = load i32, ptr @test_count, align 4, !tbaa !5
  %6710 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6711 = load i32, ptr %6710, align 4, !tbaa !5
  %6712 = call ptr @s2n_strerror(i32 noundef %6711, ptr noundef @.str.4)
  %6713 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6714 = load i32, ptr %6713, align 4, !tbaa !5
  %6715 = call ptr @s2n_strerror_debug(i32 noundef %6714, ptr noundef @.str.4)
  %6716 = call ptr @__errno_location() #12
  %6717 = load i32, ptr %6716, align 4, !tbaa !5
  %6718 = call ptr @strerror(i32 noundef %6717) #11
  %6719 = call ptr @__errno_location() #12
  %6720 = load i32, ptr %6719, align 4, !tbaa !5
  %6721 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6708, ptr noundef @.str.5, i32 noundef %6709, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 291, ptr noundef %6712, ptr noundef %6715, ptr noundef %6718, i32 noundef %6720) #11
  br label %6722

6722:                                             ; preds = %6705, %6688
  call void @llvm.lifetime.end.p0(i64 4, ptr %188) #11
  br label %6723

6723:                                             ; preds = %6722
  br label %6724

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

6725:                                             ; No predecessors!
  br label %6726

6726:                                             ; preds = %6725
  br label %6727

6727:                                             ; preds = %6726, %6663
  br label %6728

6728:                                             ; preds = %6727
  br label %6729

6729:                                             ; preds = %6728
  br label %6730

6730:                                             ; preds = %6729
  %6731 = load i32, ptr @test_count, align 4, !tbaa !5
  %6732 = add nsw i32 %6731, 1
  store i32 %6732, ptr @test_count, align 4, !tbaa !5
  %6733 = load ptr, ptr %167, align 8, !tbaa !9
  %6734 = getelementptr inbounds %struct.s2n_connection, ptr %6733, i32 0, i32 28
  %6735 = getelementptr inbounds %struct.s2n_secrets, ptr %6734, i32 0, i32 0
  %6736 = getelementptr inbounds %struct.s2n_tls13_secrets, ptr %6735, i32 0, i32 5
  %6737 = getelementptr inbounds [48 x i8], ptr %6736, i64 0, i64 0
  %6738 = getelementptr inbounds [48 x i8], ptr %9, i64 0, i64 0
  %6739 = call i32 @memcmp(ptr noundef %6737, ptr noundef %6738, i64 noundef 48) #14
  %6740 = icmp eq i32 %6739, 0
  br i1 %6740, label %6741, label %6794

6741:                                             ; preds = %6730
  br label %6742

6742:                                             ; preds = %6741
  br label %6743

6743:                                             ; preds = %6742
  call void @llvm.lifetime.start.p0(i64 4, ptr %189) #11
  %6744 = call ptr @__errno_location() #12
  %6745 = load i32, ptr %6744, align 4, !tbaa !5
  store i32 %6745, ptr %189, align 4, !tbaa !5
  %6746 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6747 = call i32 @s2n_print_stacktrace(ptr noundef %6746)
  %6748 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6749 = trunc i8 %6748 to i1
  br i1 %6749, label %6750, label %6772

6750:                                             ; preds = %6743
  %6751 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6752 = call i32 @fileno(ptr noundef %6751) #11
  %6753 = call i32 @isatty(i32 noundef %6752) #11
  %6754 = icmp ne i32 %6753, 0
  br i1 %6754, label %6755, label %6772

6755:                                             ; preds = %6750
  %6756 = load i32, ptr %189, align 4, !tbaa !5
  %6757 = call ptr @__errno_location() #12
  store i32 %6756, ptr %6757, align 4, !tbaa !5
  %6758 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6759 = load i32, ptr @test_count, align 4, !tbaa !5
  %6760 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6761 = load i32, ptr %6760, align 4, !tbaa !5
  %6762 = call ptr @s2n_strerror(i32 noundef %6761, ptr noundef @.str.4)
  %6763 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6764 = load i32, ptr %6763, align 4, !tbaa !5
  %6765 = call ptr @s2n_strerror_debug(i32 noundef %6764, ptr noundef @.str.4)
  %6766 = call ptr @__errno_location() #12
  %6767 = load i32, ptr %6766, align 4, !tbaa !5
  %6768 = call ptr @strerror(i32 noundef %6767) #11
  %6769 = call ptr @__errno_location() #12
  %6770 = load i32, ptr %6769, align 4, !tbaa !5
  %6771 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6758, ptr noundef @.str.2, i32 noundef %6759, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 292, ptr noundef %6762, ptr noundef %6765, ptr noundef %6768, i32 noundef %6770) #11
  br label %6789

6772:                                             ; preds = %6750, %6743
  %6773 = load i32, ptr %189, align 4, !tbaa !5
  %6774 = call ptr @__errno_location() #12
  store i32 %6773, ptr %6774, align 4, !tbaa !5
  %6775 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6776 = load i32, ptr @test_count, align 4, !tbaa !5
  %6777 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6778 = load i32, ptr %6777, align 4, !tbaa !5
  %6779 = call ptr @s2n_strerror(i32 noundef %6778, ptr noundef @.str.4)
  %6780 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6781 = load i32, ptr %6780, align 4, !tbaa !5
  %6782 = call ptr @s2n_strerror_debug(i32 noundef %6781, ptr noundef @.str.4)
  %6783 = call ptr @__errno_location() #12
  %6784 = load i32, ptr %6783, align 4, !tbaa !5
  %6785 = call ptr @strerror(i32 noundef %6784) #11
  %6786 = call ptr @__errno_location() #12
  %6787 = load i32, ptr %6786, align 4, !tbaa !5
  %6788 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6775, ptr noundef @.str.5, i32 noundef %6776, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 292, ptr noundef %6779, ptr noundef %6782, ptr noundef %6785, i32 noundef %6787) #11
  br label %6789

6789:                                             ; preds = %6772, %6755
  call void @llvm.lifetime.end.p0(i64 4, ptr %189) #11
  br label %6790

6790:                                             ; preds = %6789
  br label %6791

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

6792:                                             ; No predecessors!
  br label %6793

6793:                                             ; preds = %6792
  br label %6794

6794:                                             ; preds = %6793, %6730
  br label %6795

6795:                                             ; preds = %6794
  br label %6796

6796:                                             ; preds = %6795
  br label %6797

6797:                                             ; preds = %6796
  %6798 = load i32, ptr @test_count, align 4, !tbaa !5
  %6799 = add nsw i32 %6798, 1
  store i32 %6799, ptr @test_count, align 4, !tbaa !5
  %6800 = load ptr, ptr %167, align 8, !tbaa !9
  %6801 = getelementptr inbounds %struct.s2n_connection, ptr %6800, i32 0, i32 28
  %6802 = getelementptr inbounds %struct.s2n_secrets, ptr %6801, i32 0, i32 0
  %6803 = getelementptr inbounds %struct.s2n_tls13_secrets, ptr %6802, i32 0, i32 7
  %6804 = getelementptr inbounds [48 x i8], ptr %6803, i64 0, i64 0
  %6805 = getelementptr inbounds [48 x i8], ptr %9, i64 0, i64 0
  %6806 = call i32 @memcmp(ptr noundef %6804, ptr noundef %6805, i64 noundef 48) #14
  %6807 = icmp eq i32 %6806, 0
  br i1 %6807, label %6808, label %6861

6808:                                             ; preds = %6797
  br label %6809

6809:                                             ; preds = %6808
  br label %6810

6810:                                             ; preds = %6809
  call void @llvm.lifetime.start.p0(i64 4, ptr %190) #11
  %6811 = call ptr @__errno_location() #12
  %6812 = load i32, ptr %6811, align 4, !tbaa !5
  store i32 %6812, ptr %190, align 4, !tbaa !5
  %6813 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6814 = call i32 @s2n_print_stacktrace(ptr noundef %6813)
  %6815 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6816 = trunc i8 %6815 to i1
  br i1 %6816, label %6817, label %6839

6817:                                             ; preds = %6810
  %6818 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6819 = call i32 @fileno(ptr noundef %6818) #11
  %6820 = call i32 @isatty(i32 noundef %6819) #11
  %6821 = icmp ne i32 %6820, 0
  br i1 %6821, label %6822, label %6839

6822:                                             ; preds = %6817
  %6823 = load i32, ptr %190, align 4, !tbaa !5
  %6824 = call ptr @__errno_location() #12
  store i32 %6823, ptr %6824, align 4, !tbaa !5
  %6825 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6826 = load i32, ptr @test_count, align 4, !tbaa !5
  %6827 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6828 = load i32, ptr %6827, align 4, !tbaa !5
  %6829 = call ptr @s2n_strerror(i32 noundef %6828, ptr noundef @.str.4)
  %6830 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6831 = load i32, ptr %6830, align 4, !tbaa !5
  %6832 = call ptr @s2n_strerror_debug(i32 noundef %6831, ptr noundef @.str.4)
  %6833 = call ptr @__errno_location() #12
  %6834 = load i32, ptr %6833, align 4, !tbaa !5
  %6835 = call ptr @strerror(i32 noundef %6834) #11
  %6836 = call ptr @__errno_location() #12
  %6837 = load i32, ptr %6836, align 4, !tbaa !5
  %6838 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6825, ptr noundef @.str.2, i32 noundef %6826, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 293, ptr noundef %6829, ptr noundef %6832, ptr noundef %6835, i32 noundef %6837) #11
  br label %6856

6839:                                             ; preds = %6817, %6810
  %6840 = load i32, ptr %190, align 4, !tbaa !5
  %6841 = call ptr @__errno_location() #12
  store i32 %6840, ptr %6841, align 4, !tbaa !5
  %6842 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6843 = load i32, ptr @test_count, align 4, !tbaa !5
  %6844 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6845 = load i32, ptr %6844, align 4, !tbaa !5
  %6846 = call ptr @s2n_strerror(i32 noundef %6845, ptr noundef @.str.4)
  %6847 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6848 = load i32, ptr %6847, align 4, !tbaa !5
  %6849 = call ptr @s2n_strerror_debug(i32 noundef %6848, ptr noundef @.str.4)
  %6850 = call ptr @__errno_location() #12
  %6851 = load i32, ptr %6850, align 4, !tbaa !5
  %6852 = call ptr @strerror(i32 noundef %6851) #11
  %6853 = call ptr @__errno_location() #12
  %6854 = load i32, ptr %6853, align 4, !tbaa !5
  %6855 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6842, ptr noundef @.str.5, i32 noundef %6843, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 293, ptr noundef %6846, ptr noundef %6849, ptr noundef %6852, i32 noundef %6854) #11
  br label %6856

6856:                                             ; preds = %6839, %6822
  call void @llvm.lifetime.end.p0(i64 4, ptr %190) #11
  br label %6857

6857:                                             ; preds = %6856
  br label %6858

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

6859:                                             ; No predecessors!
  br label %6860

6860:                                             ; preds = %6859
  br label %6861

6861:                                             ; preds = %6860, %6797
  br label %6862

6862:                                             ; preds = %6861
  br label %6863

6863:                                             ; preds = %6862
  br label %6864

6864:                                             ; preds = %6863
  %6865 = load i32, ptr @test_count, align 4, !tbaa !5
  %6866 = add nsw i32 %6865, 1
  store i32 %6866, ptr @test_count, align 4, !tbaa !5
  %6867 = load ptr, ptr %167, align 8, !tbaa !9
  %6868 = getelementptr inbounds %struct.s2n_connection, ptr %6867, i32 0, i32 28
  %6869 = getelementptr inbounds %struct.s2n_secrets, ptr %6868, i32 0, i32 0
  %6870 = getelementptr inbounds %struct.s2n_tls13_secrets, ptr %6869, i32 0, i32 6
  %6871 = getelementptr inbounds [48 x i8], ptr %6870, i64 0, i64 0
  %6872 = getelementptr inbounds [48 x i8], ptr %9, i64 0, i64 0
  %6873 = call i32 @memcmp(ptr noundef %6871, ptr noundef %6872, i64 noundef 48) #14
  %6874 = icmp eq i32 %6873, 0
  br i1 %6874, label %6875, label %6928

6875:                                             ; preds = %6864
  br label %6876

6876:                                             ; preds = %6875
  br label %6877

6877:                                             ; preds = %6876
  call void @llvm.lifetime.start.p0(i64 4, ptr %191) #11
  %6878 = call ptr @__errno_location() #12
  %6879 = load i32, ptr %6878, align 4, !tbaa !5
  store i32 %6879, ptr %191, align 4, !tbaa !5
  %6880 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6881 = call i32 @s2n_print_stacktrace(ptr noundef %6880)
  %6882 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6883 = trunc i8 %6882 to i1
  br i1 %6883, label %6884, label %6906

6884:                                             ; preds = %6877
  %6885 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6886 = call i32 @fileno(ptr noundef %6885) #11
  %6887 = call i32 @isatty(i32 noundef %6886) #11
  %6888 = icmp ne i32 %6887, 0
  br i1 %6888, label %6889, label %6906

6889:                                             ; preds = %6884
  %6890 = load i32, ptr %191, align 4, !tbaa !5
  %6891 = call ptr @__errno_location() #12
  store i32 %6890, ptr %6891, align 4, !tbaa !5
  %6892 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6893 = load i32, ptr @test_count, align 4, !tbaa !5
  %6894 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6895 = load i32, ptr %6894, align 4, !tbaa !5
  %6896 = call ptr @s2n_strerror(i32 noundef %6895, ptr noundef @.str.4)
  %6897 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6898 = load i32, ptr %6897, align 4, !tbaa !5
  %6899 = call ptr @s2n_strerror_debug(i32 noundef %6898, ptr noundef @.str.4)
  %6900 = call ptr @__errno_location() #12
  %6901 = load i32, ptr %6900, align 4, !tbaa !5
  %6902 = call ptr @strerror(i32 noundef %6901) #11
  %6903 = call ptr @__errno_location() #12
  %6904 = load i32, ptr %6903, align 4, !tbaa !5
  %6905 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6892, ptr noundef @.str.2, i32 noundef %6893, ptr noundef @.str.58, ptr noundef @.str.1, i32 noundef 294, ptr noundef %6896, ptr noundef %6899, ptr noundef %6902, i32 noundef %6904) #11
  br label %6923

6906:                                             ; preds = %6884, %6877
  %6907 = load i32, ptr %191, align 4, !tbaa !5
  %6908 = call ptr @__errno_location() #12
  store i32 %6907, ptr %6908, align 4, !tbaa !5
  %6909 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6910 = load i32, ptr @test_count, align 4, !tbaa !5
  %6911 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6912 = load i32, ptr %6911, align 4, !tbaa !5
  %6913 = call ptr @s2n_strerror(i32 noundef %6912, ptr noundef @.str.4)
  %6914 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6915 = load i32, ptr %6914, align 4, !tbaa !5
  %6916 = call ptr @s2n_strerror_debug(i32 noundef %6915, ptr noundef @.str.4)
  %6917 = call ptr @__errno_location() #12
  %6918 = load i32, ptr %6917, align 4, !tbaa !5
  %6919 = call ptr @strerror(i32 noundef %6918) #11
  %6920 = call ptr @__errno_location() #12
  %6921 = load i32, ptr %6920, align 4, !tbaa !5
  %6922 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6909, ptr noundef @.str.5, i32 noundef %6910, ptr noundef @.str.58, ptr noundef @.str.1, i32 noundef 294, ptr noundef %6913, ptr noundef %6916, ptr noundef %6919, i32 noundef %6921) #11
  br label %6923

6923:                                             ; preds = %6906, %6889
  call void @llvm.lifetime.end.p0(i64 4, ptr %191) #11
  br label %6924

6924:                                             ; preds = %6923
  br label %6925

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

6926:                                             ; No predecessors!
  br label %6927

6927:                                             ; preds = %6926
  br label %6928

6928:                                             ; preds = %6927, %6864
  br label %6929

6929:                                             ; preds = %6928
  br label %6930

6930:                                             ; preds = %6929
  br label %6931

6931:                                             ; preds = %6930
  %6932 = load i32, ptr @test_count, align 4, !tbaa !5
  %6933 = add nsw i32 %6932, 1
  store i32 %6933, ptr @test_count, align 4, !tbaa !5
  %6934 = load ptr, ptr %167, align 8, !tbaa !9
  %6935 = call i32 @s2n_tls13_secrets_clean(ptr noundef %6934)
  %6936 = getelementptr inbounds %struct.s2n_result, ptr %192, i32 0, i32 0
  store i32 %6935, ptr %6936, align 4
  %6937 = getelementptr inbounds %struct.s2n_result, ptr %192, i32 0, i32 0
  %6938 = load i32, ptr %6937, align 4
  %6939 = call zeroext i1 @s2n_result_is_ok(i32 %6938)
  br i1 %6939, label %6993, label %6940

6940:                                             ; preds = %6931
  br label %6941

6941:                                             ; preds = %6940
  br label %6942

6942:                                             ; preds = %6941
  call void @llvm.lifetime.start.p0(i64 4, ptr %193) #11
  %6943 = call ptr @__errno_location() #12
  %6944 = load i32, ptr %6943, align 4, !tbaa !5
  store i32 %6944, ptr %193, align 4, !tbaa !5
  %6945 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6946 = call i32 @s2n_print_stacktrace(ptr noundef %6945)
  %6947 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6948 = trunc i8 %6947 to i1
  br i1 %6948, label %6949, label %6971

6949:                                             ; preds = %6942
  %6950 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6951 = call i32 @fileno(ptr noundef %6950) #11
  %6952 = call i32 @isatty(i32 noundef %6951) #11
  %6953 = icmp ne i32 %6952, 0
  br i1 %6953, label %6954, label %6971

6954:                                             ; preds = %6949
  %6955 = load i32, ptr %193, align 4, !tbaa !5
  %6956 = call ptr @__errno_location() #12
  store i32 %6955, ptr %6956, align 4, !tbaa !5
  %6957 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6958 = load i32, ptr @test_count, align 4, !tbaa !5
  %6959 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6960 = load i32, ptr %6959, align 4, !tbaa !5
  %6961 = call ptr @s2n_strerror(i32 noundef %6960, ptr noundef @.str.4)
  %6962 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6963 = load i32, ptr %6962, align 4, !tbaa !5
  %6964 = call ptr @s2n_strerror_debug(i32 noundef %6963, ptr noundef @.str.4)
  %6965 = call ptr @__errno_location() #12
  %6966 = load i32, ptr %6965, align 4, !tbaa !5
  %6967 = call ptr @strerror(i32 noundef %6966) #11
  %6968 = call ptr @__errno_location() #12
  %6969 = load i32, ptr %6968, align 4, !tbaa !5
  %6970 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6957, ptr noundef @.str.2, i32 noundef %6958, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 296, ptr noundef %6961, ptr noundef %6964, ptr noundef %6967, i32 noundef %6969) #11
  br label %6988

6971:                                             ; preds = %6949, %6942
  %6972 = load i32, ptr %193, align 4, !tbaa !5
  %6973 = call ptr @__errno_location() #12
  store i32 %6972, ptr %6973, align 4, !tbaa !5
  %6974 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6975 = load i32, ptr @test_count, align 4, !tbaa !5
  %6976 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6977 = load i32, ptr %6976, align 4, !tbaa !5
  %6978 = call ptr @s2n_strerror(i32 noundef %6977, ptr noundef @.str.4)
  %6979 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6980 = load i32, ptr %6979, align 4, !tbaa !5
  %6981 = call ptr @s2n_strerror_debug(i32 noundef %6980, ptr noundef @.str.4)
  %6982 = call ptr @__errno_location() #12
  %6983 = load i32, ptr %6982, align 4, !tbaa !5
  %6984 = call ptr @strerror(i32 noundef %6983) #11
  %6985 = call ptr @__errno_location() #12
  %6986 = load i32, ptr %6985, align 4, !tbaa !5
  %6987 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6974, ptr noundef @.str.5, i32 noundef %6975, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 296, ptr noundef %6978, ptr noundef %6981, ptr noundef %6984, i32 noundef %6986) #11
  br label %6988

6988:                                             ; preds = %6971, %6954
  call void @llvm.lifetime.end.p0(i64 4, ptr %193) #11
  br label %6989

6989:                                             ; preds = %6988
  br label %6990

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

6991:                                             ; No predecessors!
  br label %6992

6992:                                             ; preds = %6991
  br label %6993

6993:                                             ; preds = %6992, %6931
  br label %6994

6994:                                             ; preds = %6993
  br label %6995

6995:                                             ; preds = %6994
  br label %6996

6996:                                             ; preds = %6995
  br label %6997

6997:                                             ; preds = %6996
  %6998 = load i32, ptr @test_count, align 4, !tbaa !5
  %6999 = add nsw i32 %6998, 1
  store i32 %6999, ptr @test_count, align 4, !tbaa !5
  %7000 = load ptr, ptr %167, align 8, !tbaa !9
  %7001 = getelementptr inbounds %struct.s2n_connection, ptr %7000, i32 0, i32 28
  %7002 = getelementptr inbounds %struct.s2n_secrets, ptr %7001, i32 0, i32 0
  %7003 = getelementptr inbounds %struct.s2n_tls13_secrets, ptr %7002, i32 0, i32 0
  %7004 = getelementptr inbounds [48 x i8], ptr %7003, i64 0, i64 0
  %7005 = getelementptr inbounds [48 x i8], ptr %9, i64 0, i64 0
  %7006 = call i32 @memcmp(ptr noundef %7004, ptr noundef %7005, i64 noundef 48) #14
  %7007 = icmp eq i32 %7006, 0
  br i1 %7007, label %7061, label %7008

7008:                                             ; preds = %6997
  br label %7009

7009:                                             ; preds = %7008
  br label %7010

7010:                                             ; preds = %7009
  call void @llvm.lifetime.start.p0(i64 4, ptr %194) #11
  %7011 = call ptr @__errno_location() #12
  %7012 = load i32, ptr %7011, align 4, !tbaa !5
  store i32 %7012, ptr %194, align 4, !tbaa !5
  %7013 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7014 = call i32 @s2n_print_stacktrace(ptr noundef %7013)
  %7015 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7016 = trunc i8 %7015 to i1
  br i1 %7016, label %7017, label %7039

7017:                                             ; preds = %7010
  %7018 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7019 = call i32 @fileno(ptr noundef %7018) #11
  %7020 = call i32 @isatty(i32 noundef %7019) #11
  %7021 = icmp ne i32 %7020, 0
  br i1 %7021, label %7022, label %7039

7022:                                             ; preds = %7017
  %7023 = load i32, ptr %194, align 4, !tbaa !5
  %7024 = call ptr @__errno_location() #12
  store i32 %7023, ptr %7024, align 4, !tbaa !5
  %7025 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7026 = load i32, ptr @test_count, align 4, !tbaa !5
  %7027 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7028 = load i32, ptr %7027, align 4, !tbaa !5
  %7029 = call ptr @s2n_strerror(i32 noundef %7028, ptr noundef @.str.4)
  %7030 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7031 = load i32, ptr %7030, align 4, !tbaa !5
  %7032 = call ptr @s2n_strerror_debug(i32 noundef %7031, ptr noundef @.str.4)
  %7033 = call ptr @__errno_location() #12
  %7034 = load i32, ptr %7033, align 4, !tbaa !5
  %7035 = call ptr @strerror(i32 noundef %7034) #11
  %7036 = call ptr @__errno_location() #12
  %7037 = load i32, ptr %7036, align 4, !tbaa !5
  %7038 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7025, ptr noundef @.str.2, i32 noundef %7026, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 298, ptr noundef %7029, ptr noundef %7032, ptr noundef %7035, i32 noundef %7037) #11
  br label %7056

7039:                                             ; preds = %7017, %7010
  %7040 = load i32, ptr %194, align 4, !tbaa !5
  %7041 = call ptr @__errno_location() #12
  store i32 %7040, ptr %7041, align 4, !tbaa !5
  %7042 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7043 = load i32, ptr @test_count, align 4, !tbaa !5
  %7044 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7045 = load i32, ptr %7044, align 4, !tbaa !5
  %7046 = call ptr @s2n_strerror(i32 noundef %7045, ptr noundef @.str.4)
  %7047 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7048 = load i32, ptr %7047, align 4, !tbaa !5
  %7049 = call ptr @s2n_strerror_debug(i32 noundef %7048, ptr noundef @.str.4)
  %7050 = call ptr @__errno_location() #12
  %7051 = load i32, ptr %7050, align 4, !tbaa !5
  %7052 = call ptr @strerror(i32 noundef %7051) #11
  %7053 = call ptr @__errno_location() #12
  %7054 = load i32, ptr %7053, align 4, !tbaa !5
  %7055 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7042, ptr noundef @.str.5, i32 noundef %7043, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 298, ptr noundef %7046, ptr noundef %7049, ptr noundef %7052, i32 noundef %7054) #11
  br label %7056

7056:                                             ; preds = %7039, %7022
  call void @llvm.lifetime.end.p0(i64 4, ptr %194) #11
  br label %7057

7057:                                             ; preds = %7056
  br label %7058

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

7059:                                             ; No predecessors!
  br label %7060

7060:                                             ; preds = %7059
  br label %7061

7061:                                             ; preds = %7060, %6997
  br label %7062

7062:                                             ; preds = %7061
  br label %7063

7063:                                             ; preds = %7062
  br label %7064

7064:                                             ; preds = %7063
  br label %7065

7065:                                             ; preds = %7064
  br label %7066

7066:                                             ; preds = %7065
  br label %7067

7067:                                             ; preds = %7066
  %7068 = load i32, ptr @test_count, align 4, !tbaa !5
  %7069 = add nsw i32 %7068, 1
  store i32 %7069, ptr @test_count, align 4, !tbaa !5
  %7070 = load ptr, ptr %167, align 8, !tbaa !9
  %7071 = getelementptr inbounds %struct.s2n_connection, ptr %7070, i32 0, i32 28
  %7072 = getelementptr inbounds %struct.s2n_secrets, ptr %7071, i32 0, i32 0
  %7073 = getelementptr inbounds %struct.s2n_tls13_secrets, ptr %7072, i32 0, i32 1
  %7074 = getelementptr inbounds [48 x i8], ptr %7073, i64 0, i64 0
  %7075 = getelementptr inbounds [48 x i8], ptr %9, i64 0, i64 0
  %7076 = call i32 @memcmp(ptr noundef %7074, ptr noundef %7075, i64 noundef 48) #14
  %7077 = icmp eq i32 %7076, 0
  br i1 %7077, label %7131, label %7078

7078:                                             ; preds = %7067
  br label %7079

7079:                                             ; preds = %7078
  br label %7080

7080:                                             ; preds = %7079
  call void @llvm.lifetime.start.p0(i64 4, ptr %195) #11
  %7081 = call ptr @__errno_location() #12
  %7082 = load i32, ptr %7081, align 4, !tbaa !5
  store i32 %7082, ptr %195, align 4, !tbaa !5
  %7083 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7084 = call i32 @s2n_print_stacktrace(ptr noundef %7083)
  %7085 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7086 = trunc i8 %7085 to i1
  br i1 %7086, label %7087, label %7109

7087:                                             ; preds = %7080
  %7088 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7089 = call i32 @fileno(ptr noundef %7088) #11
  %7090 = call i32 @isatty(i32 noundef %7089) #11
  %7091 = icmp ne i32 %7090, 0
  br i1 %7091, label %7092, label %7109

7092:                                             ; preds = %7087
  %7093 = load i32, ptr %195, align 4, !tbaa !5
  %7094 = call ptr @__errno_location() #12
  store i32 %7093, ptr %7094, align 4, !tbaa !5
  %7095 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7096 = load i32, ptr @test_count, align 4, !tbaa !5
  %7097 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7098 = load i32, ptr %7097, align 4, !tbaa !5
  %7099 = call ptr @s2n_strerror(i32 noundef %7098, ptr noundef @.str.4)
  %7100 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7101 = load i32, ptr %7100, align 4, !tbaa !5
  %7102 = call ptr @s2n_strerror_debug(i32 noundef %7101, ptr noundef @.str.4)
  %7103 = call ptr @__errno_location() #12
  %7104 = load i32, ptr %7103, align 4, !tbaa !5
  %7105 = call ptr @strerror(i32 noundef %7104) #11
  %7106 = call ptr @__errno_location() #12
  %7107 = load i32, ptr %7106, align 4, !tbaa !5
  %7108 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7095, ptr noundef @.str.2, i32 noundef %7096, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 299, ptr noundef %7099, ptr noundef %7102, ptr noundef %7105, i32 noundef %7107) #11
  br label %7126

7109:                                             ; preds = %7087, %7080
  %7110 = load i32, ptr %195, align 4, !tbaa !5
  %7111 = call ptr @__errno_location() #12
  store i32 %7110, ptr %7111, align 4, !tbaa !5
  %7112 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7113 = load i32, ptr @test_count, align 4, !tbaa !5
  %7114 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7115 = load i32, ptr %7114, align 4, !tbaa !5
  %7116 = call ptr @s2n_strerror(i32 noundef %7115, ptr noundef @.str.4)
  %7117 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7118 = load i32, ptr %7117, align 4, !tbaa !5
  %7119 = call ptr @s2n_strerror_debug(i32 noundef %7118, ptr noundef @.str.4)
  %7120 = call ptr @__errno_location() #12
  %7121 = load i32, ptr %7120, align 4, !tbaa !5
  %7122 = call ptr @strerror(i32 noundef %7121) #11
  %7123 = call ptr @__errno_location() #12
  %7124 = load i32, ptr %7123, align 4, !tbaa !5
  %7125 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7112, ptr noundef @.str.5, i32 noundef %7113, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 299, ptr noundef %7116, ptr noundef %7119, ptr noundef %7122, i32 noundef %7124) #11
  br label %7126

7126:                                             ; preds = %7109, %7092
  call void @llvm.lifetime.end.p0(i64 4, ptr %195) #11
  br label %7127

7127:                                             ; preds = %7126
  br label %7128

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

7129:                                             ; No predecessors!
  br label %7130

7130:                                             ; preds = %7129
  br label %7131

7131:                                             ; preds = %7130, %7067
  br label %7132

7132:                                             ; preds = %7131
  br label %7133

7133:                                             ; preds = %7132
  br label %7134

7134:                                             ; preds = %7133
  br label %7135

7135:                                             ; preds = %7134
  br label %7136

7136:                                             ; preds = %7135
  br label %7137

7137:                                             ; preds = %7136
  %7138 = load i32, ptr @test_count, align 4, !tbaa !5
  %7139 = add nsw i32 %7138, 1
  store i32 %7139, ptr @test_count, align 4, !tbaa !5
  %7140 = load ptr, ptr %167, align 8, !tbaa !9
  %7141 = getelementptr inbounds %struct.s2n_connection, ptr %7140, i32 0, i32 28
  %7142 = getelementptr inbounds %struct.s2n_secrets, ptr %7141, i32 0, i32 0
  %7143 = getelementptr inbounds %struct.s2n_tls13_secrets, ptr %7142, i32 0, i32 2
  %7144 = getelementptr inbounds [48 x i8], ptr %7143, i64 0, i64 0
  %7145 = getelementptr inbounds [48 x i8], ptr %9, i64 0, i64 0
  %7146 = call i32 @memcmp(ptr noundef %7144, ptr noundef %7145, i64 noundef 48) #14
  %7147 = icmp eq i32 %7146, 0
  br i1 %7147, label %7201, label %7148

7148:                                             ; preds = %7137
  br label %7149

7149:                                             ; preds = %7148
  br label %7150

7150:                                             ; preds = %7149
  call void @llvm.lifetime.start.p0(i64 4, ptr %196) #11
  %7151 = call ptr @__errno_location() #12
  %7152 = load i32, ptr %7151, align 4, !tbaa !5
  store i32 %7152, ptr %196, align 4, !tbaa !5
  %7153 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7154 = call i32 @s2n_print_stacktrace(ptr noundef %7153)
  %7155 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7156 = trunc i8 %7155 to i1
  br i1 %7156, label %7157, label %7179

7157:                                             ; preds = %7150
  %7158 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7159 = call i32 @fileno(ptr noundef %7158) #11
  %7160 = call i32 @isatty(i32 noundef %7159) #11
  %7161 = icmp ne i32 %7160, 0
  br i1 %7161, label %7162, label %7179

7162:                                             ; preds = %7157
  %7163 = load i32, ptr %196, align 4, !tbaa !5
  %7164 = call ptr @__errno_location() #12
  store i32 %7163, ptr %7164, align 4, !tbaa !5
  %7165 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7166 = load i32, ptr @test_count, align 4, !tbaa !5
  %7167 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7168 = load i32, ptr %7167, align 4, !tbaa !5
  %7169 = call ptr @s2n_strerror(i32 noundef %7168, ptr noundef @.str.4)
  %7170 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7171 = load i32, ptr %7170, align 4, !tbaa !5
  %7172 = call ptr @s2n_strerror_debug(i32 noundef %7171, ptr noundef @.str.4)
  %7173 = call ptr @__errno_location() #12
  %7174 = load i32, ptr %7173, align 4, !tbaa !5
  %7175 = call ptr @strerror(i32 noundef %7174) #11
  %7176 = call ptr @__errno_location() #12
  %7177 = load i32, ptr %7176, align 4, !tbaa !5
  %7178 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7165, ptr noundef @.str.2, i32 noundef %7166, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 300, ptr noundef %7169, ptr noundef %7172, ptr noundef %7175, i32 noundef %7177) #11
  br label %7196

7179:                                             ; preds = %7157, %7150
  %7180 = load i32, ptr %196, align 4, !tbaa !5
  %7181 = call ptr @__errno_location() #12
  store i32 %7180, ptr %7181, align 4, !tbaa !5
  %7182 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7183 = load i32, ptr @test_count, align 4, !tbaa !5
  %7184 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7185 = load i32, ptr %7184, align 4, !tbaa !5
  %7186 = call ptr @s2n_strerror(i32 noundef %7185, ptr noundef @.str.4)
  %7187 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7188 = load i32, ptr %7187, align 4, !tbaa !5
  %7189 = call ptr @s2n_strerror_debug(i32 noundef %7188, ptr noundef @.str.4)
  %7190 = call ptr @__errno_location() #12
  %7191 = load i32, ptr %7190, align 4, !tbaa !5
  %7192 = call ptr @strerror(i32 noundef %7191) #11
  %7193 = call ptr @__errno_location() #12
  %7194 = load i32, ptr %7193, align 4, !tbaa !5
  %7195 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7182, ptr noundef @.str.5, i32 noundef %7183, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 300, ptr noundef %7186, ptr noundef %7189, ptr noundef %7192, i32 noundef %7194) #11
  br label %7196

7196:                                             ; preds = %7179, %7162
  call void @llvm.lifetime.end.p0(i64 4, ptr %196) #11
  br label %7197

7197:                                             ; preds = %7196
  br label %7198

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

7199:                                             ; No predecessors!
  br label %7200

7200:                                             ; preds = %7199
  br label %7201

7201:                                             ; preds = %7200, %7137
  br label %7202

7202:                                             ; preds = %7201
  br label %7203

7203:                                             ; preds = %7202
  br label %7204

7204:                                             ; preds = %7203
  br label %7205

7205:                                             ; preds = %7204
  br label %7206

7206:                                             ; preds = %7205
  br label %7207

7207:                                             ; preds = %7206
  %7208 = load i32, ptr @test_count, align 4, !tbaa !5
  %7209 = add nsw i32 %7208, 1
  store i32 %7209, ptr @test_count, align 4, !tbaa !5
  %7210 = load ptr, ptr %167, align 8, !tbaa !9
  %7211 = getelementptr inbounds %struct.s2n_connection, ptr %7210, i32 0, i32 28
  %7212 = getelementptr inbounds %struct.s2n_secrets, ptr %7211, i32 0, i32 0
  %7213 = getelementptr inbounds %struct.s2n_tls13_secrets, ptr %7212, i32 0, i32 3
  %7214 = getelementptr inbounds [48 x i8], ptr %7213, i64 0, i64 0
  %7215 = getelementptr inbounds [48 x i8], ptr %9, i64 0, i64 0
  %7216 = call i32 @memcmp(ptr noundef %7214, ptr noundef %7215, i64 noundef 48) #14
  %7217 = icmp eq i32 %7216, 0
  br i1 %7217, label %7271, label %7218

7218:                                             ; preds = %7207
  br label %7219

7219:                                             ; preds = %7218
  br label %7220

7220:                                             ; preds = %7219
  call void @llvm.lifetime.start.p0(i64 4, ptr %197) #11
  %7221 = call ptr @__errno_location() #12
  %7222 = load i32, ptr %7221, align 4, !tbaa !5
  store i32 %7222, ptr %197, align 4, !tbaa !5
  %7223 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7224 = call i32 @s2n_print_stacktrace(ptr noundef %7223)
  %7225 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7226 = trunc i8 %7225 to i1
  br i1 %7226, label %7227, label %7249

7227:                                             ; preds = %7220
  %7228 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7229 = call i32 @fileno(ptr noundef %7228) #11
  %7230 = call i32 @isatty(i32 noundef %7229) #11
  %7231 = icmp ne i32 %7230, 0
  br i1 %7231, label %7232, label %7249

7232:                                             ; preds = %7227
  %7233 = load i32, ptr %197, align 4, !tbaa !5
  %7234 = call ptr @__errno_location() #12
  store i32 %7233, ptr %7234, align 4, !tbaa !5
  %7235 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7236 = load i32, ptr @test_count, align 4, !tbaa !5
  %7237 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7238 = load i32, ptr %7237, align 4, !tbaa !5
  %7239 = call ptr @s2n_strerror(i32 noundef %7238, ptr noundef @.str.4)
  %7240 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7241 = load i32, ptr %7240, align 4, !tbaa !5
  %7242 = call ptr @s2n_strerror_debug(i32 noundef %7241, ptr noundef @.str.4)
  %7243 = call ptr @__errno_location() #12
  %7244 = load i32, ptr %7243, align 4, !tbaa !5
  %7245 = call ptr @strerror(i32 noundef %7244) #11
  %7246 = call ptr @__errno_location() #12
  %7247 = load i32, ptr %7246, align 4, !tbaa !5
  %7248 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7235, ptr noundef @.str.2, i32 noundef %7236, ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 301, ptr noundef %7239, ptr noundef %7242, ptr noundef %7245, i32 noundef %7247) #11
  br label %7266

7249:                                             ; preds = %7227, %7220
  %7250 = load i32, ptr %197, align 4, !tbaa !5
  %7251 = call ptr @__errno_location() #12
  store i32 %7250, ptr %7251, align 4, !tbaa !5
  %7252 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7253 = load i32, ptr @test_count, align 4, !tbaa !5
  %7254 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7255 = load i32, ptr %7254, align 4, !tbaa !5
  %7256 = call ptr @s2n_strerror(i32 noundef %7255, ptr noundef @.str.4)
  %7257 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7258 = load i32, ptr %7257, align 4, !tbaa !5
  %7259 = call ptr @s2n_strerror_debug(i32 noundef %7258, ptr noundef @.str.4)
  %7260 = call ptr @__errno_location() #12
  %7261 = load i32, ptr %7260, align 4, !tbaa !5
  %7262 = call ptr @strerror(i32 noundef %7261) #11
  %7263 = call ptr @__errno_location() #12
  %7264 = load i32, ptr %7263, align 4, !tbaa !5
  %7265 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7252, ptr noundef @.str.5, i32 noundef %7253, ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 301, ptr noundef %7256, ptr noundef %7259, ptr noundef %7262, i32 noundef %7264) #11
  br label %7266

7266:                                             ; preds = %7249, %7232
  call void @llvm.lifetime.end.p0(i64 4, ptr %197) #11
  br label %7267

7267:                                             ; preds = %7266
  br label %7268

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

7269:                                             ; No predecessors!
  br label %7270

7270:                                             ; preds = %7269
  br label %7271

7271:                                             ; preds = %7270, %7207
  br label %7272

7272:                                             ; preds = %7271
  br label %7273

7273:                                             ; preds = %7272
  br label %7274

7274:                                             ; preds = %7273
  br label %7275

7275:                                             ; preds = %7274
  br label %7276

7276:                                             ; preds = %7275
  %7277 = load i32, ptr @test_count, align 4, !tbaa !5
  %7278 = add nsw i32 %7277, 1
  store i32 %7278, ptr @test_count, align 4, !tbaa !5
  %7279 = load ptr, ptr %167, align 8, !tbaa !9
  %7280 = getelementptr inbounds %struct.s2n_connection, ptr %7279, i32 0, i32 28
  %7281 = getelementptr inbounds %struct.s2n_secrets, ptr %7280, i32 0, i32 0
  %7282 = getelementptr inbounds %struct.s2n_tls13_secrets, ptr %7281, i32 0, i32 4
  %7283 = getelementptr inbounds [48 x i8], ptr %7282, i64 0, i64 0
  %7284 = getelementptr inbounds [48 x i8], ptr %9, i64 0, i64 0
  %7285 = call i32 @memcmp(ptr noundef %7283, ptr noundef %7284, i64 noundef 48) #14
  %7286 = icmp eq i32 %7285, 0
  br i1 %7286, label %7287, label %7340

7287:                                             ; preds = %7276
  br label %7288

7288:                                             ; preds = %7287
  br label %7289

7289:                                             ; preds = %7288
  call void @llvm.lifetime.start.p0(i64 4, ptr %198) #11
  %7290 = call ptr @__errno_location() #12
  %7291 = load i32, ptr %7290, align 4, !tbaa !5
  store i32 %7291, ptr %198, align 4, !tbaa !5
  %7292 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7293 = call i32 @s2n_print_stacktrace(ptr noundef %7292)
  %7294 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7295 = trunc i8 %7294 to i1
  br i1 %7295, label %7296, label %7318

7296:                                             ; preds = %7289
  %7297 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7298 = call i32 @fileno(ptr noundef %7297) #11
  %7299 = call i32 @isatty(i32 noundef %7298) #11
  %7300 = icmp ne i32 %7299, 0
  br i1 %7300, label %7301, label %7318

7301:                                             ; preds = %7296
  %7302 = load i32, ptr %198, align 4, !tbaa !5
  %7303 = call ptr @__errno_location() #12
  store i32 %7302, ptr %7303, align 4, !tbaa !5
  %7304 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7305 = load i32, ptr @test_count, align 4, !tbaa !5
  %7306 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7307 = load i32, ptr %7306, align 4, !tbaa !5
  %7308 = call ptr @s2n_strerror(i32 noundef %7307, ptr noundef @.str.4)
  %7309 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7310 = load i32, ptr %7309, align 4, !tbaa !5
  %7311 = call ptr @s2n_strerror_debug(i32 noundef %7310, ptr noundef @.str.4)
  %7312 = call ptr @__errno_location() #12
  %7313 = load i32, ptr %7312, align 4, !tbaa !5
  %7314 = call ptr @strerror(i32 noundef %7313) #11
  %7315 = call ptr @__errno_location() #12
  %7316 = load i32, ptr %7315, align 4, !tbaa !5
  %7317 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7304, ptr noundef @.str.2, i32 noundef %7305, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 302, ptr noundef %7308, ptr noundef %7311, ptr noundef %7314, i32 noundef %7316) #11
  br label %7335

7318:                                             ; preds = %7296, %7289
  %7319 = load i32, ptr %198, align 4, !tbaa !5
  %7320 = call ptr @__errno_location() #12
  store i32 %7319, ptr %7320, align 4, !tbaa !5
  %7321 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7322 = load i32, ptr @test_count, align 4, !tbaa !5
  %7323 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7324 = load i32, ptr %7323, align 4, !tbaa !5
  %7325 = call ptr @s2n_strerror(i32 noundef %7324, ptr noundef @.str.4)
  %7326 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7327 = load i32, ptr %7326, align 4, !tbaa !5
  %7328 = call ptr @s2n_strerror_debug(i32 noundef %7327, ptr noundef @.str.4)
  %7329 = call ptr @__errno_location() #12
  %7330 = load i32, ptr %7329, align 4, !tbaa !5
  %7331 = call ptr @strerror(i32 noundef %7330) #11
  %7332 = call ptr @__errno_location() #12
  %7333 = load i32, ptr %7332, align 4, !tbaa !5
  %7334 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7321, ptr noundef @.str.5, i32 noundef %7322, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 302, ptr noundef %7325, ptr noundef %7328, ptr noundef %7331, i32 noundef %7333) #11
  br label %7335

7335:                                             ; preds = %7318, %7301
  call void @llvm.lifetime.end.p0(i64 4, ptr %198) #11
  br label %7336

7336:                                             ; preds = %7335
  br label %7337

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

7338:                                             ; No predecessors!
  br label %7339

7339:                                             ; preds = %7338
  br label %7340

7340:                                             ; preds = %7339, %7276
  br label %7341

7341:                                             ; preds = %7340
  br label %7342

7342:                                             ; preds = %7341
  br label %7343

7343:                                             ; preds = %7342
  %7344 = load i32, ptr @test_count, align 4, !tbaa !5
  %7345 = add nsw i32 %7344, 1
  store i32 %7345, ptr @test_count, align 4, !tbaa !5
  %7346 = load ptr, ptr %167, align 8, !tbaa !9
  %7347 = getelementptr inbounds %struct.s2n_connection, ptr %7346, i32 0, i32 28
  %7348 = getelementptr inbounds %struct.s2n_secrets, ptr %7347, i32 0, i32 0
  %7349 = getelementptr inbounds %struct.s2n_tls13_secrets, ptr %7348, i32 0, i32 5
  %7350 = getelementptr inbounds [48 x i8], ptr %7349, i64 0, i64 0
  %7351 = getelementptr inbounds [48 x i8], ptr %9, i64 0, i64 0
  %7352 = call i32 @memcmp(ptr noundef %7350, ptr noundef %7351, i64 noundef 48) #14
  %7353 = icmp eq i32 %7352, 0
  br i1 %7353, label %7354, label %7407

7354:                                             ; preds = %7343
  br label %7355

7355:                                             ; preds = %7354
  br label %7356

7356:                                             ; preds = %7355
  call void @llvm.lifetime.start.p0(i64 4, ptr %199) #11
  %7357 = call ptr @__errno_location() #12
  %7358 = load i32, ptr %7357, align 4, !tbaa !5
  store i32 %7358, ptr %199, align 4, !tbaa !5
  %7359 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7360 = call i32 @s2n_print_stacktrace(ptr noundef %7359)
  %7361 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7362 = trunc i8 %7361 to i1
  br i1 %7362, label %7363, label %7385

7363:                                             ; preds = %7356
  %7364 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7365 = call i32 @fileno(ptr noundef %7364) #11
  %7366 = call i32 @isatty(i32 noundef %7365) #11
  %7367 = icmp ne i32 %7366, 0
  br i1 %7367, label %7368, label %7385

7368:                                             ; preds = %7363
  %7369 = load i32, ptr %199, align 4, !tbaa !5
  %7370 = call ptr @__errno_location() #12
  store i32 %7369, ptr %7370, align 4, !tbaa !5
  %7371 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7372 = load i32, ptr @test_count, align 4, !tbaa !5
  %7373 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7374 = load i32, ptr %7373, align 4, !tbaa !5
  %7375 = call ptr @s2n_strerror(i32 noundef %7374, ptr noundef @.str.4)
  %7376 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7377 = load i32, ptr %7376, align 4, !tbaa !5
  %7378 = call ptr @s2n_strerror_debug(i32 noundef %7377, ptr noundef @.str.4)
  %7379 = call ptr @__errno_location() #12
  %7380 = load i32, ptr %7379, align 4, !tbaa !5
  %7381 = call ptr @strerror(i32 noundef %7380) #11
  %7382 = call ptr @__errno_location() #12
  %7383 = load i32, ptr %7382, align 4, !tbaa !5
  %7384 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7371, ptr noundef @.str.2, i32 noundef %7372, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 303, ptr noundef %7375, ptr noundef %7378, ptr noundef %7381, i32 noundef %7383) #11
  br label %7402

7385:                                             ; preds = %7363, %7356
  %7386 = load i32, ptr %199, align 4, !tbaa !5
  %7387 = call ptr @__errno_location() #12
  store i32 %7386, ptr %7387, align 4, !tbaa !5
  %7388 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7389 = load i32, ptr @test_count, align 4, !tbaa !5
  %7390 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7391 = load i32, ptr %7390, align 4, !tbaa !5
  %7392 = call ptr @s2n_strerror(i32 noundef %7391, ptr noundef @.str.4)
  %7393 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7394 = load i32, ptr %7393, align 4, !tbaa !5
  %7395 = call ptr @s2n_strerror_debug(i32 noundef %7394, ptr noundef @.str.4)
  %7396 = call ptr @__errno_location() #12
  %7397 = load i32, ptr %7396, align 4, !tbaa !5
  %7398 = call ptr @strerror(i32 noundef %7397) #11
  %7399 = call ptr @__errno_location() #12
  %7400 = load i32, ptr %7399, align 4, !tbaa !5
  %7401 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7388, ptr noundef @.str.5, i32 noundef %7389, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 303, ptr noundef %7392, ptr noundef %7395, ptr noundef %7398, i32 noundef %7400) #11
  br label %7402

7402:                                             ; preds = %7385, %7368
  call void @llvm.lifetime.end.p0(i64 4, ptr %199) #11
  br label %7403

7403:                                             ; preds = %7402
  br label %7404

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

7405:                                             ; No predecessors!
  br label %7406

7406:                                             ; preds = %7405
  br label %7407

7407:                                             ; preds = %7406, %7343
  br label %7408

7408:                                             ; preds = %7407
  br label %7409

7409:                                             ; preds = %7408
  br label %7410

7410:                                             ; preds = %7409
  %7411 = load i32, ptr @test_count, align 4, !tbaa !5
  %7412 = add nsw i32 %7411, 1
  store i32 %7412, ptr @test_count, align 4, !tbaa !5
  %7413 = load ptr, ptr %167, align 8, !tbaa !9
  %7414 = getelementptr inbounds %struct.s2n_connection, ptr %7413, i32 0, i32 28
  %7415 = getelementptr inbounds %struct.s2n_secrets, ptr %7414, i32 0, i32 0
  %7416 = getelementptr inbounds %struct.s2n_tls13_secrets, ptr %7415, i32 0, i32 7
  %7417 = getelementptr inbounds [48 x i8], ptr %7416, i64 0, i64 0
  %7418 = getelementptr inbounds [48 x i8], ptr %9, i64 0, i64 0
  %7419 = call i32 @memcmp(ptr noundef %7417, ptr noundef %7418, i64 noundef 48) #14
  %7420 = icmp eq i32 %7419, 0
  br i1 %7420, label %7421, label %7474

7421:                                             ; preds = %7410
  br label %7422

7422:                                             ; preds = %7421
  br label %7423

7423:                                             ; preds = %7422
  call void @llvm.lifetime.start.p0(i64 4, ptr %200) #11
  %7424 = call ptr @__errno_location() #12
  %7425 = load i32, ptr %7424, align 4, !tbaa !5
  store i32 %7425, ptr %200, align 4, !tbaa !5
  %7426 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7427 = call i32 @s2n_print_stacktrace(ptr noundef %7426)
  %7428 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7429 = trunc i8 %7428 to i1
  br i1 %7429, label %7430, label %7452

7430:                                             ; preds = %7423
  %7431 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7432 = call i32 @fileno(ptr noundef %7431) #11
  %7433 = call i32 @isatty(i32 noundef %7432) #11
  %7434 = icmp ne i32 %7433, 0
  br i1 %7434, label %7435, label %7452

7435:                                             ; preds = %7430
  %7436 = load i32, ptr %200, align 4, !tbaa !5
  %7437 = call ptr @__errno_location() #12
  store i32 %7436, ptr %7437, align 4, !tbaa !5
  %7438 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7439 = load i32, ptr @test_count, align 4, !tbaa !5
  %7440 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7441 = load i32, ptr %7440, align 4, !tbaa !5
  %7442 = call ptr @s2n_strerror(i32 noundef %7441, ptr noundef @.str.4)
  %7443 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7444 = load i32, ptr %7443, align 4, !tbaa !5
  %7445 = call ptr @s2n_strerror_debug(i32 noundef %7444, ptr noundef @.str.4)
  %7446 = call ptr @__errno_location() #12
  %7447 = load i32, ptr %7446, align 4, !tbaa !5
  %7448 = call ptr @strerror(i32 noundef %7447) #11
  %7449 = call ptr @__errno_location() #12
  %7450 = load i32, ptr %7449, align 4, !tbaa !5
  %7451 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7438, ptr noundef @.str.2, i32 noundef %7439, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 304, ptr noundef %7442, ptr noundef %7445, ptr noundef %7448, i32 noundef %7450) #11
  br label %7469

7452:                                             ; preds = %7430, %7423
  %7453 = load i32, ptr %200, align 4, !tbaa !5
  %7454 = call ptr @__errno_location() #12
  store i32 %7453, ptr %7454, align 4, !tbaa !5
  %7455 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7456 = load i32, ptr @test_count, align 4, !tbaa !5
  %7457 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7458 = load i32, ptr %7457, align 4, !tbaa !5
  %7459 = call ptr @s2n_strerror(i32 noundef %7458, ptr noundef @.str.4)
  %7460 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7461 = load i32, ptr %7460, align 4, !tbaa !5
  %7462 = call ptr @s2n_strerror_debug(i32 noundef %7461, ptr noundef @.str.4)
  %7463 = call ptr @__errno_location() #12
  %7464 = load i32, ptr %7463, align 4, !tbaa !5
  %7465 = call ptr @strerror(i32 noundef %7464) #11
  %7466 = call ptr @__errno_location() #12
  %7467 = load i32, ptr %7466, align 4, !tbaa !5
  %7468 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7455, ptr noundef @.str.5, i32 noundef %7456, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 304, ptr noundef %7459, ptr noundef %7462, ptr noundef %7465, i32 noundef %7467) #11
  br label %7469

7469:                                             ; preds = %7452, %7435
  call void @llvm.lifetime.end.p0(i64 4, ptr %200) #11
  br label %7470

7470:                                             ; preds = %7469
  br label %7471

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

7472:                                             ; No predecessors!
  br label %7473

7473:                                             ; preds = %7472
  br label %7474

7474:                                             ; preds = %7473, %7410
  br label %7475

7475:                                             ; preds = %7474
  br label %7476

7476:                                             ; preds = %7475
  br label %7477

7477:                                             ; preds = %7476
  %7478 = load i32, ptr @test_count, align 4, !tbaa !5
  %7479 = add nsw i32 %7478, 1
  store i32 %7479, ptr @test_count, align 4, !tbaa !5
  %7480 = load ptr, ptr %167, align 8, !tbaa !9
  %7481 = getelementptr inbounds %struct.s2n_connection, ptr %7480, i32 0, i32 28
  %7482 = getelementptr inbounds %struct.s2n_secrets, ptr %7481, i32 0, i32 0
  %7483 = getelementptr inbounds %struct.s2n_tls13_secrets, ptr %7482, i32 0, i32 6
  %7484 = getelementptr inbounds [48 x i8], ptr %7483, i64 0, i64 0
  %7485 = getelementptr inbounds [48 x i8], ptr %9, i64 0, i64 0
  %7486 = call i32 @memcmp(ptr noundef %7484, ptr noundef %7485, i64 noundef 48) #14
  %7487 = icmp eq i32 %7486, 0
  br i1 %7487, label %7488, label %7541

7488:                                             ; preds = %7477
  br label %7489

7489:                                             ; preds = %7488
  br label %7490

7490:                                             ; preds = %7489
  call void @llvm.lifetime.start.p0(i64 4, ptr %201) #11
  %7491 = call ptr @__errno_location() #12
  %7492 = load i32, ptr %7491, align 4, !tbaa !5
  store i32 %7492, ptr %201, align 4, !tbaa !5
  %7493 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7494 = call i32 @s2n_print_stacktrace(ptr noundef %7493)
  %7495 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7496 = trunc i8 %7495 to i1
  br i1 %7496, label %7497, label %7519

7497:                                             ; preds = %7490
  %7498 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7499 = call i32 @fileno(ptr noundef %7498) #11
  %7500 = call i32 @isatty(i32 noundef %7499) #11
  %7501 = icmp ne i32 %7500, 0
  br i1 %7501, label %7502, label %7519

7502:                                             ; preds = %7497
  %7503 = load i32, ptr %201, align 4, !tbaa !5
  %7504 = call ptr @__errno_location() #12
  store i32 %7503, ptr %7504, align 4, !tbaa !5
  %7505 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7506 = load i32, ptr @test_count, align 4, !tbaa !5
  %7507 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7508 = load i32, ptr %7507, align 4, !tbaa !5
  %7509 = call ptr @s2n_strerror(i32 noundef %7508, ptr noundef @.str.4)
  %7510 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7511 = load i32, ptr %7510, align 4, !tbaa !5
  %7512 = call ptr @s2n_strerror_debug(i32 noundef %7511, ptr noundef @.str.4)
  %7513 = call ptr @__errno_location() #12
  %7514 = load i32, ptr %7513, align 4, !tbaa !5
  %7515 = call ptr @strerror(i32 noundef %7514) #11
  %7516 = call ptr @__errno_location() #12
  %7517 = load i32, ptr %7516, align 4, !tbaa !5
  %7518 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7505, ptr noundef @.str.2, i32 noundef %7506, ptr noundef @.str.58, ptr noundef @.str.1, i32 noundef 305, ptr noundef %7509, ptr noundef %7512, ptr noundef %7515, i32 noundef %7517) #11
  br label %7536

7519:                                             ; preds = %7497, %7490
  %7520 = load i32, ptr %201, align 4, !tbaa !5
  %7521 = call ptr @__errno_location() #12
  store i32 %7520, ptr %7521, align 4, !tbaa !5
  %7522 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7523 = load i32, ptr @test_count, align 4, !tbaa !5
  %7524 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7525 = load i32, ptr %7524, align 4, !tbaa !5
  %7526 = call ptr @s2n_strerror(i32 noundef %7525, ptr noundef @.str.4)
  %7527 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7528 = load i32, ptr %7527, align 4, !tbaa !5
  %7529 = call ptr @s2n_strerror_debug(i32 noundef %7528, ptr noundef @.str.4)
  %7530 = call ptr @__errno_location() #12
  %7531 = load i32, ptr %7530, align 4, !tbaa !5
  %7532 = call ptr @strerror(i32 noundef %7531) #11
  %7533 = call ptr @__errno_location() #12
  %7534 = load i32, ptr %7533, align 4, !tbaa !5
  %7535 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7522, ptr noundef @.str.5, i32 noundef %7523, ptr noundef @.str.58, ptr noundef @.str.1, i32 noundef 305, ptr noundef %7526, ptr noundef %7529, ptr noundef %7532, i32 noundef %7534) #11
  br label %7536

7536:                                             ; preds = %7519, %7502
  call void @llvm.lifetime.end.p0(i64 4, ptr %201) #11
  br label %7537

7537:                                             ; preds = %7536
  br label %7538

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

7539:                                             ; No predecessors!
  br label %7540

7540:                                             ; preds = %7539
  br label %7541

7541:                                             ; preds = %7540, %7477
  br label %7542

7542:                                             ; preds = %7541
  br label %7543

7543:                                             ; preds = %7542
  %7544 = call i32 @s2n_connection_ptr_free(ptr noundef %167)
  %7545 = getelementptr inbounds %struct.s2n_result, ptr %202, i32 0, i32 0
  store i32 %7544, ptr %7545, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %167) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr %203) #11
  call void @llvm.memset.p0.i64(ptr align 8 %203, i8 0, i64 24, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %204) #11
  %7546 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %7546, ptr %204, align 8, !tbaa !9
  br label %7547

7547:                                             ; preds = %7543
  br label %7548

7548:                                             ; preds = %7547
  br label %7549

7549:                                             ; preds = %7548
  %7550 = load i32, ptr @test_count, align 4, !tbaa !5
  %7551 = add nsw i32 %7550, 1
  store i32 %7551, ptr @test_count, align 4, !tbaa !5
  %7552 = call i32 @s2n_tls13_secrets_get(ptr noundef null, i32 noundef 2, i32 noundef 1, ptr noundef %203)
  %7553 = getelementptr inbounds %struct.s2n_result, ptr %205, i32 0, i32 0
  store i32 %7552, ptr %7553, align 4
  %7554 = getelementptr inbounds %struct.s2n_result, ptr %205, i32 0, i32 0
  %7555 = load i32, ptr %7554, align 4
  %7556 = call zeroext i1 @s2n_result_is_error(i32 %7555)
  br i1 %7556, label %7610, label %7557

7557:                                             ; preds = %7549
  br label %7558

7558:                                             ; preds = %7557
  br label %7559

7559:                                             ; preds = %7558
  call void @llvm.lifetime.start.p0(i64 4, ptr %206) #11
  %7560 = call ptr @__errno_location() #12
  %7561 = load i32, ptr %7560, align 4, !tbaa !5
  store i32 %7561, ptr %206, align 4, !tbaa !5
  %7562 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7563 = call i32 @s2n_print_stacktrace(ptr noundef %7562)
  %7564 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7565 = trunc i8 %7564 to i1
  br i1 %7565, label %7566, label %7588

7566:                                             ; preds = %7559
  %7567 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7568 = call i32 @fileno(ptr noundef %7567) #11
  %7569 = call i32 @isatty(i32 noundef %7568) #11
  %7570 = icmp ne i32 %7569, 0
  br i1 %7570, label %7571, label %7588

7571:                                             ; preds = %7566
  %7572 = load i32, ptr %206, align 4, !tbaa !5
  %7573 = call ptr @__errno_location() #12
  store i32 %7572, ptr %7573, align 4, !tbaa !5
  %7574 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7575 = load i32, ptr @test_count, align 4, !tbaa !5
  %7576 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7577 = load i32, ptr %7576, align 4, !tbaa !5
  %7578 = call ptr @s2n_strerror(i32 noundef %7577, ptr noundef @.str.4)
  %7579 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7580 = load i32, ptr %7579, align 4, !tbaa !5
  %7581 = call ptr @s2n_strerror_debug(i32 noundef %7580, ptr noundef @.str.4)
  %7582 = call ptr @__errno_location() #12
  %7583 = load i32, ptr %7582, align 4, !tbaa !5
  %7584 = call ptr @strerror(i32 noundef %7583) #11
  %7585 = call ptr @__errno_location() #12
  %7586 = load i32, ptr %7585, align 4, !tbaa !5
  %7587 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7574, ptr noundef @.str.2, i32 noundef %7575, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 315, ptr noundef %7578, ptr noundef %7581, ptr noundef %7584, i32 noundef %7586) #11
  br label %7605

7588:                                             ; preds = %7566, %7559
  %7589 = load i32, ptr %206, align 4, !tbaa !5
  %7590 = call ptr @__errno_location() #12
  store i32 %7589, ptr %7590, align 4, !tbaa !5
  %7591 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7592 = load i32, ptr @test_count, align 4, !tbaa !5
  %7593 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7594 = load i32, ptr %7593, align 4, !tbaa !5
  %7595 = call ptr @s2n_strerror(i32 noundef %7594, ptr noundef @.str.4)
  %7596 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7597 = load i32, ptr %7596, align 4, !tbaa !5
  %7598 = call ptr @s2n_strerror_debug(i32 noundef %7597, ptr noundef @.str.4)
  %7599 = call ptr @__errno_location() #12
  %7600 = load i32, ptr %7599, align 4, !tbaa !5
  %7601 = call ptr @strerror(i32 noundef %7600) #11
  %7602 = call ptr @__errno_location() #12
  %7603 = load i32, ptr %7602, align 4, !tbaa !5
  %7604 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7591, ptr noundef @.str.5, i32 noundef %7592, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 315, ptr noundef %7595, ptr noundef %7598, ptr noundef %7601, i32 noundef %7603) #11
  br label %7605

7605:                                             ; preds = %7588, %7571
  call void @llvm.lifetime.end.p0(i64 4, ptr %206) #11
  br label %7606

7606:                                             ; preds = %7605
  br label %7607

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

7608:                                             ; No predecessors!
  br label %7609

7609:                                             ; preds = %7608
  br label %7610

7610:                                             ; preds = %7609, %7549
  br label %7611

7611:                                             ; preds = %7610
  br label %7612

7612:                                             ; preds = %7611
  br label %7613

7613:                                             ; preds = %7612
  %7614 = load i32, ptr @test_count, align 4, !tbaa !5
  %7615 = add nsw i32 %7614, 1
  store i32 %7615, ptr @test_count, align 4, !tbaa !5
  %7616 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7617 = load i32, ptr %7616, align 4, !tbaa !5
  %7618 = icmp eq i32 %7617, 402653193
  br i1 %7618, label %7672, label %7619

7619:                                             ; preds = %7613
  br label %7620

7620:                                             ; preds = %7619
  br label %7621

7621:                                             ; preds = %7620
  call void @llvm.lifetime.start.p0(i64 4, ptr %207) #11
  %7622 = call ptr @__errno_location() #12
  %7623 = load i32, ptr %7622, align 4, !tbaa !5
  store i32 %7623, ptr %207, align 4, !tbaa !5
  %7624 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7625 = call i32 @s2n_print_stacktrace(ptr noundef %7624)
  %7626 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7627 = trunc i8 %7626 to i1
  br i1 %7627, label %7628, label %7650

7628:                                             ; preds = %7621
  %7629 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7630 = call i32 @fileno(ptr noundef %7629) #11
  %7631 = call i32 @isatty(i32 noundef %7630) #11
  %7632 = icmp ne i32 %7631, 0
  br i1 %7632, label %7633, label %7650

7633:                                             ; preds = %7628
  %7634 = load i32, ptr %207, align 4, !tbaa !5
  %7635 = call ptr @__errno_location() #12
  store i32 %7634, ptr %7635, align 4, !tbaa !5
  %7636 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7637 = load i32, ptr @test_count, align 4, !tbaa !5
  %7638 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7639 = load i32, ptr %7638, align 4, !tbaa !5
  %7640 = call ptr @s2n_strerror(i32 noundef %7639, ptr noundef @.str.4)
  %7641 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7642 = load i32, ptr %7641, align 4, !tbaa !5
  %7643 = call ptr @s2n_strerror_debug(i32 noundef %7642, ptr noundef @.str.4)
  %7644 = call ptr @__errno_location() #12
  %7645 = load i32, ptr %7644, align 4, !tbaa !5
  %7646 = call ptr @strerror(i32 noundef %7645) #11
  %7647 = call ptr @__errno_location() #12
  %7648 = load i32, ptr %7647, align 4, !tbaa !5
  %7649 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7636, ptr noundef @.str.2, i32 noundef %7637, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 315, ptr noundef %7640, ptr noundef %7643, ptr noundef %7646, i32 noundef %7648) #11
  br label %7667

7650:                                             ; preds = %7628, %7621
  %7651 = load i32, ptr %207, align 4, !tbaa !5
  %7652 = call ptr @__errno_location() #12
  store i32 %7651, ptr %7652, align 4, !tbaa !5
  %7653 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7654 = load i32, ptr @test_count, align 4, !tbaa !5
  %7655 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7656 = load i32, ptr %7655, align 4, !tbaa !5
  %7657 = call ptr @s2n_strerror(i32 noundef %7656, ptr noundef @.str.4)
  %7658 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7659 = load i32, ptr %7658, align 4, !tbaa !5
  %7660 = call ptr @s2n_strerror_debug(i32 noundef %7659, ptr noundef @.str.4)
  %7661 = call ptr @__errno_location() #12
  %7662 = load i32, ptr %7661, align 4, !tbaa !5
  %7663 = call ptr @strerror(i32 noundef %7662) #11
  %7664 = call ptr @__errno_location() #12
  %7665 = load i32, ptr %7664, align 4, !tbaa !5
  %7666 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7653, ptr noundef @.str.5, i32 noundef %7654, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 315, ptr noundef %7657, ptr noundef %7660, ptr noundef %7663, i32 noundef %7665) #11
  br label %7667

7667:                                             ; preds = %7650, %7633
  call void @llvm.lifetime.end.p0(i64 4, ptr %207) #11
  br label %7668

7668:                                             ; preds = %7667
  br label %7669

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

7670:                                             ; No predecessors!
  br label %7671

7671:                                             ; preds = %7670
  br label %7672

7672:                                             ; preds = %7671, %7613
  br label %7673

7673:                                             ; preds = %7672
  br label %7674

7674:                                             ; preds = %7673
  br label %7675

7675:                                             ; preds = %7674
  %7676 = load i32, ptr @test_count, align 4, !tbaa !5
  %7677 = add nsw i32 %7676, 1
  store i32 %7677, ptr @test_count, align 4, !tbaa !5
  %7678 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7679 = load i32, ptr %7678, align 4, !tbaa !5
  %7680 = call ptr @s2n_strerror_debug(i32 noundef %7679, ptr noundef @.str.4)
  %7681 = icmp eq ptr %7680, null
  br i1 %7681, label %7682, label %7735

7682:                                             ; preds = %7675
  br label %7683

7683:                                             ; preds = %7682
  br label %7684

7684:                                             ; preds = %7683
  call void @llvm.lifetime.start.p0(i64 4, ptr %208) #11
  %7685 = call ptr @__errno_location() #12
  %7686 = load i32, ptr %7685, align 4, !tbaa !5
  store i32 %7686, ptr %208, align 4, !tbaa !5
  %7687 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7688 = call i32 @s2n_print_stacktrace(ptr noundef %7687)
  %7689 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7690 = trunc i8 %7689 to i1
  br i1 %7690, label %7691, label %7713

7691:                                             ; preds = %7684
  %7692 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7693 = call i32 @fileno(ptr noundef %7692) #11
  %7694 = call i32 @isatty(i32 noundef %7693) #11
  %7695 = icmp ne i32 %7694, 0
  br i1 %7695, label %7696, label %7713

7696:                                             ; preds = %7691
  %7697 = load i32, ptr %208, align 4, !tbaa !5
  %7698 = call ptr @__errno_location() #12
  store i32 %7697, ptr %7698, align 4, !tbaa !5
  %7699 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7700 = load i32, ptr @test_count, align 4, !tbaa !5
  %7701 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7702 = load i32, ptr %7701, align 4, !tbaa !5
  %7703 = call ptr @s2n_strerror(i32 noundef %7702, ptr noundef @.str.4)
  %7704 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7705 = load i32, ptr %7704, align 4, !tbaa !5
  %7706 = call ptr @s2n_strerror_debug(i32 noundef %7705, ptr noundef @.str.4)
  %7707 = call ptr @__errno_location() #12
  %7708 = load i32, ptr %7707, align 4, !tbaa !5
  %7709 = call ptr @strerror(i32 noundef %7708) #11
  %7710 = call ptr @__errno_location() #12
  %7711 = load i32, ptr %7710, align 4, !tbaa !5
  %7712 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7699, ptr noundef @.str.2, i32 noundef %7700, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 315, ptr noundef %7703, ptr noundef %7706, ptr noundef %7709, i32 noundef %7711) #11
  br label %7730

7713:                                             ; preds = %7691, %7684
  %7714 = load i32, ptr %208, align 4, !tbaa !5
  %7715 = call ptr @__errno_location() #12
  store i32 %7714, ptr %7715, align 4, !tbaa !5
  %7716 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7717 = load i32, ptr @test_count, align 4, !tbaa !5
  %7718 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7719 = load i32, ptr %7718, align 4, !tbaa !5
  %7720 = call ptr @s2n_strerror(i32 noundef %7719, ptr noundef @.str.4)
  %7721 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7722 = load i32, ptr %7721, align 4, !tbaa !5
  %7723 = call ptr @s2n_strerror_debug(i32 noundef %7722, ptr noundef @.str.4)
  %7724 = call ptr @__errno_location() #12
  %7725 = load i32, ptr %7724, align 4, !tbaa !5
  %7726 = call ptr @strerror(i32 noundef %7725) #11
  %7727 = call ptr @__errno_location() #12
  %7728 = load i32, ptr %7727, align 4, !tbaa !5
  %7729 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7716, ptr noundef @.str.5, i32 noundef %7717, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 315, ptr noundef %7720, ptr noundef %7723, ptr noundef %7726, i32 noundef %7728) #11
  br label %7730

7730:                                             ; preds = %7713, %7696
  call void @llvm.lifetime.end.p0(i64 4, ptr %208) #11
  br label %7731

7731:                                             ; preds = %7730
  br label %7732

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

7733:                                             ; No predecessors!
  br label %7734

7734:                                             ; preds = %7733
  br label %7735

7735:                                             ; preds = %7734, %7675
  br label %7736

7736:                                             ; preds = %7735
  br label %7737

7737:                                             ; preds = %7736
  br label %7738

7738:                                             ; preds = %7737
  br label %7739

7739:                                             ; preds = %7738
  br label %7740

7740:                                             ; preds = %7739
  %7741 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %7741, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %7742 = call ptr @__errno_location() #12
  store i32 0, ptr %7742, align 4, !tbaa !5
  br label %7743

7743:                                             ; preds = %7740
  br label %7744

7744:                                             ; preds = %7743
  br label %7745

7745:                                             ; preds = %7744
  br label %7746

7746:                                             ; preds = %7745
  br label %7747

7747:                                             ; preds = %7746
  br label %7748

7748:                                             ; preds = %7747
  br label %7749

7749:                                             ; preds = %7748
  %7750 = load i32, ptr @test_count, align 4, !tbaa !5
  %7751 = add nsw i32 %7750, 1
  store i32 %7751, ptr @test_count, align 4, !tbaa !5
  %7752 = load ptr, ptr %204, align 8, !tbaa !9
  %7753 = call i32 @s2n_tls13_secrets_get(ptr noundef %7752, i32 noundef 2, i32 noundef 1, ptr noundef null)
  %7754 = getelementptr inbounds %struct.s2n_result, ptr %209, i32 0, i32 0
  store i32 %7753, ptr %7754, align 4
  %7755 = getelementptr inbounds %struct.s2n_result, ptr %209, i32 0, i32 0
  %7756 = load i32, ptr %7755, align 4
  %7757 = call zeroext i1 @s2n_result_is_error(i32 %7756)
  br i1 %7757, label %7811, label %7758

7758:                                             ; preds = %7749
  br label %7759

7759:                                             ; preds = %7758
  br label %7760

7760:                                             ; preds = %7759
  call void @llvm.lifetime.start.p0(i64 4, ptr %210) #11
  %7761 = call ptr @__errno_location() #12
  %7762 = load i32, ptr %7761, align 4, !tbaa !5
  store i32 %7762, ptr %210, align 4, !tbaa !5
  %7763 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7764 = call i32 @s2n_print_stacktrace(ptr noundef %7763)
  %7765 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7766 = trunc i8 %7765 to i1
  br i1 %7766, label %7767, label %7789

7767:                                             ; preds = %7760
  %7768 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7769 = call i32 @fileno(ptr noundef %7768) #11
  %7770 = call i32 @isatty(i32 noundef %7769) #11
  %7771 = icmp ne i32 %7770, 0
  br i1 %7771, label %7772, label %7789

7772:                                             ; preds = %7767
  %7773 = load i32, ptr %210, align 4, !tbaa !5
  %7774 = call ptr @__errno_location() #12
  store i32 %7773, ptr %7774, align 4, !tbaa !5
  %7775 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7776 = load i32, ptr @test_count, align 4, !tbaa !5
  %7777 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7778 = load i32, ptr %7777, align 4, !tbaa !5
  %7779 = call ptr @s2n_strerror(i32 noundef %7778, ptr noundef @.str.4)
  %7780 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7781 = load i32, ptr %7780, align 4, !tbaa !5
  %7782 = call ptr @s2n_strerror_debug(i32 noundef %7781, ptr noundef @.str.4)
  %7783 = call ptr @__errno_location() #12
  %7784 = load i32, ptr %7783, align 4, !tbaa !5
  %7785 = call ptr @strerror(i32 noundef %7784) #11
  %7786 = call ptr @__errno_location() #12
  %7787 = load i32, ptr %7786, align 4, !tbaa !5
  %7788 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7775, ptr noundef @.str.2, i32 noundef %7776, ptr noundef @.str.64, ptr noundef @.str.1, i32 noundef 316, ptr noundef %7779, ptr noundef %7782, ptr noundef %7785, i32 noundef %7787) #11
  br label %7806

7789:                                             ; preds = %7767, %7760
  %7790 = load i32, ptr %210, align 4, !tbaa !5
  %7791 = call ptr @__errno_location() #12
  store i32 %7790, ptr %7791, align 4, !tbaa !5
  %7792 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7793 = load i32, ptr @test_count, align 4, !tbaa !5
  %7794 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7795 = load i32, ptr %7794, align 4, !tbaa !5
  %7796 = call ptr @s2n_strerror(i32 noundef %7795, ptr noundef @.str.4)
  %7797 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7798 = load i32, ptr %7797, align 4, !tbaa !5
  %7799 = call ptr @s2n_strerror_debug(i32 noundef %7798, ptr noundef @.str.4)
  %7800 = call ptr @__errno_location() #12
  %7801 = load i32, ptr %7800, align 4, !tbaa !5
  %7802 = call ptr @strerror(i32 noundef %7801) #11
  %7803 = call ptr @__errno_location() #12
  %7804 = load i32, ptr %7803, align 4, !tbaa !5
  %7805 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7792, ptr noundef @.str.5, i32 noundef %7793, ptr noundef @.str.64, ptr noundef @.str.1, i32 noundef 316, ptr noundef %7796, ptr noundef %7799, ptr noundef %7802, i32 noundef %7804) #11
  br label %7806

7806:                                             ; preds = %7789, %7772
  call void @llvm.lifetime.end.p0(i64 4, ptr %210) #11
  br label %7807

7807:                                             ; preds = %7806
  br label %7808

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

7809:                                             ; No predecessors!
  br label %7810

7810:                                             ; preds = %7809
  br label %7811

7811:                                             ; preds = %7810, %7749
  br label %7812

7812:                                             ; preds = %7811
  br label %7813

7813:                                             ; preds = %7812
  br label %7814

7814:                                             ; preds = %7813
  %7815 = load i32, ptr @test_count, align 4, !tbaa !5
  %7816 = add nsw i32 %7815, 1
  store i32 %7816, ptr @test_count, align 4, !tbaa !5
  %7817 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7818 = load i32, ptr %7817, align 4, !tbaa !5
  %7819 = icmp eq i32 %7818, 402653193
  br i1 %7819, label %7873, label %7820

7820:                                             ; preds = %7814
  br label %7821

7821:                                             ; preds = %7820
  br label %7822

7822:                                             ; preds = %7821
  call void @llvm.lifetime.start.p0(i64 4, ptr %211) #11
  %7823 = call ptr @__errno_location() #12
  %7824 = load i32, ptr %7823, align 4, !tbaa !5
  store i32 %7824, ptr %211, align 4, !tbaa !5
  %7825 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7826 = call i32 @s2n_print_stacktrace(ptr noundef %7825)
  %7827 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7828 = trunc i8 %7827 to i1
  br i1 %7828, label %7829, label %7851

7829:                                             ; preds = %7822
  %7830 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7831 = call i32 @fileno(ptr noundef %7830) #11
  %7832 = call i32 @isatty(i32 noundef %7831) #11
  %7833 = icmp ne i32 %7832, 0
  br i1 %7833, label %7834, label %7851

7834:                                             ; preds = %7829
  %7835 = load i32, ptr %211, align 4, !tbaa !5
  %7836 = call ptr @__errno_location() #12
  store i32 %7835, ptr %7836, align 4, !tbaa !5
  %7837 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7838 = load i32, ptr @test_count, align 4, !tbaa !5
  %7839 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7840 = load i32, ptr %7839, align 4, !tbaa !5
  %7841 = call ptr @s2n_strerror(i32 noundef %7840, ptr noundef @.str.4)
  %7842 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7843 = load i32, ptr %7842, align 4, !tbaa !5
  %7844 = call ptr @s2n_strerror_debug(i32 noundef %7843, ptr noundef @.str.4)
  %7845 = call ptr @__errno_location() #12
  %7846 = load i32, ptr %7845, align 4, !tbaa !5
  %7847 = call ptr @strerror(i32 noundef %7846) #11
  %7848 = call ptr @__errno_location() #12
  %7849 = load i32, ptr %7848, align 4, !tbaa !5
  %7850 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7837, ptr noundef @.str.2, i32 noundef %7838, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 316, ptr noundef %7841, ptr noundef %7844, ptr noundef %7847, i32 noundef %7849) #11
  br label %7868

7851:                                             ; preds = %7829, %7822
  %7852 = load i32, ptr %211, align 4, !tbaa !5
  %7853 = call ptr @__errno_location() #12
  store i32 %7852, ptr %7853, align 4, !tbaa !5
  %7854 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7855 = load i32, ptr @test_count, align 4, !tbaa !5
  %7856 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7857 = load i32, ptr %7856, align 4, !tbaa !5
  %7858 = call ptr @s2n_strerror(i32 noundef %7857, ptr noundef @.str.4)
  %7859 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7860 = load i32, ptr %7859, align 4, !tbaa !5
  %7861 = call ptr @s2n_strerror_debug(i32 noundef %7860, ptr noundef @.str.4)
  %7862 = call ptr @__errno_location() #12
  %7863 = load i32, ptr %7862, align 4, !tbaa !5
  %7864 = call ptr @strerror(i32 noundef %7863) #11
  %7865 = call ptr @__errno_location() #12
  %7866 = load i32, ptr %7865, align 4, !tbaa !5
  %7867 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7854, ptr noundef @.str.5, i32 noundef %7855, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 316, ptr noundef %7858, ptr noundef %7861, ptr noundef %7864, i32 noundef %7866) #11
  br label %7868

7868:                                             ; preds = %7851, %7834
  call void @llvm.lifetime.end.p0(i64 4, ptr %211) #11
  br label %7869

7869:                                             ; preds = %7868
  br label %7870

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

7871:                                             ; No predecessors!
  br label %7872

7872:                                             ; preds = %7871
  br label %7873

7873:                                             ; preds = %7872, %7814
  br label %7874

7874:                                             ; preds = %7873
  br label %7875

7875:                                             ; preds = %7874
  br label %7876

7876:                                             ; preds = %7875
  %7877 = load i32, ptr @test_count, align 4, !tbaa !5
  %7878 = add nsw i32 %7877, 1
  store i32 %7878, ptr @test_count, align 4, !tbaa !5
  %7879 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7880 = load i32, ptr %7879, align 4, !tbaa !5
  %7881 = call ptr @s2n_strerror_debug(i32 noundef %7880, ptr noundef @.str.4)
  %7882 = icmp eq ptr %7881, null
  br i1 %7882, label %7883, label %7936

7883:                                             ; preds = %7876
  br label %7884

7884:                                             ; preds = %7883
  br label %7885

7885:                                             ; preds = %7884
  call void @llvm.lifetime.start.p0(i64 4, ptr %212) #11
  %7886 = call ptr @__errno_location() #12
  %7887 = load i32, ptr %7886, align 4, !tbaa !5
  store i32 %7887, ptr %212, align 4, !tbaa !5
  %7888 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7889 = call i32 @s2n_print_stacktrace(ptr noundef %7888)
  %7890 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7891 = trunc i8 %7890 to i1
  br i1 %7891, label %7892, label %7914

7892:                                             ; preds = %7885
  %7893 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7894 = call i32 @fileno(ptr noundef %7893) #11
  %7895 = call i32 @isatty(i32 noundef %7894) #11
  %7896 = icmp ne i32 %7895, 0
  br i1 %7896, label %7897, label %7914

7897:                                             ; preds = %7892
  %7898 = load i32, ptr %212, align 4, !tbaa !5
  %7899 = call ptr @__errno_location() #12
  store i32 %7898, ptr %7899, align 4, !tbaa !5
  %7900 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7901 = load i32, ptr @test_count, align 4, !tbaa !5
  %7902 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7903 = load i32, ptr %7902, align 4, !tbaa !5
  %7904 = call ptr @s2n_strerror(i32 noundef %7903, ptr noundef @.str.4)
  %7905 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7906 = load i32, ptr %7905, align 4, !tbaa !5
  %7907 = call ptr @s2n_strerror_debug(i32 noundef %7906, ptr noundef @.str.4)
  %7908 = call ptr @__errno_location() #12
  %7909 = load i32, ptr %7908, align 4, !tbaa !5
  %7910 = call ptr @strerror(i32 noundef %7909) #11
  %7911 = call ptr @__errno_location() #12
  %7912 = load i32, ptr %7911, align 4, !tbaa !5
  %7913 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7900, ptr noundef @.str.2, i32 noundef %7901, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 316, ptr noundef %7904, ptr noundef %7907, ptr noundef %7910, i32 noundef %7912) #11
  br label %7931

7914:                                             ; preds = %7892, %7885
  %7915 = load i32, ptr %212, align 4, !tbaa !5
  %7916 = call ptr @__errno_location() #12
  store i32 %7915, ptr %7916, align 4, !tbaa !5
  %7917 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7918 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %7920, ptr noundef @.str.4)
  %7922 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7923 = load i32, ptr %7922, align 4, !tbaa !5
  %7924 = call ptr @s2n_strerror_debug(i32 noundef %7923, ptr noundef @.str.4)
  %7925 = call ptr @__errno_location() #12
  %7926 = load i32, ptr %7925, align 4, !tbaa !5
  %7927 = call ptr @strerror(i32 noundef %7926) #11
  %7928 = call ptr @__errno_location() #12
  %7929 = load i32, ptr %7928, align 4, !tbaa !5
  %7930 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7917, ptr noundef @.str.5, i32 noundef %7918, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 316, ptr noundef %7921, ptr noundef %7924, ptr noundef %7927, i32 noundef %7929) #11
  br label %7931

7931:                                             ; preds = %7914, %7897
  call void @llvm.lifetime.end.p0(i64 4, ptr %212) #11
  br label %7932

7932:                                             ; preds = %7931
  br label %7933

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

7934:                                             ; No predecessors!
  br label %7935

7935:                                             ; preds = %7934
  br label %7936

7936:                                             ; preds = %7935, %7876
  br label %7937

7937:                                             ; preds = %7936
  br label %7938

7938:                                             ; preds = %7937
  br label %7939

7939:                                             ; preds = %7938
  br label %7940

7940:                                             ; preds = %7939
  br label %7941

7941:                                             ; preds = %7940
  %7942 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %7942, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %7943 = call ptr @__errno_location() #12
  store i32 0, ptr %7943, align 4, !tbaa !5
  br label %7944

7944:                                             ; preds = %7941
  br label %7945

7945:                                             ; preds = %7944
  br label %7946

7946:                                             ; preds = %7945
  br label %7947

7947:                                             ; preds = %7946
  br label %7948

7948:                                             ; preds = %7947
  br label %7949

7949:                                             ; preds = %7948
  br label %7950

7950:                                             ; preds = %7949
  %7951 = load i32, ptr @test_count, align 4, !tbaa !5
  %7952 = add nsw i32 %7951, 1
  store i32 %7952, ptr @test_count, align 4, !tbaa !5
  %7953 = load ptr, ptr %204, align 8, !tbaa !9
  %7954 = call i32 @s2n_tls13_secrets_get(ptr noundef %7953, i32 noundef 0, i32 noundef 1, ptr noundef %203)
  %7955 = getelementptr inbounds %struct.s2n_result, ptr %213, i32 0, i32 0
  store i32 %7954, ptr %7955, align 4
  %7956 = getelementptr inbounds %struct.s2n_result, ptr %213, i32 0, i32 0
  %7957 = load i32, ptr %7956, align 4
  %7958 = call zeroext i1 @s2n_result_is_error(i32 %7957)
  br i1 %7958, label %8012, label %7959

7959:                                             ; preds = %7950
  br label %7960

7960:                                             ; preds = %7959
  br label %7961

7961:                                             ; preds = %7960
  call void @llvm.lifetime.start.p0(i64 4, ptr %214) #11
  %7962 = call ptr @__errno_location() #12
  %7963 = load i32, ptr %7962, align 4, !tbaa !5
  store i32 %7963, ptr %214, 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 %214, 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.65, ptr noundef @.str.1, i32 noundef 317, ptr noundef %7980, ptr noundef %7983, ptr noundef %7986, i32 noundef %7988) #11
  br label %8007

7990:                                             ; preds = %7968, %7961
  %7991 = load i32, ptr %214, 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.65, ptr noundef @.str.1, i32 noundef 317, 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 %214) #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, %7950
  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 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8019 = load i32, ptr %8018, align 4, !tbaa !5
  %8020 = icmp eq i32 %8019, 402653194
  br i1 %8020, label %8074, label %8021

8021:                                             ; preds = %8015
  br label %8022

8022:                                             ; preds = %8021
  br label %8023

8023:                                             ; preds = %8022
  call void @llvm.lifetime.start.p0(i64 4, ptr %215) #11
  %8024 = call ptr @__errno_location() #12
  %8025 = load i32, ptr %8024, align 4, !tbaa !5
  store i32 %8025, ptr %215, align 4, !tbaa !5
  %8026 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8027 = call i32 @s2n_print_stacktrace(ptr noundef %8026)
  %8028 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8029 = trunc i8 %8028 to i1
  br i1 %8029, label %8030, label %8052

8030:                                             ; preds = %8023
  %8031 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8032 = call i32 @fileno(ptr noundef %8031) #11
  %8033 = call i32 @isatty(i32 noundef %8032) #11
  %8034 = icmp ne i32 %8033, 0
  br i1 %8034, label %8035, label %8052

8035:                                             ; preds = %8030
  %8036 = load i32, ptr %215, align 4, !tbaa !5
  %8037 = call ptr @__errno_location() #12
  store i32 %8036, ptr %8037, align 4, !tbaa !5
  %8038 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8039 = load i32, ptr @test_count, align 4, !tbaa !5
  %8040 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8041 = load i32, ptr %8040, align 4, !tbaa !5
  %8042 = call ptr @s2n_strerror(i32 noundef %8041, ptr noundef @.str.4)
  %8043 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8044 = load i32, ptr %8043, align 4, !tbaa !5
  %8045 = call ptr @s2n_strerror_debug(i32 noundef %8044, ptr noundef @.str.4)
  %8046 = call ptr @__errno_location() #12
  %8047 = load i32, ptr %8046, align 4, !tbaa !5
  %8048 = call ptr @strerror(i32 noundef %8047) #11
  %8049 = call ptr @__errno_location() #12
  %8050 = load i32, ptr %8049, align 4, !tbaa !5
  %8051 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8038, ptr noundef @.str.2, i32 noundef %8039, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 317, ptr noundef %8042, ptr noundef %8045, ptr noundef %8048, i32 noundef %8050) #11
  br label %8069

8052:                                             ; preds = %8030, %8023
  %8053 = load i32, ptr %215, align 4, !tbaa !5
  %8054 = call ptr @__errno_location() #12
  store i32 %8053, ptr %8054, align 4, !tbaa !5
  %8055 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8056 = load i32, ptr @test_count, align 4, !tbaa !5
  %8057 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8058 = load i32, ptr %8057, align 4, !tbaa !5
  %8059 = call ptr @s2n_strerror(i32 noundef %8058, ptr noundef @.str.4)
  %8060 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8061 = load i32, ptr %8060, align 4, !tbaa !5
  %8062 = call ptr @s2n_strerror_debug(i32 noundef %8061, ptr noundef @.str.4)
  %8063 = call ptr @__errno_location() #12
  %8064 = load i32, ptr %8063, align 4, !tbaa !5
  %8065 = call ptr @strerror(i32 noundef %8064) #11
  %8066 = call ptr @__errno_location() #12
  %8067 = load i32, ptr %8066, align 4, !tbaa !5
  %8068 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8055, ptr noundef @.str.5, i32 noundef %8056, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 317, ptr noundef %8059, ptr noundef %8062, ptr noundef %8065, i32 noundef %8067) #11
  br label %8069

8069:                                             ; preds = %8052, %8035
  call void @llvm.lifetime.end.p0(i64 4, ptr %215) #11
  br label %8070

8070:                                             ; preds = %8069
  br label %8071

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

8072:                                             ; No predecessors!
  br label %8073

8073:                                             ; preds = %8072
  br label %8074

8074:                                             ; preds = %8073, %8015
  br label %8075

8075:                                             ; preds = %8074
  br label %8076

8076:                                             ; preds = %8075
  br label %8077

8077:                                             ; preds = %8076
  %8078 = load i32, ptr @test_count, align 4, !tbaa !5
  %8079 = add nsw i32 %8078, 1
  store i32 %8079, ptr @test_count, align 4, !tbaa !5
  %8080 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8081 = load i32, ptr %8080, align 4, !tbaa !5
  %8082 = call ptr @s2n_strerror_debug(i32 noundef %8081, ptr noundef @.str.4)
  %8083 = icmp eq ptr %8082, null
  br i1 %8083, label %8084, label %8137

8084:                                             ; preds = %8077
  br label %8085

8085:                                             ; preds = %8084
  br label %8086

8086:                                             ; preds = %8085
  call void @llvm.lifetime.start.p0(i64 4, ptr %216) #11
  %8087 = call ptr @__errno_location() #12
  %8088 = load i32, ptr %8087, align 4, !tbaa !5
  store i32 %8088, ptr %216, align 4, !tbaa !5
  %8089 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8090 = call i32 @s2n_print_stacktrace(ptr noundef %8089)
  %8091 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8092 = trunc i8 %8091 to i1
  br i1 %8092, label %8093, label %8115

8093:                                             ; preds = %8086
  %8094 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8095 = call i32 @fileno(ptr noundef %8094) #11
  %8096 = call i32 @isatty(i32 noundef %8095) #11
  %8097 = icmp ne i32 %8096, 0
  br i1 %8097, label %8098, label %8115

8098:                                             ; preds = %8093
  %8099 = load i32, ptr %216, align 4, !tbaa !5
  %8100 = call ptr @__errno_location() #12
  store i32 %8099, ptr %8100, align 4, !tbaa !5
  %8101 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8102 = load i32, ptr @test_count, align 4, !tbaa !5
  %8103 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8104 = load i32, ptr %8103, align 4, !tbaa !5
  %8105 = call ptr @s2n_strerror(i32 noundef %8104, ptr noundef @.str.4)
  %8106 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8107 = load i32, ptr %8106, align 4, !tbaa !5
  %8108 = call ptr @s2n_strerror_debug(i32 noundef %8107, ptr noundef @.str.4)
  %8109 = call ptr @__errno_location() #12
  %8110 = load i32, ptr %8109, align 4, !tbaa !5
  %8111 = call ptr @strerror(i32 noundef %8110) #11
  %8112 = call ptr @__errno_location() #12
  %8113 = load i32, ptr %8112, align 4, !tbaa !5
  %8114 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8101, ptr noundef @.str.2, i32 noundef %8102, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 317, ptr noundef %8105, ptr noundef %8108, ptr noundef %8111, i32 noundef %8113) #11
  br label %8132

8115:                                             ; preds = %8093, %8086
  %8116 = load i32, ptr %216, align 4, !tbaa !5
  %8117 = call ptr @__errno_location() #12
  store i32 %8116, ptr %8117, align 4, !tbaa !5
  %8118 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8119 = load i32, ptr @test_count, align 4, !tbaa !5
  %8120 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8121 = load i32, ptr %8120, align 4, !tbaa !5
  %8122 = call ptr @s2n_strerror(i32 noundef %8121, ptr noundef @.str.4)
  %8123 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8124 = load i32, ptr %8123, align 4, !tbaa !5
  %8125 = call ptr @s2n_strerror_debug(i32 noundef %8124, ptr noundef @.str.4)
  %8126 = call ptr @__errno_location() #12
  %8127 = load i32, ptr %8126, align 4, !tbaa !5
  %8128 = call ptr @strerror(i32 noundef %8127) #11
  %8129 = call ptr @__errno_location() #12
  %8130 = load i32, ptr %8129, align 4, !tbaa !5
  %8131 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8118, ptr noundef @.str.5, i32 noundef %8119, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 317, ptr noundef %8122, ptr noundef %8125, ptr noundef %8128, i32 noundef %8130) #11
  br label %8132

8132:                                             ; preds = %8115, %8098
  call void @llvm.lifetime.end.p0(i64 4, ptr %216) #11
  br label %8133

8133:                                             ; preds = %8132
  br label %8134

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

8135:                                             ; No predecessors!
  br label %8136

8136:                                             ; preds = %8135
  br label %8137

8137:                                             ; preds = %8136, %8077
  br label %8138

8138:                                             ; preds = %8137
  br label %8139

8139:                                             ; preds = %8138
  br label %8140

8140:                                             ; preds = %8139
  br label %8141

8141:                                             ; preds = %8140
  br label %8142

8142:                                             ; preds = %8141
  %8143 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %8143, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %8144 = call ptr @__errno_location() #12
  store i32 0, ptr %8144, align 4, !tbaa !5
  br label %8145

8145:                                             ; preds = %8142
  br label %8146

8146:                                             ; preds = %8145
  br label %8147

8147:                                             ; preds = %8146
  br label %8148

8148:                                             ; preds = %8147
  br label %8149

8149:                                             ; preds = %8148
  br label %8150

8150:                                             ; preds = %8149
  br label %8151

8151:                                             ; preds = %8150
  %8152 = load i32, ptr @test_count, align 4, !tbaa !5
  %8153 = add nsw i32 %8152, 1
  store i32 %8153, ptr @test_count, align 4, !tbaa !5
  %8154 = load ptr, ptr %204, align 8, !tbaa !9
  %8155 = call i32 @s2n_tls13_secrets_get(ptr noundef %8154, i32 noundef -1, i32 noundef 1, ptr noundef %203)
  %8156 = getelementptr inbounds %struct.s2n_result, ptr %217, i32 0, i32 0
  store i32 %8155, ptr %8156, align 4
  %8157 = getelementptr inbounds %struct.s2n_result, ptr %217, i32 0, i32 0
  %8158 = load i32, ptr %8157, align 4
  %8159 = call zeroext i1 @s2n_result_is_error(i32 %8158)
  br i1 %8159, label %8213, label %8160

8160:                                             ; preds = %8151
  br label %8161

8161:                                             ; preds = %8160
  br label %8162

8162:                                             ; preds = %8161
  call void @llvm.lifetime.start.p0(i64 4, ptr %218) #11
  %8163 = call ptr @__errno_location() #12
  %8164 = load i32, ptr %8163, align 4, !tbaa !5
  store i32 %8164, ptr %218, align 4, !tbaa !5
  %8165 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8166 = call i32 @s2n_print_stacktrace(ptr noundef %8165)
  %8167 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8168 = trunc i8 %8167 to i1
  br i1 %8168, label %8169, label %8191

8169:                                             ; preds = %8162
  %8170 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8171 = call i32 @fileno(ptr noundef %8170) #11
  %8172 = call i32 @isatty(i32 noundef %8171) #11
  %8173 = icmp ne i32 %8172, 0
  br i1 %8173, label %8174, label %8191

8174:                                             ; preds = %8169
  %8175 = load i32, ptr %218, align 4, !tbaa !5
  %8176 = call ptr @__errno_location() #12
  store i32 %8175, ptr %8176, align 4, !tbaa !5
  %8177 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8178 = load i32, ptr @test_count, align 4, !tbaa !5
  %8179 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8180 = load i32, ptr %8179, align 4, !tbaa !5
  %8181 = call ptr @s2n_strerror(i32 noundef %8180, ptr noundef @.str.4)
  %8182 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8183 = load i32, ptr %8182, align 4, !tbaa !5
  %8184 = call ptr @s2n_strerror_debug(i32 noundef %8183, ptr noundef @.str.4)
  %8185 = call ptr @__errno_location() #12
  %8186 = load i32, ptr %8185, align 4, !tbaa !5
  %8187 = call ptr @strerror(i32 noundef %8186) #11
  %8188 = call ptr @__errno_location() #12
  %8189 = load i32, ptr %8188, align 4, !tbaa !5
  %8190 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8177, ptr noundef @.str.2, i32 noundef %8178, ptr noundef @.str.66, ptr noundef @.str.1, i32 noundef 318, ptr noundef %8181, ptr noundef %8184, ptr noundef %8187, i32 noundef %8189) #11
  br label %8208

8191:                                             ; preds = %8169, %8162
  %8192 = load i32, ptr %218, align 4, !tbaa !5
  %8193 = call ptr @__errno_location() #12
  store i32 %8192, ptr %8193, align 4, !tbaa !5
  %8194 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8195 = load i32, ptr @test_count, align 4, !tbaa !5
  %8196 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8197 = load i32, ptr %8196, align 4, !tbaa !5
  %8198 = call ptr @s2n_strerror(i32 noundef %8197, ptr noundef @.str.4)
  %8199 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8200 = load i32, ptr %8199, align 4, !tbaa !5
  %8201 = call ptr @s2n_strerror_debug(i32 noundef %8200, ptr noundef @.str.4)
  %8202 = call ptr @__errno_location() #12
  %8203 = load i32, ptr %8202, align 4, !tbaa !5
  %8204 = call ptr @strerror(i32 noundef %8203) #11
  %8205 = call ptr @__errno_location() #12
  %8206 = load i32, ptr %8205, align 4, !tbaa !5
  %8207 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8194, ptr noundef @.str.5, i32 noundef %8195, ptr noundef @.str.66, ptr noundef @.str.1, i32 noundef 318, ptr noundef %8198, ptr noundef %8201, ptr noundef %8204, i32 noundef %8206) #11
  br label %8208

8208:                                             ; preds = %8191, %8174
  call void @llvm.lifetime.end.p0(i64 4, ptr %218) #11
  br label %8209

8209:                                             ; preds = %8208
  br label %8210

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

8211:                                             ; No predecessors!
  br label %8212

8212:                                             ; preds = %8211
  br label %8213

8213:                                             ; preds = %8212, %8151
  br label %8214

8214:                                             ; preds = %8213
  br label %8215

8215:                                             ; preds = %8214
  br label %8216

8216:                                             ; preds = %8215
  %8217 = load i32, ptr @test_count, align 4, !tbaa !5
  %8218 = add nsw i32 %8217, 1
  store i32 %8218, ptr @test_count, align 4, !tbaa !5
  %8219 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8220 = load i32, ptr %8219, align 4, !tbaa !5
  %8221 = icmp eq i32 %8220, 402653194
  br i1 %8221, label %8275, label %8222

8222:                                             ; preds = %8216
  br label %8223

8223:                                             ; preds = %8222
  br label %8224

8224:                                             ; preds = %8223
  call void @llvm.lifetime.start.p0(i64 4, ptr %219) #11
  %8225 = call ptr @__errno_location() #12
  %8226 = load i32, ptr %8225, align 4, !tbaa !5
  store i32 %8226, ptr %219, align 4, !tbaa !5
  %8227 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8228 = call i32 @s2n_print_stacktrace(ptr noundef %8227)
  %8229 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8230 = trunc i8 %8229 to i1
  br i1 %8230, label %8231, label %8253

8231:                                             ; preds = %8224
  %8232 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8233 = call i32 @fileno(ptr noundef %8232) #11
  %8234 = call i32 @isatty(i32 noundef %8233) #11
  %8235 = icmp ne i32 %8234, 0
  br i1 %8235, label %8236, label %8253

8236:                                             ; preds = %8231
  %8237 = load i32, ptr %219, align 4, !tbaa !5
  %8238 = call ptr @__errno_location() #12
  store i32 %8237, ptr %8238, align 4, !tbaa !5
  %8239 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8240 = load i32, ptr @test_count, align 4, !tbaa !5
  %8241 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8242 = load i32, ptr %8241, align 4, !tbaa !5
  %8243 = call ptr @s2n_strerror(i32 noundef %8242, ptr noundef @.str.4)
  %8244 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8245 = load i32, ptr %8244, align 4, !tbaa !5
  %8246 = call ptr @s2n_strerror_debug(i32 noundef %8245, ptr noundef @.str.4)
  %8247 = call ptr @__errno_location() #12
  %8248 = load i32, ptr %8247, align 4, !tbaa !5
  %8249 = call ptr @strerror(i32 noundef %8248) #11
  %8250 = call ptr @__errno_location() #12
  %8251 = load i32, ptr %8250, align 4, !tbaa !5
  %8252 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8239, ptr noundef @.str.2, i32 noundef %8240, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 318, ptr noundef %8243, ptr noundef %8246, ptr noundef %8249, i32 noundef %8251) #11
  br label %8270

8253:                                             ; preds = %8231, %8224
  %8254 = load i32, ptr %219, align 4, !tbaa !5
  %8255 = call ptr @__errno_location() #12
  store i32 %8254, ptr %8255, align 4, !tbaa !5
  %8256 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8257 = load i32, ptr @test_count, align 4, !tbaa !5
  %8258 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8259 = load i32, ptr %8258, align 4, !tbaa !5
  %8260 = call ptr @s2n_strerror(i32 noundef %8259, ptr noundef @.str.4)
  %8261 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8262 = load i32, ptr %8261, align 4, !tbaa !5
  %8263 = call ptr @s2n_strerror_debug(i32 noundef %8262, ptr noundef @.str.4)
  %8264 = call ptr @__errno_location() #12
  %8265 = load i32, ptr %8264, align 4, !tbaa !5
  %8266 = call ptr @strerror(i32 noundef %8265) #11
  %8267 = call ptr @__errno_location() #12
  %8268 = load i32, ptr %8267, align 4, !tbaa !5
  %8269 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8256, ptr noundef @.str.5, i32 noundef %8257, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 318, ptr noundef %8260, ptr noundef %8263, ptr noundef %8266, i32 noundef %8268) #11
  br label %8270

8270:                                             ; preds = %8253, %8236
  call void @llvm.lifetime.end.p0(i64 4, ptr %219) #11
  br label %8271

8271:                                             ; preds = %8270
  br label %8272

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

8273:                                             ; No predecessors!
  br label %8274

8274:                                             ; preds = %8273
  br label %8275

8275:                                             ; preds = %8274, %8216
  br label %8276

8276:                                             ; preds = %8275
  br label %8277

8277:                                             ; preds = %8276
  br label %8278

8278:                                             ; preds = %8277
  %8279 = load i32, ptr @test_count, align 4, !tbaa !5
  %8280 = add nsw i32 %8279, 1
  store i32 %8280, ptr @test_count, align 4, !tbaa !5
  %8281 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8282 = load i32, ptr %8281, align 4, !tbaa !5
  %8283 = call ptr @s2n_strerror_debug(i32 noundef %8282, ptr noundef @.str.4)
  %8284 = icmp eq ptr %8283, null
  br i1 %8284, label %8285, label %8338

8285:                                             ; preds = %8278
  br label %8286

8286:                                             ; preds = %8285
  br label %8287

8287:                                             ; preds = %8286
  call void @llvm.lifetime.start.p0(i64 4, ptr %220) #11
  %8288 = call ptr @__errno_location() #12
  %8289 = load i32, ptr %8288, align 4, !tbaa !5
  store i32 %8289, ptr %220, align 4, !tbaa !5
  %8290 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8291 = call i32 @s2n_print_stacktrace(ptr noundef %8290)
  %8292 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8293 = trunc i8 %8292 to i1
  br i1 %8293, label %8294, label %8316

8294:                                             ; preds = %8287
  %8295 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8296 = call i32 @fileno(ptr noundef %8295) #11
  %8297 = call i32 @isatty(i32 noundef %8296) #11
  %8298 = icmp ne i32 %8297, 0
  br i1 %8298, label %8299, label %8316

8299:                                             ; preds = %8294
  %8300 = load i32, ptr %220, align 4, !tbaa !5
  %8301 = call ptr @__errno_location() #12
  store i32 %8300, ptr %8301, align 4, !tbaa !5
  %8302 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8303 = load i32, ptr @test_count, align 4, !tbaa !5
  %8304 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8305 = load i32, ptr %8304, align 4, !tbaa !5
  %8306 = call ptr @s2n_strerror(i32 noundef %8305, ptr noundef @.str.4)
  %8307 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8308 = load i32, ptr %8307, align 4, !tbaa !5
  %8309 = call ptr @s2n_strerror_debug(i32 noundef %8308, ptr noundef @.str.4)
  %8310 = call ptr @__errno_location() #12
  %8311 = load i32, ptr %8310, align 4, !tbaa !5
  %8312 = call ptr @strerror(i32 noundef %8311) #11
  %8313 = call ptr @__errno_location() #12
  %8314 = load i32, ptr %8313, align 4, !tbaa !5
  %8315 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8302, ptr noundef @.str.2, i32 noundef %8303, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 318, ptr noundef %8306, ptr noundef %8309, ptr noundef %8312, i32 noundef %8314) #11
  br label %8333

8316:                                             ; preds = %8294, %8287
  %8317 = load i32, ptr %220, align 4, !tbaa !5
  %8318 = call ptr @__errno_location() #12
  store i32 %8317, ptr %8318, align 4, !tbaa !5
  %8319 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8320 = load i32, ptr @test_count, align 4, !tbaa !5
  %8321 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8322 = load i32, ptr %8321, align 4, !tbaa !5
  %8323 = call ptr @s2n_strerror(i32 noundef %8322, ptr noundef @.str.4)
  %8324 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8325 = load i32, ptr %8324, align 4, !tbaa !5
  %8326 = call ptr @s2n_strerror_debug(i32 noundef %8325, ptr noundef @.str.4)
  %8327 = call ptr @__errno_location() #12
  %8328 = load i32, ptr %8327, align 4, !tbaa !5
  %8329 = call ptr @strerror(i32 noundef %8328) #11
  %8330 = call ptr @__errno_location() #12
  %8331 = load i32, ptr %8330, align 4, !tbaa !5
  %8332 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8319, ptr noundef @.str.5, i32 noundef %8320, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 318, ptr noundef %8323, ptr noundef %8326, ptr noundef %8329, i32 noundef %8331) #11
  br label %8333

8333:                                             ; preds = %8316, %8299
  call void @llvm.lifetime.end.p0(i64 4, ptr %220) #11
  br label %8334

8334:                                             ; preds = %8333
  br label %8335

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

8336:                                             ; No predecessors!
  br label %8337

8337:                                             ; preds = %8336
  br label %8338

8338:                                             ; preds = %8337, %8278
  br label %8339

8339:                                             ; preds = %8338
  br label %8340

8340:                                             ; preds = %8339
  br label %8341

8341:                                             ; preds = %8340
  br label %8342

8342:                                             ; preds = %8341
  br label %8343

8343:                                             ; preds = %8342
  %8344 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %8344, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %8345 = call ptr @__errno_location() #12
  store i32 0, ptr %8345, align 4, !tbaa !5
  br label %8346

8346:                                             ; preds = %8343
  br label %8347

8347:                                             ; preds = %8346
  br label %8348

8348:                                             ; preds = %8347
  br label %8349

8349:                                             ; preds = %8348
  br label %8350

8350:                                             ; preds = %8349
  br label %8351

8351:                                             ; preds = %8350
  br label %8352

8352:                                             ; preds = %8351
  %8353 = load i32, ptr @test_count, align 4, !tbaa !5
  %8354 = add nsw i32 %8353, 1
  store i32 %8354, ptr @test_count, align 4, !tbaa !5
  %8355 = load ptr, ptr %204, align 8, !tbaa !9
  %8356 = call i32 @s2n_tls13_secrets_get(ptr noundef %8355, i32 noundef 100, i32 noundef 1, ptr noundef %203)
  %8357 = getelementptr inbounds %struct.s2n_result, ptr %221, i32 0, i32 0
  store i32 %8356, ptr %8357, align 4
  %8358 = getelementptr inbounds %struct.s2n_result, ptr %221, i32 0, i32 0
  %8359 = load i32, ptr %8358, align 4
  %8360 = call zeroext i1 @s2n_result_is_error(i32 %8359)
  br i1 %8360, label %8414, label %8361

8361:                                             ; preds = %8352
  br label %8362

8362:                                             ; preds = %8361
  br label %8363

8363:                                             ; preds = %8362
  call void @llvm.lifetime.start.p0(i64 4, ptr %222) #11
  %8364 = call ptr @__errno_location() #12
  %8365 = load i32, ptr %8364, align 4, !tbaa !5
  store i32 %8365, ptr %222, align 4, !tbaa !5
  %8366 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8367 = call i32 @s2n_print_stacktrace(ptr noundef %8366)
  %8368 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8369 = trunc i8 %8368 to i1
  br i1 %8369, label %8370, label %8392

8370:                                             ; preds = %8363
  %8371 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8372 = call i32 @fileno(ptr noundef %8371) #11
  %8373 = call i32 @isatty(i32 noundef %8372) #11
  %8374 = icmp ne i32 %8373, 0
  br i1 %8374, label %8375, label %8392

8375:                                             ; preds = %8370
  %8376 = load i32, ptr %222, 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.2, i32 noundef %8379, ptr noundef @.str.67, ptr noundef @.str.1, i32 noundef 319, ptr noundef %8382, ptr noundef %8385, ptr noundef %8388, i32 noundef %8390) #11
  br label %8409

8392:                                             ; preds = %8370, %8363
  %8393 = load i32, ptr %222, align 4, !tbaa !5
  %8394 = call ptr @__errno_location() #12
  store i32 %8393, ptr %8394, align 4, !tbaa !5
  %8395 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8396 = load i32, ptr @test_count, align 4, !tbaa !5
  %8397 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8398 = load i32, ptr %8397, align 4, !tbaa !5
  %8399 = call ptr @s2n_strerror(i32 noundef %8398, ptr noundef @.str.4)
  %8400 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8401 = load i32, ptr %8400, align 4, !tbaa !5
  %8402 = call ptr @s2n_strerror_debug(i32 noundef %8401, ptr noundef @.str.4)
  %8403 = call ptr @__errno_location() #12
  %8404 = load i32, ptr %8403, align 4, !tbaa !5
  %8405 = call ptr @strerror(i32 noundef %8404) #11
  %8406 = call ptr @__errno_location() #12
  %8407 = load i32, ptr %8406, align 4, !tbaa !5
  %8408 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8395, ptr noundef @.str.5, i32 noundef %8396, ptr noundef @.str.67, ptr noundef @.str.1, i32 noundef 319, ptr noundef %8399, ptr noundef %8402, ptr noundef %8405, i32 noundef %8407) #11
  br label %8409

8409:                                             ; preds = %8392, %8375
  call void @llvm.lifetime.end.p0(i64 4, ptr %222) #11
  br label %8410

8410:                                             ; preds = %8409
  br label %8411

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

8412:                                             ; No predecessors!
  br label %8413

8413:                                             ; preds = %8412
  br label %8414

8414:                                             ; preds = %8413, %8352
  br label %8415

8415:                                             ; preds = %8414
  br label %8416

8416:                                             ; preds = %8415
  br label %8417

8417:                                             ; preds = %8416
  %8418 = load i32, ptr @test_count, align 4, !tbaa !5
  %8419 = add nsw i32 %8418, 1
  store i32 %8419, ptr @test_count, align 4, !tbaa !5
  %8420 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8421 = load i32, ptr %8420, align 4, !tbaa !5
  %8422 = icmp eq i32 %8421, 402653194
  br i1 %8422, label %8476, label %8423

8423:                                             ; preds = %8417
  br label %8424

8424:                                             ; preds = %8423
  br label %8425

8425:                                             ; preds = %8424
  call void @llvm.lifetime.start.p0(i64 4, ptr %223) #11
  %8426 = call ptr @__errno_location() #12
  %8427 = load i32, ptr %8426, align 4, !tbaa !5
  store i32 %8427, ptr %223, align 4, !tbaa !5
  %8428 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8429 = call i32 @s2n_print_stacktrace(ptr noundef %8428)
  %8430 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8431 = trunc i8 %8430 to i1
  br i1 %8431, label %8432, label %8454

8432:                                             ; preds = %8425
  %8433 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8434 = call i32 @fileno(ptr noundef %8433) #11
  %8435 = call i32 @isatty(i32 noundef %8434) #11
  %8436 = icmp ne i32 %8435, 0
  br i1 %8436, label %8437, label %8454

8437:                                             ; preds = %8432
  %8438 = load i32, ptr %223, align 4, !tbaa !5
  %8439 = call ptr @__errno_location() #12
  store i32 %8438, ptr %8439, align 4, !tbaa !5
  %8440 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8441 = load i32, ptr @test_count, align 4, !tbaa !5
  %8442 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8443 = load i32, ptr %8442, align 4, !tbaa !5
  %8444 = call ptr @s2n_strerror(i32 noundef %8443, ptr noundef @.str.4)
  %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_debug(i32 noundef %8446, ptr noundef @.str.4)
  %8448 = call ptr @__errno_location() #12
  %8449 = load i32, ptr %8448, align 4, !tbaa !5
  %8450 = call ptr @strerror(i32 noundef %8449) #11
  %8451 = call ptr @__errno_location() #12
  %8452 = load i32, ptr %8451, align 4, !tbaa !5
  %8453 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8440, ptr noundef @.str.2, i32 noundef %8441, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 319, ptr noundef %8444, ptr noundef %8447, ptr noundef %8450, i32 noundef %8452) #11
  br label %8471

8454:                                             ; preds = %8432, %8425
  %8455 = load i32, ptr %223, align 4, !tbaa !5
  %8456 = call ptr @__errno_location() #12
  store i32 %8455, ptr %8456, align 4, !tbaa !5
  %8457 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8458 = load i32, ptr @test_count, align 4, !tbaa !5
  %8459 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8460 = load i32, ptr %8459, align 4, !tbaa !5
  %8461 = call ptr @s2n_strerror(i32 noundef %8460, ptr noundef @.str.4)
  %8462 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8463 = load i32, ptr %8462, align 4, !tbaa !5
  %8464 = call ptr @s2n_strerror_debug(i32 noundef %8463, ptr noundef @.str.4)
  %8465 = call ptr @__errno_location() #12
  %8466 = load i32, ptr %8465, align 4, !tbaa !5
  %8467 = call ptr @strerror(i32 noundef %8466) #11
  %8468 = call ptr @__errno_location() #12
  %8469 = load i32, ptr %8468, align 4, !tbaa !5
  %8470 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8457, ptr noundef @.str.5, i32 noundef %8458, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 319, ptr noundef %8461, ptr noundef %8464, ptr noundef %8467, i32 noundef %8469) #11
  br label %8471

8471:                                             ; preds = %8454, %8437
  call void @llvm.lifetime.end.p0(i64 4, ptr %223) #11
  br label %8472

8472:                                             ; preds = %8471
  br label %8473

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

8474:                                             ; No predecessors!
  br label %8475

8475:                                             ; preds = %8474
  br label %8476

8476:                                             ; preds = %8475, %8417
  br label %8477

8477:                                             ; preds = %8476
  br label %8478

8478:                                             ; preds = %8477
  br label %8479

8479:                                             ; preds = %8478
  %8480 = load i32, ptr @test_count, align 4, !tbaa !5
  %8481 = add nsw i32 %8480, 1
  store i32 %8481, ptr @test_count, align 4, !tbaa !5
  %8482 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8483 = load i32, ptr %8482, align 4, !tbaa !5
  %8484 = call ptr @s2n_strerror_debug(i32 noundef %8483, ptr noundef @.str.4)
  %8485 = icmp eq ptr %8484, null
  br i1 %8485, label %8486, label %8539

8486:                                             ; preds = %8479
  br label %8487

8487:                                             ; preds = %8486
  br label %8488

8488:                                             ; preds = %8487
  call void @llvm.lifetime.start.p0(i64 4, ptr %224) #11
  %8489 = call ptr @__errno_location() #12
  %8490 = load i32, ptr %8489, align 4, !tbaa !5
  store i32 %8490, ptr %224, align 4, !tbaa !5
  %8491 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8492 = call i32 @s2n_print_stacktrace(ptr noundef %8491)
  %8493 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8494 = trunc i8 %8493 to i1
  br i1 %8494, label %8495, label %8517

8495:                                             ; preds = %8488
  %8496 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8497 = call i32 @fileno(ptr noundef %8496) #11
  %8498 = call i32 @isatty(i32 noundef %8497) #11
  %8499 = icmp ne i32 %8498, 0
  br i1 %8499, label %8500, label %8517

8500:                                             ; preds = %8495
  %8501 = load i32, ptr %224, align 4, !tbaa !5
  %8502 = call ptr @__errno_location() #12
  store i32 %8501, ptr %8502, align 4, !tbaa !5
  %8503 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8504 = load i32, ptr @test_count, align 4, !tbaa !5
  %8505 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8506 = load i32, ptr %8505, align 4, !tbaa !5
  %8507 = call ptr @s2n_strerror(i32 noundef %8506, ptr noundef @.str.4)
  %8508 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8509 = load i32, ptr %8508, align 4, !tbaa !5
  %8510 = call ptr @s2n_strerror_debug(i32 noundef %8509, ptr noundef @.str.4)
  %8511 = call ptr @__errno_location() #12
  %8512 = load i32, ptr %8511, align 4, !tbaa !5
  %8513 = call ptr @strerror(i32 noundef %8512) #11
  %8514 = call ptr @__errno_location() #12
  %8515 = load i32, ptr %8514, align 4, !tbaa !5
  %8516 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8503, ptr noundef @.str.2, i32 noundef %8504, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 319, ptr noundef %8507, ptr noundef %8510, ptr noundef %8513, i32 noundef %8515) #11
  br label %8534

8517:                                             ; preds = %8495, %8488
  %8518 = load i32, ptr %224, align 4, !tbaa !5
  %8519 = call ptr @__errno_location() #12
  store i32 %8518, ptr %8519, align 4, !tbaa !5
  %8520 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8521 = load i32, ptr @test_count, align 4, !tbaa !5
  %8522 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8523 = load i32, ptr %8522, align 4, !tbaa !5
  %8524 = call ptr @s2n_strerror(i32 noundef %8523, ptr noundef @.str.4)
  %8525 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8526 = load i32, ptr %8525, align 4, !tbaa !5
  %8527 = call ptr @s2n_strerror_debug(i32 noundef %8526, ptr noundef @.str.4)
  %8528 = call ptr @__errno_location() #12
  %8529 = load i32, ptr %8528, align 4, !tbaa !5
  %8530 = call ptr @strerror(i32 noundef %8529) #11
  %8531 = call ptr @__errno_location() #12
  %8532 = load i32, ptr %8531, align 4, !tbaa !5
  %8533 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8520, ptr noundef @.str.5, i32 noundef %8521, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 319, ptr noundef %8524, ptr noundef %8527, ptr noundef %8530, i32 noundef %8532) #11
  br label %8534

8534:                                             ; preds = %8517, %8500
  call void @llvm.lifetime.end.p0(i64 4, ptr %224) #11
  br label %8535

8535:                                             ; preds = %8534
  br label %8536

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

8537:                                             ; No predecessors!
  br label %8538

8538:                                             ; preds = %8537
  br label %8539

8539:                                             ; preds = %8538, %8479
  br label %8540

8540:                                             ; preds = %8539
  br label %8541

8541:                                             ; preds = %8540
  br label %8542

8542:                                             ; preds = %8541
  br label %8543

8543:                                             ; preds = %8542
  br label %8544

8544:                                             ; preds = %8543
  %8545 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %8545, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %8546 = call ptr @__errno_location() #12
  store i32 0, ptr %8546, align 4, !tbaa !5
  br label %8547

8547:                                             ; preds = %8544
  br label %8548

8548:                                             ; preds = %8547
  br label %8549

8549:                                             ; preds = %8548
  br label %8550

8550:                                             ; preds = %8549
  br label %8551

8551:                                             ; preds = %8550
  br label %8552

8552:                                             ; preds = %8551
  br label %8553

8553:                                             ; preds = %8552
  %8554 = load i32, ptr @test_count, align 4, !tbaa !5
  %8555 = add nsw i32 %8554, 1
  store i32 %8555, ptr @test_count, align 4, !tbaa !5
  %8556 = load ptr, ptr %204, align 8, !tbaa !9
  %8557 = call i32 @s2n_tls13_secrets_get(ptr noundef %8556, i32 noundef 1, i32 noundef 0, ptr noundef %203)
  %8558 = getelementptr inbounds %struct.s2n_result, ptr %225, i32 0, i32 0
  store i32 %8557, ptr %8558, align 4
  %8559 = getelementptr inbounds %struct.s2n_result, ptr %225, i32 0, i32 0
  %8560 = load i32, ptr %8559, align 4
  %8561 = call zeroext i1 @s2n_result_is_error(i32 %8560)
  br i1 %8561, label %8615, label %8562

8562:                                             ; preds = %8553
  br label %8563

8563:                                             ; preds = %8562
  br label %8564

8564:                                             ; preds = %8563
  call void @llvm.lifetime.start.p0(i64 4, ptr %226) #11
  %8565 = call ptr @__errno_location() #12
  %8566 = load i32, ptr %8565, align 4, !tbaa !5
  store i32 %8566, ptr %226, align 4, !tbaa !5
  %8567 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8568 = call i32 @s2n_print_stacktrace(ptr noundef %8567)
  %8569 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8570 = trunc i8 %8569 to i1
  br i1 %8570, label %8571, label %8593

8571:                                             ; preds = %8564
  %8572 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8573 = call i32 @fileno(ptr noundef %8572) #11
  %8574 = call i32 @isatty(i32 noundef %8573) #11
  %8575 = icmp ne i32 %8574, 0
  br i1 %8575, label %8576, label %8593

8576:                                             ; preds = %8571
  %8577 = load i32, ptr %226, align 4, !tbaa !5
  %8578 = call ptr @__errno_location() #12
  store i32 %8577, ptr %8578, align 4, !tbaa !5
  %8579 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8580 = load i32, ptr @test_count, align 4, !tbaa !5
  %8581 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8582 = load i32, ptr %8581, align 4, !tbaa !5
  %8583 = call ptr @s2n_strerror(i32 noundef %8582, ptr noundef @.str.4)
  %8584 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8585 = load i32, ptr %8584, align 4, !tbaa !5
  %8586 = call ptr @s2n_strerror_debug(i32 noundef %8585, ptr noundef @.str.4)
  %8587 = call ptr @__errno_location() #12
  %8588 = load i32, ptr %8587, align 4, !tbaa !5
  %8589 = call ptr @strerror(i32 noundef %8588) #11
  %8590 = call ptr @__errno_location() #12
  %8591 = load i32, ptr %8590, align 4, !tbaa !5
  %8592 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8579, ptr noundef @.str.2, i32 noundef %8580, ptr noundef @.str.68, ptr noundef @.str.1, i32 noundef 320, ptr noundef %8583, ptr noundef %8586, ptr noundef %8589, i32 noundef %8591) #11
  br label %8610

8593:                                             ; preds = %8571, %8564
  %8594 = load i32, ptr %226, align 4, !tbaa !5
  %8595 = call ptr @__errno_location() #12
  store i32 %8594, ptr %8595, align 4, !tbaa !5
  %8596 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8597 = load i32, ptr @test_count, align 4, !tbaa !5
  %8598 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8599 = load i32, ptr %8598, align 4, !tbaa !5
  %8600 = call ptr @s2n_strerror(i32 noundef %8599, ptr noundef @.str.4)
  %8601 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8602 = load i32, ptr %8601, align 4, !tbaa !5
  %8603 = call ptr @s2n_strerror_debug(i32 noundef %8602, ptr noundef @.str.4)
  %8604 = call ptr @__errno_location() #12
  %8605 = load i32, ptr %8604, align 4, !tbaa !5
  %8606 = call ptr @strerror(i32 noundef %8605) #11
  %8607 = call ptr @__errno_location() #12
  %8608 = load i32, ptr %8607, align 4, !tbaa !5
  %8609 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8596, ptr noundef @.str.5, i32 noundef %8597, ptr noundef @.str.68, ptr noundef @.str.1, i32 noundef 320, ptr noundef %8600, ptr noundef %8603, ptr noundef %8606, i32 noundef %8608) #11
  br label %8610

8610:                                             ; preds = %8593, %8576
  call void @llvm.lifetime.end.p0(i64 4, ptr %226) #11
  br label %8611

8611:                                             ; preds = %8610
  br label %8612

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

8613:                                             ; No predecessors!
  br label %8614

8614:                                             ; preds = %8613
  br label %8615

8615:                                             ; preds = %8614, %8553
  br label %8616

8616:                                             ; preds = %8615
  br label %8617

8617:                                             ; preds = %8616
  br label %8618

8618:                                             ; preds = %8617
  %8619 = load i32, ptr @test_count, align 4, !tbaa !5
  %8620 = add nsw i32 %8619, 1
  store i32 %8620, ptr @test_count, align 4, !tbaa !5
  %8621 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8622 = load i32, ptr %8621, align 4, !tbaa !5
  %8623 = icmp eq i32 %8622, 402653194
  br i1 %8623, label %8677, label %8624

8624:                                             ; preds = %8618
  br label %8625

8625:                                             ; preds = %8624
  br label %8626

8626:                                             ; preds = %8625
  call void @llvm.lifetime.start.p0(i64 4, ptr %227) #11
  %8627 = call ptr @__errno_location() #12
  %8628 = load i32, ptr %8627, align 4, !tbaa !5
  store i32 %8628, ptr %227, align 4, !tbaa !5
  %8629 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8630 = call i32 @s2n_print_stacktrace(ptr noundef %8629)
  %8631 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8632 = trunc i8 %8631 to i1
  br i1 %8632, label %8633, label %8655

8633:                                             ; preds = %8626
  %8634 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8635 = call i32 @fileno(ptr noundef %8634) #11
  %8636 = call i32 @isatty(i32 noundef %8635) #11
  %8637 = icmp ne i32 %8636, 0
  br i1 %8637, label %8638, label %8655

8638:                                             ; preds = %8633
  %8639 = load i32, ptr %227, align 4, !tbaa !5
  %8640 = call ptr @__errno_location() #12
  store i32 %8639, ptr %8640, align 4, !tbaa !5
  %8641 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8642 = load i32, ptr @test_count, align 4, !tbaa !5
  %8643 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8644 = load i32, ptr %8643, align 4, !tbaa !5
  %8645 = call ptr @s2n_strerror(i32 noundef %8644, ptr noundef @.str.4)
  %8646 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8647 = load i32, ptr %8646, align 4, !tbaa !5
  %8648 = call ptr @s2n_strerror_debug(i32 noundef %8647, ptr noundef @.str.4)
  %8649 = call ptr @__errno_location() #12
  %8650 = load i32, ptr %8649, align 4, !tbaa !5
  %8651 = call ptr @strerror(i32 noundef %8650) #11
  %8652 = call ptr @__errno_location() #12
  %8653 = load i32, ptr %8652, align 4, !tbaa !5
  %8654 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8641, ptr noundef @.str.2, i32 noundef %8642, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 320, ptr noundef %8645, ptr noundef %8648, ptr noundef %8651, i32 noundef %8653) #11
  br label %8672

8655:                                             ; preds = %8633, %8626
  %8656 = load i32, ptr %227, align 4, !tbaa !5
  %8657 = call ptr @__errno_location() #12
  store i32 %8656, ptr %8657, align 4, !tbaa !5
  %8658 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8659 = load i32, ptr @test_count, align 4, !tbaa !5
  %8660 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8661 = load i32, ptr %8660, align 4, !tbaa !5
  %8662 = call ptr @s2n_strerror(i32 noundef %8661, ptr noundef @.str.4)
  %8663 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8664 = load i32, ptr %8663, align 4, !tbaa !5
  %8665 = call ptr @s2n_strerror_debug(i32 noundef %8664, ptr noundef @.str.4)
  %8666 = call ptr @__errno_location() #12
  %8667 = load i32, ptr %8666, align 4, !tbaa !5
  %8668 = call ptr @strerror(i32 noundef %8667) #11
  %8669 = call ptr @__errno_location() #12
  %8670 = load i32, ptr %8669, align 4, !tbaa !5
  %8671 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8658, ptr noundef @.str.5, i32 noundef %8659, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 320, ptr noundef %8662, ptr noundef %8665, ptr noundef %8668, i32 noundef %8670) #11
  br label %8672

8672:                                             ; preds = %8655, %8638
  call void @llvm.lifetime.end.p0(i64 4, ptr %227) #11
  br label %8673

8673:                                             ; preds = %8672
  br label %8674

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

8675:                                             ; No predecessors!
  br label %8676

8676:                                             ; preds = %8675
  br label %8677

8677:                                             ; preds = %8676, %8618
  br label %8678

8678:                                             ; preds = %8677
  br label %8679

8679:                                             ; preds = %8678
  br label %8680

8680:                                             ; preds = %8679
  %8681 = load i32, ptr @test_count, align 4, !tbaa !5
  %8682 = add nsw i32 %8681, 1
  store i32 %8682, ptr @test_count, align 4, !tbaa !5
  %8683 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8684 = load i32, ptr %8683, align 4, !tbaa !5
  %8685 = call ptr @s2n_strerror_debug(i32 noundef %8684, ptr noundef @.str.4)
  %8686 = icmp eq ptr %8685, null
  br i1 %8686, label %8687, label %8740

8687:                                             ; preds = %8680
  br label %8688

8688:                                             ; preds = %8687
  br label %8689

8689:                                             ; preds = %8688
  call void @llvm.lifetime.start.p0(i64 4, ptr %228) #11
  %8690 = call ptr @__errno_location() #12
  %8691 = load i32, ptr %8690, align 4, !tbaa !5
  store i32 %8691, ptr %228, align 4, !tbaa !5
  %8692 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8693 = call i32 @s2n_print_stacktrace(ptr noundef %8692)
  %8694 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8695 = trunc i8 %8694 to i1
  br i1 %8695, label %8696, label %8718

8696:                                             ; preds = %8689
  %8697 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8698 = call i32 @fileno(ptr noundef %8697) #11
  %8699 = call i32 @isatty(i32 noundef %8698) #11
  %8700 = icmp ne i32 %8699, 0
  br i1 %8700, label %8701, label %8718

8701:                                             ; preds = %8696
  %8702 = load i32, ptr %228, align 4, !tbaa !5
  %8703 = call ptr @__errno_location() #12
  store i32 %8702, ptr %8703, align 4, !tbaa !5
  %8704 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8705 = load i32, ptr @test_count, align 4, !tbaa !5
  %8706 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8707 = load i32, ptr %8706, align 4, !tbaa !5
  %8708 = call ptr @s2n_strerror(i32 noundef %8707, ptr noundef @.str.4)
  %8709 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8710 = load i32, ptr %8709, align 4, !tbaa !5
  %8711 = call ptr @s2n_strerror_debug(i32 noundef %8710, ptr noundef @.str.4)
  %8712 = call ptr @__errno_location() #12
  %8713 = load i32, ptr %8712, align 4, !tbaa !5
  %8714 = call ptr @strerror(i32 noundef %8713) #11
  %8715 = call ptr @__errno_location() #12
  %8716 = load i32, ptr %8715, align 4, !tbaa !5
  %8717 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8704, ptr noundef @.str.2, i32 noundef %8705, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 320, ptr noundef %8708, ptr noundef %8711, ptr noundef %8714, i32 noundef %8716) #11
  br label %8735

8718:                                             ; preds = %8696, %8689
  %8719 = load i32, ptr %228, align 4, !tbaa !5
  %8720 = call ptr @__errno_location() #12
  store i32 %8719, ptr %8720, align 4, !tbaa !5
  %8721 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8722 = load i32, ptr @test_count, align 4, !tbaa !5
  %8723 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8724 = load i32, ptr %8723, align 4, !tbaa !5
  %8725 = call ptr @s2n_strerror(i32 noundef %8724, ptr noundef @.str.4)
  %8726 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8727 = load i32, ptr %8726, align 4, !tbaa !5
  %8728 = call ptr @s2n_strerror_debug(i32 noundef %8727, ptr noundef @.str.4)
  %8729 = call ptr @__errno_location() #12
  %8730 = load i32, ptr %8729, align 4, !tbaa !5
  %8731 = call ptr @strerror(i32 noundef %8730) #11
  %8732 = call ptr @__errno_location() #12
  %8733 = load i32, ptr %8732, align 4, !tbaa !5
  %8734 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8721, ptr noundef @.str.5, i32 noundef %8722, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 320, ptr noundef %8725, ptr noundef %8728, ptr noundef %8731, i32 noundef %8733) #11
  br label %8735

8735:                                             ; preds = %8718, %8701
  call void @llvm.lifetime.end.p0(i64 4, ptr %228) #11
  br label %8736

8736:                                             ; preds = %8735
  br label %8737

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

8738:                                             ; No predecessors!
  br label %8739

8739:                                             ; preds = %8738
  br label %8740

8740:                                             ; preds = %8739, %8680
  br label %8741

8741:                                             ; preds = %8740
  br label %8742

8742:                                             ; preds = %8741
  br label %8743

8743:                                             ; preds = %8742
  br label %8744

8744:                                             ; preds = %8743
  br label %8745

8745:                                             ; preds = %8744
  %8746 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %8746, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %8747 = call ptr @__errno_location() #12
  store i32 0, ptr %8747, align 4, !tbaa !5
  br label %8748

8748:                                             ; preds = %8745
  br label %8749

8749:                                             ; preds = %8748
  br label %8750

8750:                                             ; preds = %8749
  br label %8751

8751:                                             ; preds = %8750
  %8752 = load ptr, ptr %204, align 8, !tbaa !9
  %8753 = getelementptr inbounds %struct.s2n_connection, ptr %8752, i32 0, i32 28
  %8754 = getelementptr inbounds %struct.s2n_secrets, ptr %8753, i32 0, i32 1
  store i32 0, ptr %8754, align 4, !tbaa !69
  br label %8755

8755:                                             ; preds = %8751
  br label %8756

8756:                                             ; preds = %8755
  br label %8757

8757:                                             ; preds = %8756
  %8758 = load i32, ptr @test_count, align 4, !tbaa !5
  %8759 = add nsw i32 %8758, 1
  store i32 %8759, ptr @test_count, align 4, !tbaa !5
  %8760 = load ptr, ptr %204, align 8, !tbaa !9
  %8761 = call i32 @s2n_tls13_secrets_get(ptr noundef %8760, i32 noundef 2, i32 noundef 1, ptr noundef %203)
  %8762 = getelementptr inbounds %struct.s2n_result, ptr %229, i32 0, i32 0
  store i32 %8761, ptr %8762, align 4
  %8763 = getelementptr inbounds %struct.s2n_result, ptr %229, i32 0, i32 0
  %8764 = load i32, ptr %8763, align 4
  %8765 = call zeroext i1 @s2n_result_is_error(i32 %8764)
  br i1 %8765, label %8819, label %8766

8766:                                             ; preds = %8757
  br label %8767

8767:                                             ; preds = %8766
  br label %8768

8768:                                             ; preds = %8767
  call void @llvm.lifetime.start.p0(i64 4, ptr %230) #11
  %8769 = call ptr @__errno_location() #12
  %8770 = load i32, ptr %8769, align 4, !tbaa !5
  store i32 %8770, ptr %230, align 4, !tbaa !5
  %8771 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8772 = call i32 @s2n_print_stacktrace(ptr noundef %8771)
  %8773 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8774 = trunc i8 %8773 to i1
  br i1 %8774, label %8775, label %8797

8775:                                             ; preds = %8768
  %8776 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8777 = call i32 @fileno(ptr noundef %8776) #11
  %8778 = call i32 @isatty(i32 noundef %8777) #11
  %8779 = icmp ne i32 %8778, 0
  br i1 %8779, label %8780, label %8797

8780:                                             ; preds = %8775
  %8781 = load i32, ptr %230, align 4, !tbaa !5
  %8782 = call ptr @__errno_location() #12
  store i32 %8781, ptr %8782, align 4, !tbaa !5
  %8783 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8784 = load i32, ptr @test_count, align 4, !tbaa !5
  %8785 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8786 = load i32, ptr %8785, align 4, !tbaa !5
  %8787 = call ptr @s2n_strerror(i32 noundef %8786, ptr noundef @.str.4)
  %8788 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8789 = load i32, ptr %8788, align 4, !tbaa !5
  %8790 = call ptr @s2n_strerror_debug(i32 noundef %8789, ptr noundef @.str.4)
  %8791 = call ptr @__errno_location() #12
  %8792 = load i32, ptr %8791, align 4, !tbaa !5
  %8793 = call ptr @strerror(i32 noundef %8792) #11
  %8794 = call ptr @__errno_location() #12
  %8795 = load i32, ptr %8794, align 4, !tbaa !5
  %8796 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8783, ptr noundef @.str.2, i32 noundef %8784, ptr noundef @.str.69, ptr noundef @.str.1, i32 noundef 323, ptr noundef %8787, ptr noundef %8790, ptr noundef %8793, i32 noundef %8795) #11
  br label %8814

8797:                                             ; preds = %8775, %8768
  %8798 = load i32, ptr %230, align 4, !tbaa !5
  %8799 = call ptr @__errno_location() #12
  store i32 %8798, ptr %8799, align 4, !tbaa !5
  %8800 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8801 = load i32, ptr @test_count, align 4, !tbaa !5
  %8802 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8803 = load i32, ptr %8802, align 4, !tbaa !5
  %8804 = call ptr @s2n_strerror(i32 noundef %8803, ptr noundef @.str.4)
  %8805 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8806 = load i32, ptr %8805, align 4, !tbaa !5
  %8807 = call ptr @s2n_strerror_debug(i32 noundef %8806, ptr noundef @.str.4)
  %8808 = call ptr @__errno_location() #12
  %8809 = load i32, ptr %8808, align 4, !tbaa !5
  %8810 = call ptr @strerror(i32 noundef %8809) #11
  %8811 = call ptr @__errno_location() #12
  %8812 = load i32, ptr %8811, align 4, !tbaa !5
  %8813 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8800, ptr noundef @.str.5, i32 noundef %8801, ptr noundef @.str.69, ptr noundef @.str.1, i32 noundef 323, ptr noundef %8804, ptr noundef %8807, ptr noundef %8810, i32 noundef %8812) #11
  br label %8814

8814:                                             ; preds = %8797, %8780
  call void @llvm.lifetime.end.p0(i64 4, ptr %230) #11
  br label %8815

8815:                                             ; preds = %8814
  br label %8816

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

8817:                                             ; No predecessors!
  br label %8818

8818:                                             ; preds = %8817
  br label %8819

8819:                                             ; preds = %8818, %8757
  br label %8820

8820:                                             ; preds = %8819
  br label %8821

8821:                                             ; preds = %8820
  br label %8822

8822:                                             ; preds = %8821
  %8823 = load i32, ptr @test_count, align 4, !tbaa !5
  %8824 = add nsw i32 %8823, 1
  store i32 %8824, ptr @test_count, align 4, !tbaa !5
  %8825 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8826 = load i32, ptr %8825, align 4, !tbaa !5
  %8827 = icmp eq i32 %8826, 402653194
  br i1 %8827, label %8881, label %8828

8828:                                             ; preds = %8822
  br label %8829

8829:                                             ; preds = %8828
  br label %8830

8830:                                             ; preds = %8829
  call void @llvm.lifetime.start.p0(i64 4, ptr %231) #11
  %8831 = call ptr @__errno_location() #12
  %8832 = load i32, ptr %8831, align 4, !tbaa !5
  store i32 %8832, ptr %231, align 4, !tbaa !5
  %8833 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8834 = call i32 @s2n_print_stacktrace(ptr noundef %8833)
  %8835 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8836 = trunc i8 %8835 to i1
  br i1 %8836, label %8837, label %8859

8837:                                             ; preds = %8830
  %8838 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8839 = call i32 @fileno(ptr noundef %8838) #11
  %8840 = call i32 @isatty(i32 noundef %8839) #11
  %8841 = icmp ne i32 %8840, 0
  br i1 %8841, label %8842, label %8859

8842:                                             ; preds = %8837
  %8843 = load i32, ptr %231, align 4, !tbaa !5
  %8844 = call ptr @__errno_location() #12
  store i32 %8843, ptr %8844, align 4, !tbaa !5
  %8845 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8846 = load i32, ptr @test_count, align 4, !tbaa !5
  %8847 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8848 = load i32, ptr %8847, align 4, !tbaa !5
  %8849 = call ptr @s2n_strerror(i32 noundef %8848, ptr noundef @.str.4)
  %8850 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8851 = load i32, ptr %8850, align 4, !tbaa !5
  %8852 = call ptr @s2n_strerror_debug(i32 noundef %8851, ptr noundef @.str.4)
  %8853 = call ptr @__errno_location() #12
  %8854 = load i32, ptr %8853, align 4, !tbaa !5
  %8855 = call ptr @strerror(i32 noundef %8854) #11
  %8856 = call ptr @__errno_location() #12
  %8857 = load i32, ptr %8856, align 4, !tbaa !5
  %8858 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8845, ptr noundef @.str.2, i32 noundef %8846, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 323, ptr noundef %8849, ptr noundef %8852, ptr noundef %8855, i32 noundef %8857) #11
  br label %8876

8859:                                             ; preds = %8837, %8830
  %8860 = load i32, ptr %231, align 4, !tbaa !5
  %8861 = call ptr @__errno_location() #12
  store i32 %8860, ptr %8861, align 4, !tbaa !5
  %8862 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8863 = load i32, ptr @test_count, align 4, !tbaa !5
  %8864 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8865 = load i32, ptr %8864, align 4, !tbaa !5
  %8866 = call ptr @s2n_strerror(i32 noundef %8865, ptr noundef @.str.4)
  %8867 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8868 = load i32, ptr %8867, align 4, !tbaa !5
  %8869 = call ptr @s2n_strerror_debug(i32 noundef %8868, ptr noundef @.str.4)
  %8870 = call ptr @__errno_location() #12
  %8871 = load i32, ptr %8870, align 4, !tbaa !5
  %8872 = call ptr @strerror(i32 noundef %8871) #11
  %8873 = call ptr @__errno_location() #12
  %8874 = load i32, ptr %8873, align 4, !tbaa !5
  %8875 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8862, ptr noundef @.str.5, i32 noundef %8863, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 323, ptr noundef %8866, ptr noundef %8869, ptr noundef %8872, i32 noundef %8874) #11
  br label %8876

8876:                                             ; preds = %8859, %8842
  call void @llvm.lifetime.end.p0(i64 4, ptr %231) #11
  br label %8877

8877:                                             ; preds = %8876
  br label %8878

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

8879:                                             ; No predecessors!
  br label %8880

8880:                                             ; preds = %8879
  br label %8881

8881:                                             ; preds = %8880, %8822
  br label %8882

8882:                                             ; preds = %8881
  br label %8883

8883:                                             ; preds = %8882
  br label %8884

8884:                                             ; preds = %8883
  %8885 = load i32, ptr @test_count, align 4, !tbaa !5
  %8886 = add nsw i32 %8885, 1
  store i32 %8886, ptr @test_count, align 4, !tbaa !5
  %8887 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8888 = load i32, ptr %8887, align 4, !tbaa !5
  %8889 = call ptr @s2n_strerror_debug(i32 noundef %8888, ptr noundef @.str.4)
  %8890 = icmp eq ptr %8889, null
  br i1 %8890, label %8891, label %8944

8891:                                             ; preds = %8884
  br label %8892

8892:                                             ; preds = %8891
  br label %8893

8893:                                             ; preds = %8892
  call void @llvm.lifetime.start.p0(i64 4, ptr %232) #11
  %8894 = call ptr @__errno_location() #12
  %8895 = load i32, ptr %8894, align 4, !tbaa !5
  store i32 %8895, ptr %232, align 4, !tbaa !5
  %8896 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8897 = call i32 @s2n_print_stacktrace(ptr noundef %8896)
  %8898 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8899 = trunc i8 %8898 to i1
  br i1 %8899, label %8900, label %8922

8900:                                             ; preds = %8893
  %8901 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8902 = call i32 @fileno(ptr noundef %8901) #11
  %8903 = call i32 @isatty(i32 noundef %8902) #11
  %8904 = icmp ne i32 %8903, 0
  br i1 %8904, label %8905, label %8922

8905:                                             ; preds = %8900
  %8906 = load i32, ptr %232, align 4, !tbaa !5
  %8907 = call ptr @__errno_location() #12
  store i32 %8906, ptr %8907, align 4, !tbaa !5
  %8908 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8909 = load i32, ptr @test_count, align 4, !tbaa !5
  %8910 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8911 = load i32, ptr %8910, align 4, !tbaa !5
  %8912 = call ptr @s2n_strerror(i32 noundef %8911, ptr noundef @.str.4)
  %8913 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8914 = load i32, ptr %8913, align 4, !tbaa !5
  %8915 = call ptr @s2n_strerror_debug(i32 noundef %8914, ptr noundef @.str.4)
  %8916 = call ptr @__errno_location() #12
  %8917 = load i32, ptr %8916, align 4, !tbaa !5
  %8918 = call ptr @strerror(i32 noundef %8917) #11
  %8919 = call ptr @__errno_location() #12
  %8920 = load i32, ptr %8919, align 4, !tbaa !5
  %8921 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8908, ptr noundef @.str.2, i32 noundef %8909, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 323, ptr noundef %8912, ptr noundef %8915, ptr noundef %8918, i32 noundef %8920) #11
  br label %8939

8922:                                             ; preds = %8900, %8893
  %8923 = load i32, ptr %232, align 4, !tbaa !5
  %8924 = call ptr @__errno_location() #12
  store i32 %8923, ptr %8924, align 4, !tbaa !5
  %8925 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8926 = load i32, ptr @test_count, align 4, !tbaa !5
  %8927 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8928 = load i32, ptr %8927, align 4, !tbaa !5
  %8929 = call ptr @s2n_strerror(i32 noundef %8928, ptr noundef @.str.4)
  %8930 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8931 = load i32, ptr %8930, align 4, !tbaa !5
  %8932 = call ptr @s2n_strerror_debug(i32 noundef %8931, ptr noundef @.str.4)
  %8933 = call ptr @__errno_location() #12
  %8934 = load i32, ptr %8933, align 4, !tbaa !5
  %8935 = call ptr @strerror(i32 noundef %8934) #11
  %8936 = call ptr @__errno_location() #12
  %8937 = load i32, ptr %8936, align 4, !tbaa !5
  %8938 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8925, ptr noundef @.str.5, i32 noundef %8926, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 323, ptr noundef %8929, ptr noundef %8932, ptr noundef %8935, i32 noundef %8937) #11
  br label %8939

8939:                                             ; preds = %8922, %8905
  call void @llvm.lifetime.end.p0(i64 4, ptr %232) #11
  br label %8940

8940:                                             ; preds = %8939
  br label %8941

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

8942:                                             ; No predecessors!
  br label %8943

8943:                                             ; preds = %8942
  br label %8944

8944:                                             ; preds = %8943, %8884
  br label %8945

8945:                                             ; preds = %8944
  br label %8946

8946:                                             ; preds = %8945
  br label %8947

8947:                                             ; preds = %8946
  br label %8948

8948:                                             ; preds = %8947
  br label %8949

8949:                                             ; preds = %8948
  %8950 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %8950, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %8951 = call ptr @__errno_location() #12
  store i32 0, ptr %8951, align 4, !tbaa !5
  br label %8952

8952:                                             ; preds = %8949
  br label %8953

8953:                                             ; preds = %8952
  br label %8954

8954:                                             ; preds = %8953
  br label %8955

8955:                                             ; preds = %8954
  call void @llvm.lifetime.start.p0(i64 8, ptr %233) #11
  %8956 = load ptr, ptr %204, align 8, !tbaa !9
  %8957 = getelementptr inbounds %struct.s2n_connection, ptr %8956, i32 0, i32 27
  %8958 = load ptr, ptr %8957, align 8, !tbaa !39
  store ptr %8958, ptr %233, align 8, !tbaa !9
  %8959 = load ptr, ptr %204, align 8, !tbaa !9
  %8960 = getelementptr inbounds %struct.s2n_connection, ptr %8959, i32 0, i32 27
  store ptr null, ptr %8960, align 8, !tbaa !39
  br label %8961

8961:                                             ; preds = %8955
  br label %8962

8962:                                             ; preds = %8961
  br label %8963

8963:                                             ; preds = %8962
  %8964 = load i32, ptr @test_count, align 4, !tbaa !5
  %8965 = add nsw i32 %8964, 1
  store i32 %8965, ptr @test_count, align 4, !tbaa !5
  %8966 = load ptr, ptr %204, align 8, !tbaa !9
  %8967 = call i32 @s2n_tls13_secrets_get(ptr noundef %8966, i32 noundef 2, i32 noundef 1, ptr noundef %203)
  %8968 = getelementptr inbounds %struct.s2n_result, ptr %234, i32 0, i32 0
  store i32 %8967, ptr %8968, align 4
  %8969 = getelementptr inbounds %struct.s2n_result, ptr %234, i32 0, i32 0
  %8970 = load i32, ptr %8969, align 4
  %8971 = call zeroext i1 @s2n_result_is_error(i32 %8970)
  br i1 %8971, label %9025, label %8972

8972:                                             ; preds = %8963
  br label %8973

8973:                                             ; preds = %8972
  br label %8974

8974:                                             ; preds = %8973
  call void @llvm.lifetime.start.p0(i64 4, ptr %235) #11
  %8975 = call ptr @__errno_location() #12
  %8976 = load i32, ptr %8975, align 4, !tbaa !5
  store i32 %8976, ptr %235, align 4, !tbaa !5
  %8977 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8978 = call i32 @s2n_print_stacktrace(ptr noundef %8977)
  %8979 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8980 = trunc i8 %8979 to i1
  br i1 %8980, label %8981, label %9003

8981:                                             ; preds = %8974
  %8982 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8983 = call i32 @fileno(ptr noundef %8982) #11
  %8984 = call i32 @isatty(i32 noundef %8983) #11
  %8985 = icmp ne i32 %8984, 0
  br i1 %8985, label %8986, label %9003

8986:                                             ; preds = %8981
  %8987 = load i32, ptr %235, align 4, !tbaa !5
  %8988 = call ptr @__errno_location() #12
  store i32 %8987, ptr %8988, align 4, !tbaa !5
  %8989 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8990 = load i32, ptr @test_count, align 4, !tbaa !5
  %8991 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8992 = load i32, ptr %8991, align 4, !tbaa !5
  %8993 = call ptr @s2n_strerror(i32 noundef %8992, ptr noundef @.str.4)
  %8994 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8995 = load i32, ptr %8994, align 4, !tbaa !5
  %8996 = call ptr @s2n_strerror_debug(i32 noundef %8995, ptr noundef @.str.4)
  %8997 = call ptr @__errno_location() #12
  %8998 = load i32, ptr %8997, align 4, !tbaa !5
  %8999 = call ptr @strerror(i32 noundef %8998) #11
  %9000 = call ptr @__errno_location() #12
  %9001 = load i32, ptr %9000, align 4, !tbaa !5
  %9002 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8989, ptr noundef @.str.2, i32 noundef %8990, ptr noundef @.str.69, ptr noundef @.str.1, i32 noundef 327, ptr noundef %8993, ptr noundef %8996, ptr noundef %8999, i32 noundef %9001) #11
  br label %9020

9003:                                             ; preds = %8981, %8974
  %9004 = load i32, ptr %235, align 4, !tbaa !5
  %9005 = call ptr @__errno_location() #12
  store i32 %9004, ptr %9005, align 4, !tbaa !5
  %9006 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9007 = load i32, ptr @test_count, align 4, !tbaa !5
  %9008 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9009 = load i32, ptr %9008, align 4, !tbaa !5
  %9010 = call ptr @s2n_strerror(i32 noundef %9009, ptr noundef @.str.4)
  %9011 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9012 = load i32, ptr %9011, align 4, !tbaa !5
  %9013 = call ptr @s2n_strerror_debug(i32 noundef %9012, ptr noundef @.str.4)
  %9014 = call ptr @__errno_location() #12
  %9015 = load i32, ptr %9014, align 4, !tbaa !5
  %9016 = call ptr @strerror(i32 noundef %9015) #11
  %9017 = call ptr @__errno_location() #12
  %9018 = load i32, ptr %9017, align 4, !tbaa !5
  %9019 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9006, ptr noundef @.str.5, i32 noundef %9007, ptr noundef @.str.69, ptr noundef @.str.1, i32 noundef 327, ptr noundef %9010, ptr noundef %9013, ptr noundef %9016, i32 noundef %9018) #11
  br label %9020

9020:                                             ; preds = %9003, %8986
  call void @llvm.lifetime.end.p0(i64 4, ptr %235) #11
  br label %9021

9021:                                             ; preds = %9020
  br label %9022

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

9023:                                             ; No predecessors!
  br label %9024

9024:                                             ; preds = %9023
  br label %9025

9025:                                             ; preds = %9024, %8963
  br label %9026

9026:                                             ; preds = %9025
  br label %9027

9027:                                             ; preds = %9026
  br label %9028

9028:                                             ; preds = %9027
  %9029 = load i32, ptr @test_count, align 4, !tbaa !5
  %9030 = add nsw i32 %9029, 1
  store i32 %9030, ptr @test_count, align 4, !tbaa !5
  %9031 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9032 = load i32, ptr %9031, align 4, !tbaa !5
  %9033 = icmp eq i32 %9032, 402653193
  br i1 %9033, label %9087, label %9034

9034:                                             ; preds = %9028
  br label %9035

9035:                                             ; preds = %9034
  br label %9036

9036:                                             ; preds = %9035
  call void @llvm.lifetime.start.p0(i64 4, ptr %236) #11
  %9037 = call ptr @__errno_location() #12
  %9038 = load i32, ptr %9037, align 4, !tbaa !5
  store i32 %9038, ptr %236, align 4, !tbaa !5
  %9039 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9040 = call i32 @s2n_print_stacktrace(ptr noundef %9039)
  %9041 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9042 = trunc i8 %9041 to i1
  br i1 %9042, label %9043, label %9065

9043:                                             ; preds = %9036
  %9044 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9045 = call i32 @fileno(ptr noundef %9044) #11
  %9046 = call i32 @isatty(i32 noundef %9045) #11
  %9047 = icmp ne i32 %9046, 0
  br i1 %9047, label %9048, label %9065

9048:                                             ; preds = %9043
  %9049 = load i32, ptr %236, align 4, !tbaa !5
  %9050 = call ptr @__errno_location() #12
  store i32 %9049, ptr %9050, align 4, !tbaa !5
  %9051 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9052 = load i32, ptr @test_count, align 4, !tbaa !5
  %9053 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9054 = load i32, ptr %9053, align 4, !tbaa !5
  %9055 = call ptr @s2n_strerror(i32 noundef %9054, ptr noundef @.str.4)
  %9056 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9057 = load i32, ptr %9056, align 4, !tbaa !5
  %9058 = call ptr @s2n_strerror_debug(i32 noundef %9057, ptr noundef @.str.4)
  %9059 = call ptr @__errno_location() #12
  %9060 = load i32, ptr %9059, align 4, !tbaa !5
  %9061 = call ptr @strerror(i32 noundef %9060) #11
  %9062 = call ptr @__errno_location() #12
  %9063 = load i32, ptr %9062, align 4, !tbaa !5
  %9064 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9051, ptr noundef @.str.2, i32 noundef %9052, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 327, ptr noundef %9055, ptr noundef %9058, ptr noundef %9061, i32 noundef %9063) #11
  br label %9082

9065:                                             ; preds = %9043, %9036
  %9066 = load i32, ptr %236, align 4, !tbaa !5
  %9067 = call ptr @__errno_location() #12
  store i32 %9066, ptr %9067, align 4, !tbaa !5
  %9068 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9069 = load i32, ptr @test_count, align 4, !tbaa !5
  %9070 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9071 = load i32, ptr %9070, align 4, !tbaa !5
  %9072 = call ptr @s2n_strerror(i32 noundef %9071, ptr noundef @.str.4)
  %9073 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9074 = load i32, ptr %9073, align 4, !tbaa !5
  %9075 = call ptr @s2n_strerror_debug(i32 noundef %9074, ptr noundef @.str.4)
  %9076 = call ptr @__errno_location() #12
  %9077 = load i32, ptr %9076, align 4, !tbaa !5
  %9078 = call ptr @strerror(i32 noundef %9077) #11
  %9079 = call ptr @__errno_location() #12
  %9080 = load i32, ptr %9079, align 4, !tbaa !5
  %9081 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9068, ptr noundef @.str.5, i32 noundef %9069, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 327, ptr noundef %9072, ptr noundef %9075, ptr noundef %9078, i32 noundef %9080) #11
  br label %9082

9082:                                             ; preds = %9065, %9048
  call void @llvm.lifetime.end.p0(i64 4, ptr %236) #11
  br label %9083

9083:                                             ; preds = %9082
  br label %9084

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

9085:                                             ; No predecessors!
  br label %9086

9086:                                             ; preds = %9085
  br label %9087

9087:                                             ; preds = %9086, %9028
  br label %9088

9088:                                             ; preds = %9087
  br label %9089

9089:                                             ; preds = %9088
  br label %9090

9090:                                             ; preds = %9089
  %9091 = load i32, ptr @test_count, align 4, !tbaa !5
  %9092 = add nsw i32 %9091, 1
  store i32 %9092, ptr @test_count, align 4, !tbaa !5
  %9093 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9094 = load i32, ptr %9093, align 4, !tbaa !5
  %9095 = call ptr @s2n_strerror_debug(i32 noundef %9094, ptr noundef @.str.4)
  %9096 = icmp eq ptr %9095, null
  br i1 %9096, label %9097, label %9150

9097:                                             ; preds = %9090
  br label %9098

9098:                                             ; preds = %9097
  br label %9099

9099:                                             ; preds = %9098
  call void @llvm.lifetime.start.p0(i64 4, ptr %237) #11
  %9100 = call ptr @__errno_location() #12
  %9101 = load i32, ptr %9100, align 4, !tbaa !5
  store i32 %9101, ptr %237, align 4, !tbaa !5
  %9102 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9103 = call i32 @s2n_print_stacktrace(ptr noundef %9102)
  %9104 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9105 = trunc i8 %9104 to i1
  br i1 %9105, label %9106, label %9128

9106:                                             ; preds = %9099
  %9107 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9108 = call i32 @fileno(ptr noundef %9107) #11
  %9109 = call i32 @isatty(i32 noundef %9108) #11
  %9110 = icmp ne i32 %9109, 0
  br i1 %9110, label %9111, label %9128

9111:                                             ; preds = %9106
  %9112 = load i32, ptr %237, align 4, !tbaa !5
  %9113 = call ptr @__errno_location() #12
  store i32 %9112, ptr %9113, align 4, !tbaa !5
  %9114 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9115 = load i32, ptr @test_count, align 4, !tbaa !5
  %9116 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9117 = load i32, ptr %9116, align 4, !tbaa !5
  %9118 = call ptr @s2n_strerror(i32 noundef %9117, ptr noundef @.str.4)
  %9119 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9120 = load i32, ptr %9119, align 4, !tbaa !5
  %9121 = call ptr @s2n_strerror_debug(i32 noundef %9120, ptr noundef @.str.4)
  %9122 = call ptr @__errno_location() #12
  %9123 = load i32, ptr %9122, align 4, !tbaa !5
  %9124 = call ptr @strerror(i32 noundef %9123) #11
  %9125 = call ptr @__errno_location() #12
  %9126 = load i32, ptr %9125, align 4, !tbaa !5
  %9127 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9114, ptr noundef @.str.2, i32 noundef %9115, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 327, ptr noundef %9118, ptr noundef %9121, ptr noundef %9124, i32 noundef %9126) #11
  br label %9145

9128:                                             ; preds = %9106, %9099
  %9129 = load i32, ptr %237, align 4, !tbaa !5
  %9130 = call ptr @__errno_location() #12
  store i32 %9129, ptr %9130, align 4, !tbaa !5
  %9131 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9132 = load i32, ptr @test_count, align 4, !tbaa !5
  %9133 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9134 = load i32, ptr %9133, align 4, !tbaa !5
  %9135 = call ptr @s2n_strerror(i32 noundef %9134, ptr noundef @.str.4)
  %9136 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9137 = load i32, ptr %9136, align 4, !tbaa !5
  %9138 = call ptr @s2n_strerror_debug(i32 noundef %9137, ptr noundef @.str.4)
  %9139 = call ptr @__errno_location() #12
  %9140 = load i32, ptr %9139, align 4, !tbaa !5
  %9141 = call ptr @strerror(i32 noundef %9140) #11
  %9142 = call ptr @__errno_location() #12
  %9143 = load i32, ptr %9142, align 4, !tbaa !5
  %9144 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9131, ptr noundef @.str.5, i32 noundef %9132, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 327, ptr noundef %9135, ptr noundef %9138, ptr noundef %9141, i32 noundef %9143) #11
  br label %9145

9145:                                             ; preds = %9128, %9111
  call void @llvm.lifetime.end.p0(i64 4, ptr %237) #11
  br label %9146

9146:                                             ; preds = %9145
  br label %9147

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

9148:                                             ; No predecessors!
  br label %9149

9149:                                             ; preds = %9148
  br label %9150

9150:                                             ; preds = %9149, %9090
  br label %9151

9151:                                             ; preds = %9150
  br label %9152

9152:                                             ; preds = %9151
  br label %9153

9153:                                             ; preds = %9152
  br label %9154

9154:                                             ; preds = %9153
  br label %9155

9155:                                             ; preds = %9154
  %9156 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %9156, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %9157 = call ptr @__errno_location() #12
  store i32 0, ptr %9157, align 4, !tbaa !5
  br label %9158

9158:                                             ; preds = %9155
  br label %9159

9159:                                             ; preds = %9158
  br label %9160

9160:                                             ; preds = %9159
  br label %9161

9161:                                             ; preds = %9160
  %9162 = load ptr, ptr %233, align 8, !tbaa !9
  %9163 = load ptr, ptr %204, align 8, !tbaa !9
  %9164 = getelementptr inbounds %struct.s2n_connection, ptr %9163, i32 0, i32 27
  store ptr %9162, ptr %9164, align 8, !tbaa !39
  call void @llvm.lifetime.start.p0(i64 8, ptr %238) #11
  %9165 = load ptr, ptr %204, align 8, !tbaa !9
  %9166 = getelementptr inbounds %struct.s2n_connection, ptr %9165, i32 0, i32 27
  %9167 = load ptr, ptr %9166, align 8, !tbaa !39
  %9168 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %9167, i32 0, i32 0
  %9169 = load ptr, ptr %9168, align 8, !tbaa !64
  store ptr %9169, ptr %238, align 8, !tbaa !9
  %9170 = load ptr, ptr %204, align 8, !tbaa !9
  %9171 = getelementptr inbounds %struct.s2n_connection, ptr %9170, i32 0, i32 27
  %9172 = load ptr, ptr %9171, align 8, !tbaa !39
  %9173 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %9172, i32 0, i32 0
  store ptr null, ptr %9173, align 8, !tbaa !64
  br label %9174

9174:                                             ; preds = %9161
  br label %9175

9175:                                             ; preds = %9174
  br label %9176

9176:                                             ; preds = %9175
  %9177 = load i32, ptr @test_count, align 4, !tbaa !5
  %9178 = add nsw i32 %9177, 1
  store i32 %9178, ptr @test_count, align 4, !tbaa !5
  %9179 = load ptr, ptr %204, align 8, !tbaa !9
  %9180 = call i32 @s2n_tls13_secrets_get(ptr noundef %9179, i32 noundef 2, i32 noundef 1, ptr noundef %203)
  %9181 = getelementptr inbounds %struct.s2n_result, ptr %239, i32 0, i32 0
  store i32 %9180, ptr %9181, align 4
  %9182 = getelementptr inbounds %struct.s2n_result, ptr %239, i32 0, i32 0
  %9183 = load i32, ptr %9182, align 4
  %9184 = call zeroext i1 @s2n_result_is_error(i32 %9183)
  br i1 %9184, label %9238, label %9185

9185:                                             ; preds = %9176
  br label %9186

9186:                                             ; preds = %9185
  br label %9187

9187:                                             ; preds = %9186
  call void @llvm.lifetime.start.p0(i64 4, ptr %240) #11
  %9188 = call ptr @__errno_location() #12
  %9189 = load i32, ptr %9188, align 4, !tbaa !5
  store i32 %9189, ptr %240, align 4, !tbaa !5
  %9190 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9191 = call i32 @s2n_print_stacktrace(ptr noundef %9190)
  %9192 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9193 = trunc i8 %9192 to i1
  br i1 %9193, label %9194, label %9216

9194:                                             ; preds = %9187
  %9195 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9196 = call i32 @fileno(ptr noundef %9195) #11
  %9197 = call i32 @isatty(i32 noundef %9196) #11
  %9198 = icmp ne i32 %9197, 0
  br i1 %9198, label %9199, label %9216

9199:                                             ; preds = %9194
  %9200 = load i32, ptr %240, align 4, !tbaa !5
  %9201 = call ptr @__errno_location() #12
  store i32 %9200, ptr %9201, align 4, !tbaa !5
  %9202 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9203 = load i32, ptr @test_count, align 4, !tbaa !5
  %9204 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9205 = load i32, ptr %9204, align 4, !tbaa !5
  %9206 = call ptr @s2n_strerror(i32 noundef %9205, ptr noundef @.str.4)
  %9207 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9208 = load i32, ptr %9207, align 4, !tbaa !5
  %9209 = call ptr @s2n_strerror_debug(i32 noundef %9208, ptr noundef @.str.4)
  %9210 = call ptr @__errno_location() #12
  %9211 = load i32, ptr %9210, align 4, !tbaa !5
  %9212 = call ptr @strerror(i32 noundef %9211) #11
  %9213 = call ptr @__errno_location() #12
  %9214 = load i32, ptr %9213, align 4, !tbaa !5
  %9215 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9202, ptr noundef @.str.2, i32 noundef %9203, ptr noundef @.str.69, ptr noundef @.str.1, i32 noundef 332, ptr noundef %9206, ptr noundef %9209, ptr noundef %9212, i32 noundef %9214) #11
  br label %9233

9216:                                             ; preds = %9194, %9187
  %9217 = load i32, ptr %240, align 4, !tbaa !5
  %9218 = call ptr @__errno_location() #12
  store i32 %9217, ptr %9218, align 4, !tbaa !5
  %9219 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9220 = load i32, ptr @test_count, align 4, !tbaa !5
  %9221 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9222 = load i32, ptr %9221, align 4, !tbaa !5
  %9223 = call ptr @s2n_strerror(i32 noundef %9222, ptr noundef @.str.4)
  %9224 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9225 = load i32, ptr %9224, align 4, !tbaa !5
  %9226 = call ptr @s2n_strerror_debug(i32 noundef %9225, ptr noundef @.str.4)
  %9227 = call ptr @__errno_location() #12
  %9228 = load i32, ptr %9227, align 4, !tbaa !5
  %9229 = call ptr @strerror(i32 noundef %9228) #11
  %9230 = call ptr @__errno_location() #12
  %9231 = load i32, ptr %9230, align 4, !tbaa !5
  %9232 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9219, ptr noundef @.str.5, i32 noundef %9220, ptr noundef @.str.69, ptr noundef @.str.1, i32 noundef 332, ptr noundef %9223, ptr noundef %9226, ptr noundef %9229, i32 noundef %9231) #11
  br label %9233

9233:                                             ; preds = %9216, %9199
  call void @llvm.lifetime.end.p0(i64 4, ptr %240) #11
  br label %9234

9234:                                             ; preds = %9233
  br label %9235

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

9236:                                             ; No predecessors!
  br label %9237

9237:                                             ; preds = %9236
  br label %9238

9238:                                             ; preds = %9237, %9176
  br label %9239

9239:                                             ; preds = %9238
  br label %9240

9240:                                             ; preds = %9239
  br label %9241

9241:                                             ; preds = %9240
  %9242 = load i32, ptr @test_count, align 4, !tbaa !5
  %9243 = add nsw i32 %9242, 1
  store i32 %9243, ptr @test_count, align 4, !tbaa !5
  %9244 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9245 = load i32, ptr %9244, align 4, !tbaa !5
  %9246 = icmp eq i32 %9245, 402653193
  br i1 %9246, label %9300, label %9247

9247:                                             ; preds = %9241
  br label %9248

9248:                                             ; preds = %9247
  br label %9249

9249:                                             ; preds = %9248
  call void @llvm.lifetime.start.p0(i64 4, ptr %241) #11
  %9250 = call ptr @__errno_location() #12
  %9251 = load i32, ptr %9250, align 4, !tbaa !5
  store i32 %9251, ptr %241, align 4, !tbaa !5
  %9252 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9253 = call i32 @s2n_print_stacktrace(ptr noundef %9252)
  %9254 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9255 = trunc i8 %9254 to i1
  br i1 %9255, label %9256, label %9278

9256:                                             ; preds = %9249
  %9257 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9258 = call i32 @fileno(ptr noundef %9257) #11
  %9259 = call i32 @isatty(i32 noundef %9258) #11
  %9260 = icmp ne i32 %9259, 0
  br i1 %9260, label %9261, label %9278

9261:                                             ; preds = %9256
  %9262 = load i32, ptr %241, align 4, !tbaa !5
  %9263 = call ptr @__errno_location() #12
  store i32 %9262, ptr %9263, align 4, !tbaa !5
  %9264 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9265 = load i32, ptr @test_count, align 4, !tbaa !5
  %9266 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9267 = load i32, ptr %9266, align 4, !tbaa !5
  %9268 = call ptr @s2n_strerror(i32 noundef %9267, ptr noundef @.str.4)
  %9269 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9270 = load i32, ptr %9269, align 4, !tbaa !5
  %9271 = call ptr @s2n_strerror_debug(i32 noundef %9270, ptr noundef @.str.4)
  %9272 = call ptr @__errno_location() #12
  %9273 = load i32, ptr %9272, align 4, !tbaa !5
  %9274 = call ptr @strerror(i32 noundef %9273) #11
  %9275 = call ptr @__errno_location() #12
  %9276 = load i32, ptr %9275, align 4, !tbaa !5
  %9277 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9264, ptr noundef @.str.2, i32 noundef %9265, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 332, ptr noundef %9268, ptr noundef %9271, ptr noundef %9274, i32 noundef %9276) #11
  br label %9295

9278:                                             ; preds = %9256, %9249
  %9279 = load i32, ptr %241, align 4, !tbaa !5
  %9280 = call ptr @__errno_location() #12
  store i32 %9279, ptr %9280, align 4, !tbaa !5
  %9281 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9282 = load i32, ptr @test_count, align 4, !tbaa !5
  %9283 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9284 = load i32, ptr %9283, align 4, !tbaa !5
  %9285 = call ptr @s2n_strerror(i32 noundef %9284, ptr noundef @.str.4)
  %9286 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9287 = load i32, ptr %9286, align 4, !tbaa !5
  %9288 = call ptr @s2n_strerror_debug(i32 noundef %9287, ptr noundef @.str.4)
  %9289 = call ptr @__errno_location() #12
  %9290 = load i32, ptr %9289, align 4, !tbaa !5
  %9291 = call ptr @strerror(i32 noundef %9290) #11
  %9292 = call ptr @__errno_location() #12
  %9293 = load i32, ptr %9292, align 4, !tbaa !5
  %9294 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9281, ptr noundef @.str.5, i32 noundef %9282, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 332, ptr noundef %9285, ptr noundef %9288, ptr noundef %9291, i32 noundef %9293) #11
  br label %9295

9295:                                             ; preds = %9278, %9261
  call void @llvm.lifetime.end.p0(i64 4, ptr %241) #11
  br label %9296

9296:                                             ; preds = %9295
  br label %9297

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

9298:                                             ; No predecessors!
  br label %9299

9299:                                             ; preds = %9298
  br label %9300

9300:                                             ; preds = %9299, %9241
  br label %9301

9301:                                             ; preds = %9300
  br label %9302

9302:                                             ; preds = %9301
  br label %9303

9303:                                             ; preds = %9302
  %9304 = load i32, ptr @test_count, align 4, !tbaa !5
  %9305 = add nsw i32 %9304, 1
  store i32 %9305, ptr @test_count, align 4, !tbaa !5
  %9306 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9307 = load i32, ptr %9306, align 4, !tbaa !5
  %9308 = call ptr @s2n_strerror_debug(i32 noundef %9307, ptr noundef @.str.4)
  %9309 = icmp eq ptr %9308, null
  br i1 %9309, label %9310, label %9363

9310:                                             ; preds = %9303
  br label %9311

9311:                                             ; preds = %9310
  br label %9312

9312:                                             ; preds = %9311
  call void @llvm.lifetime.start.p0(i64 4, ptr %242) #11
  %9313 = call ptr @__errno_location() #12
  %9314 = load i32, ptr %9313, align 4, !tbaa !5
  store i32 %9314, ptr %242, align 4, !tbaa !5
  %9315 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9316 = call i32 @s2n_print_stacktrace(ptr noundef %9315)
  %9317 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9318 = trunc i8 %9317 to i1
  br i1 %9318, label %9319, label %9341

9319:                                             ; preds = %9312
  %9320 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9321 = call i32 @fileno(ptr noundef %9320) #11
  %9322 = call i32 @isatty(i32 noundef %9321) #11
  %9323 = icmp ne i32 %9322, 0
  br i1 %9323, label %9324, label %9341

9324:                                             ; preds = %9319
  %9325 = load i32, ptr %242, align 4, !tbaa !5
  %9326 = call ptr @__errno_location() #12
  store i32 %9325, ptr %9326, align 4, !tbaa !5
  %9327 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9328 = load i32, ptr @test_count, align 4, !tbaa !5
  %9329 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9330 = load i32, ptr %9329, align 4, !tbaa !5
  %9331 = call ptr @s2n_strerror(i32 noundef %9330, ptr noundef @.str.4)
  %9332 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9333 = load i32, ptr %9332, align 4, !tbaa !5
  %9334 = call ptr @s2n_strerror_debug(i32 noundef %9333, ptr noundef @.str.4)
  %9335 = call ptr @__errno_location() #12
  %9336 = load i32, ptr %9335, align 4, !tbaa !5
  %9337 = call ptr @strerror(i32 noundef %9336) #11
  %9338 = call ptr @__errno_location() #12
  %9339 = load i32, ptr %9338, align 4, !tbaa !5
  %9340 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9327, ptr noundef @.str.2, i32 noundef %9328, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 332, ptr noundef %9331, ptr noundef %9334, ptr noundef %9337, i32 noundef %9339) #11
  br label %9358

9341:                                             ; preds = %9319, %9312
  %9342 = load i32, ptr %242, align 4, !tbaa !5
  %9343 = call ptr @__errno_location() #12
  store i32 %9342, ptr %9343, align 4, !tbaa !5
  %9344 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9345 = load i32, ptr @test_count, align 4, !tbaa !5
  %9346 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9347 = load i32, ptr %9346, align 4, !tbaa !5
  %9348 = call ptr @s2n_strerror(i32 noundef %9347, ptr noundef @.str.4)
  %9349 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9350 = load i32, ptr %9349, align 4, !tbaa !5
  %9351 = call ptr @s2n_strerror_debug(i32 noundef %9350, ptr noundef @.str.4)
  %9352 = call ptr @__errno_location() #12
  %9353 = load i32, ptr %9352, align 4, !tbaa !5
  %9354 = call ptr @strerror(i32 noundef %9353) #11
  %9355 = call ptr @__errno_location() #12
  %9356 = load i32, ptr %9355, align 4, !tbaa !5
  %9357 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9344, ptr noundef @.str.5, i32 noundef %9345, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 332, ptr noundef %9348, ptr noundef %9351, ptr noundef %9354, i32 noundef %9356) #11
  br label %9358

9358:                                             ; preds = %9341, %9324
  call void @llvm.lifetime.end.p0(i64 4, ptr %242) #11
  br label %9359

9359:                                             ; preds = %9358
  br label %9360

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

9361:                                             ; No predecessors!
  br label %9362

9362:                                             ; preds = %9361
  br label %9363

9363:                                             ; preds = %9362, %9303
  br label %9364

9364:                                             ; preds = %9363
  br label %9365

9365:                                             ; preds = %9364
  br label %9366

9366:                                             ; preds = %9365
  br label %9367

9367:                                             ; preds = %9366
  br label %9368

9368:                                             ; preds = %9367
  %9369 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %9369, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %9370 = call ptr @__errno_location() #12
  store i32 0, ptr %9370, align 4, !tbaa !5
  br label %9371

9371:                                             ; preds = %9368
  br label %9372

9372:                                             ; preds = %9371
  br label %9373

9373:                                             ; preds = %9372
  br label %9374

9374:                                             ; preds = %9373
  %9375 = load ptr, ptr %238, align 8, !tbaa !9
  %9376 = load ptr, ptr %204, align 8, !tbaa !9
  %9377 = getelementptr inbounds %struct.s2n_connection, ptr %9376, i32 0, i32 27
  %9378 = load ptr, ptr %9377, align 8, !tbaa !39
  %9379 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %9378, i32 0, i32 0
  store ptr %9375, ptr %9379, align 8, !tbaa !64
  call void @llvm.lifetime.end.p0(i64 8, ptr %238) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %233) #11
  %9380 = call i32 @s2n_connection_ptr_free(ptr noundef %204)
  %9381 = getelementptr inbounds %struct.s2n_result, ptr %243, i32 0, i32 0
  store i32 %9380, ptr %9381, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %204) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %203) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %244) #11
  %9382 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %9382, ptr %244, align 8, !tbaa !9
  %9383 = load ptr, ptr %244, align 8, !tbaa !9
  %9384 = getelementptr inbounds %struct.s2n_connection, ptr %9383, i32 0, i32 27
  %9385 = load ptr, ptr %9384, align 8, !tbaa !39
  %9386 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %9385, i32 0, i32 0
  store ptr @s2n_tls13_aes_128_gcm_sha256, ptr %9386, align 8, !tbaa !64
  %9387 = load ptr, ptr %244, align 8, !tbaa !9
  %9388 = getelementptr inbounds %struct.s2n_connection, ptr %9387, i32 0, i32 23
  store i8 34, ptr %9388, align 4, !tbaa !72
  br label %9389

9389:                                             ; preds = %9374
  call void @llvm.lifetime.start.p0(i64 4, ptr %245) #11
  %9390 = getelementptr inbounds %struct.s2n_blob, ptr %13, i32 0, i32 1
  %9391 = load i32, ptr %9390, align 8, !tbaa !76
  store i32 %9391, ptr %245, align 4, !tbaa !5
  %9392 = load i32, ptr %245, align 4, !tbaa !5
  %9393 = icmp ne i32 %9392, 0
  br i1 %9393, label %9394, label %9459

9394:                                             ; preds = %9389
  %9395 = load ptr, ptr %244, align 8, !tbaa !9
  %9396 = getelementptr inbounds %struct.s2n_connection, ptr %9395, i32 0, i32 28
  %9397 = getelementptr inbounds %struct.s2n_secrets, ptr %9396, i32 0, i32 0
  %9398 = getelementptr inbounds %struct.s2n_tls13_secrets, ptr %9397, i32 0, i32 2
  %9399 = getelementptr inbounds [48 x i8], ptr %9398, i64 0, i64 0
  %9400 = getelementptr inbounds %struct.s2n_blob, ptr %13, i32 0, i32 0
  %9401 = load ptr, ptr %9400, align 8, !tbaa !71
  %9402 = load i32, ptr %245, align 4, !tbaa !5
  %9403 = zext i32 %9402 to i64
  call void @llvm.memmove.p0.p0.i64(ptr align 8 %9399, ptr align 1 %9401, i64 %9403, i1 false)
  %9404 = icmp eq ptr %9399, null
  br i1 %9404, label %9405, label %9458

9405:                                             ; preds = %9394
  br label %9406

9406:                                             ; preds = %9405
  br label %9407

9407:                                             ; preds = %9406
  call void @llvm.lifetime.start.p0(i64 4, ptr %246) #11
  %9408 = call ptr @__errno_location() #12
  %9409 = load i32, ptr %9408, align 4, !tbaa !5
  store i32 %9409, ptr %246, align 4, !tbaa !5
  %9410 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9411 = call i32 @s2n_print_stacktrace(ptr noundef %9410)
  %9412 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9413 = trunc i8 %9412 to i1
  br i1 %9413, label %9414, label %9436

9414:                                             ; preds = %9407
  %9415 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9416 = call i32 @fileno(ptr noundef %9415) #11
  %9417 = call i32 @isatty(i32 noundef %9416) #11
  %9418 = icmp ne i32 %9417, 0
  br i1 %9418, label %9419, label %9436

9419:                                             ; preds = %9414
  %9420 = load i32, ptr %246, align 4, !tbaa !5
  %9421 = call ptr @__errno_location() #12
  store i32 %9420, ptr %9421, align 4, !tbaa !5
  %9422 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9423 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %9425, ptr noundef @.str.4)
  %9427 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9428 = load i32, ptr %9427, align 4, !tbaa !5
  %9429 = call ptr @s2n_strerror_debug(i32 noundef %9428, ptr noundef @.str.4)
  %9430 = call ptr @__errno_location() #12
  %9431 = load i32, ptr %9430, align 4, !tbaa !5
  %9432 = call ptr @strerror(i32 noundef %9431) #11
  %9433 = call ptr @__errno_location() #12
  %9434 = load i32, ptr %9433, align 4, !tbaa !5
  %9435 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9422, ptr noundef @.str.2, i32 noundef %9423, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 344, ptr noundef %9426, ptr noundef %9429, ptr noundef %9432, i32 noundef %9434) #11
  br label %9453

9436:                                             ; preds = %9414, %9407
  %9437 = load i32, ptr %246, align 4, !tbaa !5
  %9438 = call ptr @__errno_location() #12
  store i32 %9437, ptr %9438, align 4, !tbaa !5
  %9439 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9440 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %9442, ptr noundef @.str.4)
  %9444 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9445 = load i32, ptr %9444, align 4, !tbaa !5
  %9446 = call ptr @s2n_strerror_debug(i32 noundef %9445, ptr noundef @.str.4)
  %9447 = call ptr @__errno_location() #12
  %9448 = load i32, ptr %9447, align 4, !tbaa !5
  %9449 = call ptr @strerror(i32 noundef %9448) #11
  %9450 = call ptr @__errno_location() #12
  %9451 = load i32, ptr %9450, align 4, !tbaa !5
  %9452 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9439, ptr noundef @.str.5, i32 noundef %9440, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 344, ptr noundef %9443, ptr noundef %9446, ptr noundef %9449, i32 noundef %9451) #11
  br label %9453

9453:                                             ; preds = %9436, %9419
  call void @llvm.lifetime.end.p0(i64 4, ptr %246) #11
  br label %9454

9454:                                             ; preds = %9453
  br label %9455

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

9456:                                             ; No predecessors!
  br label %9457

9457:                                             ; preds = %9456
  br label %9458

9458:                                             ; preds = %9457, %9394
  br label %9459

9459:                                             ; preds = %9458, %9389
  call void @llvm.lifetime.end.p0(i64 4, ptr %245) #11
  br label %9460

9460:                                             ; preds = %9459
  br label %9461

9461:                                             ; preds = %9460
  %9462 = load ptr, ptr %244, align 8, !tbaa !9
  %9463 = getelementptr inbounds %struct.s2n_connection, ptr %9462, i32 0, i32 28
  %9464 = getelementptr inbounds %struct.s2n_secrets, ptr %9463, i32 0, i32 1
  store i32 2, ptr %9464, align 4, !tbaa !69
  call void @llvm.lifetime.start.p0(i64 24, ptr %247) #11
  call void @llvm.memset.p0.i64(ptr align 8 %247, i8 0, i64 24, i1 false)
  call void @llvm.lifetime.start.p0(i64 48, ptr %248) #11
  call void @llvm.memset.p0.i64(ptr align 16 %248, i8 0, i64 48, i1 false)
  br label %9465

9465:                                             ; preds = %9461
  %9466 = load i32, ptr @test_count, align 4, !tbaa !5
  %9467 = add nsw i32 %9466, 1
  store i32 %9467, ptr @test_count, align 4, !tbaa !5
  %9468 = getelementptr inbounds [48 x i8], ptr %248, i64 0, i64 0
  %9469 = call i32 @s2n_blob_init(ptr noundef %247, ptr noundef %9468, i32 noundef 48)
  %9470 = icmp eq i32 %9469, -1
  br i1 %9470, label %9471, label %9524

9471:                                             ; preds = %9465
  br label %9472

9472:                                             ; preds = %9471
  br label %9473

9473:                                             ; preds = %9472
  call void @llvm.lifetime.start.p0(i64 4, ptr %249) #11
  %9474 = call ptr @__errno_location() #12
  %9475 = load i32, ptr %9474, align 4, !tbaa !5
  store i32 %9475, ptr %249, align 4, !tbaa !5
  %9476 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9477 = call i32 @s2n_print_stacktrace(ptr noundef %9476)
  %9478 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9479 = trunc i8 %9478 to i1
  br i1 %9479, label %9480, label %9502

9480:                                             ; preds = %9473
  %9481 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9482 = call i32 @fileno(ptr noundef %9481) #11
  %9483 = call i32 @isatty(i32 noundef %9482) #11
  %9484 = icmp ne i32 %9483, 0
  br i1 %9484, label %9485, label %9502

9485:                                             ; preds = %9480
  %9486 = load i32, ptr %249, align 4, !tbaa !5
  %9487 = call ptr @__errno_location() #12
  store i32 %9486, ptr %9487, align 4, !tbaa !5
  %9488 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9489 = load i32, ptr @test_count, align 4, !tbaa !5
  %9490 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9491 = load i32, ptr %9490, align 4, !tbaa !5
  %9492 = call ptr @s2n_strerror(i32 noundef %9491, ptr noundef @.str.4)
  %9493 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9494 = load i32, ptr %9493, align 4, !tbaa !5
  %9495 = call ptr @s2n_strerror_debug(i32 noundef %9494, ptr noundef @.str.4)
  %9496 = call ptr @__errno_location() #12
  %9497 = load i32, ptr %9496, align 4, !tbaa !5
  %9498 = call ptr @strerror(i32 noundef %9497) #11
  %9499 = call ptr @__errno_location() #12
  %9500 = load i32, ptr %9499, align 4, !tbaa !5
  %9501 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9488, ptr noundef @.str.2, i32 noundef %9489, ptr noundef @.str.70, ptr noundef @.str.1, i32 noundef 349, ptr noundef %9492, ptr noundef %9495, ptr noundef %9498, i32 noundef %9500) #11
  br label %9519

9502:                                             ; preds = %9480, %9473
  %9503 = load i32, ptr %249, align 4, !tbaa !5
  %9504 = call ptr @__errno_location() #12
  store i32 %9503, ptr %9504, align 4, !tbaa !5
  %9505 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9506 = load i32, ptr @test_count, align 4, !tbaa !5
  %9507 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9508 = load i32, ptr %9507, align 4, !tbaa !5
  %9509 = call ptr @s2n_strerror(i32 noundef %9508, ptr noundef @.str.4)
  %9510 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9511 = load i32, ptr %9510, align 4, !tbaa !5
  %9512 = call ptr @s2n_strerror_debug(i32 noundef %9511, ptr noundef @.str.4)
  %9513 = call ptr @__errno_location() #12
  %9514 = load i32, ptr %9513, align 4, !tbaa !5
  %9515 = call ptr @strerror(i32 noundef %9514) #11
  %9516 = call ptr @__errno_location() #12
  %9517 = load i32, ptr %9516, align 4, !tbaa !5
  %9518 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9505, ptr noundef @.str.5, i32 noundef %9506, ptr noundef @.str.70, ptr noundef @.str.1, i32 noundef 349, ptr noundef %9509, ptr noundef %9512, ptr noundef %9515, i32 noundef %9517) #11
  br label %9519

9519:                                             ; preds = %9502, %9485
  call void @llvm.lifetime.end.p0(i64 4, ptr %249) #11
  br label %9520

9520:                                             ; preds = %9519
  br label %9521

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

9522:                                             ; No predecessors!
  br label %9523

9523:                                             ; preds = %9522
  br label %9524

9524:                                             ; preds = %9523, %9465
  br label %9525

9525:                                             ; preds = %9524
  br label %9526

9526:                                             ; preds = %9525
  br label %9527

9527:                                             ; preds = %9526
  %9528 = load i32, ptr @test_count, align 4, !tbaa !5
  %9529 = add nsw i32 %9528, 1
  store i32 %9529, ptr @test_count, align 4, !tbaa !5
  %9530 = load ptr, ptr %244, align 8, !tbaa !9
  %9531 = call i32 @s2n_tls13_secrets_get(ptr noundef %9530, i32 noundef 2, i32 noundef 1, ptr noundef %247)
  %9532 = getelementptr inbounds %struct.s2n_result, ptr %250, i32 0, i32 0
  store i32 %9531, ptr %9532, align 4
  %9533 = getelementptr inbounds %struct.s2n_result, ptr %250, i32 0, i32 0
  %9534 = load i32, ptr %9533, align 4
  %9535 = call zeroext i1 @s2n_result_is_ok(i32 %9534)
  br i1 %9535, label %9589, label %9536

9536:                                             ; preds = %9527
  br label %9537

9537:                                             ; preds = %9536
  br label %9538

9538:                                             ; preds = %9537
  call void @llvm.lifetime.start.p0(i64 4, ptr %251) #11
  %9539 = call ptr @__errno_location() #12
  %9540 = load i32, ptr %9539, align 4, !tbaa !5
  store i32 %9540, ptr %251, align 4, !tbaa !5
  %9541 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9542 = call i32 @s2n_print_stacktrace(ptr noundef %9541)
  %9543 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9544 = trunc i8 %9543 to i1
  br i1 %9544, label %9545, label %9567

9545:                                             ; preds = %9538
  %9546 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9547 = call i32 @fileno(ptr noundef %9546) #11
  %9548 = call i32 @isatty(i32 noundef %9547) #11
  %9549 = icmp ne i32 %9548, 0
  br i1 %9549, label %9550, label %9567

9550:                                             ; preds = %9545
  %9551 = load i32, ptr %251, align 4, !tbaa !5
  %9552 = call ptr @__errno_location() #12
  store i32 %9551, ptr %9552, align 4, !tbaa !5
  %9553 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9554 = load i32, ptr @test_count, align 4, !tbaa !5
  %9555 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9556 = load i32, ptr %9555, align 4, !tbaa !5
  %9557 = call ptr @s2n_strerror(i32 noundef %9556, ptr noundef @.str.4)
  %9558 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9559 = load i32, ptr %9558, align 4, !tbaa !5
  %9560 = call ptr @s2n_strerror_debug(i32 noundef %9559, ptr noundef @.str.4)
  %9561 = call ptr @__errno_location() #12
  %9562 = load i32, ptr %9561, align 4, !tbaa !5
  %9563 = call ptr @strerror(i32 noundef %9562) #11
  %9564 = call ptr @__errno_location() #12
  %9565 = load i32, ptr %9564, align 4, !tbaa !5
  %9566 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9553, ptr noundef @.str.2, i32 noundef %9554, ptr noundef @.str.71, ptr noundef @.str.1, i32 noundef 350, ptr noundef %9557, ptr noundef %9560, ptr noundef %9563, i32 noundef %9565) #11
  br label %9584

9567:                                             ; preds = %9545, %9538
  %9568 = load i32, ptr %251, align 4, !tbaa !5
  %9569 = call ptr @__errno_location() #12
  store i32 %9568, ptr %9569, align 4, !tbaa !5
  %9570 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9571 = load i32, ptr @test_count, align 4, !tbaa !5
  %9572 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9573 = load i32, ptr %9572, align 4, !tbaa !5
  %9574 = call ptr @s2n_strerror(i32 noundef %9573, ptr noundef @.str.4)
  %9575 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9576 = load i32, ptr %9575, align 4, !tbaa !5
  %9577 = call ptr @s2n_strerror_debug(i32 noundef %9576, ptr noundef @.str.4)
  %9578 = call ptr @__errno_location() #12
  %9579 = load i32, ptr %9578, align 4, !tbaa !5
  %9580 = call ptr @strerror(i32 noundef %9579) #11
  %9581 = call ptr @__errno_location() #12
  %9582 = load i32, ptr %9581, align 4, !tbaa !5
  %9583 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9570, ptr noundef @.str.5, i32 noundef %9571, ptr noundef @.str.71, ptr noundef @.str.1, i32 noundef 350, ptr noundef %9574, ptr noundef %9577, ptr noundef %9580, i32 noundef %9582) #11
  br label %9584

9584:                                             ; preds = %9567, %9550
  call void @llvm.lifetime.end.p0(i64 4, ptr %251) #11
  br label %9585

9585:                                             ; preds = %9584
  br label %9586

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

9587:                                             ; No predecessors!
  br label %9588

9588:                                             ; preds = %9587
  br label %9589

9589:                                             ; preds = %9588, %9527
  br label %9590

9590:                                             ; preds = %9589
  br label %9591

9591:                                             ; preds = %9590
  br label %9592

9592:                                             ; preds = %9591
  %9593 = load i32, ptr @test_count, align 4, !tbaa !5
  %9594 = add nsw i32 %9593, 1
  store i32 %9594, ptr @test_count, align 4, !tbaa !5
  %9595 = getelementptr inbounds %struct.s2n_blob, ptr %247, i32 0, i32 1
  %9596 = load i32, ptr %9595, align 8, !tbaa !76
  %9597 = icmp ugt i32 %9596, 0
  br i1 %9597, label %9651, label %9598

9598:                                             ; preds = %9592
  br label %9599

9599:                                             ; preds = %9598
  br label %9600

9600:                                             ; preds = %9599
  call void @llvm.lifetime.start.p0(i64 4, ptr %252) #11
  %9601 = call ptr @__errno_location() #12
  %9602 = load i32, ptr %9601, align 4, !tbaa !5
  store i32 %9602, ptr %252, align 4, !tbaa !5
  %9603 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9604 = call i32 @s2n_print_stacktrace(ptr noundef %9603)
  %9605 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9606 = trunc i8 %9605 to i1
  br i1 %9606, label %9607, label %9629

9607:                                             ; preds = %9600
  %9608 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9609 = call i32 @fileno(ptr noundef %9608) #11
  %9610 = call i32 @isatty(i32 noundef %9609) #11
  %9611 = icmp ne i32 %9610, 0
  br i1 %9611, label %9612, label %9629

9612:                                             ; preds = %9607
  %9613 = load i32, ptr %252, align 4, !tbaa !5
  %9614 = call ptr @__errno_location() #12
  store i32 %9613, ptr %9614, align 4, !tbaa !5
  %9615 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9616 = load i32, ptr @test_count, align 4, !tbaa !5
  %9617 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9618 = load i32, ptr %9617, align 4, !tbaa !5
  %9619 = call ptr @s2n_strerror(i32 noundef %9618, ptr noundef @.str.4)
  %9620 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9621 = load i32, ptr %9620, align 4, !tbaa !5
  %9622 = call ptr @s2n_strerror_debug(i32 noundef %9621, ptr noundef @.str.4)
  %9623 = call ptr @__errno_location() #12
  %9624 = load i32, ptr %9623, align 4, !tbaa !5
  %9625 = call ptr @strerror(i32 noundef %9624) #11
  %9626 = call ptr @__errno_location() #12
  %9627 = load i32, ptr %9626, align 4, !tbaa !5
  %9628 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9615, ptr noundef @.str.2, i32 noundef %9616, ptr noundef @.str.72, ptr noundef @.str.1, i32 noundef 352, ptr noundef %9619, ptr noundef %9622, ptr noundef %9625, i32 noundef %9627) #11
  br label %9646

9629:                                             ; preds = %9607, %9600
  %9630 = load i32, ptr %252, align 4, !tbaa !5
  %9631 = call ptr @__errno_location() #12
  store i32 %9630, ptr %9631, align 4, !tbaa !5
  %9632 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9633 = load i32, ptr @test_count, align 4, !tbaa !5
  %9634 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9635 = load i32, ptr %9634, align 4, !tbaa !5
  %9636 = call ptr @s2n_strerror(i32 noundef %9635, ptr noundef @.str.4)
  %9637 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9638 = load i32, ptr %9637, align 4, !tbaa !5
  %9639 = call ptr @s2n_strerror_debug(i32 noundef %9638, ptr noundef @.str.4)
  %9640 = call ptr @__errno_location() #12
  %9641 = load i32, ptr %9640, align 4, !tbaa !5
  %9642 = call ptr @strerror(i32 noundef %9641) #11
  %9643 = call ptr @__errno_location() #12
  %9644 = load i32, ptr %9643, align 4, !tbaa !5
  %9645 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9632, ptr noundef @.str.5, i32 noundef %9633, ptr noundef @.str.72, ptr noundef @.str.1, i32 noundef 352, ptr noundef %9636, ptr noundef %9639, ptr noundef %9642, i32 noundef %9644) #11
  br label %9646

9646:                                             ; preds = %9629, %9612
  call void @llvm.lifetime.end.p0(i64 4, ptr %252) #11
  br label %9647

9647:                                             ; preds = %9646
  br label %9648

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

9649:                                             ; No predecessors!
  br label %9650

9650:                                             ; preds = %9649
  br label %9651

9651:                                             ; preds = %9650, %9592
  br label %9652

9652:                                             ; preds = %9651
  br label %9653

9653:                                             ; preds = %9652
  br label %9654

9654:                                             ; preds = %9653
  %9655 = load i32, ptr @test_count, align 4, !tbaa !5
  %9656 = add nsw i32 %9655, 1
  store i32 %9656, ptr @test_count, align 4, !tbaa !5
  %9657 = getelementptr inbounds %struct.s2n_blob, ptr %247, i32 0, i32 1
  %9658 = load i32, ptr %9657, align 8, !tbaa !76
  %9659 = icmp ule i32 %9658, 48
  br i1 %9659, label %9713, label %9660

9660:                                             ; preds = %9654
  br label %9661

9661:                                             ; preds = %9660
  br label %9662

9662:                                             ; preds = %9661
  call void @llvm.lifetime.start.p0(i64 4, ptr %253) #11
  %9663 = call ptr @__errno_location() #12
  %9664 = load i32, ptr %9663, align 4, !tbaa !5
  store i32 %9664, ptr %253, align 4, !tbaa !5
  %9665 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9666 = call i32 @s2n_print_stacktrace(ptr noundef %9665)
  %9667 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9668 = trunc i8 %9667 to i1
  br i1 %9668, label %9669, label %9691

9669:                                             ; preds = %9662
  %9670 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9671 = call i32 @fileno(ptr noundef %9670) #11
  %9672 = call i32 @isatty(i32 noundef %9671) #11
  %9673 = icmp ne i32 %9672, 0
  br i1 %9673, label %9674, label %9691

9674:                                             ; preds = %9669
  %9675 = load i32, ptr %253, align 4, !tbaa !5
  %9676 = call ptr @__errno_location() #12
  store i32 %9675, ptr %9676, align 4, !tbaa !5
  %9677 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9678 = load i32, ptr @test_count, align 4, !tbaa !5
  %9679 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9680 = load i32, ptr %9679, align 4, !tbaa !5
  %9681 = call ptr @s2n_strerror(i32 noundef %9680, ptr noundef @.str.4)
  %9682 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9683 = load i32, ptr %9682, align 4, !tbaa !5
  %9684 = call ptr @s2n_strerror_debug(i32 noundef %9683, ptr noundef @.str.4)
  %9685 = call ptr @__errno_location() #12
  %9686 = load i32, ptr %9685, align 4, !tbaa !5
  %9687 = call ptr @strerror(i32 noundef %9686) #11
  %9688 = call ptr @__errno_location() #12
  %9689 = load i32, ptr %9688, align 4, !tbaa !5
  %9690 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9677, ptr noundef @.str.2, i32 noundef %9678, ptr noundef @.str.73, ptr noundef @.str.1, i32 noundef 353, ptr noundef %9681, ptr noundef %9684, ptr noundef %9687, i32 noundef %9689) #11
  br label %9708

9691:                                             ; preds = %9669, %9662
  %9692 = load i32, ptr %253, align 4, !tbaa !5
  %9693 = call ptr @__errno_location() #12
  store i32 %9692, ptr %9693, align 4, !tbaa !5
  %9694 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9695 = load i32, ptr @test_count, align 4, !tbaa !5
  %9696 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9697 = load i32, ptr %9696, align 4, !tbaa !5
  %9698 = call ptr @s2n_strerror(i32 noundef %9697, ptr noundef @.str.4)
  %9699 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9700 = load i32, ptr %9699, align 4, !tbaa !5
  %9701 = call ptr @s2n_strerror_debug(i32 noundef %9700, ptr noundef @.str.4)
  %9702 = call ptr @__errno_location() #12
  %9703 = load i32, ptr %9702, align 4, !tbaa !5
  %9704 = call ptr @strerror(i32 noundef %9703) #11
  %9705 = call ptr @__errno_location() #12
  %9706 = load i32, ptr %9705, align 4, !tbaa !5
  %9707 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9694, ptr noundef @.str.5, i32 noundef %9695, ptr noundef @.str.73, ptr noundef @.str.1, i32 noundef 353, ptr noundef %9698, ptr noundef %9701, ptr noundef %9704, i32 noundef %9706) #11
  br label %9708

9708:                                             ; preds = %9691, %9674
  call void @llvm.lifetime.end.p0(i64 4, ptr %253) #11
  br label %9709

9709:                                             ; preds = %9708
  br label %9710

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

9711:                                             ; No predecessors!
  br label %9712

9712:                                             ; preds = %9711
  br label %9713

9713:                                             ; preds = %9712, %9654
  br label %9714

9714:                                             ; preds = %9713
  br label %9715

9715:                                             ; preds = %9714
  br label %9716

9716:                                             ; preds = %9715
  %9717 = getelementptr inbounds %struct.s2n_blob, ptr %247, i32 0, i32 1
  %9718 = load i32, ptr %9717, align 8, !tbaa !76
  %9719 = icmp ne i32 %9718, 0
  br i1 %9719, label %9720, label %9789

9720:                                             ; preds = %9716
  br label %9721

9721:                                             ; preds = %9720
  %9722 = load i32, ptr @test_count, align 4, !tbaa !5
  %9723 = add nsw i32 %9722, 1
  store i32 %9723, ptr @test_count, align 4, !tbaa !5
  %9724 = getelementptr inbounds %struct.s2n_blob, ptr %247, i32 0, i32 0
  %9725 = load ptr, ptr %9724, align 8, !tbaa !71
  %9726 = getelementptr inbounds %struct.s2n_blob, ptr %13, i32 0, i32 0
  %9727 = load ptr, ptr %9726, align 8, !tbaa !71
  %9728 = getelementptr inbounds %struct.s2n_blob, ptr %247, i32 0, i32 1
  %9729 = load i32, ptr %9728, align 8, !tbaa !76
  %9730 = zext i32 %9729 to i64
  %9731 = call i32 @memcmp(ptr noundef %9725, ptr noundef %9727, i64 noundef %9730) #14
  %9732 = icmp eq i32 %9731, 0
  br i1 %9732, label %9786, label %9733

9733:                                             ; preds = %9721
  br label %9734

9734:                                             ; preds = %9733
  br label %9735

9735:                                             ; preds = %9734
  call void @llvm.lifetime.start.p0(i64 4, ptr %254) #11
  %9736 = call ptr @__errno_location() #12
  %9737 = load i32, ptr %9736, align 4, !tbaa !5
  store i32 %9737, ptr %254, align 4, !tbaa !5
  %9738 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9739 = call i32 @s2n_print_stacktrace(ptr noundef %9738)
  %9740 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9741 = trunc i8 %9740 to i1
  br i1 %9741, label %9742, label %9764

9742:                                             ; preds = %9735
  %9743 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9744 = call i32 @fileno(ptr noundef %9743) #11
  %9745 = call i32 @isatty(i32 noundef %9744) #11
  %9746 = icmp ne i32 %9745, 0
  br i1 %9746, label %9747, label %9764

9747:                                             ; preds = %9742
  %9748 = load i32, ptr %254, align 4, !tbaa !5
  %9749 = call ptr @__errno_location() #12
  store i32 %9748, ptr %9749, align 4, !tbaa !5
  %9750 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9751 = load i32, ptr @test_count, align 4, !tbaa !5
  %9752 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9753 = load i32, ptr %9752, align 4, !tbaa !5
  %9754 = call ptr @s2n_strerror(i32 noundef %9753, ptr noundef @.str.4)
  %9755 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9756 = load i32, ptr %9755, align 4, !tbaa !5
  %9757 = call ptr @s2n_strerror_debug(i32 noundef %9756, ptr noundef @.str.4)
  %9758 = call ptr @__errno_location() #12
  %9759 = load i32, ptr %9758, align 4, !tbaa !5
  %9760 = call ptr @strerror(i32 noundef %9759) #11
  %9761 = call ptr @__errno_location() #12
  %9762 = load i32, ptr %9761, align 4, !tbaa !5
  %9763 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9750, ptr noundef @.str.2, i32 noundef %9751, ptr noundef @.str.74, ptr noundef @.str.1, i32 noundef 354, ptr noundef %9754, ptr noundef %9757, ptr noundef %9760, i32 noundef %9762) #11
  br label %9781

9764:                                             ; preds = %9742, %9735
  %9765 = load i32, ptr %254, align 4, !tbaa !5
  %9766 = call ptr @__errno_location() #12
  store i32 %9765, ptr %9766, align 4, !tbaa !5
  %9767 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9768 = load i32, ptr @test_count, align 4, !tbaa !5
  %9769 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9770 = load i32, ptr %9769, align 4, !tbaa !5
  %9771 = call ptr @s2n_strerror(i32 noundef %9770, ptr noundef @.str.4)
  %9772 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9773 = load i32, ptr %9772, align 4, !tbaa !5
  %9774 = call ptr @s2n_strerror_debug(i32 noundef %9773, ptr noundef @.str.4)
  %9775 = call ptr @__errno_location() #12
  %9776 = load i32, ptr %9775, align 4, !tbaa !5
  %9777 = call ptr @strerror(i32 noundef %9776) #11
  %9778 = call ptr @__errno_location() #12
  %9779 = load i32, ptr %9778, align 4, !tbaa !5
  %9780 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9767, ptr noundef @.str.5, i32 noundef %9768, ptr noundef @.str.74, ptr noundef @.str.1, i32 noundef 354, ptr noundef %9771, ptr noundef %9774, ptr noundef %9777, i32 noundef %9779) #11
  br label %9781

9781:                                             ; preds = %9764, %9747
  call void @llvm.lifetime.end.p0(i64 4, ptr %254) #11
  br label %9782

9782:                                             ; preds = %9781
  br label %9783

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

9784:                                             ; No predecessors!
  br label %9785

9785:                                             ; preds = %9784
  br label %9786

9786:                                             ; preds = %9785, %9721
  br label %9787

9787:                                             ; preds = %9786
  br label %9788

9788:                                             ; preds = %9787
  br label %9789

9789:                                             ; preds = %9788, %9716
  br label %9790

9790:                                             ; preds = %9789
  br label %9791

9791:                                             ; preds = %9790
  call void @llvm.lifetime.end.p0(i64 48, ptr %248) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %247) #11
  %9792 = call i32 @s2n_connection_ptr_free(ptr noundef %244)
  %9793 = getelementptr inbounds %struct.s2n_result, ptr %255, i32 0, i32 0
  store i32 %9792, ptr %9793, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %244) #11
  br label %9794

9794:                                             ; preds = %9791
  br label %9795

9795:                                             ; preds = %9794
  br label %9796

9796:                                             ; preds = %9795
  %9797 = load i32, ptr @test_count, align 4, !tbaa !5
  %9798 = add nsw i32 %9797, 1
  store i32 %9798, ptr @test_count, align 4, !tbaa !5
  %9799 = call i32 @s2n_tls13_secrets_update(ptr noundef null)
  %9800 = getelementptr inbounds %struct.s2n_result, ptr %256, i32 0, i32 0
  store i32 %9799, ptr %9800, align 4
  %9801 = getelementptr inbounds %struct.s2n_result, ptr %256, i32 0, i32 0
  %9802 = load i32, ptr %9801, align 4
  %9803 = call zeroext i1 @s2n_result_is_error(i32 %9802)
  br i1 %9803, label %9857, label %9804

9804:                                             ; preds = %9796
  br label %9805

9805:                                             ; preds = %9804
  br label %9806

9806:                                             ; preds = %9805
  call void @llvm.lifetime.start.p0(i64 4, ptr %257) #11
  %9807 = call ptr @__errno_location() #12
  %9808 = load i32, ptr %9807, align 4, !tbaa !5
  store i32 %9808, ptr %257, align 4, !tbaa !5
  %9809 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9810 = call i32 @s2n_print_stacktrace(ptr noundef %9809)
  %9811 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9812 = trunc i8 %9811 to i1
  br i1 %9812, label %9813, label %9835

9813:                                             ; preds = %9806
  %9814 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9815 = call i32 @fileno(ptr noundef %9814) #11
  %9816 = call i32 @isatty(i32 noundef %9815) #11
  %9817 = icmp ne i32 %9816, 0
  br i1 %9817, label %9818, label %9835

9818:                                             ; preds = %9813
  %9819 = load i32, ptr %257, align 4, !tbaa !5
  %9820 = call ptr @__errno_location() #12
  store i32 %9819, ptr %9820, align 4, !tbaa !5
  %9821 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9822 = load i32, ptr @test_count, align 4, !tbaa !5
  %9823 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9824 = load i32, ptr %9823, align 4, !tbaa !5
  %9825 = call ptr @s2n_strerror(i32 noundef %9824, ptr noundef @.str.4)
  %9826 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9827 = load i32, ptr %9826, align 4, !tbaa !5
  %9828 = call ptr @s2n_strerror_debug(i32 noundef %9827, ptr noundef @.str.4)
  %9829 = call ptr @__errno_location() #12
  %9830 = load i32, ptr %9829, align 4, !tbaa !5
  %9831 = call ptr @strerror(i32 noundef %9830) #11
  %9832 = call ptr @__errno_location() #12
  %9833 = load i32, ptr %9832, align 4, !tbaa !5
  %9834 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9821, ptr noundef @.str.2, i32 noundef %9822, ptr noundef @.str.75, ptr noundef @.str.1, i32 noundef 361, ptr noundef %9825, ptr noundef %9828, ptr noundef %9831, i32 noundef %9833) #11
  br label %9852

9835:                                             ; preds = %9813, %9806
  %9836 = load i32, ptr %257, align 4, !tbaa !5
  %9837 = call ptr @__errno_location() #12
  store i32 %9836, ptr %9837, align 4, !tbaa !5
  %9838 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9839 = load i32, ptr @test_count, align 4, !tbaa !5
  %9840 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9841 = load i32, ptr %9840, align 4, !tbaa !5
  %9842 = call ptr @s2n_strerror(i32 noundef %9841, ptr noundef @.str.4)
  %9843 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9844 = load i32, ptr %9843, align 4, !tbaa !5
  %9845 = call ptr @s2n_strerror_debug(i32 noundef %9844, ptr noundef @.str.4)
  %9846 = call ptr @__errno_location() #12
  %9847 = load i32, ptr %9846, align 4, !tbaa !5
  %9848 = call ptr @strerror(i32 noundef %9847) #11
  %9849 = call ptr @__errno_location() #12
  %9850 = load i32, ptr %9849, align 4, !tbaa !5
  %9851 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9838, ptr noundef @.str.5, i32 noundef %9839, ptr noundef @.str.75, ptr noundef @.str.1, i32 noundef 361, ptr noundef %9842, ptr noundef %9845, ptr noundef %9848, i32 noundef %9850) #11
  br label %9852

9852:                                             ; preds = %9835, %9818
  call void @llvm.lifetime.end.p0(i64 4, ptr %257) #11
  br label %9853

9853:                                             ; preds = %9852
  br label %9854

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

9855:                                             ; No predecessors!
  br label %9856

9856:                                             ; preds = %9855
  br label %9857

9857:                                             ; preds = %9856, %9796
  br label %9858

9858:                                             ; preds = %9857
  br label %9859

9859:                                             ; preds = %9858
  br label %9860

9860:                                             ; preds = %9859
  %9861 = load i32, ptr @test_count, align 4, !tbaa !5
  %9862 = add nsw i32 %9861, 1
  store i32 %9862, ptr @test_count, align 4, !tbaa !5
  %9863 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9864 = load i32, ptr %9863, align 4, !tbaa !5
  %9865 = icmp eq i32 %9864, 402653193
  br i1 %9865, label %9919, label %9866

9866:                                             ; preds = %9860
  br label %9867

9867:                                             ; preds = %9866
  br label %9868

9868:                                             ; preds = %9867
  call void @llvm.lifetime.start.p0(i64 4, ptr %258) #11
  %9869 = call ptr @__errno_location() #12
  %9870 = load i32, ptr %9869, align 4, !tbaa !5
  store i32 %9870, ptr %258, align 4, !tbaa !5
  %9871 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9872 = call i32 @s2n_print_stacktrace(ptr noundef %9871)
  %9873 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9874 = trunc i8 %9873 to i1
  br i1 %9874, label %9875, label %9897

9875:                                             ; preds = %9868
  %9876 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9877 = call i32 @fileno(ptr noundef %9876) #11
  %9878 = call i32 @isatty(i32 noundef %9877) #11
  %9879 = icmp ne i32 %9878, 0
  br i1 %9879, label %9880, label %9897

9880:                                             ; preds = %9875
  %9881 = load i32, ptr %258, align 4, !tbaa !5
  %9882 = call ptr @__errno_location() #12
  store i32 %9881, ptr %9882, align 4, !tbaa !5
  %9883 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9884 = load i32, ptr @test_count, align 4, !tbaa !5
  %9885 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9886 = load i32, ptr %9885, align 4, !tbaa !5
  %9887 = call ptr @s2n_strerror(i32 noundef %9886, ptr noundef @.str.4)
  %9888 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9889 = load i32, ptr %9888, align 4, !tbaa !5
  %9890 = call ptr @s2n_strerror_debug(i32 noundef %9889, ptr noundef @.str.4)
  %9891 = call ptr @__errno_location() #12
  %9892 = load i32, ptr %9891, align 4, !tbaa !5
  %9893 = call ptr @strerror(i32 noundef %9892) #11
  %9894 = call ptr @__errno_location() #12
  %9895 = load i32, ptr %9894, align 4, !tbaa !5
  %9896 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9883, ptr noundef @.str.2, i32 noundef %9884, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 361, ptr noundef %9887, ptr noundef %9890, ptr noundef %9893, i32 noundef %9895) #11
  br label %9914

9897:                                             ; preds = %9875, %9868
  %9898 = load i32, ptr %258, align 4, !tbaa !5
  %9899 = call ptr @__errno_location() #12
  store i32 %9898, ptr %9899, align 4, !tbaa !5
  %9900 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9901 = load i32, ptr @test_count, align 4, !tbaa !5
  %9902 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9903 = load i32, ptr %9902, align 4, !tbaa !5
  %9904 = call ptr @s2n_strerror(i32 noundef %9903, ptr noundef @.str.4)
  %9905 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9906 = load i32, ptr %9905, align 4, !tbaa !5
  %9907 = call ptr @s2n_strerror_debug(i32 noundef %9906, ptr noundef @.str.4)
  %9908 = call ptr @__errno_location() #12
  %9909 = load i32, ptr %9908, align 4, !tbaa !5
  %9910 = call ptr @strerror(i32 noundef %9909) #11
  %9911 = call ptr @__errno_location() #12
  %9912 = load i32, ptr %9911, align 4, !tbaa !5
  %9913 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9900, ptr noundef @.str.5, i32 noundef %9901, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 361, ptr noundef %9904, ptr noundef %9907, ptr noundef %9910, i32 noundef %9912) #11
  br label %9914

9914:                                             ; preds = %9897, %9880
  call void @llvm.lifetime.end.p0(i64 4, ptr %258) #11
  br label %9915

9915:                                             ; preds = %9914
  br label %9916

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

9917:                                             ; No predecessors!
  br label %9918

9918:                                             ; preds = %9917
  br label %9919

9919:                                             ; preds = %9918, %9860
  br label %9920

9920:                                             ; preds = %9919
  br label %9921

9921:                                             ; preds = %9920
  br label %9922

9922:                                             ; preds = %9921
  %9923 = load i32, ptr @test_count, align 4, !tbaa !5
  %9924 = add nsw i32 %9923, 1
  store i32 %9924, ptr @test_count, align 4, !tbaa !5
  %9925 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9926 = load i32, ptr %9925, align 4, !tbaa !5
  %9927 = call ptr @s2n_strerror_debug(i32 noundef %9926, ptr noundef @.str.4)
  %9928 = icmp eq ptr %9927, null
  br i1 %9928, label %9929, label %9982

9929:                                             ; preds = %9922
  br label %9930

9930:                                             ; preds = %9929
  br label %9931

9931:                                             ; preds = %9930
  call void @llvm.lifetime.start.p0(i64 4, ptr %259) #11
  %9932 = call ptr @__errno_location() #12
  %9933 = load i32, ptr %9932, align 4, !tbaa !5
  store i32 %9933, ptr %259, align 4, !tbaa !5
  %9934 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9935 = call i32 @s2n_print_stacktrace(ptr noundef %9934)
  %9936 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9937 = trunc i8 %9936 to i1
  br i1 %9937, label %9938, label %9960

9938:                                             ; preds = %9931
  %9939 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9940 = call i32 @fileno(ptr noundef %9939) #11
  %9941 = call i32 @isatty(i32 noundef %9940) #11
  %9942 = icmp ne i32 %9941, 0
  br i1 %9942, label %9943, label %9960

9943:                                             ; preds = %9938
  %9944 = load i32, ptr %259, align 4, !tbaa !5
  %9945 = call ptr @__errno_location() #12
  store i32 %9944, ptr %9945, align 4, !tbaa !5
  %9946 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9947 = load i32, ptr @test_count, align 4, !tbaa !5
  %9948 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9949 = load i32, ptr %9948, align 4, !tbaa !5
  %9950 = call ptr @s2n_strerror(i32 noundef %9949, ptr noundef @.str.4)
  %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_debug(i32 noundef %9952, ptr noundef @.str.4)
  %9954 = call ptr @__errno_location() #12
  %9955 = load i32, ptr %9954, align 4, !tbaa !5
  %9956 = call ptr @strerror(i32 noundef %9955) #11
  %9957 = call ptr @__errno_location() #12
  %9958 = load i32, ptr %9957, align 4, !tbaa !5
  %9959 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9946, ptr noundef @.str.2, i32 noundef %9947, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 361, ptr noundef %9950, ptr noundef %9953, ptr noundef %9956, i32 noundef %9958) #11
  br label %9977

9960:                                             ; preds = %9938, %9931
  %9961 = load i32, ptr %259, align 4, !tbaa !5
  %9962 = call ptr @__errno_location() #12
  store i32 %9961, ptr %9962, align 4, !tbaa !5
  %9963 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9964 = load i32, ptr @test_count, align 4, !tbaa !5
  %9965 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9966 = load i32, ptr %9965, align 4, !tbaa !5
  %9967 = call ptr @s2n_strerror(i32 noundef %9966, ptr noundef @.str.4)
  %9968 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9969 = load i32, ptr %9968, align 4, !tbaa !5
  %9970 = call ptr @s2n_strerror_debug(i32 noundef %9969, ptr noundef @.str.4)
  %9971 = call ptr @__errno_location() #12
  %9972 = load i32, ptr %9971, align 4, !tbaa !5
  %9973 = call ptr @strerror(i32 noundef %9972) #11
  %9974 = call ptr @__errno_location() #12
  %9975 = load i32, ptr %9974, align 4, !tbaa !5
  %9976 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9963, ptr noundef @.str.5, i32 noundef %9964, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 361, ptr noundef %9967, ptr noundef %9970, ptr noundef %9973, i32 noundef %9975) #11
  br label %9977

9977:                                             ; preds = %9960, %9943
  call void @llvm.lifetime.end.p0(i64 4, ptr %259) #11
  br label %9978

9978:                                             ; preds = %9977
  br label %9979

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

9980:                                             ; No predecessors!
  br label %9981

9981:                                             ; preds = %9980
  br label %9982

9982:                                             ; preds = %9981, %9922
  br label %9983

9983:                                             ; preds = %9982
  br label %9984

9984:                                             ; preds = %9983
  br label %9985

9985:                                             ; preds = %9984
  br label %9986

9986:                                             ; preds = %9985
  br label %9987

9987:                                             ; preds = %9986
  %9988 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %9988, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %9989 = call ptr @__errno_location() #12
  store i32 0, ptr %9989, align 4, !tbaa !5
  br label %9990

9990:                                             ; preds = %9987
  br label %9991

9991:                                             ; preds = %9990
  br label %9992

9992:                                             ; preds = %9991
  br label %9993

9993:                                             ; preds = %9992
  call void @llvm.lifetime.start.p0(i64 8, ptr %260) #11
  %9994 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %9994, ptr %260, align 8, !tbaa !9
  %9995 = load ptr, ptr %260, align 8, !tbaa !9
  %9996 = getelementptr inbounds %struct.s2n_connection, ptr %9995, i32 0, i32 27
  %9997 = load ptr, ptr %9996, align 8, !tbaa !39
  %9998 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %9997, i32 0, i32 0
  store ptr @s2n_tls13_aes_128_gcm_sha256, ptr %9998, align 8, !tbaa !64
  %9999 = load ptr, ptr %260, align 8, !tbaa !9
  %10000 = getelementptr inbounds %struct.s2n_connection, ptr %9999, i32 0, i32 23
  store i8 34, ptr %10000, align 4, !tbaa !72
  br label %10001

10001:                                            ; preds = %9993
  br label %10002

10002:                                            ; preds = %10001
  %10003 = load i32, ptr @test_count, align 4, !tbaa !5
  %10004 = add nsw i32 %10003, 1
  store i32 %10004, ptr @test_count, align 4, !tbaa !5
  %10005 = load ptr, ptr %260, align 8, !tbaa !9
  %10006 = getelementptr inbounds %struct.s2n_connection, ptr %10005, i32 0, i32 28
  %10007 = getelementptr inbounds %struct.s2n_secrets, ptr %10006, i32 0, i32 0
  %10008 = getelementptr inbounds %struct.s2n_tls13_secrets, ptr %10007, i32 0, i32 1
  %10009 = getelementptr inbounds [48 x i8], ptr %10008, i64 0, i64 0
  %10010 = getelementptr inbounds [48 x i8], ptr %9, i64 0, i64 0
  %10011 = call i32 @memcmp(ptr noundef %10009, ptr noundef %10010, i64 noundef 48) #14
  %10012 = icmp eq i32 %10011, 0
  br i1 %10012, label %10066, label %10013

10013:                                            ; preds = %10002
  br label %10014

10014:                                            ; preds = %10013
  br label %10015

10015:                                            ; preds = %10014
  call void @llvm.lifetime.start.p0(i64 4, ptr %261) #11
  %10016 = call ptr @__errno_location() #12
  %10017 = load i32, ptr %10016, align 4, !tbaa !5
  store i32 %10017, ptr %261, align 4, !tbaa !5
  %10018 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10019 = call i32 @s2n_print_stacktrace(ptr noundef %10018)
  %10020 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10021 = trunc i8 %10020 to i1
  br i1 %10021, label %10022, label %10044

10022:                                            ; preds = %10015
  %10023 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10024 = call i32 @fileno(ptr noundef %10023) #11
  %10025 = call i32 @isatty(i32 noundef %10024) #11
  %10026 = icmp ne i32 %10025, 0
  br i1 %10026, label %10027, label %10044

10027:                                            ; preds = %10022
  %10028 = load i32, ptr %261, align 4, !tbaa !5
  %10029 = call ptr @__errno_location() #12
  store i32 %10028, ptr %10029, align 4, !tbaa !5
  %10030 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10031 = load i32, ptr @test_count, align 4, !tbaa !5
  %10032 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10033 = load i32, ptr %10032, align 4, !tbaa !5
  %10034 = call ptr @s2n_strerror(i32 noundef %10033, ptr noundef @.str.4)
  %10035 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10036 = load i32, ptr %10035, align 4, !tbaa !5
  %10037 = call ptr @s2n_strerror_debug(i32 noundef %10036, ptr noundef @.str.4)
  %10038 = call ptr @__errno_location() #12
  %10039 = load i32, ptr %10038, align 4, !tbaa !5
  %10040 = call ptr @strerror(i32 noundef %10039) #11
  %10041 = call ptr @__errno_location() #12
  %10042 = load i32, ptr %10041, align 4, !tbaa !5
  %10043 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10030, ptr noundef @.str.2, i32 noundef %10031, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 370, ptr noundef %10034, ptr noundef %10037, ptr noundef %10040, i32 noundef %10042) #11
  br label %10061

10044:                                            ; preds = %10022, %10015
  %10045 = load i32, ptr %261, align 4, !tbaa !5
  %10046 = call ptr @__errno_location() #12
  store i32 %10045, ptr %10046, align 4, !tbaa !5
  %10047 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10048 = load i32, ptr @test_count, align 4, !tbaa !5
  %10049 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10050 = load i32, ptr %10049, align 4, !tbaa !5
  %10051 = call ptr @s2n_strerror(i32 noundef %10050, ptr noundef @.str.4)
  %10052 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10053 = load i32, ptr %10052, align 4, !tbaa !5
  %10054 = call ptr @s2n_strerror_debug(i32 noundef %10053, ptr noundef @.str.4)
  %10055 = call ptr @__errno_location() #12
  %10056 = load i32, ptr %10055, align 4, !tbaa !5
  %10057 = call ptr @strerror(i32 noundef %10056) #11
  %10058 = call ptr @__errno_location() #12
  %10059 = load i32, ptr %10058, align 4, !tbaa !5
  %10060 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10047, ptr noundef @.str.5, i32 noundef %10048, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 370, ptr noundef %10051, ptr noundef %10054, ptr noundef %10057, i32 noundef %10059) #11
  br label %10061

10061:                                            ; preds = %10044, %10027
  call void @llvm.lifetime.end.p0(i64 4, ptr %261) #11
  br label %10062

10062:                                            ; preds = %10061
  br label %10063

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

10064:                                            ; No predecessors!
  br label %10065

10065:                                            ; preds = %10064
  br label %10066

10066:                                            ; preds = %10065, %10002
  br label %10067

10067:                                            ; preds = %10066
  br label %10068

10068:                                            ; preds = %10067
  br label %10069

10069:                                            ; preds = %10068
  br label %10070

10070:                                            ; preds = %10069
  %10071 = load ptr, ptr %260, align 8, !tbaa !9
  %10072 = getelementptr inbounds %struct.s2n_connection, ptr %10071, i32 0, i32 89
  store i32 2, ptr %10072, align 8, !tbaa !77
  br label %10073

10073:                                            ; preds = %10070
  %10074 = load i32, ptr @test_count, align 4, !tbaa !5
  %10075 = add nsw i32 %10074, 1
  store i32 %10075, ptr @test_count, align 4, !tbaa !5
  %10076 = load ptr, ptr %260, align 8, !tbaa !9
  %10077 = call i32 @s2n_tls13_secrets_update(ptr noundef %10076)
  %10078 = getelementptr inbounds %struct.s2n_result, ptr %262, i32 0, i32 0
  store i32 %10077, ptr %10078, align 4
  %10079 = getelementptr inbounds %struct.s2n_result, ptr %262, i32 0, i32 0
  %10080 = load i32, ptr %10079, align 4
  %10081 = call zeroext i1 @s2n_result_is_ok(i32 %10080)
  br i1 %10081, label %10135, label %10082

10082:                                            ; preds = %10073
  br label %10083

10083:                                            ; preds = %10082
  br label %10084

10084:                                            ; preds = %10083
  call void @llvm.lifetime.start.p0(i64 4, ptr %263) #11
  %10085 = call ptr @__errno_location() #12
  %10086 = load i32, ptr %10085, align 4, !tbaa !5
  store i32 %10086, ptr %263, align 4, !tbaa !5
  %10087 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10088 = call i32 @s2n_print_stacktrace(ptr noundef %10087)
  %10089 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10090 = trunc i8 %10089 to i1
  br i1 %10090, label %10091, label %10113

10091:                                            ; preds = %10084
  %10092 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10093 = call i32 @fileno(ptr noundef %10092) #11
  %10094 = call i32 @isatty(i32 noundef %10093) #11
  %10095 = icmp ne i32 %10094, 0
  br i1 %10095, label %10096, label %10113

10096:                                            ; preds = %10091
  %10097 = load i32, ptr %263, align 4, !tbaa !5
  %10098 = call ptr @__errno_location() #12
  store i32 %10097, ptr %10098, align 4, !tbaa !5
  %10099 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10100 = load i32, ptr @test_count, align 4, !tbaa !5
  %10101 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10102 = load i32, ptr %10101, align 4, !tbaa !5
  %10103 = call ptr @s2n_strerror(i32 noundef %10102, ptr noundef @.str.4)
  %10104 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10105 = load i32, ptr %10104, align 4, !tbaa !5
  %10106 = call ptr @s2n_strerror_debug(i32 noundef %10105, ptr noundef @.str.4)
  %10107 = call ptr @__errno_location() #12
  %10108 = load i32, ptr %10107, align 4, !tbaa !5
  %10109 = call ptr @strerror(i32 noundef %10108) #11
  %10110 = call ptr @__errno_location() #12
  %10111 = load i32, ptr %10110, align 4, !tbaa !5
  %10112 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10099, ptr noundef @.str.2, i32 noundef %10100, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 374, ptr noundef %10103, ptr noundef %10106, ptr noundef %10109, i32 noundef %10111) #11
  br label %10130

10113:                                            ; preds = %10091, %10084
  %10114 = load i32, ptr %263, align 4, !tbaa !5
  %10115 = call ptr @__errno_location() #12
  store i32 %10114, ptr %10115, align 4, !tbaa !5
  %10116 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10117 = load i32, ptr @test_count, align 4, !tbaa !5
  %10118 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10119 = load i32, ptr %10118, align 4, !tbaa !5
  %10120 = call ptr @s2n_strerror(i32 noundef %10119, ptr noundef @.str.4)
  %10121 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10122 = load i32, ptr %10121, align 4, !tbaa !5
  %10123 = call ptr @s2n_strerror_debug(i32 noundef %10122, ptr noundef @.str.4)
  %10124 = call ptr @__errno_location() #12
  %10125 = load i32, ptr %10124, align 4, !tbaa !5
  %10126 = call ptr @strerror(i32 noundef %10125) #11
  %10127 = call ptr @__errno_location() #12
  %10128 = load i32, ptr %10127, align 4, !tbaa !5
  %10129 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10116, ptr noundef @.str.5, i32 noundef %10117, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 374, ptr noundef %10120, ptr noundef %10123, ptr noundef %10126, i32 noundef %10128) #11
  br label %10130

10130:                                            ; preds = %10113, %10096
  call void @llvm.lifetime.end.p0(i64 4, ptr %263) #11
  br label %10131

10131:                                            ; preds = %10130
  br label %10132

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

10133:                                            ; No predecessors!
  br label %10134

10134:                                            ; preds = %10133
  br label %10135

10135:                                            ; preds = %10134, %10073
  br label %10136

10136:                                            ; preds = %10135
  br label %10137

10137:                                            ; preds = %10136
  br label %10138

10138:                                            ; preds = %10137
  br label %10139

10139:                                            ; preds = %10138
  %10140 = load i32, ptr @test_count, align 4, !tbaa !5
  %10141 = add nsw i32 %10140, 1
  store i32 %10141, ptr @test_count, align 4, !tbaa !5
  %10142 = load ptr, ptr %260, align 8, !tbaa !9
  %10143 = getelementptr inbounds %struct.s2n_connection, ptr %10142, i32 0, i32 28
  %10144 = getelementptr inbounds %struct.s2n_secrets, ptr %10143, i32 0, i32 0
  %10145 = getelementptr inbounds %struct.s2n_tls13_secrets, ptr %10144, i32 0, i32 1
  %10146 = getelementptr inbounds [48 x i8], ptr %10145, i64 0, i64 0
  %10147 = getelementptr inbounds [48 x i8], ptr %9, i64 0, i64 0
  %10148 = call i32 @memcmp(ptr noundef %10146, ptr noundef %10147, i64 noundef 48) #14
  %10149 = icmp eq i32 %10148, 0
  br i1 %10149, label %10203, label %10150

10150:                                            ; preds = %10139
  br label %10151

10151:                                            ; preds = %10150
  br label %10152

10152:                                            ; preds = %10151
  call void @llvm.lifetime.start.p0(i64 4, ptr %264) #11
  %10153 = call ptr @__errno_location() #12
  %10154 = load i32, ptr %10153, align 4, !tbaa !5
  store i32 %10154, ptr %264, align 4, !tbaa !5
  %10155 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10156 = call i32 @s2n_print_stacktrace(ptr noundef %10155)
  %10157 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10158 = trunc i8 %10157 to i1
  br i1 %10158, label %10159, label %10181

10159:                                            ; preds = %10152
  %10160 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10161 = call i32 @fileno(ptr noundef %10160) #11
  %10162 = call i32 @isatty(i32 noundef %10161) #11
  %10163 = icmp ne i32 %10162, 0
  br i1 %10163, label %10164, label %10181

10164:                                            ; preds = %10159
  %10165 = load i32, ptr %264, align 4, !tbaa !5
  %10166 = call ptr @__errno_location() #12
  store i32 %10165, ptr %10166, align 4, !tbaa !5
  %10167 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10168 = load i32, ptr @test_count, align 4, !tbaa !5
  %10169 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10170 = load i32, ptr %10169, align 4, !tbaa !5
  %10171 = call ptr @s2n_strerror(i32 noundef %10170, ptr noundef @.str.4)
  %10172 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10173 = load i32, ptr %10172, align 4, !tbaa !5
  %10174 = call ptr @s2n_strerror_debug(i32 noundef %10173, ptr noundef @.str.4)
  %10175 = call ptr @__errno_location() #12
  %10176 = load i32, ptr %10175, align 4, !tbaa !5
  %10177 = call ptr @strerror(i32 noundef %10176) #11
  %10178 = call ptr @__errno_location() #12
  %10179 = load i32, ptr %10178, align 4, !tbaa !5
  %10180 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10167, ptr noundef @.str.2, i32 noundef %10168, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 376, ptr noundef %10171, ptr noundef %10174, ptr noundef %10177, i32 noundef %10179) #11
  br label %10198

10181:                                            ; preds = %10159, %10152
  %10182 = load i32, ptr %264, 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.5, i32 noundef %10185, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 376, ptr noundef %10188, ptr noundef %10191, ptr noundef %10194, i32 noundef %10196) #11
  br label %10198

10198:                                            ; preds = %10181, %10164
  call void @llvm.lifetime.end.p0(i64 4, ptr %264) #11
  br label %10199

10199:                                            ; preds = %10198
  br label %10200

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

10201:                                            ; No predecessors!
  br label %10202

10202:                                            ; preds = %10201
  br label %10203

10203:                                            ; preds = %10202, %10139
  br label %10204

10204:                                            ; preds = %10203
  br label %10205

10205:                                            ; preds = %10204
  br label %10206

10206:                                            ; preds = %10205
  br label %10207

10207:                                            ; preds = %10206
  %10208 = load ptr, ptr %260, align 8, !tbaa !9
  %10209 = getelementptr inbounds %struct.s2n_connection, ptr %10208, i32 0, i32 89
  store i32 4, ptr %10209, align 8, !tbaa !77
  br label %10210

10210:                                            ; preds = %10207
  %10211 = load i32, ptr @test_count, align 4, !tbaa !5
  %10212 = add nsw i32 %10211, 1
  store i32 %10212, ptr @test_count, align 4, !tbaa !5
  %10213 = load ptr, ptr %260, align 8, !tbaa !9
  %10214 = call i32 @s2n_tls13_secrets_update(ptr noundef %10213)
  %10215 = getelementptr inbounds %struct.s2n_result, ptr %265, i32 0, i32 0
  store i32 %10214, ptr %10215, align 4
  %10216 = getelementptr inbounds %struct.s2n_result, ptr %265, i32 0, i32 0
  %10217 = load i32, ptr %10216, align 4
  %10218 = call zeroext i1 @s2n_result_is_ok(i32 %10217)
  br i1 %10218, label %10272, label %10219

10219:                                            ; preds = %10210
  br label %10220

10220:                                            ; preds = %10219
  br label %10221

10221:                                            ; preds = %10220
  call void @llvm.lifetime.start.p0(i64 4, ptr %266) #11
  %10222 = call ptr @__errno_location() #12
  %10223 = load i32, ptr %10222, align 4, !tbaa !5
  store i32 %10223, ptr %266, align 4, !tbaa !5
  %10224 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10225 = call i32 @s2n_print_stacktrace(ptr noundef %10224)
  %10226 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10227 = trunc i8 %10226 to i1
  br i1 %10227, label %10228, label %10250

10228:                                            ; preds = %10221
  %10229 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10230 = call i32 @fileno(ptr noundef %10229) #11
  %10231 = call i32 @isatty(i32 noundef %10230) #11
  %10232 = icmp ne i32 %10231, 0
  br i1 %10232, label %10233, label %10250

10233:                                            ; preds = %10228
  %10234 = load i32, ptr %266, align 4, !tbaa !5
  %10235 = call ptr @__errno_location() #12
  store i32 %10234, ptr %10235, align 4, !tbaa !5
  %10236 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10237 = load i32, ptr @test_count, align 4, !tbaa !5
  %10238 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10239 = load i32, ptr %10238, align 4, !tbaa !5
  %10240 = call ptr @s2n_strerror(i32 noundef %10239, ptr noundef @.str.4)
  %10241 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10242 = load i32, ptr %10241, align 4, !tbaa !5
  %10243 = call ptr @s2n_strerror_debug(i32 noundef %10242, ptr noundef @.str.4)
  %10244 = call ptr @__errno_location() #12
  %10245 = load i32, ptr %10244, align 4, !tbaa !5
  %10246 = call ptr @strerror(i32 noundef %10245) #11
  %10247 = call ptr @__errno_location() #12
  %10248 = load i32, ptr %10247, align 4, !tbaa !5
  %10249 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10236, ptr noundef @.str.2, i32 noundef %10237, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 380, ptr noundef %10240, ptr noundef %10243, ptr noundef %10246, i32 noundef %10248) #11
  br label %10267

10250:                                            ; preds = %10228, %10221
  %10251 = load i32, ptr %266, 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.5, i32 noundef %10254, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 380, ptr noundef %10257, ptr noundef %10260, ptr noundef %10263, i32 noundef %10265) #11
  br label %10267

10267:                                            ; preds = %10250, %10233
  call void @llvm.lifetime.end.p0(i64 4, ptr %266) #11
  br label %10268

10268:                                            ; preds = %10267
  br label %10269

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

10270:                                            ; No predecessors!
  br label %10271

10271:                                            ; preds = %10270
  br label %10272

10272:                                            ; preds = %10271, %10210
  br label %10273

10273:                                            ; preds = %10272
  br label %10274

10274:                                            ; preds = %10273
  br label %10275

10275:                                            ; preds = %10274
  br label %10276

10276:                                            ; preds = %10275
  %10277 = load i32, ptr @test_count, align 4, !tbaa !5
  %10278 = add nsw i32 %10277, 1
  store i32 %10278, ptr @test_count, align 4, !tbaa !5
  %10279 = load ptr, ptr %260, align 8, !tbaa !9
  %10280 = getelementptr inbounds %struct.s2n_connection, ptr %10279, i32 0, i32 28
  %10281 = getelementptr inbounds %struct.s2n_secrets, ptr %10280, i32 0, i32 0
  %10282 = getelementptr inbounds %struct.s2n_tls13_secrets, ptr %10281, i32 0, i32 1
  %10283 = getelementptr inbounds [48 x i8], ptr %10282, i64 0, i64 0
  %10284 = getelementptr inbounds [48 x i8], ptr %9, i64 0, i64 0
  %10285 = call i32 @memcmp(ptr noundef %10283, ptr noundef %10284, i64 noundef 48) #14
  %10286 = icmp eq i32 %10285, 0
  br i1 %10286, label %10340, label %10287

10287:                                            ; preds = %10276
  br label %10288

10288:                                            ; preds = %10287
  br label %10289

10289:                                            ; preds = %10288
  call void @llvm.lifetime.start.p0(i64 4, ptr %267) #11
  %10290 = call ptr @__errno_location() #12
  %10291 = load i32, ptr %10290, align 4, !tbaa !5
  store i32 %10291, ptr %267, align 4, !tbaa !5
  %10292 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10293 = call i32 @s2n_print_stacktrace(ptr noundef %10292)
  %10294 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10295 = trunc i8 %10294 to i1
  br i1 %10295, label %10296, label %10318

10296:                                            ; preds = %10289
  %10297 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10298 = call i32 @fileno(ptr noundef %10297) #11
  %10299 = call i32 @isatty(i32 noundef %10298) #11
  %10300 = icmp ne i32 %10299, 0
  br i1 %10300, label %10301, label %10318

10301:                                            ; preds = %10296
  %10302 = load i32, ptr %267, align 4, !tbaa !5
  %10303 = call ptr @__errno_location() #12
  store i32 %10302, ptr %10303, align 4, !tbaa !5
  %10304 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10305 = load i32, ptr @test_count, align 4, !tbaa !5
  %10306 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10307 = load i32, ptr %10306, align 4, !tbaa !5
  %10308 = call ptr @s2n_strerror(i32 noundef %10307, ptr noundef @.str.4)
  %10309 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10310 = load i32, ptr %10309, align 4, !tbaa !5
  %10311 = call ptr @s2n_strerror_debug(i32 noundef %10310, ptr noundef @.str.4)
  %10312 = call ptr @__errno_location() #12
  %10313 = load i32, ptr %10312, align 4, !tbaa !5
  %10314 = call ptr @strerror(i32 noundef %10313) #11
  %10315 = call ptr @__errno_location() #12
  %10316 = load i32, ptr %10315, align 4, !tbaa !5
  %10317 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10304, ptr noundef @.str.2, i32 noundef %10305, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 382, ptr noundef %10308, ptr noundef %10311, ptr noundef %10314, i32 noundef %10316) #11
  br label %10335

10318:                                            ; preds = %10296, %10289
  %10319 = load i32, ptr %267, align 4, !tbaa !5
  %10320 = call ptr @__errno_location() #12
  store i32 %10319, ptr %10320, align 4, !tbaa !5
  %10321 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10322 = load i32, ptr @test_count, align 4, !tbaa !5
  %10323 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10324 = load i32, ptr %10323, align 4, !tbaa !5
  %10325 = call ptr @s2n_strerror(i32 noundef %10324, ptr noundef @.str.4)
  %10326 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10327 = load i32, ptr %10326, align 4, !tbaa !5
  %10328 = call ptr @s2n_strerror_debug(i32 noundef %10327, ptr noundef @.str.4)
  %10329 = call ptr @__errno_location() #12
  %10330 = load i32, ptr %10329, align 4, !tbaa !5
  %10331 = call ptr @strerror(i32 noundef %10330) #11
  %10332 = call ptr @__errno_location() #12
  %10333 = load i32, ptr %10332, align 4, !tbaa !5
  %10334 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10321, ptr noundef @.str.5, i32 noundef %10322, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 382, ptr noundef %10325, ptr noundef %10328, ptr noundef %10331, i32 noundef %10333) #11
  br label %10335

10335:                                            ; preds = %10318, %10301
  call void @llvm.lifetime.end.p0(i64 4, ptr %267) #11
  br label %10336

10336:                                            ; preds = %10335
  br label %10337

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

10338:                                            ; No predecessors!
  br label %10339

10339:                                            ; preds = %10338
  br label %10340

10340:                                            ; preds = %10339, %10276
  br label %10341

10341:                                            ; preds = %10340
  br label %10342

10342:                                            ; preds = %10341
  br label %10343

10343:                                            ; preds = %10342
  br label %10344

10344:                                            ; preds = %10343
  %10345 = load ptr, ptr %260, align 8, !tbaa !9
  %10346 = getelementptr inbounds %struct.s2n_connection, ptr %10345, i32 0, i32 89
  store i32 1, ptr %10346, align 8, !tbaa !77
  br label %10347

10347:                                            ; preds = %10344
  %10348 = load i32, ptr @test_count, align 4, !tbaa !5
  %10349 = add nsw i32 %10348, 1
  store i32 %10349, ptr @test_count, align 4, !tbaa !5
  %10350 = load ptr, ptr %260, align 8, !tbaa !9
  %10351 = call i32 @s2n_tls13_secrets_update(ptr noundef %10350)
  %10352 = getelementptr inbounds %struct.s2n_result, ptr %268, i32 0, i32 0
  store i32 %10351, ptr %10352, align 4
  %10353 = getelementptr inbounds %struct.s2n_result, ptr %268, i32 0, i32 0
  %10354 = load i32, ptr %10353, align 4
  %10355 = call zeroext i1 @s2n_result_is_ok(i32 %10354)
  br i1 %10355, label %10409, label %10356

10356:                                            ; preds = %10347
  br label %10357

10357:                                            ; preds = %10356
  br label %10358

10358:                                            ; preds = %10357
  call void @llvm.lifetime.start.p0(i64 4, ptr %269) #11
  %10359 = call ptr @__errno_location() #12
  %10360 = load i32, ptr %10359, align 4, !tbaa !5
  store i32 %10360, ptr %269, align 4, !tbaa !5
  %10361 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10362 = call i32 @s2n_print_stacktrace(ptr noundef %10361)
  %10363 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10364 = trunc i8 %10363 to i1
  br i1 %10364, label %10365, label %10387

10365:                                            ; preds = %10358
  %10366 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10367 = call i32 @fileno(ptr noundef %10366) #11
  %10368 = call i32 @isatty(i32 noundef %10367) #11
  %10369 = icmp ne i32 %10368, 0
  br i1 %10369, label %10370, label %10387

10370:                                            ; preds = %10365
  %10371 = load i32, ptr %269, align 4, !tbaa !5
  %10372 = call ptr @__errno_location() #12
  store i32 %10371, ptr %10372, align 4, !tbaa !5
  %10373 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10374 = load i32, ptr @test_count, align 4, !tbaa !5
  %10375 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10376 = load i32, ptr %10375, align 4, !tbaa !5
  %10377 = call ptr @s2n_strerror(i32 noundef %10376, ptr noundef @.str.4)
  %10378 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10379 = load i32, ptr %10378, align 4, !tbaa !5
  %10380 = call ptr @s2n_strerror_debug(i32 noundef %10379, ptr noundef @.str.4)
  %10381 = call ptr @__errno_location() #12
  %10382 = load i32, ptr %10381, align 4, !tbaa !5
  %10383 = call ptr @strerror(i32 noundef %10382) #11
  %10384 = call ptr @__errno_location() #12
  %10385 = load i32, ptr %10384, align 4, !tbaa !5
  %10386 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10373, ptr noundef @.str.2, i32 noundef %10374, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 386, ptr noundef %10377, ptr noundef %10380, ptr noundef %10383, i32 noundef %10385) #11
  br label %10404

10387:                                            ; preds = %10365, %10358
  %10388 = load i32, ptr %269, align 4, !tbaa !5
  %10389 = call ptr @__errno_location() #12
  store i32 %10388, ptr %10389, align 4, !tbaa !5
  %10390 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10391 = load i32, ptr @test_count, align 4, !tbaa !5
  %10392 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10393 = load i32, ptr %10392, align 4, !tbaa !5
  %10394 = call ptr @s2n_strerror(i32 noundef %10393, ptr noundef @.str.4)
  %10395 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10396 = load i32, ptr %10395, align 4, !tbaa !5
  %10397 = call ptr @s2n_strerror_debug(i32 noundef %10396, ptr noundef @.str.4)
  %10398 = call ptr @__errno_location() #12
  %10399 = load i32, ptr %10398, align 4, !tbaa !5
  %10400 = call ptr @strerror(i32 noundef %10399) #11
  %10401 = call ptr @__errno_location() #12
  %10402 = load i32, ptr %10401, align 4, !tbaa !5
  %10403 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10390, ptr noundef @.str.5, i32 noundef %10391, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 386, ptr noundef %10394, ptr noundef %10397, ptr noundef %10400, i32 noundef %10402) #11
  br label %10404

10404:                                            ; preds = %10387, %10370
  call void @llvm.lifetime.end.p0(i64 4, ptr %269) #11
  br label %10405

10405:                                            ; preds = %10404
  br label %10406

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

10407:                                            ; No predecessors!
  br label %10408

10408:                                            ; preds = %10407
  br label %10409

10409:                                            ; preds = %10408, %10347
  br label %10410

10410:                                            ; preds = %10409
  br label %10411

10411:                                            ; preds = %10410
  br label %10412

10412:                                            ; preds = %10411
  %10413 = load i32, ptr @test_count, align 4, !tbaa !5
  %10414 = add nsw i32 %10413, 1
  store i32 %10414, ptr @test_count, align 4, !tbaa !5
  %10415 = load ptr, ptr %260, align 8, !tbaa !9
  %10416 = getelementptr inbounds %struct.s2n_connection, ptr %10415, i32 0, i32 28
  %10417 = getelementptr inbounds %struct.s2n_secrets, ptr %10416, i32 0, i32 0
  %10418 = getelementptr inbounds %struct.s2n_tls13_secrets, ptr %10417, i32 0, i32 1
  %10419 = getelementptr inbounds [48 x i8], ptr %10418, i64 0, i64 0
  %10420 = getelementptr inbounds [48 x i8], ptr %9, i64 0, i64 0
  %10421 = call i32 @memcmp(ptr noundef %10419, ptr noundef %10420, i64 noundef 48) #14
  %10422 = icmp eq i32 %10421, 0
  br i1 %10422, label %10423, label %10476

10423:                                            ; preds = %10412
  br label %10424

10424:                                            ; preds = %10423
  br label %10425

10425:                                            ; preds = %10424
  call void @llvm.lifetime.start.p0(i64 4, ptr %270) #11
  %10426 = call ptr @__errno_location() #12
  %10427 = load i32, ptr %10426, align 4, !tbaa !5
  store i32 %10427, ptr %270, align 4, !tbaa !5
  %10428 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10429 = call i32 @s2n_print_stacktrace(ptr noundef %10428)
  %10430 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10431 = trunc i8 %10430 to i1
  br i1 %10431, label %10432, label %10454

10432:                                            ; preds = %10425
  %10433 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10434 = call i32 @fileno(ptr noundef %10433) #11
  %10435 = call i32 @isatty(i32 noundef %10434) #11
  %10436 = icmp ne i32 %10435, 0
  br i1 %10436, label %10437, label %10454

10437:                                            ; preds = %10432
  %10438 = load i32, ptr %270, align 4, !tbaa !5
  %10439 = call ptr @__errno_location() #12
  store i32 %10438, ptr %10439, align 4, !tbaa !5
  %10440 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10441 = load i32, ptr @test_count, align 4, !tbaa !5
  %10442 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10443 = load i32, ptr %10442, align 4, !tbaa !5
  %10444 = call ptr @s2n_strerror(i32 noundef %10443, ptr noundef @.str.4)
  %10445 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10446 = load i32, ptr %10445, align 4, !tbaa !5
  %10447 = call ptr @s2n_strerror_debug(i32 noundef %10446, ptr noundef @.str.4)
  %10448 = call ptr @__errno_location() #12
  %10449 = load i32, ptr %10448, align 4, !tbaa !5
  %10450 = call ptr @strerror(i32 noundef %10449) #11
  %10451 = call ptr @__errno_location() #12
  %10452 = load i32, ptr %10451, align 4, !tbaa !5
  %10453 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10440, ptr noundef @.str.2, i32 noundef %10441, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 388, ptr noundef %10444, ptr noundef %10447, ptr noundef %10450, i32 noundef %10452) #11
  br label %10471

10454:                                            ; preds = %10432, %10425
  %10455 = load i32, ptr %270, align 4, !tbaa !5
  %10456 = call ptr @__errno_location() #12
  store i32 %10455, ptr %10456, align 4, !tbaa !5
  %10457 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10458 = load i32, ptr @test_count, align 4, !tbaa !5
  %10459 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10460 = load i32, ptr %10459, align 4, !tbaa !5
  %10461 = call ptr @s2n_strerror(i32 noundef %10460, ptr noundef @.str.4)
  %10462 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10463 = load i32, ptr %10462, align 4, !tbaa !5
  %10464 = call ptr @s2n_strerror_debug(i32 noundef %10463, ptr noundef @.str.4)
  %10465 = call ptr @__errno_location() #12
  %10466 = load i32, ptr %10465, align 4, !tbaa !5
  %10467 = call ptr @strerror(i32 noundef %10466) #11
  %10468 = call ptr @__errno_location() #12
  %10469 = load i32, ptr %10468, align 4, !tbaa !5
  %10470 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10457, ptr noundef @.str.5, i32 noundef %10458, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 388, ptr noundef %10461, ptr noundef %10464, ptr noundef %10467, i32 noundef %10469) #11
  br label %10471

10471:                                            ; preds = %10454, %10437
  call void @llvm.lifetime.end.p0(i64 4, ptr %270) #11
  br label %10472

10472:                                            ; preds = %10471
  br label %10473

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

10474:                                            ; No predecessors!
  br label %10475

10475:                                            ; preds = %10474
  br label %10476

10476:                                            ; preds = %10475, %10412
  br label %10477

10477:                                            ; preds = %10476
  br label %10478

10478:                                            ; preds = %10477
  br label %10479

10479:                                            ; preds = %10478
  call void @llvm.lifetime.start.p0(i64 8, ptr %271) #11
  store i64 48, ptr %271, align 8, !tbaa !15
  %10480 = load i64, ptr %271, align 8, !tbaa !15
  %10481 = icmp ne i64 %10480, 0
  br i1 %10481, label %10482, label %10545

10482:                                            ; preds = %10479
  %10483 = load ptr, ptr %260, align 8, !tbaa !9
  %10484 = getelementptr inbounds %struct.s2n_connection, ptr %10483, i32 0, i32 28
  %10485 = getelementptr inbounds %struct.s2n_secrets, ptr %10484, i32 0, i32 0
  %10486 = getelementptr inbounds %struct.s2n_tls13_secrets, ptr %10485, i32 0, i32 1
  %10487 = getelementptr inbounds [48 x i8], ptr %10486, i64 0, i64 0
  %10488 = getelementptr inbounds [48 x i8], ptr %9, i64 0, i64 0
  %10489 = load i64, ptr %271, align 8, !tbaa !15
  call void @llvm.memmove.p0.p0.i64(ptr align 8 %10487, ptr align 16 %10488, i64 %10489, i1 false)
  %10490 = icmp eq ptr %10487, null
  br i1 %10490, label %10491, label %10544

10491:                                            ; preds = %10482
  br label %10492

10492:                                            ; preds = %10491
  br label %10493

10493:                                            ; preds = %10492
  call void @llvm.lifetime.start.p0(i64 4, ptr %272) #11
  %10494 = call ptr @__errno_location() #12
  %10495 = load i32, ptr %10494, align 4, !tbaa !5
  store i32 %10495, ptr %272, align 4, !tbaa !5
  %10496 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10497 = call i32 @s2n_print_stacktrace(ptr noundef %10496)
  %10498 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10499 = trunc i8 %10498 to i1
  br i1 %10499, label %10500, label %10522

10500:                                            ; preds = %10493
  %10501 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10502 = call i32 @fileno(ptr noundef %10501) #11
  %10503 = call i32 @isatty(i32 noundef %10502) #11
  %10504 = icmp ne i32 %10503, 0
  br i1 %10504, label %10505, label %10522

10505:                                            ; preds = %10500
  %10506 = load i32, ptr %272, align 4, !tbaa !5
  %10507 = call ptr @__errno_location() #12
  store i32 %10506, ptr %10507, align 4, !tbaa !5
  %10508 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10509 = load i32, ptr @test_count, align 4, !tbaa !5
  %10510 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10511 = load i32, ptr %10510, align 4, !tbaa !5
  %10512 = call ptr @s2n_strerror(i32 noundef %10511, ptr noundef @.str.4)
  %10513 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10514 = load i32, ptr %10513, align 4, !tbaa !5
  %10515 = call ptr @s2n_strerror_debug(i32 noundef %10514, ptr noundef @.str.4)
  %10516 = call ptr @__errno_location() #12
  %10517 = load i32, ptr %10516, align 4, !tbaa !5
  %10518 = call ptr @strerror(i32 noundef %10517) #11
  %10519 = call ptr @__errno_location() #12
  %10520 = load i32, ptr %10519, align 4, !tbaa !5
  %10521 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10508, ptr noundef @.str.2, i32 noundef %10509, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 392, ptr noundef %10512, ptr noundef %10515, ptr noundef %10518, i32 noundef %10520) #11
  br label %10539

10522:                                            ; preds = %10500, %10493
  %10523 = load i32, ptr %272, align 4, !tbaa !5
  %10524 = call ptr @__errno_location() #12
  store i32 %10523, ptr %10524, align 4, !tbaa !5
  %10525 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10526 = load i32, ptr @test_count, align 4, !tbaa !5
  %10527 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10528 = load i32, ptr %10527, align 4, !tbaa !5
  %10529 = call ptr @s2n_strerror(i32 noundef %10528, ptr noundef @.str.4)
  %10530 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10531 = load i32, ptr %10530, align 4, !tbaa !5
  %10532 = call ptr @s2n_strerror_debug(i32 noundef %10531, ptr noundef @.str.4)
  %10533 = call ptr @__errno_location() #12
  %10534 = load i32, ptr %10533, align 4, !tbaa !5
  %10535 = call ptr @strerror(i32 noundef %10534) #11
  %10536 = call ptr @__errno_location() #12
  %10537 = load i32, ptr %10536, align 4, !tbaa !5
  %10538 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10525, ptr noundef @.str.5, i32 noundef %10526, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 392, ptr noundef %10529, ptr noundef %10532, ptr noundef %10535, i32 noundef %10537) #11
  br label %10539

10539:                                            ; preds = %10522, %10505
  call void @llvm.lifetime.end.p0(i64 4, ptr %272) #11
  br label %10540

10540:                                            ; preds = %10539
  br label %10541

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

10542:                                            ; No predecessors!
  br label %10543

10543:                                            ; preds = %10542
  br label %10544

10544:                                            ; preds = %10543, %10482
  br label %10545

10545:                                            ; preds = %10544, %10479
  call void @llvm.lifetime.end.p0(i64 8, ptr %271) #11
  br label %10546

10546:                                            ; preds = %10545
  br label %10547

10547:                                            ; preds = %10546
  %10548 = load ptr, ptr %260, align 8, !tbaa !9
  %10549 = getelementptr inbounds %struct.s2n_connection, ptr %10548, i32 0, i32 89
  store i32 3, ptr %10549, align 8, !tbaa !77
  br label %10550

10550:                                            ; preds = %10547
  %10551 = load i32, ptr @test_count, align 4, !tbaa !5
  %10552 = add nsw i32 %10551, 1
  store i32 %10552, ptr @test_count, align 4, !tbaa !5
  %10553 = load ptr, ptr %260, align 8, !tbaa !9
  %10554 = call i32 @s2n_tls13_secrets_update(ptr noundef %10553)
  %10555 = getelementptr inbounds %struct.s2n_result, ptr %273, i32 0, i32 0
  store i32 %10554, ptr %10555, align 4
  %10556 = getelementptr inbounds %struct.s2n_result, ptr %273, i32 0, i32 0
  %10557 = load i32, ptr %10556, align 4
  %10558 = call zeroext i1 @s2n_result_is_ok(i32 %10557)
  br i1 %10558, label %10612, label %10559

10559:                                            ; preds = %10550
  br label %10560

10560:                                            ; preds = %10559
  br label %10561

10561:                                            ; preds = %10560
  call void @llvm.lifetime.start.p0(i64 4, ptr %274) #11
  %10562 = call ptr @__errno_location() #12
  %10563 = load i32, ptr %10562, align 4, !tbaa !5
  store i32 %10563, ptr %274, 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 %274, 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.76, ptr noundef @.str.1, i32 noundef 396, ptr noundef %10580, ptr noundef %10583, ptr noundef %10586, i32 noundef %10588) #11
  br label %10607

10590:                                            ; preds = %10568, %10561
  %10591 = load i32, ptr %274, 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.76, ptr noundef @.str.1, i32 noundef 396, 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 %274) #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, %10550
  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 %260, align 8, !tbaa !9
  %10619 = getelementptr inbounds %struct.s2n_connection, ptr %10618, i32 0, i32 28
  %10620 = getelementptr inbounds %struct.s2n_secrets, ptr %10619, i32 0, i32 0
  %10621 = getelementptr inbounds %struct.s2n_tls13_secrets, ptr %10620, i32 0, i32 1
  %10622 = getelementptr inbounds [48 x i8], ptr %10621, i64 0, i64 0
  %10623 = getelementptr inbounds [48 x i8], ptr %9, i64 0, i64 0
  %10624 = call i32 @memcmp(ptr noundef %10622, ptr noundef %10623, i64 noundef 48) #14
  %10625 = icmp eq i32 %10624, 0
  br i1 %10625, label %10626, label %10679

10626:                                            ; preds = %10615
  br label %10627

10627:                                            ; preds = %10626
  br label %10628

10628:                                            ; preds = %10627
  call void @llvm.lifetime.start.p0(i64 4, ptr %275) #11
  %10629 = call ptr @__errno_location() #12
  %10630 = load i32, ptr %10629, align 4, !tbaa !5
  store i32 %10630, ptr %275, align 4, !tbaa !5
  %10631 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10632 = call i32 @s2n_print_stacktrace(ptr noundef %10631)
  %10633 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10634 = trunc i8 %10633 to i1
  br i1 %10634, label %10635, label %10657

10635:                                            ; preds = %10628
  %10636 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10637 = call i32 @fileno(ptr noundef %10636) #11
  %10638 = call i32 @isatty(i32 noundef %10637) #11
  %10639 = icmp ne i32 %10638, 0
  br i1 %10639, label %10640, label %10657

10640:                                            ; preds = %10635
  %10641 = load i32, ptr %275, align 4, !tbaa !5
  %10642 = call ptr @__errno_location() #12
  store i32 %10641, ptr %10642, align 4, !tbaa !5
  %10643 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10644 = load i32, ptr @test_count, align 4, !tbaa !5
  %10645 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10646 = load i32, ptr %10645, align 4, !tbaa !5
  %10647 = call ptr @s2n_strerror(i32 noundef %10646, ptr noundef @.str.4)
  %10648 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10649 = load i32, ptr %10648, align 4, !tbaa !5
  %10650 = call ptr @s2n_strerror_debug(i32 noundef %10649, ptr noundef @.str.4)
  %10651 = call ptr @__errno_location() #12
  %10652 = load i32, ptr %10651, align 4, !tbaa !5
  %10653 = call ptr @strerror(i32 noundef %10652) #11
  %10654 = call ptr @__errno_location() #12
  %10655 = load i32, ptr %10654, align 4, !tbaa !5
  %10656 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10643, ptr noundef @.str.2, i32 noundef %10644, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 398, ptr noundef %10647, ptr noundef %10650, ptr noundef %10653, i32 noundef %10655) #11
  br label %10674

10657:                                            ; preds = %10635, %10628
  %10658 = load i32, ptr %275, align 4, !tbaa !5
  %10659 = call ptr @__errno_location() #12
  store i32 %10658, ptr %10659, align 4, !tbaa !5
  %10660 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10661 = load i32, ptr @test_count, align 4, !tbaa !5
  %10662 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10663 = load i32, ptr %10662, align 4, !tbaa !5
  %10664 = call ptr @s2n_strerror(i32 noundef %10663, ptr noundef @.str.4)
  %10665 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10666 = load i32, ptr %10665, align 4, !tbaa !5
  %10667 = call ptr @s2n_strerror_debug(i32 noundef %10666, ptr noundef @.str.4)
  %10668 = call ptr @__errno_location() #12
  %10669 = load i32, ptr %10668, align 4, !tbaa !5
  %10670 = call ptr @strerror(i32 noundef %10669) #11
  %10671 = call ptr @__errno_location() #12
  %10672 = load i32, ptr %10671, align 4, !tbaa !5
  %10673 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10660, ptr noundef @.str.5, i32 noundef %10661, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 398, ptr noundef %10664, ptr noundef %10667, ptr noundef %10670, i32 noundef %10672) #11
  br label %10674

10674:                                            ; preds = %10657, %10640
  call void @llvm.lifetime.end.p0(i64 4, ptr %275) #11
  br label %10675

10675:                                            ; preds = %10674
  br label %10676

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

10677:                                            ; No predecessors!
  br label %10678

10678:                                            ; preds = %10677
  br label %10679

10679:                                            ; preds = %10678, %10615
  br label %10680

10680:                                            ; preds = %10679
  br label %10681

10681:                                            ; preds = %10680
  %10682 = call i32 @s2n_connection_ptr_free(ptr noundef %260)
  %10683 = getelementptr inbounds %struct.s2n_result, ptr %276, i32 0, i32 0
  store i32 %10682, ptr %10683, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %260) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %277) #11
  %10684 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %10684, ptr %277, align 8, !tbaa !9
  %10685 = load ptr, ptr %277, align 8, !tbaa !9
  %10686 = getelementptr inbounds %struct.s2n_connection, ptr %10685, i32 0, i32 27
  %10687 = load ptr, ptr %10686, align 8, !tbaa !39
  %10688 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %10687, i32 0, i32 0
  store ptr @s2n_tls13_aes_128_gcm_sha256, ptr %10688, align 8, !tbaa !64
  %10689 = load ptr, ptr %277, align 8, !tbaa !9
  %10690 = getelementptr inbounds %struct.s2n_connection, ptr %10689, i32 0, i32 23
  store i8 34, ptr %10690, align 4, !tbaa !72
  br label %10691

10691:                                            ; preds = %10681
  %10692 = load i32, ptr @test_count, align 4, !tbaa !5
  %10693 = add nsw i32 %10692, 1
  store i32 %10693, ptr @test_count, align 4, !tbaa !5
  %10694 = load ptr, ptr %277, align 8, !tbaa !9
  %10695 = call i32 @s2n_connection_set_test_handshake_secret(ptr noundef %10694, ptr noundef %13)
  %10696 = getelementptr inbounds %struct.s2n_result, ptr %278, i32 0, i32 0
  store i32 %10695, ptr %10696, align 4
  %10697 = getelementptr inbounds %struct.s2n_result, ptr %278, i32 0, i32 0
  %10698 = load i32, ptr %10697, align 4
  %10699 = call zeroext i1 @s2n_result_is_ok(i32 %10698)
  br i1 %10699, label %10753, label %10700

10700:                                            ; preds = %10691
  br label %10701

10701:                                            ; preds = %10700
  br label %10702

10702:                                            ; preds = %10701
  call void @llvm.lifetime.start.p0(i64 4, ptr %279) #11
  %10703 = call ptr @__errno_location() #12
  %10704 = load i32, ptr %10703, align 4, !tbaa !5
  store i32 %10704, ptr %279, align 4, !tbaa !5
  %10705 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10706 = call i32 @s2n_print_stacktrace(ptr noundef %10705)
  %10707 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10708 = trunc i8 %10707 to i1
  br i1 %10708, label %10709, label %10731

10709:                                            ; preds = %10702
  %10710 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10711 = call i32 @fileno(ptr noundef %10710) #11
  %10712 = call i32 @isatty(i32 noundef %10711) #11
  %10713 = icmp ne i32 %10712, 0
  br i1 %10713, label %10714, label %10731

10714:                                            ; preds = %10709
  %10715 = load i32, ptr %279, align 4, !tbaa !5
  %10716 = call ptr @__errno_location() #12
  store i32 %10715, ptr %10716, align 4, !tbaa !5
  %10717 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10718 = load i32, ptr @test_count, align 4, !tbaa !5
  %10719 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10720 = load i32, ptr %10719, align 4, !tbaa !5
  %10721 = call ptr @s2n_strerror(i32 noundef %10720, ptr noundef @.str.4)
  %10722 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10723 = load i32, ptr %10722, align 4, !tbaa !5
  %10724 = call ptr @s2n_strerror_debug(i32 noundef %10723, ptr noundef @.str.4)
  %10725 = call ptr @__errno_location() #12
  %10726 = load i32, ptr %10725, align 4, !tbaa !5
  %10727 = call ptr @strerror(i32 noundef %10726) #11
  %10728 = call ptr @__errno_location() #12
  %10729 = load i32, ptr %10728, align 4, !tbaa !5
  %10730 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10717, ptr noundef @.str.2, i32 noundef %10718, ptr noundef @.str.77, ptr noundef @.str.1, i32 noundef 407, ptr noundef %10721, ptr noundef %10724, ptr noundef %10727, i32 noundef %10729) #11
  br label %10748

10731:                                            ; preds = %10709, %10702
  %10732 = load i32, ptr %279, align 4, !tbaa !5
  %10733 = call ptr @__errno_location() #12
  store i32 %10732, ptr %10733, align 4, !tbaa !5
  %10734 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10735 = load i32, ptr @test_count, align 4, !tbaa !5
  %10736 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10737 = load i32, ptr %10736, align 4, !tbaa !5
  %10738 = call ptr @s2n_strerror(i32 noundef %10737, ptr noundef @.str.4)
  %10739 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10740 = load i32, ptr %10739, align 4, !tbaa !5
  %10741 = call ptr @s2n_strerror_debug(i32 noundef %10740, ptr noundef @.str.4)
  %10742 = call ptr @__errno_location() #12
  %10743 = load i32, ptr %10742, align 4, !tbaa !5
  %10744 = call ptr @strerror(i32 noundef %10743) #11
  %10745 = call ptr @__errno_location() #12
  %10746 = load i32, ptr %10745, align 4, !tbaa !5
  %10747 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10734, ptr noundef @.str.5, i32 noundef %10735, ptr noundef @.str.77, ptr noundef @.str.1, i32 noundef 407, ptr noundef %10738, ptr noundef %10741, ptr noundef %10744, i32 noundef %10746) #11
  br label %10748

10748:                                            ; preds = %10731, %10714
  call void @llvm.lifetime.end.p0(i64 4, ptr %279) #11
  br label %10749

10749:                                            ; preds = %10748
  br label %10750

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

10751:                                            ; No predecessors!
  br label %10752

10752:                                            ; preds = %10751
  br label %10753

10753:                                            ; preds = %10752, %10691
  br label %10754

10754:                                            ; preds = %10753
  br label %10755

10755:                                            ; preds = %10754
  br label %10756

10756:                                            ; preds = %10755
  br label %10757

10757:                                            ; preds = %10756
  %10758 = load i32, ptr @test_count, align 4, !tbaa !5
  %10759 = add nsw i32 %10758, 1
  store i32 %10759, ptr @test_count, align 4, !tbaa !5
  %10760 = load ptr, ptr %277, align 8, !tbaa !9
  %10761 = getelementptr inbounds %struct.s2n_connection, ptr %10760, i32 0, i32 28
  %10762 = getelementptr inbounds %struct.s2n_secrets, ptr %10761, i32 0, i32 0
  %10763 = getelementptr inbounds %struct.s2n_tls13_secrets, ptr %10762, i32 0, i32 2
  %10764 = getelementptr inbounds [48 x i8], ptr %10763, i64 0, i64 0
  %10765 = getelementptr inbounds [48 x i8], ptr %9, i64 0, i64 0
  %10766 = call i32 @memcmp(ptr noundef %10764, ptr noundef %10765, i64 noundef 48) #14
  %10767 = icmp eq i32 %10766, 0
  br i1 %10767, label %10821, label %10768

10768:                                            ; preds = %10757
  br label %10769

10769:                                            ; preds = %10768
  br label %10770

10770:                                            ; preds = %10769
  call void @llvm.lifetime.start.p0(i64 4, ptr %280) #11
  %10771 = call ptr @__errno_location() #12
  %10772 = load i32, ptr %10771, align 4, !tbaa !5
  store i32 %10772, ptr %280, align 4, !tbaa !5
  %10773 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10774 = call i32 @s2n_print_stacktrace(ptr noundef %10773)
  %10775 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10776 = trunc i8 %10775 to i1
  br i1 %10776, label %10777, label %10799

10777:                                            ; preds = %10770
  %10778 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10779 = call i32 @fileno(ptr noundef %10778) #11
  %10780 = call i32 @isatty(i32 noundef %10779) #11
  %10781 = icmp ne i32 %10780, 0
  br i1 %10781, label %10782, label %10799

10782:                                            ; preds = %10777
  %10783 = load i32, ptr %280, align 4, !tbaa !5
  %10784 = call ptr @__errno_location() #12
  store i32 %10783, ptr %10784, align 4, !tbaa !5
  %10785 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10786 = load i32, ptr @test_count, align 4, !tbaa !5
  %10787 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10788 = load i32, ptr %10787, align 4, !tbaa !5
  %10789 = call ptr @s2n_strerror(i32 noundef %10788, ptr noundef @.str.4)
  %10790 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10791 = load i32, ptr %10790, align 4, !tbaa !5
  %10792 = call ptr @s2n_strerror_debug(i32 noundef %10791, ptr noundef @.str.4)
  %10793 = call ptr @__errno_location() #12
  %10794 = load i32, ptr %10793, align 4, !tbaa !5
  %10795 = call ptr @strerror(i32 noundef %10794) #11
  %10796 = call ptr @__errno_location() #12
  %10797 = load i32, ptr %10796, align 4, !tbaa !5
  %10798 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10785, ptr noundef @.str.2, i32 noundef %10786, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 409, ptr noundef %10789, ptr noundef %10792, ptr noundef %10795, i32 noundef %10797) #11
  br label %10816

10799:                                            ; preds = %10777, %10770
  %10800 = load i32, ptr %280, align 4, !tbaa !5
  %10801 = call ptr @__errno_location() #12
  store i32 %10800, ptr %10801, align 4, !tbaa !5
  %10802 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10803 = load i32, ptr @test_count, align 4, !tbaa !5
  %10804 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10805 = load i32, ptr %10804, align 4, !tbaa !5
  %10806 = call ptr @s2n_strerror(i32 noundef %10805, ptr noundef @.str.4)
  %10807 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10808 = load i32, ptr %10807, align 4, !tbaa !5
  %10809 = call ptr @s2n_strerror_debug(i32 noundef %10808, ptr noundef @.str.4)
  %10810 = call ptr @__errno_location() #12
  %10811 = load i32, ptr %10810, align 4, !tbaa !5
  %10812 = call ptr @strerror(i32 noundef %10811) #11
  %10813 = call ptr @__errno_location() #12
  %10814 = load i32, ptr %10813, align 4, !tbaa !5
  %10815 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10802, ptr noundef @.str.5, i32 noundef %10803, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 409, ptr noundef %10806, ptr noundef %10809, ptr noundef %10812, i32 noundef %10814) #11
  br label %10816

10816:                                            ; preds = %10799, %10782
  call void @llvm.lifetime.end.p0(i64 4, ptr %280) #11
  br label %10817

10817:                                            ; preds = %10816
  br label %10818

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

10819:                                            ; No predecessors!
  br label %10820

10820:                                            ; preds = %10819
  br label %10821

10821:                                            ; preds = %10820, %10757
  br label %10822

10822:                                            ; preds = %10821
  br label %10823

10823:                                            ; preds = %10822
  br label %10824

10824:                                            ; preds = %10823
  br label %10825

10825:                                            ; preds = %10824
  br label %10826

10826:                                            ; preds = %10825
  br label %10827

10827:                                            ; preds = %10826
  %10828 = load i32, ptr @test_count, align 4, !tbaa !5
  %10829 = add nsw i32 %10828, 1
  store i32 %10829, ptr @test_count, align 4, !tbaa !5
  %10830 = load ptr, ptr %277, align 8, !tbaa !9
  %10831 = getelementptr inbounds %struct.s2n_connection, ptr %10830, i32 0, i32 28
  %10832 = getelementptr inbounds %struct.s2n_secrets, ptr %10831, i32 0, i32 0
  %10833 = getelementptr inbounds %struct.s2n_tls13_secrets, ptr %10832, i32 0, i32 3
  %10834 = getelementptr inbounds [48 x i8], ptr %10833, i64 0, i64 0
  %10835 = getelementptr inbounds [48 x i8], ptr %9, i64 0, i64 0
  %10836 = call i32 @memcmp(ptr noundef %10834, ptr noundef %10835, i64 noundef 48) #14
  %10837 = icmp eq i32 %10836, 0
  br i1 %10837, label %10891, label %10838

10838:                                            ; preds = %10827
  br label %10839

10839:                                            ; preds = %10838
  br label %10840

10840:                                            ; preds = %10839
  call void @llvm.lifetime.start.p0(i64 4, ptr %281) #11
  %10841 = call ptr @__errno_location() #12
  %10842 = load i32, ptr %10841, align 4, !tbaa !5
  store i32 %10842, ptr %281, align 4, !tbaa !5
  %10843 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10844 = call i32 @s2n_print_stacktrace(ptr noundef %10843)
  %10845 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10846 = trunc i8 %10845 to i1
  br i1 %10846, label %10847, label %10869

10847:                                            ; preds = %10840
  %10848 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10849 = call i32 @fileno(ptr noundef %10848) #11
  %10850 = call i32 @isatty(i32 noundef %10849) #11
  %10851 = icmp ne i32 %10850, 0
  br i1 %10851, label %10852, label %10869

10852:                                            ; preds = %10847
  %10853 = load i32, ptr %281, align 4, !tbaa !5
  %10854 = call ptr @__errno_location() #12
  store i32 %10853, ptr %10854, align 4, !tbaa !5
  %10855 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10856 = load i32, ptr @test_count, align 4, !tbaa !5
  %10857 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10858 = load i32, ptr %10857, align 4, !tbaa !5
  %10859 = call ptr @s2n_strerror(i32 noundef %10858, ptr noundef @.str.4)
  %10860 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10861 = load i32, ptr %10860, align 4, !tbaa !5
  %10862 = call ptr @s2n_strerror_debug(i32 noundef %10861, ptr noundef @.str.4)
  %10863 = call ptr @__errno_location() #12
  %10864 = load i32, ptr %10863, align 4, !tbaa !5
  %10865 = call ptr @strerror(i32 noundef %10864) #11
  %10866 = call ptr @__errno_location() #12
  %10867 = load i32, ptr %10866, align 4, !tbaa !5
  %10868 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10855, ptr noundef @.str.2, i32 noundef %10856, ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 411, ptr noundef %10859, ptr noundef %10862, ptr noundef %10865, i32 noundef %10867) #11
  br label %10886

10869:                                            ; preds = %10847, %10840
  %10870 = load i32, ptr %281, align 4, !tbaa !5
  %10871 = call ptr @__errno_location() #12
  store i32 %10870, ptr %10871, align 4, !tbaa !5
  %10872 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10873 = load i32, ptr @test_count, align 4, !tbaa !5
  %10874 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10875 = load i32, ptr %10874, align 4, !tbaa !5
  %10876 = call ptr @s2n_strerror(i32 noundef %10875, ptr noundef @.str.4)
  %10877 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10878 = load i32, ptr %10877, align 4, !tbaa !5
  %10879 = call ptr @s2n_strerror_debug(i32 noundef %10878, ptr noundef @.str.4)
  %10880 = call ptr @__errno_location() #12
  %10881 = load i32, ptr %10880, align 4, !tbaa !5
  %10882 = call ptr @strerror(i32 noundef %10881) #11
  %10883 = call ptr @__errno_location() #12
  %10884 = load i32, ptr %10883, align 4, !tbaa !5
  %10885 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10872, ptr noundef @.str.5, i32 noundef %10873, ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 411, ptr noundef %10876, ptr noundef %10879, ptr noundef %10882, i32 noundef %10884) #11
  br label %10886

10886:                                            ; preds = %10869, %10852
  call void @llvm.lifetime.end.p0(i64 4, ptr %281) #11
  br label %10887

10887:                                            ; preds = %10886
  br label %10888

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

10889:                                            ; No predecessors!
  br label %10890

10890:                                            ; preds = %10889
  br label %10891

10891:                                            ; preds = %10890, %10827
  br label %10892

10892:                                            ; preds = %10891
  br label %10893

10893:                                            ; preds = %10892
  br label %10894

10894:                                            ; preds = %10893
  br label %10895

10895:                                            ; preds = %10894
  br label %10896

10896:                                            ; preds = %10895
  %10897 = load i32, ptr @test_count, align 4, !tbaa !5
  %10898 = add nsw i32 %10897, 1
  store i32 %10898, ptr @test_count, align 4, !tbaa !5
  %10899 = load ptr, ptr %277, align 8, !tbaa !9
  %10900 = call i32 @s2n_connection_set_test_message_type(ptr noundef %10899, i32 noundef 1)
  %10901 = getelementptr inbounds %struct.s2n_result, ptr %282, i32 0, i32 0
  store i32 %10900, ptr %10901, align 4
  %10902 = getelementptr inbounds %struct.s2n_result, ptr %282, i32 0, i32 0
  %10903 = load i32, ptr %10902, align 4
  %10904 = call zeroext i1 @s2n_result_is_ok(i32 %10903)
  br i1 %10904, label %10958, label %10905

10905:                                            ; preds = %10896
  br label %10906

10906:                                            ; preds = %10905
  br label %10907

10907:                                            ; preds = %10906
  call void @llvm.lifetime.start.p0(i64 4, ptr %283) #11
  %10908 = call ptr @__errno_location() #12
  %10909 = load i32, ptr %10908, align 4, !tbaa !5
  store i32 %10909, ptr %283, align 4, !tbaa !5
  %10910 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10911 = call i32 @s2n_print_stacktrace(ptr noundef %10910)
  %10912 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10913 = trunc i8 %10912 to i1
  br i1 %10913, label %10914, label %10936

10914:                                            ; preds = %10907
  %10915 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10916 = call i32 @fileno(ptr noundef %10915) #11
  %10917 = call i32 @isatty(i32 noundef %10916) #11
  %10918 = icmp ne i32 %10917, 0
  br i1 %10918, label %10919, label %10936

10919:                                            ; preds = %10914
  %10920 = load i32, ptr %283, align 4, !tbaa !5
  %10921 = call ptr @__errno_location() #12
  store i32 %10920, ptr %10921, align 4, !tbaa !5
  %10922 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10923 = load i32, ptr @test_count, align 4, !tbaa !5
  %10924 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10925 = load i32, ptr %10924, align 4, !tbaa !5
  %10926 = call ptr @s2n_strerror(i32 noundef %10925, ptr noundef @.str.4)
  %10927 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10928 = load i32, ptr %10927, align 4, !tbaa !5
  %10929 = call ptr @s2n_strerror_debug(i32 noundef %10928, ptr noundef @.str.4)
  %10930 = call ptr @__errno_location() #12
  %10931 = load i32, ptr %10930, align 4, !tbaa !5
  %10932 = call ptr @strerror(i32 noundef %10931) #11
  %10933 = call ptr @__errno_location() #12
  %10934 = load i32, ptr %10933, align 4, !tbaa !5
  %10935 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10922, ptr noundef @.str.2, i32 noundef %10923, ptr noundef @.str.78, ptr noundef @.str.1, i32 noundef 413, ptr noundef %10926, ptr noundef %10929, ptr noundef %10932, i32 noundef %10934) #11
  br label %10953

10936:                                            ; preds = %10914, %10907
  %10937 = load i32, ptr %283, align 4, !tbaa !5
  %10938 = call ptr @__errno_location() #12
  store i32 %10937, ptr %10938, align 4, !tbaa !5
  %10939 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10940 = load i32, ptr @test_count, align 4, !tbaa !5
  %10941 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10942 = load i32, ptr %10941, align 4, !tbaa !5
  %10943 = call ptr @s2n_strerror(i32 noundef %10942, ptr noundef @.str.4)
  %10944 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10945 = load i32, ptr %10944, align 4, !tbaa !5
  %10946 = call ptr @s2n_strerror_debug(i32 noundef %10945, ptr noundef @.str.4)
  %10947 = call ptr @__errno_location() #12
  %10948 = load i32, ptr %10947, align 4, !tbaa !5
  %10949 = call ptr @strerror(i32 noundef %10948) #11
  %10950 = call ptr @__errno_location() #12
  %10951 = load i32, ptr %10950, align 4, !tbaa !5
  %10952 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10939, ptr noundef @.str.5, i32 noundef %10940, ptr noundef @.str.78, ptr noundef @.str.1, i32 noundef 413, ptr noundef %10943, ptr noundef %10946, ptr noundef %10949, i32 noundef %10951) #11
  br label %10953

10953:                                            ; preds = %10936, %10919
  call void @llvm.lifetime.end.p0(i64 4, ptr %283) #11
  br label %10954

10954:                                            ; preds = %10953
  br label %10955

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

10956:                                            ; No predecessors!
  br label %10957

10957:                                            ; preds = %10956
  br label %10958

10958:                                            ; preds = %10957, %10896
  br label %10959

10959:                                            ; preds = %10958
  br label %10960

10960:                                            ; preds = %10959
  br label %10961

10961:                                            ; preds = %10960
  %10962 = load i32, ptr @test_count, align 4, !tbaa !5
  %10963 = add nsw i32 %10962, 1
  store i32 %10963, ptr @test_count, align 4, !tbaa !5
  %10964 = load ptr, ptr %277, align 8, !tbaa !9
  %10965 = call i32 @s2n_tls13_secrets_update(ptr noundef %10964)
  %10966 = getelementptr inbounds %struct.s2n_result, ptr %284, i32 0, i32 0
  store i32 %10965, ptr %10966, align 4
  %10967 = getelementptr inbounds %struct.s2n_result, ptr %284, i32 0, i32 0
  %10968 = load i32, ptr %10967, align 4
  %10969 = call zeroext i1 @s2n_result_is_ok(i32 %10968)
  br i1 %10969, label %11023, label %10970

10970:                                            ; preds = %10961
  br label %10971

10971:                                            ; preds = %10970
  br label %10972

10972:                                            ; preds = %10971
  call void @llvm.lifetime.start.p0(i64 4, ptr %285) #11
  %10973 = call ptr @__errno_location() #12
  %10974 = load i32, ptr %10973, align 4, !tbaa !5
  store i32 %10974, ptr %285, align 4, !tbaa !5
  %10975 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10976 = call i32 @s2n_print_stacktrace(ptr noundef %10975)
  %10977 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10978 = trunc i8 %10977 to i1
  br i1 %10978, label %10979, label %11001

10979:                                            ; preds = %10972
  %10980 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10981 = call i32 @fileno(ptr noundef %10980) #11
  %10982 = call i32 @isatty(i32 noundef %10981) #11
  %10983 = icmp ne i32 %10982, 0
  br i1 %10983, label %10984, label %11001

10984:                                            ; preds = %10979
  %10985 = load i32, ptr %285, align 4, !tbaa !5
  %10986 = call ptr @__errno_location() #12
  store i32 %10985, ptr %10986, align 4, !tbaa !5
  %10987 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10988 = load i32, ptr @test_count, align 4, !tbaa !5
  %10989 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10990 = load i32, ptr %10989, align 4, !tbaa !5
  %10991 = call ptr @s2n_strerror(i32 noundef %10990, ptr noundef @.str.4)
  %10992 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10993 = load i32, ptr %10992, align 4, !tbaa !5
  %10994 = call ptr @s2n_strerror_debug(i32 noundef %10993, ptr noundef @.str.4)
  %10995 = call ptr @__errno_location() #12
  %10996 = load i32, ptr %10995, align 4, !tbaa !5
  %10997 = call ptr @strerror(i32 noundef %10996) #11
  %10998 = call ptr @__errno_location() #12
  %10999 = load i32, ptr %10998, align 4, !tbaa !5
  %11000 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10987, ptr noundef @.str.2, i32 noundef %10988, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 414, ptr noundef %10991, ptr noundef %10994, ptr noundef %10997, i32 noundef %10999) #11
  br label %11018

11001:                                            ; preds = %10979, %10972
  %11002 = load i32, ptr %285, align 4, !tbaa !5
  %11003 = call ptr @__errno_location() #12
  store i32 %11002, ptr %11003, align 4, !tbaa !5
  %11004 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11005 = load i32, ptr @test_count, align 4, !tbaa !5
  %11006 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11007 = load i32, ptr %11006, align 4, !tbaa !5
  %11008 = call ptr @s2n_strerror(i32 noundef %11007, ptr noundef @.str.4)
  %11009 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11010 = load i32, ptr %11009, align 4, !tbaa !5
  %11011 = call ptr @s2n_strerror_debug(i32 noundef %11010, ptr noundef @.str.4)
  %11012 = call ptr @__errno_location() #12
  %11013 = load i32, ptr %11012, align 4, !tbaa !5
  %11014 = call ptr @strerror(i32 noundef %11013) #11
  %11015 = call ptr @__errno_location() #12
  %11016 = load i32, ptr %11015, align 4, !tbaa !5
  %11017 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11004, ptr noundef @.str.5, i32 noundef %11005, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 414, ptr noundef %11008, ptr noundef %11011, ptr noundef %11014, i32 noundef %11016) #11
  br label %11018

11018:                                            ; preds = %11001, %10984
  call void @llvm.lifetime.end.p0(i64 4, ptr %285) #11
  br label %11019

11019:                                            ; preds = %11018
  br label %11020

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

11021:                                            ; No predecessors!
  br label %11022

11022:                                            ; preds = %11021
  br label %11023

11023:                                            ; preds = %11022, %10961
  br label %11024

11024:                                            ; preds = %11023
  br label %11025

11025:                                            ; preds = %11024
  br label %11026

11026:                                            ; preds = %11025
  %11027 = load i32, ptr @test_count, align 4, !tbaa !5
  %11028 = add nsw i32 %11027, 1
  store i32 %11028, ptr @test_count, align 4, !tbaa !5
  %11029 = load ptr, ptr %277, align 8, !tbaa !9
  %11030 = getelementptr inbounds %struct.s2n_connection, ptr %11029, i32 0, i32 28
  %11031 = getelementptr inbounds %struct.s2n_secrets, ptr %11030, i32 0, i32 0
  %11032 = getelementptr inbounds %struct.s2n_tls13_secrets, ptr %11031, i32 0, i32 2
  %11033 = getelementptr inbounds [48 x i8], ptr %11032, i64 0, i64 0
  %11034 = getelementptr inbounds [48 x i8], ptr %9, i64 0, i64 0
  %11035 = call i32 @memcmp(ptr noundef %11033, ptr noundef %11034, i64 noundef 48) #14
  %11036 = icmp eq i32 %11035, 0
  br i1 %11036, label %11037, label %11090

11037:                                            ; preds = %11026
  br label %11038

11038:                                            ; preds = %11037
  br label %11039

11039:                                            ; preds = %11038
  call void @llvm.lifetime.start.p0(i64 4, ptr %286) #11
  %11040 = call ptr @__errno_location() #12
  %11041 = load i32, ptr %11040, align 4, !tbaa !5
  store i32 %11041, ptr %286, align 4, !tbaa !5
  %11042 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11043 = call i32 @s2n_print_stacktrace(ptr noundef %11042)
  %11044 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11045 = trunc i8 %11044 to i1
  br i1 %11045, label %11046, label %11068

11046:                                            ; preds = %11039
  %11047 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11048 = call i32 @fileno(ptr noundef %11047) #11
  %11049 = call i32 @isatty(i32 noundef %11048) #11
  %11050 = icmp ne i32 %11049, 0
  br i1 %11050, label %11051, label %11068

11051:                                            ; preds = %11046
  %11052 = load i32, ptr %286, align 4, !tbaa !5
  %11053 = call ptr @__errno_location() #12
  store i32 %11052, ptr %11053, align 4, !tbaa !5
  %11054 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11055 = load i32, ptr @test_count, align 4, !tbaa !5
  %11056 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11057 = load i32, ptr %11056, align 4, !tbaa !5
  %11058 = call ptr @s2n_strerror(i32 noundef %11057, ptr noundef @.str.4)
  %11059 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11060 = load i32, ptr %11059, align 4, !tbaa !5
  %11061 = call ptr @s2n_strerror_debug(i32 noundef %11060, ptr noundef @.str.4)
  %11062 = call ptr @__errno_location() #12
  %11063 = load i32, ptr %11062, align 4, !tbaa !5
  %11064 = call ptr @strerror(i32 noundef %11063) #11
  %11065 = call ptr @__errno_location() #12
  %11066 = load i32, ptr %11065, align 4, !tbaa !5
  %11067 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11054, ptr noundef @.str.2, i32 noundef %11055, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 417, ptr noundef %11058, ptr noundef %11061, ptr noundef %11064, i32 noundef %11066) #11
  br label %11085

11068:                                            ; preds = %11046, %11039
  %11069 = load i32, ptr %286, align 4, !tbaa !5
  %11070 = call ptr @__errno_location() #12
  store i32 %11069, ptr %11070, align 4, !tbaa !5
  %11071 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11072 = load i32, ptr @test_count, align 4, !tbaa !5
  %11073 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11074 = load i32, ptr %11073, align 4, !tbaa !5
  %11075 = call ptr @s2n_strerror(i32 noundef %11074, ptr noundef @.str.4)
  %11076 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11077 = load i32, ptr %11076, align 4, !tbaa !5
  %11078 = call ptr @s2n_strerror_debug(i32 noundef %11077, ptr noundef @.str.4)
  %11079 = call ptr @__errno_location() #12
  %11080 = load i32, ptr %11079, align 4, !tbaa !5
  %11081 = call ptr @strerror(i32 noundef %11080) #11
  %11082 = call ptr @__errno_location() #12
  %11083 = load i32, ptr %11082, align 4, !tbaa !5
  %11084 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11071, ptr noundef @.str.5, i32 noundef %11072, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 417, ptr noundef %11075, ptr noundef %11078, ptr noundef %11081, i32 noundef %11083) #11
  br label %11085

11085:                                            ; preds = %11068, %11051
  call void @llvm.lifetime.end.p0(i64 4, ptr %286) #11
  br label %11086

11086:                                            ; preds = %11085
  br label %11087

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

11088:                                            ; No predecessors!
  br label %11089

11089:                                            ; preds = %11088
  br label %11090

11090:                                            ; preds = %11089, %11026
  br label %11091

11091:                                            ; preds = %11090
  br label %11092

11092:                                            ; preds = %11091
  br label %11093

11093:                                            ; preds = %11092
  %11094 = load i32, ptr @test_count, align 4, !tbaa !5
  %11095 = add nsw i32 %11094, 1
  store i32 %11095, ptr @test_count, align 4, !tbaa !5
  %11096 = load ptr, ptr %277, align 8, !tbaa !9
  %11097 = getelementptr inbounds %struct.s2n_connection, ptr %11096, i32 0, i32 28
  %11098 = getelementptr inbounds %struct.s2n_secrets, ptr %11097, i32 0, i32 0
  %11099 = getelementptr inbounds %struct.s2n_tls13_secrets, ptr %11098, i32 0, i32 3
  %11100 = getelementptr inbounds [48 x i8], ptr %11099, i64 0, i64 0
  %11101 = getelementptr inbounds [48 x i8], ptr %9, i64 0, i64 0
  %11102 = call i32 @memcmp(ptr noundef %11100, ptr noundef %11101, i64 noundef 48) #14
  %11103 = icmp eq i32 %11102, 0
  br i1 %11103, label %11104, label %11157

11104:                                            ; preds = %11093
  br label %11105

11105:                                            ; preds = %11104
  br label %11106

11106:                                            ; preds = %11105
  call void @llvm.lifetime.start.p0(i64 4, ptr %287) #11
  %11107 = call ptr @__errno_location() #12
  %11108 = load i32, ptr %11107, align 4, !tbaa !5
  store i32 %11108, ptr %287, align 4, !tbaa !5
  %11109 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11110 = call i32 @s2n_print_stacktrace(ptr noundef %11109)
  %11111 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11112 = trunc i8 %11111 to i1
  br i1 %11112, label %11113, label %11135

11113:                                            ; preds = %11106
  %11114 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11115 = call i32 @fileno(ptr noundef %11114) #11
  %11116 = call i32 @isatty(i32 noundef %11115) #11
  %11117 = icmp ne i32 %11116, 0
  br i1 %11117, label %11118, label %11135

11118:                                            ; preds = %11113
  %11119 = load i32, ptr %287, align 4, !tbaa !5
  %11120 = call ptr @__errno_location() #12
  store i32 %11119, ptr %11120, align 4, !tbaa !5
  %11121 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11122 = load i32, ptr @test_count, align 4, !tbaa !5
  %11123 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11124 = load i32, ptr %11123, align 4, !tbaa !5
  %11125 = call ptr @s2n_strerror(i32 noundef %11124, ptr noundef @.str.4)
  %11126 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11127 = load i32, ptr %11126, align 4, !tbaa !5
  %11128 = call ptr @s2n_strerror_debug(i32 noundef %11127, ptr noundef @.str.4)
  %11129 = call ptr @__errno_location() #12
  %11130 = load i32, ptr %11129, align 4, !tbaa !5
  %11131 = call ptr @strerror(i32 noundef %11130) #11
  %11132 = call ptr @__errno_location() #12
  %11133 = load i32, ptr %11132, align 4, !tbaa !5
  %11134 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11121, ptr noundef @.str.2, i32 noundef %11122, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 419, ptr noundef %11125, ptr noundef %11128, ptr noundef %11131, i32 noundef %11133) #11
  br label %11152

11135:                                            ; preds = %11113, %11106
  %11136 = load i32, ptr %287, align 4, !tbaa !5
  %11137 = call ptr @__errno_location() #12
  store i32 %11136, ptr %11137, align 4, !tbaa !5
  %11138 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11139 = load i32, ptr @test_count, align 4, !tbaa !5
  %11140 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11141 = load i32, ptr %11140, align 4, !tbaa !5
  %11142 = call ptr @s2n_strerror(i32 noundef %11141, ptr noundef @.str.4)
  %11143 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11144 = load i32, ptr %11143, align 4, !tbaa !5
  %11145 = call ptr @s2n_strerror_debug(i32 noundef %11144, ptr noundef @.str.4)
  %11146 = call ptr @__errno_location() #12
  %11147 = load i32, ptr %11146, align 4, !tbaa !5
  %11148 = call ptr @strerror(i32 noundef %11147) #11
  %11149 = call ptr @__errno_location() #12
  %11150 = load i32, ptr %11149, align 4, !tbaa !5
  %11151 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11138, ptr noundef @.str.5, i32 noundef %11139, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 419, ptr noundef %11142, ptr noundef %11145, ptr noundef %11148, i32 noundef %11150) #11
  br label %11152

11152:                                            ; preds = %11135, %11118
  call void @llvm.lifetime.end.p0(i64 4, ptr %287) #11
  br label %11153

11153:                                            ; preds = %11152
  br label %11154

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

11155:                                            ; No predecessors!
  br label %11156

11156:                                            ; preds = %11155
  br label %11157

11157:                                            ; preds = %11156, %11093
  br label %11158

11158:                                            ; preds = %11157
  br label %11159

11159:                                            ; preds = %11158
  %11160 = call i32 @s2n_connection_ptr_free(ptr noundef %277)
  %11161 = getelementptr inbounds %struct.s2n_result, ptr %288, i32 0, i32 0
  store i32 %11160, ptr %11161, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %277) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %289) #11
  %11162 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %11162, ptr %289, align 8, !tbaa !9
  %11163 = load ptr, ptr %289, align 8, !tbaa !9
  %11164 = getelementptr inbounds %struct.s2n_connection, ptr %11163, i32 0, i32 27
  %11165 = load ptr, ptr %11164, align 8, !tbaa !39
  %11166 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %11165, i32 0, i32 0
  store ptr @s2n_tls13_aes_128_gcm_sha256, ptr %11166, align 8, !tbaa !64
  %11167 = load ptr, ptr %289, align 8, !tbaa !9
  %11168 = getelementptr inbounds %struct.s2n_connection, ptr %11167, i32 0, i32 23
  store i8 34, ptr %11168, align 4, !tbaa !72
  br label %11169

11169:                                            ; preds = %11159
  %11170 = load i32, ptr @test_count, align 4, !tbaa !5
  %11171 = add nsw i32 %11170, 1
  store i32 %11171, ptr @test_count, align 4, !tbaa !5
  %11172 = load ptr, ptr %289, align 8, !tbaa !9
  %11173 = call i32 @s2n_connection_set_test_handshake_secret(ptr noundef %11172, ptr noundef %13)
  %11174 = getelementptr inbounds %struct.s2n_result, ptr %290, i32 0, i32 0
  store i32 %11173, ptr %11174, align 4
  %11175 = getelementptr inbounds %struct.s2n_result, ptr %290, i32 0, i32 0
  %11176 = load i32, ptr %11175, align 4
  %11177 = call zeroext i1 @s2n_result_is_ok(i32 %11176)
  br i1 %11177, label %11231, label %11178

11178:                                            ; preds = %11169
  br label %11179

11179:                                            ; preds = %11178
  br label %11180

11180:                                            ; preds = %11179
  call void @llvm.lifetime.start.p0(i64 4, ptr %291) #11
  %11181 = call ptr @__errno_location() #12
  %11182 = load i32, ptr %11181, align 4, !tbaa !5
  store i32 %11182, ptr %291, align 4, !tbaa !5
  %11183 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11184 = call i32 @s2n_print_stacktrace(ptr noundef %11183)
  %11185 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11186 = trunc i8 %11185 to i1
  br i1 %11186, label %11187, label %11209

11187:                                            ; preds = %11180
  %11188 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11189 = call i32 @fileno(ptr noundef %11188) #11
  %11190 = call i32 @isatty(i32 noundef %11189) #11
  %11191 = icmp ne i32 %11190, 0
  br i1 %11191, label %11192, label %11209

11192:                                            ; preds = %11187
  %11193 = load i32, ptr %291, align 4, !tbaa !5
  %11194 = call ptr @__errno_location() #12
  store i32 %11193, ptr %11194, align 4, !tbaa !5
  %11195 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11196 = load i32, ptr @test_count, align 4, !tbaa !5
  %11197 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11198 = load i32, ptr %11197, align 4, !tbaa !5
  %11199 = call ptr @s2n_strerror(i32 noundef %11198, ptr noundef @.str.4)
  %11200 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11201 = load i32, ptr %11200, align 4, !tbaa !5
  %11202 = call ptr @s2n_strerror_debug(i32 noundef %11201, ptr noundef @.str.4)
  %11203 = call ptr @__errno_location() #12
  %11204 = load i32, ptr %11203, align 4, !tbaa !5
  %11205 = call ptr @strerror(i32 noundef %11204) #11
  %11206 = call ptr @__errno_location() #12
  %11207 = load i32, ptr %11206, align 4, !tbaa !5
  %11208 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11195, ptr noundef @.str.2, i32 noundef %11196, ptr noundef @.str.77, ptr noundef @.str.1, i32 noundef 428, ptr noundef %11199, ptr noundef %11202, ptr noundef %11205, i32 noundef %11207) #11
  br label %11226

11209:                                            ; preds = %11187, %11180
  %11210 = load i32, ptr %291, align 4, !tbaa !5
  %11211 = call ptr @__errno_location() #12
  store i32 %11210, ptr %11211, align 4, !tbaa !5
  %11212 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11213 = load i32, ptr @test_count, align 4, !tbaa !5
  %11214 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11215 = load i32, ptr %11214, align 4, !tbaa !5
  %11216 = call ptr @s2n_strerror(i32 noundef %11215, ptr noundef @.str.4)
  %11217 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11218 = load i32, ptr %11217, align 4, !tbaa !5
  %11219 = call ptr @s2n_strerror_debug(i32 noundef %11218, ptr noundef @.str.4)
  %11220 = call ptr @__errno_location() #12
  %11221 = load i32, ptr %11220, align 4, !tbaa !5
  %11222 = call ptr @strerror(i32 noundef %11221) #11
  %11223 = call ptr @__errno_location() #12
  %11224 = load i32, ptr %11223, align 4, !tbaa !5
  %11225 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11212, ptr noundef @.str.5, i32 noundef %11213, ptr noundef @.str.77, ptr noundef @.str.1, i32 noundef 428, ptr noundef %11216, ptr noundef %11219, ptr noundef %11222, i32 noundef %11224) #11
  br label %11226

11226:                                            ; preds = %11209, %11192
  call void @llvm.lifetime.end.p0(i64 4, ptr %291) #11
  br label %11227

11227:                                            ; preds = %11226
  br label %11228

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

11229:                                            ; No predecessors!
  br label %11230

11230:                                            ; preds = %11229
  br label %11231

11231:                                            ; preds = %11230, %11169
  br label %11232

11232:                                            ; preds = %11231
  br label %11233

11233:                                            ; preds = %11232
  br label %11234

11234:                                            ; preds = %11233
  %11235 = load i32, ptr @test_count, align 4, !tbaa !5
  %11236 = add nsw i32 %11235, 1
  store i32 %11236, ptr @test_count, align 4, !tbaa !5
  %11237 = load ptr, ptr %289, align 8, !tbaa !9
  %11238 = getelementptr inbounds %struct.s2n_connection, ptr %11237, i32 0, i32 52
  %11239 = getelementptr inbounds %struct.s2n_handshake, ptr %11238, i32 0, i32 5
  %11240 = load i8, ptr %11239, align 8, !tbaa !78
  %11241 = zext i8 %11240 to i32
  %11242 = icmp eq i32 %11241, 0
  br i1 %11242, label %11296, label %11243

11243:                                            ; preds = %11234
  br label %11244

11244:                                            ; preds = %11243
  br label %11245

11245:                                            ; preds = %11244
  call void @llvm.lifetime.start.p0(i64 4, ptr %292) #11
  %11246 = call ptr @__errno_location() #12
  %11247 = load i32, ptr %11246, align 4, !tbaa !5
  store i32 %11247, ptr %292, align 4, !tbaa !5
  %11248 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11249 = call i32 @s2n_print_stacktrace(ptr noundef %11248)
  %11250 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11251 = trunc i8 %11250 to i1
  br i1 %11251, label %11252, label %11274

11252:                                            ; preds = %11245
  %11253 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11254 = call i32 @fileno(ptr noundef %11253) #11
  %11255 = call i32 @isatty(i32 noundef %11254) #11
  %11256 = icmp ne i32 %11255, 0
  br i1 %11256, label %11257, label %11274

11257:                                            ; preds = %11252
  %11258 = load i32, ptr %292, align 4, !tbaa !5
  %11259 = call ptr @__errno_location() #12
  store i32 %11258, ptr %11259, align 4, !tbaa !5
  %11260 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11261 = load i32, ptr @test_count, align 4, !tbaa !5
  %11262 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11263 = load i32, ptr %11262, align 4, !tbaa !5
  %11264 = call ptr @s2n_strerror(i32 noundef %11263, ptr noundef @.str.4)
  %11265 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11266 = load i32, ptr %11265, align 4, !tbaa !5
  %11267 = call ptr @s2n_strerror_debug(i32 noundef %11266, ptr noundef @.str.4)
  %11268 = call ptr @__errno_location() #12
  %11269 = load i32, ptr %11268, align 4, !tbaa !5
  %11270 = call ptr @strerror(i32 noundef %11269) #11
  %11271 = call ptr @__errno_location() #12
  %11272 = load i32, ptr %11271, align 4, !tbaa !5
  %11273 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11260, ptr noundef @.str.2, i32 noundef %11261, ptr noundef @.str.79, ptr noundef @.str.1, i32 noundef 429, ptr noundef %11264, ptr noundef %11267, ptr noundef %11270, i32 noundef %11272) #11
  br label %11291

11274:                                            ; preds = %11252, %11245
  %11275 = load i32, ptr %292, align 4, !tbaa !5
  %11276 = call ptr @__errno_location() #12
  store i32 %11275, ptr %11276, align 4, !tbaa !5
  %11277 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11278 = load i32, ptr @test_count, align 4, !tbaa !5
  %11279 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11280 = load i32, ptr %11279, align 4, !tbaa !5
  %11281 = call ptr @s2n_strerror(i32 noundef %11280, ptr noundef @.str.4)
  %11282 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11283 = load i32, ptr %11282, align 4, !tbaa !5
  %11284 = call ptr @s2n_strerror_debug(i32 noundef %11283, ptr noundef @.str.4)
  %11285 = call ptr @__errno_location() #12
  %11286 = load i32, ptr %11285, align 4, !tbaa !5
  %11287 = call ptr @strerror(i32 noundef %11286) #11
  %11288 = call ptr @__errno_location() #12
  %11289 = load i32, ptr %11288, align 4, !tbaa !5
  %11290 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11277, ptr noundef @.str.5, i32 noundef %11278, ptr noundef @.str.79, ptr noundef @.str.1, i32 noundef 429, ptr noundef %11281, ptr noundef %11284, ptr noundef %11287, i32 noundef %11289) #11
  br label %11291

11291:                                            ; preds = %11274, %11257
  call void @llvm.lifetime.end.p0(i64 4, ptr %292) #11
  br label %11292

11292:                                            ; preds = %11291
  br label %11293

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

11294:                                            ; No predecessors!
  br label %11295

11295:                                            ; preds = %11294
  br label %11296

11296:                                            ; preds = %11295, %11234
  br label %11297

11297:                                            ; preds = %11296
  br label %11298

11298:                                            ; preds = %11297
  br label %11299

11299:                                            ; preds = %11298
  br label %11300

11300:                                            ; preds = %11299
  %11301 = load i32, ptr @test_count, align 4, !tbaa !5
  %11302 = add nsw i32 %11301, 1
  store i32 %11302, ptr @test_count, align 4, !tbaa !5
  %11303 = load ptr, ptr %289, align 8, !tbaa !9
  %11304 = getelementptr inbounds %struct.s2n_connection, ptr %11303, i32 0, i32 52
  %11305 = getelementptr inbounds %struct.s2n_handshake, ptr %11304, i32 0, i32 4
  %11306 = getelementptr inbounds [48 x i8], ptr %11305, i64 0, i64 0
  %11307 = getelementptr inbounds [48 x i8], ptr %9, i64 0, i64 0
  %11308 = call i32 @memcmp(ptr noundef %11306, ptr noundef %11307, i64 noundef 48) #14
  %11309 = icmp eq i32 %11308, 0
  br i1 %11309, label %11363, label %11310

11310:                                            ; preds = %11300
  br label %11311

11311:                                            ; preds = %11310
  br label %11312

11312:                                            ; preds = %11311
  call void @llvm.lifetime.start.p0(i64 4, ptr %293) #11
  %11313 = call ptr @__errno_location() #12
  %11314 = load i32, ptr %11313, align 4, !tbaa !5
  store i32 %11314, ptr %293, align 4, !tbaa !5
  %11315 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11316 = call i32 @s2n_print_stacktrace(ptr noundef %11315)
  %11317 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11318 = trunc i8 %11317 to i1
  br i1 %11318, label %11319, label %11341

11319:                                            ; preds = %11312
  %11320 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11321 = call i32 @fileno(ptr noundef %11320) #11
  %11322 = call i32 @isatty(i32 noundef %11321) #11
  %11323 = icmp ne i32 %11322, 0
  br i1 %11323, label %11324, label %11341

11324:                                            ; preds = %11319
  %11325 = load i32, ptr %293, align 4, !tbaa !5
  %11326 = call ptr @__errno_location() #12
  store i32 %11325, ptr %11326, align 4, !tbaa !5
  %11327 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11328 = load i32, ptr @test_count, align 4, !tbaa !5
  %11329 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11330 = load i32, ptr %11329, align 4, !tbaa !5
  %11331 = call ptr @s2n_strerror(i32 noundef %11330, ptr noundef @.str.4)
  %11332 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11333 = load i32, ptr %11332, align 4, !tbaa !5
  %11334 = call ptr @s2n_strerror_debug(i32 noundef %11333, ptr noundef @.str.4)
  %11335 = call ptr @__errno_location() #12
  %11336 = load i32, ptr %11335, align 4, !tbaa !5
  %11337 = call ptr @strerror(i32 noundef %11336) #11
  %11338 = call ptr @__errno_location() #12
  %11339 = load i32, ptr %11338, align 4, !tbaa !5
  %11340 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11327, ptr noundef @.str.2, i32 noundef %11328, ptr noundef @.str.80, ptr noundef @.str.1, i32 noundef 431, ptr noundef %11331, ptr noundef %11334, ptr noundef %11337, i32 noundef %11339) #11
  br label %11358

11341:                                            ; preds = %11319, %11312
  %11342 = load i32, ptr %293, align 4, !tbaa !5
  %11343 = call ptr @__errno_location() #12
  store i32 %11342, ptr %11343, align 4, !tbaa !5
  %11344 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11345 = load i32, ptr @test_count, align 4, !tbaa !5
  %11346 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11347 = load i32, ptr %11346, align 4, !tbaa !5
  %11348 = call ptr @s2n_strerror(i32 noundef %11347, ptr noundef @.str.4)
  %11349 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11350 = load i32, ptr %11349, align 4, !tbaa !5
  %11351 = call ptr @s2n_strerror_debug(i32 noundef %11350, ptr noundef @.str.4)
  %11352 = call ptr @__errno_location() #12
  %11353 = load i32, ptr %11352, align 4, !tbaa !5
  %11354 = call ptr @strerror(i32 noundef %11353) #11
  %11355 = call ptr @__errno_location() #12
  %11356 = load i32, ptr %11355, align 4, !tbaa !5
  %11357 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11344, ptr noundef @.str.5, i32 noundef %11345, ptr noundef @.str.80, ptr noundef @.str.1, i32 noundef 431, ptr noundef %11348, ptr noundef %11351, ptr noundef %11354, i32 noundef %11356) #11
  br label %11358

11358:                                            ; preds = %11341, %11324
  call void @llvm.lifetime.end.p0(i64 4, ptr %293) #11
  br label %11359

11359:                                            ; preds = %11358
  br label %11360

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

11361:                                            ; No predecessors!
  br label %11362

11362:                                            ; preds = %11361
  br label %11363

11363:                                            ; preds = %11362, %11300
  br label %11364

11364:                                            ; preds = %11363
  br label %11365

11365:                                            ; preds = %11364
  br label %11366

11366:                                            ; preds = %11365
  br label %11367

11367:                                            ; preds = %11366
  br label %11368

11368:                                            ; preds = %11367
  br label %11369

11369:                                            ; preds = %11368
  %11370 = load i32, ptr @test_count, align 4, !tbaa !5
  %11371 = add nsw i32 %11370, 1
  store i32 %11371, ptr @test_count, align 4, !tbaa !5
  %11372 = load ptr, ptr %289, align 8, !tbaa !9
  %11373 = getelementptr inbounds %struct.s2n_connection, ptr %11372, i32 0, i32 52
  %11374 = getelementptr inbounds %struct.s2n_handshake, ptr %11373, i32 0, i32 3
  %11375 = getelementptr inbounds [48 x i8], ptr %11374, i64 0, i64 0
  %11376 = getelementptr inbounds [48 x i8], ptr %9, i64 0, i64 0
  %11377 = call i32 @memcmp(ptr noundef %11375, ptr noundef %11376, i64 noundef 48) #14
  %11378 = icmp eq i32 %11377, 0
  br i1 %11378, label %11432, label %11379

11379:                                            ; preds = %11369
  br label %11380

11380:                                            ; preds = %11379
  br label %11381

11381:                                            ; preds = %11380
  call void @llvm.lifetime.start.p0(i64 4, ptr %294) #11
  %11382 = call ptr @__errno_location() #12
  %11383 = load i32, ptr %11382, align 4, !tbaa !5
  store i32 %11383, ptr %294, align 4, !tbaa !5
  %11384 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11385 = call i32 @s2n_print_stacktrace(ptr noundef %11384)
  %11386 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11387 = trunc i8 %11386 to i1
  br i1 %11387, label %11388, label %11410

11388:                                            ; preds = %11381
  %11389 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11390 = call i32 @fileno(ptr noundef %11389) #11
  %11391 = call i32 @isatty(i32 noundef %11390) #11
  %11392 = icmp ne i32 %11391, 0
  br i1 %11392, label %11393, label %11410

11393:                                            ; preds = %11388
  %11394 = load i32, ptr %294, align 4, !tbaa !5
  %11395 = call ptr @__errno_location() #12
  store i32 %11394, ptr %11395, align 4, !tbaa !5
  %11396 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11397 = load i32, ptr @test_count, align 4, !tbaa !5
  %11398 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11399 = load i32, ptr %11398, align 4, !tbaa !5
  %11400 = call ptr @s2n_strerror(i32 noundef %11399, ptr noundef @.str.4)
  %11401 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11402 = load i32, ptr %11401, align 4, !tbaa !5
  %11403 = call ptr @s2n_strerror_debug(i32 noundef %11402, ptr noundef @.str.4)
  %11404 = call ptr @__errno_location() #12
  %11405 = load i32, ptr %11404, align 4, !tbaa !5
  %11406 = call ptr @strerror(i32 noundef %11405) #11
  %11407 = call ptr @__errno_location() #12
  %11408 = load i32, ptr %11407, align 4, !tbaa !5
  %11409 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11396, ptr noundef @.str.2, i32 noundef %11397, ptr noundef @.str.81, ptr noundef @.str.1, i32 noundef 433, ptr noundef %11400, ptr noundef %11403, ptr noundef %11406, i32 noundef %11408) #11
  br label %11427

11410:                                            ; preds = %11388, %11381
  %11411 = load i32, ptr %294, align 4, !tbaa !5
  %11412 = call ptr @__errno_location() #12
  store i32 %11411, ptr %11412, align 4, !tbaa !5
  %11413 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11414 = load i32, ptr @test_count, align 4, !tbaa !5
  %11415 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11416 = load i32, ptr %11415, align 4, !tbaa !5
  %11417 = call ptr @s2n_strerror(i32 noundef %11416, ptr noundef @.str.4)
  %11418 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11419 = load i32, ptr %11418, align 4, !tbaa !5
  %11420 = call ptr @s2n_strerror_debug(i32 noundef %11419, ptr noundef @.str.4)
  %11421 = call ptr @__errno_location() #12
  %11422 = load i32, ptr %11421, align 4, !tbaa !5
  %11423 = call ptr @strerror(i32 noundef %11422) #11
  %11424 = call ptr @__errno_location() #12
  %11425 = load i32, ptr %11424, align 4, !tbaa !5
  %11426 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11413, ptr noundef @.str.5, i32 noundef %11414, ptr noundef @.str.81, ptr noundef @.str.1, i32 noundef 433, ptr noundef %11417, ptr noundef %11420, ptr noundef %11423, i32 noundef %11425) #11
  br label %11427

11427:                                            ; preds = %11410, %11393
  call void @llvm.lifetime.end.p0(i64 4, ptr %294) #11
  br label %11428

11428:                                            ; preds = %11427
  br label %11429

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

11430:                                            ; No predecessors!
  br label %11431

11431:                                            ; preds = %11430
  br label %11432

11432:                                            ; preds = %11431, %11369
  br label %11433

11433:                                            ; preds = %11432
  br label %11434

11434:                                            ; preds = %11433
  br label %11435

11435:                                            ; preds = %11434
  br label %11436

11436:                                            ; preds = %11435
  br label %11437

11437:                                            ; preds = %11436
  %11438 = load i32, ptr @test_count, align 4, !tbaa !5
  %11439 = add nsw i32 %11438, 1
  store i32 %11439, ptr @test_count, align 4, !tbaa !5
  %11440 = load ptr, ptr %289, align 8, !tbaa !9
  %11441 = call i32 @s2n_connection_set_test_message_type(ptr noundef %11440, i32 noundef 1)
  %11442 = getelementptr inbounds %struct.s2n_result, ptr %295, i32 0, i32 0
  store i32 %11441, ptr %11442, align 4
  %11443 = getelementptr inbounds %struct.s2n_result, ptr %295, i32 0, i32 0
  %11444 = load i32, ptr %11443, align 4
  %11445 = call zeroext i1 @s2n_result_is_ok(i32 %11444)
  br i1 %11445, label %11499, label %11446

11446:                                            ; preds = %11437
  br label %11447

11447:                                            ; preds = %11446
  br label %11448

11448:                                            ; preds = %11447
  call void @llvm.lifetime.start.p0(i64 4, ptr %296) #11
  %11449 = call ptr @__errno_location() #12
  %11450 = load i32, ptr %11449, align 4, !tbaa !5
  store i32 %11450, ptr %296, align 4, !tbaa !5
  %11451 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11452 = call i32 @s2n_print_stacktrace(ptr noundef %11451)
  %11453 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11454 = trunc i8 %11453 to i1
  br i1 %11454, label %11455, label %11477

11455:                                            ; preds = %11448
  %11456 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11457 = call i32 @fileno(ptr noundef %11456) #11
  %11458 = call i32 @isatty(i32 noundef %11457) #11
  %11459 = icmp ne i32 %11458, 0
  br i1 %11459, label %11460, label %11477

11460:                                            ; preds = %11455
  %11461 = load i32, ptr %296, align 4, !tbaa !5
  %11462 = call ptr @__errno_location() #12
  store i32 %11461, ptr %11462, align 4, !tbaa !5
  %11463 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11464 = load i32, ptr @test_count, align 4, !tbaa !5
  %11465 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11466 = load i32, ptr %11465, align 4, !tbaa !5
  %11467 = call ptr @s2n_strerror(i32 noundef %11466, ptr noundef @.str.4)
  %11468 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11469 = load i32, ptr %11468, align 4, !tbaa !5
  %11470 = call ptr @s2n_strerror_debug(i32 noundef %11469, ptr noundef @.str.4)
  %11471 = call ptr @__errno_location() #12
  %11472 = load i32, ptr %11471, align 4, !tbaa !5
  %11473 = call ptr @strerror(i32 noundef %11472) #11
  %11474 = call ptr @__errno_location() #12
  %11475 = load i32, ptr %11474, align 4, !tbaa !5
  %11476 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11463, ptr noundef @.str.2, i32 noundef %11464, ptr noundef @.str.78, ptr noundef @.str.1, i32 noundef 435, ptr noundef %11467, ptr noundef %11470, ptr noundef %11473, i32 noundef %11475) #11
  br label %11494

11477:                                            ; preds = %11455, %11448
  %11478 = load i32, ptr %296, align 4, !tbaa !5
  %11479 = call ptr @__errno_location() #12
  store i32 %11478, ptr %11479, align 4, !tbaa !5
  %11480 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11481 = load i32, ptr @test_count, align 4, !tbaa !5
  %11482 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11483 = load i32, ptr %11482, align 4, !tbaa !5
  %11484 = call ptr @s2n_strerror(i32 noundef %11483, ptr noundef @.str.4)
  %11485 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11486 = load i32, ptr %11485, align 4, !tbaa !5
  %11487 = call ptr @s2n_strerror_debug(i32 noundef %11486, ptr noundef @.str.4)
  %11488 = call ptr @__errno_location() #12
  %11489 = load i32, ptr %11488, align 4, !tbaa !5
  %11490 = call ptr @strerror(i32 noundef %11489) #11
  %11491 = call ptr @__errno_location() #12
  %11492 = load i32, ptr %11491, align 4, !tbaa !5
  %11493 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11480, ptr noundef @.str.5, i32 noundef %11481, ptr noundef @.str.78, ptr noundef @.str.1, i32 noundef 435, ptr noundef %11484, ptr noundef %11487, ptr noundef %11490, i32 noundef %11492) #11
  br label %11494

11494:                                            ; preds = %11477, %11460
  call void @llvm.lifetime.end.p0(i64 4, ptr %296) #11
  br label %11495

11495:                                            ; preds = %11494
  br label %11496

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

11497:                                            ; No predecessors!
  br label %11498

11498:                                            ; preds = %11497
  br label %11499

11499:                                            ; preds = %11498, %11437
  br label %11500

11500:                                            ; preds = %11499
  br label %11501

11501:                                            ; preds = %11500
  br label %11502

11502:                                            ; preds = %11501
  %11503 = load i32, ptr @test_count, align 4, !tbaa !5
  %11504 = add nsw i32 %11503, 1
  store i32 %11504, ptr @test_count, align 4, !tbaa !5
  %11505 = load ptr, ptr %289, align 8, !tbaa !9
  %11506 = call i32 @s2n_tls13_secrets_update(ptr noundef %11505)
  %11507 = getelementptr inbounds %struct.s2n_result, ptr %297, i32 0, i32 0
  store i32 %11506, ptr %11507, align 4
  %11508 = getelementptr inbounds %struct.s2n_result, ptr %297, i32 0, i32 0
  %11509 = load i32, ptr %11508, align 4
  %11510 = call zeroext i1 @s2n_result_is_ok(i32 %11509)
  br i1 %11510, label %11564, label %11511

11511:                                            ; preds = %11502
  br label %11512

11512:                                            ; preds = %11511
  br label %11513

11513:                                            ; preds = %11512
  call void @llvm.lifetime.start.p0(i64 4, ptr %298) #11
  %11514 = call ptr @__errno_location() #12
  %11515 = load i32, ptr %11514, align 4, !tbaa !5
  store i32 %11515, ptr %298, align 4, !tbaa !5
  %11516 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11517 = call i32 @s2n_print_stacktrace(ptr noundef %11516)
  %11518 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11519 = trunc i8 %11518 to i1
  br i1 %11519, label %11520, label %11542

11520:                                            ; preds = %11513
  %11521 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11522 = call i32 @fileno(ptr noundef %11521) #11
  %11523 = call i32 @isatty(i32 noundef %11522) #11
  %11524 = icmp ne i32 %11523, 0
  br i1 %11524, label %11525, label %11542

11525:                                            ; preds = %11520
  %11526 = load i32, ptr %298, align 4, !tbaa !5
  %11527 = call ptr @__errno_location() #12
  store i32 %11526, ptr %11527, align 4, !tbaa !5
  %11528 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11529 = load i32, ptr @test_count, align 4, !tbaa !5
  %11530 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11531 = load i32, ptr %11530, align 4, !tbaa !5
  %11532 = call ptr @s2n_strerror(i32 noundef %11531, ptr noundef @.str.4)
  %11533 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11534 = load i32, ptr %11533, align 4, !tbaa !5
  %11535 = call ptr @s2n_strerror_debug(i32 noundef %11534, ptr noundef @.str.4)
  %11536 = call ptr @__errno_location() #12
  %11537 = load i32, ptr %11536, align 4, !tbaa !5
  %11538 = call ptr @strerror(i32 noundef %11537) #11
  %11539 = call ptr @__errno_location() #12
  %11540 = load i32, ptr %11539, align 4, !tbaa !5
  %11541 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11528, ptr noundef @.str.2, i32 noundef %11529, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 436, ptr noundef %11532, ptr noundef %11535, ptr noundef %11538, i32 noundef %11540) #11
  br label %11559

11542:                                            ; preds = %11520, %11513
  %11543 = load i32, ptr %298, align 4, !tbaa !5
  %11544 = call ptr @__errno_location() #12
  store i32 %11543, ptr %11544, align 4, !tbaa !5
  %11545 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11546 = load i32, ptr @test_count, align 4, !tbaa !5
  %11547 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11548 = load i32, ptr %11547, align 4, !tbaa !5
  %11549 = call ptr @s2n_strerror(i32 noundef %11548, ptr noundef @.str.4)
  %11550 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11551 = load i32, ptr %11550, align 4, !tbaa !5
  %11552 = call ptr @s2n_strerror_debug(i32 noundef %11551, ptr noundef @.str.4)
  %11553 = call ptr @__errno_location() #12
  %11554 = load i32, ptr %11553, align 4, !tbaa !5
  %11555 = call ptr @strerror(i32 noundef %11554) #11
  %11556 = call ptr @__errno_location() #12
  %11557 = load i32, ptr %11556, align 4, !tbaa !5
  %11558 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11545, ptr noundef @.str.5, i32 noundef %11546, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 436, ptr noundef %11549, ptr noundef %11552, ptr noundef %11555, i32 noundef %11557) #11
  br label %11559

11559:                                            ; preds = %11542, %11525
  call void @llvm.lifetime.end.p0(i64 4, ptr %298) #11
  br label %11560

11560:                                            ; preds = %11559
  br label %11561

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

11562:                                            ; No predecessors!
  br label %11563

11563:                                            ; preds = %11562
  br label %11564

11564:                                            ; preds = %11563, %11502
  br label %11565

11565:                                            ; preds = %11564
  br label %11566

11566:                                            ; preds = %11565
  call void @llvm.lifetime.start.p0(i64 1, ptr %299) #11
  store i8 0, ptr %299, align 1, !tbaa !79
  br label %11567

11567:                                            ; preds = %11566
  %11568 = load i32, ptr @test_count, align 4, !tbaa !5
  %11569 = add nsw i32 %11568, 1
  store i32 %11569, ptr @test_count, align 4, !tbaa !5
  %11570 = load ptr, ptr %289, align 8, !tbaa !9
  %11571 = getelementptr inbounds %struct.s2n_connection, ptr %11570, i32 0, i32 27
  %11572 = load ptr, ptr %11571, align 8, !tbaa !39
  %11573 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %11572, i32 0, i32 0
  %11574 = load ptr, ptr %11573, align 8, !tbaa !64
  %11575 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %11574, i32 0, i32 11
  %11576 = load i32, ptr %11575, align 8, !tbaa !80
  %11577 = call i32 @s2n_hmac_digest_size(i32 noundef %11576, ptr noundef %299)
  %11578 = icmp eq i32 %11577, -1
  br i1 %11578, label %11579, label %11632

11579:                                            ; preds = %11567
  br label %11580

11580:                                            ; preds = %11579
  br label %11581

11581:                                            ; preds = %11580
  call void @llvm.lifetime.start.p0(i64 4, ptr %300) #11
  %11582 = call ptr @__errno_location() #12
  %11583 = load i32, ptr %11582, align 4, !tbaa !5
  store i32 %11583, ptr %300, align 4, !tbaa !5
  %11584 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11585 = call i32 @s2n_print_stacktrace(ptr noundef %11584)
  %11586 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11587 = trunc i8 %11586 to i1
  br i1 %11587, label %11588, label %11610

11588:                                            ; preds = %11581
  %11589 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11590 = call i32 @fileno(ptr noundef %11589) #11
  %11591 = call i32 @isatty(i32 noundef %11590) #11
  %11592 = icmp ne i32 %11591, 0
  br i1 %11592, label %11593, label %11610

11593:                                            ; preds = %11588
  %11594 = load i32, ptr %300, align 4, !tbaa !5
  %11595 = call ptr @__errno_location() #12
  store i32 %11594, ptr %11595, align 4, !tbaa !5
  %11596 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11597 = load i32, ptr @test_count, align 4, !tbaa !5
  %11598 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11599 = load i32, ptr %11598, align 4, !tbaa !5
  %11600 = call ptr @s2n_strerror(i32 noundef %11599, ptr noundef @.str.4)
  %11601 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11602 = load i32, ptr %11601, align 4, !tbaa !5
  %11603 = call ptr @s2n_strerror_debug(i32 noundef %11602, ptr noundef @.str.4)
  %11604 = call ptr @__errno_location() #12
  %11605 = load i32, ptr %11604, align 4, !tbaa !5
  %11606 = call ptr @strerror(i32 noundef %11605) #11
  %11607 = call ptr @__errno_location() #12
  %11608 = load i32, ptr %11607, align 4, !tbaa !5
  %11609 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11596, ptr noundef @.str.2, i32 noundef %11597, ptr noundef @.str.82, ptr noundef @.str.1, i32 noundef 439, ptr noundef %11600, ptr noundef %11603, ptr noundef %11606, i32 noundef %11608) #11
  br label %11627

11610:                                            ; preds = %11588, %11581
  %11611 = load i32, ptr %300, align 4, !tbaa !5
  %11612 = call ptr @__errno_location() #12
  store i32 %11611, ptr %11612, align 4, !tbaa !5
  %11613 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11614 = load i32, ptr @test_count, align 4, !tbaa !5
  %11615 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11616 = load i32, ptr %11615, align 4, !tbaa !5
  %11617 = call ptr @s2n_strerror(i32 noundef %11616, ptr noundef @.str.4)
  %11618 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11619 = load i32, ptr %11618, align 4, !tbaa !5
  %11620 = call ptr @s2n_strerror_debug(i32 noundef %11619, ptr noundef @.str.4)
  %11621 = call ptr @__errno_location() #12
  %11622 = load i32, ptr %11621, align 4, !tbaa !5
  %11623 = call ptr @strerror(i32 noundef %11622) #11
  %11624 = call ptr @__errno_location() #12
  %11625 = load i32, ptr %11624, align 4, !tbaa !5
  %11626 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11613, ptr noundef @.str.5, i32 noundef %11614, ptr noundef @.str.82, ptr noundef @.str.1, i32 noundef 439, ptr noundef %11617, ptr noundef %11620, ptr noundef %11623, i32 noundef %11625) #11
  br label %11627

11627:                                            ; preds = %11610, %11593
  call void @llvm.lifetime.end.p0(i64 4, ptr %300) #11
  br label %11628

11628:                                            ; preds = %11627
  br label %11629

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

11630:                                            ; No predecessors!
  br label %11631

11631:                                            ; preds = %11630
  br label %11632

11632:                                            ; preds = %11631, %11567
  br label %11633

11633:                                            ; preds = %11632
  br label %11634

11634:                                            ; preds = %11633
  br label %11635

11635:                                            ; preds = %11634
  %11636 = load i32, ptr @test_count, align 4, !tbaa !5
  %11637 = add nsw i32 %11636, 1
  store i32 %11637, ptr @test_count, align 4, !tbaa !5
  %11638 = load ptr, ptr %289, align 8, !tbaa !9
  %11639 = getelementptr inbounds %struct.s2n_connection, ptr %11638, i32 0, i32 52
  %11640 = getelementptr inbounds %struct.s2n_handshake, ptr %11639, i32 0, i32 5
  %11641 = load i8, ptr %11640, align 8, !tbaa !78
  %11642 = zext i8 %11641 to i32
  %11643 = load i8, ptr %299, align 1, !tbaa !79
  %11644 = zext i8 %11643 to i32
  %11645 = icmp eq i32 %11642, %11644
  br i1 %11645, label %11699, label %11646

11646:                                            ; preds = %11635
  br label %11647

11647:                                            ; preds = %11646
  br label %11648

11648:                                            ; preds = %11647
  call void @llvm.lifetime.start.p0(i64 4, ptr %301) #11
  %11649 = call ptr @__errno_location() #12
  %11650 = load i32, ptr %11649, align 4, !tbaa !5
  store i32 %11650, ptr %301, align 4, !tbaa !5
  %11651 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11652 = call i32 @s2n_print_stacktrace(ptr noundef %11651)
  %11653 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11654 = trunc i8 %11653 to i1
  br i1 %11654, label %11655, label %11677

11655:                                            ; preds = %11648
  %11656 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11657 = call i32 @fileno(ptr noundef %11656) #11
  %11658 = call i32 @isatty(i32 noundef %11657) #11
  %11659 = icmp ne i32 %11658, 0
  br i1 %11659, label %11660, label %11677

11660:                                            ; preds = %11655
  %11661 = load i32, ptr %301, align 4, !tbaa !5
  %11662 = call ptr @__errno_location() #12
  store i32 %11661, ptr %11662, align 4, !tbaa !5
  %11663 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11664 = load i32, ptr @test_count, align 4, !tbaa !5
  %11665 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11666 = load i32, ptr %11665, align 4, !tbaa !5
  %11667 = call ptr @s2n_strerror(i32 noundef %11666, ptr noundef @.str.4)
  %11668 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11669 = load i32, ptr %11668, align 4, !tbaa !5
  %11670 = call ptr @s2n_strerror_debug(i32 noundef %11669, ptr noundef @.str.4)
  %11671 = call ptr @__errno_location() #12
  %11672 = load i32, ptr %11671, align 4, !tbaa !5
  %11673 = call ptr @strerror(i32 noundef %11672) #11
  %11674 = call ptr @__errno_location() #12
  %11675 = load i32, ptr %11674, align 4, !tbaa !5
  %11676 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11663, ptr noundef @.str.2, i32 noundef %11664, ptr noundef @.str.83, ptr noundef @.str.1, i32 noundef 440, ptr noundef %11667, ptr noundef %11670, ptr noundef %11673, i32 noundef %11675) #11
  br label %11694

11677:                                            ; preds = %11655, %11648
  %11678 = load i32, ptr %301, align 4, !tbaa !5
  %11679 = call ptr @__errno_location() #12
  store i32 %11678, ptr %11679, align 4, !tbaa !5
  %11680 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11681 = load i32, ptr @test_count, align 4, !tbaa !5
  %11682 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11683 = load i32, ptr %11682, align 4, !tbaa !5
  %11684 = call ptr @s2n_strerror(i32 noundef %11683, ptr noundef @.str.4)
  %11685 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11686 = load i32, ptr %11685, align 4, !tbaa !5
  %11687 = call ptr @s2n_strerror_debug(i32 noundef %11686, ptr noundef @.str.4)
  %11688 = call ptr @__errno_location() #12
  %11689 = load i32, ptr %11688, align 4, !tbaa !5
  %11690 = call ptr @strerror(i32 noundef %11689) #11
  %11691 = call ptr @__errno_location() #12
  %11692 = load i32, ptr %11691, align 4, !tbaa !5
  %11693 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11680, ptr noundef @.str.5, i32 noundef %11681, ptr noundef @.str.83, ptr noundef @.str.1, i32 noundef 440, ptr noundef %11684, ptr noundef %11687, ptr noundef %11690, i32 noundef %11692) #11
  br label %11694

11694:                                            ; preds = %11677, %11660
  call void @llvm.lifetime.end.p0(i64 4, ptr %301) #11
  br label %11695

11695:                                            ; preds = %11694
  br label %11696

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

11697:                                            ; No predecessors!
  br label %11698

11698:                                            ; preds = %11697
  br label %11699

11699:                                            ; preds = %11698, %11635
  br label %11700

11700:                                            ; preds = %11699
  br label %11701

11701:                                            ; preds = %11700
  br label %11702

11702:                                            ; preds = %11701
  %11703 = load i32, ptr @test_count, align 4, !tbaa !5
  %11704 = add nsw i32 %11703, 1
  store i32 %11704, ptr @test_count, align 4, !tbaa !5
  %11705 = load ptr, ptr %289, align 8, !tbaa !9
  %11706 = getelementptr inbounds %struct.s2n_connection, ptr %11705, i32 0, i32 52
  %11707 = getelementptr inbounds %struct.s2n_handshake, ptr %11706, i32 0, i32 4
  %11708 = getelementptr inbounds [48 x i8], ptr %11707, i64 0, i64 0
  %11709 = getelementptr inbounds [48 x i8], ptr %9, i64 0, i64 0
  %11710 = call i32 @memcmp(ptr noundef %11708, ptr noundef %11709, i64 noundef 48) #14
  %11711 = icmp eq i32 %11710, 0
  br i1 %11711, label %11712, label %11765

11712:                                            ; preds = %11702
  br label %11713

11713:                                            ; preds = %11712
  br label %11714

11714:                                            ; preds = %11713
  call void @llvm.lifetime.start.p0(i64 4, ptr %302) #11
  %11715 = call ptr @__errno_location() #12
  %11716 = load i32, ptr %11715, align 4, !tbaa !5
  store i32 %11716, ptr %302, align 4, !tbaa !5
  %11717 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11718 = call i32 @s2n_print_stacktrace(ptr noundef %11717)
  %11719 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11720 = trunc i8 %11719 to i1
  br i1 %11720, label %11721, label %11743

11721:                                            ; preds = %11714
  %11722 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11723 = call i32 @fileno(ptr noundef %11722) #11
  %11724 = call i32 @isatty(i32 noundef %11723) #11
  %11725 = icmp ne i32 %11724, 0
  br i1 %11725, label %11726, label %11743

11726:                                            ; preds = %11721
  %11727 = load i32, ptr %302, align 4, !tbaa !5
  %11728 = call ptr @__errno_location() #12
  store i32 %11727, ptr %11728, align 4, !tbaa !5
  %11729 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11730 = load i32, ptr @test_count, align 4, !tbaa !5
  %11731 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11732 = load i32, ptr %11731, align 4, !tbaa !5
  %11733 = call ptr @s2n_strerror(i32 noundef %11732, ptr noundef @.str.4)
  %11734 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11735 = load i32, ptr %11734, align 4, !tbaa !5
  %11736 = call ptr @s2n_strerror_debug(i32 noundef %11735, ptr noundef @.str.4)
  %11737 = call ptr @__errno_location() #12
  %11738 = load i32, ptr %11737, align 4, !tbaa !5
  %11739 = call ptr @strerror(i32 noundef %11738) #11
  %11740 = call ptr @__errno_location() #12
  %11741 = load i32, ptr %11740, align 4, !tbaa !5
  %11742 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11729, ptr noundef @.str.2, i32 noundef %11730, ptr noundef @.str.84, ptr noundef @.str.1, i32 noundef 442, ptr noundef %11733, ptr noundef %11736, ptr noundef %11739, i32 noundef %11741) #11
  br label %11760

11743:                                            ; preds = %11721, %11714
  %11744 = load i32, ptr %302, align 4, !tbaa !5
  %11745 = call ptr @__errno_location() #12
  store i32 %11744, ptr %11745, align 4, !tbaa !5
  %11746 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11747 = load i32, ptr @test_count, align 4, !tbaa !5
  %11748 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11749 = load i32, ptr %11748, align 4, !tbaa !5
  %11750 = call ptr @s2n_strerror(i32 noundef %11749, ptr noundef @.str.4)
  %11751 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11752 = load i32, ptr %11751, align 4, !tbaa !5
  %11753 = call ptr @s2n_strerror_debug(i32 noundef %11752, ptr noundef @.str.4)
  %11754 = call ptr @__errno_location() #12
  %11755 = load i32, ptr %11754, align 4, !tbaa !5
  %11756 = call ptr @strerror(i32 noundef %11755) #11
  %11757 = call ptr @__errno_location() #12
  %11758 = load i32, ptr %11757, align 4, !tbaa !5
  %11759 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11746, ptr noundef @.str.5, i32 noundef %11747, ptr noundef @.str.84, ptr noundef @.str.1, i32 noundef 442, ptr noundef %11750, ptr noundef %11753, ptr noundef %11756, i32 noundef %11758) #11
  br label %11760

11760:                                            ; preds = %11743, %11726
  call void @llvm.lifetime.end.p0(i64 4, ptr %302) #11
  br label %11761

11761:                                            ; preds = %11760
  br label %11762

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

11763:                                            ; No predecessors!
  br label %11764

11764:                                            ; preds = %11763
  br label %11765

11765:                                            ; preds = %11764, %11702
  br label %11766

11766:                                            ; preds = %11765
  br label %11767

11767:                                            ; preds = %11766
  br label %11768

11768:                                            ; preds = %11767
  %11769 = load i32, ptr @test_count, align 4, !tbaa !5
  %11770 = add nsw i32 %11769, 1
  store i32 %11770, ptr @test_count, align 4, !tbaa !5
  %11771 = load ptr, ptr %289, align 8, !tbaa !9
  %11772 = getelementptr inbounds %struct.s2n_connection, ptr %11771, i32 0, i32 52
  %11773 = getelementptr inbounds %struct.s2n_handshake, ptr %11772, i32 0, i32 3
  %11774 = getelementptr inbounds [48 x i8], ptr %11773, i64 0, i64 0
  %11775 = getelementptr inbounds [48 x i8], ptr %9, i64 0, i64 0
  %11776 = call i32 @memcmp(ptr noundef %11774, ptr noundef %11775, i64 noundef 48) #14
  %11777 = icmp eq i32 %11776, 0
  br i1 %11777, label %11778, label %11831

11778:                                            ; preds = %11768
  br label %11779

11779:                                            ; preds = %11778
  br label %11780

11780:                                            ; preds = %11779
  call void @llvm.lifetime.start.p0(i64 4, ptr %303) #11
  %11781 = call ptr @__errno_location() #12
  %11782 = load i32, ptr %11781, align 4, !tbaa !5
  store i32 %11782, ptr %303, align 4, !tbaa !5
  %11783 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11784 = call i32 @s2n_print_stacktrace(ptr noundef %11783)
  %11785 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11786 = trunc i8 %11785 to i1
  br i1 %11786, label %11787, label %11809

11787:                                            ; preds = %11780
  %11788 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11789 = call i32 @fileno(ptr noundef %11788) #11
  %11790 = call i32 @isatty(i32 noundef %11789) #11
  %11791 = icmp ne i32 %11790, 0
  br i1 %11791, label %11792, label %11809

11792:                                            ; preds = %11787
  %11793 = load i32, ptr %303, align 4, !tbaa !5
  %11794 = call ptr @__errno_location() #12
  store i32 %11793, ptr %11794, align 4, !tbaa !5
  %11795 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11796 = load i32, ptr @test_count, align 4, !tbaa !5
  %11797 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11798 = load i32, ptr %11797, align 4, !tbaa !5
  %11799 = call ptr @s2n_strerror(i32 noundef %11798, ptr noundef @.str.4)
  %11800 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11801 = load i32, ptr %11800, align 4, !tbaa !5
  %11802 = call ptr @s2n_strerror_debug(i32 noundef %11801, ptr noundef @.str.4)
  %11803 = call ptr @__errno_location() #12
  %11804 = load i32, ptr %11803, align 4, !tbaa !5
  %11805 = call ptr @strerror(i32 noundef %11804) #11
  %11806 = call ptr @__errno_location() #12
  %11807 = load i32, ptr %11806, align 4, !tbaa !5
  %11808 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11795, ptr noundef @.str.2, i32 noundef %11796, ptr noundef @.str.85, ptr noundef @.str.1, i32 noundef 444, ptr noundef %11799, ptr noundef %11802, ptr noundef %11805, i32 noundef %11807) #11
  br label %11826

11809:                                            ; preds = %11787, %11780
  %11810 = load i32, ptr %303, align 4, !tbaa !5
  %11811 = call ptr @__errno_location() #12
  store i32 %11810, ptr %11811, align 4, !tbaa !5
  %11812 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11813 = load i32, ptr @test_count, align 4, !tbaa !5
  %11814 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11815 = load i32, ptr %11814, align 4, !tbaa !5
  %11816 = call ptr @s2n_strerror(i32 noundef %11815, ptr noundef @.str.4)
  %11817 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11818 = load i32, ptr %11817, align 4, !tbaa !5
  %11819 = call ptr @s2n_strerror_debug(i32 noundef %11818, ptr noundef @.str.4)
  %11820 = call ptr @__errno_location() #12
  %11821 = load i32, ptr %11820, align 4, !tbaa !5
  %11822 = call ptr @strerror(i32 noundef %11821) #11
  %11823 = call ptr @__errno_location() #12
  %11824 = load i32, ptr %11823, align 4, !tbaa !5
  %11825 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11812, ptr noundef @.str.5, i32 noundef %11813, ptr noundef @.str.85, ptr noundef @.str.1, i32 noundef 444, ptr noundef %11816, ptr noundef %11819, ptr noundef %11822, i32 noundef %11824) #11
  br label %11826

11826:                                            ; preds = %11809, %11792
  call void @llvm.lifetime.end.p0(i64 4, ptr %303) #11
  br label %11827

11827:                                            ; preds = %11826
  br label %11828

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

11829:                                            ; No predecessors!
  br label %11830

11830:                                            ; preds = %11829
  br label %11831

11831:                                            ; preds = %11830, %11768
  br label %11832

11832:                                            ; preds = %11831
  br label %11833

11833:                                            ; preds = %11832
  call void @llvm.lifetime.end.p0(i64 1, ptr %299) #11
  %11834 = call i32 @s2n_connection_ptr_free(ptr noundef %289)
  %11835 = getelementptr inbounds %struct.s2n_result, ptr %304, i32 0, i32 0
  store i32 %11834, ptr %11835, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %289) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %305) #11
  %11836 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %11836, ptr %305, align 8, !tbaa !9
  %11837 = load ptr, ptr %305, align 8, !tbaa !9
  %11838 = getelementptr inbounds %struct.s2n_connection, ptr %11837, i32 0, i32 27
  %11839 = load ptr, ptr %11838, align 8, !tbaa !39
  %11840 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %11839, i32 0, i32 0
  store ptr @s2n_tls13_aes_128_gcm_sha256, ptr %11840, align 8, !tbaa !64
  %11841 = load ptr, ptr %305, align 8, !tbaa !9
  %11842 = getelementptr inbounds %struct.s2n_connection, ptr %11841, i32 0, i32 23
  store i8 34, ptr %11842, align 4, !tbaa !72
  br label %11843

11843:                                            ; preds = %11833
  %11844 = load i32, ptr @test_count, align 4, !tbaa !5
  %11845 = add nsw i32 %11844, 1
  store i32 %11845, ptr @test_count, align 4, !tbaa !5
  %11846 = load ptr, ptr %305, align 8, !tbaa !9
  %11847 = call i32 @s2n_connection_set_test_master_secret(ptr noundef %11846, ptr noundef %13)
  %11848 = getelementptr inbounds %struct.s2n_result, ptr %306, i32 0, i32 0
  store i32 %11847, ptr %11848, align 4
  %11849 = getelementptr inbounds %struct.s2n_result, ptr %306, i32 0, i32 0
  %11850 = load i32, ptr %11849, align 4
  %11851 = call zeroext i1 @s2n_result_is_ok(i32 %11850)
  br i1 %11851, label %11905, label %11852

11852:                                            ; preds = %11843
  br label %11853

11853:                                            ; preds = %11852
  br label %11854

11854:                                            ; preds = %11853
  call void @llvm.lifetime.start.p0(i64 4, ptr %307) #11
  %11855 = call ptr @__errno_location() #12
  %11856 = load i32, ptr %11855, align 4, !tbaa !5
  store i32 %11856, ptr %307, align 4, !tbaa !5
  %11857 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11858 = call i32 @s2n_print_stacktrace(ptr noundef %11857)
  %11859 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11860 = trunc i8 %11859 to i1
  br i1 %11860, label %11861, label %11883

11861:                                            ; preds = %11854
  %11862 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11863 = call i32 @fileno(ptr noundef %11862) #11
  %11864 = call i32 @isatty(i32 noundef %11863) #11
  %11865 = icmp ne i32 %11864, 0
  br i1 %11865, label %11866, label %11883

11866:                                            ; preds = %11861
  %11867 = load i32, ptr %307, align 4, !tbaa !5
  %11868 = call ptr @__errno_location() #12
  store i32 %11867, ptr %11868, align 4, !tbaa !5
  %11869 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11870 = load i32, ptr @test_count, align 4, !tbaa !5
  %11871 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11872 = load i32, ptr %11871, align 4, !tbaa !5
  %11873 = call ptr @s2n_strerror(i32 noundef %11872, ptr noundef @.str.4)
  %11874 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11875 = load i32, ptr %11874, align 4, !tbaa !5
  %11876 = call ptr @s2n_strerror_debug(i32 noundef %11875, ptr noundef @.str.4)
  %11877 = call ptr @__errno_location() #12
  %11878 = load i32, ptr %11877, align 4, !tbaa !5
  %11879 = call ptr @strerror(i32 noundef %11878) #11
  %11880 = call ptr @__errno_location() #12
  %11881 = load i32, ptr %11880, align 4, !tbaa !5
  %11882 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11869, ptr noundef @.str.2, i32 noundef %11870, ptr noundef @.str.86, ptr noundef @.str.1, i32 noundef 453, ptr noundef %11873, ptr noundef %11876, ptr noundef %11879, i32 noundef %11881) #11
  br label %11900

11883:                                            ; preds = %11861, %11854
  %11884 = load i32, ptr %307, align 4, !tbaa !5
  %11885 = call ptr @__errno_location() #12
  store i32 %11884, ptr %11885, align 4, !tbaa !5
  %11886 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11887 = load i32, ptr @test_count, align 4, !tbaa !5
  %11888 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11889 = load i32, ptr %11888, align 4, !tbaa !5
  %11890 = call ptr @s2n_strerror(i32 noundef %11889, ptr noundef @.str.4)
  %11891 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11892 = load i32, ptr %11891, align 4, !tbaa !5
  %11893 = call ptr @s2n_strerror_debug(i32 noundef %11892, ptr noundef @.str.4)
  %11894 = call ptr @__errno_location() #12
  %11895 = load i32, ptr %11894, align 4, !tbaa !5
  %11896 = call ptr @strerror(i32 noundef %11895) #11
  %11897 = call ptr @__errno_location() #12
  %11898 = load i32, ptr %11897, align 4, !tbaa !5
  %11899 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11886, ptr noundef @.str.5, i32 noundef %11887, ptr noundef @.str.86, ptr noundef @.str.1, i32 noundef 453, ptr noundef %11890, ptr noundef %11893, ptr noundef %11896, i32 noundef %11898) #11
  br label %11900

11900:                                            ; preds = %11883, %11866
  call void @llvm.lifetime.end.p0(i64 4, ptr %307) #11
  br label %11901

11901:                                            ; preds = %11900
  br label %11902

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

11903:                                            ; No predecessors!
  br label %11904

11904:                                            ; preds = %11903
  br label %11905

11905:                                            ; preds = %11904, %11843
  br label %11906

11906:                                            ; preds = %11905
  br label %11907

11907:                                            ; preds = %11906
  br label %11908

11908:                                            ; preds = %11907
  br label %11909

11909:                                            ; preds = %11908
  %11910 = load i32, ptr @test_count, align 4, !tbaa !5
  %11911 = add nsw i32 %11910, 1
  store i32 %11911, ptr @test_count, align 4, !tbaa !5
  %11912 = load ptr, ptr %305, align 8, !tbaa !9
  %11913 = getelementptr inbounds %struct.s2n_connection, ptr %11912, i32 0, i32 28
  %11914 = getelementptr inbounds %struct.s2n_secrets, ptr %11913, i32 0, i32 0
  %11915 = getelementptr inbounds %struct.s2n_tls13_secrets, ptr %11914, i32 0, i32 4
  %11916 = getelementptr inbounds [48 x i8], ptr %11915, i64 0, i64 0
  %11917 = getelementptr inbounds [48 x i8], ptr %9, i64 0, i64 0
  %11918 = call i32 @memcmp(ptr noundef %11916, ptr noundef %11917, i64 noundef 48) #14
  %11919 = icmp eq i32 %11918, 0
  br i1 %11919, label %11973, label %11920

11920:                                            ; preds = %11909
  br label %11921

11921:                                            ; preds = %11920
  br label %11922

11922:                                            ; preds = %11921
  call void @llvm.lifetime.start.p0(i64 4, ptr %308) #11
  %11923 = call ptr @__errno_location() #12
  %11924 = load i32, ptr %11923, align 4, !tbaa !5
  store i32 %11924, ptr %308, align 4, !tbaa !5
  %11925 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11926 = call i32 @s2n_print_stacktrace(ptr noundef %11925)
  %11927 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11928 = trunc i8 %11927 to i1
  br i1 %11928, label %11929, label %11951

11929:                                            ; preds = %11922
  %11930 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11931 = call i32 @fileno(ptr noundef %11930) #11
  %11932 = call i32 @isatty(i32 noundef %11931) #11
  %11933 = icmp ne i32 %11932, 0
  br i1 %11933, label %11934, label %11951

11934:                                            ; preds = %11929
  %11935 = load i32, ptr %308, align 4, !tbaa !5
  %11936 = call ptr @__errno_location() #12
  store i32 %11935, ptr %11936, align 4, !tbaa !5
  %11937 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11938 = load i32, ptr @test_count, align 4, !tbaa !5
  %11939 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11940 = load i32, ptr %11939, align 4, !tbaa !5
  %11941 = call ptr @s2n_strerror(i32 noundef %11940, ptr noundef @.str.4)
  %11942 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11943 = load i32, ptr %11942, align 4, !tbaa !5
  %11944 = call ptr @s2n_strerror_debug(i32 noundef %11943, ptr noundef @.str.4)
  %11945 = call ptr @__errno_location() #12
  %11946 = load i32, ptr %11945, align 4, !tbaa !5
  %11947 = call ptr @strerror(i32 noundef %11946) #11
  %11948 = call ptr @__errno_location() #12
  %11949 = load i32, ptr %11948, align 4, !tbaa !5
  %11950 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11937, ptr noundef @.str.2, i32 noundef %11938, ptr noundef @.str.87, ptr noundef @.str.1, i32 noundef 455, ptr noundef %11941, ptr noundef %11944, ptr noundef %11947, i32 noundef %11949) #11
  br label %11968

11951:                                            ; preds = %11929, %11922
  %11952 = load i32, ptr %308, align 4, !tbaa !5
  %11953 = call ptr @__errno_location() #12
  store i32 %11952, ptr %11953, align 4, !tbaa !5
  %11954 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11955 = load i32, ptr @test_count, align 4, !tbaa !5
  %11956 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11957 = load i32, ptr %11956, align 4, !tbaa !5
  %11958 = call ptr @s2n_strerror(i32 noundef %11957, ptr noundef @.str.4)
  %11959 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11960 = load i32, ptr %11959, align 4, !tbaa !5
  %11961 = call ptr @s2n_strerror_debug(i32 noundef %11960, ptr noundef @.str.4)
  %11962 = call ptr @__errno_location() #12
  %11963 = load i32, ptr %11962, align 4, !tbaa !5
  %11964 = call ptr @strerror(i32 noundef %11963) #11
  %11965 = call ptr @__errno_location() #12
  %11966 = load i32, ptr %11965, align 4, !tbaa !5
  %11967 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11954, ptr noundef @.str.5, i32 noundef %11955, ptr noundef @.str.87, ptr noundef @.str.1, i32 noundef 455, ptr noundef %11958, ptr noundef %11961, ptr noundef %11964, i32 noundef %11966) #11
  br label %11968

11968:                                            ; preds = %11951, %11934
  call void @llvm.lifetime.end.p0(i64 4, ptr %308) #11
  br label %11969

11969:                                            ; preds = %11968
  br label %11970

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

11971:                                            ; No predecessors!
  br label %11972

11972:                                            ; preds = %11971
  br label %11973

11973:                                            ; preds = %11972, %11909
  br label %11974

11974:                                            ; preds = %11973
  br label %11975

11975:                                            ; preds = %11974
  br label %11976

11976:                                            ; preds = %11975
  br label %11977

11977:                                            ; preds = %11976
  br label %11978

11978:                                            ; preds = %11977
  br label %11979

11979:                                            ; preds = %11978
  %11980 = load i32, ptr @test_count, align 4, !tbaa !5
  %11981 = add nsw i32 %11980, 1
  store i32 %11981, ptr @test_count, align 4, !tbaa !5
  %11982 = load ptr, ptr %305, align 8, !tbaa !9
  %11983 = getelementptr inbounds %struct.s2n_connection, ptr %11982, i32 0, i32 28
  %11984 = getelementptr inbounds %struct.s2n_secrets, ptr %11983, i32 0, i32 0
  %11985 = getelementptr inbounds %struct.s2n_tls13_secrets, ptr %11984, i32 0, i32 5
  %11986 = getelementptr inbounds [48 x i8], ptr %11985, i64 0, i64 0
  %11987 = getelementptr inbounds [48 x i8], ptr %9, i64 0, i64 0
  %11988 = call i32 @memcmp(ptr noundef %11986, ptr noundef %11987, i64 noundef 48) #14
  %11989 = icmp eq i32 %11988, 0
  br i1 %11989, label %12043, label %11990

11990:                                            ; preds = %11979
  br label %11991

11991:                                            ; preds = %11990
  br label %11992

11992:                                            ; preds = %11991
  call void @llvm.lifetime.start.p0(i64 4, ptr %309) #11
  %11993 = call ptr @__errno_location() #12
  %11994 = load i32, ptr %11993, align 4, !tbaa !5
  store i32 %11994, ptr %309, align 4, !tbaa !5
  %11995 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11996 = call i32 @s2n_print_stacktrace(ptr noundef %11995)
  %11997 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11998 = trunc i8 %11997 to i1
  br i1 %11998, label %11999, label %12021

11999:                                            ; preds = %11992
  %12000 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12001 = call i32 @fileno(ptr noundef %12000) #11
  %12002 = call i32 @isatty(i32 noundef %12001) #11
  %12003 = icmp ne i32 %12002, 0
  br i1 %12003, label %12004, label %12021

12004:                                            ; preds = %11999
  %12005 = load i32, ptr %309, align 4, !tbaa !5
  %12006 = call ptr @__errno_location() #12
  store i32 %12005, ptr %12006, align 4, !tbaa !5
  %12007 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12008 = load i32, ptr @test_count, align 4, !tbaa !5
  %12009 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12010 = load i32, ptr %12009, align 4, !tbaa !5
  %12011 = call ptr @s2n_strerror(i32 noundef %12010, ptr noundef @.str.4)
  %12012 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12013 = load i32, ptr %12012, align 4, !tbaa !5
  %12014 = call ptr @s2n_strerror_debug(i32 noundef %12013, ptr noundef @.str.4)
  %12015 = call ptr @__errno_location() #12
  %12016 = load i32, ptr %12015, align 4, !tbaa !5
  %12017 = call ptr @strerror(i32 noundef %12016) #11
  %12018 = call ptr @__errno_location() #12
  %12019 = load i32, ptr %12018, align 4, !tbaa !5
  %12020 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12007, ptr noundef @.str.2, i32 noundef %12008, ptr noundef @.str.88, ptr noundef @.str.1, i32 noundef 457, ptr noundef %12011, ptr noundef %12014, ptr noundef %12017, i32 noundef %12019) #11
  br label %12038

12021:                                            ; preds = %11999, %11992
  %12022 = load i32, ptr %309, align 4, !tbaa !5
  %12023 = call ptr @__errno_location() #12
  store i32 %12022, ptr %12023, align 4, !tbaa !5
  %12024 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12025 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %12027, ptr noundef @.str.4)
  %12029 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12030 = load i32, ptr %12029, align 4, !tbaa !5
  %12031 = call ptr @s2n_strerror_debug(i32 noundef %12030, ptr noundef @.str.4)
  %12032 = call ptr @__errno_location() #12
  %12033 = load i32, ptr %12032, align 4, !tbaa !5
  %12034 = call ptr @strerror(i32 noundef %12033) #11
  %12035 = call ptr @__errno_location() #12
  %12036 = load i32, ptr %12035, align 4, !tbaa !5
  %12037 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12024, ptr noundef @.str.5, i32 noundef %12025, ptr noundef @.str.88, ptr noundef @.str.1, i32 noundef 457, ptr noundef %12028, ptr noundef %12031, ptr noundef %12034, i32 noundef %12036) #11
  br label %12038

12038:                                            ; preds = %12021, %12004
  call void @llvm.lifetime.end.p0(i64 4, ptr %309) #11
  br label %12039

12039:                                            ; preds = %12038
  br label %12040

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

12041:                                            ; No predecessors!
  br label %12042

12042:                                            ; preds = %12041
  br label %12043

12043:                                            ; preds = %12042, %11979
  br label %12044

12044:                                            ; preds = %12043
  br label %12045

12045:                                            ; preds = %12044
  br label %12046

12046:                                            ; preds = %12045
  br label %12047

12047:                                            ; preds = %12046
  br label %12048

12048:                                            ; preds = %12047
  %12049 = load i32, ptr @test_count, align 4, !tbaa !5
  %12050 = add nsw i32 %12049, 1
  store i32 %12050, ptr @test_count, align 4, !tbaa !5
  %12051 = load ptr, ptr %305, align 8, !tbaa !9
  %12052 = call i32 @s2n_connection_set_test_message_type(ptr noundef %12051, i32 noundef 15)
  %12053 = getelementptr inbounds %struct.s2n_result, ptr %310, i32 0, i32 0
  store i32 %12052, ptr %12053, align 4
  %12054 = getelementptr inbounds %struct.s2n_result, ptr %310, i32 0, i32 0
  %12055 = load i32, ptr %12054, align 4
  %12056 = call zeroext i1 @s2n_result_is_ok(i32 %12055)
  br i1 %12056, label %12110, label %12057

12057:                                            ; preds = %12048
  br label %12058

12058:                                            ; preds = %12057
  br label %12059

12059:                                            ; preds = %12058
  call void @llvm.lifetime.start.p0(i64 4, ptr %311) #11
  %12060 = call ptr @__errno_location() #12
  %12061 = load i32, ptr %12060, align 4, !tbaa !5
  store i32 %12061, ptr %311, align 4, !tbaa !5
  %12062 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12063 = call i32 @s2n_print_stacktrace(ptr noundef %12062)
  %12064 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12065 = trunc i8 %12064 to i1
  br i1 %12065, label %12066, label %12088

12066:                                            ; preds = %12059
  %12067 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12068 = call i32 @fileno(ptr noundef %12067) #11
  %12069 = call i32 @isatty(i32 noundef %12068) #11
  %12070 = icmp ne i32 %12069, 0
  br i1 %12070, label %12071, label %12088

12071:                                            ; preds = %12066
  %12072 = load i32, ptr %311, align 4, !tbaa !5
  %12073 = call ptr @__errno_location() #12
  store i32 %12072, ptr %12073, align 4, !tbaa !5
  %12074 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12075 = load i32, ptr @test_count, align 4, !tbaa !5
  %12076 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12077 = load i32, ptr %12076, align 4, !tbaa !5
  %12078 = call ptr @s2n_strerror(i32 noundef %12077, ptr noundef @.str.4)
  %12079 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12080 = load i32, ptr %12079, align 4, !tbaa !5
  %12081 = call ptr @s2n_strerror_debug(i32 noundef %12080, ptr noundef @.str.4)
  %12082 = call ptr @__errno_location() #12
  %12083 = load i32, ptr %12082, align 4, !tbaa !5
  %12084 = call ptr @strerror(i32 noundef %12083) #11
  %12085 = call ptr @__errno_location() #12
  %12086 = load i32, ptr %12085, align 4, !tbaa !5
  %12087 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12074, ptr noundef @.str.2, i32 noundef %12075, ptr noundef @.str.89, ptr noundef @.str.1, i32 noundef 459, ptr noundef %12078, ptr noundef %12081, ptr noundef %12084, i32 noundef %12086) #11
  br label %12105

12088:                                            ; preds = %12066, %12059
  %12089 = load i32, ptr %311, align 4, !tbaa !5
  %12090 = call ptr @__errno_location() #12
  store i32 %12089, ptr %12090, align 4, !tbaa !5
  %12091 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12092 = load i32, ptr @test_count, align 4, !tbaa !5
  %12093 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12094 = load i32, ptr %12093, align 4, !tbaa !5
  %12095 = call ptr @s2n_strerror(i32 noundef %12094, ptr noundef @.str.4)
  %12096 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12097 = load i32, ptr %12096, align 4, !tbaa !5
  %12098 = call ptr @s2n_strerror_debug(i32 noundef %12097, ptr noundef @.str.4)
  %12099 = call ptr @__errno_location() #12
  %12100 = load i32, ptr %12099, align 4, !tbaa !5
  %12101 = call ptr @strerror(i32 noundef %12100) #11
  %12102 = call ptr @__errno_location() #12
  %12103 = load i32, ptr %12102, align 4, !tbaa !5
  %12104 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12091, ptr noundef @.str.5, i32 noundef %12092, ptr noundef @.str.89, ptr noundef @.str.1, i32 noundef 459, ptr noundef %12095, ptr noundef %12098, ptr noundef %12101, i32 noundef %12103) #11
  br label %12105

12105:                                            ; preds = %12088, %12071
  call void @llvm.lifetime.end.p0(i64 4, ptr %311) #11
  br label %12106

12106:                                            ; preds = %12105
  br label %12107

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

12108:                                            ; No predecessors!
  br label %12109

12109:                                            ; preds = %12108
  br label %12110

12110:                                            ; preds = %12109, %12048
  br label %12111

12111:                                            ; preds = %12110
  br label %12112

12112:                                            ; preds = %12111
  br label %12113

12113:                                            ; preds = %12112
  %12114 = load i32, ptr @test_count, align 4, !tbaa !5
  %12115 = add nsw i32 %12114, 1
  store i32 %12115, ptr @test_count, align 4, !tbaa !5
  %12116 = load ptr, ptr %305, align 8, !tbaa !9
  %12117 = call i32 @s2n_tls13_secrets_update(ptr noundef %12116)
  %12118 = getelementptr inbounds %struct.s2n_result, ptr %312, i32 0, i32 0
  store i32 %12117, ptr %12118, align 4
  %12119 = getelementptr inbounds %struct.s2n_result, ptr %312, i32 0, i32 0
  %12120 = load i32, ptr %12119, align 4
  %12121 = call zeroext i1 @s2n_result_is_ok(i32 %12120)
  br i1 %12121, label %12175, label %12122

12122:                                            ; preds = %12113
  br label %12123

12123:                                            ; preds = %12122
  br label %12124

12124:                                            ; preds = %12123
  call void @llvm.lifetime.start.p0(i64 4, ptr %313) #11
  %12125 = call ptr @__errno_location() #12
  %12126 = load i32, ptr %12125, align 4, !tbaa !5
  store i32 %12126, ptr %313, align 4, !tbaa !5
  %12127 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12128 = call i32 @s2n_print_stacktrace(ptr noundef %12127)
  %12129 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12130 = trunc i8 %12129 to i1
  br i1 %12130, label %12131, label %12153

12131:                                            ; preds = %12124
  %12132 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12133 = call i32 @fileno(ptr noundef %12132) #11
  %12134 = call i32 @isatty(i32 noundef %12133) #11
  %12135 = icmp ne i32 %12134, 0
  br i1 %12135, label %12136, label %12153

12136:                                            ; preds = %12131
  %12137 = load i32, ptr %313, align 4, !tbaa !5
  %12138 = call ptr @__errno_location() #12
  store i32 %12137, ptr %12138, align 4, !tbaa !5
  %12139 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12140 = load i32, ptr @test_count, align 4, !tbaa !5
  %12141 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12142 = load i32, ptr %12141, align 4, !tbaa !5
  %12143 = call ptr @s2n_strerror(i32 noundef %12142, ptr noundef @.str.4)
  %12144 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12145 = load i32, ptr %12144, align 4, !tbaa !5
  %12146 = call ptr @s2n_strerror_debug(i32 noundef %12145, ptr noundef @.str.4)
  %12147 = call ptr @__errno_location() #12
  %12148 = load i32, ptr %12147, align 4, !tbaa !5
  %12149 = call ptr @strerror(i32 noundef %12148) #11
  %12150 = call ptr @__errno_location() #12
  %12151 = load i32, ptr %12150, align 4, !tbaa !5
  %12152 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12139, ptr noundef @.str.2, i32 noundef %12140, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 460, ptr noundef %12143, ptr noundef %12146, ptr noundef %12149, i32 noundef %12151) #11
  br label %12170

12153:                                            ; preds = %12131, %12124
  %12154 = load i32, ptr %313, align 4, !tbaa !5
  %12155 = call ptr @__errno_location() #12
  store i32 %12154, ptr %12155, align 4, !tbaa !5
  %12156 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12157 = load i32, ptr @test_count, align 4, !tbaa !5
  %12158 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12159 = load i32, ptr %12158, align 4, !tbaa !5
  %12160 = call ptr @s2n_strerror(i32 noundef %12159, ptr noundef @.str.4)
  %12161 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12162 = load i32, ptr %12161, align 4, !tbaa !5
  %12163 = call ptr @s2n_strerror_debug(i32 noundef %12162, ptr noundef @.str.4)
  %12164 = call ptr @__errno_location() #12
  %12165 = load i32, ptr %12164, align 4, !tbaa !5
  %12166 = call ptr @strerror(i32 noundef %12165) #11
  %12167 = call ptr @__errno_location() #12
  %12168 = load i32, ptr %12167, align 4, !tbaa !5
  %12169 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12156, ptr noundef @.str.5, i32 noundef %12157, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 460, ptr noundef %12160, ptr noundef %12163, ptr noundef %12166, i32 noundef %12168) #11
  br label %12170

12170:                                            ; preds = %12153, %12136
  call void @llvm.lifetime.end.p0(i64 4, ptr %313) #11
  br label %12171

12171:                                            ; preds = %12170
  br label %12172

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

12173:                                            ; No predecessors!
  br label %12174

12174:                                            ; preds = %12173
  br label %12175

12175:                                            ; preds = %12174, %12113
  br label %12176

12176:                                            ; preds = %12175
  br label %12177

12177:                                            ; preds = %12176
  br label %12178

12178:                                            ; preds = %12177
  %12179 = load i32, ptr @test_count, align 4, !tbaa !5
  %12180 = add nsw i32 %12179, 1
  store i32 %12180, ptr @test_count, align 4, !tbaa !5
  %12181 = load ptr, ptr %305, align 8, !tbaa !9
  %12182 = getelementptr inbounds %struct.s2n_connection, ptr %12181, i32 0, i32 28
  %12183 = getelementptr inbounds %struct.s2n_secrets, ptr %12182, i32 0, i32 0
  %12184 = getelementptr inbounds %struct.s2n_tls13_secrets, ptr %12183, i32 0, i32 4
  %12185 = getelementptr inbounds [48 x i8], ptr %12184, i64 0, i64 0
  %12186 = getelementptr inbounds [48 x i8], ptr %9, i64 0, i64 0
  %12187 = call i32 @memcmp(ptr noundef %12185, ptr noundef %12186, i64 noundef 48) #14
  %12188 = icmp eq i32 %12187, 0
  br i1 %12188, label %12189, label %12242

12189:                                            ; preds = %12178
  br label %12190

12190:                                            ; preds = %12189
  br label %12191

12191:                                            ; preds = %12190
  call void @llvm.lifetime.start.p0(i64 4, ptr %314) #11
  %12192 = call ptr @__errno_location() #12
  %12193 = load i32, ptr %12192, align 4, !tbaa !5
  store i32 %12193, ptr %314, align 4, !tbaa !5
  %12194 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12195 = call i32 @s2n_print_stacktrace(ptr noundef %12194)
  %12196 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12197 = trunc i8 %12196 to i1
  br i1 %12197, label %12198, label %12220

12198:                                            ; preds = %12191
  %12199 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12200 = call i32 @fileno(ptr noundef %12199) #11
  %12201 = call i32 @isatty(i32 noundef %12200) #11
  %12202 = icmp ne i32 %12201, 0
  br i1 %12202, label %12203, label %12220

12203:                                            ; preds = %12198
  %12204 = load i32, ptr %314, align 4, !tbaa !5
  %12205 = call ptr @__errno_location() #12
  store i32 %12204, ptr %12205, align 4, !tbaa !5
  %12206 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12207 = load i32, ptr @test_count, align 4, !tbaa !5
  %12208 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12209 = load i32, ptr %12208, align 4, !tbaa !5
  %12210 = call ptr @s2n_strerror(i32 noundef %12209, ptr noundef @.str.4)
  %12211 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12212 = load i32, ptr %12211, align 4, !tbaa !5
  %12213 = call ptr @s2n_strerror_debug(i32 noundef %12212, ptr noundef @.str.4)
  %12214 = call ptr @__errno_location() #12
  %12215 = load i32, ptr %12214, align 4, !tbaa !5
  %12216 = call ptr @strerror(i32 noundef %12215) #11
  %12217 = call ptr @__errno_location() #12
  %12218 = load i32, ptr %12217, align 4, !tbaa !5
  %12219 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12206, ptr noundef @.str.2, i32 noundef %12207, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 463, ptr noundef %12210, ptr noundef %12213, ptr noundef %12216, i32 noundef %12218) #11
  br label %12237

12220:                                            ; preds = %12198, %12191
  %12221 = load i32, ptr %314, align 4, !tbaa !5
  %12222 = call ptr @__errno_location() #12
  store i32 %12221, ptr %12222, align 4, !tbaa !5
  %12223 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12224 = load i32, ptr @test_count, align 4, !tbaa !5
  %12225 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12226 = load i32, ptr %12225, align 4, !tbaa !5
  %12227 = call ptr @s2n_strerror(i32 noundef %12226, ptr noundef @.str.4)
  %12228 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12229 = load i32, ptr %12228, align 4, !tbaa !5
  %12230 = call ptr @s2n_strerror_debug(i32 noundef %12229, ptr noundef @.str.4)
  %12231 = call ptr @__errno_location() #12
  %12232 = load i32, ptr %12231, align 4, !tbaa !5
  %12233 = call ptr @strerror(i32 noundef %12232) #11
  %12234 = call ptr @__errno_location() #12
  %12235 = load i32, ptr %12234, align 4, !tbaa !5
  %12236 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12223, ptr noundef @.str.5, i32 noundef %12224, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 463, ptr noundef %12227, ptr noundef %12230, ptr noundef %12233, i32 noundef %12235) #11
  br label %12237

12237:                                            ; preds = %12220, %12203
  call void @llvm.lifetime.end.p0(i64 4, ptr %314) #11
  br label %12238

12238:                                            ; preds = %12237
  br label %12239

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

12240:                                            ; No predecessors!
  br label %12241

12241:                                            ; preds = %12240
  br label %12242

12242:                                            ; preds = %12241, %12178
  br label %12243

12243:                                            ; preds = %12242
  br label %12244

12244:                                            ; preds = %12243
  br label %12245

12245:                                            ; preds = %12244
  %12246 = load i32, ptr @test_count, align 4, !tbaa !5
  %12247 = add nsw i32 %12246, 1
  store i32 %12247, ptr @test_count, align 4, !tbaa !5
  %12248 = load ptr, ptr %305, align 8, !tbaa !9
  %12249 = getelementptr inbounds %struct.s2n_connection, ptr %12248, i32 0, i32 28
  %12250 = getelementptr inbounds %struct.s2n_secrets, ptr %12249, i32 0, i32 0
  %12251 = getelementptr inbounds %struct.s2n_tls13_secrets, ptr %12250, i32 0, i32 5
  %12252 = getelementptr inbounds [48 x i8], ptr %12251, i64 0, i64 0
  %12253 = getelementptr inbounds [48 x i8], ptr %9, i64 0, i64 0
  %12254 = call i32 @memcmp(ptr noundef %12252, ptr noundef %12253, i64 noundef 48) #14
  %12255 = icmp eq i32 %12254, 0
  br i1 %12255, label %12256, label %12309

12256:                                            ; preds = %12245
  br label %12257

12257:                                            ; preds = %12256
  br label %12258

12258:                                            ; preds = %12257
  call void @llvm.lifetime.start.p0(i64 4, ptr %315) #11
  %12259 = call ptr @__errno_location() #12
  %12260 = load i32, ptr %12259, align 4, !tbaa !5
  store i32 %12260, ptr %315, align 4, !tbaa !5
  %12261 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12262 = call i32 @s2n_print_stacktrace(ptr noundef %12261)
  %12263 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12264 = trunc i8 %12263 to i1
  br i1 %12264, label %12265, label %12287

12265:                                            ; preds = %12258
  %12266 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12267 = call i32 @fileno(ptr noundef %12266) #11
  %12268 = call i32 @isatty(i32 noundef %12267) #11
  %12269 = icmp ne i32 %12268, 0
  br i1 %12269, label %12270, label %12287

12270:                                            ; preds = %12265
  %12271 = load i32, ptr %315, align 4, !tbaa !5
  %12272 = call ptr @__errno_location() #12
  store i32 %12271, ptr %12272, align 4, !tbaa !5
  %12273 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12274 = load i32, ptr @test_count, align 4, !tbaa !5
  %12275 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12276 = load i32, ptr %12275, align 4, !tbaa !5
  %12277 = call ptr @s2n_strerror(i32 noundef %12276, ptr noundef @.str.4)
  %12278 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12279 = load i32, ptr %12278, align 4, !tbaa !5
  %12280 = call ptr @s2n_strerror_debug(i32 noundef %12279, ptr noundef @.str.4)
  %12281 = call ptr @__errno_location() #12
  %12282 = load i32, ptr %12281, align 4, !tbaa !5
  %12283 = call ptr @strerror(i32 noundef %12282) #11
  %12284 = call ptr @__errno_location() #12
  %12285 = load i32, ptr %12284, align 4, !tbaa !5
  %12286 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12273, ptr noundef @.str.2, i32 noundef %12274, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 465, ptr noundef %12277, ptr noundef %12280, ptr noundef %12283, i32 noundef %12285) #11
  br label %12304

12287:                                            ; preds = %12265, %12258
  %12288 = load i32, ptr %315, align 4, !tbaa !5
  %12289 = call ptr @__errno_location() #12
  store i32 %12288, ptr %12289, align 4, !tbaa !5
  %12290 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12291 = load i32, ptr @test_count, align 4, !tbaa !5
  %12292 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12293 = load i32, ptr %12292, align 4, !tbaa !5
  %12294 = call ptr @s2n_strerror(i32 noundef %12293, ptr noundef @.str.4)
  %12295 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12296 = load i32, ptr %12295, align 4, !tbaa !5
  %12297 = call ptr @s2n_strerror_debug(i32 noundef %12296, ptr noundef @.str.4)
  %12298 = call ptr @__errno_location() #12
  %12299 = load i32, ptr %12298, align 4, !tbaa !5
  %12300 = call ptr @strerror(i32 noundef %12299) #11
  %12301 = call ptr @__errno_location() #12
  %12302 = load i32, ptr %12301, align 4, !tbaa !5
  %12303 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12290, ptr noundef @.str.5, i32 noundef %12291, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 465, ptr noundef %12294, ptr noundef %12297, ptr noundef %12300, i32 noundef %12302) #11
  br label %12304

12304:                                            ; preds = %12287, %12270
  call void @llvm.lifetime.end.p0(i64 4, ptr %315) #11
  br label %12305

12305:                                            ; preds = %12304
  br label %12306

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

12307:                                            ; No predecessors!
  br label %12308

12308:                                            ; preds = %12307
  br label %12309

12309:                                            ; preds = %12308, %12245
  br label %12310

12310:                                            ; preds = %12309
  br label %12311

12311:                                            ; preds = %12310
  %12312 = call i32 @s2n_connection_ptr_free(ptr noundef %305)
  %12313 = getelementptr inbounds %struct.s2n_result, ptr %316, i32 0, i32 0
  store i32 %12312, ptr %12313, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %305) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %317) #11
  %12314 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %12314, ptr %317, align 8, !tbaa !9
  %12315 = load ptr, ptr %317, align 8, !tbaa !9
  %12316 = getelementptr inbounds %struct.s2n_connection, ptr %12315, i32 0, i32 27
  %12317 = load ptr, ptr %12316, align 8, !tbaa !39
  %12318 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %12317, i32 0, i32 0
  store ptr @s2n_tls13_aes_128_gcm_sha256, ptr %12318, align 8, !tbaa !64
  %12319 = load ptr, ptr %317, align 8, !tbaa !9
  %12320 = getelementptr inbounds %struct.s2n_connection, ptr %12319, i32 0, i32 23
  store i8 34, ptr %12320, align 4, !tbaa !72
  br label %12321

12321:                                            ; preds = %12311
  %12322 = load i32, ptr @test_count, align 4, !tbaa !5
  %12323 = add nsw i32 %12322, 1
  store i32 %12323, ptr @test_count, align 4, !tbaa !5
  %12324 = load ptr, ptr %317, align 8, !tbaa !9
  %12325 = call i32 @s2n_connection_set_test_master_secret(ptr noundef %12324, ptr noundef %13)
  %12326 = getelementptr inbounds %struct.s2n_result, ptr %318, i32 0, i32 0
  store i32 %12325, ptr %12326, align 4
  %12327 = getelementptr inbounds %struct.s2n_result, ptr %318, i32 0, i32 0
  %12328 = load i32, ptr %12327, align 4
  %12329 = call zeroext i1 @s2n_result_is_ok(i32 %12328)
  br i1 %12329, label %12383, label %12330

12330:                                            ; preds = %12321
  br label %12331

12331:                                            ; preds = %12330
  br label %12332

12332:                                            ; preds = %12331
  call void @llvm.lifetime.start.p0(i64 4, ptr %319) #11
  %12333 = call ptr @__errno_location() #12
  %12334 = load i32, ptr %12333, align 4, !tbaa !5
  store i32 %12334, ptr %319, align 4, !tbaa !5
  %12335 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12336 = call i32 @s2n_print_stacktrace(ptr noundef %12335)
  %12337 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12338 = trunc i8 %12337 to i1
  br i1 %12338, label %12339, label %12361

12339:                                            ; preds = %12332
  %12340 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12341 = call i32 @fileno(ptr noundef %12340) #11
  %12342 = call i32 @isatty(i32 noundef %12341) #11
  %12343 = icmp ne i32 %12342, 0
  br i1 %12343, label %12344, label %12361

12344:                                            ; preds = %12339
  %12345 = load i32, ptr %319, align 4, !tbaa !5
  %12346 = call ptr @__errno_location() #12
  store i32 %12345, ptr %12346, align 4, !tbaa !5
  %12347 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12348 = load i32, ptr @test_count, align 4, !tbaa !5
  %12349 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12350 = load i32, ptr %12349, align 4, !tbaa !5
  %12351 = call ptr @s2n_strerror(i32 noundef %12350, ptr noundef @.str.4)
  %12352 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12353 = load i32, ptr %12352, align 4, !tbaa !5
  %12354 = call ptr @s2n_strerror_debug(i32 noundef %12353, ptr noundef @.str.4)
  %12355 = call ptr @__errno_location() #12
  %12356 = load i32, ptr %12355, align 4, !tbaa !5
  %12357 = call ptr @strerror(i32 noundef %12356) #11
  %12358 = call ptr @__errno_location() #12
  %12359 = load i32, ptr %12358, align 4, !tbaa !5
  %12360 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12347, ptr noundef @.str.2, i32 noundef %12348, ptr noundef @.str.86, ptr noundef @.str.1, i32 noundef 474, ptr noundef %12351, ptr noundef %12354, ptr noundef %12357, i32 noundef %12359) #11
  br label %12378

12361:                                            ; preds = %12339, %12332
  %12362 = load i32, ptr %319, align 4, !tbaa !5
  %12363 = call ptr @__errno_location() #12
  store i32 %12362, ptr %12363, align 4, !tbaa !5
  %12364 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12365 = load i32, ptr @test_count, align 4, !tbaa !5
  %12366 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12367 = load i32, ptr %12366, align 4, !tbaa !5
  %12368 = call ptr @s2n_strerror(i32 noundef %12367, ptr noundef @.str.4)
  %12369 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12370 = load i32, ptr %12369, align 4, !tbaa !5
  %12371 = call ptr @s2n_strerror_debug(i32 noundef %12370, ptr noundef @.str.4)
  %12372 = call ptr @__errno_location() #12
  %12373 = load i32, ptr %12372, align 4, !tbaa !5
  %12374 = call ptr @strerror(i32 noundef %12373) #11
  %12375 = call ptr @__errno_location() #12
  %12376 = load i32, ptr %12375, align 4, !tbaa !5
  %12377 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12364, ptr noundef @.str.5, i32 noundef %12365, ptr noundef @.str.86, ptr noundef @.str.1, i32 noundef 474, ptr noundef %12368, ptr noundef %12371, ptr noundef %12374, i32 noundef %12376) #11
  br label %12378

12378:                                            ; preds = %12361, %12344
  call void @llvm.lifetime.end.p0(i64 4, ptr %319) #11
  br label %12379

12379:                                            ; preds = %12378
  br label %12380

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

12381:                                            ; No predecessors!
  br label %12382

12382:                                            ; preds = %12381
  br label %12383

12383:                                            ; preds = %12382, %12321
  br label %12384

12384:                                            ; preds = %12383
  br label %12385

12385:                                            ; preds = %12384
  br label %12386

12386:                                            ; preds = %12385
  br label %12387

12387:                                            ; preds = %12386
  %12388 = load i32, ptr @test_count, align 4, !tbaa !5
  %12389 = add nsw i32 %12388, 1
  store i32 %12389, ptr @test_count, align 4, !tbaa !5
  %12390 = load ptr, ptr %317, align 8, !tbaa !9
  %12391 = getelementptr inbounds %struct.s2n_connection, ptr %12390, i32 0, i32 28
  %12392 = getelementptr inbounds %struct.s2n_secrets, ptr %12391, i32 0, i32 0
  %12393 = getelementptr inbounds %struct.s2n_tls13_secrets, ptr %12392, i32 0, i32 6
  %12394 = getelementptr inbounds [48 x i8], ptr %12393, i64 0, i64 0
  %12395 = getelementptr inbounds [48 x i8], ptr %9, i64 0, i64 0
  %12396 = call i32 @memcmp(ptr noundef %12394, ptr noundef %12395, i64 noundef 48) #14
  %12397 = icmp eq i32 %12396, 0
  br i1 %12397, label %12451, label %12398

12398:                                            ; preds = %12387
  br label %12399

12399:                                            ; preds = %12398
  br label %12400

12400:                                            ; preds = %12399
  call void @llvm.lifetime.start.p0(i64 4, ptr %320) #11
  %12401 = call ptr @__errno_location() #12
  %12402 = load i32, ptr %12401, align 4, !tbaa !5
  store i32 %12402, ptr %320, align 4, !tbaa !5
  %12403 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12404 = call i32 @s2n_print_stacktrace(ptr noundef %12403)
  %12405 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12406 = trunc i8 %12405 to i1
  br i1 %12406, label %12407, label %12429

12407:                                            ; preds = %12400
  %12408 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12409 = call i32 @fileno(ptr noundef %12408) #11
  %12410 = call i32 @isatty(i32 noundef %12409) #11
  %12411 = icmp ne i32 %12410, 0
  br i1 %12411, label %12412, label %12429

12412:                                            ; preds = %12407
  %12413 = load i32, ptr %320, align 4, !tbaa !5
  %12414 = call ptr @__errno_location() #12
  store i32 %12413, ptr %12414, align 4, !tbaa !5
  %12415 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12416 = load i32, ptr @test_count, align 4, !tbaa !5
  %12417 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12418 = load i32, ptr %12417, align 4, !tbaa !5
  %12419 = call ptr @s2n_strerror(i32 noundef %12418, ptr noundef @.str.4)
  %12420 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12421 = load i32, ptr %12420, align 4, !tbaa !5
  %12422 = call ptr @s2n_strerror_debug(i32 noundef %12421, ptr noundef @.str.4)
  %12423 = call ptr @__errno_location() #12
  %12424 = load i32, ptr %12423, align 4, !tbaa !5
  %12425 = call ptr @strerror(i32 noundef %12424) #11
  %12426 = call ptr @__errno_location() #12
  %12427 = load i32, ptr %12426, align 4, !tbaa !5
  %12428 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12415, ptr noundef @.str.2, i32 noundef %12416, ptr noundef @.str.90, ptr noundef @.str.1, i32 noundef 476, ptr noundef %12419, ptr noundef %12422, ptr noundef %12425, i32 noundef %12427) #11
  br label %12446

12429:                                            ; preds = %12407, %12400
  %12430 = load i32, ptr %320, align 4, !tbaa !5
  %12431 = call ptr @__errno_location() #12
  store i32 %12430, ptr %12431, align 4, !tbaa !5
  %12432 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12433 = load i32, ptr @test_count, align 4, !tbaa !5
  %12434 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12435 = load i32, ptr %12434, align 4, !tbaa !5
  %12436 = call ptr @s2n_strerror(i32 noundef %12435, ptr noundef @.str.4)
  %12437 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12438 = load i32, ptr %12437, align 4, !tbaa !5
  %12439 = call ptr @s2n_strerror_debug(i32 noundef %12438, ptr noundef @.str.4)
  %12440 = call ptr @__errno_location() #12
  %12441 = load i32, ptr %12440, align 4, !tbaa !5
  %12442 = call ptr @strerror(i32 noundef %12441) #11
  %12443 = call ptr @__errno_location() #12
  %12444 = load i32, ptr %12443, align 4, !tbaa !5
  %12445 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12432, ptr noundef @.str.5, i32 noundef %12433, ptr noundef @.str.90, ptr noundef @.str.1, i32 noundef 476, ptr noundef %12436, ptr noundef %12439, ptr noundef %12442, i32 noundef %12444) #11
  br label %12446

12446:                                            ; preds = %12429, %12412
  call void @llvm.lifetime.end.p0(i64 4, ptr %320) #11
  br label %12447

12447:                                            ; preds = %12446
  br label %12448

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

12449:                                            ; No predecessors!
  br label %12450

12450:                                            ; preds = %12449
  br label %12451

12451:                                            ; preds = %12450, %12387
  br label %12452

12452:                                            ; preds = %12451
  br label %12453

12453:                                            ; preds = %12452
  br label %12454

12454:                                            ; preds = %12453
  br label %12455

12455:                                            ; preds = %12454
  br label %12456

12456:                                            ; preds = %12455
  %12457 = load i32, ptr @test_count, align 4, !tbaa !5
  %12458 = add nsw i32 %12457, 1
  store i32 %12458, ptr @test_count, align 4, !tbaa !5
  %12459 = load ptr, ptr %317, align 8, !tbaa !9
  %12460 = call i32 @s2n_connection_set_test_message_type(ptr noundef %12459, i32 noundef 13)
  %12461 = getelementptr inbounds %struct.s2n_result, ptr %321, i32 0, i32 0
  store i32 %12460, ptr %12461, align 4
  %12462 = getelementptr inbounds %struct.s2n_result, ptr %321, i32 0, i32 0
  %12463 = load i32, ptr %12462, align 4
  %12464 = call zeroext i1 @s2n_result_is_ok(i32 %12463)
  br i1 %12464, label %12518, label %12465

12465:                                            ; preds = %12456
  br label %12466

12466:                                            ; preds = %12465
  br label %12467

12467:                                            ; preds = %12466
  call void @llvm.lifetime.start.p0(i64 4, ptr %322) #11
  %12468 = call ptr @__errno_location() #12
  %12469 = load i32, ptr %12468, align 4, !tbaa !5
  store i32 %12469, ptr %322, align 4, !tbaa !5
  %12470 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12471 = call i32 @s2n_print_stacktrace(ptr noundef %12470)
  %12472 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12473 = trunc i8 %12472 to i1
  br i1 %12473, label %12474, label %12496

12474:                                            ; preds = %12467
  %12475 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12476 = call i32 @fileno(ptr noundef %12475) #11
  %12477 = call i32 @isatty(i32 noundef %12476) #11
  %12478 = icmp ne i32 %12477, 0
  br i1 %12478, label %12479, label %12496

12479:                                            ; preds = %12474
  %12480 = load i32, ptr %322, align 4, !tbaa !5
  %12481 = call ptr @__errno_location() #12
  store i32 %12480, ptr %12481, align 4, !tbaa !5
  %12482 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12483 = load i32, ptr @test_count, align 4, !tbaa !5
  %12484 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12485 = load i32, ptr %12484, align 4, !tbaa !5
  %12486 = call ptr @s2n_strerror(i32 noundef %12485, ptr noundef @.str.4)
  %12487 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12488 = load i32, ptr %12487, align 4, !tbaa !5
  %12489 = call ptr @s2n_strerror_debug(i32 noundef %12488, ptr noundef @.str.4)
  %12490 = call ptr @__errno_location() #12
  %12491 = load i32, ptr %12490, align 4, !tbaa !5
  %12492 = call ptr @strerror(i32 noundef %12491) #11
  %12493 = call ptr @__errno_location() #12
  %12494 = load i32, ptr %12493, align 4, !tbaa !5
  %12495 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12482, ptr noundef @.str.2, i32 noundef %12483, ptr noundef @.str.91, ptr noundef @.str.1, i32 noundef 478, ptr noundef %12486, ptr noundef %12489, ptr noundef %12492, i32 noundef %12494) #11
  br label %12513

12496:                                            ; preds = %12474, %12467
  %12497 = load i32, ptr %322, align 4, !tbaa !5
  %12498 = call ptr @__errno_location() #12
  store i32 %12497, ptr %12498, align 4, !tbaa !5
  %12499 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12500 = load i32, ptr @test_count, align 4, !tbaa !5
  %12501 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12502 = load i32, ptr %12501, align 4, !tbaa !5
  %12503 = call ptr @s2n_strerror(i32 noundef %12502, ptr noundef @.str.4)
  %12504 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12505 = load i32, ptr %12504, align 4, !tbaa !5
  %12506 = call ptr @s2n_strerror_debug(i32 noundef %12505, ptr noundef @.str.4)
  %12507 = call ptr @__errno_location() #12
  %12508 = load i32, ptr %12507, align 4, !tbaa !5
  %12509 = call ptr @strerror(i32 noundef %12508) #11
  %12510 = call ptr @__errno_location() #12
  %12511 = load i32, ptr %12510, align 4, !tbaa !5
  %12512 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12499, ptr noundef @.str.5, i32 noundef %12500, ptr noundef @.str.91, ptr noundef @.str.1, i32 noundef 478, ptr noundef %12503, ptr noundef %12506, ptr noundef %12509, i32 noundef %12511) #11
  br label %12513

12513:                                            ; preds = %12496, %12479
  call void @llvm.lifetime.end.p0(i64 4, ptr %322) #11
  br label %12514

12514:                                            ; preds = %12513
  br label %12515

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

12516:                                            ; No predecessors!
  br label %12517

12517:                                            ; preds = %12516
  br label %12518

12518:                                            ; preds = %12517, %12456
  br label %12519

12519:                                            ; preds = %12518
  br label %12520

12520:                                            ; preds = %12519
  br label %12521

12521:                                            ; preds = %12520
  %12522 = load i32, ptr @test_count, align 4, !tbaa !5
  %12523 = add nsw i32 %12522, 1
  store i32 %12523, ptr @test_count, align 4, !tbaa !5
  %12524 = load ptr, ptr %317, align 8, !tbaa !9
  %12525 = call i32 @s2n_tls13_secrets_update(ptr noundef %12524)
  %12526 = getelementptr inbounds %struct.s2n_result, ptr %323, i32 0, i32 0
  store i32 %12525, ptr %12526, align 4
  %12527 = getelementptr inbounds %struct.s2n_result, ptr %323, i32 0, i32 0
  %12528 = load i32, ptr %12527, align 4
  %12529 = call zeroext i1 @s2n_result_is_ok(i32 %12528)
  br i1 %12529, label %12583, label %12530

12530:                                            ; preds = %12521
  br label %12531

12531:                                            ; preds = %12530
  br label %12532

12532:                                            ; preds = %12531
  call void @llvm.lifetime.start.p0(i64 4, ptr %324) #11
  %12533 = call ptr @__errno_location() #12
  %12534 = load i32, ptr %12533, align 4, !tbaa !5
  store i32 %12534, ptr %324, align 4, !tbaa !5
  %12535 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12536 = call i32 @s2n_print_stacktrace(ptr noundef %12535)
  %12537 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12538 = trunc i8 %12537 to i1
  br i1 %12538, label %12539, label %12561

12539:                                            ; preds = %12532
  %12540 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12541 = call i32 @fileno(ptr noundef %12540) #11
  %12542 = call i32 @isatty(i32 noundef %12541) #11
  %12543 = icmp ne i32 %12542, 0
  br i1 %12543, label %12544, label %12561

12544:                                            ; preds = %12539
  %12545 = load i32, ptr %324, align 4, !tbaa !5
  %12546 = call ptr @__errno_location() #12
  store i32 %12545, ptr %12546, align 4, !tbaa !5
  %12547 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12548 = load i32, ptr @test_count, align 4, !tbaa !5
  %12549 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12550 = load i32, ptr %12549, align 4, !tbaa !5
  %12551 = call ptr @s2n_strerror(i32 noundef %12550, ptr noundef @.str.4)
  %12552 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12553 = load i32, ptr %12552, align 4, !tbaa !5
  %12554 = call ptr @s2n_strerror_debug(i32 noundef %12553, ptr noundef @.str.4)
  %12555 = call ptr @__errno_location() #12
  %12556 = load i32, ptr %12555, align 4, !tbaa !5
  %12557 = call ptr @strerror(i32 noundef %12556) #11
  %12558 = call ptr @__errno_location() #12
  %12559 = load i32, ptr %12558, align 4, !tbaa !5
  %12560 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12547, ptr noundef @.str.2, i32 noundef %12548, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 479, ptr noundef %12551, ptr noundef %12554, ptr noundef %12557, i32 noundef %12559) #11
  br label %12578

12561:                                            ; preds = %12539, %12532
  %12562 = load i32, ptr %324, align 4, !tbaa !5
  %12563 = call ptr @__errno_location() #12
  store i32 %12562, ptr %12563, align 4, !tbaa !5
  %12564 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12565 = load i32, ptr @test_count, align 4, !tbaa !5
  %12566 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12567 = load i32, ptr %12566, align 4, !tbaa !5
  %12568 = call ptr @s2n_strerror(i32 noundef %12567, ptr noundef @.str.4)
  %12569 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12570 = load i32, ptr %12569, align 4, !tbaa !5
  %12571 = call ptr @s2n_strerror_debug(i32 noundef %12570, ptr noundef @.str.4)
  %12572 = call ptr @__errno_location() #12
  %12573 = load i32, ptr %12572, align 4, !tbaa !5
  %12574 = call ptr @strerror(i32 noundef %12573) #11
  %12575 = call ptr @__errno_location() #12
  %12576 = load i32, ptr %12575, align 4, !tbaa !5
  %12577 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12564, ptr noundef @.str.5, i32 noundef %12565, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 479, ptr noundef %12568, ptr noundef %12571, ptr noundef %12574, i32 noundef %12576) #11
  br label %12578

12578:                                            ; preds = %12561, %12544
  call void @llvm.lifetime.end.p0(i64 4, ptr %324) #11
  br label %12579

12579:                                            ; preds = %12578
  br label %12580

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

12581:                                            ; No predecessors!
  br label %12582

12582:                                            ; preds = %12581
  br label %12583

12583:                                            ; preds = %12582, %12521
  br label %12584

12584:                                            ; preds = %12583
  br label %12585

12585:                                            ; preds = %12584
  br label %12586

12586:                                            ; preds = %12585
  %12587 = load i32, ptr @test_count, align 4, !tbaa !5
  %12588 = add nsw i32 %12587, 1
  store i32 %12588, ptr @test_count, align 4, !tbaa !5
  %12589 = load ptr, ptr %317, align 8, !tbaa !9
  %12590 = getelementptr inbounds %struct.s2n_connection, ptr %12589, i32 0, i32 28
  %12591 = getelementptr inbounds %struct.s2n_secrets, ptr %12590, i32 0, i32 0
  %12592 = getelementptr inbounds %struct.s2n_tls13_secrets, ptr %12591, i32 0, i32 6
  %12593 = getelementptr inbounds [48 x i8], ptr %12592, i64 0, i64 0
  %12594 = getelementptr inbounds [48 x i8], ptr %9, i64 0, i64 0
  %12595 = call i32 @memcmp(ptr noundef %12593, ptr noundef %12594, i64 noundef 48) #14
  %12596 = icmp eq i32 %12595, 0
  br i1 %12596, label %12597, label %12650

12597:                                            ; preds = %12586
  br label %12598

12598:                                            ; preds = %12597
  br label %12599

12599:                                            ; preds = %12598
  call void @llvm.lifetime.start.p0(i64 4, ptr %325) #11
  %12600 = call ptr @__errno_location() #12
  %12601 = load i32, ptr %12600, align 4, !tbaa !5
  store i32 %12601, ptr %325, align 4, !tbaa !5
  %12602 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12603 = call i32 @s2n_print_stacktrace(ptr noundef %12602)
  %12604 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12605 = trunc i8 %12604 to i1
  br i1 %12605, label %12606, label %12628

12606:                                            ; preds = %12599
  %12607 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12608 = call i32 @fileno(ptr noundef %12607) #11
  %12609 = call i32 @isatty(i32 noundef %12608) #11
  %12610 = icmp ne i32 %12609, 0
  br i1 %12610, label %12611, label %12628

12611:                                            ; preds = %12606
  %12612 = load i32, ptr %325, align 4, !tbaa !5
  %12613 = call ptr @__errno_location() #12
  store i32 %12612, ptr %12613, align 4, !tbaa !5
  %12614 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12615 = load i32, ptr @test_count, align 4, !tbaa !5
  %12616 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12617 = load i32, ptr %12616, align 4, !tbaa !5
  %12618 = call ptr @s2n_strerror(i32 noundef %12617, ptr noundef @.str.4)
  %12619 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12620 = load i32, ptr %12619, align 4, !tbaa !5
  %12621 = call ptr @s2n_strerror_debug(i32 noundef %12620, ptr noundef @.str.4)
  %12622 = call ptr @__errno_location() #12
  %12623 = load i32, ptr %12622, align 4, !tbaa !5
  %12624 = call ptr @strerror(i32 noundef %12623) #11
  %12625 = call ptr @__errno_location() #12
  %12626 = load i32, ptr %12625, align 4, !tbaa !5
  %12627 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12614, ptr noundef @.str.2, i32 noundef %12615, ptr noundef @.str.58, ptr noundef @.str.1, i32 noundef 482, ptr noundef %12618, ptr noundef %12621, ptr noundef %12624, i32 noundef %12626) #11
  br label %12645

12628:                                            ; preds = %12606, %12599
  %12629 = load i32, ptr %325, align 4, !tbaa !5
  %12630 = call ptr @__errno_location() #12
  store i32 %12629, ptr %12630, align 4, !tbaa !5
  %12631 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12632 = load i32, ptr @test_count, align 4, !tbaa !5
  %12633 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12634 = load i32, ptr %12633, align 4, !tbaa !5
  %12635 = call ptr @s2n_strerror(i32 noundef %12634, ptr noundef @.str.4)
  %12636 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12637 = load i32, ptr %12636, align 4, !tbaa !5
  %12638 = call ptr @s2n_strerror_debug(i32 noundef %12637, ptr noundef @.str.4)
  %12639 = call ptr @__errno_location() #12
  %12640 = load i32, ptr %12639, align 4, !tbaa !5
  %12641 = call ptr @strerror(i32 noundef %12640) #11
  %12642 = call ptr @__errno_location() #12
  %12643 = load i32, ptr %12642, align 4, !tbaa !5
  %12644 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12631, ptr noundef @.str.5, i32 noundef %12632, ptr noundef @.str.58, ptr noundef @.str.1, i32 noundef 482, ptr noundef %12635, ptr noundef %12638, ptr noundef %12641, i32 noundef %12643) #11
  br label %12645

12645:                                            ; preds = %12628, %12611
  call void @llvm.lifetime.end.p0(i64 4, ptr %325) #11
  br label %12646

12646:                                            ; preds = %12645
  br label %12647

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

12648:                                            ; No predecessors!
  br label %12649

12649:                                            ; preds = %12648
  br label %12650

12650:                                            ; preds = %12649, %12586
  br label %12651

12651:                                            ; preds = %12650
  br label %12652

12652:                                            ; preds = %12651
  %12653 = call i32 @s2n_connection_ptr_free(ptr noundef %317)
  %12654 = getelementptr inbounds %struct.s2n_result, ptr %326, i32 0, i32 0
  store i32 %12653, ptr %12654, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %317) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %327) #11
  %12655 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %12655, ptr %327, align 8, !tbaa !9
  %12656 = load ptr, ptr %327, align 8, !tbaa !9
  %12657 = getelementptr inbounds %struct.s2n_connection, ptr %12656, i32 0, i32 27
  %12658 = load ptr, ptr %12657, align 8, !tbaa !39
  %12659 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %12658, i32 0, i32 0
  store ptr @s2n_tls13_aes_128_gcm_sha256, ptr %12659, align 8, !tbaa !64
  %12660 = load ptr, ptr %327, align 8, !tbaa !9
  %12661 = getelementptr inbounds %struct.s2n_connection, ptr %12660, i32 0, i32 23
  store i8 34, ptr %12661, align 4, !tbaa !72
  br label %12662

12662:                                            ; preds = %12652
  %12663 = load i32, ptr @test_count, align 4, !tbaa !5
  %12664 = add nsw i32 %12663, 1
  store i32 %12664, ptr @test_count, align 4, !tbaa !5
  %12665 = load ptr, ptr %327, align 8, !tbaa !9
  %12666 = call i32 @s2n_connection_set_test_master_secret(ptr noundef %12665, ptr noundef %13)
  %12667 = getelementptr inbounds %struct.s2n_result, ptr %328, i32 0, i32 0
  store i32 %12666, ptr %12667, align 4
  %12668 = getelementptr inbounds %struct.s2n_result, ptr %328, i32 0, i32 0
  %12669 = load i32, ptr %12668, align 4
  %12670 = call zeroext i1 @s2n_result_is_ok(i32 %12669)
  br i1 %12670, label %12724, label %12671

12671:                                            ; preds = %12662
  br label %12672

12672:                                            ; preds = %12671
  br label %12673

12673:                                            ; preds = %12672
  call void @llvm.lifetime.start.p0(i64 4, ptr %329) #11
  %12674 = call ptr @__errno_location() #12
  %12675 = load i32, ptr %12674, align 4, !tbaa !5
  store i32 %12675, ptr %329, align 4, !tbaa !5
  %12676 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12677 = call i32 @s2n_print_stacktrace(ptr noundef %12676)
  %12678 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12679 = trunc i8 %12678 to i1
  br i1 %12679, label %12680, label %12702

12680:                                            ; preds = %12673
  %12681 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12682 = call i32 @fileno(ptr noundef %12681) #11
  %12683 = call i32 @isatty(i32 noundef %12682) #11
  %12684 = icmp ne i32 %12683, 0
  br i1 %12684, label %12685, label %12702

12685:                                            ; preds = %12680
  %12686 = load i32, ptr %329, align 4, !tbaa !5
  %12687 = call ptr @__errno_location() #12
  store i32 %12686, ptr %12687, align 4, !tbaa !5
  %12688 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12689 = load i32, ptr @test_count, align 4, !tbaa !5
  %12690 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12691 = load i32, ptr %12690, align 4, !tbaa !5
  %12692 = call ptr @s2n_strerror(i32 noundef %12691, ptr noundef @.str.4)
  %12693 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12694 = load i32, ptr %12693, align 4, !tbaa !5
  %12695 = call ptr @s2n_strerror_debug(i32 noundef %12694, ptr noundef @.str.4)
  %12696 = call ptr @__errno_location() #12
  %12697 = load i32, ptr %12696, align 4, !tbaa !5
  %12698 = call ptr @strerror(i32 noundef %12697) #11
  %12699 = call ptr @__errno_location() #12
  %12700 = load i32, ptr %12699, align 4, !tbaa !5
  %12701 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12688, ptr noundef @.str.2, i32 noundef %12689, ptr noundef @.str.86, ptr noundef @.str.1, i32 noundef 494, ptr noundef %12692, ptr noundef %12695, ptr noundef %12698, i32 noundef %12700) #11
  br label %12719

12702:                                            ; preds = %12680, %12673
  %12703 = load i32, ptr %329, align 4, !tbaa !5
  %12704 = call ptr @__errno_location() #12
  store i32 %12703, ptr %12704, align 4, !tbaa !5
  %12705 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12706 = load i32, ptr @test_count, align 4, !tbaa !5
  %12707 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12708 = load i32, ptr %12707, align 4, !tbaa !5
  %12709 = call ptr @s2n_strerror(i32 noundef %12708, ptr noundef @.str.4)
  %12710 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12711 = load i32, ptr %12710, align 4, !tbaa !5
  %12712 = call ptr @s2n_strerror_debug(i32 noundef %12711, ptr noundef @.str.4)
  %12713 = call ptr @__errno_location() #12
  %12714 = load i32, ptr %12713, align 4, !tbaa !5
  %12715 = call ptr @strerror(i32 noundef %12714) #11
  %12716 = call ptr @__errno_location() #12
  %12717 = load i32, ptr %12716, align 4, !tbaa !5
  %12718 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12705, ptr noundef @.str.5, i32 noundef %12706, ptr noundef @.str.86, ptr noundef @.str.1, i32 noundef 494, ptr noundef %12709, ptr noundef %12712, ptr noundef %12715, i32 noundef %12717) #11
  br label %12719

12719:                                            ; preds = %12702, %12685
  call void @llvm.lifetime.end.p0(i64 4, ptr %329) #11
  br label %12720

12720:                                            ; preds = %12719
  br label %12721

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

12722:                                            ; No predecessors!
  br label %12723

12723:                                            ; preds = %12722
  br label %12724

12724:                                            ; preds = %12723, %12662
  br label %12725

12725:                                            ; preds = %12724
  br label %12726

12726:                                            ; preds = %12725
  br label %12727

12727:                                            ; preds = %12726
  br label %12728

12728:                                            ; preds = %12727
  %12729 = load i32, ptr @test_count, align 4, !tbaa !5
  %12730 = add nsw i32 %12729, 1
  store i32 %12730, ptr @test_count, align 4, !tbaa !5
  %12731 = load ptr, ptr %327, align 8, !tbaa !9
  %12732 = getelementptr inbounds %struct.s2n_connection, ptr %12731, i32 0, i32 28
  %12733 = getelementptr inbounds %struct.s2n_secrets, ptr %12732, i32 0, i32 0
  %12734 = getelementptr inbounds %struct.s2n_tls13_secrets, ptr %12733, i32 0, i32 7
  %12735 = getelementptr inbounds [48 x i8], ptr %12734, i64 0, i64 0
  %12736 = getelementptr inbounds [48 x i8], ptr %9, i64 0, i64 0
  %12737 = call i32 @memcmp(ptr noundef %12735, ptr noundef %12736, i64 noundef 48) #14
  %12738 = icmp eq i32 %12737, 0
  br i1 %12738, label %12792, label %12739

12739:                                            ; preds = %12728
  br label %12740

12740:                                            ; preds = %12739
  br label %12741

12741:                                            ; preds = %12740
  call void @llvm.lifetime.start.p0(i64 4, ptr %330) #11
  %12742 = call ptr @__errno_location() #12
  %12743 = load i32, ptr %12742, align 4, !tbaa !5
  store i32 %12743, ptr %330, align 4, !tbaa !5
  %12744 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12745 = call i32 @s2n_print_stacktrace(ptr noundef %12744)
  %12746 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12747 = trunc i8 %12746 to i1
  br i1 %12747, label %12748, label %12770

12748:                                            ; preds = %12741
  %12749 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12750 = call i32 @fileno(ptr noundef %12749) #11
  %12751 = call i32 @isatty(i32 noundef %12750) #11
  %12752 = icmp ne i32 %12751, 0
  br i1 %12752, label %12753, label %12770

12753:                                            ; preds = %12748
  %12754 = load i32, ptr %330, align 4, !tbaa !5
  %12755 = call ptr @__errno_location() #12
  store i32 %12754, ptr %12755, align 4, !tbaa !5
  %12756 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12757 = load i32, ptr @test_count, align 4, !tbaa !5
  %12758 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12759 = load i32, ptr %12758, align 4, !tbaa !5
  %12760 = call ptr @s2n_strerror(i32 noundef %12759, ptr noundef @.str.4)
  %12761 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12762 = load i32, ptr %12761, align 4, !tbaa !5
  %12763 = call ptr @s2n_strerror_debug(i32 noundef %12762, ptr noundef @.str.4)
  %12764 = call ptr @__errno_location() #12
  %12765 = load i32, ptr %12764, align 4, !tbaa !5
  %12766 = call ptr @strerror(i32 noundef %12765) #11
  %12767 = call ptr @__errno_location() #12
  %12768 = load i32, ptr %12767, align 4, !tbaa !5
  %12769 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12756, ptr noundef @.str.2, i32 noundef %12757, ptr noundef @.str.92, ptr noundef @.str.1, i32 noundef 496, ptr noundef %12760, ptr noundef %12763, ptr noundef %12766, i32 noundef %12768) #11
  br label %12787

12770:                                            ; preds = %12748, %12741
  %12771 = load i32, ptr %330, align 4, !tbaa !5
  %12772 = call ptr @__errno_location() #12
  store i32 %12771, ptr %12772, align 4, !tbaa !5
  %12773 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12774 = load i32, ptr @test_count, align 4, !tbaa !5
  %12775 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12776 = load i32, ptr %12775, align 4, !tbaa !5
  %12777 = call ptr @s2n_strerror(i32 noundef %12776, ptr noundef @.str.4)
  %12778 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12779 = load i32, ptr %12778, align 4, !tbaa !5
  %12780 = call ptr @s2n_strerror_debug(i32 noundef %12779, ptr noundef @.str.4)
  %12781 = call ptr @__errno_location() #12
  %12782 = load i32, ptr %12781, align 4, !tbaa !5
  %12783 = call ptr @strerror(i32 noundef %12782) #11
  %12784 = call ptr @__errno_location() #12
  %12785 = load i32, ptr %12784, align 4, !tbaa !5
  %12786 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12773, ptr noundef @.str.5, i32 noundef %12774, ptr noundef @.str.92, ptr noundef @.str.1, i32 noundef 496, ptr noundef %12777, ptr noundef %12780, ptr noundef %12783, i32 noundef %12785) #11
  br label %12787

12787:                                            ; preds = %12770, %12753
  call void @llvm.lifetime.end.p0(i64 4, ptr %330) #11
  br label %12788

12788:                                            ; preds = %12787
  br label %12789

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

12790:                                            ; No predecessors!
  br label %12791

12791:                                            ; preds = %12790
  br label %12792

12792:                                            ; preds = %12791, %12728
  br label %12793

12793:                                            ; preds = %12792
  br label %12794

12794:                                            ; preds = %12793
  br label %12795

12795:                                            ; preds = %12794
  br label %12796

12796:                                            ; preds = %12795
  br label %12797

12797:                                            ; preds = %12796
  %12798 = load i32, ptr @test_count, align 4, !tbaa !5
  %12799 = add nsw i32 %12798, 1
  store i32 %12799, ptr @test_count, align 4, !tbaa !5
  %12800 = load ptr, ptr %327, align 8, !tbaa !9
  %12801 = call i32 @s2n_connection_set_test_message_type(ptr noundef %12800, i32 noundef 15)
  %12802 = getelementptr inbounds %struct.s2n_result, ptr %331, i32 0, i32 0
  store i32 %12801, ptr %12802, align 4
  %12803 = getelementptr inbounds %struct.s2n_result, ptr %331, i32 0, i32 0
  %12804 = load i32, ptr %12803, align 4
  %12805 = call zeroext i1 @s2n_result_is_ok(i32 %12804)
  br i1 %12805, label %12859, label %12806

12806:                                            ; preds = %12797
  br label %12807

12807:                                            ; preds = %12806
  br label %12808

12808:                                            ; preds = %12807
  call void @llvm.lifetime.start.p0(i64 4, ptr %332) #11
  %12809 = call ptr @__errno_location() #12
  %12810 = load i32, ptr %12809, align 4, !tbaa !5
  store i32 %12810, ptr %332, align 4, !tbaa !5
  %12811 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12812 = call i32 @s2n_print_stacktrace(ptr noundef %12811)
  %12813 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12814 = trunc i8 %12813 to i1
  br i1 %12814, label %12815, label %12837

12815:                                            ; preds = %12808
  %12816 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12817 = call i32 @fileno(ptr noundef %12816) #11
  %12818 = call i32 @isatty(i32 noundef %12817) #11
  %12819 = icmp ne i32 %12818, 0
  br i1 %12819, label %12820, label %12837

12820:                                            ; preds = %12815
  %12821 = load i32, ptr %332, align 4, !tbaa !5
  %12822 = call ptr @__errno_location() #12
  store i32 %12821, ptr %12822, align 4, !tbaa !5
  %12823 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12824 = load i32, ptr @test_count, align 4, !tbaa !5
  %12825 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12826 = load i32, ptr %12825, align 4, !tbaa !5
  %12827 = call ptr @s2n_strerror(i32 noundef %12826, ptr noundef @.str.4)
  %12828 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12829 = load i32, ptr %12828, align 4, !tbaa !5
  %12830 = call ptr @s2n_strerror_debug(i32 noundef %12829, ptr noundef @.str.4)
  %12831 = call ptr @__errno_location() #12
  %12832 = load i32, ptr %12831, align 4, !tbaa !5
  %12833 = call ptr @strerror(i32 noundef %12832) #11
  %12834 = call ptr @__errno_location() #12
  %12835 = load i32, ptr %12834, align 4, !tbaa !5
  %12836 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12823, ptr noundef @.str.2, i32 noundef %12824, ptr noundef @.str.89, ptr noundef @.str.1, i32 noundef 498, ptr noundef %12827, ptr noundef %12830, ptr noundef %12833, i32 noundef %12835) #11
  br label %12854

12837:                                            ; preds = %12815, %12808
  %12838 = load i32, ptr %332, align 4, !tbaa !5
  %12839 = call ptr @__errno_location() #12
  store i32 %12838, ptr %12839, align 4, !tbaa !5
  %12840 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12841 = load i32, ptr @test_count, align 4, !tbaa !5
  %12842 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12843 = load i32, ptr %12842, align 4, !tbaa !5
  %12844 = call ptr @s2n_strerror(i32 noundef %12843, ptr noundef @.str.4)
  %12845 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12846 = load i32, ptr %12845, align 4, !tbaa !5
  %12847 = call ptr @s2n_strerror_debug(i32 noundef %12846, ptr noundef @.str.4)
  %12848 = call ptr @__errno_location() #12
  %12849 = load i32, ptr %12848, align 4, !tbaa !5
  %12850 = call ptr @strerror(i32 noundef %12849) #11
  %12851 = call ptr @__errno_location() #12
  %12852 = load i32, ptr %12851, align 4, !tbaa !5
  %12853 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12840, ptr noundef @.str.5, i32 noundef %12841, ptr noundef @.str.89, ptr noundef @.str.1, i32 noundef 498, ptr noundef %12844, ptr noundef %12847, ptr noundef %12850, i32 noundef %12852) #11
  br label %12854

12854:                                            ; preds = %12837, %12820
  call void @llvm.lifetime.end.p0(i64 4, ptr %332) #11
  br label %12855

12855:                                            ; preds = %12854
  br label %12856

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

12857:                                            ; No predecessors!
  br label %12858

12858:                                            ; preds = %12857
  br label %12859

12859:                                            ; preds = %12858, %12797
  br label %12860

12860:                                            ; preds = %12859
  br label %12861

12861:                                            ; preds = %12860
  br label %12862

12862:                                            ; preds = %12861
  %12863 = load i32, ptr @test_count, align 4, !tbaa !5
  %12864 = add nsw i32 %12863, 1
  store i32 %12864, ptr @test_count, align 4, !tbaa !5
  %12865 = load ptr, ptr %327, align 8, !tbaa !9
  %12866 = call i32 @s2n_tls13_secrets_update(ptr noundef %12865)
  %12867 = getelementptr inbounds %struct.s2n_result, ptr %333, i32 0, i32 0
  store i32 %12866, ptr %12867, align 4
  %12868 = getelementptr inbounds %struct.s2n_result, ptr %333, i32 0, i32 0
  %12869 = load i32, ptr %12868, align 4
  %12870 = call zeroext i1 @s2n_result_is_ok(i32 %12869)
  br i1 %12870, label %12924, label %12871

12871:                                            ; preds = %12862
  br label %12872

12872:                                            ; preds = %12871
  br label %12873

12873:                                            ; preds = %12872
  call void @llvm.lifetime.start.p0(i64 4, ptr %334) #11
  %12874 = call ptr @__errno_location() #12
  %12875 = load i32, ptr %12874, align 4, !tbaa !5
  store i32 %12875, ptr %334, align 4, !tbaa !5
  %12876 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12877 = call i32 @s2n_print_stacktrace(ptr noundef %12876)
  %12878 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12879 = trunc i8 %12878 to i1
  br i1 %12879, label %12880, label %12902

12880:                                            ; preds = %12873
  %12881 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12882 = call i32 @fileno(ptr noundef %12881) #11
  %12883 = call i32 @isatty(i32 noundef %12882) #11
  %12884 = icmp ne i32 %12883, 0
  br i1 %12884, label %12885, label %12902

12885:                                            ; preds = %12880
  %12886 = load i32, ptr %334, align 4, !tbaa !5
  %12887 = call ptr @__errno_location() #12
  store i32 %12886, ptr %12887, align 4, !tbaa !5
  %12888 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12889 = load i32, ptr @test_count, align 4, !tbaa !5
  %12890 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12891 = load i32, ptr %12890, align 4, !tbaa !5
  %12892 = call ptr @s2n_strerror(i32 noundef %12891, ptr noundef @.str.4)
  %12893 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12894 = load i32, ptr %12893, align 4, !tbaa !5
  %12895 = call ptr @s2n_strerror_debug(i32 noundef %12894, ptr noundef @.str.4)
  %12896 = call ptr @__errno_location() #12
  %12897 = load i32, ptr %12896, align 4, !tbaa !5
  %12898 = call ptr @strerror(i32 noundef %12897) #11
  %12899 = call ptr @__errno_location() #12
  %12900 = load i32, ptr %12899, align 4, !tbaa !5
  %12901 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12888, ptr noundef @.str.2, i32 noundef %12889, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 499, ptr noundef %12892, ptr noundef %12895, ptr noundef %12898, i32 noundef %12900) #11
  br label %12919

12902:                                            ; preds = %12880, %12873
  %12903 = load i32, ptr %334, align 4, !tbaa !5
  %12904 = call ptr @__errno_location() #12
  store i32 %12903, ptr %12904, align 4, !tbaa !5
  %12905 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12906 = load i32, ptr @test_count, align 4, !tbaa !5
  %12907 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12908 = load i32, ptr %12907, align 4, !tbaa !5
  %12909 = call ptr @s2n_strerror(i32 noundef %12908, ptr noundef @.str.4)
  %12910 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12911 = load i32, ptr %12910, align 4, !tbaa !5
  %12912 = call ptr @s2n_strerror_debug(i32 noundef %12911, ptr noundef @.str.4)
  %12913 = call ptr @__errno_location() #12
  %12914 = load i32, ptr %12913, align 4, !tbaa !5
  %12915 = call ptr @strerror(i32 noundef %12914) #11
  %12916 = call ptr @__errno_location() #12
  %12917 = load i32, ptr %12916, align 4, !tbaa !5
  %12918 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12905, ptr noundef @.str.5, i32 noundef %12906, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 499, ptr noundef %12909, ptr noundef %12912, ptr noundef %12915, i32 noundef %12917) #11
  br label %12919

12919:                                            ; preds = %12902, %12885
  call void @llvm.lifetime.end.p0(i64 4, ptr %334) #11
  br label %12920

12920:                                            ; preds = %12919
  br label %12921

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

12922:                                            ; No predecessors!
  br label %12923

12923:                                            ; preds = %12922
  br label %12924

12924:                                            ; preds = %12923, %12862
  br label %12925

12925:                                            ; preds = %12924
  br label %12926

12926:                                            ; preds = %12925
  br label %12927

12927:                                            ; preds = %12926
  %12928 = load i32, ptr @test_count, align 4, !tbaa !5
  %12929 = add nsw i32 %12928, 1
  store i32 %12929, ptr @test_count, align 4, !tbaa !5
  %12930 = load ptr, ptr %327, align 8, !tbaa !9
  %12931 = getelementptr inbounds %struct.s2n_connection, ptr %12930, i32 0, i32 28
  %12932 = getelementptr inbounds %struct.s2n_secrets, ptr %12931, i32 0, i32 0
  %12933 = getelementptr inbounds %struct.s2n_tls13_secrets, ptr %12932, i32 0, i32 7
  %12934 = getelementptr inbounds [48 x i8], ptr %12933, i64 0, i64 0
  %12935 = getelementptr inbounds [48 x i8], ptr %9, i64 0, i64 0
  %12936 = call i32 @memcmp(ptr noundef %12934, ptr noundef %12935, i64 noundef 48) #14
  %12937 = icmp eq i32 %12936, 0
  br i1 %12937, label %12938, label %12991

12938:                                            ; preds = %12927
  br label %12939

12939:                                            ; preds = %12938
  br label %12940

12940:                                            ; preds = %12939
  call void @llvm.lifetime.start.p0(i64 4, ptr %335) #11
  %12941 = call ptr @__errno_location() #12
  %12942 = load i32, ptr %12941, align 4, !tbaa !5
  store i32 %12942, ptr %335, align 4, !tbaa !5
  %12943 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12944 = call i32 @s2n_print_stacktrace(ptr noundef %12943)
  %12945 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12946 = trunc i8 %12945 to i1
  br i1 %12946, label %12947, label %12969

12947:                                            ; preds = %12940
  %12948 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12949 = call i32 @fileno(ptr noundef %12948) #11
  %12950 = call i32 @isatty(i32 noundef %12949) #11
  %12951 = icmp ne i32 %12950, 0
  br i1 %12951, label %12952, label %12969

12952:                                            ; preds = %12947
  %12953 = load i32, ptr %335, align 4, !tbaa !5
  %12954 = call ptr @__errno_location() #12
  store i32 %12953, ptr %12954, align 4, !tbaa !5
  %12955 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12956 = load i32, ptr @test_count, align 4, !tbaa !5
  %12957 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12958 = load i32, ptr %12957, align 4, !tbaa !5
  %12959 = call ptr @s2n_strerror(i32 noundef %12958, ptr noundef @.str.4)
  %12960 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12961 = load i32, ptr %12960, align 4, !tbaa !5
  %12962 = call ptr @s2n_strerror_debug(i32 noundef %12961, ptr noundef @.str.4)
  %12963 = call ptr @__errno_location() #12
  %12964 = load i32, ptr %12963, align 4, !tbaa !5
  %12965 = call ptr @strerror(i32 noundef %12964) #11
  %12966 = call ptr @__errno_location() #12
  %12967 = load i32, ptr %12966, align 4, !tbaa !5
  %12968 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12955, ptr noundef @.str.2, i32 noundef %12956, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 502, ptr noundef %12959, ptr noundef %12962, ptr noundef %12965, i32 noundef %12967) #11
  br label %12986

12969:                                            ; preds = %12947, %12940
  %12970 = load i32, ptr %335, align 4, !tbaa !5
  %12971 = call ptr @__errno_location() #12
  store i32 %12970, ptr %12971, align 4, !tbaa !5
  %12972 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12973 = load i32, ptr @test_count, align 4, !tbaa !5
  %12974 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12975 = load i32, ptr %12974, align 4, !tbaa !5
  %12976 = call ptr @s2n_strerror(i32 noundef %12975, ptr noundef @.str.4)
  %12977 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12978 = load i32, ptr %12977, align 4, !tbaa !5
  %12979 = call ptr @s2n_strerror_debug(i32 noundef %12978, ptr noundef @.str.4)
  %12980 = call ptr @__errno_location() #12
  %12981 = load i32, ptr %12980, align 4, !tbaa !5
  %12982 = call ptr @strerror(i32 noundef %12981) #11
  %12983 = call ptr @__errno_location() #12
  %12984 = load i32, ptr %12983, align 4, !tbaa !5
  %12985 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12972, ptr noundef @.str.5, i32 noundef %12973, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 502, ptr noundef %12976, ptr noundef %12979, ptr noundef %12982, i32 noundef %12984) #11
  br label %12986

12986:                                            ; preds = %12969, %12952
  call void @llvm.lifetime.end.p0(i64 4, ptr %335) #11
  br label %12987

12987:                                            ; preds = %12986
  br label %12988

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

12989:                                            ; No predecessors!
  br label %12990

12990:                                            ; preds = %12989
  br label %12991

12991:                                            ; preds = %12990, %12927
  br label %12992

12992:                                            ; preds = %12991
  br label %12993

12993:                                            ; preds = %12992
  br label %12994

12994:                                            ; preds = %12993
  %12995 = load i32, ptr @test_count, align 4, !tbaa !5
  %12996 = add nsw i32 %12995, 1
  store i32 %12996, ptr @test_count, align 4, !tbaa !5
  %12997 = load ptr, ptr %327, align 8, !tbaa !9
  %12998 = call i32 @s2n_skip_handshake(ptr noundef %12997)
  %12999 = getelementptr inbounds %struct.s2n_result, ptr %336, i32 0, i32 0
  store i32 %12998, ptr %12999, align 4
  %13000 = getelementptr inbounds %struct.s2n_result, ptr %336, i32 0, i32 0
  %13001 = load i32, ptr %13000, align 4
  %13002 = call zeroext i1 @s2n_result_is_ok(i32 %13001)
  br i1 %13002, label %13056, label %13003

13003:                                            ; preds = %12994
  br label %13004

13004:                                            ; preds = %13003
  br label %13005

13005:                                            ; preds = %13004
  call void @llvm.lifetime.start.p0(i64 4, ptr %337) #11
  %13006 = call ptr @__errno_location() #12
  %13007 = load i32, ptr %13006, align 4, !tbaa !5
  store i32 %13007, ptr %337, align 4, !tbaa !5
  %13008 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13009 = call i32 @s2n_print_stacktrace(ptr noundef %13008)
  %13010 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13011 = trunc i8 %13010 to i1
  br i1 %13011, label %13012, label %13034

13012:                                            ; preds = %13005
  %13013 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13014 = call i32 @fileno(ptr noundef %13013) #11
  %13015 = call i32 @isatty(i32 noundef %13014) #11
  %13016 = icmp ne i32 %13015, 0
  br i1 %13016, label %13017, label %13034

13017:                                            ; preds = %13012
  %13018 = load i32, ptr %337, align 4, !tbaa !5
  %13019 = call ptr @__errno_location() #12
  store i32 %13018, ptr %13019, align 4, !tbaa !5
  %13020 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13021 = load i32, ptr @test_count, align 4, !tbaa !5
  %13022 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13023 = load i32, ptr %13022, align 4, !tbaa !5
  %13024 = call ptr @s2n_strerror(i32 noundef %13023, ptr noundef @.str.4)
  %13025 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13026 = load i32, ptr %13025, align 4, !tbaa !5
  %13027 = call ptr @s2n_strerror_debug(i32 noundef %13026, ptr noundef @.str.4)
  %13028 = call ptr @__errno_location() #12
  %13029 = load i32, ptr %13028, align 4, !tbaa !5
  %13030 = call ptr @strerror(i32 noundef %13029) #11
  %13031 = call ptr @__errno_location() #12
  %13032 = load i32, ptr %13031, align 4, !tbaa !5
  %13033 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13020, ptr noundef @.str.2, i32 noundef %13021, ptr noundef @.str.93, ptr noundef @.str.1, i32 noundef 509, ptr noundef %13024, ptr noundef %13027, ptr noundef %13030, i32 noundef %13032) #11
  br label %13051

13034:                                            ; preds = %13012, %13005
  %13035 = load i32, ptr %337, align 4, !tbaa !5
  %13036 = call ptr @__errno_location() #12
  store i32 %13035, ptr %13036, align 4, !tbaa !5
  %13037 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13038 = load i32, ptr @test_count, align 4, !tbaa !5
  %13039 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13040 = load i32, ptr %13039, align 4, !tbaa !5
  %13041 = call ptr @s2n_strerror(i32 noundef %13040, ptr noundef @.str.4)
  %13042 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13043 = load i32, ptr %13042, align 4, !tbaa !5
  %13044 = call ptr @s2n_strerror_debug(i32 noundef %13043, ptr noundef @.str.4)
  %13045 = call ptr @__errno_location() #12
  %13046 = load i32, ptr %13045, align 4, !tbaa !5
  %13047 = call ptr @strerror(i32 noundef %13046) #11
  %13048 = call ptr @__errno_location() #12
  %13049 = load i32, ptr %13048, align 4, !tbaa !5
  %13050 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13037, ptr noundef @.str.5, i32 noundef %13038, ptr noundef @.str.93, ptr noundef @.str.1, i32 noundef 509, ptr noundef %13041, ptr noundef %13044, ptr noundef %13047, i32 noundef %13049) #11
  br label %13051

13051:                                            ; preds = %13034, %13017
  call void @llvm.lifetime.end.p0(i64 4, ptr %337) #11
  br label %13052

13052:                                            ; preds = %13051
  br label %13053

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

13054:                                            ; No predecessors!
  br label %13055

13055:                                            ; preds = %13054
  br label %13056

13056:                                            ; preds = %13055, %12994
  br label %13057

13057:                                            ; preds = %13056
  br label %13058

13058:                                            ; preds = %13057
  call void @llvm.lifetime.start.p0(i64 32, ptr %338) #11
  call void @llvm.memset.p0.i64(ptr align 16 %338, i8 0, i64 32, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr %339) #11
  %13059 = load ptr, ptr %327, align 8, !tbaa !9
  %13060 = getelementptr inbounds [32 x i8], ptr %338, i64 0, i64 0
  %13061 = call i32 @s2n_connection_tls_exporter(ptr noundef %13059, ptr noundef @.str.94, i32 noundef 5, ptr noundef @.str.95, i32 noundef 7, ptr noundef %13060, i32 noundef 32)
  store i32 %13061, ptr %339, align 4, !tbaa !5
  br label %13062

13062:                                            ; preds = %13058
  %13063 = load i32, ptr @test_count, align 4, !tbaa !5
  %13064 = add nsw i32 %13063, 1
  store i32 %13064, ptr @test_count, align 4, !tbaa !5
  %13065 = load i32, ptr %339, align 4, !tbaa !5
  %13066 = icmp eq i32 %13065, -1
  br i1 %13066, label %13067, label %13120

13067:                                            ; preds = %13062
  br label %13068

13068:                                            ; preds = %13067
  br label %13069

13069:                                            ; preds = %13068
  call void @llvm.lifetime.start.p0(i64 4, ptr %340) #11
  %13070 = call ptr @__errno_location() #12
  %13071 = load i32, ptr %13070, align 4, !tbaa !5
  store i32 %13071, ptr %340, align 4, !tbaa !5
  %13072 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13073 = call i32 @s2n_print_stacktrace(ptr noundef %13072)
  %13074 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13075 = trunc i8 %13074 to i1
  br i1 %13075, label %13076, label %13098

13076:                                            ; preds = %13069
  %13077 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13078 = call i32 @fileno(ptr noundef %13077) #11
  %13079 = call i32 @isatty(i32 noundef %13078) #11
  %13080 = icmp ne i32 %13079, 0
  br i1 %13080, label %13081, label %13098

13081:                                            ; preds = %13076
  %13082 = load i32, ptr %340, align 4, !tbaa !5
  %13083 = call ptr @__errno_location() #12
  store i32 %13082, ptr %13083, align 4, !tbaa !5
  %13084 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13085 = load i32, ptr @test_count, align 4, !tbaa !5
  %13086 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13087 = load i32, ptr %13086, align 4, !tbaa !5
  %13088 = call ptr @s2n_strerror(i32 noundef %13087, ptr noundef @.str.4)
  %13089 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13090 = load i32, ptr %13089, align 4, !tbaa !5
  %13091 = call ptr @s2n_strerror_debug(i32 noundef %13090, ptr noundef @.str.4)
  %13092 = call ptr @__errno_location() #12
  %13093 = load i32, ptr %13092, align 4, !tbaa !5
  %13094 = call ptr @strerror(i32 noundef %13093) #11
  %13095 = call ptr @__errno_location() #12
  %13096 = load i32, ptr %13095, align 4, !tbaa !5
  %13097 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13084, ptr noundef @.str.2, i32 noundef %13085, ptr noundef @.str.96, ptr noundef @.str.1, i32 noundef 520, ptr noundef %13088, ptr noundef %13091, ptr noundef %13094, i32 noundef %13096) #11
  br label %13115

13098:                                            ; preds = %13076, %13069
  %13099 = load i32, ptr %340, align 4, !tbaa !5
  %13100 = call ptr @__errno_location() #12
  store i32 %13099, ptr %13100, align 4, !tbaa !5
  %13101 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13102 = load i32, ptr @test_count, align 4, !tbaa !5
  %13103 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13104 = load i32, ptr %13103, align 4, !tbaa !5
  %13105 = call ptr @s2n_strerror(i32 noundef %13104, ptr noundef @.str.4)
  %13106 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13107 = load i32, ptr %13106, align 4, !tbaa !5
  %13108 = call ptr @s2n_strerror_debug(i32 noundef %13107, ptr noundef @.str.4)
  %13109 = call ptr @__errno_location() #12
  %13110 = load i32, ptr %13109, align 4, !tbaa !5
  %13111 = call ptr @strerror(i32 noundef %13110) #11
  %13112 = call ptr @__errno_location() #12
  %13113 = load i32, ptr %13112, align 4, !tbaa !5
  %13114 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13101, ptr noundef @.str.5, i32 noundef %13102, ptr noundef @.str.96, ptr noundef @.str.1, i32 noundef 520, ptr noundef %13105, ptr noundef %13108, ptr noundef %13111, i32 noundef %13113) #11
  br label %13115

13115:                                            ; preds = %13098, %13081
  call void @llvm.lifetime.end.p0(i64 4, ptr %340) #11
  br label %13116

13116:                                            ; preds = %13115
  br label %13117

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

13118:                                            ; No predecessors!
  br label %13119

13119:                                            ; preds = %13118
  br label %13120

13120:                                            ; preds = %13119, %13062
  br label %13121

13121:                                            ; preds = %13120
  br label %13122

13122:                                            ; preds = %13121
  call void @llvm.lifetime.start.p0(i64 24, ptr %341) #11
  call void @llvm.memset.p0.i64(ptr align 8 %341, i8 0, i64 24, i1 false)
  br label %13123

13123:                                            ; preds = %13122
  %13124 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef %341, ptr noundef @.str.97)
  %13125 = getelementptr inbounds %struct.s2n_result, ptr %342, i32 0, i32 0
  store i32 %13124, ptr %13125, align 4
  %13126 = getelementptr inbounds %struct.s2n_result, ptr %342, i32 0, i32 0
  %13127 = load i32, ptr %13126, align 4
  %13128 = call zeroext i1 @s2n_result_is_ok(i32 %13127)
  br i1 %13128, label %13130, label %13129

13129:                                            ; preds = %13123
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %19, align 4
  br label %13271

13130:                                            ; preds = %13123
  br label %13131

13131:                                            ; preds = %13130
  br label %13132

13132:                                            ; preds = %13131
  br label %13133

13133:                                            ; preds = %13132
  %13134 = load i32, ptr @test_count, align 4, !tbaa !5
  %13135 = add nsw i32 %13134, 1
  store i32 %13135, ptr @test_count, align 4, !tbaa !5
  %13136 = getelementptr inbounds %struct.s2n_blob, ptr %341, i32 0, i32 1
  %13137 = load i32, ptr %13136, align 8, !tbaa !76
  %13138 = zext i32 %13137 to i64
  %13139 = icmp eq i64 32, %13138
  br i1 %13139, label %13193, label %13140

13140:                                            ; preds = %13133
  br label %13141

13141:                                            ; preds = %13140
  br label %13142

13142:                                            ; preds = %13141
  call void @llvm.lifetime.start.p0(i64 4, ptr %343) #11
  %13143 = call ptr @__errno_location() #12
  %13144 = load i32, ptr %13143, align 4, !tbaa !5
  store i32 %13144, ptr %343, align 4, !tbaa !5
  %13145 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13146 = call i32 @s2n_print_stacktrace(ptr noundef %13145)
  %13147 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13148 = trunc i8 %13147 to i1
  br i1 %13148, label %13149, label %13171

13149:                                            ; preds = %13142
  %13150 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13151 = call i32 @fileno(ptr noundef %13150) #11
  %13152 = call i32 @isatty(i32 noundef %13151) #11
  %13153 = icmp ne i32 %13152, 0
  br i1 %13153, label %13154, label %13171

13154:                                            ; preds = %13149
  %13155 = load i32, ptr %343, align 4, !tbaa !5
  %13156 = call ptr @__errno_location() #12
  store i32 %13155, ptr %13156, align 4, !tbaa !5
  %13157 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13158 = load i32, ptr @test_count, align 4, !tbaa !5
  %13159 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13160 = load i32, ptr %13159, align 4, !tbaa !5
  %13161 = call ptr @s2n_strerror(i32 noundef %13160, ptr noundef @.str.4)
  %13162 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13163 = load i32, ptr %13162, align 4, !tbaa !5
  %13164 = call ptr @s2n_strerror_debug(i32 noundef %13163, ptr noundef @.str.4)
  %13165 = call ptr @__errno_location() #12
  %13166 = load i32, ptr %13165, align 4, !tbaa !5
  %13167 = call ptr @strerror(i32 noundef %13166) #11
  %13168 = call ptr @__errno_location() #12
  %13169 = load i32, ptr %13168, align 4, !tbaa !5
  %13170 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13157, ptr noundef @.str.2, i32 noundef %13158, ptr noundef @.str.98, ptr noundef @.str.1, i32 noundef 532, ptr noundef %13161, ptr noundef %13164, ptr noundef %13167, i32 noundef %13169) #11
  br label %13188

13171:                                            ; preds = %13149, %13142
  %13172 = load i32, ptr %343, align 4, !tbaa !5
  %13173 = call ptr @__errno_location() #12
  store i32 %13172, ptr %13173, align 4, !tbaa !5
  %13174 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13175 = load i32, ptr @test_count, align 4, !tbaa !5
  %13176 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13177 = load i32, ptr %13176, align 4, !tbaa !5
  %13178 = call ptr @s2n_strerror(i32 noundef %13177, ptr noundef @.str.4)
  %13179 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13180 = load i32, ptr %13179, align 4, !tbaa !5
  %13181 = call ptr @s2n_strerror_debug(i32 noundef %13180, ptr noundef @.str.4)
  %13182 = call ptr @__errno_location() #12
  %13183 = load i32, ptr %13182, align 4, !tbaa !5
  %13184 = call ptr @strerror(i32 noundef %13183) #11
  %13185 = call ptr @__errno_location() #12
  %13186 = load i32, ptr %13185, align 4, !tbaa !5
  %13187 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13174, ptr noundef @.str.5, i32 noundef %13175, ptr noundef @.str.98, ptr noundef @.str.1, i32 noundef 532, ptr noundef %13178, ptr noundef %13181, ptr noundef %13184, i32 noundef %13186) #11
  br label %13188

13188:                                            ; preds = %13171, %13154
  call void @llvm.lifetime.end.p0(i64 4, ptr %343) #11
  br label %13189

13189:                                            ; preds = %13188
  br label %13190

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

13191:                                            ; No predecessors!
  br label %13192

13192:                                            ; preds = %13191
  br label %13193

13193:                                            ; preds = %13192, %13133
  br label %13194

13194:                                            ; preds = %13193
  br label %13195

13195:                                            ; preds = %13194
  br label %13196

13196:                                            ; preds = %13195
  %13197 = getelementptr inbounds %struct.s2n_blob, ptr %341, i32 0, i32 1
  %13198 = load i32, ptr %13197, align 8, !tbaa !76
  %13199 = icmp ne i32 %13198, 0
  br i1 %13199, label %13200, label %13268

13200:                                            ; preds = %13196
  br label %13201

13201:                                            ; preds = %13200
  %13202 = load i32, ptr @test_count, align 4, !tbaa !5
  %13203 = add nsw i32 %13202, 1
  store i32 %13203, ptr @test_count, align 4, !tbaa !5
  %13204 = getelementptr inbounds [32 x i8], ptr %338, i64 0, i64 0
  %13205 = getelementptr inbounds %struct.s2n_blob, ptr %341, i32 0, i32 0
  %13206 = load ptr, ptr %13205, align 8, !tbaa !71
  %13207 = getelementptr inbounds %struct.s2n_blob, ptr %341, i32 0, i32 1
  %13208 = load i32, ptr %13207, align 8, !tbaa !76
  %13209 = zext i32 %13208 to i64
  %13210 = call i32 @memcmp(ptr noundef %13204, ptr noundef %13206, i64 noundef %13209) #14
  %13211 = icmp eq i32 %13210, 0
  br i1 %13211, label %13265, label %13212

13212:                                            ; preds = %13201
  br label %13213

13213:                                            ; preds = %13212
  br label %13214

13214:                                            ; preds = %13213
  call void @llvm.lifetime.start.p0(i64 4, ptr %344) #11
  %13215 = call ptr @__errno_location() #12
  %13216 = load i32, ptr %13215, align 4, !tbaa !5
  store i32 %13216, ptr %344, align 4, !tbaa !5
  %13217 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13218 = call i32 @s2n_print_stacktrace(ptr noundef %13217)
  %13219 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13220 = trunc i8 %13219 to i1
  br i1 %13220, label %13221, label %13243

13221:                                            ; preds = %13214
  %13222 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13223 = call i32 @fileno(ptr noundef %13222) #11
  %13224 = call i32 @isatty(i32 noundef %13223) #11
  %13225 = icmp ne i32 %13224, 0
  br i1 %13225, label %13226, label %13243

13226:                                            ; preds = %13221
  %13227 = load i32, ptr %344, align 4, !tbaa !5
  %13228 = call ptr @__errno_location() #12
  store i32 %13227, ptr %13228, align 4, !tbaa !5
  %13229 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13230 = load i32, ptr @test_count, align 4, !tbaa !5
  %13231 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13232 = load i32, ptr %13231, align 4, !tbaa !5
  %13233 = call ptr @s2n_strerror(i32 noundef %13232, ptr noundef @.str.4)
  %13234 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13235 = load i32, ptr %13234, align 4, !tbaa !5
  %13236 = call ptr @s2n_strerror_debug(i32 noundef %13235, ptr noundef @.str.4)
  %13237 = call ptr @__errno_location() #12
  %13238 = load i32, ptr %13237, align 4, !tbaa !5
  %13239 = call ptr @strerror(i32 noundef %13238) #11
  %13240 = call ptr @__errno_location() #12
  %13241 = load i32, ptr %13240, align 4, !tbaa !5
  %13242 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13229, ptr noundef @.str.2, i32 noundef %13230, ptr noundef @.str.99, ptr noundef @.str.1, i32 noundef 533, ptr noundef %13233, ptr noundef %13236, ptr noundef %13239, i32 noundef %13241) #11
  br label %13260

13243:                                            ; preds = %13221, %13214
  %13244 = load i32, ptr %344, align 4, !tbaa !5
  %13245 = call ptr @__errno_location() #12
  store i32 %13244, ptr %13245, align 4, !tbaa !5
  %13246 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13247 = load i32, ptr @test_count, align 4, !tbaa !5
  %13248 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13249 = load i32, ptr %13248, align 4, !tbaa !5
  %13250 = call ptr @s2n_strerror(i32 noundef %13249, ptr noundef @.str.4)
  %13251 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13252 = load i32, ptr %13251, align 4, !tbaa !5
  %13253 = call ptr @s2n_strerror_debug(i32 noundef %13252, ptr noundef @.str.4)
  %13254 = call ptr @__errno_location() #12
  %13255 = load i32, ptr %13254, align 4, !tbaa !5
  %13256 = call ptr @strerror(i32 noundef %13255) #11
  %13257 = call ptr @__errno_location() #12
  %13258 = load i32, ptr %13257, align 4, !tbaa !5
  %13259 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13246, ptr noundef @.str.5, i32 noundef %13247, ptr noundef @.str.99, ptr noundef @.str.1, i32 noundef 533, ptr noundef %13250, ptr noundef %13253, ptr noundef %13256, i32 noundef %13258) #11
  br label %13260

13260:                                            ; preds = %13243, %13226
  call void @llvm.lifetime.end.p0(i64 4, ptr %344) #11
  br label %13261

13261:                                            ; preds = %13260
  br label %13262

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

13263:                                            ; No predecessors!
  br label %13264

13264:                                            ; preds = %13263
  br label %13265

13265:                                            ; preds = %13264, %13201
  br label %13266

13266:                                            ; preds = %13265
  br label %13267

13267:                                            ; preds = %13266
  br label %13268

13268:                                            ; preds = %13267, %13196
  br label %13269

13269:                                            ; preds = %13268
  br label %13270

13270:                                            ; preds = %13269
  store i32 0, ptr %19, align 4
  br label %13271

13271:                                            ; preds = %13270, %13129
  %13272 = call i32 @s2n_free(ptr noundef %341)
  call void @llvm.lifetime.end.p0(i64 24, ptr %341) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %339) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %338) #11
  %13273 = call i32 @s2n_connection_ptr_free(ptr noundef %327)
  %13274 = getelementptr inbounds %struct.s2n_result, ptr %345, i32 0, i32 0
  store i32 %13273, ptr %13274, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %327) #11
  %13275 = load i32, ptr %19, align 4
  switch i32 %13275, label %13431 [
    i32 0, label %13276
  ]

13276:                                            ; preds = %13271
  br label %13277

13277:                                            ; preds = %13276
  br label %13278

13278:                                            ; preds = %13277
  %13279 = call i32 @s2n_cleanup()
  %13280 = icmp eq i32 %13279, -1
  br i1 %13280, label %13281, label %13334

13281:                                            ; preds = %13278
  br label %13282

13282:                                            ; preds = %13281
  br label %13283

13283:                                            ; preds = %13282
  call void @llvm.lifetime.start.p0(i64 4, ptr %346) #11
  %13284 = call ptr @__errno_location() #12
  %13285 = load i32, ptr %13284, align 4, !tbaa !5
  store i32 %13285, ptr %346, align 4, !tbaa !5
  %13286 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13287 = call i32 @s2n_print_stacktrace(ptr noundef %13286)
  %13288 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13289 = trunc i8 %13288 to i1
  br i1 %13289, label %13290, label %13312

13290:                                            ; preds = %13283
  %13291 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13292 = call i32 @fileno(ptr noundef %13291) #11
  %13293 = call i32 @isatty(i32 noundef %13292) #11
  %13294 = icmp ne i32 %13293, 0
  br i1 %13294, label %13295, label %13312

13295:                                            ; preds = %13290
  %13296 = load i32, ptr %346, align 4, !tbaa !5
  %13297 = call ptr @__errno_location() #12
  store i32 %13296, ptr %13297, align 4, !tbaa !5
  %13298 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13299 = load i32, ptr @test_count, align 4, !tbaa !5
  %13300 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13301 = load i32, ptr %13300, align 4, !tbaa !5
  %13302 = call ptr @s2n_strerror(i32 noundef %13301, ptr noundef @.str.4)
  %13303 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13304 = load i32, ptr %13303, align 4, !tbaa !5
  %13305 = call ptr @s2n_strerror_debug(i32 noundef %13304, ptr noundef @.str.4)
  %13306 = call ptr @__errno_location() #12
  %13307 = load i32, ptr %13306, align 4, !tbaa !5
  %13308 = call ptr @strerror(i32 noundef %13307) #11
  %13309 = call ptr @__errno_location() #12
  %13310 = load i32, ptr %13309, align 4, !tbaa !5
  %13311 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13298, ptr noundef @.str.2, i32 noundef %13299, ptr noundef @.str.100, ptr noundef @.str.1, i32 noundef 537, ptr noundef %13302, ptr noundef %13305, ptr noundef %13308, i32 noundef %13310) #11
  br label %13329

13312:                                            ; preds = %13290, %13283
  %13313 = load i32, ptr %346, align 4, !tbaa !5
  %13314 = call ptr @__errno_location() #12
  store i32 %13313, ptr %13314, align 4, !tbaa !5
  %13315 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13316 = load i32, ptr @test_count, align 4, !tbaa !5
  %13317 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13318 = load i32, ptr %13317, align 4, !tbaa !5
  %13319 = call ptr @s2n_strerror(i32 noundef %13318, ptr noundef @.str.4)
  %13320 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13321 = load i32, ptr %13320, align 4, !tbaa !5
  %13322 = call ptr @s2n_strerror_debug(i32 noundef %13321, ptr noundef @.str.4)
  %13323 = call ptr @__errno_location() #12
  %13324 = load i32, ptr %13323, align 4, !tbaa !5
  %13325 = call ptr @strerror(i32 noundef %13324) #11
  %13326 = call ptr @__errno_location() #12
  %13327 = load i32, ptr %13326, align 4, !tbaa !5
  %13328 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13315, ptr noundef @.str.5, i32 noundef %13316, ptr noundef @.str.100, ptr noundef @.str.1, i32 noundef 537, ptr noundef %13319, ptr noundef %13322, ptr noundef %13325, i32 noundef %13327) #11
  br label %13329

13329:                                            ; preds = %13312, %13295
  call void @llvm.lifetime.end.p0(i64 4, ptr %346) #11
  br label %13330

13330:                                            ; preds = %13329
  br label %13331

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

13332:                                            ; No predecessors!
  br label %13333

13333:                                            ; preds = %13332
  br label %13334

13334:                                            ; preds = %13333, %13278
  br label %13335

13335:                                            ; preds = %13334
  br label %13336

13336:                                            ; preds = %13335
  br label %13337

13337:                                            ; preds = %13336
  br label %13338

13338:                                            ; preds = %13337
  %13339 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %13340 = icmp eq i32 %13339, -1
  br i1 %13340, label %13341, label %13394

13341:                                            ; preds = %13338
  br label %13342

13342:                                            ; preds = %13341
  br label %13343

13343:                                            ; preds = %13342
  call void @llvm.lifetime.start.p0(i64 4, ptr %347) #11
  %13344 = call ptr @__errno_location() #12
  %13345 = load i32, ptr %13344, align 4, !tbaa !5
  store i32 %13345, ptr %347, align 4, !tbaa !5
  %13346 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13347 = call i32 @s2n_print_stacktrace(ptr noundef %13346)
  %13348 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13349 = trunc i8 %13348 to i1
  br i1 %13349, label %13350, label %13372

13350:                                            ; preds = %13343
  %13351 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13352 = call i32 @fileno(ptr noundef %13351) #11
  %13353 = call i32 @isatty(i32 noundef %13352) #11
  %13354 = icmp ne i32 %13353, 0
  br i1 %13354, label %13355, label %13372

13355:                                            ; preds = %13350
  %13356 = load i32, ptr %347, align 4, !tbaa !5
  %13357 = call ptr @__errno_location() #12
  store i32 %13356, ptr %13357, align 4, !tbaa !5
  %13358 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13359 = load i32, ptr @test_count, align 4, !tbaa !5
  %13360 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13361 = load i32, ptr %13360, align 4, !tbaa !5
  %13362 = call ptr @s2n_strerror(i32 noundef %13361, ptr noundef @.str.4)
  %13363 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13364 = load i32, ptr %13363, align 4, !tbaa !5
  %13365 = call ptr @s2n_strerror_debug(i32 noundef %13364, ptr noundef @.str.4)
  %13366 = call ptr @__errno_location() #12
  %13367 = load i32, ptr %13366, align 4, !tbaa !5
  %13368 = call ptr @strerror(i32 noundef %13367) #11
  %13369 = call ptr @__errno_location() #12
  %13370 = load i32, ptr %13369, align 4, !tbaa !5
  %13371 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13358, ptr noundef @.str.2, i32 noundef %13359, ptr noundef @.str.101, ptr noundef @.str.1, i32 noundef 537, ptr noundef %13362, ptr noundef %13365, ptr noundef %13368, i32 noundef %13370) #11
  br label %13389

13372:                                            ; preds = %13350, %13343
  %13373 = load i32, ptr %347, align 4, !tbaa !5
  %13374 = call ptr @__errno_location() #12
  store i32 %13373, ptr %13374, align 4, !tbaa !5
  %13375 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13376 = load i32, ptr @test_count, align 4, !tbaa !5
  %13377 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13378 = load i32, ptr %13377, align 4, !tbaa !5
  %13379 = call ptr @s2n_strerror(i32 noundef %13378, ptr noundef @.str.4)
  %13380 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13381 = load i32, ptr %13380, align 4, !tbaa !5
  %13382 = call ptr @s2n_strerror_debug(i32 noundef %13381, ptr noundef @.str.4)
  %13383 = call ptr @__errno_location() #12
  %13384 = load i32, ptr %13383, align 4, !tbaa !5
  %13385 = call ptr @strerror(i32 noundef %13384) #11
  %13386 = call ptr @__errno_location() #12
  %13387 = load i32, ptr %13386, align 4, !tbaa !5
  %13388 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13375, ptr noundef @.str.5, i32 noundef %13376, ptr noundef @.str.101, ptr noundef @.str.1, i32 noundef 537, ptr noundef %13379, ptr noundef %13382, ptr noundef %13385, i32 noundef %13387) #11
  br label %13389

13389:                                            ; preds = %13372, %13355
  call void @llvm.lifetime.end.p0(i64 4, ptr %347) #11
  br label %13390

13390:                                            ; preds = %13389
  br label %13391

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

13392:                                            ; No predecessors!
  br label %13393

13393:                                            ; preds = %13392
  br label %13394

13394:                                            ; preds = %13393, %13338
  br label %13395

13395:                                            ; preds = %13394
  br label %13396

13396:                                            ; preds = %13395
  %13397 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13398 = trunc i8 %13397 to i1
  br i1 %13398, label %13399, label %13415

13399:                                            ; preds = %13396
  %13400 = load ptr, ptr @stdout, align 8, !tbaa !9
  %13401 = call i32 @fileno(ptr noundef %13400) #11
  %13402 = call i32 @isatty(i32 noundef %13401) #11
  %13403 = icmp ne i32 %13402, 0
  br i1 %13403, label %13404, label %13415

13404:                                            ; preds = %13399
  %13405 = load i32, ptr @test_count, align 4, !tbaa !5
  %13406 = icmp ne i32 %13405, 0
  br i1 %13406, label %13407, label %13411

13407:                                            ; preds = %13404
  %13408 = load ptr, ptr @stdout, align 8, !tbaa !9
  %13409 = load i32, ptr @test_count, align 4, !tbaa !5
  %13410 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13408, ptr noundef @.str.102, i32 noundef %13409) #11
  br label %13414

13411:                                            ; preds = %13404
  %13412 = load ptr, ptr @stdout, align 8, !tbaa !9
  %13413 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13412, ptr noundef @.str.103) #11
  br label %13414

13414:                                            ; preds = %13411, %13407
  br label %13426

13415:                                            ; preds = %13399, %13396
  %13416 = load i32, ptr @test_count, align 4, !tbaa !5
  %13417 = icmp ne i32 %13416, 0
  br i1 %13417, label %13418, label %13422

13418:                                            ; preds = %13415
  %13419 = load ptr, ptr @stdout, align 8, !tbaa !9
  %13420 = load i32, ptr @test_count, align 4, !tbaa !5
  %13421 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13419, ptr noundef @.str.104, i32 noundef %13420) #11
  br label %13425

13422:                                            ; preds = %13415
  %13423 = load ptr, ptr @stdout, align 8, !tbaa !9
  %13424 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13423, ptr noundef @.str.105) #11
  br label %13425

13425:                                            ; preds = %13422, %13418
  br label %13426

13426:                                            ; preds = %13425, %13414
  store i32 0, ptr %3, align 4
  store i32 1, ptr %19, align 4
  br label %13431

13427:                                            ; No predecessors!
  br label %13428

13428:                                            ; preds = %13427
  br label %13429

13429:                                            ; preds = %13428
  br label %13430

13430:                                            ; preds = %13429
  store i32 0, ptr %19, align 4
  br label %13431

13431:                                            ; preds = %13430, %13426, %13271
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #11
  call void @llvm.lifetime.end.p0(i64 32000, ptr %16) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr %14) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %13) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr %9) #11
  %13432 = load i32, ptr %19, align 4
  switch i32 %13432, label %13435 [
    i32 0, label %13433
    i32 1, label %13433
  ]

13433:                                            ; preds = %13431, %13431
  %13434 = load i32, ptr %3, align 4
  ret i32 %13434

13435:                                            ; preds = %13431
  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

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

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #8

declare i32 @s2n_blob_init(ptr noundef, ptr noundef, i32 noundef) #2

declare ptr @s2n_connection_new(i32 noundef) #2

declare i32 @s2n_connection_ptr_free(ptr noundef) #2

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

declare i32 @s2n_tls13_extract_secret(ptr noundef, i32 noundef) #2

declare void @s2n_debug_info_reset() #2

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

; Function Attrs: nounwind willreturn memory(read)
declare i32 @memcmp(ptr noundef, ptr noundef, i64 noundef) #10

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

declare i32 @s2n_tls13_derive_secret(ptr noundef, i32 noundef, i32 noundef, ptr noundef) #2

declare i32 @s2n_conn_choose_state_machine(ptr noundef, i8 noundef zeroext) #2

declare i32 @s2n_tls13_secrets_clean(ptr noundef) #2

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memmove.p0.p0.i64(ptr nocapture writeonly, ptr nocapture readonly, i64, i1 immarg) #8

declare i32 @s2n_tls13_secrets_get(ptr noundef, i32 noundef, i32 noundef, ptr noundef) #2

declare i32 @s2n_tls13_secrets_update(ptr noundef) #2

declare i32 @s2n_connection_set_test_handshake_secret(ptr noundef, ptr noundef) #2

declare i32 @s2n_connection_set_test_message_type(ptr noundef, i32 noundef) #2

declare i32 @s2n_hmac_digest_size(i32 noundef, ptr noundef) #2

declare i32 @s2n_connection_set_test_master_secret(ptr noundef, ptr noundef) #2

declare i32 @s2n_skip_handshake(ptr noundef) #2

declare i32 @s2n_connection_tls_exporter(ptr noundef, ptr noundef, i32 noundef, ptr noundef, i32 noundef, ptr noundef, i32 noundef) #2

declare i32 @s2n_free(ptr noundef) #2

declare i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef, ptr noundef) #2

declare i32 @s2n_cleanup() #2

attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #4 = { nounwind willreturn memory(none) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #6 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #8 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #9 = { inlinehint nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #10 = { nounwind 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, !16, i64 0}
!16 = !{!"long", !7, i64 0}
!17 = !{!18, !19, i64 0}
!18 = !{!"s2n_cipher_preferences", !19, i64 0, !10, i64 8, !12, i64 16}
!19 = !{!"short", !7, i64 0}
!20 = !{!21, !7, i64 0}
!21 = !{!"s2n_ecc_preferences", !7, i64 0, !10, i64 8}
!22 = !{!23, !6, i64 0}
!23 = !{!"s2n_tls13_secrets_test_case", !6, i64 0, !6, i64 4, !6, i64 8, !6, i64 12, !10, i64 16, !10, i64 24}
!24 = !{!23, !6, i64 4}
!25 = !{!23, !6, i64 8}
!26 = !{!23, !6, i64 12}
!27 = !{!18, !10, i64 8}
!28 = !{!23, !10, i64 16}
!29 = !{!21, !10, i64 8}
!30 = !{!23, !10, i64 24}
!31 = !{i64 0, i64 4, !5, i64 4, i64 4, !5, i64 8, i64 4, !5, i64 12, i64 4, !5, i64 16, i64 8, !9, i64 24, i64 8, !9}
!32 = distinct !{!32, !33}
!33 = !{!"llvm.loop.mustprogress"}
!34 = distinct !{!34, !33}
!35 = distinct !{!35, !33}
!36 = distinct !{!36, !33}
!37 = distinct !{!37, !33}
!38 = distinct !{!38, !33}
!39 = !{!40, !10, i64 232}
!40 = !{!"s2n_connection", !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40, !10, i64 48, !10, i64 56, !10, i64 64, !10, i64 72, !7, i64 80, !7, i64 102, !7, i64 124, !6, i64 148, !6, i64 152, !41, i64 160, !16, i64 168, !16, i64 176, !7, i64 184, !7, i64 216, !7, i64 217, !7, i64 218, !7, i64 219, !7, i64 220, !7, i64 221, !7, i64 222, !10, i64 224, !10, i64 232, !42, i64 240, !10, i64 632, !10, i64 640, !43, i64 648, !49, i64 1144, !52, i64 1688, !10, i64 1752, !7, i64 1760, !6, i64 1764, !7, i64 1768, !54, i64 1776, !54, i64 1816, !54, i64 1856, !54, i64 1896, !6, i64 1936, !16, i64 1944, !7, i64 1952, !54, i64 1960, !7, i64 2000, !7, i64 2001, !7, i64 2002, !12, i64 2003, !55, i64 2004, !55, i64 2008, !56, i64 2016, !19, i64 2208, !6, i64 2212, !19, i64 2216, !16, i64 2224, !7, i64 2232, !16, i64 2240, !16, i64 2248, !16, i64 2256, !55, i64 2264, !55, i64 2268, !7, i64 2272, !7, i64 2528, !6, i64 2784, !48, i64 2792, !6, i64 2816, !48, i64 2824, !48, i64 2848, !48, i64 2872, !58, i64 2896, !60, i64 3704, !10, i64 3760, !10, i64 3768, !7, i64 3776, !6, i64 3780, !48, i64 3784, !6, i64 3808, !62, i64 3816, !7, i64 3848, !54, i64 3992, !48, i64 4032, !48, i64 4056, !12, i64 4080, !12, i64 4081, !12, i64 4082, !19, i64 4084, !19, i64 4086, !6, i64 4088, !6, i64 4092, !48, i64 4096, !6, i64 4120, !63, i64 4128, !55, i64 4176, !7, i64 4180, !7, i64 4181}
!41 = !{!"s2n_timer", !16, i64 0}
!42 = !{!"s2n_secrets", !7, i64 0, !6, i64 388}
!43 = !{!"s2n_kex_parameters", !44, i64 0, !45, i64 8, !7, i64 24, !45, i64 56, !46, i64 72, !46, i64 184, !7, i64 296, !47, i64 360, !48, i64 448, !48, i64 472}
!44 = !{!"s2n_dh_params", !10, i64 0}
!45 = !{!"s2n_ecc_evp_params", !10, i64 0, !10, i64 8}
!46 = !{!"s2n_kem_group_params", !10, i64 0, !47, i64 8, !45, i64 96}
!47 = !{!"s2n_kem_params", !10, i64 0, !48, i64 8, !48, i64 32, !48, i64 56, !12, i64 80}
!48 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!49 = !{!"s2n_handshake_parameters", !50, i64 0, !50, i64 48, !48, i64 96, !6, i64 120, !51, 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}
!50 = !{!"s2n_pkey", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40}
!51 = !{!"s2n_sig_scheme_list", !7, i64 0, !7, i64 256}
!52 = !{!"s2n_psk_parameters", !6, i64 0, !53, i64 8, !19, i64 40, !19, i64 42, !10, i64 48, !6, i64 56}
!53 = !{!"s2n_array", !48, i64 0, !6, i64 24, !6, i64 28}
!54 = !{!"s2n_stuffer", !48, i64 0, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 36, !6, i64 36}
!55 = !{!"", !6, i64 0}
!56 = !{!"s2n_handshake", !54, 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, !57, i64 176, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 188}
!57 = !{!"s2n_offered_early_data", !10, i64 0}
!58 = !{!"s2n_client_hello", !48, i64 0, !59, i64 24, !48, i64 728, !48, i64 752, !48, 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}
!59 = !{!"", !7, i64 0, !48, i64 672, !19, i64 696}
!60 = !{!"s2n_x509_validator", !10, i64 0, !10, i64 8, !7, i64 16, !7, i64 17, !19, i64 18, !10, i64 24, !6, i64 32, !10, i64 40, !61, i64 48, !12, i64 52}
!61 = !{!"s2n_cert_validation_info", !6, i64 0, !6, i64 0}
!62 = !{!"s2n_ticket_fields", !48, i64 0, !6, i64 24}
!63 = !{!"s2n_post_handshake", !54, i64 0, !7, i64 40}
!64 = !{!65, !10, i64 0}
!65 = !{!"s2n_crypto_parameters", !10, i64 0, !66, i64 8, !66, i64 16, !67, i64 24, !67, i64 456, !7, i64 888, !7, i64 904, !7, i64 920, !7, i64 928}
!66 = !{!"s2n_session_key", !10, i64 0}
!67 = !{!"s2n_hmac_state", !6, i64 0, !19, i64 4, !6, i64 8, !19, i64 12, !7, i64 14, !68, i64 16, !68, i64 72, !68, i64 128, !68, i64 184, !7, i64 240, !7, i64 368}
!68 = !{!"s2n_hash_state", !10, i64 0, !6, i64 8, !7, i64 12, !16, i64 16, !7, i64 24}
!69 = !{!40, !6, i64 628}
!70 = distinct !{!70, !33}
!71 = !{!48, !10, i64 0}
!72 = !{!40, !7, i64 220}
!73 = !{!40, !6, i64 2172}
!74 = !{!40, !6, i64 2176}
!75 = distinct !{!75, !33}
!76 = !{!48, !6, i64 8}
!77 = !{!40, !6, i64 4088}
!78 = !{!40, !7, i64 2168}
!79 = !{!7, !7, i64 0}
!80 = !{!81, !6, i64 96}
!81 = !{!"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}


; Optimized IR (opt -passes='default<O3>'):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

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

@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 [81 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
@cipher_preferences_test_all_tls13 = external local_unnamed_addr constant %struct.s2n_cipher_preferences, align 8
@s2n_ecc_preferences_test_all = external local_unnamed_addr constant %struct.s2n_ecc_preferences, align 8
@__const.main.modes = external hidden unnamed_addr constant [2 x i32], align 4
@__const.main.test_secret_bytes = external hidden unnamed_addr constant [48 x i8], align 16
@.str.8 = external hidden unnamed_addr constant [102 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [90 x i8], align 1
@s2n_tls13_aes_256_gcm_sha384 = external global %struct.s2n_cipher_suite, align 8
@.str.18 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [117 x i8], align 1
@s2n_tls13_aes_128_gcm_sha256 = external global %struct.s2n_cipher_suite, align 8
@.str.21 = external hidden unnamed_addr constant [120 x i8], align 1
@s2n_ecc_curve_secp256r1 = external constant %struct.s2n_ecc_named_curve, align 8
@.str.22 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [94 x i8], align 1
@__const.main.message_nums = external hidden unnamed_addr constant [4 x i32], align 16
@.str.29 = external hidden unnamed_addr constant [107 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [108 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [106 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [104 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [104 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [129 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [125 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [129 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [129 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [123 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [123 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [128 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [130 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [122 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [126 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [126 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [111 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [108 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [102 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [106 x i8], align 1
@.str.81 = external hidden unnamed_addr constant [106 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [109 x i8], align 1
@.str.85 = external hidden unnamed_addr constant [109 x i8], align 1
@.str.86 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [120 x i8], align 1
@.str.88 = external hidden unnamed_addr constant [120 x i8], align 1
@.str.89 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [127 x i8], align 1
@.str.91 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.92 = external hidden unnamed_addr constant [125 x i8], align 1
@.str.93 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.94 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.95 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.96 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.97 = external hidden unnamed_addr constant [116 x i8], align 1
@.str.98 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.99 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.100 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.101 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.102 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.103 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.104 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.105 = 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 [48 x i8], align 16
  %4 = alloca %struct.s2n_blob, align 8
  %5 = alloca [48 x i8], align 16
  %6 = alloca [1000 x %struct.s2n_tls13_secrets_test_case], align 16
  %7 = alloca %struct.s2n_connection, align 8
  %8 = alloca ptr, align 8
  %9 = alloca ptr, align 8
  %10 = alloca ptr, align 8
  %11 = alloca ptr, align 8
  %12 = alloca ptr, align 8
  %13 = alloca %struct.s2n_blob, align 8
  %14 = alloca %struct.s2n_connection, align 8
  %15 = alloca ptr, align 8
  %16 = alloca [48 x i8], align 16
  %17 = alloca %struct.s2n_blob, align 8
  %18 = alloca ptr, align 8
  %19 = alloca [48 x i8], align 16
  %20 = alloca %struct.s2n_blob, align 8
  %21 = alloca ptr, align 8
  %22 = alloca [48 x i8], align 16
  %23 = alloca %struct.s2n_blob, align 8
  %24 = alloca ptr, align 8
  %25 = alloca [48 x i8], align 16
  %26 = alloca %struct.s2n_blob, align 8
  %27 = alloca ptr, align 8
  %28 = alloca ptr, align 8
  %29 = alloca %struct.s2n_blob, align 8
  %30 = alloca ptr, align 8
  %31 = alloca ptr, align 8
  %32 = alloca %struct.s2n_blob, align 8
  %33 = alloca [48 x i8], align 16
  %34 = alloca ptr, align 8
  %35 = alloca ptr, align 8
  %36 = alloca ptr, align 8
  %37 = alloca i8, align 1
  %38 = alloca ptr, align 8
  %39 = alloca ptr, align 8
  %40 = alloca ptr, align 8
  %41 = alloca [32 x i8], align 16
  %42 = alloca %struct.s2n_blob, align 8
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %43 = load ptr, ptr @stdout, align 8, !tbaa !9
  %44 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %43, ptr noundef nonnull @.str, ptr noundef nonnull @.str.1) #12
  %45 = load ptr, ptr @stdout, align 8, !tbaa !9
  %46 = tail call i32 @fflush(ptr noundef %45)
  %47 = tail call i32 @s2n_in_unit_test_set(i1 noundef zeroext true) #12
  %48 = icmp eq i32 %47, -1
  br i1 %48, label %49, label %73

49:                                               ; preds = %2
  %50 = tail call ptr @__errno_location() #13
  %51 = load i32, ptr %50, align 4, !tbaa !5
  %52 = load ptr, ptr @stderr, align 8, !tbaa !9
  %53 = tail call i32 @s2n_print_stacktrace(ptr noundef %52) #12
  %54 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %55 = trunc nuw i8 %54 to i1
  br i1 %55, label %56, label %60

56:                                               ; preds = %49
  %57 = load ptr, ptr @stderr, align 8, !tbaa !9
  %58 = tail call i32 @fileno(ptr noundef %57) #12
  %59 = tail call i32 @isatty(i32 noundef %58) #12
  %.not795 = icmp eq i32 %59, 0
  br i1 %.not795, label %60, label %61

60:                                               ; preds = %56, %49
  br label %61

61:                                               ; preds = %56, %60
  %.str.5.sink = phi ptr [ @.str.5, %60 ], [ @.str.2, %56 ]
  store i32 %51, ptr %50, align 4, !tbaa !5
  %62 = load ptr, ptr @stderr, align 8, !tbaa !9
  %63 = load i32, ptr @test_count, align 4, !tbaa !5
  %64 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %65 = load i32, ptr %64, align 4, !tbaa !5
  %66 = tail call ptr @s2n_strerror(i32 noundef %65, ptr noundef nonnull @.str.4) #12
  %67 = load i32, ptr %64, align 4, !tbaa !5
  %68 = tail call ptr @s2n_strerror_debug(i32 noundef %67, ptr noundef nonnull @.str.4) #12
  %69 = load i32, ptr %50, align 4, !tbaa !5
  %70 = tail call ptr @strerror(i32 noundef %69) #12
  %71 = load i32, ptr %50, align 4, !tbaa !5
  %72 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %62, ptr noundef nonnull %.str.5.sink, i32 noundef %63, ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.1, i32 noundef 49, ptr noundef %66, ptr noundef %68, ptr noundef %70, i32 noundef %71) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

73:                                               ; preds = %2
  %74 = load i32, ptr @test_count, align 4, !tbaa !5
  %75 = add nsw i32 %74, 1
  store i32 %75, ptr @test_count, align 4, !tbaa !5
  %76 = tail call i32 @s2n_enable_atexit() #12
  %77 = icmp eq i32 %76, -1
  br i1 %77, label %78, label %102

78:                                               ; preds = %73
  %79 = tail call ptr @__errno_location() #13
  %80 = load i32, ptr %79, align 4, !tbaa !5
  %81 = load ptr, ptr @stderr, align 8, !tbaa !9
  %82 = tail call i32 @s2n_print_stacktrace(ptr noundef %81) #12
  %83 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %84 = trunc nuw i8 %83 to i1
  br i1 %84, label %85, label %89

85:                                               ; preds = %78
  %86 = load ptr, ptr @stderr, align 8, !tbaa !9
  %87 = tail call i32 @fileno(ptr noundef %86) #12
  %88 = tail call i32 @isatty(i32 noundef %87) #12
  %.not794 = icmp eq i32 %88, 0
  br i1 %.not794, label %89, label %90

89:                                               ; preds = %85, %78
  br label %90

90:                                               ; preds = %85, %89
  %.str.5.sink935 = phi ptr [ @.str.5, %89 ], [ @.str.2, %85 ]
  store i32 %80, ptr %79, align 4, !tbaa !5
  %91 = load ptr, ptr @stderr, align 8, !tbaa !9
  %92 = load i32, ptr @test_count, align 4, !tbaa !5
  %93 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %94 = load i32, ptr %93, align 4, !tbaa !5
  %95 = tail call ptr @s2n_strerror(i32 noundef %94, ptr noundef nonnull @.str.4) #12
  %96 = load i32, ptr %93, align 4, !tbaa !5
  %97 = tail call ptr @s2n_strerror_debug(i32 noundef %96, ptr noundef nonnull @.str.4) #12
  %98 = load i32, ptr %79, align 4, !tbaa !5
  %99 = tail call ptr @strerror(i32 noundef %98) #12
  %100 = load i32, ptr %79, align 4, !tbaa !5
  %101 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %91, ptr noundef nonnull %.str.5.sink935, i32 noundef %92, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.1, i32 noundef 49, ptr noundef %95, ptr noundef %97, ptr noundef %99, i32 noundef %100) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

102:                                              ; preds = %73
  %103 = tail call i32 @s2n_init() #12
  %104 = icmp eq i32 %103, -1
  br i1 %104, label %105, label %129

105:                                              ; preds = %102
  %106 = tail call ptr @__errno_location() #13
  %107 = load i32, ptr %106, align 4, !tbaa !5
  %108 = load ptr, ptr @stderr, align 8, !tbaa !9
  %109 = tail call i32 @s2n_print_stacktrace(ptr noundef %108) #12
  %110 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %111 = trunc nuw i8 %110 to i1
  br i1 %111, label %112, label %116

112:                                              ; preds = %105
  %113 = load ptr, ptr @stderr, align 8, !tbaa !9
  %114 = tail call i32 @fileno(ptr noundef %113) #12
  %115 = tail call i32 @isatty(i32 noundef %114) #12
  %.not793 = icmp eq i32 %115, 0
  br i1 %.not793, label %116, label %117

116:                                              ; preds = %112, %105
  br label %117

117:                                              ; preds = %112, %116
  %.str.5.sink946 = phi ptr [ @.str.5, %116 ], [ @.str.2, %112 ]
  store i32 %107, ptr %106, align 4, !tbaa !5
  %118 = load ptr, ptr @stderr, align 8, !tbaa !9
  %119 = load i32, ptr @test_count, align 4, !tbaa !5
  %120 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %121 = load i32, ptr %120, align 4, !tbaa !5
  %122 = tail call ptr @s2n_strerror(i32 noundef %121, ptr noundef nonnull @.str.4) #12
  %123 = load i32, ptr %120, align 4, !tbaa !5
  %124 = tail call ptr @s2n_strerror_debug(i32 noundef %123, ptr noundef nonnull @.str.4) #12
  %125 = load i32, ptr %106, align 4, !tbaa !5
  %126 = tail call ptr @strerror(i32 noundef %125) #12
  %127 = load i32, ptr %106, align 4, !tbaa !5
  %128 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %118, ptr noundef nonnull %.str.5.sink946, i32 noundef %119, ptr noundef nonnull @.str.7, ptr noundef nonnull @.str.1, i32 noundef 49, ptr noundef %122, ptr noundef %124, ptr noundef %126, i32 noundef %127) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

129:                                              ; preds = %102
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %3) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(48) %3, i8 0, i64 48, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %4) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %4, i8 0, i64 24, i1 false)
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %5) #12
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(48) %5, ptr noundef nonnull align 16 dereferenceable(48) @__const.main.test_secret_bytes, i64 48, i1 false)
  %130 = load i32, ptr @test_count, align 4, !tbaa !5
  %131 = add nsw i32 %130, 1
  store i32 %131, ptr @test_count, align 4, !tbaa !5
  %132 = call i32 @s2n_blob_init(ptr noundef nonnull %4, ptr noundef nonnull %5, i32 noundef 48) #12
  %133 = icmp eq i32 %132, -1
  br i1 %133, label %134, label %158

134:                                              ; preds = %129
  %135 = tail call ptr @__errno_location() #13
  %136 = load i32, ptr %135, align 4, !tbaa !5
  %137 = load ptr, ptr @stderr, align 8, !tbaa !9
  %138 = call i32 @s2n_print_stacktrace(ptr noundef %137) #12
  %139 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %140 = trunc nuw i8 %139 to i1
  br i1 %140, label %141, label %145

141:                                              ; preds = %134
  %142 = load ptr, ptr @stderr, align 8, !tbaa !9
  %143 = call i32 @fileno(ptr noundef %142) #12
  %144 = call i32 @isatty(i32 noundef %143) #12
  %.not792 = icmp eq i32 %144, 0
  br i1 %.not792, label %145, label %146

145:                                              ; preds = %141, %134
  br label %146

146:                                              ; preds = %141, %145
  %.str.5.sink957 = phi ptr [ @.str.5, %145 ], [ @.str.2, %141 ]
  store i32 %136, ptr %135, align 4, !tbaa !5
  %147 = load ptr, ptr @stderr, align 8, !tbaa !9
  %148 = load i32, ptr @test_count, align 4, !tbaa !5
  %149 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %150 = load i32, ptr %149, align 4, !tbaa !5
  %151 = call ptr @s2n_strerror(i32 noundef %150, ptr noundef nonnull @.str.4) #12
  %152 = load i32, ptr %149, align 4, !tbaa !5
  %153 = call ptr @s2n_strerror_debug(i32 noundef %152, ptr noundef nonnull @.str.4) #12
  %154 = load i32, ptr %135, align 4, !tbaa !5
  %155 = call ptr @strerror(i32 noundef %154) #12
  %156 = load i32, ptr %135, align 4, !tbaa !5
  %157 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %147, ptr noundef nonnull %.str.5.sink957, i32 noundef %148, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 59, ptr noundef %151, ptr noundef %153, ptr noundef %155, i32 noundef %156) #14
  call void @exit(i32 noundef 1) #15
  unreachable

158:                                              ; preds = %129
  call void @llvm.lifetime.start.p0(i64 32000, ptr nonnull %6) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(32000) %6, i8 0, i64 32000, i1 false)
  %159 = load i16, ptr @cipher_preferences_test_all_tls13, align 8, !tbaa !15
  %160 = zext i16 %159 to i64
  %.not882 = icmp eq i16 %159, 0
  %161 = load i8, ptr @s2n_ecc_preferences_test_all, align 8
  %162 = zext i8 %161 to i64
  %163 = load ptr, ptr getelementptr inbounds (i8, ptr @cipher_preferences_test_all_tls13, i64 8), align 8
  %164 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_ecc_preferences_test_all, i64 8), align 8
  %.not883 = icmp eq i8 %161, 0
  %or.cond = select i1 %.not882, i1 true, i1 %.not883
  br i1 %or.cond, label %.split878.us.thread, label %.preheader836.us.us.preheader

.preheader836.us.us.preheader:                    ; preds = %158
  %.pre.pre = load i32, ptr @__const.main.modes, align 4
  %.pre908.pre = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.modes, i64 4), align 4
  br label %.preheader834.us.us863.us.us.us.preheader

.preheader834.us.us863.us.us.us.preheader:        ; preds = %._crit_edge848.split.us.us.us.us.us.3, %.preheader836.us.us.preheader
  %.0532871.us.us = phi i64 [ %.us-phi.us.us.us.us.3, %._crit_edge848.split.us.us.us.us.us.3 ], [ 0, %.preheader836.us.us.preheader ]
  %.0534869.us.us = phi i32 [ %223, %._crit_edge848.split.us.us.us.us.us.3 ], [ 1, %.preheader836.us.us.preheader ]
  br label %.preheader834.us.us863.us.us.us

.preheader834.us.us863.us.us.us:                  ; preds = %.preheader834.us.us863.us.us.us.preheader, %._crit_edge.split.us852.us.us.us.us
  %.2847.us.us.us.us.us = phi i64 [ %176, %._crit_edge.split.us852.us.us.us.us ], [ %.0532871.us.us, %.preheader834.us.us863.us.us.us.preheader ]
  %.0537846.us.us864.us.us.us = phi i64 [ %178, %._crit_edge.split.us852.us.us.us.us ], [ 0, %.preheader834.us.us863.us.us.us.preheader ]
  %165 = getelementptr inbounds ptr, ptr %163, i64 %.0537846.us.us864.us.us.us
  %166 = load ptr, ptr %165, align 8, !tbaa !9
  br label %.preheader833.us850.us.us.us.us

.preheader833.us850.us.us.us.us:                  ; preds = %.preheader833.us850.us.us.us.us, %.preheader834.us.us863.us.us.us
  %.3845.us.us.us.us.us = phi i64 [ %.2847.us.us.us.us.us, %.preheader834.us.us863.us.us.us ], [ %176, %.preheader833.us850.us.us.us.us ]
  %.0538844.us851.us.us.us.us = phi i64 [ 0, %.preheader834.us.us863.us.us.us ], [ %177, %.preheader833.us850.us.us.us.us ]
  %167 = getelementptr inbounds ptr, ptr %164, i64 %.0538844.us851.us.us.us.us
  %168 = load ptr, ptr %167, align 8, !tbaa !9
  %169 = getelementptr inbounds [1000 x %struct.s2n_tls13_secrets_test_case], ptr %6, i64 0, i64 %.3845.us.us.us.us.us
  store i32 0, ptr %169, align 16, !tbaa !5
  %.sroa.2.0..sroa_idx.us.us.us.us.us = getelementptr inbounds i8, ptr %169, i64 4
  store i32 %.0534869.us.us, ptr %.sroa.2.0..sroa_idx.us.us.us.us.us, align 4, !tbaa !5
  %.sroa.3.0..sroa_idx.us.us.us.us.us = getelementptr inbounds i8, ptr %169, i64 8
  store i32 %.pre.pre, ptr %.sroa.3.0..sroa_idx.us.us.us.us.us, align 8, !tbaa !5
  %.sroa.4.0..sroa_idx.us.us.us.us.us = getelementptr inbounds i8, ptr %169, i64 12
  store i32 %.pre.pre, ptr %.sroa.4.0..sroa_idx.us.us.us.us.us, align 4, !tbaa !5
  %.sroa.5.0..sroa_idx.us.us.us.us.us = getelementptr inbounds i8, ptr %169, i64 16
  store ptr %166, ptr %.sroa.5.0..sroa_idx.us.us.us.us.us, align 16, !tbaa !9
  %.sroa.6.0..sroa_idx.us.us.us.us.us = getelementptr inbounds i8, ptr %169, i64 24
  store ptr %168, ptr %.sroa.6.0..sroa_idx.us.us.us.us.us, align 8, !tbaa !9
  %170 = add i64 %.3845.us.us.us.us.us, 1
  %171 = getelementptr inbounds [1000 x %struct.s2n_tls13_secrets_test_case], ptr %6, i64 0, i64 %170
  store i32 0, ptr %171, align 16, !tbaa !5
  %.sroa.2.0..sroa_idx.us.us.us.us.us.1 = getelementptr inbounds i8, ptr %171, i64 4
  store i32 %.0534869.us.us, ptr %.sroa.2.0..sroa_idx.us.us.us.us.us.1, align 4, !tbaa !5
  %.sroa.3.0..sroa_idx.us.us.us.us.us.1 = getelementptr inbounds i8, ptr %171, i64 8
  store i32 %.pre.pre, ptr %.sroa.3.0..sroa_idx.us.us.us.us.us.1, align 8, !tbaa !5
  %.sroa.4.0..sroa_idx.us.us.us.us.us.1 = getelementptr inbounds i8, ptr %171, i64 12
  store i32 %.pre908.pre, ptr %.sroa.4.0..sroa_idx.us.us.us.us.us.1, align 4, !tbaa !5
  %.sroa.5.0..sroa_idx.us.us.us.us.us.1 = getelementptr inbounds i8, ptr %171, i64 16
  store ptr %166, ptr %.sroa.5.0..sroa_idx.us.us.us.us.us.1, align 16, !tbaa !9
  %.sroa.6.0..sroa_idx.us.us.us.us.us.1 = getelementptr inbounds i8, ptr %171, i64 24
  store ptr %168, ptr %.sroa.6.0..sroa_idx.us.us.us.us.us.1, align 8, !tbaa !9
  %172 = add i64 %.3845.us.us.us.us.us, 2
  %173 = getelementptr inbounds [1000 x %struct.s2n_tls13_secrets_test_case], ptr %6, i64 0, i64 %172
  store i32 0, ptr %173, align 16, !tbaa !5
  %.sroa.2.0..sroa_idx.us.us.us.us.us.1887 = getelementptr inbounds i8, ptr %173, i64 4
  store i32 %.0534869.us.us, ptr %.sroa.2.0..sroa_idx.us.us.us.us.us.1887, align 4, !tbaa !5
  %.sroa.3.0..sroa_idx.us.us.us.us.us.1888 = getelementptr inbounds i8, ptr %173, i64 8
  store i32 %.pre908.pre, ptr %.sroa.3.0..sroa_idx.us.us.us.us.us.1888, align 8, !tbaa !5
  %.sroa.4.0..sroa_idx.us.us.us.us.us.1889 = getelementptr inbounds i8, ptr %173, i64 12
  store i32 %.pre.pre, ptr %.sroa.4.0..sroa_idx.us.us.us.us.us.1889, align 4, !tbaa !5
  %.sroa.5.0..sroa_idx.us.us.us.us.us.1890 = getelementptr inbounds i8, ptr %173, i64 16
  store ptr %166, ptr %.sroa.5.0..sroa_idx.us.us.us.us.us.1890, align 16, !tbaa !9
  %.sroa.6.0..sroa_idx.us.us.us.us.us.1891 = getelementptr inbounds i8, ptr %173, i64 24
  store ptr %168, ptr %.sroa.6.0..sroa_idx.us.us.us.us.us.1891, align 8, !tbaa !9
  %174 = add i64 %.3845.us.us.us.us.us, 3
  %175 = getelementptr inbounds [1000 x %struct.s2n_tls13_secrets_test_case], ptr %6, i64 0, i64 %174
  store i32 0, ptr %175, align 16, !tbaa !5
  %.sroa.2.0..sroa_idx.us.us.us.us.us.1.1 = getelementptr inbounds i8, ptr %175, i64 4
  store i32 %.0534869.us.us, ptr %.sroa.2.0..sroa_idx.us.us.us.us.us.1.1, align 4, !tbaa !5
  %.sroa.3.0..sroa_idx.us.us.us.us.us.1.1 = getelementptr inbounds i8, ptr %175, i64 8
  store i32 %.pre908.pre, ptr %.sroa.3.0..sroa_idx.us.us.us.us.us.1.1, align 8, !tbaa !5
  %.sroa.4.0..sroa_idx.us.us.us.us.us.1.1 = getelementptr inbounds i8, ptr %175, i64 12
  store i32 %.pre908.pre, ptr %.sroa.4.0..sroa_idx.us.us.us.us.us.1.1, align 4, !tbaa !5
  %.sroa.5.0..sroa_idx.us.us.us.us.us.1.1 = getelementptr inbounds i8, ptr %175, i64 16
  store ptr %166, ptr %.sroa.5.0..sroa_idx.us.us.us.us.us.1.1, align 16, !tbaa !9
  %.sroa.6.0..sroa_idx.us.us.us.us.us.1.1 = getelementptr inbounds i8, ptr %175, i64 24
  store ptr %168, ptr %.sroa.6.0..sroa_idx.us.us.us.us.us.1.1, align 8, !tbaa !9
  %176 = add i64 %.3845.us.us.us.us.us, 4
  %177 = add nuw nsw i64 %.0538844.us851.us.us.us.us, 1
  %exitcond.not = icmp eq i64 %177, %162
  br i1 %exitcond.not, label %._crit_edge.split.us852.us.us.us.us, label %.preheader833.us850.us.us.us.us, !llvm.loop !18

._crit_edge.split.us852.us.us.us.us:              ; preds = %.preheader833.us850.us.us.us.us
  %178 = add nuw nsw i64 %.0537846.us.us864.us.us.us, 1
  %exitcond892.not = icmp eq i64 %178, %160
  br i1 %exitcond892.not, label %.preheader834.us.us863.us.us.us.1, label %.preheader834.us.us863.us.us.us, !llvm.loop !20

.preheader834.us.us863.us.us.us.1:                ; preds = %._crit_edge.split.us852.us.us.us.us, %._crit_edge.split.us852.us.us.us.us.1
  %.2847.us.us.us.us.us.1 = phi i64 [ %190, %._crit_edge.split.us852.us.us.us.us.1 ], [ %176, %._crit_edge.split.us852.us.us.us.us ]
  %.0537846.us.us864.us.us.us.1 = phi i64 [ %192, %._crit_edge.split.us852.us.us.us.us.1 ], [ 0, %._crit_edge.split.us852.us.us.us.us ]
  %179 = getelementptr inbounds ptr, ptr %163, i64 %.0537846.us.us864.us.us.us.1
  %180 = load ptr, ptr %179, align 8, !tbaa !9
  br label %.preheader833.us850.us.us.us.us.1

.preheader833.us850.us.us.us.us.1:                ; preds = %.preheader833.us850.us.us.us.us.1, %.preheader834.us.us863.us.us.us.1
  %.3845.us.us.us.us.us.1 = phi i64 [ %.2847.us.us.us.us.us.1, %.preheader834.us.us863.us.us.us.1 ], [ %190, %.preheader833.us850.us.us.us.us.1 ]
  %.0538844.us851.us.us.us.us.1 = phi i64 [ 0, %.preheader834.us.us863.us.us.us.1 ], [ %191, %.preheader833.us850.us.us.us.us.1 ]
  %181 = getelementptr inbounds ptr, ptr %164, i64 %.0538844.us851.us.us.us.us.1
  %182 = load ptr, ptr %181, align 8, !tbaa !9
  %183 = getelementptr inbounds [1000 x %struct.s2n_tls13_secrets_test_case], ptr %6, i64 0, i64 %.3845.us.us.us.us.us.1
  store i32 1, ptr %183, align 16, !tbaa !5
  %.sroa.2.0..sroa_idx.us.us.us.us.us.1894 = getelementptr inbounds i8, ptr %183, i64 4
  store i32 %.0534869.us.us, ptr %.sroa.2.0..sroa_idx.us.us.us.us.us.1894, align 4, !tbaa !5
  %.sroa.3.0..sroa_idx.us.us.us.us.us.1895 = getelementptr inbounds i8, ptr %183, i64 8
  store i32 %.pre.pre, ptr %.sroa.3.0..sroa_idx.us.us.us.us.us.1895, align 8, !tbaa !5
  %.sroa.4.0..sroa_idx.us.us.us.us.us.1896 = getelementptr inbounds i8, ptr %183, i64 12
  store i32 %.pre.pre, ptr %.sroa.4.0..sroa_idx.us.us.us.us.us.1896, align 4, !tbaa !5
  %.sroa.5.0..sroa_idx.us.us.us.us.us.1897 = getelementptr inbounds i8, ptr %183, i64 16
  store ptr %180, ptr %.sroa.5.0..sroa_idx.us.us.us.us.us.1897, align 16, !tbaa !9
  %.sroa.6.0..sroa_idx.us.us.us.us.us.1898 = getelementptr inbounds i8, ptr %183, i64 24
  store ptr %182, ptr %.sroa.6.0..sroa_idx.us.us.us.us.us.1898, align 8, !tbaa !9
  %184 = add i64 %.3845.us.us.us.us.us.1, 1
  %185 = getelementptr inbounds [1000 x %struct.s2n_tls13_secrets_test_case], ptr %6, i64 0, i64 %184
  store i32 1, ptr %185, align 16, !tbaa !5
  %.sroa.2.0..sroa_idx.us.us.us.us.us.1.1899 = getelementptr inbounds i8, ptr %185, i64 4
  store i32 %.0534869.us.us, ptr %.sroa.2.0..sroa_idx.us.us.us.us.us.1.1899, align 4, !tbaa !5
  %.sroa.3.0..sroa_idx.us.us.us.us.us.1.1900 = getelementptr inbounds i8, ptr %185, i64 8
  store i32 %.pre.pre, ptr %.sroa.3.0..sroa_idx.us.us.us.us.us.1.1900, align 8, !tbaa !5
  %.sroa.4.0..sroa_idx.us.us.us.us.us.1.1901 = getelementptr inbounds i8, ptr %185, i64 12
  store i32 %.pre908.pre, ptr %.sroa.4.0..sroa_idx.us.us.us.us.us.1.1901, align 4, !tbaa !5
  %.sroa.5.0..sroa_idx.us.us.us.us.us.1.1902 = getelementptr inbounds i8, ptr %185, i64 16
  store ptr %180, ptr %.sroa.5.0..sroa_idx.us.us.us.us.us.1.1902, align 16, !tbaa !9
  %.sroa.6.0..sroa_idx.us.us.us.us.us.1.1903 = getelementptr inbounds i8, ptr %185, i64 24
  store ptr %182, ptr %.sroa.6.0..sroa_idx.us.us.us.us.us.1.1903, align 8, !tbaa !9
  %186 = add i64 %.3845.us.us.us.us.us.1, 2
  %187 = getelementptr inbounds [1000 x %struct.s2n_tls13_secrets_test_case], ptr %6, i64 0, i64 %186
  store i32 1, ptr %187, align 16, !tbaa !5
  %.sroa.2.0..sroa_idx.us.us.us.us.us.1887.1 = getelementptr inbounds i8, ptr %187, i64 4
  store i32 %.0534869.us.us, ptr %.sroa.2.0..sroa_idx.us.us.us.us.us.1887.1, align 4, !tbaa !5
  %.sroa.3.0..sroa_idx.us.us.us.us.us.1888.1 = getelementptr inbounds i8, ptr %187, i64 8
  store i32 %.pre908.pre, ptr %.sroa.3.0..sroa_idx.us.us.us.us.us.1888.1, align 8, !tbaa !5
  %.sroa.4.0..sroa_idx.us.us.us.us.us.1889.1 = getelementptr inbounds i8, ptr %187, i64 12
  store i32 %.pre.pre, ptr %.sroa.4.0..sroa_idx.us.us.us.us.us.1889.1, align 4, !tbaa !5
  %.sroa.5.0..sroa_idx.us.us.us.us.us.1890.1 = getelementptr inbounds i8, ptr %187, i64 16
  store ptr %180, ptr %.sroa.5.0..sroa_idx.us.us.us.us.us.1890.1, align 16, !tbaa !9
  %.sroa.6.0..sroa_idx.us.us.us.us.us.1891.1 = getelementptr inbounds i8, ptr %187, i64 24
  store ptr %182, ptr %.sroa.6.0..sroa_idx.us.us.us.us.us.1891.1, align 8, !tbaa !9
  %188 = add i64 %.3845.us.us.us.us.us.1, 3
  %189 = getelementptr inbounds [1000 x %struct.s2n_tls13_secrets_test_case], ptr %6, i64 0, i64 %188
  store i32 1, ptr %189, align 16, !tbaa !5
  %.sroa.2.0..sroa_idx.us.us.us.us.us.1.1.1 = getelementptr inbounds i8, ptr %189, i64 4
  store i32 %.0534869.us.us, ptr %.sroa.2.0..sroa_idx.us.us.us.us.us.1.1.1, align 4, !tbaa !5
  %.sroa.3.0..sroa_idx.us.us.us.us.us.1.1.1 = getelementptr inbounds i8, ptr %189, i64 8
  store i32 %.pre908.pre, ptr %.sroa.3.0..sroa_idx.us.us.us.us.us.1.1.1, align 8, !tbaa !5
  %.sroa.4.0..sroa_idx.us.us.us.us.us.1.1.1 = getelementptr inbounds i8, ptr %189, i64 12
  store i32 %.pre908.pre, ptr %.sroa.4.0..sroa_idx.us.us.us.us.us.1.1.1, align 4, !tbaa !5
  %.sroa.5.0..sroa_idx.us.us.us.us.us.1.1.1 = getelementptr inbounds i8, ptr %189, i64 16
  store ptr %180, ptr %.sroa.5.0..sroa_idx.us.us.us.us.us.1.1.1, align 16, !tbaa !9
  %.sroa.6.0..sroa_idx.us.us.us.us.us.1.1.1 = getelementptr inbounds i8, ptr %189, i64 24
  store ptr %182, ptr %.sroa.6.0..sroa_idx.us.us.us.us.us.1.1.1, align 8, !tbaa !9
  %190 = add i64 %.3845.us.us.us.us.us.1, 4
  %191 = add nuw nsw i64 %.0538844.us851.us.us.us.us.1, 1
  %exitcond.1.not = icmp eq i64 %191, %162
  br i1 %exitcond.1.not, label %._crit_edge.split.us852.us.us.us.us.1, label %.preheader833.us850.us.us.us.us.1, !llvm.loop !18

._crit_edge.split.us852.us.us.us.us.1:            ; preds = %.preheader833.us850.us.us.us.us.1
  %192 = add nuw nsw i64 %.0537846.us.us864.us.us.us.1, 1
  %exitcond892.1.not = icmp eq i64 %192, %160
  br i1 %exitcond892.1.not, label %._crit_edge848.split.us.us.us.us.us.1, label %.preheader834.us.us863.us.us.us.1, !llvm.loop !20

._crit_edge848.split.us.us.us.us.us.1:            ; preds = %._crit_edge.split.us852.us.us.us.us.1
  %193 = icmp ult i32 %.0534869.us.us, 2
  br i1 %193, label %._crit_edge848.split.us.us.us.us.us.3, label %.preheader834.us.us863.us.us.us.2

.preheader834.us.us863.us.us.us.2:                ; preds = %._crit_edge848.split.us.us.us.us.us.1, %._crit_edge.split.us852.us.us.us.us.2
  %.2847.us.us.us.us.us.2 = phi i64 [ %205, %._crit_edge.split.us852.us.us.us.us.2 ], [ %190, %._crit_edge848.split.us.us.us.us.us.1 ]
  %.0537846.us.us864.us.us.us.2 = phi i64 [ %207, %._crit_edge.split.us852.us.us.us.us.2 ], [ 0, %._crit_edge848.split.us.us.us.us.us.1 ]
  %194 = getelementptr inbounds ptr, ptr %163, i64 %.0537846.us.us864.us.us.us.2
  %195 = load ptr, ptr %194, align 8, !tbaa !9
  br label %.preheader833.us850.us.us.us.us.2

.preheader833.us850.us.us.us.us.2:                ; preds = %.preheader833.us850.us.us.us.us.2, %.preheader834.us.us863.us.us.us.2
  %.3845.us.us.us.us.us.2 = phi i64 [ %.2847.us.us.us.us.us.2, %.preheader834.us.us863.us.us.us.2 ], [ %205, %.preheader833.us850.us.us.us.us.2 ]
  %.0538844.us851.us.us.us.us.2 = phi i64 [ 0, %.preheader834.us.us863.us.us.us.2 ], [ %206, %.preheader833.us850.us.us.us.us.2 ]
  %196 = getelementptr inbounds ptr, ptr %164, i64 %.0538844.us851.us.us.us.us.2
  %197 = load ptr, ptr %196, align 8, !tbaa !9
  %198 = getelementptr inbounds [1000 x %struct.s2n_tls13_secrets_test_case], ptr %6, i64 0, i64 %.3845.us.us.us.us.us.2
  store i32 2, ptr %198, align 16, !tbaa !5
  %.sroa.2.0..sroa_idx.us.us.us.us.us.2 = getelementptr inbounds i8, ptr %198, i64 4
  store i32 %.0534869.us.us, ptr %.sroa.2.0..sroa_idx.us.us.us.us.us.2, align 4, !tbaa !5
  %.sroa.3.0..sroa_idx.us.us.us.us.us.2 = getelementptr inbounds i8, ptr %198, i64 8
  store i32 %.pre.pre, ptr %.sroa.3.0..sroa_idx.us.us.us.us.us.2, align 8, !tbaa !5
  %.sroa.4.0..sroa_idx.us.us.us.us.us.2 = getelementptr inbounds i8, ptr %198, i64 12
  store i32 %.pre.pre, ptr %.sroa.4.0..sroa_idx.us.us.us.us.us.2, align 4, !tbaa !5
  %.sroa.5.0..sroa_idx.us.us.us.us.us.2 = getelementptr inbounds i8, ptr %198, i64 16
  store ptr %195, ptr %.sroa.5.0..sroa_idx.us.us.us.us.us.2, align 16, !tbaa !9
  %.sroa.6.0..sroa_idx.us.us.us.us.us.2 = getelementptr inbounds i8, ptr %198, i64 24
  store ptr %197, ptr %.sroa.6.0..sroa_idx.us.us.us.us.us.2, align 8, !tbaa !9
  %199 = add i64 %.3845.us.us.us.us.us.2, 1
  %200 = getelementptr inbounds [1000 x %struct.s2n_tls13_secrets_test_case], ptr %6, i64 0, i64 %199
  store i32 2, ptr %200, align 16, !tbaa !5
  %.sroa.2.0..sroa_idx.us.us.us.us.us.1.2 = getelementptr inbounds i8, ptr %200, i64 4
  store i32 %.0534869.us.us, ptr %.sroa.2.0..sroa_idx.us.us.us.us.us.1.2, align 4, !tbaa !5
  %.sroa.3.0..sroa_idx.us.us.us.us.us.1.2 = getelementptr inbounds i8, ptr %200, i64 8
  store i32 %.pre.pre, ptr %.sroa.3.0..sroa_idx.us.us.us.us.us.1.2, align 8, !tbaa !5
  %.sroa.4.0..sroa_idx.us.us.us.us.us.1.2 = getelementptr inbounds i8, ptr %200, i64 12
  store i32 %.pre908.pre, ptr %.sroa.4.0..sroa_idx.us.us.us.us.us.1.2, align 4, !tbaa !5
  %.sroa.5.0..sroa_idx.us.us.us.us.us.1.2 = getelementptr inbounds i8, ptr %200, i64 16
  store ptr %195, ptr %.sroa.5.0..sroa_idx.us.us.us.us.us.1.2, align 16, !tbaa !9
  %.sroa.6.0..sroa_idx.us.us.us.us.us.1.2 = getelementptr inbounds i8, ptr %200, i64 24
  store ptr %197, ptr %.sroa.6.0..sroa_idx.us.us.us.us.us.1.2, align 8, !tbaa !9
  %201 = add i64 %.3845.us.us.us.us.us.2, 2
  %202 = getelementptr inbounds [1000 x %struct.s2n_tls13_secrets_test_case], ptr %6, i64 0, i64 %201
  store i32 2, ptr %202, align 16, !tbaa !5
  %.sroa.2.0..sroa_idx.us.us.us.us.us.1887.2 = getelementptr inbounds i8, ptr %202, i64 4
  store i32 %.0534869.us.us, ptr %.sroa.2.0..sroa_idx.us.us.us.us.us.1887.2, align 4, !tbaa !5
  %.sroa.3.0..sroa_idx.us.us.us.us.us.1888.2 = getelementptr inbounds i8, ptr %202, i64 8
  store i32 %.pre908.pre, ptr %.sroa.3.0..sroa_idx.us.us.us.us.us.1888.2, align 8, !tbaa !5
  %.sroa.4.0..sroa_idx.us.us.us.us.us.1889.2 = getelementptr inbounds i8, ptr %202, i64 12
  store i32 %.pre.pre, ptr %.sroa.4.0..sroa_idx.us.us.us.us.us.1889.2, align 4, !tbaa !5
  %.sroa.5.0..sroa_idx.us.us.us.us.us.1890.2 = getelementptr inbounds i8, ptr %202, i64 16
  store ptr %195, ptr %.sroa.5.0..sroa_idx.us.us.us.us.us.1890.2, align 16, !tbaa !9
  %.sroa.6.0..sroa_idx.us.us.us.us.us.1891.2 = getelementptr inbounds i8, ptr %202, i64 24
  store ptr %197, ptr %.sroa.6.0..sroa_idx.us.us.us.us.us.1891.2, align 8, !tbaa !9
  %203 = add i64 %.3845.us.us.us.us.us.2, 3
  %204 = getelementptr inbounds [1000 x %struct.s2n_tls13_secrets_test_case], ptr %6, i64 0, i64 %203
  store i32 2, ptr %204, align 16, !tbaa !5
  %.sroa.2.0..sroa_idx.us.us.us.us.us.1.1.2 = getelementptr inbounds i8, ptr %204, i64 4
  store i32 %.0534869.us.us, ptr %.sroa.2.0..sroa_idx.us.us.us.us.us.1.1.2, align 4, !tbaa !5
  %.sroa.3.0..sroa_idx.us.us.us.us.us.1.1.2 = getelementptr inbounds i8, ptr %204, i64 8
  store i32 %.pre908.pre, ptr %.sroa.3.0..sroa_idx.us.us.us.us.us.1.1.2, align 8, !tbaa !5
  %.sroa.4.0..sroa_idx.us.us.us.us.us.1.1.2 = getelementptr inbounds i8, ptr %204, i64 12
  store i32 %.pre908.pre, ptr %.sroa.4.0..sroa_idx.us.us.us.us.us.1.1.2, align 4, !tbaa !5
  %.sroa.5.0..sroa_idx.us.us.us.us.us.1.1.2 = getelementptr inbounds i8, ptr %204, i64 16
  store ptr %195, ptr %.sroa.5.0..sroa_idx.us.us.us.us.us.1.1.2, align 16, !tbaa !9
  %.sroa.6.0..sroa_idx.us.us.us.us.us.1.1.2 = getelementptr inbounds i8, ptr %204, i64 24
  store ptr %197, ptr %.sroa.6.0..sroa_idx.us.us.us.us.us.1.1.2, align 8, !tbaa !9
  %205 = add i64 %.3845.us.us.us.us.us.2, 4
  %206 = add nuw nsw i64 %.0538844.us851.us.us.us.us.2, 1
  %exitcond.2.not = icmp eq i64 %206, %162
  br i1 %exitcond.2.not, label %._crit_edge.split.us852.us.us.us.us.2, label %.preheader833.us850.us.us.us.us.2, !llvm.loop !18

._crit_edge.split.us852.us.us.us.us.2:            ; preds = %.preheader833.us850.us.us.us.us.2
  %207 = add nuw nsw i64 %.0537846.us.us864.us.us.us.2, 1
  %exitcond892.2.not = icmp eq i64 %207, %160
  br i1 %exitcond892.2.not, label %._crit_edge848.split.us.us.us.us.us.2, label %.preheader834.us.us863.us.us.us.2, !llvm.loop !20

._crit_edge848.split.us.us.us.us.us.2:            ; preds = %._crit_edge.split.us852.us.us.us.us.2
  %208 = icmp eq i32 %.0534869.us.us, 2
  br i1 %208, label %._crit_edge848.split.us.us.us.us.us.3, label %.preheader834.us.us863.us.us.us.3

.preheader834.us.us863.us.us.us.3:                ; preds = %._crit_edge848.split.us.us.us.us.us.2, %._crit_edge.split.us852.us.us.us.us.3
  %.2847.us.us.us.us.us.3 = phi i64 [ %220, %._crit_edge.split.us852.us.us.us.us.3 ], [ %205, %._crit_edge848.split.us.us.us.us.us.2 ]
  %.0537846.us.us864.us.us.us.3 = phi i64 [ %222, %._crit_edge.split.us852.us.us.us.us.3 ], [ 0, %._crit_edge848.split.us.us.us.us.us.2 ]
  %209 = getelementptr inbounds ptr, ptr %163, i64 %.0537846.us.us864.us.us.us.3
  %210 = load ptr, ptr %209, align 8, !tbaa !9
  br label %.preheader833.us850.us.us.us.us.3

.preheader833.us850.us.us.us.us.3:                ; preds = %.preheader833.us850.us.us.us.us.3, %.preheader834.us.us863.us.us.us.3
  %.3845.us.us.us.us.us.3 = phi i64 [ %.2847.us.us.us.us.us.3, %.preheader834.us.us863.us.us.us.3 ], [ %220, %.preheader833.us850.us.us.us.us.3 ]
  %.0538844.us851.us.us.us.us.3 = phi i64 [ 0, %.preheader834.us.us863.us.us.us.3 ], [ %221, %.preheader833.us850.us.us.us.us.3 ]
  %211 = getelementptr inbounds ptr, ptr %164, i64 %.0538844.us851.us.us.us.us.3
  %212 = load ptr, ptr %211, align 8, !tbaa !9
  %213 = getelementptr inbounds [1000 x %struct.s2n_tls13_secrets_test_case], ptr %6, i64 0, i64 %.3845.us.us.us.us.us.3
  store i32 3, ptr %213, align 16, !tbaa !5
  %.sroa.2.0..sroa_idx.us.us.us.us.us.3 = getelementptr inbounds i8, ptr %213, i64 4
  store i32 %.0534869.us.us, ptr %.sroa.2.0..sroa_idx.us.us.us.us.us.3, align 4, !tbaa !5
  %.sroa.3.0..sroa_idx.us.us.us.us.us.3 = getelementptr inbounds i8, ptr %213, i64 8
  store i32 %.pre.pre, ptr %.sroa.3.0..sroa_idx.us.us.us.us.us.3, align 8, !tbaa !5
  %.sroa.4.0..sroa_idx.us.us.us.us.us.3 = getelementptr inbounds i8, ptr %213, i64 12
  store i32 %.pre.pre, ptr %.sroa.4.0..sroa_idx.us.us.us.us.us.3, align 4, !tbaa !5
  %.sroa.5.0..sroa_idx.us.us.us.us.us.3 = getelementptr inbounds i8, ptr %213, i64 16
  store ptr %210, ptr %.sroa.5.0..sroa_idx.us.us.us.us.us.3, align 16, !tbaa !9
  %.sroa.6.0..sroa_idx.us.us.us.us.us.3 = getelementptr inbounds i8, ptr %213, i64 24
  store ptr %212, ptr %.sroa.6.0..sroa_idx.us.us.us.us.us.3, align 8, !tbaa !9
  %214 = add i64 %.3845.us.us.us.us.us.3, 1
  %215 = getelementptr inbounds [1000 x %struct.s2n_tls13_secrets_test_case], ptr %6, i64 0, i64 %214
  store i32 3, ptr %215, align 16, !tbaa !5
  %.sroa.2.0..sroa_idx.us.us.us.us.us.1.3 = getelementptr inbounds i8, ptr %215, i64 4
  store i32 %.0534869.us.us, ptr %.sroa.2.0..sroa_idx.us.us.us.us.us.1.3, align 4, !tbaa !5
  %.sroa.3.0..sroa_idx.us.us.us.us.us.1.3 = getelementptr inbounds i8, ptr %215, i64 8
  store i32 %.pre.pre, ptr %.sroa.3.0..sroa_idx.us.us.us.us.us.1.3, align 8, !tbaa !5
  %.sroa.4.0..sroa_idx.us.us.us.us.us.1.3 = getelementptr inbounds i8, ptr %215, i64 12
  store i32 %.pre908.pre, ptr %.sroa.4.0..sroa_idx.us.us.us.us.us.1.3, align 4, !tbaa !5
  %.sroa.5.0..sroa_idx.us.us.us.us.us.1.3 = getelementptr inbounds i8, ptr %215, i64 16
  store ptr %210, ptr %.sroa.5.0..sroa_idx.us.us.us.us.us.1.3, align 16, !tbaa !9
  %.sroa.6.0..sroa_idx.us.us.us.us.us.1.3 = getelementptr inbounds i8, ptr %215, i64 24
  store ptr %212, ptr %.sroa.6.0..sroa_idx.us.us.us.us.us.1.3, align 8, !tbaa !9
  %216 = add i64 %.3845.us.us.us.us.us.3, 2
  %217 = getelementptr inbounds [1000 x %struct.s2n_tls13_secrets_test_case], ptr %6, i64 0, i64 %216
  store i32 3, ptr %217, align 16, !tbaa !5
  %.sroa.2.0..sroa_idx.us.us.us.us.us.1887.3 = getelementptr inbounds i8, ptr %217, i64 4
  store i32 %.0534869.us.us, ptr %.sroa.2.0..sroa_idx.us.us.us.us.us.1887.3, align 4, !tbaa !5
  %.sroa.3.0..sroa_idx.us.us.us.us.us.1888.3 = getelementptr inbounds i8, ptr %217, i64 8
  store i32 %.pre908.pre, ptr %.sroa.3.0..sroa_idx.us.us.us.us.us.1888.3, align 8, !tbaa !5
  %.sroa.4.0..sroa_idx.us.us.us.us.us.1889.3 = getelementptr inbounds i8, ptr %217, i64 12
  store i32 %.pre.pre, ptr %.sroa.4.0..sroa_idx.us.us.us.us.us.1889.3, align 4, !tbaa !5
  %.sroa.5.0..sroa_idx.us.us.us.us.us.1890.3 = getelementptr inbounds i8, ptr %217, i64 16
  store ptr %210, ptr %.sroa.5.0..sroa_idx.us.us.us.us.us.1890.3, align 16, !tbaa !9
  %.sroa.6.0..sroa_idx.us.us.us.us.us.1891.3 = getelementptr inbounds i8, ptr %217, i64 24
  store ptr %212, ptr %.sroa.6.0..sroa_idx.us.us.us.us.us.1891.3, align 8, !tbaa !9
  %218 = add i64 %.3845.us.us.us.us.us.3, 3
  %219 = getelementptr inbounds [1000 x %struct.s2n_tls13_secrets_test_case], ptr %6, i64 0, i64 %218
  store i32 3, ptr %219, align 16, !tbaa !5
  %.sroa.2.0..sroa_idx.us.us.us.us.us.1.1.3 = getelementptr inbounds i8, ptr %219, i64 4
  store i32 %.0534869.us.us, ptr %.sroa.2.0..sroa_idx.us.us.us.us.us.1.1.3, align 4, !tbaa !5
  %.sroa.3.0..sroa_idx.us.us.us.us.us.1.1.3 = getelementptr inbounds i8, ptr %219, i64 8
  store i32 %.pre908.pre, ptr %.sroa.3.0..sroa_idx.us.us.us.us.us.1.1.3, align 8, !tbaa !5
  %.sroa.4.0..sroa_idx.us.us.us.us.us.1.1.3 = getelementptr inbounds i8, ptr %219, i64 12
  store i32 %.pre908.pre, ptr %.sroa.4.0..sroa_idx.us.us.us.us.us.1.1.3, align 4, !tbaa !5
  %.sroa.5.0..sroa_idx.us.us.us.us.us.1.1.3 = getelementptr inbounds i8, ptr %219, i64 16
  store ptr %210, ptr %.sroa.5.0..sroa_idx.us.us.us.us.us.1.1.3, align 16, !tbaa !9
  %.sroa.6.0..sroa_idx.us.us.us.us.us.1.1.3 = getelementptr inbounds i8, ptr %219, i64 24
  store ptr %212, ptr %.sroa.6.0..sroa_idx.us.us.us.us.us.1.1.3, align 8, !tbaa !9
  %220 = add i64 %.3845.us.us.us.us.us.3, 4
  %221 = add nuw nsw i64 %.0538844.us851.us.us.us.us.3, 1
  %exitcond.3.not = icmp eq i64 %221, %162
  br i1 %exitcond.3.not, label %._crit_edge.split.us852.us.us.us.us.3, label %.preheader833.us850.us.us.us.us.3, !llvm.loop !18

._crit_edge.split.us852.us.us.us.us.3:            ; preds = %.preheader833.us850.us.us.us.us.3
  %222 = add nuw nsw i64 %.0537846.us.us864.us.us.us.3, 1
  %exitcond892.3.not = icmp eq i64 %222, %160
  br i1 %exitcond892.3.not, label %._crit_edge848.split.us.us.us.us.us.3, label %.preheader834.us.us863.us.us.us.3, !llvm.loop !20

._crit_edge848.split.us.us.us.us.us.3:            ; preds = %._crit_edge.split.us852.us.us.us.us.3, %._crit_edge848.split.us.us.us.us.us.1, %._crit_edge848.split.us.us.us.us.us.2
  %.us-phi.us.us.us.us.3 = phi i64 [ %205, %._crit_edge848.split.us.us.us.us.us.2 ], [ %190, %._crit_edge848.split.us.us.us.us.us.1 ], [ %220, %._crit_edge.split.us852.us.us.us.us.3 ]
  %223 = add nuw nsw i32 %.0534869.us.us, 1
  %exitcond905.not = icmp eq i32 %223, 4
  br i1 %exitcond905.not, label %.split878.us, label %.preheader834.us.us863.us.us.us.preheader, !llvm.loop !21

.split878.us.thread:                              ; preds = %158
  %224 = load i32, ptr @test_count, align 4, !tbaa !5
  %225 = add nsw i32 %224, 1
  store i32 %225, ptr @test_count, align 4, !tbaa !5
  br label %228

.split878.us:                                     ; preds = %._crit_edge848.split.us.us.us.us.us.3
  %226 = load i32, ptr @test_count, align 4, !tbaa !5
  %227 = add nsw i32 %226, 1
  store i32 %227, ptr @test_count, align 4, !tbaa !5
  %.not = icmp eq i64 %.us-phi.us.us.us.us.3, 0
  br i1 %.not, label %228, label %252

228:                                              ; preds = %.split878.us.thread, %.split878.us
  %229 = tail call ptr @__errno_location() #13
  %230 = load i32, ptr %229, align 4, !tbaa !5
  %231 = load ptr, ptr @stderr, align 8, !tbaa !9
  %232 = call i32 @s2n_print_stacktrace(ptr noundef %231) #12
  %233 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %234 = trunc nuw i8 %233 to i1
  br i1 %234, label %235, label %239

235:                                              ; preds = %228
  %236 = load ptr, ptr @stderr, align 8, !tbaa !9
  %237 = call i32 @fileno(ptr noundef %236) #12
  %238 = call i32 @isatty(i32 noundef %237) #12
  %.not555 = icmp eq i32 %238, 0
  br i1 %.not555, label %239, label %240

239:                                              ; preds = %235, %228
  br label %240

240:                                              ; preds = %235, %239
  %.str.5.sink968 = phi ptr [ @.str.5, %239 ], [ @.str.2, %235 ]
  store i32 %230, ptr %229, align 4, !tbaa !5
  %241 = load ptr, ptr @stderr, align 8, !tbaa !9
  %242 = load i32, ptr @test_count, align 4, !tbaa !5
  %243 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %244 = load i32, ptr %243, align 4, !tbaa !5
  %245 = call ptr @s2n_strerror(i32 noundef %244, ptr noundef nonnull @.str.4) #12
  %246 = load i32, ptr %243, align 4, !tbaa !5
  %247 = call ptr @s2n_strerror_debug(i32 noundef %246, ptr noundef nonnull @.str.4) #12
  %248 = load i32, ptr %229, align 4, !tbaa !5
  %249 = call ptr @strerror(i32 noundef %248) #12
  %250 = load i32, ptr %229, align 4, !tbaa !5
  %251 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %241, ptr noundef nonnull %.str.5.sink968, i32 noundef %242, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, i32 noundef 88, ptr noundef %245, ptr noundef %247, ptr noundef %249, i32 noundef %250) #14
  call void @exit(i32 noundef 1) #15
  unreachable

252:                                              ; preds = %.split878.us
  call void @llvm.lifetime.start.p0(i64 4184, ptr nonnull %7) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(4184) %7, i8 0, i64 4184, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #12
  %253 = call ptr @s2n_connection_new(i32 noundef 0) #12
  store ptr %253, ptr %8, align 8, !tbaa !9
  %254 = load i32, ptr @test_count, align 4, !tbaa !5
  %255 = add nsw i32 %254, 1
  store i32 %255, ptr @test_count, align 4, !tbaa !5
  %256 = call i32 @s2n_tls13_extract_secret(ptr noundef null, i32 noundef 1) #12
  %257 = call zeroext i1 @s2n_result_is_error(i32 %256)
  br i1 %257, label %282, label %258

258:                                              ; preds = %252
  %259 = tail call ptr @__errno_location() #13
  %260 = load i32, ptr %259, align 4, !tbaa !5
  %261 = load ptr, ptr @stderr, align 8, !tbaa !9
  %262 = call i32 @s2n_print_stacktrace(ptr noundef %261) #12
  %263 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %264 = trunc nuw i8 %263 to i1
  br i1 %264, label %265, label %269

265:                                              ; preds = %258
  %266 = load ptr, ptr @stderr, align 8, !tbaa !9
  %267 = call i32 @fileno(ptr noundef %266) #12
  %268 = call i32 @isatty(i32 noundef %267) #12
  %.not556 = icmp eq i32 %268, 0
  br i1 %.not556, label %269, label %270

269:                                              ; preds = %265, %258
  br label %270

270:                                              ; preds = %265, %269
  %.str.5.sink979 = phi ptr [ @.str.5, %269 ], [ @.str.2, %265 ]
  store i32 %260, ptr %259, align 4, !tbaa !5
  %271 = load ptr, ptr @stderr, align 8, !tbaa !9
  %272 = load i32, ptr @test_count, align 4, !tbaa !5
  %273 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %274 = load i32, ptr %273, align 4, !tbaa !5
  %275 = call ptr @s2n_strerror(i32 noundef %274, ptr noundef nonnull @.str.4) #12
  %276 = load i32, ptr %273, align 4, !tbaa !5
  %277 = call ptr @s2n_strerror_debug(i32 noundef %276, ptr noundef nonnull @.str.4) #12
  %278 = load i32, ptr %259, align 4, !tbaa !5
  %279 = call ptr @strerror(i32 noundef %278) #12
  %280 = load i32, ptr %259, align 4, !tbaa !5
  %281 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %271, ptr noundef nonnull %.str.5.sink979, i32 noundef %272, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 98, ptr noundef %275, ptr noundef %277, ptr noundef %279, i32 noundef %280) #14
  call void @exit(i32 noundef 1) #15
  unreachable

282:                                              ; preds = %252
  %283 = load i32, ptr @test_count, align 4, !tbaa !5
  %284 = add nsw i32 %283, 1
  store i32 %284, ptr @test_count, align 4, !tbaa !5
  %285 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %286 = load i32, ptr %285, align 4, !tbaa !5
  %287 = icmp eq i32 %286, 402653193
  br i1 %287, label %311, label %288

288:                                              ; preds = %282
  %289 = tail call ptr @__errno_location() #13
  %290 = load i32, ptr %289, align 4, !tbaa !5
  %291 = load ptr, ptr @stderr, align 8, !tbaa !9
  %292 = call i32 @s2n_print_stacktrace(ptr noundef %291) #12
  %293 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %294 = trunc nuw i8 %293 to i1
  br i1 %294, label %295, label %299

295:                                              ; preds = %288
  %296 = load ptr, ptr @stderr, align 8, !tbaa !9
  %297 = call i32 @fileno(ptr noundef %296) #12
  %298 = call i32 @isatty(i32 noundef %297) #12
  %.not557 = icmp eq i32 %298, 0
  br i1 %.not557, label %299, label %300

299:                                              ; preds = %295, %288
  br label %300

300:                                              ; preds = %295, %299
  %.str.5.sink990 = phi ptr [ @.str.5, %299 ], [ @.str.2, %295 ]
  store i32 %290, ptr %289, align 4, !tbaa !5
  %301 = load ptr, ptr @stderr, align 8, !tbaa !9
  %302 = load i32, ptr @test_count, align 4, !tbaa !5
  %303 = load i32, ptr %285, align 4, !tbaa !5
  %304 = call ptr @s2n_strerror(i32 noundef %303, ptr noundef nonnull @.str.4) #12
  %305 = load i32, ptr %285, align 4, !tbaa !5
  %306 = call ptr @s2n_strerror_debug(i32 noundef %305, ptr noundef nonnull @.str.4) #12
  %307 = load i32, ptr %289, align 4, !tbaa !5
  %308 = call ptr @strerror(i32 noundef %307) #12
  %309 = load i32, ptr %289, align 4, !tbaa !5
  %310 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %301, ptr noundef nonnull %.str.5.sink990, i32 noundef %302, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 98, ptr noundef %304, ptr noundef %306, ptr noundef %308, i32 noundef %309) #14
  call void @exit(i32 noundef 1) #15
  unreachable

311:                                              ; preds = %282
  %312 = add nsw i32 %283, 2
  store i32 %312, ptr @test_count, align 4, !tbaa !5
  %313 = call ptr @s2n_strerror_debug(i32 noundef 402653193, ptr noundef nonnull @.str.4) #12
  %314 = icmp eq ptr %313, null
  br i1 %314, label %315, label %338

315:                                              ; preds = %311
  %316 = tail call ptr @__errno_location() #13
  %317 = load i32, ptr %316, align 4, !tbaa !5
  %318 = load ptr, ptr @stderr, align 8, !tbaa !9
  %319 = call i32 @s2n_print_stacktrace(ptr noundef %318) #12
  %320 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %321 = trunc nuw i8 %320 to i1
  br i1 %321, label %322, label %326

322:                                              ; preds = %315
  %323 = load ptr, ptr @stderr, align 8, !tbaa !9
  %324 = call i32 @fileno(ptr noundef %323) #12
  %325 = call i32 @isatty(i32 noundef %324) #12
  %.not791 = icmp eq i32 %325, 0
  br i1 %.not791, label %326, label %327

326:                                              ; preds = %322, %315
  br label %327

327:                                              ; preds = %322, %326
  %.str.5.sink999 = phi ptr [ @.str.5, %326 ], [ @.str.2, %322 ]
  store i32 %317, ptr %316, align 4, !tbaa !5
  %328 = load ptr, ptr @stderr, align 8, !tbaa !9
  %329 = load i32, ptr @test_count, align 4, !tbaa !5
  %330 = load i32, ptr %285, align 4, !tbaa !5
  %331 = call ptr @s2n_strerror(i32 noundef %330, ptr noundef nonnull @.str.4) #12
  %332 = load i32, ptr %285, align 4, !tbaa !5
  %333 = call ptr @s2n_strerror_debug(i32 noundef %332, ptr noundef nonnull @.str.4) #12
  %334 = load i32, ptr %316, align 4, !tbaa !5
  %335 = call ptr @strerror(i32 noundef %334) #12
  %336 = load i32, ptr %316, align 4, !tbaa !5
  %337 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %328, ptr noundef nonnull %.str.5.sink999, i32 noundef %329, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 98, ptr noundef %331, ptr noundef %333, ptr noundef %335, i32 noundef %336) #14
  call void @exit(i32 noundef 1) #15
  unreachable

338:                                              ; preds = %311
  store i32 0, ptr %285, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  %339 = tail call ptr @__errno_location() #13
  store i32 0, ptr %339, align 4, !tbaa !5
  %340 = load i32, ptr @test_count, align 4, !tbaa !5
  %341 = add nsw i32 %340, 1
  store i32 %341, ptr @test_count, align 4, !tbaa !5
  %342 = call i32 @s2n_tls13_extract_secret(ptr noundef nonnull %7, i32 noundef 1) #12
  %343 = call zeroext i1 @s2n_result_is_error(i32 %342)
  br i1 %343, label %366, label %344

344:                                              ; preds = %338
  %345 = load i32, ptr %339, align 4, !tbaa !5
  %346 = load ptr, ptr @stderr, align 8, !tbaa !9
  %347 = call i32 @s2n_print_stacktrace(ptr noundef %346) #12
  %348 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %349 = trunc nuw i8 %348 to i1
  br i1 %349, label %350, label %354

350:                                              ; preds = %344
  %351 = load ptr, ptr @stderr, align 8, !tbaa !9
  %352 = call i32 @fileno(ptr noundef %351) #12
  %353 = call i32 @isatty(i32 noundef %352) #12
  %.not558 = icmp eq i32 %353, 0
  br i1 %.not558, label %354, label %355

354:                                              ; preds = %350, %344
  br label %355

355:                                              ; preds = %350, %354
  %.str.5.sink1008 = phi ptr [ @.str.5, %354 ], [ @.str.2, %350 ]
  store i32 %345, ptr %339, align 4, !tbaa !5
  %356 = load ptr, ptr @stderr, align 8, !tbaa !9
  %357 = load i32, ptr @test_count, align 4, !tbaa !5
  %358 = load i32, ptr %285, align 4, !tbaa !5
  %359 = call ptr @s2n_strerror(i32 noundef %358, ptr noundef nonnull @.str.4) #12
  %360 = load i32, ptr %285, align 4, !tbaa !5
  %361 = call ptr @s2n_strerror_debug(i32 noundef %360, ptr noundef nonnull @.str.4) #12
  %362 = load i32, ptr %339, align 4, !tbaa !5
  %363 = call ptr @strerror(i32 noundef %362) #12
  %364 = load i32, ptr %339, align 4, !tbaa !5
  %365 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %356, ptr noundef nonnull %.str.5.sink1008, i32 noundef %357, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 99, ptr noundef %359, ptr noundef %361, ptr noundef %363, i32 noundef %364) #14
  call void @exit(i32 noundef 1) #15
  unreachable

366:                                              ; preds = %338
  %367 = load i32, ptr @test_count, align 4, !tbaa !5
  %368 = add nsw i32 %367, 1
  store i32 %368, ptr @test_count, align 4, !tbaa !5
  %369 = load i32, ptr %285, align 4, !tbaa !5
  %370 = icmp eq i32 %369, 402653193
  br i1 %370, label %393, label %371

371:                                              ; preds = %366
  %372 = load i32, ptr %339, align 4, !tbaa !5
  %373 = load ptr, ptr @stderr, align 8, !tbaa !9
  %374 = call i32 @s2n_print_stacktrace(ptr noundef %373) #12
  %375 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %376 = trunc nuw i8 %375 to i1
  br i1 %376, label %377, label %381

377:                                              ; preds = %371
  %378 = load ptr, ptr @stderr, align 8, !tbaa !9
  %379 = call i32 @fileno(ptr noundef %378) #12
  %380 = call i32 @isatty(i32 noundef %379) #12
  %.not559 = icmp eq i32 %380, 0
  br i1 %.not559, label %381, label %382

381:                                              ; preds = %377, %371
  br label %382

382:                                              ; preds = %377, %381
  %.str.5.sink1017 = phi ptr [ @.str.5, %381 ], [ @.str.2, %377 ]
  store i32 %372, ptr %339, align 4, !tbaa !5
  %383 = load ptr, ptr @stderr, align 8, !tbaa !9
  %384 = load i32, ptr @test_count, align 4, !tbaa !5
  %385 = load i32, ptr %285, align 4, !tbaa !5
  %386 = call ptr @s2n_strerror(i32 noundef %385, ptr noundef nonnull @.str.4) #12
  %387 = load i32, ptr %285, align 4, !tbaa !5
  %388 = call ptr @s2n_strerror_debug(i32 noundef %387, ptr noundef nonnull @.str.4) #12
  %389 = load i32, ptr %339, align 4, !tbaa !5
  %390 = call ptr @strerror(i32 noundef %389) #12
  %391 = load i32, ptr %339, align 4, !tbaa !5
  %392 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %383, ptr noundef nonnull %.str.5.sink1017, i32 noundef %384, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 99, ptr noundef %386, ptr noundef %388, ptr noundef %390, i32 noundef %391) #14
  call void @exit(i32 noundef 1) #15
  unreachable

393:                                              ; preds = %366
  %394 = add nsw i32 %367, 2
  store i32 %394, ptr @test_count, align 4, !tbaa !5
  %395 = call ptr @s2n_strerror_debug(i32 noundef 402653193, ptr noundef nonnull @.str.4) #12
  %396 = icmp eq ptr %395, null
  br i1 %396, label %397, label %419

397:                                              ; preds = %393
  %398 = load i32, ptr %339, align 4, !tbaa !5
  %399 = load ptr, ptr @stderr, align 8, !tbaa !9
  %400 = call i32 @s2n_print_stacktrace(ptr noundef %399) #12
  %401 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %402 = trunc nuw i8 %401 to i1
  br i1 %402, label %403, label %407

403:                                              ; preds = %397
  %404 = load ptr, ptr @stderr, align 8, !tbaa !9
  %405 = call i32 @fileno(ptr noundef %404) #12
  %406 = call i32 @isatty(i32 noundef %405) #12
  %.not790 = icmp eq i32 %406, 0
  br i1 %.not790, label %407, label %408

407:                                              ; preds = %403, %397
  br label %408

408:                                              ; preds = %403, %407
  %.str.5.sink1026 = phi ptr [ @.str.5, %407 ], [ @.str.2, %403 ]
  store i32 %398, ptr %339, align 4, !tbaa !5
  %409 = load ptr, ptr @stderr, align 8, !tbaa !9
  %410 = load i32, ptr @test_count, align 4, !tbaa !5
  %411 = load i32, ptr %285, align 4, !tbaa !5
  %412 = call ptr @s2n_strerror(i32 noundef %411, ptr noundef nonnull @.str.4) #12
  %413 = load i32, ptr %285, align 4, !tbaa !5
  %414 = call ptr @s2n_strerror_debug(i32 noundef %413, ptr noundef nonnull @.str.4) #12
  %415 = load i32, ptr %339, align 4, !tbaa !5
  %416 = call ptr @strerror(i32 noundef %415) #12
  %417 = load i32, ptr %339, align 4, !tbaa !5
  %418 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %409, ptr noundef nonnull %.str.5.sink1026, i32 noundef %410, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 99, ptr noundef %412, ptr noundef %414, ptr noundef %416, i32 noundef %417) #14
  call void @exit(i32 noundef 1) #15
  unreachable

419:                                              ; preds = %393
  store i32 0, ptr %285, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %339, align 4, !tbaa !5
  %420 = load i32, ptr @test_count, align 4, !tbaa !5
  %421 = add nsw i32 %420, 1
  store i32 %421, ptr @test_count, align 4, !tbaa !5
  %422 = load ptr, ptr %8, align 8, !tbaa !9
  %423 = call i32 @s2n_tls13_extract_secret(ptr noundef %422, i32 noundef -1) #12
  %424 = call zeroext i1 @s2n_result_is_error(i32 %423)
  br i1 %424, label %447, label %425

425:                                              ; preds = %419
  %426 = load i32, ptr %339, align 4, !tbaa !5
  %427 = load ptr, ptr @stderr, align 8, !tbaa !9
  %428 = call i32 @s2n_print_stacktrace(ptr noundef %427) #12
  %429 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %430 = trunc nuw i8 %429 to i1
  br i1 %430, label %431, label %435

431:                                              ; preds = %425
  %432 = load ptr, ptr @stderr, align 8, !tbaa !9
  %433 = call i32 @fileno(ptr noundef %432) #12
  %434 = call i32 @isatty(i32 noundef %433) #12
  %.not560 = icmp eq i32 %434, 0
  br i1 %.not560, label %435, label %436

435:                                              ; preds = %431, %425
  br label %436

436:                                              ; preds = %431, %435
  %.str.5.sink1035 = phi ptr [ @.str.5, %435 ], [ @.str.2, %431 ]
  store i32 %426, ptr %339, align 4, !tbaa !5
  %437 = load ptr, ptr @stderr, align 8, !tbaa !9
  %438 = load i32, ptr @test_count, align 4, !tbaa !5
  %439 = load i32, ptr %285, align 4, !tbaa !5
  %440 = call ptr @s2n_strerror(i32 noundef %439, ptr noundef nonnull @.str.4) #12
  %441 = load i32, ptr %285, align 4, !tbaa !5
  %442 = call ptr @s2n_strerror_debug(i32 noundef %441, ptr noundef nonnull @.str.4) #12
  %443 = load i32, ptr %339, align 4, !tbaa !5
  %444 = call ptr @strerror(i32 noundef %443) #12
  %445 = load i32, ptr %339, align 4, !tbaa !5
  %446 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %437, ptr noundef nonnull %.str.5.sink1035, i32 noundef %438, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 100, ptr noundef %440, ptr noundef %442, ptr noundef %444, i32 noundef %445) #14
  call void @exit(i32 noundef 1) #15
  unreachable

447:                                              ; preds = %419
  %448 = load i32, ptr @test_count, align 4, !tbaa !5
  %449 = add nsw i32 %448, 1
  store i32 %449, ptr @test_count, align 4, !tbaa !5
  %450 = load i32, ptr %285, align 4, !tbaa !5
  %451 = icmp eq i32 %450, 402653194
  br i1 %451, label %474, label %452

452:                                              ; preds = %447
  %453 = load i32, ptr %339, align 4, !tbaa !5
  %454 = load ptr, ptr @stderr, align 8, !tbaa !9
  %455 = call i32 @s2n_print_stacktrace(ptr noundef %454) #12
  %456 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %457 = trunc nuw i8 %456 to i1
  br i1 %457, label %458, label %462

458:                                              ; preds = %452
  %459 = load ptr, ptr @stderr, align 8, !tbaa !9
  %460 = call i32 @fileno(ptr noundef %459) #12
  %461 = call i32 @isatty(i32 noundef %460) #12
  %.not561 = icmp eq i32 %461, 0
  br i1 %.not561, label %462, label %463

462:                                              ; preds = %458, %452
  br label %463

463:                                              ; preds = %458, %462
  %.str.5.sink1044 = phi ptr [ @.str.5, %462 ], [ @.str.2, %458 ]
  store i32 %453, ptr %339, align 4, !tbaa !5
  %464 = load ptr, ptr @stderr, align 8, !tbaa !9
  %465 = load i32, ptr @test_count, align 4, !tbaa !5
  %466 = load i32, ptr %285, align 4, !tbaa !5
  %467 = call ptr @s2n_strerror(i32 noundef %466, ptr noundef nonnull @.str.4) #12
  %468 = load i32, ptr %285, align 4, !tbaa !5
  %469 = call ptr @s2n_strerror_debug(i32 noundef %468, ptr noundef nonnull @.str.4) #12
  %470 = load i32, ptr %339, align 4, !tbaa !5
  %471 = call ptr @strerror(i32 noundef %470) #12
  %472 = load i32, ptr %339, align 4, !tbaa !5
  %473 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %464, ptr noundef nonnull %.str.5.sink1044, i32 noundef %465, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 100, ptr noundef %467, ptr noundef %469, ptr noundef %471, i32 noundef %472) #14
  call void @exit(i32 noundef 1) #15
  unreachable

474:                                              ; preds = %447
  %475 = add nsw i32 %448, 2
  store i32 %475, ptr @test_count, align 4, !tbaa !5
  %476 = call ptr @s2n_strerror_debug(i32 noundef 402653194, ptr noundef nonnull @.str.4) #12
  %477 = icmp eq ptr %476, null
  br i1 %477, label %478, label %500

478:                                              ; preds = %474
  %479 = load i32, ptr %339, align 4, !tbaa !5
  %480 = load ptr, ptr @stderr, align 8, !tbaa !9
  %481 = call i32 @s2n_print_stacktrace(ptr noundef %480) #12
  %482 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %483 = trunc nuw i8 %482 to i1
  br i1 %483, label %484, label %488

484:                                              ; preds = %478
  %485 = load ptr, ptr @stderr, align 8, !tbaa !9
  %486 = call i32 @fileno(ptr noundef %485) #12
  %487 = call i32 @isatty(i32 noundef %486) #12
  %.not789 = icmp eq i32 %487, 0
  br i1 %.not789, label %488, label %489

488:                                              ; preds = %484, %478
  br label %489

489:                                              ; preds = %484, %488
  %.str.5.sink1053 = phi ptr [ @.str.5, %488 ], [ @.str.2, %484 ]
  store i32 %479, ptr %339, align 4, !tbaa !5
  %490 = load ptr, ptr @stderr, align 8, !tbaa !9
  %491 = load i32, ptr @test_count, align 4, !tbaa !5
  %492 = load i32, ptr %285, align 4, !tbaa !5
  %493 = call ptr @s2n_strerror(i32 noundef %492, ptr noundef nonnull @.str.4) #12
  %494 = load i32, ptr %285, align 4, !tbaa !5
  %495 = call ptr @s2n_strerror_debug(i32 noundef %494, ptr noundef nonnull @.str.4) #12
  %496 = load i32, ptr %339, align 4, !tbaa !5
  %497 = call ptr @strerror(i32 noundef %496) #12
  %498 = load i32, ptr %339, align 4, !tbaa !5
  %499 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %490, ptr noundef nonnull %.str.5.sink1053, i32 noundef %491, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 100, ptr noundef %493, ptr noundef %495, ptr noundef %497, i32 noundef %498) #14
  call void @exit(i32 noundef 1) #15
  unreachable

500:                                              ; preds = %474
  store i32 0, ptr %285, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %339, align 4, !tbaa !5
  %501 = load i32, ptr @test_count, align 4, !tbaa !5
  %502 = add nsw i32 %501, 1
  store i32 %502, ptr @test_count, align 4, !tbaa !5
  %503 = load ptr, ptr %8, align 8, !tbaa !9
  %504 = call i32 @s2n_tls13_extract_secret(ptr noundef %503, i32 noundef 255) #12
  %505 = call zeroext i1 @s2n_result_is_error(i32 %504)
  br i1 %505, label %528, label %506

506:                                              ; preds = %500
  %507 = load i32, ptr %339, align 4, !tbaa !5
  %508 = load ptr, ptr @stderr, align 8, !tbaa !9
  %509 = call i32 @s2n_print_stacktrace(ptr noundef %508) #12
  %510 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %511 = trunc nuw i8 %510 to i1
  br i1 %511, label %512, label %516

512:                                              ; preds = %506
  %513 = load ptr, ptr @stderr, align 8, !tbaa !9
  %514 = call i32 @fileno(ptr noundef %513) #12
  %515 = call i32 @isatty(i32 noundef %514) #12
  %.not562 = icmp eq i32 %515, 0
  br i1 %.not562, label %516, label %517

516:                                              ; preds = %512, %506
  br label %517

517:                                              ; preds = %512, %516
  %.str.5.sink1062 = phi ptr [ @.str.5, %516 ], [ @.str.2, %512 ]
  store i32 %507, ptr %339, align 4, !tbaa !5
  %518 = load ptr, ptr @stderr, align 8, !tbaa !9
  %519 = load i32, ptr @test_count, align 4, !tbaa !5
  %520 = load i32, ptr %285, align 4, !tbaa !5
  %521 = call ptr @s2n_strerror(i32 noundef %520, ptr noundef nonnull @.str.4) #12
  %522 = load i32, ptr %285, align 4, !tbaa !5
  %523 = call ptr @s2n_strerror_debug(i32 noundef %522, ptr noundef nonnull @.str.4) #12
  %524 = load i32, ptr %339, align 4, !tbaa !5
  %525 = call ptr @strerror(i32 noundef %524) #12
  %526 = load i32, ptr %339, align 4, !tbaa !5
  %527 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %518, ptr noundef nonnull %.str.5.sink1062, i32 noundef %519, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 101, ptr noundef %521, ptr noundef %523, ptr noundef %525, i32 noundef %526) #14
  call void @exit(i32 noundef 1) #15
  unreachable

528:                                              ; preds = %500
  %529 = load i32, ptr @test_count, align 4, !tbaa !5
  %530 = add nsw i32 %529, 1
  store i32 %530, ptr @test_count, align 4, !tbaa !5
  %531 = load i32, ptr %285, align 4, !tbaa !5
  %532 = icmp eq i32 %531, 402653194
  br i1 %532, label %555, label %533

533:                                              ; preds = %528
  %534 = load i32, ptr %339, align 4, !tbaa !5
  %535 = load ptr, ptr @stderr, align 8, !tbaa !9
  %536 = call i32 @s2n_print_stacktrace(ptr noundef %535) #12
  %537 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %538 = trunc nuw i8 %537 to i1
  br i1 %538, label %539, label %543

539:                                              ; preds = %533
  %540 = load ptr, ptr @stderr, align 8, !tbaa !9
  %541 = call i32 @fileno(ptr noundef %540) #12
  %542 = call i32 @isatty(i32 noundef %541) #12
  %.not563 = icmp eq i32 %542, 0
  br i1 %.not563, label %543, label %544

543:                                              ; preds = %539, %533
  br label %544

544:                                              ; preds = %539, %543
  %.str.5.sink1071 = phi ptr [ @.str.5, %543 ], [ @.str.2, %539 ]
  store i32 %534, ptr %339, align 4, !tbaa !5
  %545 = load ptr, ptr @stderr, align 8, !tbaa !9
  %546 = load i32, ptr @test_count, align 4, !tbaa !5
  %547 = load i32, ptr %285, align 4, !tbaa !5
  %548 = call ptr @s2n_strerror(i32 noundef %547, ptr noundef nonnull @.str.4) #12
  %549 = load i32, ptr %285, align 4, !tbaa !5
  %550 = call ptr @s2n_strerror_debug(i32 noundef %549, ptr noundef nonnull @.str.4) #12
  %551 = load i32, ptr %339, align 4, !tbaa !5
  %552 = call ptr @strerror(i32 noundef %551) #12
  %553 = load i32, ptr %339, align 4, !tbaa !5
  %554 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %545, ptr noundef nonnull %.str.5.sink1071, i32 noundef %546, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 101, ptr noundef %548, ptr noundef %550, ptr noundef %552, i32 noundef %553) #14
  call void @exit(i32 noundef 1) #15
  unreachable

555:                                              ; preds = %528
  %556 = add nsw i32 %529, 2
  store i32 %556, ptr @test_count, align 4, !tbaa !5
  %557 = call ptr @s2n_strerror_debug(i32 noundef 402653194, ptr noundef nonnull @.str.4) #12
  %558 = icmp eq ptr %557, null
  br i1 %558, label %559, label %581

559:                                              ; preds = %555
  %560 = load i32, ptr %339, align 4, !tbaa !5
  %561 = load ptr, ptr @stderr, align 8, !tbaa !9
  %562 = call i32 @s2n_print_stacktrace(ptr noundef %561) #12
  %563 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %564 = trunc nuw i8 %563 to i1
  br i1 %564, label %565, label %569

565:                                              ; preds = %559
  %566 = load ptr, ptr @stderr, align 8, !tbaa !9
  %567 = call i32 @fileno(ptr noundef %566) #12
  %568 = call i32 @isatty(i32 noundef %567) #12
  %.not788 = icmp eq i32 %568, 0
  br i1 %.not788, label %569, label %570

569:                                              ; preds = %565, %559
  br label %570

570:                                              ; preds = %565, %569
  %.str.5.sink1080 = phi ptr [ @.str.5, %569 ], [ @.str.2, %565 ]
  store i32 %560, ptr %339, align 4, !tbaa !5
  %571 = load ptr, ptr @stderr, align 8, !tbaa !9
  %572 = load i32, ptr @test_count, align 4, !tbaa !5
  %573 = load i32, ptr %285, align 4, !tbaa !5
  %574 = call ptr @s2n_strerror(i32 noundef %573, ptr noundef nonnull @.str.4) #12
  %575 = load i32, ptr %285, align 4, !tbaa !5
  %576 = call ptr @s2n_strerror_debug(i32 noundef %575, ptr noundef nonnull @.str.4) #12
  %577 = load i32, ptr %339, align 4, !tbaa !5
  %578 = call ptr @strerror(i32 noundef %577) #12
  %579 = load i32, ptr %339, align 4, !tbaa !5
  %580 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %571, ptr noundef nonnull %.str.5.sink1080, i32 noundef %572, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 101, ptr noundef %574, ptr noundef %576, ptr noundef %578, i32 noundef %579) #14
  call void @exit(i32 noundef 1) #15
  unreachable

581:                                              ; preds = %555
  store i32 0, ptr %285, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %339, align 4, !tbaa !5
  %582 = load i32, ptr @test_count, align 4, !tbaa !5
  %583 = add nsw i32 %582, 1
  store i32 %583, ptr @test_count, align 4, !tbaa !5
  %584 = load ptr, ptr %8, align 8, !tbaa !9
  %585 = call i32 @s2n_tls13_extract_secret(ptr noundef %584, i32 noundef 4) #12
  %586 = call zeroext i1 @s2n_result_is_error(i32 %585)
  br i1 %586, label %609, label %587

587:                                              ; preds = %581
  %588 = load i32, ptr %339, align 4, !tbaa !5
  %589 = load ptr, ptr @stderr, align 8, !tbaa !9
  %590 = call i32 @s2n_print_stacktrace(ptr noundef %589) #12
  %591 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %592 = trunc nuw i8 %591 to i1
  br i1 %592, label %593, label %597

593:                                              ; preds = %587
  %594 = load ptr, ptr @stderr, align 8, !tbaa !9
  %595 = call i32 @fileno(ptr noundef %594) #12
  %596 = call i32 @isatty(i32 noundef %595) #12
  %.not564 = icmp eq i32 %596, 0
  br i1 %.not564, label %597, label %598

597:                                              ; preds = %593, %587
  br label %598

598:                                              ; preds = %593, %597
  %.str.5.sink1089 = phi ptr [ @.str.5, %597 ], [ @.str.2, %593 ]
  store i32 %588, ptr %339, align 4, !tbaa !5
  %599 = load ptr, ptr @stderr, align 8, !tbaa !9
  %600 = load i32, ptr @test_count, align 4, !tbaa !5
  %601 = load i32, ptr %285, align 4, !tbaa !5
  %602 = call ptr @s2n_strerror(i32 noundef %601, ptr noundef nonnull @.str.4) #12
  %603 = load i32, ptr %285, align 4, !tbaa !5
  %604 = call ptr @s2n_strerror_debug(i32 noundef %603, ptr noundef nonnull @.str.4) #12
  %605 = load i32, ptr %339, align 4, !tbaa !5
  %606 = call ptr @strerror(i32 noundef %605) #12
  %607 = load i32, ptr %339, align 4, !tbaa !5
  %608 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %599, ptr noundef nonnull %.str.5.sink1089, i32 noundef %600, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 102, ptr noundef %602, ptr noundef %604, ptr noundef %606, i32 noundef %607) #14
  call void @exit(i32 noundef 1) #15
  unreachable

609:                                              ; preds = %581
  %610 = load i32, ptr @test_count, align 4, !tbaa !5
  %611 = add nsw i32 %610, 1
  store i32 %611, ptr @test_count, align 4, !tbaa !5
  %612 = load i32, ptr %285, align 4, !tbaa !5
  %613 = icmp eq i32 %612, 402653194
  br i1 %613, label %636, label %614

614:                                              ; preds = %609
  %615 = load i32, ptr %339, align 4, !tbaa !5
  %616 = load ptr, ptr @stderr, align 8, !tbaa !9
  %617 = call i32 @s2n_print_stacktrace(ptr noundef %616) #12
  %618 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %619 = trunc nuw i8 %618 to i1
  br i1 %619, label %620, label %624

620:                                              ; preds = %614
  %621 = load ptr, ptr @stderr, align 8, !tbaa !9
  %622 = call i32 @fileno(ptr noundef %621) #12
  %623 = call i32 @isatty(i32 noundef %622) #12
  %.not565 = icmp eq i32 %623, 0
  br i1 %.not565, label %624, label %625

624:                                              ; preds = %620, %614
  br label %625

625:                                              ; preds = %620, %624
  %.str.5.sink1098 = phi ptr [ @.str.5, %624 ], [ @.str.2, %620 ]
  store i32 %615, ptr %339, align 4, !tbaa !5
  %626 = load ptr, ptr @stderr, align 8, !tbaa !9
  %627 = load i32, ptr @test_count, align 4, !tbaa !5
  %628 = load i32, ptr %285, align 4, !tbaa !5
  %629 = call ptr @s2n_strerror(i32 noundef %628, ptr noundef nonnull @.str.4) #12
  %630 = load i32, ptr %285, align 4, !tbaa !5
  %631 = call ptr @s2n_strerror_debug(i32 noundef %630, ptr noundef nonnull @.str.4) #12
  %632 = load i32, ptr %339, align 4, !tbaa !5
  %633 = call ptr @strerror(i32 noundef %632) #12
  %634 = load i32, ptr %339, align 4, !tbaa !5
  %635 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %626, ptr noundef nonnull %.str.5.sink1098, i32 noundef %627, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 102, ptr noundef %629, ptr noundef %631, ptr noundef %633, i32 noundef %634) #14
  call void @exit(i32 noundef 1) #15
  unreachable

636:                                              ; preds = %609
  %637 = add nsw i32 %610, 2
  store i32 %637, ptr @test_count, align 4, !tbaa !5
  %638 = call ptr @s2n_strerror_debug(i32 noundef 402653194, ptr noundef nonnull @.str.4) #12
  %639 = icmp eq ptr %638, null
  br i1 %639, label %640, label %662

640:                                              ; preds = %636
  %641 = load i32, ptr %339, align 4, !tbaa !5
  %642 = load ptr, ptr @stderr, align 8, !tbaa !9
  %643 = call i32 @s2n_print_stacktrace(ptr noundef %642) #12
  %644 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %645 = trunc nuw i8 %644 to i1
  br i1 %645, label %646, label %650

646:                                              ; preds = %640
  %647 = load ptr, ptr @stderr, align 8, !tbaa !9
  %648 = call i32 @fileno(ptr noundef %647) #12
  %649 = call i32 @isatty(i32 noundef %648) #12
  %.not787 = icmp eq i32 %649, 0
  br i1 %.not787, label %650, label %651

650:                                              ; preds = %646, %640
  br label %651

651:                                              ; preds = %646, %650
  %.str.5.sink1107 = phi ptr [ @.str.5, %650 ], [ @.str.2, %646 ]
  store i32 %641, ptr %339, align 4, !tbaa !5
  %652 = load ptr, ptr @stderr, align 8, !tbaa !9
  %653 = load i32, ptr @test_count, align 4, !tbaa !5
  %654 = load i32, ptr %285, align 4, !tbaa !5
  %655 = call ptr @s2n_strerror(i32 noundef %654, ptr noundef nonnull @.str.4) #12
  %656 = load i32, ptr %285, align 4, !tbaa !5
  %657 = call ptr @s2n_strerror_debug(i32 noundef %656, ptr noundef nonnull @.str.4) #12
  %658 = load i32, ptr %339, align 4, !tbaa !5
  %659 = call ptr @strerror(i32 noundef %658) #12
  %660 = load i32, ptr %339, align 4, !tbaa !5
  %661 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %652, ptr noundef nonnull %.str.5.sink1107, i32 noundef %653, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 102, ptr noundef %655, ptr noundef %657, ptr noundef %659, i32 noundef %660) #14
  call void @exit(i32 noundef 1) #15
  unreachable

662:                                              ; preds = %636
  store i32 0, ptr %285, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %339, align 4, !tbaa !5
  %663 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %8) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #12
  call void @llvm.lifetime.end.p0(i64 4184, ptr nonnull %7) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #12
  %664 = call ptr @s2n_connection_new(i32 noundef 0) #12
  store ptr %664, ptr %9, align 8, !tbaa !9
  %665 = getelementptr inbounds i8, ptr %664, i64 232
  %666 = load ptr, ptr %665, align 8, !tbaa !22
  store ptr @s2n_tls13_aes_256_gcm_sha384, ptr %666, align 8, !tbaa !48
  %667 = load ptr, ptr %9, align 8, !tbaa !9
  %668 = getelementptr inbounds i8, ptr %667, i64 628
  store i32 1, ptr %668, align 4, !tbaa !53
  %669 = load i32, ptr @test_count, align 4, !tbaa !5
  %670 = add nsw i32 %669, 1
  store i32 %670, ptr @test_count, align 4, !tbaa !5
  %671 = call i32 @s2n_tls13_extract_secret(ptr noundef %667, i32 noundef 1) #12
  %672 = call zeroext i1 @s2n_result_is_ok(i32 %671)
  br i1 %672, label %695, label %673

673:                                              ; preds = %662
  %674 = load i32, ptr %339, align 4, !tbaa !5
  %675 = load ptr, ptr @stderr, align 8, !tbaa !9
  %676 = call i32 @s2n_print_stacktrace(ptr noundef %675) #12
  %677 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %678 = trunc nuw i8 %677 to i1
  br i1 %678, label %679, label %683

679:                                              ; preds = %673
  %680 = load ptr, ptr @stderr, align 8, !tbaa !9
  %681 = call i32 @fileno(ptr noundef %680) #12
  %682 = call i32 @isatty(i32 noundef %681) #12
  %.not566 = icmp eq i32 %682, 0
  br i1 %.not566, label %683, label %684

683:                                              ; preds = %679, %673
  br label %684

684:                                              ; preds = %679, %683
  %.str.5.sink1116 = phi ptr [ @.str.5, %683 ], [ @.str.2, %679 ]
  store i32 %674, ptr %339, align 4, !tbaa !5
  %685 = load ptr, ptr @stderr, align 8, !tbaa !9
  %686 = load i32, ptr @test_count, align 4, !tbaa !5
  %687 = load i32, ptr %285, align 4, !tbaa !5
  %688 = call ptr @s2n_strerror(i32 noundef %687, ptr noundef nonnull @.str.4) #12
  %689 = load i32, ptr %285, align 4, !tbaa !5
  %690 = call ptr @s2n_strerror_debug(i32 noundef %689, ptr noundef nonnull @.str.4) #12
  %691 = load i32, ptr %339, align 4, !tbaa !5
  %692 = call ptr @strerror(i32 noundef %691) #12
  %693 = load i32, ptr %339, align 4, !tbaa !5
  %694 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %685, ptr noundef nonnull %.str.5.sink1116, i32 noundef %686, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 112, ptr noundef %688, ptr noundef %690, ptr noundef %692, i32 noundef %693) #14
  call void @exit(i32 noundef 1) #15
  unreachable

695:                                              ; preds = %662
  %696 = load i32, ptr @test_count, align 4, !tbaa !5
  %697 = add nsw i32 %696, 1
  store i32 %697, ptr @test_count, align 4, !tbaa !5
  %698 = load ptr, ptr %9, align 8, !tbaa !9
  %699 = getelementptr inbounds i8, ptr %698, i64 628
  %700 = load i32, ptr %699, align 4, !tbaa !53
  %701 = icmp eq i32 %700, 1
  br i1 %701, label %724, label %702

702:                                              ; preds = %695
  %703 = load i32, ptr %339, align 4, !tbaa !5
  %704 = load ptr, ptr @stderr, align 8, !tbaa !9
  %705 = call i32 @s2n_print_stacktrace(ptr noundef %704) #12
  %706 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %707 = trunc nuw i8 %706 to i1
  br i1 %707, label %708, label %712

708:                                              ; preds = %702
  %709 = load ptr, ptr @stderr, align 8, !tbaa !9
  %710 = call i32 @fileno(ptr noundef %709) #12
  %711 = call i32 @isatty(i32 noundef %710) #12
  %.not567 = icmp eq i32 %711, 0
  br i1 %.not567, label %712, label %713

712:                                              ; preds = %708, %702
  br label %713

713:                                              ; preds = %708, %712
  %.str.5.sink1125 = phi ptr [ @.str.5, %712 ], [ @.str.2, %708 ]
  store i32 %703, ptr %339, align 4, !tbaa !5
  %714 = load ptr, ptr @stderr, align 8, !tbaa !9
  %715 = load i32, ptr @test_count, align 4, !tbaa !5
  %716 = load i32, ptr %285, align 4, !tbaa !5
  %717 = call ptr @s2n_strerror(i32 noundef %716, ptr noundef nonnull @.str.4) #12
  %718 = load i32, ptr %285, align 4, !tbaa !5
  %719 = call ptr @s2n_strerror_debug(i32 noundef %718, ptr noundef nonnull @.str.4) #12
  %720 = load i32, ptr %339, align 4, !tbaa !5
  %721 = call ptr @strerror(i32 noundef %720) #12
  %722 = load i32, ptr %339, align 4, !tbaa !5
  %723 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %714, ptr noundef nonnull %.str.5.sink1125, i32 noundef %715, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 113, ptr noundef %717, ptr noundef %719, ptr noundef %721, i32 noundef %722) #14
  call void @exit(i32 noundef 1) #15
  unreachable

724:                                              ; preds = %695
  %725 = add nsw i32 %696, 2
  store i32 %725, ptr @test_count, align 4, !tbaa !5
  %726 = getelementptr inbounds i8, ptr %698, i64 240
  %bcmp = call i32 @bcmp(ptr noundef nonnull dereferenceable(48) %726, ptr noundef nonnull dereferenceable(48) %3, i64 48)
  %727 = icmp eq i32 %bcmp, 0
  br i1 %727, label %750, label %728

728:                                              ; preds = %724
  %729 = load i32, ptr %339, align 4, !tbaa !5
  %730 = load ptr, ptr @stderr, align 8, !tbaa !9
  %731 = call i32 @s2n_print_stacktrace(ptr noundef %730) #12
  %732 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %733 = trunc nuw i8 %732 to i1
  br i1 %733, label %734, label %738

734:                                              ; preds = %728
  %735 = load ptr, ptr @stderr, align 8, !tbaa !9
  %736 = call i32 @fileno(ptr noundef %735) #12
  %737 = call i32 @isatty(i32 noundef %736) #12
  %.not568 = icmp eq i32 %737, 0
  br i1 %.not568, label %738, label %739

738:                                              ; preds = %734, %728
  br label %739

739:                                              ; preds = %734, %738
  %.str.5.sink1134 = phi ptr [ @.str.5, %738 ], [ @.str.2, %734 ]
  store i32 %729, ptr %339, align 4, !tbaa !5
  %740 = load ptr, ptr @stderr, align 8, !tbaa !9
  %741 = load i32, ptr @test_count, align 4, !tbaa !5
  %742 = load i32, ptr %285, align 4, !tbaa !5
  %743 = call ptr @s2n_strerror(i32 noundef %742, ptr noundef nonnull @.str.4) #12
  %744 = load i32, ptr %285, align 4, !tbaa !5
  %745 = call ptr @s2n_strerror_debug(i32 noundef %744, ptr noundef nonnull @.str.4) #12
  %746 = load i32, ptr %339, align 4, !tbaa !5
  %747 = call ptr @strerror(i32 noundef %746) #12
  %748 = load i32, ptr %339, align 4, !tbaa !5
  %749 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %740, ptr noundef nonnull %.str.5.sink1134, i32 noundef %741, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 114, ptr noundef %743, ptr noundef %745, ptr noundef %747, i32 noundef %748) #14
  call void @exit(i32 noundef 1) #15
  unreachable

750:                                              ; preds = %724
  %751 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %9) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #12
  %752 = call ptr @s2n_connection_new(i32 noundef 0) #12
  store ptr %752, ptr %10, align 8, !tbaa !9
  %753 = getelementptr inbounds i8, ptr %752, i64 232
  %754 = load ptr, ptr %753, align 8, !tbaa !22
  store ptr @s2n_tls13_aes_128_gcm_sha256, ptr %754, align 8, !tbaa !48
  %755 = load ptr, ptr %10, align 8, !tbaa !9
  %756 = getelementptr inbounds i8, ptr %755, i64 628
  store i32 0, ptr %756, align 4, !tbaa !53
  %757 = load i32, ptr @test_count, align 4, !tbaa !5
  %758 = add nsw i32 %757, 1
  store i32 %758, ptr @test_count, align 4, !tbaa !5
  %759 = call i32 @s2n_tls13_extract_secret(ptr noundef %755, i32 noundef 1) #12
  %760 = call zeroext i1 @s2n_result_is_ok(i32 %759)
  br i1 %760, label %783, label %761

761:                                              ; preds = %750
  %762 = load i32, ptr %339, align 4, !tbaa !5
  %763 = load ptr, ptr @stderr, align 8, !tbaa !9
  %764 = call i32 @s2n_print_stacktrace(ptr noundef %763) #12
  %765 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %766 = trunc nuw i8 %765 to i1
  br i1 %766, label %767, label %771

767:                                              ; preds = %761
  %768 = load ptr, ptr @stderr, align 8, !tbaa !9
  %769 = call i32 @fileno(ptr noundef %768) #12
  %770 = call i32 @isatty(i32 noundef %769) #12
  %.not569 = icmp eq i32 %770, 0
  br i1 %.not569, label %771, label %772

771:                                              ; preds = %767, %761
  br label %772

772:                                              ; preds = %767, %771
  %.str.5.sink1143 = phi ptr [ @.str.5, %771 ], [ @.str.2, %767 ]
  store i32 %762, ptr %339, align 4, !tbaa !5
  %773 = load ptr, ptr @stderr, align 8, !tbaa !9
  %774 = load i32, ptr @test_count, align 4, !tbaa !5
  %775 = load i32, ptr %285, align 4, !tbaa !5
  %776 = call ptr @s2n_strerror(i32 noundef %775, ptr noundef nonnull @.str.4) #12
  %777 = load i32, ptr %285, align 4, !tbaa !5
  %778 = call ptr @s2n_strerror_debug(i32 noundef %777, ptr noundef nonnull @.str.4) #12
  %779 = load i32, ptr %339, align 4, !tbaa !5
  %780 = call ptr @strerror(i32 noundef %779) #12
  %781 = load i32, ptr %339, align 4, !tbaa !5
  %782 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %773, ptr noundef nonnull %.str.5.sink1143, i32 noundef %774, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 124, ptr noundef %776, ptr noundef %778, ptr noundef %780, i32 noundef %781) #14
  call void @exit(i32 noundef 1) #15
  unreachable

783:                                              ; preds = %750
  %784 = load i32, ptr @test_count, align 4, !tbaa !5
  %785 = add nsw i32 %784, 1
  store i32 %785, ptr @test_count, align 4, !tbaa !5
  %786 = load ptr, ptr %10, align 8, !tbaa !9
  %787 = getelementptr inbounds i8, ptr %786, i64 628
  %788 = load i32, ptr %787, align 4, !tbaa !53
  %789 = icmp eq i32 %788, 1
  br i1 %789, label %812, label %790

790:                                              ; preds = %783
  %791 = load i32, ptr %339, align 4, !tbaa !5
  %792 = load ptr, ptr @stderr, align 8, !tbaa !9
  %793 = call i32 @s2n_print_stacktrace(ptr noundef %792) #12
  %794 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %795 = trunc nuw i8 %794 to i1
  br i1 %795, label %796, label %800

796:                                              ; preds = %790
  %797 = load ptr, ptr @stderr, align 8, !tbaa !9
  %798 = call i32 @fileno(ptr noundef %797) #12
  %799 = call i32 @isatty(i32 noundef %798) #12
  %.not570 = icmp eq i32 %799, 0
  br i1 %.not570, label %800, label %801

800:                                              ; preds = %796, %790
  br label %801

801:                                              ; preds = %796, %800
  %.str.5.sink1152 = phi ptr [ @.str.5, %800 ], [ @.str.2, %796 ]
  store i32 %791, ptr %339, align 4, !tbaa !5
  %802 = load ptr, ptr @stderr, align 8, !tbaa !9
  %803 = load i32, ptr @test_count, align 4, !tbaa !5
  %804 = load i32, ptr %285, align 4, !tbaa !5
  %805 = call ptr @s2n_strerror(i32 noundef %804, ptr noundef nonnull @.str.4) #12
  %806 = load i32, ptr %285, align 4, !tbaa !5
  %807 = call ptr @s2n_strerror_debug(i32 noundef %806, ptr noundef nonnull @.str.4) #12
  %808 = load i32, ptr %339, align 4, !tbaa !5
  %809 = call ptr @strerror(i32 noundef %808) #12
  %810 = load i32, ptr %339, align 4, !tbaa !5
  %811 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %802, ptr noundef nonnull %.str.5.sink1152, i32 noundef %803, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 125, ptr noundef %805, ptr noundef %807, ptr noundef %809, i32 noundef %810) #14
  call void @exit(i32 noundef 1) #15
  unreachable

812:                                              ; preds = %783
  %813 = add nsw i32 %784, 2
  store i32 %813, ptr @test_count, align 4, !tbaa !5
  %814 = getelementptr inbounds i8, ptr %786, i64 240
  %bcmp571 = call i32 @bcmp(ptr noundef nonnull dereferenceable(48) %814, ptr noundef nonnull dereferenceable(48) %3, i64 48)
  %815 = icmp eq i32 %bcmp571, 0
  br i1 %815, label %816, label %838

816:                                              ; preds = %812
  %817 = load i32, ptr %339, align 4, !tbaa !5
  %818 = load ptr, ptr @stderr, align 8, !tbaa !9
  %819 = call i32 @s2n_print_stacktrace(ptr noundef %818) #12
  %820 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %821 = trunc nuw i8 %820 to i1
  br i1 %821, label %822, label %826

822:                                              ; preds = %816
  %823 = load ptr, ptr @stderr, align 8, !tbaa !9
  %824 = call i32 @fileno(ptr noundef %823) #12
  %825 = call i32 @isatty(i32 noundef %824) #12
  %.not786 = icmp eq i32 %825, 0
  br i1 %.not786, label %826, label %827

826:                                              ; preds = %822, %816
  br label %827

827:                                              ; preds = %822, %826
  %.str.5.sink1161 = phi ptr [ @.str.5, %826 ], [ @.str.2, %822 ]
  store i32 %817, ptr %339, align 4, !tbaa !5
  %828 = load ptr, ptr @stderr, align 8, !tbaa !9
  %829 = load i32, ptr @test_count, align 4, !tbaa !5
  %830 = load i32, ptr %285, align 4, !tbaa !5
  %831 = call ptr @s2n_strerror(i32 noundef %830, ptr noundef nonnull @.str.4) #12
  %832 = load i32, ptr %285, align 4, !tbaa !5
  %833 = call ptr @s2n_strerror_debug(i32 noundef %832, ptr noundef nonnull @.str.4) #12
  %834 = load i32, ptr %339, align 4, !tbaa !5
  %835 = call ptr @strerror(i32 noundef %834) #12
  %836 = load i32, ptr %339, align 4, !tbaa !5
  %837 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %828, ptr noundef nonnull %.str.5.sink1161, i32 noundef %829, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 126, ptr noundef %831, ptr noundef %833, ptr noundef %835, i32 noundef %836) #14
  call void @exit(i32 noundef 1) #15
  unreachable

838:                                              ; preds = %812
  %839 = add nsw i32 %784, 3
  store i32 %839, ptr @test_count, align 4, !tbaa !5
  %840 = call i32 @s2n_set_test_key_shares(ptr noundef nonnull %786, ptr noundef nonnull @s2n_ecc_curve_secp256r1)
  %841 = call zeroext i1 @s2n_result_is_ok(i32 %840)
  br i1 %841, label %864, label %842

842:                                              ; preds = %838
  %843 = load i32, ptr %339, align 4, !tbaa !5
  %844 = load ptr, ptr @stderr, align 8, !tbaa !9
  %845 = call i32 @s2n_print_stacktrace(ptr noundef %844) #12
  %846 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %847 = trunc nuw i8 %846 to i1
  br i1 %847, label %848, label %852

848:                                              ; preds = %842
  %849 = load ptr, ptr @stderr, align 8, !tbaa !9
  %850 = call i32 @fileno(ptr noundef %849) #12
  %851 = call i32 @isatty(i32 noundef %850) #12
  %.not572 = icmp eq i32 %851, 0
  br i1 %.not572, label %852, label %853

852:                                              ; preds = %848, %842
  br label %853

853:                                              ; preds = %848, %852
  %.str.5.sink1170 = phi ptr [ @.str.5, %852 ], [ @.str.2, %848 ]
  store i32 %843, ptr %339, align 4, !tbaa !5
  %854 = load ptr, ptr @stderr, align 8, !tbaa !9
  %855 = load i32, ptr @test_count, align 4, !tbaa !5
  %856 = load i32, ptr %285, align 4, !tbaa !5
  %857 = call ptr @s2n_strerror(i32 noundef %856, ptr noundef nonnull @.str.4) #12
  %858 = load i32, ptr %285, align 4, !tbaa !5
  %859 = call ptr @s2n_strerror_debug(i32 noundef %858, ptr noundef nonnull @.str.4) #12
  %860 = load i32, ptr %339, align 4, !tbaa !5
  %861 = call ptr @strerror(i32 noundef %860) #12
  %862 = load i32, ptr %339, align 4, !tbaa !5
  %863 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %854, ptr noundef nonnull %.str.5.sink1170, i32 noundef %855, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 128, ptr noundef %857, ptr noundef %859, ptr noundef %861, i32 noundef %862) #14
  call void @exit(i32 noundef 1) #15
  unreachable

864:                                              ; preds = %838
  %865 = load i32, ptr @test_count, align 4, !tbaa !5
  %866 = add nsw i32 %865, 1
  store i32 %866, ptr @test_count, align 4, !tbaa !5
  %867 = load ptr, ptr %10, align 8, !tbaa !9
  %868 = call i32 @s2n_tls13_extract_secret(ptr noundef %867, i32 noundef 2) #12
  %869 = call zeroext i1 @s2n_result_is_ok(i32 %868)
  br i1 %869, label %892, label %870

870:                                              ; preds = %864
  %871 = load i32, ptr %339, align 4, !tbaa !5
  %872 = load ptr, ptr @stderr, align 8, !tbaa !9
  %873 = call i32 @s2n_print_stacktrace(ptr noundef %872) #12
  %874 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %875 = trunc nuw i8 %874 to i1
  br i1 %875, label %876, label %880

876:                                              ; preds = %870
  %877 = load ptr, ptr @stderr, align 8, !tbaa !9
  %878 = call i32 @fileno(ptr noundef %877) #12
  %879 = call i32 @isatty(i32 noundef %878) #12
  %.not573 = icmp eq i32 %879, 0
  br i1 %.not573, label %880, label %881

880:                                              ; preds = %876, %870
  br label %881

881:                                              ; preds = %876, %880
  %.str.5.sink1179 = phi ptr [ @.str.5, %880 ], [ @.str.2, %876 ]
  store i32 %871, ptr %339, align 4, !tbaa !5
  %882 = load ptr, ptr @stderr, align 8, !tbaa !9
  %883 = load i32, ptr @test_count, align 4, !tbaa !5
  %884 = load i32, ptr %285, align 4, !tbaa !5
  %885 = call ptr @s2n_strerror(i32 noundef %884, ptr noundef nonnull @.str.4) #12
  %886 = load i32, ptr %285, align 4, !tbaa !5
  %887 = call ptr @s2n_strerror_debug(i32 noundef %886, ptr noundef nonnull @.str.4) #12
  %888 = load i32, ptr %339, align 4, !tbaa !5
  %889 = call ptr @strerror(i32 noundef %888) #12
  %890 = load i32, ptr %339, align 4, !tbaa !5
  %891 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %882, ptr noundef nonnull %.str.5.sink1179, i32 noundef %883, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 129, ptr noundef %885, ptr noundef %887, ptr noundef %889, i32 noundef %890) #14
  call void @exit(i32 noundef 1) #15
  unreachable

892:                                              ; preds = %864
  %893 = load i32, ptr @test_count, align 4, !tbaa !5
  %894 = add nsw i32 %893, 1
  store i32 %894, ptr @test_count, align 4, !tbaa !5
  %895 = load ptr, ptr %10, align 8, !tbaa !9
  %896 = getelementptr inbounds i8, ptr %895, i64 628
  %897 = load i32, ptr %896, align 4, !tbaa !53
  %898 = icmp eq i32 %897, 2
  br i1 %898, label %921, label %899

899:                                              ; preds = %892
  %900 = load i32, ptr %339, align 4, !tbaa !5
  %901 = load ptr, ptr @stderr, align 8, !tbaa !9
  %902 = call i32 @s2n_print_stacktrace(ptr noundef %901) #12
  %903 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %904 = trunc nuw i8 %903 to i1
  br i1 %904, label %905, label %909

905:                                              ; preds = %899
  %906 = load ptr, ptr @stderr, align 8, !tbaa !9
  %907 = call i32 @fileno(ptr noundef %906) #12
  %908 = call i32 @isatty(i32 noundef %907) #12
  %.not574 = icmp eq i32 %908, 0
  br i1 %.not574, label %909, label %910

909:                                              ; preds = %905, %899
  br label %910

910:                                              ; preds = %905, %909
  %.str.5.sink1188 = phi ptr [ @.str.5, %909 ], [ @.str.2, %905 ]
  store i32 %900, ptr %339, align 4, !tbaa !5
  %911 = load ptr, ptr @stderr, align 8, !tbaa !9
  %912 = load i32, ptr @test_count, align 4, !tbaa !5
  %913 = load i32, ptr %285, align 4, !tbaa !5
  %914 = call ptr @s2n_strerror(i32 noundef %913, ptr noundef nonnull @.str.4) #12
  %915 = load i32, ptr %285, align 4, !tbaa !5
  %916 = call ptr @s2n_strerror_debug(i32 noundef %915, ptr noundef nonnull @.str.4) #12
  %917 = load i32, ptr %339, align 4, !tbaa !5
  %918 = call ptr @strerror(i32 noundef %917) #12
  %919 = load i32, ptr %339, align 4, !tbaa !5
  %920 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %911, ptr noundef nonnull %.str.5.sink1188, i32 noundef %912, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 130, ptr noundef %914, ptr noundef %916, ptr noundef %918, i32 noundef %919) #14
  call void @exit(i32 noundef 1) #15
  unreachable

921:                                              ; preds = %892
  %922 = add nsw i32 %893, 2
  store i32 %922, ptr @test_count, align 4, !tbaa !5
  %923 = getelementptr inbounds i8, ptr %895, i64 240
  %bcmp575 = call i32 @bcmp(ptr noundef nonnull dereferenceable(48) %923, ptr noundef nonnull dereferenceable(48) %3, i64 48)
  %924 = icmp eq i32 %bcmp575, 0
  br i1 %924, label %925, label %947

925:                                              ; preds = %921
  %926 = load i32, ptr %339, align 4, !tbaa !5
  %927 = load ptr, ptr @stderr, align 8, !tbaa !9
  %928 = call i32 @s2n_print_stacktrace(ptr noundef %927) #12
  %929 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %930 = trunc nuw i8 %929 to i1
  br i1 %930, label %931, label %935

931:                                              ; preds = %925
  %932 = load ptr, ptr @stderr, align 8, !tbaa !9
  %933 = call i32 @fileno(ptr noundef %932) #12
  %934 = call i32 @isatty(i32 noundef %933) #12
  %.not785 = icmp eq i32 %934, 0
  br i1 %.not785, label %935, label %936

935:                                              ; preds = %931, %925
  br label %936

936:                                              ; preds = %931, %935
  %.str.5.sink1197 = phi ptr [ @.str.5, %935 ], [ @.str.2, %931 ]
  store i32 %926, ptr %339, align 4, !tbaa !5
  %937 = load ptr, ptr @stderr, align 8, !tbaa !9
  %938 = load i32, ptr @test_count, align 4, !tbaa !5
  %939 = load i32, ptr %285, align 4, !tbaa !5
  %940 = call ptr @s2n_strerror(i32 noundef %939, ptr noundef nonnull @.str.4) #12
  %941 = load i32, ptr %285, align 4, !tbaa !5
  %942 = call ptr @s2n_strerror_debug(i32 noundef %941, ptr noundef nonnull @.str.4) #12
  %943 = load i32, ptr %339, align 4, !tbaa !5
  %944 = call ptr @strerror(i32 noundef %943) #12
  %945 = load i32, ptr %339, align 4, !tbaa !5
  %946 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %937, ptr noundef nonnull %.str.5.sink1197, i32 noundef %938, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 131, ptr noundef %940, ptr noundef %942, ptr noundef %944, i32 noundef %945) #14
  call void @exit(i32 noundef 1) #15
  unreachable

947:                                              ; preds = %921
  %948 = add nsw i32 %893, 3
  store i32 %948, ptr @test_count, align 4, !tbaa !5
  %949 = call i32 @s2n_tls13_extract_secret(ptr noundef nonnull %895, i32 noundef 3) #12
  %950 = call zeroext i1 @s2n_result_is_ok(i32 %949)
  br i1 %950, label %973, label %951

951:                                              ; preds = %947
  %952 = load i32, ptr %339, align 4, !tbaa !5
  %953 = load ptr, ptr @stderr, align 8, !tbaa !9
  %954 = call i32 @s2n_print_stacktrace(ptr noundef %953) #12
  %955 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %956 = trunc nuw i8 %955 to i1
  br i1 %956, label %957, label %961

957:                                              ; preds = %951
  %958 = load ptr, ptr @stderr, align 8, !tbaa !9
  %959 = call i32 @fileno(ptr noundef %958) #12
  %960 = call i32 @isatty(i32 noundef %959) #12
  %.not576 = icmp eq i32 %960, 0
  br i1 %.not576, label %961, label %962

961:                                              ; preds = %957, %951
  br label %962

962:                                              ; preds = %957, %961
  %.str.5.sink1206 = phi ptr [ @.str.5, %961 ], [ @.str.2, %957 ]
  store i32 %952, ptr %339, align 4, !tbaa !5
  %963 = load ptr, ptr @stderr, align 8, !tbaa !9
  %964 = load i32, ptr @test_count, align 4, !tbaa !5
  %965 = load i32, ptr %285, align 4, !tbaa !5
  %966 = call ptr @s2n_strerror(i32 noundef %965, ptr noundef nonnull @.str.4) #12
  %967 = load i32, ptr %285, align 4, !tbaa !5
  %968 = call ptr @s2n_strerror_debug(i32 noundef %967, ptr noundef nonnull @.str.4) #12
  %969 = load i32, ptr %339, align 4, !tbaa !5
  %970 = call ptr @strerror(i32 noundef %969) #12
  %971 = load i32, ptr %339, align 4, !tbaa !5
  %972 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %963, ptr noundef nonnull %.str.5.sink1206, i32 noundef %964, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 133, ptr noundef %966, ptr noundef %968, ptr noundef %970, i32 noundef %971) #14
  call void @exit(i32 noundef 1) #15
  unreachable

973:                                              ; preds = %947
  %974 = load i32, ptr @test_count, align 4, !tbaa !5
  %975 = add nsw i32 %974, 1
  store i32 %975, ptr @test_count, align 4, !tbaa !5
  %976 = load ptr, ptr %10, align 8, !tbaa !9
  %977 = getelementptr inbounds i8, ptr %976, i64 628
  %978 = load i32, ptr %977, align 4, !tbaa !53
  %979 = icmp eq i32 %978, 3
  br i1 %979, label %1002, label %980

980:                                              ; preds = %973
  %981 = load i32, ptr %339, align 4, !tbaa !5
  %982 = load ptr, ptr @stderr, align 8, !tbaa !9
  %983 = call i32 @s2n_print_stacktrace(ptr noundef %982) #12
  %984 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %985 = trunc nuw i8 %984 to i1
  br i1 %985, label %986, label %990

986:                                              ; preds = %980
  %987 = load ptr, ptr @stderr, align 8, !tbaa !9
  %988 = call i32 @fileno(ptr noundef %987) #12
  %989 = call i32 @isatty(i32 noundef %988) #12
  %.not577 = icmp eq i32 %989, 0
  br i1 %.not577, label %990, label %991

990:                                              ; preds = %986, %980
  br label %991

991:                                              ; preds = %986, %990
  %.str.5.sink1215 = phi ptr [ @.str.5, %990 ], [ @.str.2, %986 ]
  store i32 %981, ptr %339, align 4, !tbaa !5
  %992 = load ptr, ptr @stderr, align 8, !tbaa !9
  %993 = load i32, ptr @test_count, align 4, !tbaa !5
  %994 = load i32, ptr %285, align 4, !tbaa !5
  %995 = call ptr @s2n_strerror(i32 noundef %994, ptr noundef nonnull @.str.4) #12
  %996 = load i32, ptr %285, align 4, !tbaa !5
  %997 = call ptr @s2n_strerror_debug(i32 noundef %996, ptr noundef nonnull @.str.4) #12
  %998 = load i32, ptr %339, align 4, !tbaa !5
  %999 = call ptr @strerror(i32 noundef %998) #12
  %1000 = load i32, ptr %339, align 4, !tbaa !5
  %1001 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %992, ptr noundef nonnull %.str.5.sink1215, i32 noundef %993, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 134, ptr noundef %995, ptr noundef %997, ptr noundef %999, i32 noundef %1000) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1002:                                             ; preds = %973
  %1003 = add nsw i32 %974, 2
  store i32 %1003, ptr @test_count, align 4, !tbaa !5
  %1004 = getelementptr inbounds i8, ptr %976, i64 240
  %bcmp578 = call i32 @bcmp(ptr noundef nonnull dereferenceable(48) %1004, ptr noundef nonnull dereferenceable(48) %3, i64 48)
  %1005 = icmp eq i32 %bcmp578, 0
  br i1 %1005, label %1006, label %1028

1006:                                             ; preds = %1002
  %1007 = load i32, ptr %339, align 4, !tbaa !5
  %1008 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1009 = call i32 @s2n_print_stacktrace(ptr noundef %1008) #12
  %1010 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1011 = trunc nuw i8 %1010 to i1
  br i1 %1011, label %1012, label %1016

1012:                                             ; preds = %1006
  %1013 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1014 = call i32 @fileno(ptr noundef %1013) #12
  %1015 = call i32 @isatty(i32 noundef %1014) #12
  %.not784 = icmp eq i32 %1015, 0
  br i1 %.not784, label %1016, label %1017

1016:                                             ; preds = %1012, %1006
  br label %1017

1017:                                             ; preds = %1012, %1016
  %.str.5.sink1224 = phi ptr [ @.str.5, %1016 ], [ @.str.2, %1012 ]
  store i32 %1007, ptr %339, align 4, !tbaa !5
  %1018 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1019 = load i32, ptr @test_count, align 4, !tbaa !5
  %1020 = load i32, ptr %285, align 4, !tbaa !5
  %1021 = call ptr @s2n_strerror(i32 noundef %1020, ptr noundef nonnull @.str.4) #12
  %1022 = load i32, ptr %285, align 4, !tbaa !5
  %1023 = call ptr @s2n_strerror_debug(i32 noundef %1022, ptr noundef nonnull @.str.4) #12
  %1024 = load i32, ptr %339, align 4, !tbaa !5
  %1025 = call ptr @strerror(i32 noundef %1024) #12
  %1026 = load i32, ptr %339, align 4, !tbaa !5
  %1027 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1018, ptr noundef nonnull %.str.5.sink1224, i32 noundef %1019, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 135, ptr noundef %1021, ptr noundef %1023, ptr noundef %1025, i32 noundef %1026) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1028:                                             ; preds = %1002
  %1029 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %10) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11) #12
  %1030 = call ptr @s2n_connection_new(i32 noundef 0) #12
  store ptr %1030, ptr %11, align 8, !tbaa !9
  %1031 = getelementptr inbounds i8, ptr %1030, i64 232
  %1032 = load ptr, ptr %1031, align 8, !tbaa !22
  store ptr @s2n_tls13_aes_256_gcm_sha384, ptr %1032, align 8, !tbaa !48
  %1033 = load ptr, ptr %11, align 8, !tbaa !9
  %1034 = getelementptr inbounds i8, ptr %1033, i64 628
  store i32 0, ptr %1034, align 4, !tbaa !53
  %1035 = load i32, ptr @test_count, align 4, !tbaa !5
  %1036 = add nsw i32 %1035, 1
  store i32 %1036, ptr @test_count, align 4, !tbaa !5
  %1037 = call i32 @s2n_set_test_key_shares(ptr noundef %1033, ptr noundef nonnull @s2n_ecc_curve_secp256r1)
  %1038 = call zeroext i1 @s2n_result_is_ok(i32 %1037)
  br i1 %1038, label %1061, label %1039

1039:                                             ; preds = %1028
  %1040 = load i32, ptr %339, align 4, !tbaa !5
  %1041 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1042 = call i32 @s2n_print_stacktrace(ptr noundef %1041) #12
  %1043 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1044 = trunc nuw i8 %1043 to i1
  br i1 %1044, label %1045, label %1049

1045:                                             ; preds = %1039
  %1046 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1047 = call i32 @fileno(ptr noundef %1046) #12
  %1048 = call i32 @isatty(i32 noundef %1047) #12
  %.not579 = icmp eq i32 %1048, 0
  br i1 %.not579, label %1049, label %1050

1049:                                             ; preds = %1045, %1039
  br label %1050

1050:                                             ; preds = %1045, %1049
  %.str.5.sink1233 = phi ptr [ @.str.5, %1049 ], [ @.str.2, %1045 ]
  store i32 %1040, ptr %339, align 4, !tbaa !5
  %1051 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1052 = load i32, ptr @test_count, align 4, !tbaa !5
  %1053 = load i32, ptr %285, align 4, !tbaa !5
  %1054 = call ptr @s2n_strerror(i32 noundef %1053, ptr noundef nonnull @.str.4) #12
  %1055 = load i32, ptr %285, align 4, !tbaa !5
  %1056 = call ptr @s2n_strerror_debug(i32 noundef %1055, ptr noundef nonnull @.str.4) #12
  %1057 = load i32, ptr %339, align 4, !tbaa !5
  %1058 = call ptr @strerror(i32 noundef %1057) #12
  %1059 = load i32, ptr %339, align 4, !tbaa !5
  %1060 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1051, ptr noundef nonnull %.str.5.sink1233, i32 noundef %1052, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 144, ptr noundef %1054, ptr noundef %1056, ptr noundef %1058, i32 noundef %1059) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1061:                                             ; preds = %1028
  %1062 = load i32, ptr @test_count, align 4, !tbaa !5
  %1063 = add nsw i32 %1062, 1
  store i32 %1063, ptr @test_count, align 4, !tbaa !5
  %1064 = load ptr, ptr %11, align 8, !tbaa !9
  %1065 = call i32 @s2n_tls13_extract_secret(ptr noundef %1064, i32 noundef 3) #12
  %1066 = call zeroext i1 @s2n_result_is_ok(i32 %1065)
  br i1 %1066, label %1089, label %1067

1067:                                             ; preds = %1061
  %1068 = load i32, ptr %339, align 4, !tbaa !5
  %1069 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1070 = call i32 @s2n_print_stacktrace(ptr noundef %1069) #12
  %1071 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1072 = trunc nuw i8 %1071 to i1
  br i1 %1072, label %1073, label %1077

1073:                                             ; preds = %1067
  %1074 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1075 = call i32 @fileno(ptr noundef %1074) #12
  %1076 = call i32 @isatty(i32 noundef %1075) #12
  %.not580 = icmp eq i32 %1076, 0
  br i1 %.not580, label %1077, label %1078

1077:                                             ; preds = %1073, %1067
  br label %1078

1078:                                             ; preds = %1073, %1077
  %.str.5.sink1242 = phi ptr [ @.str.5, %1077 ], [ @.str.2, %1073 ]
  store i32 %1068, ptr %339, align 4, !tbaa !5
  %1079 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1080 = load i32, ptr @test_count, align 4, !tbaa !5
  %1081 = load i32, ptr %285, align 4, !tbaa !5
  %1082 = call ptr @s2n_strerror(i32 noundef %1081, ptr noundef nonnull @.str.4) #12
  %1083 = load i32, ptr %285, align 4, !tbaa !5
  %1084 = call ptr @s2n_strerror_debug(i32 noundef %1083, ptr noundef nonnull @.str.4) #12
  %1085 = load i32, ptr %339, align 4, !tbaa !5
  %1086 = call ptr @strerror(i32 noundef %1085) #12
  %1087 = load i32, ptr %339, align 4, !tbaa !5
  %1088 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1079, ptr noundef nonnull %.str.5.sink1242, i32 noundef %1080, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 146, ptr noundef %1082, ptr noundef %1084, ptr noundef %1086, i32 noundef %1087) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1089:                                             ; preds = %1061
  %1090 = load i32, ptr @test_count, align 4, !tbaa !5
  %1091 = add nsw i32 %1090, 1
  store i32 %1091, ptr @test_count, align 4, !tbaa !5
  %1092 = load ptr, ptr %11, align 8, !tbaa !9
  %1093 = getelementptr inbounds i8, ptr %1092, i64 628
  %1094 = load i32, ptr %1093, align 4, !tbaa !53
  %1095 = icmp eq i32 %1094, 3
  br i1 %1095, label %1118, label %1096

1096:                                             ; preds = %1089
  %1097 = load i32, ptr %339, align 4, !tbaa !5
  %1098 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1099 = call i32 @s2n_print_stacktrace(ptr noundef %1098) #12
  %1100 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1101 = trunc nuw i8 %1100 to i1
  br i1 %1101, label %1102, label %1106

1102:                                             ; preds = %1096
  %1103 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1104 = call i32 @fileno(ptr noundef %1103) #12
  %1105 = call i32 @isatty(i32 noundef %1104) #12
  %.not581 = icmp eq i32 %1105, 0
  br i1 %.not581, label %1106, label %1107

1106:                                             ; preds = %1102, %1096
  br label %1107

1107:                                             ; preds = %1102, %1106
  %.str.5.sink1251 = phi ptr [ @.str.5, %1106 ], [ @.str.2, %1102 ]
  store i32 %1097, ptr %339, align 4, !tbaa !5
  %1108 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1109 = load i32, ptr @test_count, align 4, !tbaa !5
  %1110 = load i32, ptr %285, align 4, !tbaa !5
  %1111 = call ptr @s2n_strerror(i32 noundef %1110, ptr noundef nonnull @.str.4) #12
  %1112 = load i32, ptr %285, align 4, !tbaa !5
  %1113 = call ptr @s2n_strerror_debug(i32 noundef %1112, ptr noundef nonnull @.str.4) #12
  %1114 = load i32, ptr %339, align 4, !tbaa !5
  %1115 = call ptr @strerror(i32 noundef %1114) #12
  %1116 = load i32, ptr %339, align 4, !tbaa !5
  %1117 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1108, ptr noundef nonnull %.str.5.sink1251, i32 noundef %1109, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 147, ptr noundef %1111, ptr noundef %1113, ptr noundef %1115, i32 noundef %1116) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1118:                                             ; preds = %1089
  %1119 = add nsw i32 %1090, 2
  store i32 %1119, ptr @test_count, align 4, !tbaa !5
  %1120 = getelementptr inbounds i8, ptr %1092, i64 240
  %bcmp582 = call i32 @bcmp(ptr noundef nonnull dereferenceable(48) %1120, ptr noundef nonnull dereferenceable(48) %3, i64 48)
  %1121 = icmp eq i32 %bcmp582, 0
  br i1 %1121, label %1122, label %1144

1122:                                             ; preds = %1118
  %1123 = load i32, ptr %339, align 4, !tbaa !5
  %1124 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1125 = call i32 @s2n_print_stacktrace(ptr noundef %1124) #12
  %1126 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1127 = trunc nuw i8 %1126 to i1
  br i1 %1127, label %1128, label %1132

1128:                                             ; preds = %1122
  %1129 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1130 = call i32 @fileno(ptr noundef %1129) #12
  %1131 = call i32 @isatty(i32 noundef %1130) #12
  %.not783 = icmp eq i32 %1131, 0
  br i1 %.not783, label %1132, label %1133

1132:                                             ; preds = %1128, %1122
  br label %1133

1133:                                             ; preds = %1128, %1132
  %.str.5.sink1260 = phi ptr [ @.str.5, %1132 ], [ @.str.2, %1128 ]
  store i32 %1123, ptr %339, align 4, !tbaa !5
  %1134 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1135 = load i32, ptr @test_count, align 4, !tbaa !5
  %1136 = load i32, ptr %285, align 4, !tbaa !5
  %1137 = call ptr @s2n_strerror(i32 noundef %1136, ptr noundef nonnull @.str.4) #12
  %1138 = load i32, ptr %285, align 4, !tbaa !5
  %1139 = call ptr @s2n_strerror_debug(i32 noundef %1138, ptr noundef nonnull @.str.4) #12
  %1140 = load i32, ptr %339, align 4, !tbaa !5
  %1141 = call ptr @strerror(i32 noundef %1140) #12
  %1142 = load i32, ptr %339, align 4, !tbaa !5
  %1143 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1134, ptr noundef nonnull %.str.5.sink1260, i32 noundef %1135, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 148, ptr noundef %1137, ptr noundef %1139, ptr noundef %1141, i32 noundef %1142) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1144:                                             ; preds = %1118
  %1145 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %11) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #12
  br label %1152

1146:                                             ; preds = %1222
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %13) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %13, i8 0, i64 24, i1 false)
  call void @llvm.lifetime.start.p0(i64 4184, ptr nonnull %14) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(4184) %14, i8 0, i64 4184, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #12
  %1147 = call ptr @s2n_connection_new(i32 noundef 0) #12
  store ptr %1147, ptr %15, align 8, !tbaa !9
  %1148 = load i32, ptr @test_count, align 4, !tbaa !5
  %1149 = add nsw i32 %1148, 1
  store i32 %1149, ptr @test_count, align 4, !tbaa !5
  %1150 = call i32 @s2n_tls13_derive_secret(ptr noundef null, i32 noundef 1, i32 noundef 1, ptr noundef nonnull %13) #12
  %1151 = call zeroext i1 @s2n_result_is_error(i32 %1150)
  br i1 %1151, label %1247, label %1225

1152:                                             ; preds = %1144, %1222
  %.0541880 = phi i64 [ 0, %1144 ], [ %1224, %1222 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #12
  %1153 = getelementptr inbounds [1000 x %struct.s2n_tls13_secrets_test_case], ptr %6, i64 0, i64 %.0541880
  %1154 = getelementptr inbounds i8, ptr %1153, i64 12
  %1155 = load i32, ptr %1154, align 4, !tbaa !54
  %1156 = call ptr @s2n_connection_new(i32 noundef %1155) #12
  store ptr %1156, ptr %12, align 8, !tbaa !9
  %1157 = getelementptr inbounds i8, ptr %1153, i64 16
  %1158 = load ptr, ptr %1157, align 16, !tbaa !56
  %1159 = getelementptr inbounds i8, ptr %1156, i64 232
  %1160 = load ptr, ptr %1159, align 8, !tbaa !22
  store ptr %1158, ptr %1160, align 8, !tbaa !48
  %1161 = load i32, ptr %1153, align 16, !tbaa !57
  %1162 = load ptr, ptr %12, align 8, !tbaa !9
  %1163 = getelementptr inbounds i8, ptr %1162, i64 628
  store i32 %1161, ptr %1163, align 4, !tbaa !53
  %1164 = load i32, ptr @test_count, align 4, !tbaa !5
  %1165 = add nsw i32 %1164, 1
  store i32 %1165, ptr @test_count, align 4, !tbaa !5
  %1166 = getelementptr inbounds i8, ptr %1153, i64 24
  %1167 = load ptr, ptr %1166, align 8, !tbaa !58
  %1168 = call i32 @s2n_set_test_key_shares(ptr noundef %1162, ptr noundef %1167)
  %1169 = call zeroext i1 @s2n_result_is_ok(i32 %1168)
  br i1 %1169, label %1192, label %1170

1170:                                             ; preds = %1152
  %1171 = load i32, ptr %339, align 4, !tbaa !5
  %1172 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1173 = call i32 @s2n_print_stacktrace(ptr noundef %1172) #12
  %1174 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1175 = trunc nuw i8 %1174 to i1
  br i1 %1175, label %1176, label %1180

1176:                                             ; preds = %1170
  %1177 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1178 = call i32 @fileno(ptr noundef %1177) #12
  %1179 = call i32 @isatty(i32 noundef %1178) #12
  %.not781 = icmp eq i32 %1179, 0
  br i1 %.not781, label %1180, label %1181

1180:                                             ; preds = %1176, %1170
  br label %1181

1181:                                             ; preds = %1176, %1180
  %.str.5.sink1269 = phi ptr [ @.str.5, %1180 ], [ @.str.2, %1176 ]
  store i32 %1171, ptr %339, align 4, !tbaa !5
  %1182 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1183 = load i32, ptr @test_count, align 4, !tbaa !5
  %1184 = load i32, ptr %285, align 4, !tbaa !5
  %1185 = call ptr @s2n_strerror(i32 noundef %1184, ptr noundef nonnull @.str.4) #12
  %1186 = load i32, ptr %285, align 4, !tbaa !5
  %1187 = call ptr @s2n_strerror_debug(i32 noundef %1186, ptr noundef nonnull @.str.4) #12
  %1188 = load i32, ptr %339, align 4, !tbaa !5
  %1189 = call ptr @strerror(i32 noundef %1188) #12
  %1190 = load i32, ptr %339, align 4, !tbaa !5
  %1191 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1182, ptr noundef nonnull %.str.5.sink1269, i32 noundef %1183, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 157, ptr noundef %1185, ptr noundef %1187, ptr noundef %1189, i32 noundef %1190) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1192:                                             ; preds = %1152
  %1193 = load i32, ptr @test_count, align 4, !tbaa !5
  %1194 = add nsw i32 %1193, 1
  store i32 %1194, ptr @test_count, align 4, !tbaa !5
  %1195 = load ptr, ptr %12, align 8, !tbaa !9
  %1196 = getelementptr inbounds i8, ptr %1153, i64 4
  %1197 = load i32, ptr %1196, align 4, !tbaa !59
  %1198 = call i32 @s2n_tls13_extract_secret(ptr noundef %1195, i32 noundef %1197) #12
  %1199 = call zeroext i1 @s2n_result_is_ok(i32 %1198)
  br i1 %1199, label %1222, label %1200

1200:                                             ; preds = %1192
  %1201 = load i32, ptr %339, align 4, !tbaa !5
  %1202 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1203 = call i32 @s2n_print_stacktrace(ptr noundef %1202) #12
  %1204 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1205 = trunc nuw i8 %1204 to i1
  br i1 %1205, label %1206, label %1210

1206:                                             ; preds = %1200
  %1207 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1208 = call i32 @fileno(ptr noundef %1207) #12
  %1209 = call i32 @isatty(i32 noundef %1208) #12
  %.not782 = icmp eq i32 %1209, 0
  br i1 %.not782, label %1210, label %1211

1210:                                             ; preds = %1206, %1200
  br label %1211

1211:                                             ; preds = %1206, %1210
  %.str.5.sink1278 = phi ptr [ @.str.5, %1210 ], [ @.str.2, %1206 ]
  store i32 %1201, ptr %339, align 4, !tbaa !5
  %1212 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1213 = load i32, ptr @test_count, align 4, !tbaa !5
  %1214 = load i32, ptr %285, align 4, !tbaa !5
  %1215 = call ptr @s2n_strerror(i32 noundef %1214, ptr noundef nonnull @.str.4) #12
  %1216 = load i32, ptr %285, align 4, !tbaa !5
  %1217 = call ptr @s2n_strerror_debug(i32 noundef %1216, ptr noundef nonnull @.str.4) #12
  %1218 = load i32, ptr %339, align 4, !tbaa !5
  %1219 = call ptr @strerror(i32 noundef %1218) #12
  %1220 = load i32, ptr %339, align 4, !tbaa !5
  %1221 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1212, ptr noundef nonnull %.str.5.sink1278, i32 noundef %1213, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 158, ptr noundef %1215, ptr noundef %1217, ptr noundef %1219, i32 noundef %1220) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1222:                                             ; preds = %1192
  %1223 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %12) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #12
  %1224 = add nuw i64 %.0541880, 1
  %exitcond906.not = icmp eq i64 %1224, %.us-phi.us.us.us.us.3
  br i1 %exitcond906.not, label %1146, label %1152, !llvm.loop !60

1225:                                             ; preds = %1146
  %1226 = load i32, ptr %339, align 4, !tbaa !5
  %1227 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1228 = call i32 @s2n_print_stacktrace(ptr noundef %1227) #12
  %1229 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1230 = trunc nuw i8 %1229 to i1
  br i1 %1230, label %1231, label %1235

1231:                                             ; preds = %1225
  %1232 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1233 = call i32 @fileno(ptr noundef %1232) #12
  %1234 = call i32 @isatty(i32 noundef %1233) #12
  %.not583 = icmp eq i32 %1234, 0
  br i1 %.not583, label %1235, label %1236

1235:                                             ; preds = %1231, %1225
  br label %1236

1236:                                             ; preds = %1231, %1235
  %.str.5.sink1287 = phi ptr [ @.str.5, %1235 ], [ @.str.2, %1231 ]
  store i32 %1226, ptr %339, align 4, !tbaa !5
  %1237 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1238 = load i32, ptr @test_count, align 4, !tbaa !5
  %1239 = load i32, ptr %285, align 4, !tbaa !5
  %1240 = call ptr @s2n_strerror(i32 noundef %1239, ptr noundef nonnull @.str.4) #12
  %1241 = load i32, ptr %285, align 4, !tbaa !5
  %1242 = call ptr @s2n_strerror_debug(i32 noundef %1241, ptr noundef nonnull @.str.4) #12
  %1243 = load i32, ptr %339, align 4, !tbaa !5
  %1244 = call ptr @strerror(i32 noundef %1243) #12
  %1245 = load i32, ptr %339, align 4, !tbaa !5
  %1246 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1237, ptr noundef nonnull %.str.5.sink1287, i32 noundef %1238, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 178, ptr noundef %1240, ptr noundef %1242, ptr noundef %1244, i32 noundef %1245) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1247:                                             ; preds = %1146
  %1248 = load i32, ptr @test_count, align 4, !tbaa !5
  %1249 = add nsw i32 %1248, 1
  store i32 %1249, ptr @test_count, align 4, !tbaa !5
  %1250 = load i32, ptr %285, align 4, !tbaa !5
  %1251 = icmp eq i32 %1250, 402653193
  br i1 %1251, label %1274, label %1252

1252:                                             ; preds = %1247
  %1253 = load i32, ptr %339, align 4, !tbaa !5
  %1254 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1255 = call i32 @s2n_print_stacktrace(ptr noundef %1254) #12
  %1256 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1257 = trunc nuw i8 %1256 to i1
  br i1 %1257, label %1258, label %1262

1258:                                             ; preds = %1252
  %1259 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1260 = call i32 @fileno(ptr noundef %1259) #12
  %1261 = call i32 @isatty(i32 noundef %1260) #12
  %.not584 = icmp eq i32 %1261, 0
  br i1 %.not584, label %1262, label %1263

1262:                                             ; preds = %1258, %1252
  br label %1263

1263:                                             ; preds = %1258, %1262
  %.str.5.sink1296 = phi ptr [ @.str.5, %1262 ], [ @.str.2, %1258 ]
  store i32 %1253, ptr %339, align 4, !tbaa !5
  %1264 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1265 = load i32, ptr @test_count, align 4, !tbaa !5
  %1266 = load i32, ptr %285, align 4, !tbaa !5
  %1267 = call ptr @s2n_strerror(i32 noundef %1266, ptr noundef nonnull @.str.4) #12
  %1268 = load i32, ptr %285, align 4, !tbaa !5
  %1269 = call ptr @s2n_strerror_debug(i32 noundef %1268, ptr noundef nonnull @.str.4) #12
  %1270 = load i32, ptr %339, align 4, !tbaa !5
  %1271 = call ptr @strerror(i32 noundef %1270) #12
  %1272 = load i32, ptr %339, align 4, !tbaa !5
  %1273 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1264, ptr noundef nonnull %.str.5.sink1296, i32 noundef %1265, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 178, ptr noundef %1267, ptr noundef %1269, ptr noundef %1271, i32 noundef %1272) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1274:                                             ; preds = %1247
  %1275 = add nsw i32 %1248, 2
  store i32 %1275, ptr @test_count, align 4, !tbaa !5
  %1276 = call ptr @s2n_strerror_debug(i32 noundef 402653193, ptr noundef nonnull @.str.4) #12
  %1277 = icmp eq ptr %1276, null
  br i1 %1277, label %1278, label %1300

1278:                                             ; preds = %1274
  %1279 = load i32, ptr %339, align 4, !tbaa !5
  %1280 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1281 = call i32 @s2n_print_stacktrace(ptr noundef %1280) #12
  %1282 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1283 = trunc nuw i8 %1282 to i1
  br i1 %1283, label %1284, label %1288

1284:                                             ; preds = %1278
  %1285 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1286 = call i32 @fileno(ptr noundef %1285) #12
  %1287 = call i32 @isatty(i32 noundef %1286) #12
  %.not780 = icmp eq i32 %1287, 0
  br i1 %.not780, label %1288, label %1289

1288:                                             ; preds = %1284, %1278
  br label %1289

1289:                                             ; preds = %1284, %1288
  %.str.5.sink1305 = phi ptr [ @.str.5, %1288 ], [ @.str.2, %1284 ]
  store i32 %1279, ptr %339, align 4, !tbaa !5
  %1290 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1291 = load i32, ptr @test_count, align 4, !tbaa !5
  %1292 = load i32, ptr %285, align 4, !tbaa !5
  %1293 = call ptr @s2n_strerror(i32 noundef %1292, ptr noundef nonnull @.str.4) #12
  %1294 = load i32, ptr %285, align 4, !tbaa !5
  %1295 = call ptr @s2n_strerror_debug(i32 noundef %1294, ptr noundef nonnull @.str.4) #12
  %1296 = load i32, ptr %339, align 4, !tbaa !5
  %1297 = call ptr @strerror(i32 noundef %1296) #12
  %1298 = load i32, ptr %339, align 4, !tbaa !5
  %1299 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1290, ptr noundef nonnull %.str.5.sink1305, i32 noundef %1291, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 178, ptr noundef %1293, ptr noundef %1295, ptr noundef %1297, i32 noundef %1298) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1300:                                             ; preds = %1274
  store i32 0, ptr %285, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %339, align 4, !tbaa !5
  %1301 = load i32, ptr @test_count, align 4, !tbaa !5
  %1302 = add nsw i32 %1301, 1
  store i32 %1302, ptr @test_count, align 4, !tbaa !5
  %1303 = call i32 @s2n_tls13_derive_secret(ptr noundef nonnull %14, i32 noundef 1, i32 noundef 1, ptr noundef nonnull %13) #12
  %1304 = call zeroext i1 @s2n_result_is_error(i32 %1303)
  br i1 %1304, label %1327, label %1305

1305:                                             ; preds = %1300
  %1306 = load i32, ptr %339, align 4, !tbaa !5
  %1307 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1308 = call i32 @s2n_print_stacktrace(ptr noundef %1307) #12
  %1309 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1310 = trunc nuw i8 %1309 to i1
  br i1 %1310, label %1311, label %1315

1311:                                             ; preds = %1305
  %1312 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1313 = call i32 @fileno(ptr noundef %1312) #12
  %1314 = call i32 @isatty(i32 noundef %1313) #12
  %.not585 = icmp eq i32 %1314, 0
  br i1 %.not585, label %1315, label %1316

1315:                                             ; preds = %1311, %1305
  br label %1316

1316:                                             ; preds = %1311, %1315
  %.str.5.sink1314 = phi ptr [ @.str.5, %1315 ], [ @.str.2, %1311 ]
  store i32 %1306, ptr %339, align 4, !tbaa !5
  %1317 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1318 = load i32, ptr @test_count, align 4, !tbaa !5
  %1319 = load i32, ptr %285, align 4, !tbaa !5
  %1320 = call ptr @s2n_strerror(i32 noundef %1319, ptr noundef nonnull @.str.4) #12
  %1321 = load i32, ptr %285, align 4, !tbaa !5
  %1322 = call ptr @s2n_strerror_debug(i32 noundef %1321, ptr noundef nonnull @.str.4) #12
  %1323 = load i32, ptr %339, align 4, !tbaa !5
  %1324 = call ptr @strerror(i32 noundef %1323) #12
  %1325 = load i32, ptr %339, align 4, !tbaa !5
  %1326 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1317, ptr noundef nonnull %.str.5.sink1314, i32 noundef %1318, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 179, ptr noundef %1320, ptr noundef %1322, ptr noundef %1324, i32 noundef %1325) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1327:                                             ; preds = %1300
  %1328 = load i32, ptr @test_count, align 4, !tbaa !5
  %1329 = add nsw i32 %1328, 1
  store i32 %1329, ptr @test_count, align 4, !tbaa !5
  %1330 = load i32, ptr %285, align 4, !tbaa !5
  %1331 = icmp eq i32 %1330, 402653193
  br i1 %1331, label %1354, label %1332

1332:                                             ; preds = %1327
  %1333 = load i32, ptr %339, align 4, !tbaa !5
  %1334 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1335 = call i32 @s2n_print_stacktrace(ptr noundef %1334) #12
  %1336 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1337 = trunc nuw i8 %1336 to i1
  br i1 %1337, label %1338, label %1342

1338:                                             ; preds = %1332
  %1339 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1340 = call i32 @fileno(ptr noundef %1339) #12
  %1341 = call i32 @isatty(i32 noundef %1340) #12
  %.not586 = icmp eq i32 %1341, 0
  br i1 %.not586, label %1342, label %1343

1342:                                             ; preds = %1338, %1332
  br label %1343

1343:                                             ; preds = %1338, %1342
  %.str.5.sink1323 = phi ptr [ @.str.5, %1342 ], [ @.str.2, %1338 ]
  store i32 %1333, ptr %339, align 4, !tbaa !5
  %1344 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1345 = load i32, ptr @test_count, align 4, !tbaa !5
  %1346 = load i32, ptr %285, align 4, !tbaa !5
  %1347 = call ptr @s2n_strerror(i32 noundef %1346, ptr noundef nonnull @.str.4) #12
  %1348 = load i32, ptr %285, align 4, !tbaa !5
  %1349 = call ptr @s2n_strerror_debug(i32 noundef %1348, ptr noundef nonnull @.str.4) #12
  %1350 = load i32, ptr %339, align 4, !tbaa !5
  %1351 = call ptr @strerror(i32 noundef %1350) #12
  %1352 = load i32, ptr %339, align 4, !tbaa !5
  %1353 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1344, ptr noundef nonnull %.str.5.sink1323, i32 noundef %1345, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 179, ptr noundef %1347, ptr noundef %1349, ptr noundef %1351, i32 noundef %1352) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1354:                                             ; preds = %1327
  %1355 = add nsw i32 %1328, 2
  store i32 %1355, ptr @test_count, align 4, !tbaa !5
  %1356 = call ptr @s2n_strerror_debug(i32 noundef 402653193, ptr noundef nonnull @.str.4) #12
  %1357 = icmp eq ptr %1356, null
  br i1 %1357, label %1358, label %1380

1358:                                             ; preds = %1354
  %1359 = load i32, ptr %339, align 4, !tbaa !5
  %1360 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1361 = call i32 @s2n_print_stacktrace(ptr noundef %1360) #12
  %1362 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1363 = trunc nuw i8 %1362 to i1
  br i1 %1363, label %1364, label %1368

1364:                                             ; preds = %1358
  %1365 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1366 = call i32 @fileno(ptr noundef %1365) #12
  %1367 = call i32 @isatty(i32 noundef %1366) #12
  %.not779 = icmp eq i32 %1367, 0
  br i1 %.not779, label %1368, label %1369

1368:                                             ; preds = %1364, %1358
  br label %1369

1369:                                             ; preds = %1364, %1368
  %.str.5.sink1332 = phi ptr [ @.str.5, %1368 ], [ @.str.2, %1364 ]
  store i32 %1359, ptr %339, align 4, !tbaa !5
  %1370 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1371 = load i32, ptr @test_count, align 4, !tbaa !5
  %1372 = load i32, ptr %285, align 4, !tbaa !5
  %1373 = call ptr @s2n_strerror(i32 noundef %1372, ptr noundef nonnull @.str.4) #12
  %1374 = load i32, ptr %285, align 4, !tbaa !5
  %1375 = call ptr @s2n_strerror_debug(i32 noundef %1374, ptr noundef nonnull @.str.4) #12
  %1376 = load i32, ptr %339, align 4, !tbaa !5
  %1377 = call ptr @strerror(i32 noundef %1376) #12
  %1378 = load i32, ptr %339, align 4, !tbaa !5
  %1379 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1370, ptr noundef nonnull %.str.5.sink1332, i32 noundef %1371, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 179, ptr noundef %1373, ptr noundef %1375, ptr noundef %1377, i32 noundef %1378) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1380:                                             ; preds = %1354
  store i32 0, ptr %285, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %339, align 4, !tbaa !5
  %1381 = load i32, ptr @test_count, align 4, !tbaa !5
  %1382 = add nsw i32 %1381, 1
  store i32 %1382, ptr @test_count, align 4, !tbaa !5
  %1383 = load ptr, ptr %15, align 8, !tbaa !9
  %1384 = call i32 @s2n_tls13_derive_secret(ptr noundef %1383, i32 noundef -1, i32 noundef 1, ptr noundef nonnull %13) #12
  %1385 = call zeroext i1 @s2n_result_is_error(i32 %1384)
  br i1 %1385, label %1408, label %1386

1386:                                             ; preds = %1380
  %1387 = load i32, ptr %339, align 4, !tbaa !5
  %1388 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1389 = call i32 @s2n_print_stacktrace(ptr noundef %1388) #12
  %1390 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1391 = trunc nuw i8 %1390 to i1
  br i1 %1391, label %1392, label %1396

1392:                                             ; preds = %1386
  %1393 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1394 = call i32 @fileno(ptr noundef %1393) #12
  %1395 = call i32 @isatty(i32 noundef %1394) #12
  %.not587 = icmp eq i32 %1395, 0
  br i1 %.not587, label %1396, label %1397

1396:                                             ; preds = %1392, %1386
  br label %1397

1397:                                             ; preds = %1392, %1396
  %.str.5.sink1341 = phi ptr [ @.str.5, %1396 ], [ @.str.2, %1392 ]
  store i32 %1387, ptr %339, align 4, !tbaa !5
  %1398 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1399 = load i32, ptr @test_count, align 4, !tbaa !5
  %1400 = load i32, ptr %285, align 4, !tbaa !5
  %1401 = call ptr @s2n_strerror(i32 noundef %1400, ptr noundef nonnull @.str.4) #12
  %1402 = load i32, ptr %285, align 4, !tbaa !5
  %1403 = call ptr @s2n_strerror_debug(i32 noundef %1402, ptr noundef nonnull @.str.4) #12
  %1404 = load i32, ptr %339, align 4, !tbaa !5
  %1405 = call ptr @strerror(i32 noundef %1404) #12
  %1406 = load i32, ptr %339, align 4, !tbaa !5
  %1407 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1398, ptr noundef nonnull %.str.5.sink1341, i32 noundef %1399, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 180, ptr noundef %1401, ptr noundef %1403, ptr noundef %1405, i32 noundef %1406) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1408:                                             ; preds = %1380
  %1409 = load i32, ptr @test_count, align 4, !tbaa !5
  %1410 = add nsw i32 %1409, 1
  store i32 %1410, ptr @test_count, align 4, !tbaa !5
  %1411 = load i32, ptr %285, align 4, !tbaa !5
  %1412 = icmp eq i32 %1411, 402653194
  br i1 %1412, label %1435, label %1413

1413:                                             ; preds = %1408
  %1414 = load i32, ptr %339, align 4, !tbaa !5
  %1415 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1416 = call i32 @s2n_print_stacktrace(ptr noundef %1415) #12
  %1417 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1418 = trunc nuw i8 %1417 to i1
  br i1 %1418, label %1419, label %1423

1419:                                             ; preds = %1413
  %1420 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1421 = call i32 @fileno(ptr noundef %1420) #12
  %1422 = call i32 @isatty(i32 noundef %1421) #12
  %.not588 = icmp eq i32 %1422, 0
  br i1 %.not588, label %1423, label %1424

1423:                                             ; preds = %1419, %1413
  br label %1424

1424:                                             ; preds = %1419, %1423
  %.str.5.sink1350 = phi ptr [ @.str.5, %1423 ], [ @.str.2, %1419 ]
  store i32 %1414, ptr %339, align 4, !tbaa !5
  %1425 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1426 = load i32, ptr @test_count, align 4, !tbaa !5
  %1427 = load i32, ptr %285, align 4, !tbaa !5
  %1428 = call ptr @s2n_strerror(i32 noundef %1427, ptr noundef nonnull @.str.4) #12
  %1429 = load i32, ptr %285, align 4, !tbaa !5
  %1430 = call ptr @s2n_strerror_debug(i32 noundef %1429, ptr noundef nonnull @.str.4) #12
  %1431 = load i32, ptr %339, align 4, !tbaa !5
  %1432 = call ptr @strerror(i32 noundef %1431) #12
  %1433 = load i32, ptr %339, align 4, !tbaa !5
  %1434 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1425, ptr noundef nonnull %.str.5.sink1350, i32 noundef %1426, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 180, ptr noundef %1428, ptr noundef %1430, ptr noundef %1432, i32 noundef %1433) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1435:                                             ; preds = %1408
  %1436 = add nsw i32 %1409, 2
  store i32 %1436, ptr @test_count, align 4, !tbaa !5
  %1437 = call ptr @s2n_strerror_debug(i32 noundef 402653194, ptr noundef nonnull @.str.4) #12
  %1438 = icmp eq ptr %1437, null
  br i1 %1438, label %1439, label %1461

1439:                                             ; preds = %1435
  %1440 = load i32, ptr %339, align 4, !tbaa !5
  %1441 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1442 = call i32 @s2n_print_stacktrace(ptr noundef %1441) #12
  %1443 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1444 = trunc nuw i8 %1443 to i1
  br i1 %1444, label %1445, label %1449

1445:                                             ; preds = %1439
  %1446 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1447 = call i32 @fileno(ptr noundef %1446) #12
  %1448 = call i32 @isatty(i32 noundef %1447) #12
  %.not778 = icmp eq i32 %1448, 0
  br i1 %.not778, label %1449, label %1450

1449:                                             ; preds = %1445, %1439
  br label %1450

1450:                                             ; preds = %1445, %1449
  %.str.5.sink1359 = phi ptr [ @.str.5, %1449 ], [ @.str.2, %1445 ]
  store i32 %1440, ptr %339, align 4, !tbaa !5
  %1451 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1452 = load i32, ptr @test_count, align 4, !tbaa !5
  %1453 = load i32, ptr %285, align 4, !tbaa !5
  %1454 = call ptr @s2n_strerror(i32 noundef %1453, ptr noundef nonnull @.str.4) #12
  %1455 = load i32, ptr %285, align 4, !tbaa !5
  %1456 = call ptr @s2n_strerror_debug(i32 noundef %1455, ptr noundef nonnull @.str.4) #12
  %1457 = load i32, ptr %339, align 4, !tbaa !5
  %1458 = call ptr @strerror(i32 noundef %1457) #12
  %1459 = load i32, ptr %339, align 4, !tbaa !5
  %1460 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1451, ptr noundef nonnull %.str.5.sink1359, i32 noundef %1452, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 180, ptr noundef %1454, ptr noundef %1456, ptr noundef %1458, i32 noundef %1459) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1461:                                             ; preds = %1435
  store i32 0, ptr %285, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %339, align 4, !tbaa !5
  %1462 = load i32, ptr @test_count, align 4, !tbaa !5
  %1463 = add nsw i32 %1462, 1
  store i32 %1463, ptr @test_count, align 4, !tbaa !5
  %1464 = load ptr, ptr %15, align 8, !tbaa !9
  %1465 = call i32 @s2n_tls13_derive_secret(ptr noundef %1464, i32 noundef 255, i32 noundef 1, ptr noundef nonnull %13) #12
  %1466 = call zeroext i1 @s2n_result_is_error(i32 %1465)
  br i1 %1466, label %1489, label %1467

1467:                                             ; preds = %1461
  %1468 = load i32, ptr %339, align 4, !tbaa !5
  %1469 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1470 = call i32 @s2n_print_stacktrace(ptr noundef %1469) #12
  %1471 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1472 = trunc nuw i8 %1471 to i1
  br i1 %1472, label %1473, label %1477

1473:                                             ; preds = %1467
  %1474 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1475 = call i32 @fileno(ptr noundef %1474) #12
  %1476 = call i32 @isatty(i32 noundef %1475) #12
  %.not589 = icmp eq i32 %1476, 0
  br i1 %.not589, label %1477, label %1478

1477:                                             ; preds = %1473, %1467
  br label %1478

1478:                                             ; preds = %1473, %1477
  %.str.5.sink1368 = phi ptr [ @.str.5, %1477 ], [ @.str.2, %1473 ]
  store i32 %1468, ptr %339, align 4, !tbaa !5
  %1479 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1480 = load i32, ptr @test_count, align 4, !tbaa !5
  %1481 = load i32, ptr %285, align 4, !tbaa !5
  %1482 = call ptr @s2n_strerror(i32 noundef %1481, ptr noundef nonnull @.str.4) #12
  %1483 = load i32, ptr %285, align 4, !tbaa !5
  %1484 = call ptr @s2n_strerror_debug(i32 noundef %1483, ptr noundef nonnull @.str.4) #12
  %1485 = load i32, ptr %339, align 4, !tbaa !5
  %1486 = call ptr @strerror(i32 noundef %1485) #12
  %1487 = load i32, ptr %339, align 4, !tbaa !5
  %1488 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1479, ptr noundef nonnull %.str.5.sink1368, i32 noundef %1480, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 181, ptr noundef %1482, ptr noundef %1484, ptr noundef %1486, i32 noundef %1487) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1489:                                             ; preds = %1461
  %1490 = load i32, ptr @test_count, align 4, !tbaa !5
  %1491 = add nsw i32 %1490, 1
  store i32 %1491, ptr @test_count, align 4, !tbaa !5
  %1492 = load i32, ptr %285, align 4, !tbaa !5
  %1493 = icmp eq i32 %1492, 402653194
  br i1 %1493, label %1516, label %1494

1494:                                             ; preds = %1489
  %1495 = load i32, ptr %339, align 4, !tbaa !5
  %1496 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1497 = call i32 @s2n_print_stacktrace(ptr noundef %1496) #12
  %1498 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1499 = trunc nuw i8 %1498 to i1
  br i1 %1499, label %1500, label %1504

1500:                                             ; preds = %1494
  %1501 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1502 = call i32 @fileno(ptr noundef %1501) #12
  %1503 = call i32 @isatty(i32 noundef %1502) #12
  %.not590 = icmp eq i32 %1503, 0
  br i1 %.not590, label %1504, label %1505

1504:                                             ; preds = %1500, %1494
  br label %1505

1505:                                             ; preds = %1500, %1504
  %.str.5.sink1377 = phi ptr [ @.str.5, %1504 ], [ @.str.2, %1500 ]
  store i32 %1495, ptr %339, align 4, !tbaa !5
  %1506 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1507 = load i32, ptr @test_count, align 4, !tbaa !5
  %1508 = load i32, ptr %285, align 4, !tbaa !5
  %1509 = call ptr @s2n_strerror(i32 noundef %1508, ptr noundef nonnull @.str.4) #12
  %1510 = load i32, ptr %285, align 4, !tbaa !5
  %1511 = call ptr @s2n_strerror_debug(i32 noundef %1510, ptr noundef nonnull @.str.4) #12
  %1512 = load i32, ptr %339, align 4, !tbaa !5
  %1513 = call ptr @strerror(i32 noundef %1512) #12
  %1514 = load i32, ptr %339, align 4, !tbaa !5
  %1515 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1506, ptr noundef nonnull %.str.5.sink1377, i32 noundef %1507, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 181, ptr noundef %1509, ptr noundef %1511, ptr noundef %1513, i32 noundef %1514) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1516:                                             ; preds = %1489
  %1517 = add nsw i32 %1490, 2
  store i32 %1517, ptr @test_count, align 4, !tbaa !5
  %1518 = call ptr @s2n_strerror_debug(i32 noundef 402653194, ptr noundef nonnull @.str.4) #12
  %1519 = icmp eq ptr %1518, null
  br i1 %1519, label %1520, label %1542

1520:                                             ; preds = %1516
  %1521 = load i32, ptr %339, align 4, !tbaa !5
  %1522 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1523 = call i32 @s2n_print_stacktrace(ptr noundef %1522) #12
  %1524 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1525 = trunc nuw i8 %1524 to i1
  br i1 %1525, label %1526, label %1530

1526:                                             ; preds = %1520
  %1527 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1528 = call i32 @fileno(ptr noundef %1527) #12
  %1529 = call i32 @isatty(i32 noundef %1528) #12
  %.not777 = icmp eq i32 %1529, 0
  br i1 %.not777, label %1530, label %1531

1530:                                             ; preds = %1526, %1520
  br label %1531

1531:                                             ; preds = %1526, %1530
  %.str.5.sink1386 = phi ptr [ @.str.5, %1530 ], [ @.str.2, %1526 ]
  store i32 %1521, ptr %339, align 4, !tbaa !5
  %1532 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1533 = load i32, ptr @test_count, align 4, !tbaa !5
  %1534 = load i32, ptr %285, align 4, !tbaa !5
  %1535 = call ptr @s2n_strerror(i32 noundef %1534, ptr noundef nonnull @.str.4) #12
  %1536 = load i32, ptr %285, align 4, !tbaa !5
  %1537 = call ptr @s2n_strerror_debug(i32 noundef %1536, ptr noundef nonnull @.str.4) #12
  %1538 = load i32, ptr %339, align 4, !tbaa !5
  %1539 = call ptr @strerror(i32 noundef %1538) #12
  %1540 = load i32, ptr %339, align 4, !tbaa !5
  %1541 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1532, ptr noundef nonnull %.str.5.sink1386, i32 noundef %1533, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 181, ptr noundef %1535, ptr noundef %1537, ptr noundef %1539, i32 noundef %1540) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1542:                                             ; preds = %1516
  store i32 0, ptr %285, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %339, align 4, !tbaa !5
  %1543 = load i32, ptr @test_count, align 4, !tbaa !5
  %1544 = add nsw i32 %1543, 1
  store i32 %1544, ptr @test_count, align 4, !tbaa !5
  %1545 = load ptr, ptr %15, align 8, !tbaa !9
  %1546 = call i32 @s2n_tls13_derive_secret(ptr noundef %1545, i32 noundef 1, i32 noundef 1, ptr noundef null) #12
  %1547 = call zeroext i1 @s2n_result_is_error(i32 %1546)
  br i1 %1547, label %1570, label %1548

1548:                                             ; preds = %1542
  %1549 = load i32, ptr %339, align 4, !tbaa !5
  %1550 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1551 = call i32 @s2n_print_stacktrace(ptr noundef %1550) #12
  %1552 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1553 = trunc nuw i8 %1552 to i1
  br i1 %1553, label %1554, label %1558

1554:                                             ; preds = %1548
  %1555 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1556 = call i32 @fileno(ptr noundef %1555) #12
  %1557 = call i32 @isatty(i32 noundef %1556) #12
  %.not591 = icmp eq i32 %1557, 0
  br i1 %.not591, label %1558, label %1559

1558:                                             ; preds = %1554, %1548
  br label %1559

1559:                                             ; preds = %1554, %1558
  %.str.5.sink1395 = phi ptr [ @.str.5, %1558 ], [ @.str.2, %1554 ]
  store i32 %1549, ptr %339, align 4, !tbaa !5
  %1560 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1561 = load i32, ptr @test_count, align 4, !tbaa !5
  %1562 = load i32, ptr %285, align 4, !tbaa !5
  %1563 = call ptr @s2n_strerror(i32 noundef %1562, ptr noundef nonnull @.str.4) #12
  %1564 = load i32, ptr %285, align 4, !tbaa !5
  %1565 = call ptr @s2n_strerror_debug(i32 noundef %1564, ptr noundef nonnull @.str.4) #12
  %1566 = load i32, ptr %339, align 4, !tbaa !5
  %1567 = call ptr @strerror(i32 noundef %1566) #12
  %1568 = load i32, ptr %339, align 4, !tbaa !5
  %1569 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1560, ptr noundef nonnull %.str.5.sink1395, i32 noundef %1561, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 182, ptr noundef %1563, ptr noundef %1565, ptr noundef %1567, i32 noundef %1568) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1570:                                             ; preds = %1542
  %1571 = load i32, ptr @test_count, align 4, !tbaa !5
  %1572 = add nsw i32 %1571, 1
  store i32 %1572, ptr @test_count, align 4, !tbaa !5
  %1573 = load i32, ptr %285, align 4, !tbaa !5
  %1574 = icmp eq i32 %1573, 402653193
  br i1 %1574, label %1597, label %1575

1575:                                             ; preds = %1570
  %1576 = load i32, ptr %339, align 4, !tbaa !5
  %1577 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1578 = call i32 @s2n_print_stacktrace(ptr noundef %1577) #12
  %1579 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1580 = trunc nuw i8 %1579 to i1
  br i1 %1580, label %1581, label %1585

1581:                                             ; preds = %1575
  %1582 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1583 = call i32 @fileno(ptr noundef %1582) #12
  %1584 = call i32 @isatty(i32 noundef %1583) #12
  %.not592 = icmp eq i32 %1584, 0
  br i1 %.not592, label %1585, label %1586

1585:                                             ; preds = %1581, %1575
  br label %1586

1586:                                             ; preds = %1581, %1585
  %.str.5.sink1404 = phi ptr [ @.str.5, %1585 ], [ @.str.2, %1581 ]
  store i32 %1576, ptr %339, align 4, !tbaa !5
  %1587 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1588 = load i32, ptr @test_count, align 4, !tbaa !5
  %1589 = load i32, ptr %285, align 4, !tbaa !5
  %1590 = call ptr @s2n_strerror(i32 noundef %1589, ptr noundef nonnull @.str.4) #12
  %1591 = load i32, ptr %285, align 4, !tbaa !5
  %1592 = call ptr @s2n_strerror_debug(i32 noundef %1591, ptr noundef nonnull @.str.4) #12
  %1593 = load i32, ptr %339, align 4, !tbaa !5
  %1594 = call ptr @strerror(i32 noundef %1593) #12
  %1595 = load i32, ptr %339, align 4, !tbaa !5
  %1596 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1587, ptr noundef nonnull %.str.5.sink1404, i32 noundef %1588, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 182, ptr noundef %1590, ptr noundef %1592, ptr noundef %1594, i32 noundef %1595) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1597:                                             ; preds = %1570
  %1598 = add nsw i32 %1571, 2
  store i32 %1598, ptr @test_count, align 4, !tbaa !5
  %1599 = call ptr @s2n_strerror_debug(i32 noundef 402653193, ptr noundef nonnull @.str.4) #12
  %1600 = icmp eq ptr %1599, null
  br i1 %1600, label %1601, label %1623

1601:                                             ; preds = %1597
  %1602 = load i32, ptr %339, align 4, !tbaa !5
  %1603 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1604 = call i32 @s2n_print_stacktrace(ptr noundef %1603) #12
  %1605 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1606 = trunc nuw i8 %1605 to i1
  br i1 %1606, label %1607, label %1611

1607:                                             ; preds = %1601
  %1608 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1609 = call i32 @fileno(ptr noundef %1608) #12
  %1610 = call i32 @isatty(i32 noundef %1609) #12
  %.not776 = icmp eq i32 %1610, 0
  br i1 %.not776, label %1611, label %1612

1611:                                             ; preds = %1607, %1601
  br label %1612

1612:                                             ; preds = %1607, %1611
  %.str.5.sink1413 = phi ptr [ @.str.5, %1611 ], [ @.str.2, %1607 ]
  store i32 %1602, ptr %339, align 4, !tbaa !5
  %1613 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1614 = load i32, ptr @test_count, align 4, !tbaa !5
  %1615 = load i32, ptr %285, align 4, !tbaa !5
  %1616 = call ptr @s2n_strerror(i32 noundef %1615, ptr noundef nonnull @.str.4) #12
  %1617 = load i32, ptr %285, align 4, !tbaa !5
  %1618 = call ptr @s2n_strerror_debug(i32 noundef %1617, ptr noundef nonnull @.str.4) #12
  %1619 = load i32, ptr %339, align 4, !tbaa !5
  %1620 = call ptr @strerror(i32 noundef %1619) #12
  %1621 = load i32, ptr %339, align 4, !tbaa !5
  %1622 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1613, ptr noundef nonnull %.str.5.sink1413, i32 noundef %1614, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 182, ptr noundef %1616, ptr noundef %1618, ptr noundef %1620, i32 noundef %1621) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1623:                                             ; preds = %1597
  store i32 0, ptr %285, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %339, align 4, !tbaa !5
  %1624 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %15) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #12
  call void @llvm.lifetime.end.p0(i64 4184, ptr nonnull %14) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %13) #12
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %16) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(48) %16, i8 0, i64 48, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %17) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %17, i8 0, i64 24, i1 false)
  %1625 = load i32, ptr @test_count, align 4, !tbaa !5
  %1626 = add nsw i32 %1625, 1
  store i32 %1626, ptr @test_count, align 4, !tbaa !5
  %1627 = call i32 @s2n_blob_init(ptr noundef nonnull %17, ptr noundef nonnull %16, i32 noundef 48) #12
  %1628 = icmp eq i32 %1627, -1
  br i1 %1628, label %1629, label %1651

1629:                                             ; preds = %1623
  %1630 = load i32, ptr %339, align 4, !tbaa !5
  %1631 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1632 = call i32 @s2n_print_stacktrace(ptr noundef %1631) #12
  %1633 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1634 = trunc nuw i8 %1633 to i1
  br i1 %1634, label %1635, label %1639

1635:                                             ; preds = %1629
  %1636 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1637 = call i32 @fileno(ptr noundef %1636) #12
  %1638 = call i32 @isatty(i32 noundef %1637) #12
  %.not775 = icmp eq i32 %1638, 0
  br i1 %.not775, label %1639, label %1640

1639:                                             ; preds = %1635, %1629
  br label %1640

1640:                                             ; preds = %1635, %1639
  %.str.5.sink1422 = phi ptr [ @.str.5, %1639 ], [ @.str.2, %1635 ]
  store i32 %1630, ptr %339, align 4, !tbaa !5
  %1641 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1642 = load i32, ptr @test_count, align 4, !tbaa !5
  %1643 = load i32, ptr %285, align 4, !tbaa !5
  %1644 = call ptr @s2n_strerror(i32 noundef %1643, ptr noundef nonnull @.str.4) #12
  %1645 = load i32, ptr %285, align 4, !tbaa !5
  %1646 = call ptr @s2n_strerror_debug(i32 noundef %1645, ptr noundef nonnull @.str.4) #12
  %1647 = load i32, ptr %339, align 4, !tbaa !5
  %1648 = call ptr @strerror(i32 noundef %1647) #12
  %1649 = load i32, ptr %339, align 4, !tbaa !5
  %1650 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1641, ptr noundef nonnull %.str.5.sink1422, i32 noundef %1642, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 189, ptr noundef %1644, ptr noundef %1646, ptr noundef %1648, i32 noundef %1649) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1651:                                             ; preds = %1623
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #12
  %1652 = call ptr @s2n_connection_new(i32 noundef 0) #12
  store ptr %1652, ptr %18, align 8, !tbaa !9
  %1653 = getelementptr inbounds i8, ptr %1652, i64 232
  %1654 = load ptr, ptr %1653, align 8, !tbaa !22
  store ptr @s2n_tls13_aes_256_gcm_sha384, ptr %1654, align 8, !tbaa !48
  %1655 = load ptr, ptr %18, align 8, !tbaa !9
  %1656 = getelementptr inbounds i8, ptr %1655, i64 628
  store i32 0, ptr %1656, align 4, !tbaa !53
  %1657 = load i32, ptr @test_count, align 4, !tbaa !5
  %1658 = add nsw i32 %1657, 1
  store i32 %1658, ptr @test_count, align 4, !tbaa !5
  %1659 = call i32 @s2n_tls13_derive_secret(ptr noundef %1655, i32 noundef 1, i32 noundef 0, ptr noundef nonnull %17) #12
  %1660 = call zeroext i1 @s2n_result_is_ok(i32 %1659)
  br i1 %1660, label %1683, label %1661

1661:                                             ; preds = %1651
  %1662 = load i32, ptr %339, align 4, !tbaa !5
  %1663 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1664 = call i32 @s2n_print_stacktrace(ptr noundef %1663) #12
  %1665 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1666 = trunc nuw i8 %1665 to i1
  br i1 %1666, label %1667, label %1671

1667:                                             ; preds = %1661
  %1668 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1669 = call i32 @fileno(ptr noundef %1668) #12
  %1670 = call i32 @isatty(i32 noundef %1669) #12
  %.not593 = icmp eq i32 %1670, 0
  br i1 %.not593, label %1671, label %1672

1671:                                             ; preds = %1667, %1661
  br label %1672

1672:                                             ; preds = %1667, %1671
  %.str.5.sink1431 = phi ptr [ @.str.5, %1671 ], [ @.str.2, %1667 ]
  store i32 %1662, ptr %339, align 4, !tbaa !5
  %1673 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1674 = load i32, ptr @test_count, align 4, !tbaa !5
  %1675 = load i32, ptr %285, align 4, !tbaa !5
  %1676 = call ptr @s2n_strerror(i32 noundef %1675, ptr noundef nonnull @.str.4) #12
  %1677 = load i32, ptr %285, align 4, !tbaa !5
  %1678 = call ptr @s2n_strerror_debug(i32 noundef %1677, ptr noundef nonnull @.str.4) #12
  %1679 = load i32, ptr %339, align 4, !tbaa !5
  %1680 = call ptr @strerror(i32 noundef %1679) #12
  %1681 = load i32, ptr %339, align 4, !tbaa !5
  %1682 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1673, ptr noundef nonnull %.str.5.sink1431, i32 noundef %1674, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 196, ptr noundef %1676, ptr noundef %1678, ptr noundef %1680, i32 noundef %1681) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1683:                                             ; preds = %1651
  %1684 = load i32, ptr @test_count, align 4, !tbaa !5
  %1685 = add nsw i32 %1684, 1
  store i32 %1685, ptr @test_count, align 4, !tbaa !5
  %1686 = load ptr, ptr %17, align 8, !tbaa !61
  %bcmp594 = call i32 @bcmp(ptr noundef nonnull dereferenceable(48) %1686, ptr noundef nonnull dereferenceable(48) %3, i64 48)
  %1687 = icmp eq i32 %bcmp594, 0
  br i1 %1687, label %1688, label %1710

1688:                                             ; preds = %1683
  %1689 = load i32, ptr %339, align 4, !tbaa !5
  %1690 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1691 = call i32 @s2n_print_stacktrace(ptr noundef %1690) #12
  %1692 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1693 = trunc nuw i8 %1692 to i1
  br i1 %1693, label %1694, label %1698

1694:                                             ; preds = %1688
  %1695 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1696 = call i32 @fileno(ptr noundef %1695) #12
  %1697 = call i32 @isatty(i32 noundef %1696) #12
  %.not774 = icmp eq i32 %1697, 0
  br i1 %.not774, label %1698, label %1699

1698:                                             ; preds = %1694, %1688
  br label %1699

1699:                                             ; preds = %1694, %1698
  %.str.5.sink1440 = phi ptr [ @.str.5, %1698 ], [ @.str.2, %1694 ]
  store i32 %1689, ptr %339, align 4, !tbaa !5
  %1700 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1701 = load i32, ptr @test_count, align 4, !tbaa !5
  %1702 = load i32, ptr %285, align 4, !tbaa !5
  %1703 = call ptr @s2n_strerror(i32 noundef %1702, ptr noundef nonnull @.str.4) #12
  %1704 = load i32, ptr %285, align 4, !tbaa !5
  %1705 = call ptr @s2n_strerror_debug(i32 noundef %1704, ptr noundef nonnull @.str.4) #12
  %1706 = load i32, ptr %339, align 4, !tbaa !5
  %1707 = call ptr @strerror(i32 noundef %1706) #12
  %1708 = load i32, ptr %339, align 4, !tbaa !5
  %1709 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1700, ptr noundef nonnull %.str.5.sink1440, i32 noundef %1701, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 197, ptr noundef %1703, ptr noundef %1705, ptr noundef %1707, i32 noundef %1708) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1710:                                             ; preds = %1683
  %1711 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %18) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %17) #12
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %16) #12
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %19) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(48) %19, i8 0, i64 48, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %20) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %20, i8 0, i64 24, i1 false)
  %1712 = load i32, ptr @test_count, align 4, !tbaa !5
  %1713 = add nsw i32 %1712, 1
  store i32 %1713, ptr @test_count, align 4, !tbaa !5
  %1714 = call i32 @s2n_blob_init(ptr noundef nonnull %20, ptr noundef nonnull %19, i32 noundef 48) #12
  %1715 = icmp eq i32 %1714, -1
  br i1 %1715, label %1716, label %1738

1716:                                             ; preds = %1710
  %1717 = load i32, ptr %339, align 4, !tbaa !5
  %1718 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1719 = call i32 @s2n_print_stacktrace(ptr noundef %1718) #12
  %1720 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1721 = trunc nuw i8 %1720 to i1
  br i1 %1721, label %1722, label %1726

1722:                                             ; preds = %1716
  %1723 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1724 = call i32 @fileno(ptr noundef %1723) #12
  %1725 = call i32 @isatty(i32 noundef %1724) #12
  %.not773 = icmp eq i32 %1725, 0
  br i1 %.not773, label %1726, label %1727

1726:                                             ; preds = %1722, %1716
  br label %1727

1727:                                             ; preds = %1722, %1726
  %.str.5.sink1449 = phi ptr [ @.str.5, %1726 ], [ @.str.2, %1722 ]
  store i32 %1717, ptr %339, align 4, !tbaa !5
  %1728 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1729 = load i32, ptr @test_count, align 4, !tbaa !5
  %1730 = load i32, ptr %285, align 4, !tbaa !5
  %1731 = call ptr @s2n_strerror(i32 noundef %1730, ptr noundef nonnull @.str.4) #12
  %1732 = load i32, ptr %285, align 4, !tbaa !5
  %1733 = call ptr @s2n_strerror_debug(i32 noundef %1732, ptr noundef nonnull @.str.4) #12
  %1734 = load i32, ptr %339, align 4, !tbaa !5
  %1735 = call ptr @strerror(i32 noundef %1734) #12
  %1736 = load i32, ptr %339, align 4, !tbaa !5
  %1737 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1728, ptr noundef nonnull %.str.5.sink1449, i32 noundef %1729, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 204, ptr noundef %1731, ptr noundef %1733, ptr noundef %1735, i32 noundef %1736) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1738:                                             ; preds = %1710
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #12
  %1739 = call ptr @s2n_connection_new(i32 noundef 0) #12
  store ptr %1739, ptr %21, align 8, !tbaa !9
  %1740 = getelementptr inbounds i8, ptr %1739, i64 220
  store i8 34, ptr %1740, align 4, !tbaa !62
  %1741 = load i32, ptr @test_count, align 4, !tbaa !5
  %1742 = add nsw i32 %1741, 1
  store i32 %1742, ptr @test_count, align 4, !tbaa !5
  %1743 = call i32 @s2n_conn_choose_state_machine(ptr noundef %1739, i8 noundef zeroext 34) #12
  %1744 = call zeroext i1 @s2n_result_is_ok(i32 %1743)
  br i1 %1744, label %1767, label %1745

1745:                                             ; preds = %1738
  %1746 = load i32, ptr %339, align 4, !tbaa !5
  %1747 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1748 = call i32 @s2n_print_stacktrace(ptr noundef %1747) #12
  %1749 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1750 = trunc nuw i8 %1749 to i1
  br i1 %1750, label %1751, label %1755

1751:                                             ; preds = %1745
  %1752 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1753 = call i32 @fileno(ptr noundef %1752) #12
  %1754 = call i32 @isatty(i32 noundef %1753) #12
  %.not595 = icmp eq i32 %1754, 0
  br i1 %.not595, label %1755, label %1756

1755:                                             ; preds = %1751, %1745
  br label %1756

1756:                                             ; preds = %1751, %1755
  %.str.5.sink1458 = phi ptr [ @.str.5, %1755 ], [ @.str.2, %1751 ]
  store i32 %1746, ptr %339, align 4, !tbaa !5
  %1757 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1758 = load i32, ptr @test_count, align 4, !tbaa !5
  %1759 = load i32, ptr %285, align 4, !tbaa !5
  %1760 = call ptr @s2n_strerror(i32 noundef %1759, ptr noundef nonnull @.str.4) #12
  %1761 = load i32, ptr %285, align 4, !tbaa !5
  %1762 = call ptr @s2n_strerror_debug(i32 noundef %1761, ptr noundef nonnull @.str.4) #12
  %1763 = load i32, ptr %339, align 4, !tbaa !5
  %1764 = call ptr @strerror(i32 noundef %1763) #12
  %1765 = load i32, ptr %339, align 4, !tbaa !5
  %1766 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1757, ptr noundef nonnull %.str.5.sink1458, i32 noundef %1758, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 209, ptr noundef %1760, ptr noundef %1762, ptr noundef %1764, i32 noundef %1765) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1767:                                             ; preds = %1738
  %1768 = load ptr, ptr %21, align 8, !tbaa !9
  %1769 = getelementptr inbounds i8, ptr %1768, i64 232
  %1770 = load ptr, ptr %1769, align 8, !tbaa !22
  store ptr @s2n_tls13_aes_256_gcm_sha384, ptr %1770, align 8, !tbaa !48
  %1771 = load ptr, ptr %21, align 8, !tbaa !9
  %1772 = getelementptr inbounds i8, ptr %1771, i64 2172
  store i32 3, ptr %1772, align 4, !tbaa !63
  %1773 = load i32, ptr @test_count, align 4, !tbaa !5
  %1774 = add nsw i32 %1773, 1
  store i32 %1774, ptr @test_count, align 4, !tbaa !5
  %1775 = call i32 @s2n_set_test_key_shares(ptr noundef %1771, ptr noundef nonnull @s2n_ecc_curve_secp256r1)
  %1776 = call zeroext i1 @s2n_result_is_ok(i32 %1775)
  br i1 %1776, label %1799, label %1777

1777:                                             ; preds = %1767
  %1778 = load i32, ptr %339, align 4, !tbaa !5
  %1779 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1780 = call i32 @s2n_print_stacktrace(ptr noundef %1779) #12
  %1781 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1782 = trunc nuw i8 %1781 to i1
  br i1 %1782, label %1783, label %1787

1783:                                             ; preds = %1777
  %1784 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1785 = call i32 @fileno(ptr noundef %1784) #12
  %1786 = call i32 @isatty(i32 noundef %1785) #12
  %.not596 = icmp eq i32 %1786, 0
  br i1 %.not596, label %1787, label %1788

1787:                                             ; preds = %1783, %1777
  br label %1788

1788:                                             ; preds = %1783, %1787
  %.str.5.sink1467 = phi ptr [ @.str.5, %1787 ], [ @.str.2, %1783 ]
  store i32 %1778, ptr %339, align 4, !tbaa !5
  %1789 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1790 = load i32, ptr @test_count, align 4, !tbaa !5
  %1791 = load i32, ptr %285, align 4, !tbaa !5
  %1792 = call ptr @s2n_strerror(i32 noundef %1791, ptr noundef nonnull @.str.4) #12
  %1793 = load i32, ptr %285, align 4, !tbaa !5
  %1794 = call ptr @s2n_strerror_debug(i32 noundef %1793, ptr noundef nonnull @.str.4) #12
  %1795 = load i32, ptr %339, align 4, !tbaa !5
  %1796 = call ptr @strerror(i32 noundef %1795) #12
  %1797 = load i32, ptr %339, align 4, !tbaa !5
  %1798 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1789, ptr noundef nonnull %.str.5.sink1467, i32 noundef %1790, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 212, ptr noundef %1792, ptr noundef %1794, ptr noundef %1796, i32 noundef %1797) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1799:                                             ; preds = %1767
  %1800 = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.message_nums, i64 8), align 8, !tbaa !5
  %1801 = load ptr, ptr %21, align 8, !tbaa !9
  %1802 = getelementptr inbounds i8, ptr %1801, i64 2176
  store i32 %1800, ptr %1802, align 8, !tbaa !64
  %1803 = load i32, ptr @test_count, align 4, !tbaa !5
  %1804 = add nsw i32 %1803, 1
  store i32 %1804, ptr @test_count, align 4, !tbaa !5
  %1805 = call i32 @s2n_tls13_derive_secret(ptr noundef %1801, i32 noundef 3, i32 noundef 0, ptr noundef nonnull %20) #12
  %1806 = call zeroext i1 @s2n_result_is_error(i32 %1805)
  br i1 %1806, label %1829, label %1807

1807:                                             ; preds = %1799
  %1808 = load i32, ptr %339, align 4, !tbaa !5
  %1809 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1810 = call i32 @s2n_print_stacktrace(ptr noundef %1809) #12
  %1811 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1812 = trunc nuw i8 %1811 to i1
  br i1 %1812, label %1813, label %1817

1813:                                             ; preds = %1807
  %1814 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1815 = call i32 @fileno(ptr noundef %1814) #12
  %1816 = call i32 @isatty(i32 noundef %1815) #12
  %.not597 = icmp eq i32 %1816, 0
  br i1 %.not597, label %1817, label %1818

1817:                                             ; preds = %1813, %1807
  br label %1818

1818:                                             ; preds = %1813, %1817
  %.str.5.sink1476 = phi ptr [ @.str.5, %1817 ], [ @.str.2, %1813 ]
  store i32 %1808, ptr %339, align 4, !tbaa !5
  %1819 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1820 = load i32, ptr @test_count, align 4, !tbaa !5
  %1821 = load i32, ptr %285, align 4, !tbaa !5
  %1822 = call ptr @s2n_strerror(i32 noundef %1821, ptr noundef nonnull @.str.4) #12
  %1823 = load i32, ptr %285, align 4, !tbaa !5
  %1824 = call ptr @s2n_strerror_debug(i32 noundef %1823, ptr noundef nonnull @.str.4) #12
  %1825 = load i32, ptr %339, align 4, !tbaa !5
  %1826 = call ptr @strerror(i32 noundef %1825) #12
  %1827 = load i32, ptr %339, align 4, !tbaa !5
  %1828 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1819, ptr noundef nonnull %.str.5.sink1476, i32 noundef %1820, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.1, i32 noundef 217, ptr noundef %1822, ptr noundef %1824, ptr noundef %1826, i32 noundef %1827) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1829:                                             ; preds = %1799
  %1830 = load i32, ptr @test_count, align 4, !tbaa !5
  %1831 = add nsw i32 %1830, 1
  store i32 %1831, ptr @test_count, align 4, !tbaa !5
  %1832 = load i32, ptr %285, align 4, !tbaa !5
  %1833 = icmp eq i32 %1832, 469762122
  br i1 %1833, label %1856, label %1834

1834:                                             ; preds = %1829
  %1835 = load i32, ptr %339, align 4, !tbaa !5
  %1836 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1837 = call i32 @s2n_print_stacktrace(ptr noundef %1836) #12
  %1838 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1839 = trunc nuw i8 %1838 to i1
  br i1 %1839, label %1840, label %1844

1840:                                             ; preds = %1834
  %1841 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1842 = call i32 @fileno(ptr noundef %1841) #12
  %1843 = call i32 @isatty(i32 noundef %1842) #12
  %.not598 = icmp eq i32 %1843, 0
  br i1 %.not598, label %1844, label %1845

1844:                                             ; preds = %1840, %1834
  br label %1845

1845:                                             ; preds = %1840, %1844
  %.str.5.sink1485 = phi ptr [ @.str.5, %1844 ], [ @.str.2, %1840 ]
  store i32 %1835, ptr %339, align 4, !tbaa !5
  %1846 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1847 = load i32, ptr @test_count, align 4, !tbaa !5
  %1848 = load i32, ptr %285, align 4, !tbaa !5
  %1849 = call ptr @s2n_strerror(i32 noundef %1848, ptr noundef nonnull @.str.4) #12
  %1850 = load i32, ptr %285, align 4, !tbaa !5
  %1851 = call ptr @s2n_strerror_debug(i32 noundef %1850, ptr noundef nonnull @.str.4) #12
  %1852 = load i32, ptr %339, align 4, !tbaa !5
  %1853 = call ptr @strerror(i32 noundef %1852) #12
  %1854 = load i32, ptr %339, align 4, !tbaa !5
  %1855 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1846, ptr noundef nonnull %.str.5.sink1485, i32 noundef %1847, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 217, ptr noundef %1849, ptr noundef %1851, ptr noundef %1853, i32 noundef %1854) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1856:                                             ; preds = %1829
  %1857 = add nsw i32 %1830, 2
  store i32 %1857, ptr @test_count, align 4, !tbaa !5
  %1858 = call ptr @s2n_strerror_debug(i32 noundef 469762122, ptr noundef nonnull @.str.4) #12
  %1859 = icmp eq ptr %1858, null
  br i1 %1859, label %1860, label %1882

1860:                                             ; preds = %1856
  %1861 = load i32, ptr %339, align 4, !tbaa !5
  %1862 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1863 = call i32 @s2n_print_stacktrace(ptr noundef %1862) #12
  %1864 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1865 = trunc nuw i8 %1864 to i1
  br i1 %1865, label %1866, label %1870

1866:                                             ; preds = %1860
  %1867 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1868 = call i32 @fileno(ptr noundef %1867) #12
  %1869 = call i32 @isatty(i32 noundef %1868) #12
  %.not772 = icmp eq i32 %1869, 0
  br i1 %.not772, label %1870, label %1871

1870:                                             ; preds = %1866, %1860
  br label %1871

1871:                                             ; preds = %1866, %1870
  %.str.5.sink1494 = phi ptr [ @.str.5, %1870 ], [ @.str.2, %1866 ]
  store i32 %1861, ptr %339, align 4, !tbaa !5
  %1872 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1873 = load i32, ptr @test_count, align 4, !tbaa !5
  %1874 = load i32, ptr %285, align 4, !tbaa !5
  %1875 = call ptr @s2n_strerror(i32 noundef %1874, ptr noundef nonnull @.str.4) #12
  %1876 = load i32, ptr %285, align 4, !tbaa !5
  %1877 = call ptr @s2n_strerror_debug(i32 noundef %1876, ptr noundef nonnull @.str.4) #12
  %1878 = load i32, ptr %339, align 4, !tbaa !5
  %1879 = call ptr @strerror(i32 noundef %1878) #12
  %1880 = load i32, ptr %339, align 4, !tbaa !5
  %1881 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1872, ptr noundef nonnull %.str.5.sink1494, i32 noundef %1873, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 217, ptr noundef %1875, ptr noundef %1877, ptr noundef %1879, i32 noundef %1880) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1882:                                             ; preds = %1856
  store i32 0, ptr %285, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %339, align 4, !tbaa !5
  %1883 = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.message_nums, i64 12), align 4, !tbaa !5
  %1884 = load ptr, ptr %21, align 8, !tbaa !9
  %1885 = getelementptr inbounds i8, ptr %1884, i64 2176
  store i32 %1883, ptr %1885, align 8, !tbaa !64
  %1886 = load i32, ptr @test_count, align 4, !tbaa !5
  %1887 = add nsw i32 %1886, 1
  store i32 %1887, ptr @test_count, align 4, !tbaa !5
  %1888 = call i32 @s2n_tls13_derive_secret(ptr noundef %1884, i32 noundef 3, i32 noundef 0, ptr noundef nonnull %20) #12
  %1889 = call zeroext i1 @s2n_result_is_ok(i32 %1888)
  br i1 %1889, label %1912, label %1890

1890:                                             ; preds = %1882
  %1891 = load i32, ptr %339, align 4, !tbaa !5
  %1892 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1893 = call i32 @s2n_print_stacktrace(ptr noundef %1892) #12
  %1894 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1895 = trunc nuw i8 %1894 to i1
  br i1 %1895, label %1896, label %1900

1896:                                             ; preds = %1890
  %1897 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1898 = call i32 @fileno(ptr noundef %1897) #12
  %1899 = call i32 @isatty(i32 noundef %1898) #12
  %.not599 = icmp eq i32 %1899, 0
  br i1 %.not599, label %1900, label %1901

1900:                                             ; preds = %1896, %1890
  br label %1901

1901:                                             ; preds = %1896, %1900
  %.str.5.sink1503 = phi ptr [ @.str.5, %1900 ], [ @.str.2, %1896 ]
  store i32 %1891, ptr %339, align 4, !tbaa !5
  %1902 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1903 = load i32, ptr @test_count, align 4, !tbaa !5
  %1904 = load i32, ptr %285, align 4, !tbaa !5
  %1905 = call ptr @s2n_strerror(i32 noundef %1904, ptr noundef nonnull @.str.4) #12
  %1906 = load i32, ptr %285, align 4, !tbaa !5
  %1907 = call ptr @s2n_strerror_debug(i32 noundef %1906, ptr noundef nonnull @.str.4) #12
  %1908 = load i32, ptr %339, align 4, !tbaa !5
  %1909 = call ptr @strerror(i32 noundef %1908) #12
  %1910 = load i32, ptr %339, align 4, !tbaa !5
  %1911 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1902, ptr noundef nonnull %.str.5.sink1503, i32 noundef %1903, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.1, i32 noundef 221, ptr noundef %1905, ptr noundef %1907, ptr noundef %1909, i32 noundef %1910) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1912:                                             ; preds = %1882
  %1913 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %21) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %20) #12
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %19) #12
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %22) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(48) %22, i8 0, i64 48, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %23) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %23, i8 0, i64 24, i1 false)
  %1914 = load i32, ptr @test_count, align 4, !tbaa !5
  %1915 = add nsw i32 %1914, 1
  store i32 %1915, ptr @test_count, align 4, !tbaa !5
  %1916 = call i32 @s2n_blob_init(ptr noundef nonnull %23, ptr noundef nonnull %22, i32 noundef 48) #12
  %1917 = icmp eq i32 %1916, -1
  br i1 %1917, label %1918, label %1940

1918:                                             ; preds = %1912
  %1919 = load i32, ptr %339, align 4, !tbaa !5
  %1920 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1921 = call i32 @s2n_print_stacktrace(ptr noundef %1920) #12
  %1922 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1923 = trunc nuw i8 %1922 to i1
  br i1 %1923, label %1924, label %1928

1924:                                             ; preds = %1918
  %1925 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1926 = call i32 @fileno(ptr noundef %1925) #12
  %1927 = call i32 @isatty(i32 noundef %1926) #12
  %.not771 = icmp eq i32 %1927, 0
  br i1 %.not771, label %1928, label %1929

1928:                                             ; preds = %1924, %1918
  br label %1929

1929:                                             ; preds = %1924, %1928
  %.str.5.sink1512 = phi ptr [ @.str.5, %1928 ], [ @.str.2, %1924 ]
  store i32 %1919, ptr %339, align 4, !tbaa !5
  %1930 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1931 = load i32, ptr @test_count, align 4, !tbaa !5
  %1932 = load i32, ptr %285, align 4, !tbaa !5
  %1933 = call ptr @s2n_strerror(i32 noundef %1932, ptr noundef nonnull @.str.4) #12
  %1934 = load i32, ptr %285, align 4, !tbaa !5
  %1935 = call ptr @s2n_strerror_debug(i32 noundef %1934, ptr noundef nonnull @.str.4) #12
  %1936 = load i32, ptr %339, align 4, !tbaa !5
  %1937 = call ptr @strerror(i32 noundef %1936) #12
  %1938 = load i32, ptr %339, align 4, !tbaa !5
  %1939 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1930, ptr noundef nonnull %.str.5.sink1512, i32 noundef %1931, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 228, ptr noundef %1933, ptr noundef %1935, ptr noundef %1937, i32 noundef %1938) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1940:                                             ; preds = %1912
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %24) #12
  %1941 = call ptr @s2n_connection_new(i32 noundef 0) #12
  store ptr %1941, ptr %24, align 8, !tbaa !9
  %1942 = getelementptr inbounds i8, ptr %1941, i64 232
  %1943 = load ptr, ptr %1942, align 8, !tbaa !22
  store ptr @s2n_tls13_aes_256_gcm_sha384, ptr %1943, align 8, !tbaa !48
  %1944 = load i32, ptr @test_count, align 4, !tbaa !5
  %1945 = add nsw i32 %1944, 1
  store i32 %1945, ptr @test_count, align 4, !tbaa !5
  %1946 = load ptr, ptr %24, align 8, !tbaa !9
  %1947 = call i32 @s2n_conn_choose_state_machine(ptr noundef %1946, i8 noundef zeroext 34) #12
  %1948 = call zeroext i1 @s2n_result_is_ok(i32 %1947)
  br i1 %1948, label %1971, label %1949

1949:                                             ; preds = %1940
  %1950 = load i32, ptr %339, align 4, !tbaa !5
  %1951 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1952 = call i32 @s2n_print_stacktrace(ptr noundef %1951) #12
  %1953 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1954 = trunc nuw i8 %1953 to i1
  br i1 %1954, label %1955, label %1959

1955:                                             ; preds = %1949
  %1956 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1957 = call i32 @fileno(ptr noundef %1956) #12
  %1958 = call i32 @isatty(i32 noundef %1957) #12
  %.not600 = icmp eq i32 %1958, 0
  br i1 %.not600, label %1959, label %1960

1959:                                             ; preds = %1955, %1949
  br label %1960

1960:                                             ; preds = %1955, %1959
  %.str.5.sink1521 = phi ptr [ @.str.5, %1959 ], [ @.str.2, %1955 ]
  store i32 %1950, ptr %339, align 4, !tbaa !5
  %1961 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1962 = load i32, ptr @test_count, align 4, !tbaa !5
  %1963 = load i32, ptr %285, align 4, !tbaa !5
  %1964 = call ptr @s2n_strerror(i32 noundef %1963, ptr noundef nonnull @.str.4) #12
  %1965 = load i32, ptr %285, align 4, !tbaa !5
  %1966 = call ptr @s2n_strerror_debug(i32 noundef %1965, ptr noundef nonnull @.str.4) #12
  %1967 = load i32, ptr %339, align 4, !tbaa !5
  %1968 = call ptr @strerror(i32 noundef %1967) #12
  %1969 = load i32, ptr %339, align 4, !tbaa !5
  %1970 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1961, ptr noundef nonnull %.str.5.sink1521, i32 noundef %1962, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 233, ptr noundef %1964, ptr noundef %1966, ptr noundef %1968, i32 noundef %1969) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1971:                                             ; preds = %1940
  %1972 = load ptr, ptr %24, align 8, !tbaa !9
  %1973 = getelementptr inbounds i8, ptr %1972, i64 220
  store i8 34, ptr %1973, align 4, !tbaa !62
  %1974 = getelementptr inbounds i8, ptr %1972, i64 2172
  store i32 3, ptr %1974, align 4, !tbaa !63
  %1975 = getelementptr inbounds i8, ptr %1972, i64 2176
  store i32 %1800, ptr %1975, align 8, !tbaa !64
  %1976 = load i32, ptr @test_count, align 4, !tbaa !5
  %1977 = add nsw i32 %1976, 1
  store i32 %1977, ptr @test_count, align 4, !tbaa !5
  %1978 = call i32 @s2n_set_test_key_shares(ptr noundef %1972, ptr noundef nonnull @s2n_ecc_curve_secp256r1)
  %1979 = call zeroext i1 @s2n_result_is_ok(i32 %1978)
  br i1 %1979, label %2002, label %1980

1980:                                             ; preds = %1971
  %1981 = load i32, ptr %339, align 4, !tbaa !5
  %1982 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1983 = call i32 @s2n_print_stacktrace(ptr noundef %1982) #12
  %1984 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1985 = trunc nuw i8 %1984 to i1
  br i1 %1985, label %1986, label %1990

1986:                                             ; preds = %1980
  %1987 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1988 = call i32 @fileno(ptr noundef %1987) #12
  %1989 = call i32 @isatty(i32 noundef %1988) #12
  %.not601 = icmp eq i32 %1989, 0
  br i1 %.not601, label %1990, label %1991

1990:                                             ; preds = %1986, %1980
  br label %1991

1991:                                             ; preds = %1986, %1990
  %.str.5.sink1530 = phi ptr [ @.str.5, %1990 ], [ @.str.2, %1986 ]
  store i32 %1981, ptr %339, align 4, !tbaa !5
  %1992 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1993 = load i32, ptr @test_count, align 4, !tbaa !5
  %1994 = load i32, ptr %285, align 4, !tbaa !5
  %1995 = call ptr @s2n_strerror(i32 noundef %1994, ptr noundef nonnull @.str.4) #12
  %1996 = load i32, ptr %285, align 4, !tbaa !5
  %1997 = call ptr @s2n_strerror_debug(i32 noundef %1996, ptr noundef nonnull @.str.4) #12
  %1998 = load i32, ptr %339, align 4, !tbaa !5
  %1999 = call ptr @strerror(i32 noundef %1998) #12
  %2000 = load i32, ptr %339, align 4, !tbaa !5
  %2001 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1992, ptr noundef nonnull %.str.5.sink1530, i32 noundef %1993, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 237, ptr noundef %1995, ptr noundef %1997, ptr noundef %1999, i32 noundef %2000) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2002:                                             ; preds = %1971
  %2003 = load ptr, ptr %24, align 8, !tbaa !9
  %2004 = getelementptr inbounds i8, ptr %2003, i64 628
  store i32 0, ptr %2004, align 4, !tbaa !53
  %2005 = load i32, ptr @test_count, align 4, !tbaa !5
  %2006 = add nsw i32 %2005, 1
  store i32 %2006, ptr @test_count, align 4, !tbaa !5
  %2007 = call i32 @s2n_tls13_derive_secret(ptr noundef %2003, i32 noundef 2, i32 noundef 0, ptr noundef nonnull %23) #12
  %2008 = call zeroext i1 @s2n_result_is_ok(i32 %2007)
  br i1 %2008, label %2031, label %2009

2009:                                             ; preds = %2002
  %2010 = load i32, ptr %339, align 4, !tbaa !5
  %2011 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2012 = call i32 @s2n_print_stacktrace(ptr noundef %2011) #12
  %2013 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2014 = trunc nuw i8 %2013 to i1
  br i1 %2014, label %2015, label %2019

2015:                                             ; preds = %2009
  %2016 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2017 = call i32 @fileno(ptr noundef %2016) #12
  %2018 = call i32 @isatty(i32 noundef %2017) #12
  %.not602 = icmp eq i32 %2018, 0
  br i1 %.not602, label %2019, label %2020

2019:                                             ; preds = %2015, %2009
  br label %2020

2020:                                             ; preds = %2015, %2019
  %.str.5.sink1539 = phi ptr [ @.str.5, %2019 ], [ @.str.2, %2015 ]
  store i32 %2010, ptr %339, align 4, !tbaa !5
  %2021 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2022 = load i32, ptr @test_count, align 4, !tbaa !5
  %2023 = load i32, ptr %285, align 4, !tbaa !5
  %2024 = call ptr @s2n_strerror(i32 noundef %2023, ptr noundef nonnull @.str.4) #12
  %2025 = load i32, ptr %285, align 4, !tbaa !5
  %2026 = call ptr @s2n_strerror_debug(i32 noundef %2025, ptr noundef nonnull @.str.4) #12
  %2027 = load i32, ptr %339, align 4, !tbaa !5
  %2028 = call ptr @strerror(i32 noundef %2027) #12
  %2029 = load i32, ptr %339, align 4, !tbaa !5
  %2030 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2021, ptr noundef nonnull %.str.5.sink1539, i32 noundef %2022, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.1, i32 noundef 240, ptr noundef %2024, ptr noundef %2026, ptr noundef %2028, i32 noundef %2029) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2031:                                             ; preds = %2002
  %2032 = load i32, ptr @test_count, align 4, !tbaa !5
  %2033 = add nsw i32 %2032, 1
  store i32 %2033, ptr @test_count, align 4, !tbaa !5
  %2034 = load ptr, ptr %24, align 8, !tbaa !9
  %2035 = getelementptr inbounds i8, ptr %2034, i64 628
  %2036 = load i32, ptr %2035, align 4, !tbaa !53
  %2037 = icmp eq i32 %2036, 2
  br i1 %2037, label %2060, label %2038

2038:                                             ; preds = %2031
  %2039 = load i32, ptr %339, align 4, !tbaa !5
  %2040 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2041 = call i32 @s2n_print_stacktrace(ptr noundef %2040) #12
  %2042 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2043 = trunc nuw i8 %2042 to i1
  br i1 %2043, label %2044, label %2048

2044:                                             ; preds = %2038
  %2045 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2046 = call i32 @fileno(ptr noundef %2045) #12
  %2047 = call i32 @isatty(i32 noundef %2046) #12
  %.not603 = icmp eq i32 %2047, 0
  br i1 %.not603, label %2048, label %2049

2048:                                             ; preds = %2044, %2038
  br label %2049

2049:                                             ; preds = %2044, %2048
  %.str.5.sink1548 = phi ptr [ @.str.5, %2048 ], [ @.str.2, %2044 ]
  store i32 %2039, ptr %339, align 4, !tbaa !5
  %2050 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2051 = load i32, ptr @test_count, align 4, !tbaa !5
  %2052 = load i32, ptr %285, align 4, !tbaa !5
  %2053 = call ptr @s2n_strerror(i32 noundef %2052, ptr noundef nonnull @.str.4) #12
  %2054 = load i32, ptr %285, align 4, !tbaa !5
  %2055 = call ptr @s2n_strerror_debug(i32 noundef %2054, ptr noundef nonnull @.str.4) #12
  %2056 = load i32, ptr %339, align 4, !tbaa !5
  %2057 = call ptr @strerror(i32 noundef %2056) #12
  %2058 = load i32, ptr %339, align 4, !tbaa !5
  %2059 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2050, ptr noundef nonnull %.str.5.sink1548, i32 noundef %2051, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 241, ptr noundef %2053, ptr noundef %2055, ptr noundef %2057, i32 noundef %2058) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2060:                                             ; preds = %2031
  %2061 = add nsw i32 %2032, 2
  store i32 %2061, ptr @test_count, align 4, !tbaa !5
  %2062 = getelementptr inbounds i8, ptr %2034, i64 240
  %bcmp604 = call i32 @bcmp(ptr noundef nonnull dereferenceable(48) %2062, ptr noundef nonnull dereferenceable(48) %3, i64 48)
  %2063 = icmp eq i32 %bcmp604, 0
  br i1 %2063, label %2064, label %2086

2064:                                             ; preds = %2060
  %2065 = load i32, ptr %339, align 4, !tbaa !5
  %2066 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2067 = call i32 @s2n_print_stacktrace(ptr noundef %2066) #12
  %2068 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2069 = trunc nuw i8 %2068 to i1
  br i1 %2069, label %2070, label %2074

2070:                                             ; preds = %2064
  %2071 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2072 = call i32 @fileno(ptr noundef %2071) #12
  %2073 = call i32 @isatty(i32 noundef %2072) #12
  %.not770 = icmp eq i32 %2073, 0
  br i1 %.not770, label %2074, label %2075

2074:                                             ; preds = %2070, %2064
  br label %2075

2075:                                             ; preds = %2070, %2074
  %.str.5.sink1557 = phi ptr [ @.str.5, %2074 ], [ @.str.2, %2070 ]
  store i32 %2065, ptr %339, align 4, !tbaa !5
  %2076 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2077 = load i32, ptr @test_count, align 4, !tbaa !5
  %2078 = load i32, ptr %285, align 4, !tbaa !5
  %2079 = call ptr @s2n_strerror(i32 noundef %2078, ptr noundef nonnull @.str.4) #12
  %2080 = load i32, ptr %285, align 4, !tbaa !5
  %2081 = call ptr @s2n_strerror_debug(i32 noundef %2080, ptr noundef nonnull @.str.4) #12
  %2082 = load i32, ptr %339, align 4, !tbaa !5
  %2083 = call ptr @strerror(i32 noundef %2082) #12
  %2084 = load i32, ptr %339, align 4, !tbaa !5
  %2085 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2076, ptr noundef nonnull %.str.5.sink1557, i32 noundef %2077, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 242, ptr noundef %2079, ptr noundef %2081, ptr noundef %2083, i32 noundef %2084) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2086:                                             ; preds = %2060
  %2087 = add nsw i32 %2032, 3
  store i32 %2087, ptr @test_count, align 4, !tbaa !5
  %2088 = load ptr, ptr %23, align 8, !tbaa !61
  %bcmp605 = call i32 @bcmp(ptr noundef nonnull dereferenceable(48) %2088, ptr noundef nonnull dereferenceable(48) %3, i64 48)
  %2089 = icmp eq i32 %bcmp605, 0
  br i1 %2089, label %2090, label %2112

2090:                                             ; preds = %2086
  %2091 = load i32, ptr %339, align 4, !tbaa !5
  %2092 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2093 = call i32 @s2n_print_stacktrace(ptr noundef %2092) #12
  %2094 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2095 = trunc nuw i8 %2094 to i1
  br i1 %2095, label %2096, label %2100

2096:                                             ; preds = %2090
  %2097 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2098 = call i32 @fileno(ptr noundef %2097) #12
  %2099 = call i32 @isatty(i32 noundef %2098) #12
  %.not769 = icmp eq i32 %2099, 0
  br i1 %.not769, label %2100, label %2101

2100:                                             ; preds = %2096, %2090
  br label %2101

2101:                                             ; preds = %2096, %2100
  %.str.5.sink1566 = phi ptr [ @.str.5, %2100 ], [ @.str.2, %2096 ]
  store i32 %2091, ptr %339, align 4, !tbaa !5
  %2102 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2103 = load i32, ptr @test_count, align 4, !tbaa !5
  %2104 = load i32, ptr %285, align 4, !tbaa !5
  %2105 = call ptr @s2n_strerror(i32 noundef %2104, ptr noundef nonnull @.str.4) #12
  %2106 = load i32, ptr %285, align 4, !tbaa !5
  %2107 = call ptr @s2n_strerror_debug(i32 noundef %2106, ptr noundef nonnull @.str.4) #12
  %2108 = load i32, ptr %339, align 4, !tbaa !5
  %2109 = call ptr @strerror(i32 noundef %2108) #12
  %2110 = load i32, ptr %339, align 4, !tbaa !5
  %2111 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2102, ptr noundef nonnull %.str.5.sink1566, i32 noundef %2103, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 243, ptr noundef %2105, ptr noundef %2107, ptr noundef %2109, i32 noundef %2110) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2112:                                             ; preds = %2086
  %2113 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %24) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %23) #12
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %22) #12
  br label %2119

2114:                                             ; preds = %2280
  %2115 = load i32, ptr @test_count, align 4, !tbaa !5
  %2116 = add nsw i32 %2115, 1
  store i32 %2116, ptr @test_count, align 4, !tbaa !5
  %2117 = call i32 @s2n_tls13_secrets_clean(ptr noundef null) #12
  %2118 = call zeroext i1 @s2n_result_is_error(i32 %2117)
  br i1 %2118, label %2305, label %2283

2119:                                             ; preds = %2112, %2280
  %.0542881 = phi i64 [ 0, %2112 ], [ %2282, %2280 ]
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %25) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(48) %25, i8 0, i64 48, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %26) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %26, i8 0, i64 24, i1 false)
  %2120 = load i32, ptr @test_count, align 4, !tbaa !5
  %2121 = add nsw i32 %2120, 1
  store i32 %2121, ptr @test_count, align 4, !tbaa !5
  %2122 = call i32 @s2n_blob_init(ptr noundef nonnull %26, ptr noundef nonnull %25, i32 noundef 48) #12
  %2123 = icmp eq i32 %2122, -1
  br i1 %2123, label %2124, label %2146

2124:                                             ; preds = %2119
  %2125 = load i32, ptr %339, align 4, !tbaa !5
  %2126 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2127 = call i32 @s2n_print_stacktrace(ptr noundef %2126) #12
  %2128 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2129 = trunc nuw i8 %2128 to i1
  br i1 %2129, label %2130, label %2134

2130:                                             ; preds = %2124
  %2131 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2132 = call i32 @fileno(ptr noundef %2131) #12
  %2133 = call i32 @isatty(i32 noundef %2132) #12
  %.not768 = icmp eq i32 %2133, 0
  br i1 %.not768, label %2134, label %2135

2134:                                             ; preds = %2130, %2124
  br label %2135

2135:                                             ; preds = %2130, %2134
  %.str.5.sink1575 = phi ptr [ @.str.5, %2134 ], [ @.str.2, %2130 ]
  store i32 %2125, ptr %339, align 4, !tbaa !5
  %2136 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2137 = load i32, ptr @test_count, align 4, !tbaa !5
  %2138 = load i32, ptr %285, align 4, !tbaa !5
  %2139 = call ptr @s2n_strerror(i32 noundef %2138, ptr noundef nonnull @.str.4) #12
  %2140 = load i32, ptr %285, align 4, !tbaa !5
  %2141 = call ptr @s2n_strerror_debug(i32 noundef %2140, ptr noundef nonnull @.str.4) #12
  %2142 = load i32, ptr %339, align 4, !tbaa !5
  %2143 = call ptr @strerror(i32 noundef %2142) #12
  %2144 = load i32, ptr %339, align 4, !tbaa !5
  %2145 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2136, ptr noundef nonnull %.str.5.sink1575, i32 noundef %2137, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 250, ptr noundef %2139, ptr noundef %2141, ptr noundef %2143, i32 noundef %2144) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2146:                                             ; preds = %2119
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %27) #12
  %2147 = getelementptr inbounds [1000 x %struct.s2n_tls13_secrets_test_case], ptr %6, i64 0, i64 %.0542881
  %2148 = getelementptr inbounds i8, ptr %2147, i64 12
  %2149 = load i32, ptr %2148, align 4, !tbaa !54
  %2150 = call ptr @s2n_connection_new(i32 noundef %2149) #12
  store ptr %2150, ptr %27, align 8, !tbaa !9
  %2151 = getelementptr inbounds i8, ptr %2147, i64 16
  %2152 = load ptr, ptr %2151, align 16, !tbaa !56
  %2153 = getelementptr inbounds i8, ptr %2150, i64 232
  %2154 = load ptr, ptr %2153, align 8, !tbaa !22
  store ptr %2152, ptr %2154, align 8, !tbaa !48
  %2155 = load i32, ptr %2147, align 16, !tbaa !57
  %2156 = load ptr, ptr %27, align 8, !tbaa !9
  %2157 = getelementptr inbounds i8, ptr %2156, i64 628
  store i32 %2155, ptr %2157, align 4, !tbaa !53
  %2158 = load i32, ptr @test_count, align 4, !tbaa !5
  %2159 = add nsw i32 %2158, 1
  store i32 %2159, ptr @test_count, align 4, !tbaa !5
  %2160 = call i32 @s2n_conn_choose_state_machine(ptr noundef %2156, i8 noundef zeroext 34) #12
  %2161 = call zeroext i1 @s2n_result_is_ok(i32 %2160)
  br i1 %2161, label %2184, label %2162

2162:                                             ; preds = %2146
  %2163 = load i32, ptr %339, align 4, !tbaa !5
  %2164 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2165 = call i32 @s2n_print_stacktrace(ptr noundef %2164) #12
  %2166 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2167 = trunc nuw i8 %2166 to i1
  br i1 %2167, label %2168, label %2172

2168:                                             ; preds = %2162
  %2169 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2170 = call i32 @fileno(ptr noundef %2169) #12
  %2171 = call i32 @isatty(i32 noundef %2170) #12
  %.not763 = icmp eq i32 %2171, 0
  br i1 %.not763, label %2172, label %2173

2172:                                             ; preds = %2168, %2162
  br label %2173

2173:                                             ; preds = %2168, %2172
  %.str.5.sink1584 = phi ptr [ @.str.5, %2172 ], [ @.str.2, %2168 ]
  store i32 %2163, ptr %339, align 4, !tbaa !5
  %2174 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2175 = load i32, ptr @test_count, align 4, !tbaa !5
  %2176 = load i32, ptr %285, align 4, !tbaa !5
  %2177 = call ptr @s2n_strerror(i32 noundef %2176, ptr noundef nonnull @.str.4) #12
  %2178 = load i32, ptr %285, align 4, !tbaa !5
  %2179 = call ptr @s2n_strerror_debug(i32 noundef %2178, ptr noundef nonnull @.str.4) #12
  %2180 = load i32, ptr %339, align 4, !tbaa !5
  %2181 = call ptr @strerror(i32 noundef %2180) #12
  %2182 = load i32, ptr %339, align 4, !tbaa !5
  %2183 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2174, ptr noundef nonnull %.str.5.sink1584, i32 noundef %2175, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 256, ptr noundef %2177, ptr noundef %2179, ptr noundef %2181, i32 noundef %2182) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2184:                                             ; preds = %2146
  %2185 = load ptr, ptr %27, align 8, !tbaa !9
  %2186 = getelementptr inbounds i8, ptr %2185, i64 220
  store i8 34, ptr %2186, align 4, !tbaa !62
  %2187 = getelementptr inbounds i8, ptr %2185, i64 2172
  store i32 3, ptr %2187, align 4, !tbaa !63
  %2188 = getelementptr inbounds i8, ptr %2147, i64 4
  %2189 = load i32, ptr %2188, align 4, !tbaa !59
  %2190 = zext i32 %2189 to i64
  %2191 = getelementptr inbounds [4 x i32], ptr @__const.main.message_nums, i64 0, i64 %2190
  %2192 = load i32, ptr %2191, align 4, !tbaa !5
  %2193 = getelementptr inbounds i8, ptr %2185, i64 2176
  store i32 %2192, ptr %2193, align 8, !tbaa !64
  %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 = getelementptr inbounds i8, ptr %2147, i64 24
  %2197 = load ptr, ptr %2196, align 8, !tbaa !58
  %2198 = call i32 @s2n_set_test_key_shares(ptr noundef %2185, ptr noundef %2197)
  %2199 = call zeroext i1 @s2n_result_is_ok(i32 %2198)
  br i1 %2199, label %2222, label %2200

2200:                                             ; preds = %2184
  %2201 = load i32, ptr %339, align 4, !tbaa !5
  %2202 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2203 = call i32 @s2n_print_stacktrace(ptr noundef %2202) #12
  %2204 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2205 = trunc nuw i8 %2204 to i1
  br i1 %2205, label %2206, label %2210

2206:                                             ; preds = %2200
  %2207 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2208 = call i32 @fileno(ptr noundef %2207) #12
  %2209 = call i32 @isatty(i32 noundef %2208) #12
  %.not764 = icmp eq i32 %2209, 0
  br i1 %.not764, label %2210, label %2211

2210:                                             ; preds = %2206, %2200
  br label %2211

2211:                                             ; preds = %2206, %2210
  %.str.5.sink1593 = phi ptr [ @.str.5, %2210 ], [ @.str.2, %2206 ]
  store i32 %2201, ptr %339, align 4, !tbaa !5
  %2212 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2213 = load i32, ptr @test_count, align 4, !tbaa !5
  %2214 = load i32, ptr %285, align 4, !tbaa !5
  %2215 = call ptr @s2n_strerror(i32 noundef %2214, ptr noundef nonnull @.str.4) #12
  %2216 = load i32, ptr %285, align 4, !tbaa !5
  %2217 = call ptr @s2n_strerror_debug(i32 noundef %2216, ptr noundef nonnull @.str.4) #12
  %2218 = load i32, ptr %339, align 4, !tbaa !5
  %2219 = call ptr @strerror(i32 noundef %2218) #12
  %2220 = load i32, ptr %339, align 4, !tbaa !5
  %2221 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2212, ptr noundef nonnull %.str.5.sink1593, i32 noundef %2213, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 260, ptr noundef %2215, ptr noundef %2217, ptr noundef %2219, i32 noundef %2220) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2222:                                             ; preds = %2184
  %2223 = load i32, ptr @test_count, align 4, !tbaa !5
  %2224 = add nsw i32 %2223, 1
  store i32 %2224, ptr @test_count, align 4, !tbaa !5
  %2225 = load ptr, ptr %27, align 8, !tbaa !9
  %2226 = load i32, ptr %2188, align 4, !tbaa !59
  %2227 = getelementptr inbounds i8, ptr %2147, i64 8
  %2228 = load i32, ptr %2227, align 8, !tbaa !65
  %2229 = call i32 @s2n_tls13_derive_secret(ptr noundef %2225, i32 noundef %2226, i32 noundef %2228, ptr noundef nonnull %26) #12
  %2230 = call zeroext i1 @s2n_result_is_ok(i32 %2229)
  br i1 %2230, label %2253, label %2231

2231:                                             ; preds = %2222
  %2232 = load i32, ptr %339, align 4, !tbaa !5
  %2233 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2234 = call i32 @s2n_print_stacktrace(ptr noundef %2233) #12
  %2235 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2236 = trunc nuw i8 %2235 to i1
  br i1 %2236, label %2237, label %2241

2237:                                             ; preds = %2231
  %2238 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2239 = call i32 @fileno(ptr noundef %2238) #12
  %2240 = call i32 @isatty(i32 noundef %2239) #12
  %.not765 = icmp eq i32 %2240, 0
  br i1 %.not765, label %2241, label %2242

2241:                                             ; preds = %2237, %2231
  br label %2242

2242:                                             ; preds = %2237, %2241
  %.str.5.sink1602 = phi ptr [ @.str.5, %2241 ], [ @.str.2, %2237 ]
  store i32 %2232, ptr %339, align 4, !tbaa !5
  %2243 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2244 = load i32, ptr @test_count, align 4, !tbaa !5
  %2245 = load i32, ptr %285, align 4, !tbaa !5
  %2246 = call ptr @s2n_strerror(i32 noundef %2245, ptr noundef nonnull @.str.4) #12
  %2247 = load i32, ptr %285, align 4, !tbaa !5
  %2248 = call ptr @s2n_strerror_debug(i32 noundef %2247, ptr noundef nonnull @.str.4) #12
  %2249 = load i32, ptr %339, align 4, !tbaa !5
  %2250 = call ptr @strerror(i32 noundef %2249) #12
  %2251 = load i32, ptr %339, align 4, !tbaa !5
  %2252 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2243, ptr noundef nonnull %.str.5.sink1602, i32 noundef %2244, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 261, ptr noundef %2246, ptr noundef %2248, ptr noundef %2250, i32 noundef %2251) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2253:                                             ; preds = %2222
  %2254 = load i32, ptr @test_count, align 4, !tbaa !5
  %2255 = add nsw i32 %2254, 1
  store i32 %2255, ptr @test_count, align 4, !tbaa !5
  %2256 = load ptr, ptr %26, align 8, !tbaa !61
  %bcmp766 = call i32 @bcmp(ptr noundef nonnull dereferenceable(48) %2256, ptr noundef nonnull dereferenceable(48) %3, i64 48)
  %2257 = icmp eq i32 %bcmp766, 0
  br i1 %2257, label %2258, label %2280

2258:                                             ; preds = %2253
  %2259 = load i32, ptr %339, align 4, !tbaa !5
  %2260 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2261 = call i32 @s2n_print_stacktrace(ptr noundef %2260) #12
  %2262 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2263 = trunc nuw i8 %2262 to i1
  br i1 %2263, label %2264, label %2268

2264:                                             ; preds = %2258
  %2265 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2266 = call i32 @fileno(ptr noundef %2265) #12
  %2267 = call i32 @isatty(i32 noundef %2266) #12
  %.not767 = icmp eq i32 %2267, 0
  br i1 %.not767, label %2268, label %2269

2268:                                             ; preds = %2264, %2258
  br label %2269

2269:                                             ; preds = %2264, %2268
  %.str.5.sink1611 = phi ptr [ @.str.5, %2268 ], [ @.str.2, %2264 ]
  store i32 %2259, ptr %339, align 4, !tbaa !5
  %2270 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2271 = load i32, ptr @test_count, align 4, !tbaa !5
  %2272 = load i32, ptr %285, align 4, !tbaa !5
  %2273 = call ptr @s2n_strerror(i32 noundef %2272, ptr noundef nonnull @.str.4) #12
  %2274 = load i32, ptr %285, align 4, !tbaa !5
  %2275 = call ptr @s2n_strerror_debug(i32 noundef %2274, ptr noundef nonnull @.str.4) #12
  %2276 = load i32, ptr %339, align 4, !tbaa !5
  %2277 = call ptr @strerror(i32 noundef %2276) #12
  %2278 = load i32, ptr %339, align 4, !tbaa !5
  %2279 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2270, ptr noundef nonnull %.str.5.sink1611, i32 noundef %2271, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 262, ptr noundef %2273, ptr noundef %2275, ptr noundef %2277, i32 noundef %2278) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2280:                                             ; preds = %2253
  %2281 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %27) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %26) #12
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %25) #12
  %2282 = add nuw i64 %.0542881, 1
  %exitcond907.not = icmp eq i64 %2282, %.us-phi.us.us.us.us.3
  br i1 %exitcond907.not, label %2114, label %2119, !llvm.loop !66

2283:                                             ; preds = %2114
  %2284 = load i32, ptr %339, align 4, !tbaa !5
  %2285 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2286 = call i32 @s2n_print_stacktrace(ptr noundef %2285) #12
  %2287 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2288 = trunc nuw i8 %2287 to i1
  br i1 %2288, label %2289, label %2293

2289:                                             ; preds = %2283
  %2290 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2291 = call i32 @fileno(ptr noundef %2290) #12
  %2292 = call i32 @isatty(i32 noundef %2291) #12
  %.not606 = icmp eq i32 %2292, 0
  br i1 %.not606, label %2293, label %2294

2293:                                             ; preds = %2289, %2283
  br label %2294

2294:                                             ; preds = %2289, %2293
  %.str.5.sink1620 = phi ptr [ @.str.5, %2293 ], [ @.str.2, %2289 ]
  store i32 %2284, ptr %339, align 4, !tbaa !5
  %2295 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2296 = load i32, ptr @test_count, align 4, !tbaa !5
  %2297 = load i32, ptr %285, align 4, !tbaa !5
  %2298 = call ptr @s2n_strerror(i32 noundef %2297, ptr noundef nonnull @.str.4) #12
  %2299 = load i32, ptr %285, align 4, !tbaa !5
  %2300 = call ptr @s2n_strerror_debug(i32 noundef %2299, ptr noundef nonnull @.str.4) #12
  %2301 = load i32, ptr %339, align 4, !tbaa !5
  %2302 = call ptr @strerror(i32 noundef %2301) #12
  %2303 = load i32, ptr %339, align 4, !tbaa !5
  %2304 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2295, ptr noundef nonnull %.str.5.sink1620, i32 noundef %2296, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 269, ptr noundef %2298, ptr noundef %2300, ptr noundef %2302, i32 noundef %2303) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2305:                                             ; preds = %2114
  %2306 = load i32, ptr @test_count, align 4, !tbaa !5
  %2307 = add nsw i32 %2306, 1
  store i32 %2307, ptr @test_count, align 4, !tbaa !5
  %2308 = load i32, ptr %285, align 4, !tbaa !5
  %2309 = icmp eq i32 %2308, 402653193
  br i1 %2309, label %2332, label %2310

2310:                                             ; preds = %2305
  %2311 = load i32, ptr %339, align 4, !tbaa !5
  %2312 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2313 = call i32 @s2n_print_stacktrace(ptr noundef %2312) #12
  %2314 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2315 = trunc nuw i8 %2314 to i1
  br i1 %2315, label %2316, label %2320

2316:                                             ; preds = %2310
  %2317 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2318 = call i32 @fileno(ptr noundef %2317) #12
  %2319 = call i32 @isatty(i32 noundef %2318) #12
  %.not607 = icmp eq i32 %2319, 0
  br i1 %.not607, label %2320, label %2321

2320:                                             ; preds = %2316, %2310
  br label %2321

2321:                                             ; preds = %2316, %2320
  %.str.5.sink1629 = phi ptr [ @.str.5, %2320 ], [ @.str.2, %2316 ]
  store i32 %2311, ptr %339, align 4, !tbaa !5
  %2322 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2323 = load i32, ptr @test_count, align 4, !tbaa !5
  %2324 = load i32, ptr %285, align 4, !tbaa !5
  %2325 = call ptr @s2n_strerror(i32 noundef %2324, ptr noundef nonnull @.str.4) #12
  %2326 = load i32, ptr %285, align 4, !tbaa !5
  %2327 = call ptr @s2n_strerror_debug(i32 noundef %2326, ptr noundef nonnull @.str.4) #12
  %2328 = load i32, ptr %339, align 4, !tbaa !5
  %2329 = call ptr @strerror(i32 noundef %2328) #12
  %2330 = load i32, ptr %339, align 4, !tbaa !5
  %2331 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2322, ptr noundef nonnull %.str.5.sink1629, i32 noundef %2323, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 269, ptr noundef %2325, ptr noundef %2327, ptr noundef %2329, i32 noundef %2330) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2332:                                             ; preds = %2305
  %2333 = add nsw i32 %2306, 2
  store i32 %2333, ptr @test_count, align 4, !tbaa !5
  %2334 = call ptr @s2n_strerror_debug(i32 noundef 402653193, ptr noundef nonnull @.str.4) #12
  %2335 = icmp eq ptr %2334, null
  br i1 %2335, label %2336, label %2358

2336:                                             ; preds = %2332
  %2337 = load i32, ptr %339, align 4, !tbaa !5
  %2338 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2339 = call i32 @s2n_print_stacktrace(ptr noundef %2338) #12
  %2340 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2341 = trunc nuw i8 %2340 to i1
  br i1 %2341, label %2342, label %2346

2342:                                             ; preds = %2336
  %2343 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2344 = call i32 @fileno(ptr noundef %2343) #12
  %2345 = call i32 @isatty(i32 noundef %2344) #12
  %.not762 = icmp eq i32 %2345, 0
  br i1 %.not762, label %2346, label %2347

2346:                                             ; preds = %2342, %2336
  br label %2347

2347:                                             ; preds = %2342, %2346
  %.str.5.sink1638 = phi ptr [ @.str.5, %2346 ], [ @.str.2, %2342 ]
  store i32 %2337, ptr %339, align 4, !tbaa !5
  %2348 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2349 = load i32, ptr @test_count, align 4, !tbaa !5
  %2350 = load i32, ptr %285, align 4, !tbaa !5
  %2351 = call ptr @s2n_strerror(i32 noundef %2350, ptr noundef nonnull @.str.4) #12
  %2352 = load i32, ptr %285, align 4, !tbaa !5
  %2353 = call ptr @s2n_strerror_debug(i32 noundef %2352, ptr noundef nonnull @.str.4) #12
  %2354 = load i32, ptr %339, align 4, !tbaa !5
  %2355 = call ptr @strerror(i32 noundef %2354) #12
  %2356 = load i32, ptr %339, align 4, !tbaa !5
  %2357 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2348, ptr noundef nonnull %.str.5.sink1638, i32 noundef %2349, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 269, ptr noundef %2351, ptr noundef %2353, ptr noundef %2355, i32 noundef %2356) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2358:                                             ; preds = %2332
  store i32 0, ptr %285, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %339, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %28) #12
  %2359 = call ptr @s2n_connection_new(i32 noundef 0) #12
  store ptr %2359, ptr %28, align 8, !tbaa !9
  %2360 = getelementptr inbounds i8, ptr %2359, i64 232
  %2361 = load ptr, ptr %2360, align 8, !tbaa !22
  store ptr @s2n_tls13_aes_128_gcm_sha256, ptr %2361, align 8, !tbaa !48
  %2362 = load ptr, ptr %28, align 8, !tbaa !9
  %2363 = getelementptr inbounds i8, ptr %2362, i64 220
  store i8 34, ptr %2363, align 4, !tbaa !62
  %2364 = getelementptr inbounds i8, ptr %4, i64 8
  %2365 = load i32, ptr %2364, align 8, !tbaa !67
  %.not608 = icmp eq i32 %2365, 0
  br i1 %.not608, label %.thread817, label %2366

2366:                                             ; preds = %2358
  %2367 = getelementptr inbounds i8, ptr %2362, i64 240
  %2368 = load ptr, ptr %4, align 8, !tbaa !61
  %2369 = zext i32 %2365 to i64
  call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %2367, ptr align 1 %2368, i64 %2369, i1 false)
  %2370 = getelementptr inbounds i8, ptr %2362, i64 288
  call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %2370, ptr align 1 %2368, i64 %2369, i1 false)
  %2371 = getelementptr inbounds i8, ptr %2362, i64 336
  call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %2371, ptr align 1 %2368, i64 %2369, i1 false)
  %2372 = getelementptr inbounds i8, ptr %2362, i64 384
  call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %2372, ptr align 1 %2368, i64 %2369, i1 false)
  %2373 = getelementptr inbounds i8, ptr %2362, i64 432
  call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %2373, ptr align 1 %2368, i64 %2369, i1 false)
  %2374 = getelementptr inbounds i8, ptr %2362, i64 480
  call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %2374, ptr align 1 %2368, i64 %2369, i1 false)
  %2375 = getelementptr inbounds i8, ptr %2362, i64 576
  call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %2375, ptr align 1 %2368, i64 %2369, i1 false)
  %2376 = getelementptr inbounds i8, ptr %2362, i64 528
  call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %2376, ptr align 1 %2368, i64 %2369, i1 false)
  br label %.thread817

.thread817:                                       ; preds = %2358, %2366
  %2377 = load i32, ptr @test_count, align 4, !tbaa !5
  %2378 = add nsw i32 %2377, 1
  store i32 %2378, ptr @test_count, align 4, !tbaa !5
  %2379 = getelementptr inbounds i8, ptr %2362, i64 240
  %bcmp616 = call i32 @bcmp(ptr noundef nonnull dereferenceable(48) %2379, ptr noundef nonnull dereferenceable(48) %3, i64 48)
  %2380 = icmp eq i32 %bcmp616, 0
  br i1 %2380, label %2381, label %2403

2381:                                             ; preds = %.thread817
  %2382 = load i32, ptr %339, align 4, !tbaa !5
  %2383 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2384 = call i32 @s2n_print_stacktrace(ptr noundef %2383) #12
  %2385 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2386 = trunc nuw i8 %2385 to i1
  br i1 %2386, label %2387, label %2391

2387:                                             ; preds = %2381
  %2388 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2389 = call i32 @fileno(ptr noundef %2388) #12
  %2390 = call i32 @isatty(i32 noundef %2389) #12
  %.not761 = icmp eq i32 %2390, 0
  br i1 %.not761, label %2391, label %2392

2391:                                             ; preds = %2387, %2381
  br label %2392

2392:                                             ; preds = %2387, %2391
  %.str.5.sink1647 = phi ptr [ @.str.5, %2391 ], [ @.str.2, %2387 ]
  store i32 %2382, ptr %339, align 4, !tbaa !5
  %2393 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2394 = load i32, ptr @test_count, align 4, !tbaa !5
  %2395 = load i32, ptr %285, align 4, !tbaa !5
  %2396 = call ptr @s2n_strerror(i32 noundef %2395, ptr noundef nonnull @.str.4) #12
  %2397 = load i32, ptr %285, align 4, !tbaa !5
  %2398 = call ptr @s2n_strerror_debug(i32 noundef %2397, ptr noundef nonnull @.str.4) #12
  %2399 = load i32, ptr %339, align 4, !tbaa !5
  %2400 = call ptr @strerror(i32 noundef %2399) #12
  %2401 = load i32, ptr %339, align 4, !tbaa !5
  %2402 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2393, ptr noundef nonnull %.str.5.sink1647, i32 noundef %2394, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 287, ptr noundef %2396, ptr noundef %2398, ptr noundef %2400, i32 noundef %2401) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2403:                                             ; preds = %.thread817
  %2404 = add nsw i32 %2377, 2
  store i32 %2404, ptr @test_count, align 4, !tbaa !5
  %2405 = getelementptr inbounds i8, ptr %2362, i64 288
  %bcmp617 = call i32 @bcmp(ptr noundef nonnull dereferenceable(48) %2405, ptr noundef nonnull dereferenceable(48) %3, i64 48)
  %2406 = icmp eq i32 %bcmp617, 0
  br i1 %2406, label %2407, label %2429

2407:                                             ; preds = %2403
  %2408 = load i32, ptr %339, align 4, !tbaa !5
  %2409 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2410 = call i32 @s2n_print_stacktrace(ptr noundef %2409) #12
  %2411 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2412 = trunc nuw i8 %2411 to i1
  br i1 %2412, label %2413, label %2417

2413:                                             ; preds = %2407
  %2414 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2415 = call i32 @fileno(ptr noundef %2414) #12
  %2416 = call i32 @isatty(i32 noundef %2415) #12
  %.not760 = icmp eq i32 %2416, 0
  br i1 %.not760, label %2417, label %2418

2417:                                             ; preds = %2413, %2407
  br label %2418

2418:                                             ; preds = %2413, %2417
  %.str.5.sink1656 = phi ptr [ @.str.5, %2417 ], [ @.str.2, %2413 ]
  store i32 %2408, ptr %339, align 4, !tbaa !5
  %2419 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2420 = load i32, ptr @test_count, align 4, !tbaa !5
  %2421 = load i32, ptr %285, align 4, !tbaa !5
  %2422 = call ptr @s2n_strerror(i32 noundef %2421, ptr noundef nonnull @.str.4) #12
  %2423 = load i32, ptr %285, align 4, !tbaa !5
  %2424 = call ptr @s2n_strerror_debug(i32 noundef %2423, ptr noundef nonnull @.str.4) #12
  %2425 = load i32, ptr %339, align 4, !tbaa !5
  %2426 = call ptr @strerror(i32 noundef %2425) #12
  %2427 = load i32, ptr %339, align 4, !tbaa !5
  %2428 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2419, ptr noundef nonnull %.str.5.sink1656, i32 noundef %2420, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 288, ptr noundef %2422, ptr noundef %2424, ptr noundef %2426, i32 noundef %2427) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2429:                                             ; preds = %2403
  %2430 = add nsw i32 %2377, 3
  store i32 %2430, ptr @test_count, align 4, !tbaa !5
  %2431 = getelementptr inbounds i8, ptr %2362, i64 336
  %bcmp618 = call i32 @bcmp(ptr noundef nonnull dereferenceable(48) %2431, ptr noundef nonnull dereferenceable(48) %3, i64 48)
  %2432 = icmp eq i32 %bcmp618, 0
  br i1 %2432, label %2433, label %2455

2433:                                             ; preds = %2429
  %2434 = load i32, ptr %339, align 4, !tbaa !5
  %2435 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2436 = call i32 @s2n_print_stacktrace(ptr noundef %2435) #12
  %2437 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2438 = trunc nuw i8 %2437 to i1
  br i1 %2438, label %2439, label %2443

2439:                                             ; preds = %2433
  %2440 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2441 = call i32 @fileno(ptr noundef %2440) #12
  %2442 = call i32 @isatty(i32 noundef %2441) #12
  %.not759 = icmp eq i32 %2442, 0
  br i1 %.not759, label %2443, label %2444

2443:                                             ; preds = %2439, %2433
  br label %2444

2444:                                             ; preds = %2439, %2443
  %.str.5.sink1665 = phi ptr [ @.str.5, %2443 ], [ @.str.2, %2439 ]
  store i32 %2434, ptr %339, align 4, !tbaa !5
  %2445 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2446 = load i32, ptr @test_count, align 4, !tbaa !5
  %2447 = load i32, ptr %285, align 4, !tbaa !5
  %2448 = call ptr @s2n_strerror(i32 noundef %2447, ptr noundef nonnull @.str.4) #12
  %2449 = load i32, ptr %285, align 4, !tbaa !5
  %2450 = call ptr @s2n_strerror_debug(i32 noundef %2449, ptr noundef nonnull @.str.4) #12
  %2451 = load i32, ptr %339, align 4, !tbaa !5
  %2452 = call ptr @strerror(i32 noundef %2451) #12
  %2453 = load i32, ptr %339, align 4, !tbaa !5
  %2454 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2445, ptr noundef nonnull %.str.5.sink1665, i32 noundef %2446, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.1, i32 noundef 289, ptr noundef %2448, ptr noundef %2450, ptr noundef %2452, i32 noundef %2453) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2455:                                             ; preds = %2429
  %2456 = add nsw i32 %2377, 4
  store i32 %2456, ptr @test_count, align 4, !tbaa !5
  %2457 = getelementptr inbounds i8, ptr %2362, i64 384
  %bcmp619 = call i32 @bcmp(ptr noundef nonnull dereferenceable(48) %2457, ptr noundef nonnull dereferenceable(48) %3, i64 48)
  %2458 = icmp eq i32 %bcmp619, 0
  br i1 %2458, label %2459, label %2481

2459:                                             ; preds = %2455
  %2460 = load i32, ptr %339, align 4, !tbaa !5
  %2461 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2462 = call i32 @s2n_print_stacktrace(ptr noundef %2461) #12
  %2463 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2464 = trunc nuw i8 %2463 to i1
  br i1 %2464, label %2465, label %2469

2465:                                             ; preds = %2459
  %2466 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2467 = call i32 @fileno(ptr noundef %2466) #12
  %2468 = call i32 @isatty(i32 noundef %2467) #12
  %.not758 = icmp eq i32 %2468, 0
  br i1 %.not758, label %2469, label %2470

2469:                                             ; preds = %2465, %2459
  br label %2470

2470:                                             ; preds = %2465, %2469
  %.str.5.sink1674 = phi ptr [ @.str.5, %2469 ], [ @.str.2, %2465 ]
  store i32 %2460, ptr %339, align 4, !tbaa !5
  %2471 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2472 = load i32, ptr @test_count, align 4, !tbaa !5
  %2473 = load i32, ptr %285, align 4, !tbaa !5
  %2474 = call ptr @s2n_strerror(i32 noundef %2473, ptr noundef nonnull @.str.4) #12
  %2475 = load i32, ptr %285, align 4, !tbaa !5
  %2476 = call ptr @s2n_strerror_debug(i32 noundef %2475, ptr noundef nonnull @.str.4) #12
  %2477 = load i32, ptr %339, align 4, !tbaa !5
  %2478 = call ptr @strerror(i32 noundef %2477) #12
  %2479 = load i32, ptr %339, align 4, !tbaa !5
  %2480 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2471, ptr noundef nonnull %.str.5.sink1674, i32 noundef %2472, ptr noundef nonnull @.str.54, ptr noundef nonnull @.str.1, i32 noundef 290, ptr noundef %2474, ptr noundef %2476, ptr noundef %2478, i32 noundef %2479) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2481:                                             ; preds = %2455
  %2482 = add nsw i32 %2377, 5
  store i32 %2482, ptr @test_count, align 4, !tbaa !5
  %2483 = getelementptr inbounds i8, ptr %2362, i64 432
  %bcmp620 = call i32 @bcmp(ptr noundef nonnull dereferenceable(48) %2483, ptr noundef nonnull dereferenceable(48) %3, i64 48)
  %2484 = icmp eq i32 %bcmp620, 0
  br i1 %2484, label %2485, label %2507

2485:                                             ; preds = %2481
  %2486 = load i32, ptr %339, align 4, !tbaa !5
  %2487 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2488 = call i32 @s2n_print_stacktrace(ptr noundef %2487) #12
  %2489 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2490 = trunc nuw i8 %2489 to i1
  br i1 %2490, label %2491, label %2495

2491:                                             ; preds = %2485
  %2492 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2493 = call i32 @fileno(ptr noundef %2492) #12
  %2494 = call i32 @isatty(i32 noundef %2493) #12
  %.not757 = icmp eq i32 %2494, 0
  br i1 %.not757, label %2495, label %2496

2495:                                             ; preds = %2491, %2485
  br label %2496

2496:                                             ; preds = %2491, %2495
  %.str.5.sink1683 = phi ptr [ @.str.5, %2495 ], [ @.str.2, %2491 ]
  store i32 %2486, ptr %339, align 4, !tbaa !5
  %2497 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2498 = load i32, ptr @test_count, align 4, !tbaa !5
  %2499 = load i32, ptr %285, align 4, !tbaa !5
  %2500 = call ptr @s2n_strerror(i32 noundef %2499, ptr noundef nonnull @.str.4) #12
  %2501 = load i32, ptr %285, align 4, !tbaa !5
  %2502 = call ptr @s2n_strerror_debug(i32 noundef %2501, ptr noundef nonnull @.str.4) #12
  %2503 = load i32, ptr %339, align 4, !tbaa !5
  %2504 = call ptr @strerror(i32 noundef %2503) #12
  %2505 = load i32, ptr %339, align 4, !tbaa !5
  %2506 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2497, ptr noundef nonnull %.str.5.sink1683, i32 noundef %2498, ptr noundef nonnull @.str.55, ptr noundef nonnull @.str.1, i32 noundef 291, ptr noundef %2500, ptr noundef %2502, ptr noundef %2504, i32 noundef %2505) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2507:                                             ; preds = %2481
  %2508 = add nsw i32 %2377, 6
  store i32 %2508, ptr @test_count, align 4, !tbaa !5
  %2509 = getelementptr inbounds i8, ptr %2362, i64 480
  %bcmp621 = call i32 @bcmp(ptr noundef nonnull dereferenceable(48) %2509, ptr noundef nonnull dereferenceable(48) %3, i64 48)
  %2510 = icmp eq i32 %bcmp621, 0
  br i1 %2510, label %2511, label %2533

2511:                                             ; preds = %2507
  %2512 = load i32, ptr %339, align 4, !tbaa !5
  %2513 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2514 = call i32 @s2n_print_stacktrace(ptr noundef %2513) #12
  %2515 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2516 = trunc nuw i8 %2515 to i1
  br i1 %2516, label %2517, label %2521

2517:                                             ; preds = %2511
  %2518 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2519 = call i32 @fileno(ptr noundef %2518) #12
  %2520 = call i32 @isatty(i32 noundef %2519) #12
  %.not756 = icmp eq i32 %2520, 0
  br i1 %.not756, label %2521, label %2522

2521:                                             ; preds = %2517, %2511
  br label %2522

2522:                                             ; preds = %2517, %2521
  %.str.5.sink1692 = phi ptr [ @.str.5, %2521 ], [ @.str.2, %2517 ]
  store i32 %2512, ptr %339, align 4, !tbaa !5
  %2523 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2524 = load i32, ptr @test_count, align 4, !tbaa !5
  %2525 = load i32, ptr %285, align 4, !tbaa !5
  %2526 = call ptr @s2n_strerror(i32 noundef %2525, ptr noundef nonnull @.str.4) #12
  %2527 = load i32, ptr %285, align 4, !tbaa !5
  %2528 = call ptr @s2n_strerror_debug(i32 noundef %2527, ptr noundef nonnull @.str.4) #12
  %2529 = load i32, ptr %339, align 4, !tbaa !5
  %2530 = call ptr @strerror(i32 noundef %2529) #12
  %2531 = load i32, ptr %339, align 4, !tbaa !5
  %2532 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2523, ptr noundef nonnull %.str.5.sink1692, i32 noundef %2524, ptr noundef nonnull @.str.56, ptr noundef nonnull @.str.1, i32 noundef 292, ptr noundef %2526, ptr noundef %2528, ptr noundef %2530, i32 noundef %2531) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2533:                                             ; preds = %2507
  %2534 = add nsw i32 %2377, 7
  store i32 %2534, ptr @test_count, align 4, !tbaa !5
  %2535 = getelementptr inbounds i8, ptr %2362, i64 576
  %bcmp622 = call i32 @bcmp(ptr noundef nonnull dereferenceable(48) %2535, ptr noundef nonnull dereferenceable(48) %3, i64 48)
  %2536 = icmp eq i32 %bcmp622, 0
  br i1 %2536, label %2537, label %2559

2537:                                             ; preds = %2533
  %2538 = load i32, ptr %339, align 4, !tbaa !5
  %2539 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2540 = call i32 @s2n_print_stacktrace(ptr noundef %2539) #12
  %2541 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2542 = trunc nuw i8 %2541 to i1
  br i1 %2542, label %2543, label %2547

2543:                                             ; preds = %2537
  %2544 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2545 = call i32 @fileno(ptr noundef %2544) #12
  %2546 = call i32 @isatty(i32 noundef %2545) #12
  %.not755 = icmp eq i32 %2546, 0
  br i1 %.not755, label %2547, label %2548

2547:                                             ; preds = %2543, %2537
  br label %2548

2548:                                             ; preds = %2543, %2547
  %.str.5.sink1701 = phi ptr [ @.str.5, %2547 ], [ @.str.2, %2543 ]
  store i32 %2538, ptr %339, align 4, !tbaa !5
  %2549 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2550 = load i32, ptr @test_count, align 4, !tbaa !5
  %2551 = load i32, ptr %285, align 4, !tbaa !5
  %2552 = call ptr @s2n_strerror(i32 noundef %2551, ptr noundef nonnull @.str.4) #12
  %2553 = load i32, ptr %285, align 4, !tbaa !5
  %2554 = call ptr @s2n_strerror_debug(i32 noundef %2553, ptr noundef nonnull @.str.4) #12
  %2555 = load i32, ptr %339, align 4, !tbaa !5
  %2556 = call ptr @strerror(i32 noundef %2555) #12
  %2557 = load i32, ptr %339, align 4, !tbaa !5
  %2558 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2549, ptr noundef nonnull %.str.5.sink1701, i32 noundef %2550, ptr noundef nonnull @.str.57, ptr noundef nonnull @.str.1, i32 noundef 293, ptr noundef %2552, ptr noundef %2554, ptr noundef %2556, i32 noundef %2557) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2559:                                             ; preds = %2533
  %2560 = add nsw i32 %2377, 8
  store i32 %2560, ptr @test_count, align 4, !tbaa !5
  %2561 = getelementptr inbounds i8, ptr %2362, i64 528
  %bcmp623 = call i32 @bcmp(ptr noundef nonnull dereferenceable(48) %2561, ptr noundef nonnull dereferenceable(48) %3, i64 48)
  %2562 = icmp eq i32 %bcmp623, 0
  br i1 %2562, label %2563, label %2585

2563:                                             ; preds = %2559
  %2564 = load i32, ptr %339, align 4, !tbaa !5
  %2565 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2566 = call i32 @s2n_print_stacktrace(ptr noundef %2565) #12
  %2567 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2568 = trunc nuw i8 %2567 to i1
  br i1 %2568, label %2569, label %2573

2569:                                             ; preds = %2563
  %2570 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2571 = call i32 @fileno(ptr noundef %2570) #12
  %2572 = call i32 @isatty(i32 noundef %2571) #12
  %.not754 = icmp eq i32 %2572, 0
  br i1 %.not754, label %2573, label %2574

2573:                                             ; preds = %2569, %2563
  br label %2574

2574:                                             ; preds = %2569, %2573
  %.str.5.sink1710 = phi ptr [ @.str.5, %2573 ], [ @.str.2, %2569 ]
  store i32 %2564, ptr %339, align 4, !tbaa !5
  %2575 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2576 = load i32, ptr @test_count, align 4, !tbaa !5
  %2577 = load i32, ptr %285, align 4, !tbaa !5
  %2578 = call ptr @s2n_strerror(i32 noundef %2577, ptr noundef nonnull @.str.4) #12
  %2579 = load i32, ptr %285, align 4, !tbaa !5
  %2580 = call ptr @s2n_strerror_debug(i32 noundef %2579, ptr noundef nonnull @.str.4) #12
  %2581 = load i32, ptr %339, align 4, !tbaa !5
  %2582 = call ptr @strerror(i32 noundef %2581) #12
  %2583 = load i32, ptr %339, align 4, !tbaa !5
  %2584 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2575, ptr noundef nonnull %.str.5.sink1710, i32 noundef %2576, ptr noundef nonnull @.str.58, ptr noundef nonnull @.str.1, i32 noundef 294, ptr noundef %2578, ptr noundef %2580, ptr noundef %2582, i32 noundef %2583) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2585:                                             ; preds = %2559
  %2586 = add nsw i32 %2377, 9
  store i32 %2586, ptr @test_count, align 4, !tbaa !5
  %2587 = call i32 @s2n_tls13_secrets_clean(ptr noundef nonnull %2362) #12
  %2588 = call zeroext i1 @s2n_result_is_ok(i32 %2587)
  br i1 %2588, label %2611, label %2589

2589:                                             ; preds = %2585
  %2590 = load i32, ptr %339, align 4, !tbaa !5
  %2591 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2592 = call i32 @s2n_print_stacktrace(ptr noundef %2591) #12
  %2593 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2594 = trunc nuw i8 %2593 to i1
  br i1 %2594, label %2595, label %2599

2595:                                             ; preds = %2589
  %2596 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2597 = call i32 @fileno(ptr noundef %2596) #12
  %2598 = call i32 @isatty(i32 noundef %2597) #12
  %.not624 = icmp eq i32 %2598, 0
  br i1 %.not624, label %2599, label %2600

2599:                                             ; preds = %2595, %2589
  br label %2600

2600:                                             ; preds = %2595, %2599
  %.str.5.sink1719 = phi ptr [ @.str.5, %2599 ], [ @.str.2, %2595 ]
  store i32 %2590, ptr %339, align 4, !tbaa !5
  %2601 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2602 = load i32, ptr @test_count, align 4, !tbaa !5
  %2603 = load i32, ptr %285, align 4, !tbaa !5
  %2604 = call ptr @s2n_strerror(i32 noundef %2603, ptr noundef nonnull @.str.4) #12
  %2605 = load i32, ptr %285, align 4, !tbaa !5
  %2606 = call ptr @s2n_strerror_debug(i32 noundef %2605, ptr noundef nonnull @.str.4) #12
  %2607 = load i32, ptr %339, align 4, !tbaa !5
  %2608 = call ptr @strerror(i32 noundef %2607) #12
  %2609 = load i32, ptr %339, align 4, !tbaa !5
  %2610 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2601, ptr noundef nonnull %.str.5.sink1719, i32 noundef %2602, ptr noundef nonnull @.str.59, ptr noundef nonnull @.str.1, i32 noundef 296, ptr noundef %2604, ptr noundef %2606, ptr noundef %2608, i32 noundef %2609) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2611:                                             ; preds = %2585
  %2612 = load i32, ptr @test_count, align 4, !tbaa !5
  %2613 = add nsw i32 %2612, 1
  store i32 %2613, ptr @test_count, align 4, !tbaa !5
  %2614 = load ptr, ptr %28, align 8, !tbaa !9
  %2615 = getelementptr inbounds i8, ptr %2614, i64 240
  %bcmp625 = call i32 @bcmp(ptr noundef nonnull dereferenceable(48) %2615, ptr noundef nonnull dereferenceable(48) %3, i64 48)
  %2616 = icmp eq i32 %bcmp625, 0
  br i1 %2616, label %2639, label %2617

2617:                                             ; preds = %2611
  %2618 = load i32, ptr %339, align 4, !tbaa !5
  %2619 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2620 = call i32 @s2n_print_stacktrace(ptr noundef %2619) #12
  %2621 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2622 = trunc nuw i8 %2621 to i1
  br i1 %2622, label %2623, label %2627

2623:                                             ; preds = %2617
  %2624 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2625 = call i32 @fileno(ptr noundef %2624) #12
  %2626 = call i32 @isatty(i32 noundef %2625) #12
  %.not626 = icmp eq i32 %2626, 0
  br i1 %.not626, label %2627, label %2628

2627:                                             ; preds = %2623, %2617
  br label %2628

2628:                                             ; preds = %2623, %2627
  %.str.5.sink1728 = phi ptr [ @.str.5, %2627 ], [ @.str.2, %2623 ]
  store i32 %2618, ptr %339, align 4, !tbaa !5
  %2629 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2630 = load i32, ptr @test_count, align 4, !tbaa !5
  %2631 = load i32, ptr %285, align 4, !tbaa !5
  %2632 = call ptr @s2n_strerror(i32 noundef %2631, ptr noundef nonnull @.str.4) #12
  %2633 = load i32, ptr %285, align 4, !tbaa !5
  %2634 = call ptr @s2n_strerror_debug(i32 noundef %2633, ptr noundef nonnull @.str.4) #12
  %2635 = load i32, ptr %339, align 4, !tbaa !5
  %2636 = call ptr @strerror(i32 noundef %2635) #12
  %2637 = load i32, ptr %339, align 4, !tbaa !5
  %2638 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2629, ptr noundef nonnull %.str.5.sink1728, i32 noundef %2630, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 298, ptr noundef %2632, ptr noundef %2634, ptr noundef %2636, i32 noundef %2637) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2639:                                             ; preds = %2611
  %2640 = add nsw i32 %2612, 2
  store i32 %2640, ptr @test_count, align 4, !tbaa !5
  %2641 = getelementptr inbounds i8, ptr %2614, i64 288
  %bcmp627 = call i32 @bcmp(ptr noundef nonnull dereferenceable(48) %2641, ptr noundef nonnull dereferenceable(48) %3, i64 48)
  %2642 = icmp eq i32 %bcmp627, 0
  br i1 %2642, label %2665, label %2643

2643:                                             ; preds = %2639
  %2644 = load i32, ptr %339, align 4, !tbaa !5
  %2645 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2646 = call i32 @s2n_print_stacktrace(ptr noundef %2645) #12
  %2647 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2648 = trunc nuw i8 %2647 to i1
  br i1 %2648, label %2649, label %2653

2649:                                             ; preds = %2643
  %2650 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2651 = call i32 @fileno(ptr noundef %2650) #12
  %2652 = call i32 @isatty(i32 noundef %2651) #12
  %.not628 = icmp eq i32 %2652, 0
  br i1 %.not628, label %2653, label %2654

2653:                                             ; preds = %2649, %2643
  br label %2654

2654:                                             ; preds = %2649, %2653
  %.str.5.sink1737 = phi ptr [ @.str.5, %2653 ], [ @.str.2, %2649 ]
  store i32 %2644, ptr %339, align 4, !tbaa !5
  %2655 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2656 = load i32, ptr @test_count, align 4, !tbaa !5
  %2657 = load i32, ptr %285, align 4, !tbaa !5
  %2658 = call ptr @s2n_strerror(i32 noundef %2657, ptr noundef nonnull @.str.4) #12
  %2659 = load i32, ptr %285, align 4, !tbaa !5
  %2660 = call ptr @s2n_strerror_debug(i32 noundef %2659, ptr noundef nonnull @.str.4) #12
  %2661 = load i32, ptr %339, align 4, !tbaa !5
  %2662 = call ptr @strerror(i32 noundef %2661) #12
  %2663 = load i32, ptr %339, align 4, !tbaa !5
  %2664 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2655, ptr noundef nonnull %.str.5.sink1737, i32 noundef %2656, ptr noundef nonnull @.str.60, ptr noundef nonnull @.str.1, i32 noundef 299, ptr noundef %2658, ptr noundef %2660, ptr noundef %2662, i32 noundef %2663) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2665:                                             ; preds = %2639
  %2666 = add nsw i32 %2612, 3
  store i32 %2666, ptr @test_count, align 4, !tbaa !5
  %2667 = getelementptr inbounds i8, ptr %2614, i64 336
  %bcmp629 = call i32 @bcmp(ptr noundef nonnull dereferenceable(48) %2667, ptr noundef nonnull dereferenceable(48) %3, i64 48)
  %2668 = icmp eq i32 %bcmp629, 0
  br i1 %2668, label %2691, label %2669

2669:                                             ; preds = %2665
  %2670 = load i32, ptr %339, align 4, !tbaa !5
  %2671 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2672 = call i32 @s2n_print_stacktrace(ptr noundef %2671) #12
  %2673 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2674 = trunc nuw i8 %2673 to i1
  br i1 %2674, label %2675, label %2679

2675:                                             ; preds = %2669
  %2676 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2677 = call i32 @fileno(ptr noundef %2676) #12
  %2678 = call i32 @isatty(i32 noundef %2677) #12
  %.not630 = icmp eq i32 %2678, 0
  br i1 %.not630, label %2679, label %2680

2679:                                             ; preds = %2675, %2669
  br label %2680

2680:                                             ; preds = %2675, %2679
  %.str.5.sink1746 = phi ptr [ @.str.5, %2679 ], [ @.str.2, %2675 ]
  store i32 %2670, ptr %339, align 4, !tbaa !5
  %2681 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2682 = load i32, ptr @test_count, align 4, !tbaa !5
  %2683 = load i32, ptr %285, align 4, !tbaa !5
  %2684 = call ptr @s2n_strerror(i32 noundef %2683, ptr noundef nonnull @.str.4) #12
  %2685 = load i32, ptr %285, align 4, !tbaa !5
  %2686 = call ptr @s2n_strerror_debug(i32 noundef %2685, ptr noundef nonnull @.str.4) #12
  %2687 = load i32, ptr %339, align 4, !tbaa !5
  %2688 = call ptr @strerror(i32 noundef %2687) #12
  %2689 = load i32, ptr %339, align 4, !tbaa !5
  %2690 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2681, ptr noundef nonnull %.str.5.sink1746, i32 noundef %2682, ptr noundef nonnull @.str.61, ptr noundef nonnull @.str.1, i32 noundef 300, ptr noundef %2684, ptr noundef %2686, ptr noundef %2688, i32 noundef %2689) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2691:                                             ; preds = %2665
  %2692 = add nsw i32 %2612, 4
  store i32 %2692, ptr @test_count, align 4, !tbaa !5
  %2693 = getelementptr inbounds i8, ptr %2614, i64 384
  %bcmp631 = call i32 @bcmp(ptr noundef nonnull dereferenceable(48) %2693, ptr noundef nonnull dereferenceable(48) %3, i64 48)
  %2694 = icmp eq i32 %bcmp631, 0
  br i1 %2694, label %2717, label %2695

2695:                                             ; preds = %2691
  %2696 = load i32, ptr %339, align 4, !tbaa !5
  %2697 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2698 = call i32 @s2n_print_stacktrace(ptr noundef %2697) #12
  %2699 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2700 = trunc nuw i8 %2699 to i1
  br i1 %2700, label %2701, label %2705

2701:                                             ; preds = %2695
  %2702 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2703 = call i32 @fileno(ptr noundef %2702) #12
  %2704 = call i32 @isatty(i32 noundef %2703) #12
  %.not632 = icmp eq i32 %2704, 0
  br i1 %.not632, label %2705, label %2706

2705:                                             ; preds = %2701, %2695
  br label %2706

2706:                                             ; preds = %2701, %2705
  %.str.5.sink1755 = phi ptr [ @.str.5, %2705 ], [ @.str.2, %2701 ]
  store i32 %2696, ptr %339, align 4, !tbaa !5
  %2707 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2708 = load i32, ptr @test_count, align 4, !tbaa !5
  %2709 = load i32, ptr %285, align 4, !tbaa !5
  %2710 = call ptr @s2n_strerror(i32 noundef %2709, ptr noundef nonnull @.str.4) #12
  %2711 = load i32, ptr %285, align 4, !tbaa !5
  %2712 = call ptr @s2n_strerror_debug(i32 noundef %2711, ptr noundef nonnull @.str.4) #12
  %2713 = load i32, ptr %339, align 4, !tbaa !5
  %2714 = call ptr @strerror(i32 noundef %2713) #12
  %2715 = load i32, ptr %339, align 4, !tbaa !5
  %2716 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2707, ptr noundef nonnull %.str.5.sink1755, i32 noundef %2708, ptr noundef nonnull @.str.62, ptr noundef nonnull @.str.1, i32 noundef 301, ptr noundef %2710, ptr noundef %2712, ptr noundef %2714, i32 noundef %2715) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2717:                                             ; preds = %2691
  %2718 = add nsw i32 %2612, 5
  store i32 %2718, ptr @test_count, align 4, !tbaa !5
  %2719 = getelementptr inbounds i8, ptr %2614, i64 432
  %bcmp633 = call i32 @bcmp(ptr noundef nonnull dereferenceable(48) %2719, ptr noundef nonnull dereferenceable(48) %3, i64 48)
  %2720 = icmp eq i32 %bcmp633, 0
  br i1 %2720, label %2721, label %2743

2721:                                             ; preds = %2717
  %2722 = load i32, ptr %339, align 4, !tbaa !5
  %2723 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2724 = call i32 @s2n_print_stacktrace(ptr noundef %2723) #12
  %2725 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2726 = trunc nuw i8 %2725 to i1
  br i1 %2726, label %2727, label %2731

2727:                                             ; preds = %2721
  %2728 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2729 = call i32 @fileno(ptr noundef %2728) #12
  %2730 = call i32 @isatty(i32 noundef %2729) #12
  %.not753 = icmp eq i32 %2730, 0
  br i1 %.not753, label %2731, label %2732

2731:                                             ; preds = %2727, %2721
  br label %2732

2732:                                             ; preds = %2727, %2731
  %.str.5.sink1764 = phi ptr [ @.str.5, %2731 ], [ @.str.2, %2727 ]
  store i32 %2722, ptr %339, align 4, !tbaa !5
  %2733 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2734 = load i32, ptr @test_count, align 4, !tbaa !5
  %2735 = load i32, ptr %285, align 4, !tbaa !5
  %2736 = call ptr @s2n_strerror(i32 noundef %2735, ptr noundef nonnull @.str.4) #12
  %2737 = load i32, ptr %285, align 4, !tbaa !5
  %2738 = call ptr @s2n_strerror_debug(i32 noundef %2737, ptr noundef nonnull @.str.4) #12
  %2739 = load i32, ptr %339, align 4, !tbaa !5
  %2740 = call ptr @strerror(i32 noundef %2739) #12
  %2741 = load i32, ptr %339, align 4, !tbaa !5
  %2742 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2733, ptr noundef nonnull %.str.5.sink1764, i32 noundef %2734, ptr noundef nonnull @.str.55, ptr noundef nonnull @.str.1, i32 noundef 302, ptr noundef %2736, ptr noundef %2738, ptr noundef %2740, i32 noundef %2741) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2743:                                             ; preds = %2717
  %2744 = add nsw i32 %2612, 6
  store i32 %2744, ptr @test_count, align 4, !tbaa !5
  %2745 = getelementptr inbounds i8, ptr %2614, i64 480
  %bcmp634 = call i32 @bcmp(ptr noundef nonnull dereferenceable(48) %2745, ptr noundef nonnull dereferenceable(48) %3, i64 48)
  %2746 = icmp eq i32 %bcmp634, 0
  br i1 %2746, label %2747, label %2769

2747:                                             ; preds = %2743
  %2748 = load i32, ptr %339, align 4, !tbaa !5
  %2749 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2750 = call i32 @s2n_print_stacktrace(ptr noundef %2749) #12
  %2751 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2752 = trunc nuw i8 %2751 to i1
  br i1 %2752, label %2753, label %2757

2753:                                             ; preds = %2747
  %2754 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2755 = call i32 @fileno(ptr noundef %2754) #12
  %2756 = call i32 @isatty(i32 noundef %2755) #12
  %.not752 = icmp eq i32 %2756, 0
  br i1 %.not752, label %2757, label %2758

2757:                                             ; preds = %2753, %2747
  br label %2758

2758:                                             ; preds = %2753, %2757
  %.str.5.sink1773 = phi ptr [ @.str.5, %2757 ], [ @.str.2, %2753 ]
  store i32 %2748, ptr %339, align 4, !tbaa !5
  %2759 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2760 = load i32, ptr @test_count, align 4, !tbaa !5
  %2761 = load i32, ptr %285, align 4, !tbaa !5
  %2762 = call ptr @s2n_strerror(i32 noundef %2761, ptr noundef nonnull @.str.4) #12
  %2763 = load i32, ptr %285, align 4, !tbaa !5
  %2764 = call ptr @s2n_strerror_debug(i32 noundef %2763, ptr noundef nonnull @.str.4) #12
  %2765 = load i32, ptr %339, align 4, !tbaa !5
  %2766 = call ptr @strerror(i32 noundef %2765) #12
  %2767 = load i32, ptr %339, align 4, !tbaa !5
  %2768 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2759, ptr noundef nonnull %.str.5.sink1773, i32 noundef %2760, ptr noundef nonnull @.str.56, ptr noundef nonnull @.str.1, i32 noundef 303, ptr noundef %2762, ptr noundef %2764, ptr noundef %2766, i32 noundef %2767) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2769:                                             ; preds = %2743
  %2770 = add nsw i32 %2612, 7
  store i32 %2770, ptr @test_count, align 4, !tbaa !5
  %2771 = getelementptr inbounds i8, ptr %2614, i64 576
  %bcmp635 = call i32 @bcmp(ptr noundef nonnull dereferenceable(48) %2771, ptr noundef nonnull dereferenceable(48) %3, i64 48)
  %2772 = icmp eq i32 %bcmp635, 0
  br i1 %2772, label %2773, label %2795

2773:                                             ; preds = %2769
  %2774 = load i32, ptr %339, align 4, !tbaa !5
  %2775 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2776 = call i32 @s2n_print_stacktrace(ptr noundef %2775) #12
  %2777 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2778 = trunc nuw i8 %2777 to i1
  br i1 %2778, label %2779, label %2783

2779:                                             ; preds = %2773
  %2780 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2781 = call i32 @fileno(ptr noundef %2780) #12
  %2782 = call i32 @isatty(i32 noundef %2781) #12
  %.not751 = icmp eq i32 %2782, 0
  br i1 %.not751, label %2783, label %2784

2783:                                             ; preds = %2779, %2773
  br label %2784

2784:                                             ; preds = %2779, %2783
  %.str.5.sink1782 = phi ptr [ @.str.5, %2783 ], [ @.str.2, %2779 ]
  store i32 %2774, ptr %339, align 4, !tbaa !5
  %2785 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2786 = load i32, ptr @test_count, align 4, !tbaa !5
  %2787 = load i32, ptr %285, align 4, !tbaa !5
  %2788 = call ptr @s2n_strerror(i32 noundef %2787, ptr noundef nonnull @.str.4) #12
  %2789 = load i32, ptr %285, align 4, !tbaa !5
  %2790 = call ptr @s2n_strerror_debug(i32 noundef %2789, ptr noundef nonnull @.str.4) #12
  %2791 = load i32, ptr %339, align 4, !tbaa !5
  %2792 = call ptr @strerror(i32 noundef %2791) #12
  %2793 = load i32, ptr %339, align 4, !tbaa !5
  %2794 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2785, ptr noundef nonnull %.str.5.sink1782, i32 noundef %2786, ptr noundef nonnull @.str.57, ptr noundef nonnull @.str.1, i32 noundef 304, ptr noundef %2788, ptr noundef %2790, ptr noundef %2792, i32 noundef %2793) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2795:                                             ; preds = %2769
  %2796 = add nsw i32 %2612, 8
  store i32 %2796, ptr @test_count, align 4, !tbaa !5
  %2797 = getelementptr inbounds i8, ptr %2614, i64 528
  %bcmp636 = call i32 @bcmp(ptr noundef nonnull dereferenceable(48) %2797, ptr noundef nonnull dereferenceable(48) %3, i64 48)
  %2798 = icmp eq i32 %bcmp636, 0
  br i1 %2798, label %2799, label %2821

2799:                                             ; preds = %2795
  %2800 = load i32, ptr %339, align 4, !tbaa !5
  %2801 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2802 = call i32 @s2n_print_stacktrace(ptr noundef %2801) #12
  %2803 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2804 = trunc nuw i8 %2803 to i1
  br i1 %2804, label %2805, label %2809

2805:                                             ; preds = %2799
  %2806 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2807 = call i32 @fileno(ptr noundef %2806) #12
  %2808 = call i32 @isatty(i32 noundef %2807) #12
  %.not750 = icmp eq i32 %2808, 0
  br i1 %.not750, label %2809, label %2810

2809:                                             ; preds = %2805, %2799
  br label %2810

2810:                                             ; preds = %2805, %2809
  %.str.5.sink1791 = phi ptr [ @.str.5, %2809 ], [ @.str.2, %2805 ]
  store i32 %2800, ptr %339, align 4, !tbaa !5
  %2811 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2812 = load i32, ptr @test_count, align 4, !tbaa !5
  %2813 = load i32, ptr %285, align 4, !tbaa !5
  %2814 = call ptr @s2n_strerror(i32 noundef %2813, ptr noundef nonnull @.str.4) #12
  %2815 = load i32, ptr %285, align 4, !tbaa !5
  %2816 = call ptr @s2n_strerror_debug(i32 noundef %2815, ptr noundef nonnull @.str.4) #12
  %2817 = load i32, ptr %339, align 4, !tbaa !5
  %2818 = call ptr @strerror(i32 noundef %2817) #12
  %2819 = load i32, ptr %339, align 4, !tbaa !5
  %2820 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2811, ptr noundef nonnull %.str.5.sink1791, i32 noundef %2812, ptr noundef nonnull @.str.58, ptr noundef nonnull @.str.1, i32 noundef 305, ptr noundef %2814, ptr noundef %2816, ptr noundef %2818, i32 noundef %2819) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2821:                                             ; preds = %2795
  %2822 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %28) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #12
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %29) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %29, i8 0, i64 24, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %30) #12
  %2823 = call ptr @s2n_connection_new(i32 noundef 1) #12
  store ptr %2823, ptr %30, align 8, !tbaa !9
  %2824 = load i32, ptr @test_count, align 4, !tbaa !5
  %2825 = add nsw i32 %2824, 1
  store i32 %2825, ptr @test_count, align 4, !tbaa !5
  %2826 = call i32 @s2n_tls13_secrets_get(ptr noundef null, i32 noundef 2, i32 noundef 1, ptr noundef nonnull %29) #12
  %2827 = call zeroext i1 @s2n_result_is_error(i32 %2826)
  br i1 %2827, label %2850, label %2828

2828:                                             ; preds = %2821
  %2829 = load i32, ptr %339, align 4, !tbaa !5
  %2830 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2831 = call i32 @s2n_print_stacktrace(ptr noundef %2830) #12
  %2832 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2833 = trunc nuw i8 %2832 to i1
  br i1 %2833, label %2834, label %2838

2834:                                             ; preds = %2828
  %2835 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2836 = call i32 @fileno(ptr noundef %2835) #12
  %2837 = call i32 @isatty(i32 noundef %2836) #12
  %.not637 = icmp eq i32 %2837, 0
  br i1 %.not637, label %2838, label %2839

2838:                                             ; preds = %2834, %2828
  br label %2839

2839:                                             ; preds = %2834, %2838
  %.str.5.sink1800 = phi ptr [ @.str.5, %2838 ], [ @.str.2, %2834 ]
  store i32 %2829, ptr %339, align 4, !tbaa !5
  %2840 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2841 = load i32, ptr @test_count, align 4, !tbaa !5
  %2842 = load i32, ptr %285, align 4, !tbaa !5
  %2843 = call ptr @s2n_strerror(i32 noundef %2842, ptr noundef nonnull @.str.4) #12
  %2844 = load i32, ptr %285, align 4, !tbaa !5
  %2845 = call ptr @s2n_strerror_debug(i32 noundef %2844, ptr noundef nonnull @.str.4) #12
  %2846 = load i32, ptr %339, align 4, !tbaa !5
  %2847 = call ptr @strerror(i32 noundef %2846) #12
  %2848 = load i32, ptr %339, align 4, !tbaa !5
  %2849 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2840, ptr noundef nonnull %.str.5.sink1800, i32 noundef %2841, ptr noundef nonnull @.str.63, ptr noundef nonnull @.str.1, i32 noundef 315, ptr noundef %2843, ptr noundef %2845, ptr noundef %2847, i32 noundef %2848) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2850:                                             ; preds = %2821
  %2851 = load i32, ptr @test_count, align 4, !tbaa !5
  %2852 = add nsw i32 %2851, 1
  store i32 %2852, ptr @test_count, align 4, !tbaa !5
  %2853 = load i32, ptr %285, align 4, !tbaa !5
  %2854 = icmp eq i32 %2853, 402653193
  br i1 %2854, label %2877, label %2855

2855:                                             ; preds = %2850
  %2856 = load i32, ptr %339, align 4, !tbaa !5
  %2857 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2858 = call i32 @s2n_print_stacktrace(ptr noundef %2857) #12
  %2859 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2860 = trunc nuw i8 %2859 to i1
  br i1 %2860, label %2861, label %2865

2861:                                             ; preds = %2855
  %2862 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2863 = call i32 @fileno(ptr noundef %2862) #12
  %2864 = call i32 @isatty(i32 noundef %2863) #12
  %.not638 = icmp eq i32 %2864, 0
  br i1 %.not638, label %2865, label %2866

2865:                                             ; preds = %2861, %2855
  br label %2866

2866:                                             ; preds = %2861, %2865
  %.str.5.sink1809 = phi ptr [ @.str.5, %2865 ], [ @.str.2, %2861 ]
  store i32 %2856, ptr %339, align 4, !tbaa !5
  %2867 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2868 = load i32, ptr @test_count, align 4, !tbaa !5
  %2869 = load i32, ptr %285, align 4, !tbaa !5
  %2870 = call ptr @s2n_strerror(i32 noundef %2869, ptr noundef nonnull @.str.4) #12
  %2871 = load i32, ptr %285, align 4, !tbaa !5
  %2872 = call ptr @s2n_strerror_debug(i32 noundef %2871, ptr noundef nonnull @.str.4) #12
  %2873 = load i32, ptr %339, align 4, !tbaa !5
  %2874 = call ptr @strerror(i32 noundef %2873) #12
  %2875 = load i32, ptr %339, align 4, !tbaa !5
  %2876 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2867, ptr noundef nonnull %.str.5.sink1809, i32 noundef %2868, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 315, ptr noundef %2870, ptr noundef %2872, ptr noundef %2874, i32 noundef %2875) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2877:                                             ; preds = %2850
  %2878 = add nsw i32 %2851, 2
  store i32 %2878, ptr @test_count, align 4, !tbaa !5
  %2879 = call ptr @s2n_strerror_debug(i32 noundef 402653193, ptr noundef nonnull @.str.4) #12
  %2880 = icmp eq ptr %2879, null
  br i1 %2880, label %2881, label %2903

2881:                                             ; preds = %2877
  %2882 = load i32, ptr %339, align 4, !tbaa !5
  %2883 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2884 = call i32 @s2n_print_stacktrace(ptr noundef %2883) #12
  %2885 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2886 = trunc nuw i8 %2885 to i1
  br i1 %2886, label %2887, label %2891

2887:                                             ; preds = %2881
  %2888 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2889 = call i32 @fileno(ptr noundef %2888) #12
  %2890 = call i32 @isatty(i32 noundef %2889) #12
  %.not749 = icmp eq i32 %2890, 0
  br i1 %.not749, label %2891, label %2892

2891:                                             ; preds = %2887, %2881
  br label %2892

2892:                                             ; preds = %2887, %2891
  %.str.5.sink1818 = phi ptr [ @.str.5, %2891 ], [ @.str.2, %2887 ]
  store i32 %2882, ptr %339, align 4, !tbaa !5
  %2893 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2894 = load i32, ptr @test_count, align 4, !tbaa !5
  %2895 = load i32, ptr %285, align 4, !tbaa !5
  %2896 = call ptr @s2n_strerror(i32 noundef %2895, ptr noundef nonnull @.str.4) #12
  %2897 = load i32, ptr %285, align 4, !tbaa !5
  %2898 = call ptr @s2n_strerror_debug(i32 noundef %2897, ptr noundef nonnull @.str.4) #12
  %2899 = load i32, ptr %339, align 4, !tbaa !5
  %2900 = call ptr @strerror(i32 noundef %2899) #12
  %2901 = load i32, ptr %339, align 4, !tbaa !5
  %2902 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2893, ptr noundef nonnull %.str.5.sink1818, i32 noundef %2894, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 315, ptr noundef %2896, ptr noundef %2898, ptr noundef %2900, i32 noundef %2901) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2903:                                             ; preds = %2877
  store i32 0, ptr %285, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %339, align 4, !tbaa !5
  %2904 = load i32, ptr @test_count, align 4, !tbaa !5
  %2905 = add nsw i32 %2904, 1
  store i32 %2905, ptr @test_count, align 4, !tbaa !5
  %2906 = load ptr, ptr %30, align 8, !tbaa !9
  %2907 = call i32 @s2n_tls13_secrets_get(ptr noundef %2906, i32 noundef 2, i32 noundef 1, ptr noundef null) #12
  %2908 = call zeroext i1 @s2n_result_is_error(i32 %2907)
  br i1 %2908, label %2931, label %2909

2909:                                             ; preds = %2903
  %2910 = load i32, ptr %339, align 4, !tbaa !5
  %2911 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2912 = call i32 @s2n_print_stacktrace(ptr noundef %2911) #12
  %2913 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2914 = trunc nuw i8 %2913 to i1
  br i1 %2914, label %2915, label %2919

2915:                                             ; preds = %2909
  %2916 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2917 = call i32 @fileno(ptr noundef %2916) #12
  %2918 = call i32 @isatty(i32 noundef %2917) #12
  %.not639 = icmp eq i32 %2918, 0
  br i1 %.not639, label %2919, label %2920

2919:                                             ; preds = %2915, %2909
  br label %2920

2920:                                             ; preds = %2915, %2919
  %.str.5.sink1827 = phi ptr [ @.str.5, %2919 ], [ @.str.2, %2915 ]
  store i32 %2910, ptr %339, align 4, !tbaa !5
  %2921 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2922 = load i32, ptr @test_count, align 4, !tbaa !5
  %2923 = load i32, ptr %285, align 4, !tbaa !5
  %2924 = call ptr @s2n_strerror(i32 noundef %2923, ptr noundef nonnull @.str.4) #12
  %2925 = load i32, ptr %285, align 4, !tbaa !5
  %2926 = call ptr @s2n_strerror_debug(i32 noundef %2925, ptr noundef nonnull @.str.4) #12
  %2927 = load i32, ptr %339, align 4, !tbaa !5
  %2928 = call ptr @strerror(i32 noundef %2927) #12
  %2929 = load i32, ptr %339, align 4, !tbaa !5
  %2930 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2921, ptr noundef nonnull %.str.5.sink1827, i32 noundef %2922, ptr noundef nonnull @.str.64, ptr noundef nonnull @.str.1, i32 noundef 316, ptr noundef %2924, ptr noundef %2926, ptr noundef %2928, i32 noundef %2929) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2931:                                             ; preds = %2903
  %2932 = load i32, ptr @test_count, align 4, !tbaa !5
  %2933 = add nsw i32 %2932, 1
  store i32 %2933, ptr @test_count, align 4, !tbaa !5
  %2934 = load i32, ptr %285, align 4, !tbaa !5
  %2935 = icmp eq i32 %2934, 402653193
  br i1 %2935, label %2958, label %2936

2936:                                             ; preds = %2931
  %2937 = load i32, ptr %339, align 4, !tbaa !5
  %2938 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2939 = call i32 @s2n_print_stacktrace(ptr noundef %2938) #12
  %2940 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2941 = trunc nuw i8 %2940 to i1
  br i1 %2941, label %2942, label %2946

2942:                                             ; preds = %2936
  %2943 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2944 = call i32 @fileno(ptr noundef %2943) #12
  %2945 = call i32 @isatty(i32 noundef %2944) #12
  %.not640 = icmp eq i32 %2945, 0
  br i1 %.not640, label %2946, label %2947

2946:                                             ; preds = %2942, %2936
  br label %2947

2947:                                             ; preds = %2942, %2946
  %.str.5.sink1836 = phi ptr [ @.str.5, %2946 ], [ @.str.2, %2942 ]
  store i32 %2937, ptr %339, align 4, !tbaa !5
  %2948 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2949 = load i32, ptr @test_count, align 4, !tbaa !5
  %2950 = load i32, ptr %285, align 4, !tbaa !5
  %2951 = call ptr @s2n_strerror(i32 noundef %2950, ptr noundef nonnull @.str.4) #12
  %2952 = load i32, ptr %285, align 4, !tbaa !5
  %2953 = call ptr @s2n_strerror_debug(i32 noundef %2952, ptr noundef nonnull @.str.4) #12
  %2954 = load i32, ptr %339, align 4, !tbaa !5
  %2955 = call ptr @strerror(i32 noundef %2954) #12
  %2956 = load i32, ptr %339, align 4, !tbaa !5
  %2957 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2948, ptr noundef nonnull %.str.5.sink1836, i32 noundef %2949, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 316, ptr noundef %2951, ptr noundef %2953, ptr noundef %2955, i32 noundef %2956) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2958:                                             ; preds = %2931
  %2959 = add nsw i32 %2932, 2
  store i32 %2959, ptr @test_count, align 4, !tbaa !5
  %2960 = call ptr @s2n_strerror_debug(i32 noundef 402653193, ptr noundef nonnull @.str.4) #12
  %2961 = icmp eq ptr %2960, null
  br i1 %2961, label %2962, label %2984

2962:                                             ; preds = %2958
  %2963 = load i32, ptr %339, align 4, !tbaa !5
  %2964 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2965 = call i32 @s2n_print_stacktrace(ptr noundef %2964) #12
  %2966 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2967 = trunc nuw i8 %2966 to i1
  br i1 %2967, label %2968, label %2972

2968:                                             ; preds = %2962
  %2969 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2970 = call i32 @fileno(ptr noundef %2969) #12
  %2971 = call i32 @isatty(i32 noundef %2970) #12
  %.not748 = icmp eq i32 %2971, 0
  br i1 %.not748, label %2972, label %2973

2972:                                             ; preds = %2968, %2962
  br label %2973

2973:                                             ; preds = %2968, %2972
  %.str.5.sink1845 = phi ptr [ @.str.5, %2972 ], [ @.str.2, %2968 ]
  store i32 %2963, ptr %339, align 4, !tbaa !5
  %2974 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2975 = load i32, ptr @test_count, align 4, !tbaa !5
  %2976 = load i32, ptr %285, align 4, !tbaa !5
  %2977 = call ptr @s2n_strerror(i32 noundef %2976, ptr noundef nonnull @.str.4) #12
  %2978 = load i32, ptr %285, align 4, !tbaa !5
  %2979 = call ptr @s2n_strerror_debug(i32 noundef %2978, ptr noundef nonnull @.str.4) #12
  %2980 = load i32, ptr %339, align 4, !tbaa !5
  %2981 = call ptr @strerror(i32 noundef %2980) #12
  %2982 = load i32, ptr %339, align 4, !tbaa !5
  %2983 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2974, ptr noundef nonnull %.str.5.sink1845, i32 noundef %2975, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 316, ptr noundef %2977, ptr noundef %2979, ptr noundef %2981, i32 noundef %2982) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2984:                                             ; preds = %2958
  store i32 0, ptr %285, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %339, align 4, !tbaa !5
  %2985 = load i32, ptr @test_count, align 4, !tbaa !5
  %2986 = add nsw i32 %2985, 1
  store i32 %2986, ptr @test_count, align 4, !tbaa !5
  %2987 = load ptr, ptr %30, align 8, !tbaa !9
  %2988 = call i32 @s2n_tls13_secrets_get(ptr noundef %2987, i32 noundef 0, i32 noundef 1, ptr noundef nonnull %29) #12
  %2989 = call zeroext i1 @s2n_result_is_error(i32 %2988)
  br i1 %2989, label %3012, label %2990

2990:                                             ; preds = %2984
  %2991 = load i32, ptr %339, align 4, !tbaa !5
  %2992 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2993 = call i32 @s2n_print_stacktrace(ptr noundef %2992) #12
  %2994 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2995 = trunc nuw i8 %2994 to i1
  br i1 %2995, label %2996, label %3000

2996:                                             ; preds = %2990
  %2997 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2998 = call i32 @fileno(ptr noundef %2997) #12
  %2999 = call i32 @isatty(i32 noundef %2998) #12
  %.not641 = icmp eq i32 %2999, 0
  br i1 %.not641, label %3000, label %3001

3000:                                             ; preds = %2996, %2990
  br label %3001

3001:                                             ; preds = %2996, %3000
  %.str.5.sink1854 = phi ptr [ @.str.5, %3000 ], [ @.str.2, %2996 ]
  store i32 %2991, ptr %339, align 4, !tbaa !5
  %3002 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3003 = load i32, ptr @test_count, align 4, !tbaa !5
  %3004 = load i32, ptr %285, align 4, !tbaa !5
  %3005 = call ptr @s2n_strerror(i32 noundef %3004, ptr noundef nonnull @.str.4) #12
  %3006 = load i32, ptr %285, align 4, !tbaa !5
  %3007 = call ptr @s2n_strerror_debug(i32 noundef %3006, ptr noundef nonnull @.str.4) #12
  %3008 = load i32, ptr %339, align 4, !tbaa !5
  %3009 = call ptr @strerror(i32 noundef %3008) #12
  %3010 = load i32, ptr %339, align 4, !tbaa !5
  %3011 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3002, ptr noundef nonnull %.str.5.sink1854, i32 noundef %3003, ptr noundef nonnull @.str.65, ptr noundef nonnull @.str.1, i32 noundef 317, ptr noundef %3005, ptr noundef %3007, ptr noundef %3009, i32 noundef %3010) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3012:                                             ; preds = %2984
  %3013 = load i32, ptr @test_count, align 4, !tbaa !5
  %3014 = add nsw i32 %3013, 1
  store i32 %3014, ptr @test_count, align 4, !tbaa !5
  %3015 = load i32, ptr %285, align 4, !tbaa !5
  %3016 = icmp eq i32 %3015, 402653194
  br i1 %3016, label %3039, label %3017

3017:                                             ; preds = %3012
  %3018 = load i32, ptr %339, align 4, !tbaa !5
  %3019 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3020 = call i32 @s2n_print_stacktrace(ptr noundef %3019) #12
  %3021 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3022 = trunc nuw i8 %3021 to i1
  br i1 %3022, label %3023, label %3027

3023:                                             ; preds = %3017
  %3024 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3025 = call i32 @fileno(ptr noundef %3024) #12
  %3026 = call i32 @isatty(i32 noundef %3025) #12
  %.not642 = icmp eq i32 %3026, 0
  br i1 %.not642, label %3027, label %3028

3027:                                             ; preds = %3023, %3017
  br label %3028

3028:                                             ; preds = %3023, %3027
  %.str.5.sink1863 = phi ptr [ @.str.5, %3027 ], [ @.str.2, %3023 ]
  store i32 %3018, ptr %339, align 4, !tbaa !5
  %3029 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3030 = load i32, ptr @test_count, align 4, !tbaa !5
  %3031 = load i32, ptr %285, align 4, !tbaa !5
  %3032 = call ptr @s2n_strerror(i32 noundef %3031, ptr noundef nonnull @.str.4) #12
  %3033 = load i32, ptr %285, align 4, !tbaa !5
  %3034 = call ptr @s2n_strerror_debug(i32 noundef %3033, ptr noundef nonnull @.str.4) #12
  %3035 = load i32, ptr %339, align 4, !tbaa !5
  %3036 = call ptr @strerror(i32 noundef %3035) #12
  %3037 = load i32, ptr %339, align 4, !tbaa !5
  %3038 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3029, ptr noundef nonnull %.str.5.sink1863, i32 noundef %3030, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 317, ptr noundef %3032, ptr noundef %3034, ptr noundef %3036, i32 noundef %3037) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3039:                                             ; preds = %3012
  %3040 = add nsw i32 %3013, 2
  store i32 %3040, ptr @test_count, align 4, !tbaa !5
  %3041 = call ptr @s2n_strerror_debug(i32 noundef 402653194, ptr noundef nonnull @.str.4) #12
  %3042 = icmp eq ptr %3041, null
  br i1 %3042, label %3043, label %3065

3043:                                             ; preds = %3039
  %3044 = load i32, ptr %339, align 4, !tbaa !5
  %3045 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3046 = call i32 @s2n_print_stacktrace(ptr noundef %3045) #12
  %3047 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3048 = trunc nuw i8 %3047 to i1
  br i1 %3048, label %3049, label %3053

3049:                                             ; preds = %3043
  %3050 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3051 = call i32 @fileno(ptr noundef %3050) #12
  %3052 = call i32 @isatty(i32 noundef %3051) #12
  %.not747 = icmp eq i32 %3052, 0
  br i1 %.not747, label %3053, label %3054

3053:                                             ; preds = %3049, %3043
  br label %3054

3054:                                             ; preds = %3049, %3053
  %.str.5.sink1872 = phi ptr [ @.str.5, %3053 ], [ @.str.2, %3049 ]
  store i32 %3044, ptr %339, align 4, !tbaa !5
  %3055 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3056 = load i32, ptr @test_count, align 4, !tbaa !5
  %3057 = load i32, ptr %285, align 4, !tbaa !5
  %3058 = call ptr @s2n_strerror(i32 noundef %3057, ptr noundef nonnull @.str.4) #12
  %3059 = load i32, ptr %285, align 4, !tbaa !5
  %3060 = call ptr @s2n_strerror_debug(i32 noundef %3059, ptr noundef nonnull @.str.4) #12
  %3061 = load i32, ptr %339, align 4, !tbaa !5
  %3062 = call ptr @strerror(i32 noundef %3061) #12
  %3063 = load i32, ptr %339, align 4, !tbaa !5
  %3064 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3055, ptr noundef nonnull %.str.5.sink1872, i32 noundef %3056, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 317, ptr noundef %3058, ptr noundef %3060, ptr noundef %3062, i32 noundef %3063) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3065:                                             ; preds = %3039
  store i32 0, ptr %285, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %339, align 4, !tbaa !5
  %3066 = load i32, ptr @test_count, align 4, !tbaa !5
  %3067 = add nsw i32 %3066, 1
  store i32 %3067, ptr @test_count, align 4, !tbaa !5
  %3068 = load ptr, ptr %30, align 8, !tbaa !9
  %3069 = call i32 @s2n_tls13_secrets_get(ptr noundef %3068, i32 noundef -1, i32 noundef 1, ptr noundef nonnull %29) #12
  %3070 = call zeroext i1 @s2n_result_is_error(i32 %3069)
  br i1 %3070, label %3093, label %3071

3071:                                             ; preds = %3065
  %3072 = load i32, ptr %339, align 4, !tbaa !5
  %3073 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3074 = call i32 @s2n_print_stacktrace(ptr noundef %3073) #12
  %3075 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3076 = trunc nuw i8 %3075 to i1
  br i1 %3076, label %3077, label %3081

3077:                                             ; preds = %3071
  %3078 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3079 = call i32 @fileno(ptr noundef %3078) #12
  %3080 = call i32 @isatty(i32 noundef %3079) #12
  %.not643 = icmp eq i32 %3080, 0
  br i1 %.not643, label %3081, label %3082

3081:                                             ; preds = %3077, %3071
  br label %3082

3082:                                             ; preds = %3077, %3081
  %.str.5.sink1881 = phi ptr [ @.str.5, %3081 ], [ @.str.2, %3077 ]
  store i32 %3072, ptr %339, align 4, !tbaa !5
  %3083 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3084 = load i32, ptr @test_count, align 4, !tbaa !5
  %3085 = load i32, ptr %285, align 4, !tbaa !5
  %3086 = call ptr @s2n_strerror(i32 noundef %3085, ptr noundef nonnull @.str.4) #12
  %3087 = load i32, ptr %285, align 4, !tbaa !5
  %3088 = call ptr @s2n_strerror_debug(i32 noundef %3087, ptr noundef nonnull @.str.4) #12
  %3089 = load i32, ptr %339, align 4, !tbaa !5
  %3090 = call ptr @strerror(i32 noundef %3089) #12
  %3091 = load i32, ptr %339, align 4, !tbaa !5
  %3092 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3083, ptr noundef nonnull %.str.5.sink1881, i32 noundef %3084, ptr noundef nonnull @.str.66, ptr noundef nonnull @.str.1, i32 noundef 318, ptr noundef %3086, ptr noundef %3088, ptr noundef %3090, i32 noundef %3091) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3093:                                             ; preds = %3065
  %3094 = load i32, ptr @test_count, align 4, !tbaa !5
  %3095 = add nsw i32 %3094, 1
  store i32 %3095, ptr @test_count, align 4, !tbaa !5
  %3096 = load i32, ptr %285, align 4, !tbaa !5
  %3097 = icmp eq i32 %3096, 402653194
  br i1 %3097, label %3120, label %3098

3098:                                             ; preds = %3093
  %3099 = load i32, ptr %339, align 4, !tbaa !5
  %3100 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3101 = call i32 @s2n_print_stacktrace(ptr noundef %3100) #12
  %3102 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3103 = trunc nuw i8 %3102 to i1
  br i1 %3103, label %3104, label %3108

3104:                                             ; preds = %3098
  %3105 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3106 = call i32 @fileno(ptr noundef %3105) #12
  %3107 = call i32 @isatty(i32 noundef %3106) #12
  %.not644 = icmp eq i32 %3107, 0
  br i1 %.not644, label %3108, label %3109

3108:                                             ; preds = %3104, %3098
  br label %3109

3109:                                             ; preds = %3104, %3108
  %.str.5.sink1890 = phi ptr [ @.str.5, %3108 ], [ @.str.2, %3104 ]
  store i32 %3099, ptr %339, align 4, !tbaa !5
  %3110 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3111 = load i32, ptr @test_count, align 4, !tbaa !5
  %3112 = load i32, ptr %285, align 4, !tbaa !5
  %3113 = call ptr @s2n_strerror(i32 noundef %3112, ptr noundef nonnull @.str.4) #12
  %3114 = load i32, ptr %285, align 4, !tbaa !5
  %3115 = call ptr @s2n_strerror_debug(i32 noundef %3114, ptr noundef nonnull @.str.4) #12
  %3116 = load i32, ptr %339, align 4, !tbaa !5
  %3117 = call ptr @strerror(i32 noundef %3116) #12
  %3118 = load i32, ptr %339, align 4, !tbaa !5
  %3119 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3110, ptr noundef nonnull %.str.5.sink1890, i32 noundef %3111, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 318, ptr noundef %3113, ptr noundef %3115, ptr noundef %3117, i32 noundef %3118) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3120:                                             ; preds = %3093
  %3121 = add nsw i32 %3094, 2
  store i32 %3121, ptr @test_count, align 4, !tbaa !5
  %3122 = call ptr @s2n_strerror_debug(i32 noundef 402653194, ptr noundef nonnull @.str.4) #12
  %3123 = icmp eq ptr %3122, null
  br i1 %3123, label %3124, label %3146

3124:                                             ; preds = %3120
  %3125 = load i32, ptr %339, align 4, !tbaa !5
  %3126 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3127 = call i32 @s2n_print_stacktrace(ptr noundef %3126) #12
  %3128 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3129 = trunc nuw i8 %3128 to i1
  br i1 %3129, label %3130, label %3134

3130:                                             ; preds = %3124
  %3131 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3132 = call i32 @fileno(ptr noundef %3131) #12
  %3133 = call i32 @isatty(i32 noundef %3132) #12
  %.not746 = icmp eq i32 %3133, 0
  br i1 %.not746, label %3134, label %3135

3134:                                             ; preds = %3130, %3124
  br label %3135

3135:                                             ; preds = %3130, %3134
  %.str.5.sink1899 = phi ptr [ @.str.5, %3134 ], [ @.str.2, %3130 ]
  store i32 %3125, ptr %339, align 4, !tbaa !5
  %3136 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3137 = load i32, ptr @test_count, align 4, !tbaa !5
  %3138 = load i32, ptr %285, align 4, !tbaa !5
  %3139 = call ptr @s2n_strerror(i32 noundef %3138, ptr noundef nonnull @.str.4) #12
  %3140 = load i32, ptr %285, align 4, !tbaa !5
  %3141 = call ptr @s2n_strerror_debug(i32 noundef %3140, ptr noundef nonnull @.str.4) #12
  %3142 = load i32, ptr %339, align 4, !tbaa !5
  %3143 = call ptr @strerror(i32 noundef %3142) #12
  %3144 = load i32, ptr %339, align 4, !tbaa !5
  %3145 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3136, ptr noundef nonnull %.str.5.sink1899, i32 noundef %3137, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 318, ptr noundef %3139, ptr noundef %3141, ptr noundef %3143, i32 noundef %3144) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3146:                                             ; preds = %3120
  store i32 0, ptr %285, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %339, align 4, !tbaa !5
  %3147 = load i32, ptr @test_count, align 4, !tbaa !5
  %3148 = add nsw i32 %3147, 1
  store i32 %3148, ptr @test_count, align 4, !tbaa !5
  %3149 = load ptr, ptr %30, align 8, !tbaa !9
  %3150 = call i32 @s2n_tls13_secrets_get(ptr noundef %3149, i32 noundef 100, i32 noundef 1, ptr noundef nonnull %29) #12
  %3151 = call zeroext i1 @s2n_result_is_error(i32 %3150)
  br i1 %3151, label %3174, label %3152

3152:                                             ; preds = %3146
  %3153 = load i32, ptr %339, align 4, !tbaa !5
  %3154 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3155 = call i32 @s2n_print_stacktrace(ptr noundef %3154) #12
  %3156 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3157 = trunc nuw i8 %3156 to i1
  br i1 %3157, label %3158, label %3162

3158:                                             ; preds = %3152
  %3159 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3160 = call i32 @fileno(ptr noundef %3159) #12
  %3161 = call i32 @isatty(i32 noundef %3160) #12
  %.not645 = icmp eq i32 %3161, 0
  br i1 %.not645, label %3162, label %3163

3162:                                             ; preds = %3158, %3152
  br label %3163

3163:                                             ; preds = %3158, %3162
  %.str.5.sink1908 = phi ptr [ @.str.5, %3162 ], [ @.str.2, %3158 ]
  store i32 %3153, ptr %339, align 4, !tbaa !5
  %3164 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3165 = load i32, ptr @test_count, align 4, !tbaa !5
  %3166 = load i32, ptr %285, align 4, !tbaa !5
  %3167 = call ptr @s2n_strerror(i32 noundef %3166, ptr noundef nonnull @.str.4) #12
  %3168 = load i32, ptr %285, align 4, !tbaa !5
  %3169 = call ptr @s2n_strerror_debug(i32 noundef %3168, ptr noundef nonnull @.str.4) #12
  %3170 = load i32, ptr %339, align 4, !tbaa !5
  %3171 = call ptr @strerror(i32 noundef %3170) #12
  %3172 = load i32, ptr %339, align 4, !tbaa !5
  %3173 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3164, ptr noundef nonnull %.str.5.sink1908, i32 noundef %3165, ptr noundef nonnull @.str.67, ptr noundef nonnull @.str.1, i32 noundef 319, ptr noundef %3167, ptr noundef %3169, ptr noundef %3171, i32 noundef %3172) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3174:                                             ; preds = %3146
  %3175 = load i32, ptr @test_count, align 4, !tbaa !5
  %3176 = add nsw i32 %3175, 1
  store i32 %3176, ptr @test_count, align 4, !tbaa !5
  %3177 = load i32, ptr %285, align 4, !tbaa !5
  %3178 = icmp eq i32 %3177, 402653194
  br i1 %3178, label %3201, label %3179

3179:                                             ; preds = %3174
  %3180 = load i32, ptr %339, align 4, !tbaa !5
  %3181 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3182 = call i32 @s2n_print_stacktrace(ptr noundef %3181) #12
  %3183 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3184 = trunc nuw i8 %3183 to i1
  br i1 %3184, label %3185, label %3189

3185:                                             ; preds = %3179
  %3186 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3187 = call i32 @fileno(ptr noundef %3186) #12
  %3188 = call i32 @isatty(i32 noundef %3187) #12
  %.not646 = icmp eq i32 %3188, 0
  br i1 %.not646, label %3189, label %3190

3189:                                             ; preds = %3185, %3179
  br label %3190

3190:                                             ; preds = %3185, %3189
  %.str.5.sink1917 = phi ptr [ @.str.5, %3189 ], [ @.str.2, %3185 ]
  store i32 %3180, ptr %339, align 4, !tbaa !5
  %3191 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3192 = load i32, ptr @test_count, align 4, !tbaa !5
  %3193 = load i32, ptr %285, align 4, !tbaa !5
  %3194 = call ptr @s2n_strerror(i32 noundef %3193, ptr noundef nonnull @.str.4) #12
  %3195 = load i32, ptr %285, align 4, !tbaa !5
  %3196 = call ptr @s2n_strerror_debug(i32 noundef %3195, ptr noundef nonnull @.str.4) #12
  %3197 = load i32, ptr %339, align 4, !tbaa !5
  %3198 = call ptr @strerror(i32 noundef %3197) #12
  %3199 = load i32, ptr %339, align 4, !tbaa !5
  %3200 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3191, ptr noundef nonnull %.str.5.sink1917, i32 noundef %3192, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 319, ptr noundef %3194, ptr noundef %3196, ptr noundef %3198, i32 noundef %3199) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3201:                                             ; preds = %3174
  %3202 = add nsw i32 %3175, 2
  store i32 %3202, ptr @test_count, align 4, !tbaa !5
  %3203 = call ptr @s2n_strerror_debug(i32 noundef 402653194, ptr noundef nonnull @.str.4) #12
  %3204 = icmp eq ptr %3203, null
  br i1 %3204, label %3205, label %3227

3205:                                             ; preds = %3201
  %3206 = load i32, ptr %339, align 4, !tbaa !5
  %3207 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3208 = call i32 @s2n_print_stacktrace(ptr noundef %3207) #12
  %3209 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3210 = trunc nuw i8 %3209 to i1
  br i1 %3210, label %3211, label %3215

3211:                                             ; preds = %3205
  %3212 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3213 = call i32 @fileno(ptr noundef %3212) #12
  %3214 = call i32 @isatty(i32 noundef %3213) #12
  %.not745 = icmp eq i32 %3214, 0
  br i1 %.not745, label %3215, label %3216

3215:                                             ; preds = %3211, %3205
  br label %3216

3216:                                             ; preds = %3211, %3215
  %.str.5.sink1926 = phi ptr [ @.str.5, %3215 ], [ @.str.2, %3211 ]
  store i32 %3206, ptr %339, align 4, !tbaa !5
  %3217 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3218 = load i32, ptr @test_count, align 4, !tbaa !5
  %3219 = load i32, ptr %285, align 4, !tbaa !5
  %3220 = call ptr @s2n_strerror(i32 noundef %3219, ptr noundef nonnull @.str.4) #12
  %3221 = load i32, ptr %285, align 4, !tbaa !5
  %3222 = call ptr @s2n_strerror_debug(i32 noundef %3221, ptr noundef nonnull @.str.4) #12
  %3223 = load i32, ptr %339, align 4, !tbaa !5
  %3224 = call ptr @strerror(i32 noundef %3223) #12
  %3225 = load i32, ptr %339, align 4, !tbaa !5
  %3226 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3217, ptr noundef nonnull %.str.5.sink1926, i32 noundef %3218, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 319, ptr noundef %3220, ptr noundef %3222, ptr noundef %3224, i32 noundef %3225) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3227:                                             ; preds = %3201
  store i32 0, ptr %285, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %339, align 4, !tbaa !5
  %3228 = load i32, ptr @test_count, align 4, !tbaa !5
  %3229 = add nsw i32 %3228, 1
  store i32 %3229, ptr @test_count, align 4, !tbaa !5
  %3230 = load ptr, ptr %30, align 8, !tbaa !9
  %3231 = call i32 @s2n_tls13_secrets_get(ptr noundef %3230, i32 noundef 1, i32 noundef 0, ptr noundef nonnull %29) #12
  %3232 = call zeroext i1 @s2n_result_is_error(i32 %3231)
  br i1 %3232, label %3255, label %3233

3233:                                             ; preds = %3227
  %3234 = load i32, ptr %339, align 4, !tbaa !5
  %3235 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3236 = call i32 @s2n_print_stacktrace(ptr noundef %3235) #12
  %3237 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3238 = trunc nuw i8 %3237 to i1
  br i1 %3238, label %3239, label %3243

3239:                                             ; preds = %3233
  %3240 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3241 = call i32 @fileno(ptr noundef %3240) #12
  %3242 = call i32 @isatty(i32 noundef %3241) #12
  %.not647 = icmp eq i32 %3242, 0
  br i1 %.not647, label %3243, label %3244

3243:                                             ; preds = %3239, %3233
  br label %3244

3244:                                             ; preds = %3239, %3243
  %.str.5.sink1935 = phi ptr [ @.str.5, %3243 ], [ @.str.2, %3239 ]
  store i32 %3234, ptr %339, align 4, !tbaa !5
  %3245 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3246 = load i32, ptr @test_count, align 4, !tbaa !5
  %3247 = load i32, ptr %285, align 4, !tbaa !5
  %3248 = call ptr @s2n_strerror(i32 noundef %3247, ptr noundef nonnull @.str.4) #12
  %3249 = load i32, ptr %285, align 4, !tbaa !5
  %3250 = call ptr @s2n_strerror_debug(i32 noundef %3249, ptr noundef nonnull @.str.4) #12
  %3251 = load i32, ptr %339, align 4, !tbaa !5
  %3252 = call ptr @strerror(i32 noundef %3251) #12
  %3253 = load i32, ptr %339, align 4, !tbaa !5
  %3254 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3245, ptr noundef nonnull %.str.5.sink1935, i32 noundef %3246, ptr noundef nonnull @.str.68, ptr noundef nonnull @.str.1, i32 noundef 320, ptr noundef %3248, ptr noundef %3250, ptr noundef %3252, i32 noundef %3253) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3255:                                             ; preds = %3227
  %3256 = load i32, ptr @test_count, align 4, !tbaa !5
  %3257 = add nsw i32 %3256, 1
  store i32 %3257, ptr @test_count, align 4, !tbaa !5
  %3258 = load i32, ptr %285, align 4, !tbaa !5
  %3259 = icmp eq i32 %3258, 402653194
  br i1 %3259, label %3282, label %3260

3260:                                             ; preds = %3255
  %3261 = load i32, ptr %339, align 4, !tbaa !5
  %3262 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3263 = call i32 @s2n_print_stacktrace(ptr noundef %3262) #12
  %3264 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3265 = trunc nuw i8 %3264 to i1
  br i1 %3265, label %3266, label %3270

3266:                                             ; preds = %3260
  %3267 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3268 = call i32 @fileno(ptr noundef %3267) #12
  %3269 = call i32 @isatty(i32 noundef %3268) #12
  %.not648 = icmp eq i32 %3269, 0
  br i1 %.not648, label %3270, label %3271

3270:                                             ; preds = %3266, %3260
  br label %3271

3271:                                             ; preds = %3266, %3270
  %.str.5.sink1944 = phi ptr [ @.str.5, %3270 ], [ @.str.2, %3266 ]
  store i32 %3261, ptr %339, align 4, !tbaa !5
  %3272 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3273 = load i32, ptr @test_count, align 4, !tbaa !5
  %3274 = load i32, ptr %285, align 4, !tbaa !5
  %3275 = call ptr @s2n_strerror(i32 noundef %3274, ptr noundef nonnull @.str.4) #12
  %3276 = load i32, ptr %285, align 4, !tbaa !5
  %3277 = call ptr @s2n_strerror_debug(i32 noundef %3276, ptr noundef nonnull @.str.4) #12
  %3278 = load i32, ptr %339, align 4, !tbaa !5
  %3279 = call ptr @strerror(i32 noundef %3278) #12
  %3280 = load i32, ptr %339, align 4, !tbaa !5
  %3281 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3272, ptr noundef nonnull %.str.5.sink1944, i32 noundef %3273, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 320, ptr noundef %3275, ptr noundef %3277, ptr noundef %3279, i32 noundef %3280) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3282:                                             ; preds = %3255
  %3283 = add nsw i32 %3256, 2
  store i32 %3283, ptr @test_count, align 4, !tbaa !5
  %3284 = call ptr @s2n_strerror_debug(i32 noundef 402653194, ptr noundef nonnull @.str.4) #12
  %3285 = icmp eq ptr %3284, null
  br i1 %3285, label %3286, label %3308

3286:                                             ; preds = %3282
  %3287 = load i32, ptr %339, align 4, !tbaa !5
  %3288 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3289 = call i32 @s2n_print_stacktrace(ptr noundef %3288) #12
  %3290 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3291 = trunc nuw i8 %3290 to i1
  br i1 %3291, label %3292, label %3296

3292:                                             ; preds = %3286
  %3293 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3294 = call i32 @fileno(ptr noundef %3293) #12
  %3295 = call i32 @isatty(i32 noundef %3294) #12
  %.not744 = icmp eq i32 %3295, 0
  br i1 %.not744, label %3296, label %3297

3296:                                             ; preds = %3292, %3286
  br label %3297

3297:                                             ; preds = %3292, %3296
  %.str.5.sink1953 = phi ptr [ @.str.5, %3296 ], [ @.str.2, %3292 ]
  store i32 %3287, ptr %339, align 4, !tbaa !5
  %3298 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3299 = load i32, ptr @test_count, align 4, !tbaa !5
  %3300 = load i32, ptr %285, align 4, !tbaa !5
  %3301 = call ptr @s2n_strerror(i32 noundef %3300, ptr noundef nonnull @.str.4) #12
  %3302 = load i32, ptr %285, align 4, !tbaa !5
  %3303 = call ptr @s2n_strerror_debug(i32 noundef %3302, ptr noundef nonnull @.str.4) #12
  %3304 = load i32, ptr %339, align 4, !tbaa !5
  %3305 = call ptr @strerror(i32 noundef %3304) #12
  %3306 = load i32, ptr %339, align 4, !tbaa !5
  %3307 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3298, ptr noundef nonnull %.str.5.sink1953, i32 noundef %3299, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 320, ptr noundef %3301, ptr noundef %3303, ptr noundef %3305, i32 noundef %3306) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3308:                                             ; preds = %3282
  store i32 0, ptr %285, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %339, align 4, !tbaa !5
  %3309 = load ptr, ptr %30, align 8, !tbaa !9
  %3310 = getelementptr inbounds i8, ptr %3309, i64 628
  store i32 0, ptr %3310, align 4, !tbaa !53
  %3311 = load i32, ptr @test_count, align 4, !tbaa !5
  %3312 = add nsw i32 %3311, 1
  store i32 %3312, ptr @test_count, align 4, !tbaa !5
  %3313 = call i32 @s2n_tls13_secrets_get(ptr noundef %3309, i32 noundef 2, i32 noundef 1, ptr noundef nonnull %29) #12
  %3314 = call zeroext i1 @s2n_result_is_error(i32 %3313)
  br i1 %3314, label %3337, label %3315

3315:                                             ; preds = %3308
  %3316 = load i32, ptr %339, align 4, !tbaa !5
  %3317 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3318 = call i32 @s2n_print_stacktrace(ptr noundef %3317) #12
  %3319 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3320 = trunc nuw i8 %3319 to i1
  br i1 %3320, label %3321, label %3325

3321:                                             ; preds = %3315
  %3322 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3323 = call i32 @fileno(ptr noundef %3322) #12
  %3324 = call i32 @isatty(i32 noundef %3323) #12
  %.not649 = icmp eq i32 %3324, 0
  br i1 %.not649, label %3325, label %3326

3325:                                             ; preds = %3321, %3315
  br label %3326

3326:                                             ; preds = %3321, %3325
  %.str.5.sink1962 = phi ptr [ @.str.5, %3325 ], [ @.str.2, %3321 ]
  store i32 %3316, ptr %339, align 4, !tbaa !5
  %3327 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3328 = load i32, ptr @test_count, align 4, !tbaa !5
  %3329 = load i32, ptr %285, align 4, !tbaa !5
  %3330 = call ptr @s2n_strerror(i32 noundef %3329, ptr noundef nonnull @.str.4) #12
  %3331 = load i32, ptr %285, align 4, !tbaa !5
  %3332 = call ptr @s2n_strerror_debug(i32 noundef %3331, ptr noundef nonnull @.str.4) #12
  %3333 = load i32, ptr %339, align 4, !tbaa !5
  %3334 = call ptr @strerror(i32 noundef %3333) #12
  %3335 = load i32, ptr %339, align 4, !tbaa !5
  %3336 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3327, ptr noundef nonnull %.str.5.sink1962, i32 noundef %3328, ptr noundef nonnull @.str.69, ptr noundef nonnull @.str.1, i32 noundef 323, ptr noundef %3330, ptr noundef %3332, ptr noundef %3334, i32 noundef %3335) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3337:                                             ; preds = %3308
  %3338 = load i32, ptr @test_count, align 4, !tbaa !5
  %3339 = add nsw i32 %3338, 1
  store i32 %3339, ptr @test_count, align 4, !tbaa !5
  %3340 = load i32, ptr %285, align 4, !tbaa !5
  %3341 = icmp eq i32 %3340, 402653194
  br i1 %3341, label %3364, label %3342

3342:                                             ; preds = %3337
  %3343 = load i32, ptr %339, align 4, !tbaa !5
  %3344 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3345 = call i32 @s2n_print_stacktrace(ptr noundef %3344) #12
  %3346 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3347 = trunc nuw i8 %3346 to i1
  br i1 %3347, label %3348, label %3352

3348:                                             ; preds = %3342
  %3349 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3350 = call i32 @fileno(ptr noundef %3349) #12
  %3351 = call i32 @isatty(i32 noundef %3350) #12
  %.not650 = icmp eq i32 %3351, 0
  br i1 %.not650, label %3352, label %3353

3352:                                             ; preds = %3348, %3342
  br label %3353

3353:                                             ; preds = %3348, %3352
  %.str.5.sink1971 = phi ptr [ @.str.5, %3352 ], [ @.str.2, %3348 ]
  store i32 %3343, ptr %339, align 4, !tbaa !5
  %3354 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3355 = load i32, ptr @test_count, align 4, !tbaa !5
  %3356 = load i32, ptr %285, align 4, !tbaa !5
  %3357 = call ptr @s2n_strerror(i32 noundef %3356, ptr noundef nonnull @.str.4) #12
  %3358 = load i32, ptr %285, align 4, !tbaa !5
  %3359 = call ptr @s2n_strerror_debug(i32 noundef %3358, ptr noundef nonnull @.str.4) #12
  %3360 = load i32, ptr %339, align 4, !tbaa !5
  %3361 = call ptr @strerror(i32 noundef %3360) #12
  %3362 = load i32, ptr %339, align 4, !tbaa !5
  %3363 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3354, ptr noundef nonnull %.str.5.sink1971, i32 noundef %3355, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 323, ptr noundef %3357, ptr noundef %3359, ptr noundef %3361, i32 noundef %3362) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3364:                                             ; preds = %3337
  %3365 = add nsw i32 %3338, 2
  store i32 %3365, ptr @test_count, align 4, !tbaa !5
  %3366 = call ptr @s2n_strerror_debug(i32 noundef 402653194, ptr noundef nonnull @.str.4) #12
  %3367 = icmp eq ptr %3366, null
  br i1 %3367, label %3368, label %3390

3368:                                             ; preds = %3364
  %3369 = load i32, ptr %339, align 4, !tbaa !5
  %3370 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3371 = call i32 @s2n_print_stacktrace(ptr noundef %3370) #12
  %3372 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3373 = trunc nuw i8 %3372 to i1
  br i1 %3373, label %3374, label %3378

3374:                                             ; preds = %3368
  %3375 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3376 = call i32 @fileno(ptr noundef %3375) #12
  %3377 = call i32 @isatty(i32 noundef %3376) #12
  %.not743 = icmp eq i32 %3377, 0
  br i1 %.not743, label %3378, label %3379

3378:                                             ; preds = %3374, %3368
  br label %3379

3379:                                             ; preds = %3374, %3378
  %.str.5.sink1980 = phi ptr [ @.str.5, %3378 ], [ @.str.2, %3374 ]
  store i32 %3369, ptr %339, align 4, !tbaa !5
  %3380 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3381 = load i32, ptr @test_count, align 4, !tbaa !5
  %3382 = load i32, ptr %285, align 4, !tbaa !5
  %3383 = call ptr @s2n_strerror(i32 noundef %3382, ptr noundef nonnull @.str.4) #12
  %3384 = load i32, ptr %285, align 4, !tbaa !5
  %3385 = call ptr @s2n_strerror_debug(i32 noundef %3384, ptr noundef nonnull @.str.4) #12
  %3386 = load i32, ptr %339, align 4, !tbaa !5
  %3387 = call ptr @strerror(i32 noundef %3386) #12
  %3388 = load i32, ptr %339, align 4, !tbaa !5
  %3389 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3380, ptr noundef nonnull %.str.5.sink1980, i32 noundef %3381, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 323, ptr noundef %3383, ptr noundef %3385, ptr noundef %3387, i32 noundef %3388) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3390:                                             ; preds = %3364
  store i32 0, ptr %285, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %339, align 4, !tbaa !5
  %3391 = load ptr, ptr %30, align 8, !tbaa !9
  %3392 = getelementptr inbounds i8, ptr %3391, i64 232
  %3393 = load ptr, ptr %3392, align 8, !tbaa !22
  store ptr null, ptr %3392, align 8, !tbaa !22
  %3394 = load i32, ptr @test_count, align 4, !tbaa !5
  %3395 = add nsw i32 %3394, 1
  store i32 %3395, ptr @test_count, align 4, !tbaa !5
  %3396 = call i32 @s2n_tls13_secrets_get(ptr noundef %3391, i32 noundef 2, i32 noundef 1, ptr noundef nonnull %29) #12
  %3397 = call zeroext i1 @s2n_result_is_error(i32 %3396)
  br i1 %3397, label %3420, label %3398

3398:                                             ; preds = %3390
  %3399 = load i32, ptr %339, align 4, !tbaa !5
  %3400 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3401 = call i32 @s2n_print_stacktrace(ptr noundef %3400) #12
  %3402 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3403 = trunc nuw i8 %3402 to i1
  br i1 %3403, label %3404, label %3408

3404:                                             ; preds = %3398
  %3405 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3406 = call i32 @fileno(ptr noundef %3405) #12
  %3407 = call i32 @isatty(i32 noundef %3406) #12
  %.not651 = icmp eq i32 %3407, 0
  br i1 %.not651, label %3408, label %3409

3408:                                             ; preds = %3404, %3398
  br label %3409

3409:                                             ; preds = %3404, %3408
  %.str.5.sink1989 = phi ptr [ @.str.5, %3408 ], [ @.str.2, %3404 ]
  store i32 %3399, ptr %339, align 4, !tbaa !5
  %3410 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3411 = load i32, ptr @test_count, align 4, !tbaa !5
  %3412 = load i32, ptr %285, align 4, !tbaa !5
  %3413 = call ptr @s2n_strerror(i32 noundef %3412, ptr noundef nonnull @.str.4) #12
  %3414 = load i32, ptr %285, align 4, !tbaa !5
  %3415 = call ptr @s2n_strerror_debug(i32 noundef %3414, ptr noundef nonnull @.str.4) #12
  %3416 = load i32, ptr %339, align 4, !tbaa !5
  %3417 = call ptr @strerror(i32 noundef %3416) #12
  %3418 = load i32, ptr %339, align 4, !tbaa !5
  %3419 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3410, ptr noundef nonnull %.str.5.sink1989, i32 noundef %3411, ptr noundef nonnull @.str.69, ptr noundef nonnull @.str.1, i32 noundef 327, ptr noundef %3413, ptr noundef %3415, ptr noundef %3417, i32 noundef %3418) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3420:                                             ; preds = %3390
  %3421 = load i32, ptr @test_count, align 4, !tbaa !5
  %3422 = add nsw i32 %3421, 1
  store i32 %3422, ptr @test_count, align 4, !tbaa !5
  %3423 = load i32, ptr %285, align 4, !tbaa !5
  %3424 = icmp eq i32 %3423, 402653193
  br i1 %3424, label %3447, label %3425

3425:                                             ; preds = %3420
  %3426 = load i32, ptr %339, align 4, !tbaa !5
  %3427 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3428 = call i32 @s2n_print_stacktrace(ptr noundef %3427) #12
  %3429 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3430 = trunc nuw i8 %3429 to i1
  br i1 %3430, label %3431, label %3435

3431:                                             ; preds = %3425
  %3432 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3433 = call i32 @fileno(ptr noundef %3432) #12
  %3434 = call i32 @isatty(i32 noundef %3433) #12
  %.not652 = icmp eq i32 %3434, 0
  br i1 %.not652, label %3435, label %3436

3435:                                             ; preds = %3431, %3425
  br label %3436

3436:                                             ; preds = %3431, %3435
  %.str.5.sink1998 = phi ptr [ @.str.5, %3435 ], [ @.str.2, %3431 ]
  store i32 %3426, ptr %339, align 4, !tbaa !5
  %3437 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3438 = load i32, ptr @test_count, align 4, !tbaa !5
  %3439 = load i32, ptr %285, align 4, !tbaa !5
  %3440 = call ptr @s2n_strerror(i32 noundef %3439, ptr noundef nonnull @.str.4) #12
  %3441 = load i32, ptr %285, align 4, !tbaa !5
  %3442 = call ptr @s2n_strerror_debug(i32 noundef %3441, ptr noundef nonnull @.str.4) #12
  %3443 = load i32, ptr %339, align 4, !tbaa !5
  %3444 = call ptr @strerror(i32 noundef %3443) #12
  %3445 = load i32, ptr %339, align 4, !tbaa !5
  %3446 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3437, ptr noundef nonnull %.str.5.sink1998, i32 noundef %3438, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 327, ptr noundef %3440, ptr noundef %3442, ptr noundef %3444, i32 noundef %3445) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3447:                                             ; preds = %3420
  %3448 = add nsw i32 %3421, 2
  store i32 %3448, ptr @test_count, align 4, !tbaa !5
  %3449 = call ptr @s2n_strerror_debug(i32 noundef 402653193, ptr noundef nonnull @.str.4) #12
  %3450 = icmp eq ptr %3449, null
  br i1 %3450, label %3451, label %3473

3451:                                             ; preds = %3447
  %3452 = load i32, ptr %339, align 4, !tbaa !5
  %3453 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3454 = call i32 @s2n_print_stacktrace(ptr noundef %3453) #12
  %3455 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3456 = trunc nuw i8 %3455 to i1
  br i1 %3456, label %3457, label %3461

3457:                                             ; preds = %3451
  %3458 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3459 = call i32 @fileno(ptr noundef %3458) #12
  %3460 = call i32 @isatty(i32 noundef %3459) #12
  %.not742 = icmp eq i32 %3460, 0
  br i1 %.not742, label %3461, label %3462

3461:                                             ; preds = %3457, %3451
  br label %3462

3462:                                             ; preds = %3457, %3461
  %.str.5.sink2007 = phi ptr [ @.str.5, %3461 ], [ @.str.2, %3457 ]
  store i32 %3452, ptr %339, align 4, !tbaa !5
  %3463 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3464 = load i32, ptr @test_count, align 4, !tbaa !5
  %3465 = load i32, ptr %285, align 4, !tbaa !5
  %3466 = call ptr @s2n_strerror(i32 noundef %3465, ptr noundef nonnull @.str.4) #12
  %3467 = load i32, ptr %285, align 4, !tbaa !5
  %3468 = call ptr @s2n_strerror_debug(i32 noundef %3467, ptr noundef nonnull @.str.4) #12
  %3469 = load i32, ptr %339, align 4, !tbaa !5
  %3470 = call ptr @strerror(i32 noundef %3469) #12
  %3471 = load i32, ptr %339, align 4, !tbaa !5
  %3472 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3463, ptr noundef nonnull %.str.5.sink2007, i32 noundef %3464, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 327, ptr noundef %3466, ptr noundef %3468, ptr noundef %3470, i32 noundef %3471) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3473:                                             ; preds = %3447
  store i32 0, ptr %285, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %339, align 4, !tbaa !5
  %3474 = load ptr, ptr %30, align 8, !tbaa !9
  %3475 = getelementptr inbounds i8, ptr %3474, i64 232
  store ptr %3393, ptr %3475, align 8, !tbaa !22
  %3476 = load ptr, ptr %3393, align 8, !tbaa !48
  store ptr null, ptr %3393, align 8, !tbaa !48
  %3477 = load i32, ptr @test_count, align 4, !tbaa !5
  %3478 = add nsw i32 %3477, 1
  store i32 %3478, ptr @test_count, align 4, !tbaa !5
  %3479 = load ptr, ptr %30, align 8, !tbaa !9
  %3480 = call i32 @s2n_tls13_secrets_get(ptr noundef %3479, i32 noundef 2, i32 noundef 1, ptr noundef nonnull %29) #12
  %3481 = call zeroext i1 @s2n_result_is_error(i32 %3480)
  br i1 %3481, label %3504, label %3482

3482:                                             ; preds = %3473
  %3483 = load i32, ptr %339, align 4, !tbaa !5
  %3484 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3485 = call i32 @s2n_print_stacktrace(ptr noundef %3484) #12
  %3486 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3487 = trunc nuw i8 %3486 to i1
  br i1 %3487, label %3488, label %3492

3488:                                             ; preds = %3482
  %3489 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3490 = call i32 @fileno(ptr noundef %3489) #12
  %3491 = call i32 @isatty(i32 noundef %3490) #12
  %.not653 = icmp eq i32 %3491, 0
  br i1 %.not653, label %3492, label %3493

3492:                                             ; preds = %3488, %3482
  br label %3493

3493:                                             ; preds = %3488, %3492
  %.str.5.sink2016 = phi ptr [ @.str.5, %3492 ], [ @.str.2, %3488 ]
  store i32 %3483, ptr %339, align 4, !tbaa !5
  %3494 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3495 = load i32, ptr @test_count, align 4, !tbaa !5
  %3496 = load i32, ptr %285, align 4, !tbaa !5
  %3497 = call ptr @s2n_strerror(i32 noundef %3496, ptr noundef nonnull @.str.4) #12
  %3498 = load i32, ptr %285, align 4, !tbaa !5
  %3499 = call ptr @s2n_strerror_debug(i32 noundef %3498, ptr noundef nonnull @.str.4) #12
  %3500 = load i32, ptr %339, align 4, !tbaa !5
  %3501 = call ptr @strerror(i32 noundef %3500) #12
  %3502 = load i32, ptr %339, align 4, !tbaa !5
  %3503 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3494, ptr noundef nonnull %.str.5.sink2016, i32 noundef %3495, ptr noundef nonnull @.str.69, ptr noundef nonnull @.str.1, i32 noundef 332, ptr noundef %3497, ptr noundef %3499, ptr noundef %3501, i32 noundef %3502) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3504:                                             ; preds = %3473
  %3505 = load i32, ptr @test_count, align 4, !tbaa !5
  %3506 = add nsw i32 %3505, 1
  store i32 %3506, ptr @test_count, align 4, !tbaa !5
  %3507 = load i32, ptr %285, align 4, !tbaa !5
  %3508 = icmp eq i32 %3507, 402653193
  br i1 %3508, label %3531, label %3509

3509:                                             ; preds = %3504
  %3510 = load i32, ptr %339, align 4, !tbaa !5
  %3511 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3512 = call i32 @s2n_print_stacktrace(ptr noundef %3511) #12
  %3513 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3514 = trunc nuw i8 %3513 to i1
  br i1 %3514, label %3515, label %3519

3515:                                             ; preds = %3509
  %3516 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3517 = call i32 @fileno(ptr noundef %3516) #12
  %3518 = call i32 @isatty(i32 noundef %3517) #12
  %.not654 = icmp eq i32 %3518, 0
  br i1 %.not654, label %3519, label %3520

3519:                                             ; preds = %3515, %3509
  br label %3520

3520:                                             ; preds = %3515, %3519
  %.str.5.sink2025 = phi ptr [ @.str.5, %3519 ], [ @.str.2, %3515 ]
  store i32 %3510, ptr %339, align 4, !tbaa !5
  %3521 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3522 = load i32, ptr @test_count, align 4, !tbaa !5
  %3523 = load i32, ptr %285, align 4, !tbaa !5
  %3524 = call ptr @s2n_strerror(i32 noundef %3523, ptr noundef nonnull @.str.4) #12
  %3525 = load i32, ptr %285, align 4, !tbaa !5
  %3526 = call ptr @s2n_strerror_debug(i32 noundef %3525, ptr noundef nonnull @.str.4) #12
  %3527 = load i32, ptr %339, align 4, !tbaa !5
  %3528 = call ptr @strerror(i32 noundef %3527) #12
  %3529 = load i32, ptr %339, align 4, !tbaa !5
  %3530 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3521, ptr noundef nonnull %.str.5.sink2025, i32 noundef %3522, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 332, ptr noundef %3524, ptr noundef %3526, ptr noundef %3528, i32 noundef %3529) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3531:                                             ; preds = %3504
  %3532 = add nsw i32 %3505, 2
  store i32 %3532, ptr @test_count, align 4, !tbaa !5
  %3533 = call ptr @s2n_strerror_debug(i32 noundef 402653193, ptr noundef nonnull @.str.4) #12
  %3534 = icmp eq ptr %3533, null
  br i1 %3534, label %3535, label %3557

3535:                                             ; preds = %3531
  %3536 = load i32, ptr %339, align 4, !tbaa !5
  %3537 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3538 = call i32 @s2n_print_stacktrace(ptr noundef %3537) #12
  %3539 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3540 = trunc nuw i8 %3539 to i1
  br i1 %3540, label %3541, label %3545

3541:                                             ; preds = %3535
  %3542 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3543 = call i32 @fileno(ptr noundef %3542) #12
  %3544 = call i32 @isatty(i32 noundef %3543) #12
  %.not741 = icmp eq i32 %3544, 0
  br i1 %.not741, label %3545, label %3546

3545:                                             ; preds = %3541, %3535
  br label %3546

3546:                                             ; preds = %3541, %3545
  %.str.5.sink2034 = phi ptr [ @.str.5, %3545 ], [ @.str.2, %3541 ]
  store i32 %3536, ptr %339, align 4, !tbaa !5
  %3547 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3548 = load i32, ptr @test_count, align 4, !tbaa !5
  %3549 = load i32, ptr %285, align 4, !tbaa !5
  %3550 = call ptr @s2n_strerror(i32 noundef %3549, ptr noundef nonnull @.str.4) #12
  %3551 = load i32, ptr %285, align 4, !tbaa !5
  %3552 = call ptr @s2n_strerror_debug(i32 noundef %3551, ptr noundef nonnull @.str.4) #12
  %3553 = load i32, ptr %339, align 4, !tbaa !5
  %3554 = call ptr @strerror(i32 noundef %3553) #12
  %3555 = load i32, ptr %339, align 4, !tbaa !5
  %3556 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3547, ptr noundef nonnull %.str.5.sink2034, i32 noundef %3548, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 332, ptr noundef %3550, ptr noundef %3552, ptr noundef %3554, i32 noundef %3555) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3557:                                             ; preds = %3531
  store i32 0, ptr %285, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %339, align 4, !tbaa !5
  %3558 = load ptr, ptr %30, align 8, !tbaa !9
  %3559 = getelementptr inbounds i8, ptr %3558, i64 232
  %3560 = load ptr, ptr %3559, align 8, !tbaa !22
  store ptr %3476, ptr %3560, align 8, !tbaa !48
  %3561 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %30) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %29) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %31) #12
  %3562 = call ptr @s2n_connection_new(i32 noundef 0) #12
  store ptr %3562, ptr %31, align 8, !tbaa !9
  %3563 = getelementptr inbounds i8, ptr %3562, i64 232
  %3564 = load ptr, ptr %3563, align 8, !tbaa !22
  store ptr @s2n_tls13_aes_128_gcm_sha256, ptr %3564, align 8, !tbaa !48
  %3565 = load ptr, ptr %31, align 8, !tbaa !9
  %3566 = getelementptr inbounds i8, ptr %3565, i64 220
  store i8 34, ptr %3566, align 4, !tbaa !62
  %3567 = load i32, ptr %2364, align 8, !tbaa !67
  %.not655 = icmp eq i32 %3567, 0
  br i1 %.not655, label %3572, label %3568

3568:                                             ; preds = %3557
  %3569 = getelementptr inbounds i8, ptr %3565, i64 336
  %3570 = load ptr, ptr %4, align 8, !tbaa !61
  %3571 = zext i32 %3567 to i64
  call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %3569, ptr align 1 %3570, i64 %3571, i1 false)
  br label %3572

3572:                                             ; preds = %3568, %3557
  %3573 = getelementptr inbounds i8, ptr %3565, i64 628
  store i32 2, ptr %3573, align 4, !tbaa !53
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %32) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %32, i8 0, i64 24, i1 false)
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %33) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(48) %33, i8 0, i64 48, i1 false)
  %3574 = load i32, ptr @test_count, align 4, !tbaa !5
  %3575 = add nsw i32 %3574, 1
  store i32 %3575, ptr @test_count, align 4, !tbaa !5
  %3576 = call i32 @s2n_blob_init(ptr noundef nonnull %32, ptr noundef nonnull %33, i32 noundef 48) #12
  %3577 = icmp eq i32 %3576, -1
  br i1 %3577, label %3578, label %3600

3578:                                             ; preds = %3572
  %3579 = load i32, ptr %339, align 4, !tbaa !5
  %3580 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3581 = call i32 @s2n_print_stacktrace(ptr noundef %3580) #12
  %3582 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3583 = trunc nuw i8 %3582 to i1
  br i1 %3583, label %3584, label %3588

3584:                                             ; preds = %3578
  %3585 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3586 = call i32 @fileno(ptr noundef %3585) #12
  %3587 = call i32 @isatty(i32 noundef %3586) #12
  %.not740 = icmp eq i32 %3587, 0
  br i1 %.not740, label %3588, label %3589

3588:                                             ; preds = %3584, %3578
  br label %3589

3589:                                             ; preds = %3584, %3588
  %.str.5.sink2043 = phi ptr [ @.str.5, %3588 ], [ @.str.2, %3584 ]
  store i32 %3579, ptr %339, align 4, !tbaa !5
  %3590 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3591 = load i32, ptr @test_count, align 4, !tbaa !5
  %3592 = load i32, ptr %285, align 4, !tbaa !5
  %3593 = call ptr @s2n_strerror(i32 noundef %3592, ptr noundef nonnull @.str.4) #12
  %3594 = load i32, ptr %285, align 4, !tbaa !5
  %3595 = call ptr @s2n_strerror_debug(i32 noundef %3594, ptr noundef nonnull @.str.4) #12
  %3596 = load i32, ptr %339, align 4, !tbaa !5
  %3597 = call ptr @strerror(i32 noundef %3596) #12
  %3598 = load i32, ptr %339, align 4, !tbaa !5
  %3599 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3590, ptr noundef nonnull %.str.5.sink2043, i32 noundef %3591, ptr noundef nonnull @.str.70, ptr noundef nonnull @.str.1, i32 noundef 349, ptr noundef %3593, ptr noundef %3595, ptr noundef %3597, i32 noundef %3598) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3600:                                             ; preds = %3572
  %3601 = load i32, ptr @test_count, align 4, !tbaa !5
  %3602 = add nsw i32 %3601, 1
  store i32 %3602, ptr @test_count, align 4, !tbaa !5
  %3603 = load ptr, ptr %31, align 8, !tbaa !9
  %3604 = call i32 @s2n_tls13_secrets_get(ptr noundef %3603, i32 noundef 2, i32 noundef 1, ptr noundef nonnull %32) #12
  %3605 = call zeroext i1 @s2n_result_is_ok(i32 %3604)
  br i1 %3605, label %3628, label %3606

3606:                                             ; preds = %3600
  %3607 = load i32, ptr %339, align 4, !tbaa !5
  %3608 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3609 = call i32 @s2n_print_stacktrace(ptr noundef %3608) #12
  %3610 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3611 = trunc nuw i8 %3610 to i1
  br i1 %3611, label %3612, label %3616

3612:                                             ; preds = %3606
  %3613 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3614 = call i32 @fileno(ptr noundef %3613) #12
  %3615 = call i32 @isatty(i32 noundef %3614) #12
  %.not656 = icmp eq i32 %3615, 0
  br i1 %.not656, label %3616, label %3617

3616:                                             ; preds = %3612, %3606
  br label %3617

3617:                                             ; preds = %3612, %3616
  %.str.5.sink2052 = phi ptr [ @.str.5, %3616 ], [ @.str.2, %3612 ]
  store i32 %3607, ptr %339, align 4, !tbaa !5
  %3618 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3619 = load i32, ptr @test_count, align 4, !tbaa !5
  %3620 = load i32, ptr %285, align 4, !tbaa !5
  %3621 = call ptr @s2n_strerror(i32 noundef %3620, ptr noundef nonnull @.str.4) #12
  %3622 = load i32, ptr %285, align 4, !tbaa !5
  %3623 = call ptr @s2n_strerror_debug(i32 noundef %3622, ptr noundef nonnull @.str.4) #12
  %3624 = load i32, ptr %339, align 4, !tbaa !5
  %3625 = call ptr @strerror(i32 noundef %3624) #12
  %3626 = load i32, ptr %339, align 4, !tbaa !5
  %3627 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3618, ptr noundef nonnull %.str.5.sink2052, i32 noundef %3619, ptr noundef nonnull @.str.71, ptr noundef nonnull @.str.1, i32 noundef 350, ptr noundef %3621, ptr noundef %3623, ptr noundef %3625, i32 noundef %3626) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3628:                                             ; preds = %3600
  %3629 = load i32, ptr @test_count, align 4, !tbaa !5
  %3630 = add nsw i32 %3629, 1
  store i32 %3630, ptr @test_count, align 4, !tbaa !5
  %3631 = getelementptr inbounds i8, ptr %32, i64 8
  %3632 = load i32, ptr %3631, align 8, !tbaa !67
  %.not657 = icmp eq i32 %3632, 0
  br i1 %.not657, label %3633, label %3655

3633:                                             ; preds = %3628
  %3634 = load i32, ptr %339, align 4, !tbaa !5
  %3635 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3636 = call i32 @s2n_print_stacktrace(ptr noundef %3635) #12
  %3637 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3638 = trunc nuw i8 %3637 to i1
  br i1 %3638, label %3639, label %3643

3639:                                             ; preds = %3633
  %3640 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3641 = call i32 @fileno(ptr noundef %3640) #12
  %3642 = call i32 @isatty(i32 noundef %3641) #12
  %.not658 = icmp eq i32 %3642, 0
  br i1 %.not658, label %3643, label %3644

3643:                                             ; preds = %3639, %3633
  br label %3644

3644:                                             ; preds = %3639, %3643
  %.str.5.sink2061 = phi ptr [ @.str.5, %3643 ], [ @.str.2, %3639 ]
  store i32 %3634, ptr %339, align 4, !tbaa !5
  %3645 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3646 = load i32, ptr @test_count, align 4, !tbaa !5
  %3647 = load i32, ptr %285, align 4, !tbaa !5
  %3648 = call ptr @s2n_strerror(i32 noundef %3647, ptr noundef nonnull @.str.4) #12
  %3649 = load i32, ptr %285, align 4, !tbaa !5
  %3650 = call ptr @s2n_strerror_debug(i32 noundef %3649, ptr noundef nonnull @.str.4) #12
  %3651 = load i32, ptr %339, align 4, !tbaa !5
  %3652 = call ptr @strerror(i32 noundef %3651) #12
  %3653 = load i32, ptr %339, align 4, !tbaa !5
  %3654 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3645, ptr noundef nonnull %.str.5.sink2061, i32 noundef %3646, ptr noundef nonnull @.str.72, ptr noundef nonnull @.str.1, i32 noundef 352, ptr noundef %3648, ptr noundef %3650, ptr noundef %3652, i32 noundef %3653) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3655:                                             ; preds = %3628
  %3656 = add nsw i32 %3629, 2
  store i32 %3656, ptr @test_count, align 4, !tbaa !5
  %3657 = icmp ult i32 %3632, 49
  br i1 %3657, label %3680, label %3658

3658:                                             ; preds = %3655
  %3659 = load i32, ptr %339, align 4, !tbaa !5
  %3660 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3661 = call i32 @s2n_print_stacktrace(ptr noundef %3660) #12
  %3662 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3663 = trunc nuw i8 %3662 to i1
  br i1 %3663, label %3664, label %3668

3664:                                             ; preds = %3658
  %3665 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3666 = call i32 @fileno(ptr noundef %3665) #12
  %3667 = call i32 @isatty(i32 noundef %3666) #12
  %.not659 = icmp eq i32 %3667, 0
  br i1 %.not659, label %3668, label %3669

3668:                                             ; preds = %3664, %3658
  br label %3669

3669:                                             ; preds = %3664, %3668
  %.str.5.sink2070 = phi ptr [ @.str.5, %3668 ], [ @.str.2, %3664 ]
  store i32 %3659, ptr %339, align 4, !tbaa !5
  %3670 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3671 = load i32, ptr @test_count, align 4, !tbaa !5
  %3672 = load i32, ptr %285, align 4, !tbaa !5
  %3673 = call ptr @s2n_strerror(i32 noundef %3672, ptr noundef nonnull @.str.4) #12
  %3674 = load i32, ptr %285, align 4, !tbaa !5
  %3675 = call ptr @s2n_strerror_debug(i32 noundef %3674, ptr noundef nonnull @.str.4) #12
  %3676 = load i32, ptr %339, align 4, !tbaa !5
  %3677 = call ptr @strerror(i32 noundef %3676) #12
  %3678 = load i32, ptr %339, align 4, !tbaa !5
  %3679 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3670, ptr noundef nonnull %.str.5.sink2070, i32 noundef %3671, ptr noundef nonnull @.str.73, ptr noundef nonnull @.str.1, i32 noundef 353, ptr noundef %3673, ptr noundef %3675, ptr noundef %3677, i32 noundef %3678) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3680:                                             ; preds = %3655
  %3681 = add nsw i32 %3629, 3
  store i32 %3681, ptr @test_count, align 4, !tbaa !5
  %3682 = load ptr, ptr %32, align 8, !tbaa !61
  %3683 = load ptr, ptr %4, align 8, !tbaa !61
  %3684 = zext nneg i32 %3632 to i64
  %bcmp661 = call i32 @bcmp(ptr %3682, ptr %3683, i64 %3684)
  %3685 = icmp eq i32 %bcmp661, 0
  br i1 %3685, label %3708, label %3686

3686:                                             ; preds = %3680
  %3687 = load i32, ptr %339, align 4, !tbaa !5
  %3688 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3689 = call i32 @s2n_print_stacktrace(ptr noundef %3688) #12
  %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) #12
  %3695 = call i32 @isatty(i32 noundef %3694) #12
  %.not662 = icmp eq i32 %3695, 0
  br i1 %.not662, label %3696, label %3697

3696:                                             ; preds = %3692, %3686
  br label %3697

3697:                                             ; preds = %3692, %3696
  %.str.5.sink2079 = phi ptr [ @.str.5, %3696 ], [ @.str.2, %3692 ]
  store i32 %3687, ptr %339, 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 %285, align 4, !tbaa !5
  %3701 = call ptr @s2n_strerror(i32 noundef %3700, ptr noundef nonnull @.str.4) #12
  %3702 = load i32, ptr %285, align 4, !tbaa !5
  %3703 = call ptr @s2n_strerror_debug(i32 noundef %3702, ptr noundef nonnull @.str.4) #12
  %3704 = load i32, ptr %339, align 4, !tbaa !5
  %3705 = call ptr @strerror(i32 noundef %3704) #12
  %3706 = load i32, ptr %339, align 4, !tbaa !5
  %3707 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3698, ptr noundef nonnull %.str.5.sink2079, i32 noundef %3699, ptr noundef nonnull @.str.74, ptr noundef nonnull @.str.1, i32 noundef 354, ptr noundef %3701, ptr noundef %3703, ptr noundef %3705, i32 noundef %3706) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3708:                                             ; preds = %3680
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %33) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %32) #12
  %3709 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %31) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #12
  %3710 = load i32, ptr @test_count, align 4, !tbaa !5
  %3711 = add nsw i32 %3710, 1
  store i32 %3711, ptr @test_count, align 4, !tbaa !5
  %3712 = call i32 @s2n_tls13_secrets_update(ptr noundef null) #12
  %3713 = call zeroext i1 @s2n_result_is_error(i32 %3712)
  br i1 %3713, label %3736, label %3714

3714:                                             ; preds = %3708
  %3715 = load i32, ptr %339, align 4, !tbaa !5
  %3716 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3717 = call i32 @s2n_print_stacktrace(ptr noundef %3716) #12
  %3718 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3719 = trunc nuw i8 %3718 to i1
  br i1 %3719, label %3720, label %3724

3720:                                             ; preds = %3714
  %3721 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3722 = call i32 @fileno(ptr noundef %3721) #12
  %3723 = call i32 @isatty(i32 noundef %3722) #12
  %.not663 = icmp eq i32 %3723, 0
  br i1 %.not663, label %3724, label %3725

3724:                                             ; preds = %3720, %3714
  br label %3725

3725:                                             ; preds = %3720, %3724
  %.str.5.sink2088 = phi ptr [ @.str.5, %3724 ], [ @.str.2, %3720 ]
  store i32 %3715, ptr %339, align 4, !tbaa !5
  %3726 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3727 = load i32, ptr @test_count, align 4, !tbaa !5
  %3728 = load i32, ptr %285, align 4, !tbaa !5
  %3729 = call ptr @s2n_strerror(i32 noundef %3728, ptr noundef nonnull @.str.4) #12
  %3730 = load i32, ptr %285, align 4, !tbaa !5
  %3731 = call ptr @s2n_strerror_debug(i32 noundef %3730, ptr noundef nonnull @.str.4) #12
  %3732 = load i32, ptr %339, align 4, !tbaa !5
  %3733 = call ptr @strerror(i32 noundef %3732) #12
  %3734 = load i32, ptr %339, align 4, !tbaa !5
  %3735 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3726, ptr noundef nonnull %.str.5.sink2088, i32 noundef %3727, ptr noundef nonnull @.str.75, ptr noundef nonnull @.str.1, i32 noundef 361, ptr noundef %3729, ptr noundef %3731, ptr noundef %3733, i32 noundef %3734) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3736:                                             ; preds = %3708
  %3737 = load i32, ptr @test_count, align 4, !tbaa !5
  %3738 = add nsw i32 %3737, 1
  store i32 %3738, ptr @test_count, align 4, !tbaa !5
  %3739 = load i32, ptr %285, align 4, !tbaa !5
  %3740 = icmp eq i32 %3739, 402653193
  br i1 %3740, label %3763, label %3741

3741:                                             ; preds = %3736
  %3742 = load i32, ptr %339, align 4, !tbaa !5
  %3743 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3744 = call i32 @s2n_print_stacktrace(ptr noundef %3743) #12
  %3745 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3746 = trunc nuw i8 %3745 to i1
  br i1 %3746, label %3747, label %3751

3747:                                             ; preds = %3741
  %3748 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3749 = call i32 @fileno(ptr noundef %3748) #12
  %3750 = call i32 @isatty(i32 noundef %3749) #12
  %.not664 = icmp eq i32 %3750, 0
  br i1 %.not664, label %3751, label %3752

3751:                                             ; preds = %3747, %3741
  br label %3752

3752:                                             ; preds = %3747, %3751
  %.str.5.sink2097 = phi ptr [ @.str.5, %3751 ], [ @.str.2, %3747 ]
  store i32 %3742, ptr %339, align 4, !tbaa !5
  %3753 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3754 = load i32, ptr @test_count, align 4, !tbaa !5
  %3755 = load i32, ptr %285, align 4, !tbaa !5
  %3756 = call ptr @s2n_strerror(i32 noundef %3755, ptr noundef nonnull @.str.4) #12
  %3757 = load i32, ptr %285, align 4, !tbaa !5
  %3758 = call ptr @s2n_strerror_debug(i32 noundef %3757, ptr noundef nonnull @.str.4) #12
  %3759 = load i32, ptr %339, align 4, !tbaa !5
  %3760 = call ptr @strerror(i32 noundef %3759) #12
  %3761 = load i32, ptr %339, align 4, !tbaa !5
  %3762 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3753, ptr noundef nonnull %.str.5.sink2097, i32 noundef %3754, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 361, ptr noundef %3756, ptr noundef %3758, ptr noundef %3760, i32 noundef %3761) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3763:                                             ; preds = %3736
  %3764 = add nsw i32 %3737, 2
  store i32 %3764, ptr @test_count, align 4, !tbaa !5
  %3765 = call ptr @s2n_strerror_debug(i32 noundef 402653193, ptr noundef nonnull @.str.4) #12
  %3766 = icmp eq ptr %3765, null
  br i1 %3766, label %3767, label %3789

3767:                                             ; preds = %3763
  %3768 = load i32, ptr %339, align 4, !tbaa !5
  %3769 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3770 = call i32 @s2n_print_stacktrace(ptr noundef %3769) #12
  %3771 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3772 = trunc nuw i8 %3771 to i1
  br i1 %3772, label %3773, label %3777

3773:                                             ; preds = %3767
  %3774 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3775 = call i32 @fileno(ptr noundef %3774) #12
  %3776 = call i32 @isatty(i32 noundef %3775) #12
  %.not739 = icmp eq i32 %3776, 0
  br i1 %.not739, label %3777, label %3778

3777:                                             ; preds = %3773, %3767
  br label %3778

3778:                                             ; preds = %3773, %3777
  %.str.5.sink2106 = phi ptr [ @.str.5, %3777 ], [ @.str.2, %3773 ]
  store i32 %3768, ptr %339, align 4, !tbaa !5
  %3779 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3780 = load i32, ptr @test_count, align 4, !tbaa !5
  %3781 = load i32, ptr %285, align 4, !tbaa !5
  %3782 = call ptr @s2n_strerror(i32 noundef %3781, ptr noundef nonnull @.str.4) #12
  %3783 = load i32, ptr %285, align 4, !tbaa !5
  %3784 = call ptr @s2n_strerror_debug(i32 noundef %3783, ptr noundef nonnull @.str.4) #12
  %3785 = load i32, ptr %339, align 4, !tbaa !5
  %3786 = call ptr @strerror(i32 noundef %3785) #12
  %3787 = load i32, ptr %339, align 4, !tbaa !5
  %3788 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3779, ptr noundef nonnull %.str.5.sink2106, i32 noundef %3780, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 361, ptr noundef %3782, ptr noundef %3784, ptr noundef %3786, i32 noundef %3787) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3789:                                             ; preds = %3763
  store i32 0, ptr %285, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %339, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %34) #12
  %3790 = call ptr @s2n_connection_new(i32 noundef 0) #12
  store ptr %3790, ptr %34, align 8, !tbaa !9
  %3791 = getelementptr inbounds i8, ptr %3790, i64 232
  %3792 = load ptr, ptr %3791, align 8, !tbaa !22
  store ptr @s2n_tls13_aes_128_gcm_sha256, ptr %3792, align 8, !tbaa !48
  %3793 = load ptr, ptr %34, align 8, !tbaa !9
  %3794 = getelementptr inbounds i8, ptr %3793, i64 220
  store i8 34, ptr %3794, align 4, !tbaa !62
  %3795 = load i32, ptr @test_count, align 4, !tbaa !5
  %3796 = add nsw i32 %3795, 1
  store i32 %3796, ptr @test_count, align 4, !tbaa !5
  %3797 = getelementptr inbounds i8, ptr %3793, i64 288
  %bcmp665 = call i32 @bcmp(ptr noundef nonnull dereferenceable(48) %3797, ptr noundef nonnull dereferenceable(48) %3, i64 48)
  %3798 = icmp eq i32 %bcmp665, 0
  br i1 %3798, label %3821, label %3799

3799:                                             ; preds = %3789
  %3800 = load i32, ptr %339, align 4, !tbaa !5
  %3801 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3802 = call i32 @s2n_print_stacktrace(ptr noundef %3801) #12
  %3803 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3804 = trunc nuw i8 %3803 to i1
  br i1 %3804, label %3805, label %3809

3805:                                             ; preds = %3799
  %3806 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3807 = call i32 @fileno(ptr noundef %3806) #12
  %3808 = call i32 @isatty(i32 noundef %3807) #12
  %.not666 = icmp eq i32 %3808, 0
  br i1 %.not666, label %3809, label %3810

3809:                                             ; preds = %3805, %3799
  br label %3810

3810:                                             ; preds = %3805, %3809
  %.str.5.sink2115 = phi ptr [ @.str.5, %3809 ], [ @.str.2, %3805 ]
  store i32 %3800, ptr %339, align 4, !tbaa !5
  %3811 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3812 = load i32, ptr @test_count, align 4, !tbaa !5
  %3813 = load i32, ptr %285, align 4, !tbaa !5
  %3814 = call ptr @s2n_strerror(i32 noundef %3813, ptr noundef nonnull @.str.4) #12
  %3815 = load i32, ptr %285, align 4, !tbaa !5
  %3816 = call ptr @s2n_strerror_debug(i32 noundef %3815, ptr noundef nonnull @.str.4) #12
  %3817 = load i32, ptr %339, align 4, !tbaa !5
  %3818 = call ptr @strerror(i32 noundef %3817) #12
  %3819 = load i32, ptr %339, align 4, !tbaa !5
  %3820 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3811, ptr noundef nonnull %.str.5.sink2115, i32 noundef %3812, ptr noundef nonnull @.str.60, ptr noundef nonnull @.str.1, i32 noundef 370, ptr noundef %3814, ptr noundef %3816, ptr noundef %3818, i32 noundef %3819) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3821:                                             ; preds = %3789
  %3822 = getelementptr inbounds i8, ptr %3793, i64 4088
  store i32 2, ptr %3822, align 8, !tbaa !68
  %3823 = add nsw i32 %3795, 2
  store i32 %3823, ptr @test_count, align 4, !tbaa !5
  %3824 = call i32 @s2n_tls13_secrets_update(ptr noundef nonnull %3793) #12
  %3825 = call zeroext i1 @s2n_result_is_ok(i32 %3824)
  br i1 %3825, label %3848, label %3826

3826:                                             ; preds = %3821
  %3827 = load i32, ptr %339, align 4, !tbaa !5
  %3828 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3829 = call i32 @s2n_print_stacktrace(ptr noundef %3828) #12
  %3830 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3831 = trunc nuw i8 %3830 to i1
  br i1 %3831, label %3832, label %3836

3832:                                             ; preds = %3826
  %3833 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3834 = call i32 @fileno(ptr noundef %3833) #12
  %3835 = call i32 @isatty(i32 noundef %3834) #12
  %.not667 = icmp eq i32 %3835, 0
  br i1 %.not667, label %3836, label %3837

3836:                                             ; preds = %3832, %3826
  br label %3837

3837:                                             ; preds = %3832, %3836
  %.str.5.sink2124 = phi ptr [ @.str.5, %3836 ], [ @.str.2, %3832 ]
  store i32 %3827, ptr %339, align 4, !tbaa !5
  %3838 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3839 = load i32, ptr @test_count, align 4, !tbaa !5
  %3840 = load i32, ptr %285, align 4, !tbaa !5
  %3841 = call ptr @s2n_strerror(i32 noundef %3840, ptr noundef nonnull @.str.4) #12
  %3842 = load i32, ptr %285, align 4, !tbaa !5
  %3843 = call ptr @s2n_strerror_debug(i32 noundef %3842, ptr noundef nonnull @.str.4) #12
  %3844 = load i32, ptr %339, align 4, !tbaa !5
  %3845 = call ptr @strerror(i32 noundef %3844) #12
  %3846 = load i32, ptr %339, align 4, !tbaa !5
  %3847 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3838, ptr noundef nonnull %.str.5.sink2124, i32 noundef %3839, ptr noundef nonnull @.str.76, ptr noundef nonnull @.str.1, i32 noundef 374, ptr noundef %3841, ptr noundef %3843, ptr noundef %3845, i32 noundef %3846) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3848:                                             ; preds = %3821
  %3849 = load i32, ptr @test_count, align 4, !tbaa !5
  %3850 = add nsw i32 %3849, 1
  store i32 %3850, ptr @test_count, align 4, !tbaa !5
  %3851 = load ptr, ptr %34, align 8, !tbaa !9
  %3852 = getelementptr inbounds i8, ptr %3851, i64 288
  %bcmp668 = call i32 @bcmp(ptr noundef nonnull dereferenceable(48) %3852, ptr noundef nonnull dereferenceable(48) %3, i64 48)
  %3853 = icmp eq i32 %bcmp668, 0
  br i1 %3853, label %3876, label %3854

3854:                                             ; preds = %3848
  %3855 = load i32, ptr %339, align 4, !tbaa !5
  %3856 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3857 = call i32 @s2n_print_stacktrace(ptr noundef %3856) #12
  %3858 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3859 = trunc nuw i8 %3858 to i1
  br i1 %3859, label %3860, label %3864

3860:                                             ; preds = %3854
  %3861 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3862 = call i32 @fileno(ptr noundef %3861) #12
  %3863 = call i32 @isatty(i32 noundef %3862) #12
  %.not669 = icmp eq i32 %3863, 0
  br i1 %.not669, label %3864, label %3865

3864:                                             ; preds = %3860, %3854
  br label %3865

3865:                                             ; preds = %3860, %3864
  %.str.5.sink2133 = phi ptr [ @.str.5, %3864 ], [ @.str.2, %3860 ]
  store i32 %3855, ptr %339, align 4, !tbaa !5
  %3866 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3867 = load i32, ptr @test_count, align 4, !tbaa !5
  %3868 = load i32, ptr %285, align 4, !tbaa !5
  %3869 = call ptr @s2n_strerror(i32 noundef %3868, ptr noundef nonnull @.str.4) #12
  %3870 = load i32, ptr %285, align 4, !tbaa !5
  %3871 = call ptr @s2n_strerror_debug(i32 noundef %3870, ptr noundef nonnull @.str.4) #12
  %3872 = load i32, ptr %339, align 4, !tbaa !5
  %3873 = call ptr @strerror(i32 noundef %3872) #12
  %3874 = load i32, ptr %339, align 4, !tbaa !5
  %3875 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3866, ptr noundef nonnull %.str.5.sink2133, i32 noundef %3867, ptr noundef nonnull @.str.60, ptr noundef nonnull @.str.1, i32 noundef 376, ptr noundef %3869, ptr noundef %3871, ptr noundef %3873, i32 noundef %3874) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3876:                                             ; preds = %3848
  %3877 = getelementptr inbounds i8, ptr %3851, i64 4088
  store i32 4, ptr %3877, align 8, !tbaa !68
  %3878 = add nsw i32 %3849, 2
  store i32 %3878, ptr @test_count, align 4, !tbaa !5
  %3879 = call i32 @s2n_tls13_secrets_update(ptr noundef %3851) #12
  %3880 = call zeroext i1 @s2n_result_is_ok(i32 %3879)
  br i1 %3880, label %3903, label %3881

3881:                                             ; preds = %3876
  %3882 = load i32, ptr %339, align 4, !tbaa !5
  %3883 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3884 = call i32 @s2n_print_stacktrace(ptr noundef %3883) #12
  %3885 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3886 = trunc nuw i8 %3885 to i1
  br i1 %3886, label %3887, label %3891

3887:                                             ; preds = %3881
  %3888 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3889 = call i32 @fileno(ptr noundef %3888) #12
  %3890 = call i32 @isatty(i32 noundef %3889) #12
  %.not670 = icmp eq i32 %3890, 0
  br i1 %.not670, label %3891, label %3892

3891:                                             ; preds = %3887, %3881
  br label %3892

3892:                                             ; preds = %3887, %3891
  %.str.5.sink2142 = phi ptr [ @.str.5, %3891 ], [ @.str.2, %3887 ]
  store i32 %3882, ptr %339, align 4, !tbaa !5
  %3893 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3894 = load i32, ptr @test_count, align 4, !tbaa !5
  %3895 = load i32, ptr %285, align 4, !tbaa !5
  %3896 = call ptr @s2n_strerror(i32 noundef %3895, ptr noundef nonnull @.str.4) #12
  %3897 = load i32, ptr %285, align 4, !tbaa !5
  %3898 = call ptr @s2n_strerror_debug(i32 noundef %3897, ptr noundef nonnull @.str.4) #12
  %3899 = load i32, ptr %339, align 4, !tbaa !5
  %3900 = call ptr @strerror(i32 noundef %3899) #12
  %3901 = load i32, ptr %339, align 4, !tbaa !5
  %3902 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3893, ptr noundef nonnull %.str.5.sink2142, i32 noundef %3894, ptr noundef nonnull @.str.76, ptr noundef nonnull @.str.1, i32 noundef 380, ptr noundef %3896, ptr noundef %3898, ptr noundef %3900, i32 noundef %3901) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3903:                                             ; preds = %3876
  %3904 = load i32, ptr @test_count, align 4, !tbaa !5
  %3905 = add nsw i32 %3904, 1
  store i32 %3905, ptr @test_count, align 4, !tbaa !5
  %3906 = load ptr, ptr %34, align 8, !tbaa !9
  %3907 = getelementptr inbounds i8, ptr %3906, i64 288
  %bcmp671 = call i32 @bcmp(ptr noundef nonnull dereferenceable(48) %3907, ptr noundef nonnull dereferenceable(48) %3, i64 48)
  %3908 = icmp eq i32 %bcmp671, 0
  br i1 %3908, label %3931, label %3909

3909:                                             ; preds = %3903
  %3910 = load i32, ptr %339, align 4, !tbaa !5
  %3911 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3912 = call i32 @s2n_print_stacktrace(ptr noundef %3911) #12
  %3913 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3914 = trunc nuw i8 %3913 to i1
  br i1 %3914, label %3915, label %3919

3915:                                             ; preds = %3909
  %3916 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3917 = call i32 @fileno(ptr noundef %3916) #12
  %3918 = call i32 @isatty(i32 noundef %3917) #12
  %.not672 = icmp eq i32 %3918, 0
  br i1 %.not672, label %3919, label %3920

3919:                                             ; preds = %3915, %3909
  br label %3920

3920:                                             ; preds = %3915, %3919
  %.str.5.sink2151 = phi ptr [ @.str.5, %3919 ], [ @.str.2, %3915 ]
  store i32 %3910, ptr %339, align 4, !tbaa !5
  %3921 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3922 = load i32, ptr @test_count, align 4, !tbaa !5
  %3923 = load i32, ptr %285, align 4, !tbaa !5
  %3924 = call ptr @s2n_strerror(i32 noundef %3923, ptr noundef nonnull @.str.4) #12
  %3925 = load i32, ptr %285, align 4, !tbaa !5
  %3926 = call ptr @s2n_strerror_debug(i32 noundef %3925, ptr noundef nonnull @.str.4) #12
  %3927 = load i32, ptr %339, align 4, !tbaa !5
  %3928 = call ptr @strerror(i32 noundef %3927) #12
  %3929 = load i32, ptr %339, align 4, !tbaa !5
  %3930 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3921, ptr noundef nonnull %.str.5.sink2151, i32 noundef %3922, ptr noundef nonnull @.str.60, ptr noundef nonnull @.str.1, i32 noundef 382, ptr noundef %3924, ptr noundef %3926, ptr noundef %3928, i32 noundef %3929) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3931:                                             ; preds = %3903
  %3932 = getelementptr inbounds i8, ptr %3906, i64 4088
  store i32 1, ptr %3932, align 8, !tbaa !68
  %3933 = add nsw i32 %3904, 2
  store i32 %3933, ptr @test_count, align 4, !tbaa !5
  %3934 = call i32 @s2n_tls13_secrets_update(ptr noundef %3906) #12
  %3935 = call zeroext i1 @s2n_result_is_ok(i32 %3934)
  br i1 %3935, label %3958, label %3936

3936:                                             ; preds = %3931
  %3937 = load i32, ptr %339, align 4, !tbaa !5
  %3938 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3939 = call i32 @s2n_print_stacktrace(ptr noundef %3938) #12
  %3940 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3941 = trunc nuw i8 %3940 to i1
  br i1 %3941, label %3942, label %3946

3942:                                             ; preds = %3936
  %3943 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3944 = call i32 @fileno(ptr noundef %3943) #12
  %3945 = call i32 @isatty(i32 noundef %3944) #12
  %.not673 = icmp eq i32 %3945, 0
  br i1 %.not673, label %3946, label %3947

3946:                                             ; preds = %3942, %3936
  br label %3947

3947:                                             ; preds = %3942, %3946
  %.str.5.sink2160 = phi ptr [ @.str.5, %3946 ], [ @.str.2, %3942 ]
  store i32 %3937, ptr %339, align 4, !tbaa !5
  %3948 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3949 = load i32, ptr @test_count, align 4, !tbaa !5
  %3950 = load i32, ptr %285, align 4, !tbaa !5
  %3951 = call ptr @s2n_strerror(i32 noundef %3950, ptr noundef nonnull @.str.4) #12
  %3952 = load i32, ptr %285, align 4, !tbaa !5
  %3953 = call ptr @s2n_strerror_debug(i32 noundef %3952, ptr noundef nonnull @.str.4) #12
  %3954 = load i32, ptr %339, align 4, !tbaa !5
  %3955 = call ptr @strerror(i32 noundef %3954) #12
  %3956 = load i32, ptr %339, align 4, !tbaa !5
  %3957 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3948, ptr noundef nonnull %.str.5.sink2160, i32 noundef %3949, ptr noundef nonnull @.str.76, ptr noundef nonnull @.str.1, i32 noundef 386, ptr noundef %3951, ptr noundef %3953, ptr noundef %3955, i32 noundef %3956) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3958:                                             ; preds = %3931
  %3959 = load i32, ptr @test_count, align 4, !tbaa !5
  %3960 = add nsw i32 %3959, 1
  store i32 %3960, ptr @test_count, align 4, !tbaa !5
  %3961 = load ptr, ptr %34, align 8, !tbaa !9
  %3962 = getelementptr inbounds i8, ptr %3961, i64 288
  %bcmp674 = call i32 @bcmp(ptr noundef nonnull dereferenceable(48) %3962, ptr noundef nonnull dereferenceable(48) %3, i64 48)
  %3963 = icmp eq i32 %bcmp674, 0
  br i1 %3963, label %3964, label %3986

3964:                                             ; preds = %3958
  %3965 = load i32, ptr %339, align 4, !tbaa !5
  %3966 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3967 = call i32 @s2n_print_stacktrace(ptr noundef %3966) #12
  %3968 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3969 = trunc nuw i8 %3968 to i1
  br i1 %3969, label %3970, label %3974

3970:                                             ; preds = %3964
  %3971 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3972 = call i32 @fileno(ptr noundef %3971) #12
  %3973 = call i32 @isatty(i32 noundef %3972) #12
  %.not738 = icmp eq i32 %3973, 0
  br i1 %.not738, label %3974, label %3975

3974:                                             ; preds = %3970, %3964
  br label %3975

3975:                                             ; preds = %3970, %3974
  %.str.5.sink2169 = phi ptr [ @.str.5, %3974 ], [ @.str.2, %3970 ]
  store i32 %3965, ptr %339, align 4, !tbaa !5
  %3976 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3977 = load i32, ptr @test_count, align 4, !tbaa !5
  %3978 = load i32, ptr %285, align 4, !tbaa !5
  %3979 = call ptr @s2n_strerror(i32 noundef %3978, ptr noundef nonnull @.str.4) #12
  %3980 = load i32, ptr %285, align 4, !tbaa !5
  %3981 = call ptr @s2n_strerror_debug(i32 noundef %3980, ptr noundef nonnull @.str.4) #12
  %3982 = load i32, ptr %339, align 4, !tbaa !5
  %3983 = call ptr @strerror(i32 noundef %3982) #12
  %3984 = load i32, ptr %339, align 4, !tbaa !5
  %3985 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3976, ptr noundef nonnull %.str.5.sink2169, i32 noundef %3977, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 388, ptr noundef %3979, ptr noundef %3981, ptr noundef %3983, i32 noundef %3984) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3986:                                             ; preds = %3958
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(48) %3962, ptr noundef nonnull align 16 dereferenceable(48) %3, i64 48, i1 false)
  %3987 = getelementptr inbounds i8, ptr %3961, i64 4088
  store i32 3, ptr %3987, align 8, !tbaa !68
  %3988 = add nsw i32 %3959, 2
  store i32 %3988, ptr @test_count, align 4, !tbaa !5
  %3989 = call i32 @s2n_tls13_secrets_update(ptr noundef %3961) #12
  %3990 = call zeroext i1 @s2n_result_is_ok(i32 %3989)
  br i1 %3990, label %4013, label %3991

3991:                                             ; preds = %3986
  %3992 = load i32, ptr %339, align 4, !tbaa !5
  %3993 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3994 = call i32 @s2n_print_stacktrace(ptr noundef %3993) #12
  %3995 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3996 = trunc nuw i8 %3995 to i1
  br i1 %3996, label %3997, label %4001

3997:                                             ; preds = %3991
  %3998 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3999 = call i32 @fileno(ptr noundef %3998) #12
  %4000 = call i32 @isatty(i32 noundef %3999) #12
  %.not675 = icmp eq i32 %4000, 0
  br i1 %.not675, label %4001, label %4002

4001:                                             ; preds = %3997, %3991
  br label %4002

4002:                                             ; preds = %3997, %4001
  %.str.5.sink2178 = phi ptr [ @.str.5, %4001 ], [ @.str.2, %3997 ]
  store i32 %3992, ptr %339, align 4, !tbaa !5
  %4003 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4004 = load i32, ptr @test_count, align 4, !tbaa !5
  %4005 = load i32, ptr %285, align 4, !tbaa !5
  %4006 = call ptr @s2n_strerror(i32 noundef %4005, ptr noundef nonnull @.str.4) #12
  %4007 = load i32, ptr %285, align 4, !tbaa !5
  %4008 = call ptr @s2n_strerror_debug(i32 noundef %4007, ptr noundef nonnull @.str.4) #12
  %4009 = load i32, ptr %339, align 4, !tbaa !5
  %4010 = call ptr @strerror(i32 noundef %4009) #12
  %4011 = load i32, ptr %339, align 4, !tbaa !5
  %4012 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4003, ptr noundef nonnull %.str.5.sink2178, i32 noundef %4004, ptr noundef nonnull @.str.76, ptr noundef nonnull @.str.1, i32 noundef 396, ptr noundef %4006, ptr noundef %4008, ptr noundef %4010, i32 noundef %4011) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4013:                                             ; preds = %3986
  %4014 = load i32, ptr @test_count, align 4, !tbaa !5
  %4015 = add nsw i32 %4014, 1
  store i32 %4015, ptr @test_count, align 4, !tbaa !5
  %4016 = load ptr, ptr %34, align 8, !tbaa !9
  %4017 = getelementptr inbounds i8, ptr %4016, i64 288
  %bcmp676 = call i32 @bcmp(ptr noundef nonnull dereferenceable(48) %4017, ptr noundef nonnull dereferenceable(48) %3, i64 48)
  %4018 = icmp eq i32 %bcmp676, 0
  br i1 %4018, label %4019, label %4041

4019:                                             ; preds = %4013
  %4020 = load i32, ptr %339, align 4, !tbaa !5
  %4021 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4022 = call i32 @s2n_print_stacktrace(ptr noundef %4021) #12
  %4023 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4024 = trunc nuw i8 %4023 to i1
  br i1 %4024, label %4025, label %4029

4025:                                             ; preds = %4019
  %4026 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4027 = call i32 @fileno(ptr noundef %4026) #12
  %4028 = call i32 @isatty(i32 noundef %4027) #12
  %.not737 = icmp eq i32 %4028, 0
  br i1 %.not737, label %4029, label %4030

4029:                                             ; preds = %4025, %4019
  br label %4030

4030:                                             ; preds = %4025, %4029
  %.str.5.sink2187 = phi ptr [ @.str.5, %4029 ], [ @.str.2, %4025 ]
  store i32 %4020, ptr %339, align 4, !tbaa !5
  %4031 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4032 = load i32, ptr @test_count, align 4, !tbaa !5
  %4033 = load i32, ptr %285, align 4, !tbaa !5
  %4034 = call ptr @s2n_strerror(i32 noundef %4033, ptr noundef nonnull @.str.4) #12
  %4035 = load i32, ptr %285, align 4, !tbaa !5
  %4036 = call ptr @s2n_strerror_debug(i32 noundef %4035, ptr noundef nonnull @.str.4) #12
  %4037 = load i32, ptr %339, align 4, !tbaa !5
  %4038 = call ptr @strerror(i32 noundef %4037) #12
  %4039 = load i32, ptr %339, align 4, !tbaa !5
  %4040 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4031, ptr noundef nonnull %.str.5.sink2187, i32 noundef %4032, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 398, ptr noundef %4034, ptr noundef %4036, ptr noundef %4038, i32 noundef %4039) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4041:                                             ; preds = %4013
  %4042 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %34) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %34) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %35) #12
  %4043 = call ptr @s2n_connection_new(i32 noundef 0) #12
  store ptr %4043, ptr %35, align 8, !tbaa !9
  %4044 = getelementptr inbounds i8, ptr %4043, i64 232
  %4045 = load ptr, ptr %4044, align 8, !tbaa !22
  store ptr @s2n_tls13_aes_128_gcm_sha256, ptr %4045, align 8, !tbaa !48
  %4046 = load ptr, ptr %35, align 8, !tbaa !9
  %4047 = getelementptr inbounds i8, ptr %4046, i64 220
  store i8 34, ptr %4047, align 4, !tbaa !62
  %4048 = load i32, ptr @test_count, align 4, !tbaa !5
  %4049 = add nsw i32 %4048, 1
  store i32 %4049, ptr @test_count, align 4, !tbaa !5
  %4050 = call i32 @s2n_connection_set_test_handshake_secret(ptr noundef %4046, ptr noundef nonnull %4) #12
  %4051 = call zeroext i1 @s2n_result_is_ok(i32 %4050)
  br i1 %4051, label %4074, label %4052

4052:                                             ; preds = %4041
  %4053 = load i32, ptr %339, align 4, !tbaa !5
  %4054 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4055 = call i32 @s2n_print_stacktrace(ptr noundef %4054) #12
  %4056 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4057 = trunc nuw i8 %4056 to i1
  br i1 %4057, label %4058, label %4062

4058:                                             ; preds = %4052
  %4059 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4060 = call i32 @fileno(ptr noundef %4059) #12
  %4061 = call i32 @isatty(i32 noundef %4060) #12
  %.not677 = icmp eq i32 %4061, 0
  br i1 %.not677, label %4062, label %4063

4062:                                             ; preds = %4058, %4052
  br label %4063

4063:                                             ; preds = %4058, %4062
  %.str.5.sink2196 = phi ptr [ @.str.5, %4062 ], [ @.str.2, %4058 ]
  store i32 %4053, ptr %339, align 4, !tbaa !5
  %4064 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4065 = load i32, ptr @test_count, align 4, !tbaa !5
  %4066 = load i32, ptr %285, align 4, !tbaa !5
  %4067 = call ptr @s2n_strerror(i32 noundef %4066, ptr noundef nonnull @.str.4) #12
  %4068 = load i32, ptr %285, align 4, !tbaa !5
  %4069 = call ptr @s2n_strerror_debug(i32 noundef %4068, ptr noundef nonnull @.str.4) #12
  %4070 = load i32, ptr %339, align 4, !tbaa !5
  %4071 = call ptr @strerror(i32 noundef %4070) #12
  %4072 = load i32, ptr %339, align 4, !tbaa !5
  %4073 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4064, ptr noundef nonnull %.str.5.sink2196, i32 noundef %4065, ptr noundef nonnull @.str.77, ptr noundef nonnull @.str.1, i32 noundef 407, ptr noundef %4067, ptr noundef %4069, ptr noundef %4071, i32 noundef %4072) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4074:                                             ; preds = %4041
  %4075 = load i32, ptr @test_count, align 4, !tbaa !5
  %4076 = add nsw i32 %4075, 1
  store i32 %4076, ptr @test_count, align 4, !tbaa !5
  %4077 = load ptr, ptr %35, align 8, !tbaa !9
  %4078 = getelementptr inbounds i8, ptr %4077, i64 336
  %bcmp678 = call i32 @bcmp(ptr noundef nonnull dereferenceable(48) %4078, ptr noundef nonnull dereferenceable(48) %3, i64 48)
  %4079 = icmp eq i32 %bcmp678, 0
  br i1 %4079, label %4102, label %4080

4080:                                             ; preds = %4074
  %4081 = load i32, ptr %339, align 4, !tbaa !5
  %4082 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4083 = call i32 @s2n_print_stacktrace(ptr noundef %4082) #12
  %4084 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4085 = trunc nuw i8 %4084 to i1
  br i1 %4085, label %4086, label %4090

4086:                                             ; preds = %4080
  %4087 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4088 = call i32 @fileno(ptr noundef %4087) #12
  %4089 = call i32 @isatty(i32 noundef %4088) #12
  %.not679 = icmp eq i32 %4089, 0
  br i1 %.not679, label %4090, label %4091

4090:                                             ; preds = %4086, %4080
  br label %4091

4091:                                             ; preds = %4086, %4090
  %.str.5.sink2205 = phi ptr [ @.str.5, %4090 ], [ @.str.2, %4086 ]
  store i32 %4081, ptr %339, align 4, !tbaa !5
  %4092 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4093 = load i32, ptr @test_count, align 4, !tbaa !5
  %4094 = load i32, ptr %285, align 4, !tbaa !5
  %4095 = call ptr @s2n_strerror(i32 noundef %4094, ptr noundef nonnull @.str.4) #12
  %4096 = load i32, ptr %285, align 4, !tbaa !5
  %4097 = call ptr @s2n_strerror_debug(i32 noundef %4096, ptr noundef nonnull @.str.4) #12
  %4098 = load i32, ptr %339, align 4, !tbaa !5
  %4099 = call ptr @strerror(i32 noundef %4098) #12
  %4100 = load i32, ptr %339, align 4, !tbaa !5
  %4101 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4092, ptr noundef nonnull %.str.5.sink2205, i32 noundef %4093, ptr noundef nonnull @.str.61, ptr noundef nonnull @.str.1, i32 noundef 409, ptr noundef %4095, ptr noundef %4097, ptr noundef %4099, i32 noundef %4100) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4102:                                             ; preds = %4074
  %4103 = add nsw i32 %4075, 2
  store i32 %4103, ptr @test_count, align 4, !tbaa !5
  %4104 = getelementptr inbounds i8, ptr %4077, i64 384
  %bcmp680 = call i32 @bcmp(ptr noundef nonnull dereferenceable(48) %4104, ptr noundef nonnull dereferenceable(48) %3, i64 48)
  %4105 = icmp eq i32 %bcmp680, 0
  br i1 %4105, label %4128, label %4106

4106:                                             ; preds = %4102
  %4107 = load i32, ptr %339, align 4, !tbaa !5
  %4108 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4109 = call i32 @s2n_print_stacktrace(ptr noundef %4108) #12
  %4110 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4111 = trunc nuw i8 %4110 to i1
  br i1 %4111, label %4112, label %4116

4112:                                             ; preds = %4106
  %4113 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4114 = call i32 @fileno(ptr noundef %4113) #12
  %4115 = call i32 @isatty(i32 noundef %4114) #12
  %.not681 = icmp eq i32 %4115, 0
  br i1 %.not681, label %4116, label %4117

4116:                                             ; preds = %4112, %4106
  br label %4117

4117:                                             ; preds = %4112, %4116
  %.str.5.sink2214 = phi ptr [ @.str.5, %4116 ], [ @.str.2, %4112 ]
  store i32 %4107, ptr %339, align 4, !tbaa !5
  %4118 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4119 = load i32, ptr @test_count, align 4, !tbaa !5
  %4120 = load i32, ptr %285, align 4, !tbaa !5
  %4121 = call ptr @s2n_strerror(i32 noundef %4120, ptr noundef nonnull @.str.4) #12
  %4122 = load i32, ptr %285, align 4, !tbaa !5
  %4123 = call ptr @s2n_strerror_debug(i32 noundef %4122, ptr noundef nonnull @.str.4) #12
  %4124 = load i32, ptr %339, align 4, !tbaa !5
  %4125 = call ptr @strerror(i32 noundef %4124) #12
  %4126 = load i32, ptr %339, align 4, !tbaa !5
  %4127 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4118, ptr noundef nonnull %.str.5.sink2214, i32 noundef %4119, ptr noundef nonnull @.str.62, ptr noundef nonnull @.str.1, i32 noundef 411, ptr noundef %4121, ptr noundef %4123, ptr noundef %4125, i32 noundef %4126) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4128:                                             ; preds = %4102
  %4129 = add nsw i32 %4075, 3
  store i32 %4129, ptr @test_count, align 4, !tbaa !5
  %4130 = call i32 @s2n_connection_set_test_message_type(ptr noundef %4077, i32 noundef 1) #12
  %4131 = call zeroext i1 @s2n_result_is_ok(i32 %4130)
  br i1 %4131, label %4154, label %4132

4132:                                             ; preds = %4128
  %4133 = load i32, ptr %339, align 4, !tbaa !5
  %4134 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4135 = call i32 @s2n_print_stacktrace(ptr noundef %4134) #12
  %4136 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4137 = trunc nuw i8 %4136 to i1
  br i1 %4137, label %4138, label %4142

4138:                                             ; preds = %4132
  %4139 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4140 = call i32 @fileno(ptr noundef %4139) #12
  %4141 = call i32 @isatty(i32 noundef %4140) #12
  %.not682 = icmp eq i32 %4141, 0
  br i1 %.not682, label %4142, label %4143

4142:                                             ; preds = %4138, %4132
  br label %4143

4143:                                             ; preds = %4138, %4142
  %.str.5.sink2223 = phi ptr [ @.str.5, %4142 ], [ @.str.2, %4138 ]
  store i32 %4133, ptr %339, align 4, !tbaa !5
  %4144 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4145 = load i32, ptr @test_count, align 4, !tbaa !5
  %4146 = load i32, ptr %285, align 4, !tbaa !5
  %4147 = call ptr @s2n_strerror(i32 noundef %4146, ptr noundef nonnull @.str.4) #12
  %4148 = load i32, ptr %285, align 4, !tbaa !5
  %4149 = call ptr @s2n_strerror_debug(i32 noundef %4148, ptr noundef nonnull @.str.4) #12
  %4150 = load i32, ptr %339, align 4, !tbaa !5
  %4151 = call ptr @strerror(i32 noundef %4150) #12
  %4152 = load i32, ptr %339, align 4, !tbaa !5
  %4153 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4144, ptr noundef nonnull %.str.5.sink2223, i32 noundef %4145, ptr noundef nonnull @.str.78, ptr noundef nonnull @.str.1, i32 noundef 413, ptr noundef %4147, ptr noundef %4149, ptr noundef %4151, i32 noundef %4152) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4154:                                             ; preds = %4128
  %4155 = load i32, ptr @test_count, align 4, !tbaa !5
  %4156 = add nsw i32 %4155, 1
  store i32 %4156, ptr @test_count, align 4, !tbaa !5
  %4157 = load ptr, ptr %35, align 8, !tbaa !9
  %4158 = call i32 @s2n_tls13_secrets_update(ptr noundef %4157) #12
  %4159 = call zeroext i1 @s2n_result_is_ok(i32 %4158)
  br i1 %4159, label %4182, label %4160

4160:                                             ; preds = %4154
  %4161 = load i32, ptr %339, align 4, !tbaa !5
  %4162 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4163 = call i32 @s2n_print_stacktrace(ptr noundef %4162) #12
  %4164 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4165 = trunc nuw i8 %4164 to i1
  br i1 %4165, label %4166, label %4170

4166:                                             ; preds = %4160
  %4167 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4168 = call i32 @fileno(ptr noundef %4167) #12
  %4169 = call i32 @isatty(i32 noundef %4168) #12
  %.not683 = icmp eq i32 %4169, 0
  br i1 %.not683, label %4170, label %4171

4170:                                             ; preds = %4166, %4160
  br label %4171

4171:                                             ; preds = %4166, %4170
  %.str.5.sink2232 = phi ptr [ @.str.5, %4170 ], [ @.str.2, %4166 ]
  store i32 %4161, ptr %339, align 4, !tbaa !5
  %4172 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4173 = load i32, ptr @test_count, align 4, !tbaa !5
  %4174 = load i32, ptr %285, align 4, !tbaa !5
  %4175 = call ptr @s2n_strerror(i32 noundef %4174, ptr noundef nonnull @.str.4) #12
  %4176 = load i32, ptr %285, align 4, !tbaa !5
  %4177 = call ptr @s2n_strerror_debug(i32 noundef %4176, ptr noundef nonnull @.str.4) #12
  %4178 = load i32, ptr %339, align 4, !tbaa !5
  %4179 = call ptr @strerror(i32 noundef %4178) #12
  %4180 = load i32, ptr %339, align 4, !tbaa !5
  %4181 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4172, ptr noundef nonnull %.str.5.sink2232, i32 noundef %4173, ptr noundef nonnull @.str.76, ptr noundef nonnull @.str.1, i32 noundef 414, ptr noundef %4175, ptr noundef %4177, ptr noundef %4179, i32 noundef %4180) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4182:                                             ; preds = %4154
  %4183 = load i32, ptr @test_count, align 4, !tbaa !5
  %4184 = add nsw i32 %4183, 1
  store i32 %4184, ptr @test_count, align 4, !tbaa !5
  %4185 = load ptr, ptr %35, align 8, !tbaa !9
  %4186 = getelementptr inbounds i8, ptr %4185, i64 336
  %bcmp684 = call i32 @bcmp(ptr noundef nonnull dereferenceable(48) %4186, ptr noundef nonnull dereferenceable(48) %3, i64 48)
  %4187 = icmp eq i32 %bcmp684, 0
  br i1 %4187, label %4188, label %4210

4188:                                             ; preds = %4182
  %4189 = load i32, ptr %339, align 4, !tbaa !5
  %4190 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4191 = call i32 @s2n_print_stacktrace(ptr noundef %4190) #12
  %4192 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4193 = trunc nuw i8 %4192 to i1
  br i1 %4193, label %4194, label %4198

4194:                                             ; preds = %4188
  %4195 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4196 = call i32 @fileno(ptr noundef %4195) #12
  %4197 = call i32 @isatty(i32 noundef %4196) #12
  %.not736 = icmp eq i32 %4197, 0
  br i1 %.not736, label %4198, label %4199

4198:                                             ; preds = %4194, %4188
  br label %4199

4199:                                             ; preds = %4194, %4198
  %.str.5.sink2241 = phi ptr [ @.str.5, %4198 ], [ @.str.2, %4194 ]
  store i32 %4189, ptr %339, align 4, !tbaa !5
  %4200 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4201 = load i32, ptr @test_count, align 4, !tbaa !5
  %4202 = load i32, ptr %285, align 4, !tbaa !5
  %4203 = call ptr @s2n_strerror(i32 noundef %4202, ptr noundef nonnull @.str.4) #12
  %4204 = load i32, ptr %285, align 4, !tbaa !5
  %4205 = call ptr @s2n_strerror_debug(i32 noundef %4204, ptr noundef nonnull @.str.4) #12
  %4206 = load i32, ptr %339, align 4, !tbaa !5
  %4207 = call ptr @strerror(i32 noundef %4206) #12
  %4208 = load i32, ptr %339, align 4, !tbaa !5
  %4209 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4200, ptr noundef nonnull %.str.5.sink2241, i32 noundef %4201, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.1, i32 noundef 417, ptr noundef %4203, ptr noundef %4205, ptr noundef %4207, i32 noundef %4208) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4210:                                             ; preds = %4182
  %4211 = add nsw i32 %4183, 2
  store i32 %4211, ptr @test_count, align 4, !tbaa !5
  %4212 = getelementptr inbounds i8, ptr %4185, i64 384
  %bcmp685 = call i32 @bcmp(ptr noundef nonnull dereferenceable(48) %4212, ptr noundef nonnull dereferenceable(48) %3, i64 48)
  %4213 = icmp eq i32 %bcmp685, 0
  br i1 %4213, label %4214, label %4236

4214:                                             ; preds = %4210
  %4215 = load i32, ptr %339, align 4, !tbaa !5
  %4216 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4217 = call i32 @s2n_print_stacktrace(ptr noundef %4216) #12
  %4218 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4219 = trunc nuw i8 %4218 to i1
  br i1 %4219, label %4220, label %4224

4220:                                             ; preds = %4214
  %4221 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4222 = call i32 @fileno(ptr noundef %4221) #12
  %4223 = call i32 @isatty(i32 noundef %4222) #12
  %.not735 = icmp eq i32 %4223, 0
  br i1 %.not735, label %4224, label %4225

4224:                                             ; preds = %4220, %4214
  br label %4225

4225:                                             ; preds = %4220, %4224
  %.str.5.sink2250 = phi ptr [ @.str.5, %4224 ], [ @.str.2, %4220 ]
  store i32 %4215, ptr %339, align 4, !tbaa !5
  %4226 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4227 = load i32, ptr @test_count, align 4, !tbaa !5
  %4228 = load i32, ptr %285, align 4, !tbaa !5
  %4229 = call ptr @s2n_strerror(i32 noundef %4228, ptr noundef nonnull @.str.4) #12
  %4230 = load i32, ptr %285, align 4, !tbaa !5
  %4231 = call ptr @s2n_strerror_debug(i32 noundef %4230, ptr noundef nonnull @.str.4) #12
  %4232 = load i32, ptr %339, align 4, !tbaa !5
  %4233 = call ptr @strerror(i32 noundef %4232) #12
  %4234 = load i32, ptr %339, align 4, !tbaa !5
  %4235 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4226, ptr noundef nonnull %.str.5.sink2250, i32 noundef %4227, ptr noundef nonnull @.str.54, ptr noundef nonnull @.str.1, i32 noundef 419, ptr noundef %4229, ptr noundef %4231, ptr noundef %4233, i32 noundef %4234) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4236:                                             ; preds = %4210
  %4237 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %35) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %35) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %36) #12
  %4238 = call ptr @s2n_connection_new(i32 noundef 0) #12
  store ptr %4238, ptr %36, align 8, !tbaa !9
  %4239 = getelementptr inbounds i8, ptr %4238, i64 232
  %4240 = load ptr, ptr %4239, align 8, !tbaa !22
  store ptr @s2n_tls13_aes_128_gcm_sha256, ptr %4240, align 8, !tbaa !48
  %4241 = load ptr, ptr %36, align 8, !tbaa !9
  %4242 = getelementptr inbounds i8, ptr %4241, i64 220
  store i8 34, ptr %4242, align 4, !tbaa !62
  %4243 = load i32, ptr @test_count, align 4, !tbaa !5
  %4244 = add nsw i32 %4243, 1
  store i32 %4244, ptr @test_count, align 4, !tbaa !5
  %4245 = call i32 @s2n_connection_set_test_handshake_secret(ptr noundef %4241, ptr noundef nonnull %4) #12
  %4246 = call zeroext i1 @s2n_result_is_ok(i32 %4245)
  br i1 %4246, label %4269, label %4247

4247:                                             ; preds = %4236
  %4248 = load i32, ptr %339, align 4, !tbaa !5
  %4249 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4250 = call i32 @s2n_print_stacktrace(ptr noundef %4249) #12
  %4251 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4252 = trunc nuw i8 %4251 to i1
  br i1 %4252, label %4253, label %4257

4253:                                             ; preds = %4247
  %4254 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4255 = call i32 @fileno(ptr noundef %4254) #12
  %4256 = call i32 @isatty(i32 noundef %4255) #12
  %.not686 = icmp eq i32 %4256, 0
  br i1 %.not686, label %4257, label %4258

4257:                                             ; preds = %4253, %4247
  br label %4258

4258:                                             ; preds = %4253, %4257
  %.str.5.sink2259 = phi ptr [ @.str.5, %4257 ], [ @.str.2, %4253 ]
  store i32 %4248, ptr %339, align 4, !tbaa !5
  %4259 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4260 = load i32, ptr @test_count, align 4, !tbaa !5
  %4261 = load i32, ptr %285, align 4, !tbaa !5
  %4262 = call ptr @s2n_strerror(i32 noundef %4261, ptr noundef nonnull @.str.4) #12
  %4263 = load i32, ptr %285, align 4, !tbaa !5
  %4264 = call ptr @s2n_strerror_debug(i32 noundef %4263, ptr noundef nonnull @.str.4) #12
  %4265 = load i32, ptr %339, align 4, !tbaa !5
  %4266 = call ptr @strerror(i32 noundef %4265) #12
  %4267 = load i32, ptr %339, align 4, !tbaa !5
  %4268 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4259, ptr noundef nonnull %.str.5.sink2259, i32 noundef %4260, ptr noundef nonnull @.str.77, ptr noundef nonnull @.str.1, i32 noundef 428, ptr noundef %4262, ptr noundef %4264, ptr noundef %4266, i32 noundef %4267) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4269:                                             ; preds = %4236
  %4270 = load i32, ptr @test_count, align 4, !tbaa !5
  %4271 = add nsw i32 %4270, 1
  store i32 %4271, ptr @test_count, align 4, !tbaa !5
  %4272 = load ptr, ptr %36, align 8, !tbaa !9
  %4273 = getelementptr inbounds i8, ptr %4272, i64 2168
  %4274 = load i8, ptr %4273, align 8, !tbaa !69
  %4275 = icmp eq i8 %4274, 0
  br i1 %4275, label %4298, label %4276

4276:                                             ; preds = %4269
  %4277 = load i32, ptr %339, align 4, !tbaa !5
  %4278 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4279 = call i32 @s2n_print_stacktrace(ptr noundef %4278) #12
  %4280 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4281 = trunc nuw i8 %4280 to i1
  br i1 %4281, label %4282, label %4286

4282:                                             ; preds = %4276
  %4283 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4284 = call i32 @fileno(ptr noundef %4283) #12
  %4285 = call i32 @isatty(i32 noundef %4284) #12
  %.not687 = icmp eq i32 %4285, 0
  br i1 %.not687, label %4286, label %4287

4286:                                             ; preds = %4282, %4276
  br label %4287

4287:                                             ; preds = %4282, %4286
  %.str.5.sink2268 = phi ptr [ @.str.5, %4286 ], [ @.str.2, %4282 ]
  store i32 %4277, ptr %339, align 4, !tbaa !5
  %4288 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4289 = load i32, ptr @test_count, align 4, !tbaa !5
  %4290 = load i32, ptr %285, align 4, !tbaa !5
  %4291 = call ptr @s2n_strerror(i32 noundef %4290, ptr noundef nonnull @.str.4) #12
  %4292 = load i32, ptr %285, align 4, !tbaa !5
  %4293 = call ptr @s2n_strerror_debug(i32 noundef %4292, ptr noundef nonnull @.str.4) #12
  %4294 = load i32, ptr %339, align 4, !tbaa !5
  %4295 = call ptr @strerror(i32 noundef %4294) #12
  %4296 = load i32, ptr %339, align 4, !tbaa !5
  %4297 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4288, ptr noundef nonnull %.str.5.sink2268, i32 noundef %4289, ptr noundef nonnull @.str.79, ptr noundef nonnull @.str.1, i32 noundef 429, ptr noundef %4291, ptr noundef %4293, ptr noundef %4295, i32 noundef %4296) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4298:                                             ; preds = %4269
  %4299 = add nsw i32 %4270, 2
  store i32 %4299, ptr @test_count, align 4, !tbaa !5
  %4300 = getelementptr inbounds i8, ptr %4272, i64 2120
  %bcmp688 = call i32 @bcmp(ptr noundef nonnull dereferenceable(48) %4300, ptr noundef nonnull dereferenceable(48) %3, i64 48)
  %4301 = icmp eq i32 %bcmp688, 0
  br i1 %4301, label %4324, label %4302

4302:                                             ; preds = %4298
  %4303 = load i32, ptr %339, align 4, !tbaa !5
  %4304 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4305 = call i32 @s2n_print_stacktrace(ptr noundef %4304) #12
  %4306 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4307 = trunc nuw i8 %4306 to i1
  br i1 %4307, label %4308, label %4312

4308:                                             ; preds = %4302
  %4309 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4310 = call i32 @fileno(ptr noundef %4309) #12
  %4311 = call i32 @isatty(i32 noundef %4310) #12
  %.not689 = icmp eq i32 %4311, 0
  br i1 %.not689, label %4312, label %4313

4312:                                             ; preds = %4308, %4302
  br label %4313

4313:                                             ; preds = %4308, %4312
  %.str.5.sink2277 = phi ptr [ @.str.5, %4312 ], [ @.str.2, %4308 ]
  store i32 %4303, ptr %339, align 4, !tbaa !5
  %4314 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4315 = load i32, ptr @test_count, align 4, !tbaa !5
  %4316 = load i32, ptr %285, align 4, !tbaa !5
  %4317 = call ptr @s2n_strerror(i32 noundef %4316, ptr noundef nonnull @.str.4) #12
  %4318 = load i32, ptr %285, align 4, !tbaa !5
  %4319 = call ptr @s2n_strerror_debug(i32 noundef %4318, ptr noundef nonnull @.str.4) #12
  %4320 = load i32, ptr %339, align 4, !tbaa !5
  %4321 = call ptr @strerror(i32 noundef %4320) #12
  %4322 = load i32, ptr %339, align 4, !tbaa !5
  %4323 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4314, ptr noundef nonnull %.str.5.sink2277, i32 noundef %4315, ptr noundef nonnull @.str.80, ptr noundef nonnull @.str.1, i32 noundef 431, ptr noundef %4317, ptr noundef %4319, ptr noundef %4321, i32 noundef %4322) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4324:                                             ; preds = %4298
  %4325 = add nsw i32 %4270, 3
  store i32 %4325, ptr @test_count, align 4, !tbaa !5
  %4326 = getelementptr inbounds i8, ptr %4272, i64 2072
  %bcmp690 = call i32 @bcmp(ptr noundef nonnull dereferenceable(48) %4326, ptr noundef nonnull dereferenceable(48) %3, i64 48)
  %4327 = icmp eq i32 %bcmp690, 0
  br i1 %4327, label %4350, label %4328

4328:                                             ; preds = %4324
  %4329 = load i32, ptr %339, align 4, !tbaa !5
  %4330 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4331 = call i32 @s2n_print_stacktrace(ptr noundef %4330) #12
  %4332 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4333 = trunc nuw i8 %4332 to i1
  br i1 %4333, label %4334, label %4338

4334:                                             ; preds = %4328
  %4335 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4336 = call i32 @fileno(ptr noundef %4335) #12
  %4337 = call i32 @isatty(i32 noundef %4336) #12
  %.not691 = icmp eq i32 %4337, 0
  br i1 %.not691, label %4338, label %4339

4338:                                             ; preds = %4334, %4328
  br label %4339

4339:                                             ; preds = %4334, %4338
  %.str.5.sink2286 = phi ptr [ @.str.5, %4338 ], [ @.str.2, %4334 ]
  store i32 %4329, ptr %339, align 4, !tbaa !5
  %4340 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4341 = load i32, ptr @test_count, align 4, !tbaa !5
  %4342 = load i32, ptr %285, align 4, !tbaa !5
  %4343 = call ptr @s2n_strerror(i32 noundef %4342, ptr noundef nonnull @.str.4) #12
  %4344 = load i32, ptr %285, align 4, !tbaa !5
  %4345 = call ptr @s2n_strerror_debug(i32 noundef %4344, ptr noundef nonnull @.str.4) #12
  %4346 = load i32, ptr %339, align 4, !tbaa !5
  %4347 = call ptr @strerror(i32 noundef %4346) #12
  %4348 = load i32, ptr %339, align 4, !tbaa !5
  %4349 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4340, ptr noundef nonnull %.str.5.sink2286, i32 noundef %4341, ptr noundef nonnull @.str.81, ptr noundef nonnull @.str.1, i32 noundef 433, ptr noundef %4343, ptr noundef %4345, ptr noundef %4347, i32 noundef %4348) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4350:                                             ; preds = %4324
  %4351 = add nsw i32 %4270, 4
  store i32 %4351, ptr @test_count, align 4, !tbaa !5
  %4352 = call i32 @s2n_connection_set_test_message_type(ptr noundef nonnull %4272, i32 noundef 1) #12
  %4353 = call zeroext i1 @s2n_result_is_ok(i32 %4352)
  br i1 %4353, label %4376, label %4354

4354:                                             ; preds = %4350
  %4355 = load i32, ptr %339, align 4, !tbaa !5
  %4356 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4357 = call i32 @s2n_print_stacktrace(ptr noundef %4356) #12
  %4358 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4359 = trunc nuw i8 %4358 to i1
  br i1 %4359, label %4360, label %4364

4360:                                             ; preds = %4354
  %4361 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4362 = call i32 @fileno(ptr noundef %4361) #12
  %4363 = call i32 @isatty(i32 noundef %4362) #12
  %.not692 = icmp eq i32 %4363, 0
  br i1 %.not692, label %4364, label %4365

4364:                                             ; preds = %4360, %4354
  br label %4365

4365:                                             ; preds = %4360, %4364
  %.str.5.sink2295 = phi ptr [ @.str.5, %4364 ], [ @.str.2, %4360 ]
  store i32 %4355, ptr %339, align 4, !tbaa !5
  %4366 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4367 = load i32, ptr @test_count, align 4, !tbaa !5
  %4368 = load i32, ptr %285, align 4, !tbaa !5
  %4369 = call ptr @s2n_strerror(i32 noundef %4368, ptr noundef nonnull @.str.4) #12
  %4370 = load i32, ptr %285, align 4, !tbaa !5
  %4371 = call ptr @s2n_strerror_debug(i32 noundef %4370, ptr noundef nonnull @.str.4) #12
  %4372 = load i32, ptr %339, align 4, !tbaa !5
  %4373 = call ptr @strerror(i32 noundef %4372) #12
  %4374 = load i32, ptr %339, align 4, !tbaa !5
  %4375 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4366, ptr noundef nonnull %.str.5.sink2295, i32 noundef %4367, ptr noundef nonnull @.str.78, ptr noundef nonnull @.str.1, i32 noundef 435, ptr noundef %4369, ptr noundef %4371, ptr noundef %4373, i32 noundef %4374) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4376:                                             ; preds = %4350
  %4377 = load i32, ptr @test_count, align 4, !tbaa !5
  %4378 = add nsw i32 %4377, 1
  store i32 %4378, ptr @test_count, align 4, !tbaa !5
  %4379 = load ptr, ptr %36, align 8, !tbaa !9
  %4380 = call i32 @s2n_tls13_secrets_update(ptr noundef %4379) #12
  %4381 = call zeroext i1 @s2n_result_is_ok(i32 %4380)
  br i1 %4381, label %4404, label %4382

4382:                                             ; preds = %4376
  %4383 = load i32, ptr %339, align 4, !tbaa !5
  %4384 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4385 = call i32 @s2n_print_stacktrace(ptr noundef %4384) #12
  %4386 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4387 = trunc nuw i8 %4386 to i1
  br i1 %4387, label %4388, label %4392

4388:                                             ; preds = %4382
  %4389 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4390 = call i32 @fileno(ptr noundef %4389) #12
  %4391 = call i32 @isatty(i32 noundef %4390) #12
  %.not693 = icmp eq i32 %4391, 0
  br i1 %.not693, label %4392, label %4393

4392:                                             ; preds = %4388, %4382
  br label %4393

4393:                                             ; preds = %4388, %4392
  %.str.5.sink2304 = phi ptr [ @.str.5, %4392 ], [ @.str.2, %4388 ]
  store i32 %4383, ptr %339, align 4, !tbaa !5
  %4394 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4395 = load i32, ptr @test_count, align 4, !tbaa !5
  %4396 = load i32, ptr %285, align 4, !tbaa !5
  %4397 = call ptr @s2n_strerror(i32 noundef %4396, ptr noundef nonnull @.str.4) #12
  %4398 = load i32, ptr %285, align 4, !tbaa !5
  %4399 = call ptr @s2n_strerror_debug(i32 noundef %4398, ptr noundef nonnull @.str.4) #12
  %4400 = load i32, ptr %339, align 4, !tbaa !5
  %4401 = call ptr @strerror(i32 noundef %4400) #12
  %4402 = load i32, ptr %339, align 4, !tbaa !5
  %4403 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4394, ptr noundef nonnull %.str.5.sink2304, i32 noundef %4395, ptr noundef nonnull @.str.76, ptr noundef nonnull @.str.1, i32 noundef 436, ptr noundef %4397, ptr noundef %4399, ptr noundef %4401, i32 noundef %4402) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4404:                                             ; preds = %4376
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %37) #12
  store i8 0, ptr %37, align 1, !tbaa !70
  %4405 = load i32, ptr @test_count, align 4, !tbaa !5
  %4406 = add nsw i32 %4405, 1
  store i32 %4406, ptr @test_count, align 4, !tbaa !5
  %4407 = load ptr, ptr %36, align 8, !tbaa !9
  %4408 = getelementptr inbounds i8, ptr %4407, i64 232
  %4409 = load ptr, ptr %4408, align 8, !tbaa !22
  %4410 = load ptr, ptr %4409, align 8, !tbaa !48
  %4411 = getelementptr inbounds i8, ptr %4410, i64 96
  %4412 = load i32, ptr %4411, align 8, !tbaa !71
  %4413 = call i32 @s2n_hmac_digest_size(i32 noundef %4412, ptr noundef nonnull %37) #12
  %4414 = icmp eq i32 %4413, -1
  br i1 %4414, label %4415, label %4437

4415:                                             ; preds = %4404
  %4416 = load i32, ptr %339, align 4, !tbaa !5
  %4417 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4418 = call i32 @s2n_print_stacktrace(ptr noundef %4417) #12
  %4419 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4420 = trunc nuw i8 %4419 to i1
  br i1 %4420, label %4421, label %4425

4421:                                             ; preds = %4415
  %4422 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4423 = call i32 @fileno(ptr noundef %4422) #12
  %4424 = call i32 @isatty(i32 noundef %4423) #12
  %.not734 = icmp eq i32 %4424, 0
  br i1 %.not734, label %4425, label %4426

4425:                                             ; preds = %4421, %4415
  br label %4426

4426:                                             ; preds = %4421, %4425
  %.str.5.sink2313 = phi ptr [ @.str.5, %4425 ], [ @.str.2, %4421 ]
  store i32 %4416, ptr %339, align 4, !tbaa !5
  %4427 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4428 = load i32, ptr @test_count, align 4, !tbaa !5
  %4429 = load i32, ptr %285, align 4, !tbaa !5
  %4430 = call ptr @s2n_strerror(i32 noundef %4429, ptr noundef nonnull @.str.4) #12
  %4431 = load i32, ptr %285, align 4, !tbaa !5
  %4432 = call ptr @s2n_strerror_debug(i32 noundef %4431, ptr noundef nonnull @.str.4) #12
  %4433 = load i32, ptr %339, align 4, !tbaa !5
  %4434 = call ptr @strerror(i32 noundef %4433) #12
  %4435 = load i32, ptr %339, align 4, !tbaa !5
  %4436 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4427, ptr noundef nonnull %.str.5.sink2313, i32 noundef %4428, ptr noundef nonnull @.str.82, ptr noundef nonnull @.str.1, i32 noundef 439, ptr noundef %4430, ptr noundef %4432, ptr noundef %4434, i32 noundef %4435) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4437:                                             ; preds = %4404
  %4438 = load i32, ptr @test_count, align 4, !tbaa !5
  %4439 = add nsw i32 %4438, 1
  store i32 %4439, ptr @test_count, align 4, !tbaa !5
  %4440 = load ptr, ptr %36, align 8, !tbaa !9
  %4441 = getelementptr inbounds i8, ptr %4440, i64 2168
  %4442 = load i8, ptr %4441, align 8, !tbaa !69
  %4443 = load i8, ptr %37, align 1, !tbaa !70
  %4444 = icmp eq i8 %4442, %4443
  br i1 %4444, label %4467, label %4445

4445:                                             ; preds = %4437
  %4446 = load i32, ptr %339, align 4, !tbaa !5
  %4447 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4448 = call i32 @s2n_print_stacktrace(ptr noundef %4447) #12
  %4449 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4450 = trunc nuw i8 %4449 to i1
  br i1 %4450, label %4451, label %4455

4451:                                             ; preds = %4445
  %4452 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4453 = call i32 @fileno(ptr noundef %4452) #12
  %4454 = call i32 @isatty(i32 noundef %4453) #12
  %.not694 = icmp eq i32 %4454, 0
  br i1 %.not694, label %4455, label %4456

4455:                                             ; preds = %4451, %4445
  br label %4456

4456:                                             ; preds = %4451, %4455
  %.str.5.sink2322 = phi ptr [ @.str.5, %4455 ], [ @.str.2, %4451 ]
  store i32 %4446, ptr %339, align 4, !tbaa !5
  %4457 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4458 = load i32, ptr @test_count, align 4, !tbaa !5
  %4459 = load i32, ptr %285, align 4, !tbaa !5
  %4460 = call ptr @s2n_strerror(i32 noundef %4459, ptr noundef nonnull @.str.4) #12
  %4461 = load i32, ptr %285, align 4, !tbaa !5
  %4462 = call ptr @s2n_strerror_debug(i32 noundef %4461, ptr noundef nonnull @.str.4) #12
  %4463 = load i32, ptr %339, align 4, !tbaa !5
  %4464 = call ptr @strerror(i32 noundef %4463) #12
  %4465 = load i32, ptr %339, align 4, !tbaa !5
  %4466 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4457, ptr noundef nonnull %.str.5.sink2322, i32 noundef %4458, ptr noundef nonnull @.str.83, ptr noundef nonnull @.str.1, i32 noundef 440, ptr noundef %4460, ptr noundef %4462, ptr noundef %4464, i32 noundef %4465) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4467:                                             ; preds = %4437
  %4468 = add nsw i32 %4438, 2
  store i32 %4468, ptr @test_count, align 4, !tbaa !5
  %4469 = getelementptr inbounds i8, ptr %4440, i64 2120
  %bcmp695 = call i32 @bcmp(ptr noundef nonnull dereferenceable(48) %4469, ptr noundef nonnull dereferenceable(48) %3, i64 48)
  %4470 = icmp eq i32 %bcmp695, 0
  br i1 %4470, label %4471, label %4493

4471:                                             ; preds = %4467
  %4472 = load i32, ptr %339, align 4, !tbaa !5
  %4473 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4474 = call i32 @s2n_print_stacktrace(ptr noundef %4473) #12
  %4475 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4476 = trunc nuw i8 %4475 to i1
  br i1 %4476, label %4477, label %4481

4477:                                             ; preds = %4471
  %4478 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4479 = call i32 @fileno(ptr noundef %4478) #12
  %4480 = call i32 @isatty(i32 noundef %4479) #12
  %.not733 = icmp eq i32 %4480, 0
  br i1 %.not733, label %4481, label %4482

4481:                                             ; preds = %4477, %4471
  br label %4482

4482:                                             ; preds = %4477, %4481
  %.str.5.sink2331 = phi ptr [ @.str.5, %4481 ], [ @.str.2, %4477 ]
  store i32 %4472, ptr %339, align 4, !tbaa !5
  %4483 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4484 = load i32, ptr @test_count, align 4, !tbaa !5
  %4485 = load i32, ptr %285, align 4, !tbaa !5
  %4486 = call ptr @s2n_strerror(i32 noundef %4485, ptr noundef nonnull @.str.4) #12
  %4487 = load i32, ptr %285, align 4, !tbaa !5
  %4488 = call ptr @s2n_strerror_debug(i32 noundef %4487, ptr noundef nonnull @.str.4) #12
  %4489 = load i32, ptr %339, align 4, !tbaa !5
  %4490 = call ptr @strerror(i32 noundef %4489) #12
  %4491 = load i32, ptr %339, align 4, !tbaa !5
  %4492 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4483, ptr noundef nonnull %.str.5.sink2331, i32 noundef %4484, ptr noundef nonnull @.str.84, ptr noundef nonnull @.str.1, i32 noundef 442, ptr noundef %4486, ptr noundef %4488, ptr noundef %4490, i32 noundef %4491) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4493:                                             ; preds = %4467
  %4494 = add nsw i32 %4438, 3
  store i32 %4494, ptr @test_count, align 4, !tbaa !5
  %4495 = getelementptr inbounds i8, ptr %4440, i64 2072
  %bcmp696 = call i32 @bcmp(ptr noundef nonnull dereferenceable(48) %4495, ptr noundef nonnull dereferenceable(48) %3, i64 48)
  %4496 = icmp eq i32 %bcmp696, 0
  br i1 %4496, label %4497, label %4519

4497:                                             ; preds = %4493
  %4498 = load i32, ptr %339, align 4, !tbaa !5
  %4499 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4500 = call i32 @s2n_print_stacktrace(ptr noundef %4499) #12
  %4501 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4502 = trunc nuw i8 %4501 to i1
  br i1 %4502, label %4503, label %4507

4503:                                             ; preds = %4497
  %4504 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4505 = call i32 @fileno(ptr noundef %4504) #12
  %4506 = call i32 @isatty(i32 noundef %4505) #12
  %.not732 = icmp eq i32 %4506, 0
  br i1 %.not732, label %4507, label %4508

4507:                                             ; preds = %4503, %4497
  br label %4508

4508:                                             ; preds = %4503, %4507
  %.str.5.sink2340 = phi ptr [ @.str.5, %4507 ], [ @.str.2, %4503 ]
  store i32 %4498, ptr %339, align 4, !tbaa !5
  %4509 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4510 = load i32, ptr @test_count, align 4, !tbaa !5
  %4511 = load i32, ptr %285, align 4, !tbaa !5
  %4512 = call ptr @s2n_strerror(i32 noundef %4511, ptr noundef nonnull @.str.4) #12
  %4513 = load i32, ptr %285, align 4, !tbaa !5
  %4514 = call ptr @s2n_strerror_debug(i32 noundef %4513, ptr noundef nonnull @.str.4) #12
  %4515 = load i32, ptr %339, align 4, !tbaa !5
  %4516 = call ptr @strerror(i32 noundef %4515) #12
  %4517 = load i32, ptr %339, align 4, !tbaa !5
  %4518 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4509, ptr noundef nonnull %.str.5.sink2340, i32 noundef %4510, ptr noundef nonnull @.str.85, ptr noundef nonnull @.str.1, i32 noundef 444, ptr noundef %4512, ptr noundef %4514, ptr noundef %4516, i32 noundef %4517) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4519:                                             ; preds = %4493
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %37) #12
  %4520 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %36) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %36) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %38) #12
  %4521 = call ptr @s2n_connection_new(i32 noundef 0) #12
  store ptr %4521, ptr %38, align 8, !tbaa !9
  %4522 = getelementptr inbounds i8, ptr %4521, i64 232
  %4523 = load ptr, ptr %4522, align 8, !tbaa !22
  store ptr @s2n_tls13_aes_128_gcm_sha256, ptr %4523, align 8, !tbaa !48
  %4524 = load ptr, ptr %38, align 8, !tbaa !9
  %4525 = getelementptr inbounds i8, ptr %4524, i64 220
  store i8 34, ptr %4525, align 4, !tbaa !62
  %4526 = load i32, ptr @test_count, align 4, !tbaa !5
  %4527 = add nsw i32 %4526, 1
  store i32 %4527, ptr @test_count, align 4, !tbaa !5
  %4528 = call i32 @s2n_connection_set_test_master_secret(ptr noundef %4524, ptr noundef nonnull %4) #12
  %4529 = call zeroext i1 @s2n_result_is_ok(i32 %4528)
  br i1 %4529, label %4552, label %4530

4530:                                             ; preds = %4519
  %4531 = load i32, ptr %339, align 4, !tbaa !5
  %4532 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4533 = call i32 @s2n_print_stacktrace(ptr noundef %4532) #12
  %4534 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4535 = trunc nuw i8 %4534 to i1
  br i1 %4535, label %4536, label %4540

4536:                                             ; preds = %4530
  %4537 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4538 = call i32 @fileno(ptr noundef %4537) #12
  %4539 = call i32 @isatty(i32 noundef %4538) #12
  %.not697 = icmp eq i32 %4539, 0
  br i1 %.not697, label %4540, label %4541

4540:                                             ; preds = %4536, %4530
  br label %4541

4541:                                             ; preds = %4536, %4540
  %.str.5.sink2349 = phi ptr [ @.str.5, %4540 ], [ @.str.2, %4536 ]
  store i32 %4531, ptr %339, align 4, !tbaa !5
  %4542 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4543 = load i32, ptr @test_count, align 4, !tbaa !5
  %4544 = load i32, ptr %285, align 4, !tbaa !5
  %4545 = call ptr @s2n_strerror(i32 noundef %4544, ptr noundef nonnull @.str.4) #12
  %4546 = load i32, ptr %285, align 4, !tbaa !5
  %4547 = call ptr @s2n_strerror_debug(i32 noundef %4546, ptr noundef nonnull @.str.4) #12
  %4548 = load i32, ptr %339, align 4, !tbaa !5
  %4549 = call ptr @strerror(i32 noundef %4548) #12
  %4550 = load i32, ptr %339, align 4, !tbaa !5
  %4551 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4542, ptr noundef nonnull %.str.5.sink2349, i32 noundef %4543, ptr noundef nonnull @.str.86, ptr noundef nonnull @.str.1, i32 noundef 453, ptr noundef %4545, ptr noundef %4547, ptr noundef %4549, i32 noundef %4550) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4552:                                             ; preds = %4519
  %4553 = load i32, ptr @test_count, align 4, !tbaa !5
  %4554 = add nsw i32 %4553, 1
  store i32 %4554, ptr @test_count, align 4, !tbaa !5
  %4555 = load ptr, ptr %38, align 8, !tbaa !9
  %4556 = getelementptr inbounds i8, ptr %4555, i64 432
  %bcmp698 = call i32 @bcmp(ptr noundef nonnull dereferenceable(48) %4556, ptr noundef nonnull dereferenceable(48) %3, i64 48)
  %4557 = icmp eq i32 %bcmp698, 0
  br i1 %4557, label %4580, label %4558

4558:                                             ; preds = %4552
  %4559 = load i32, ptr %339, align 4, !tbaa !5
  %4560 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4561 = call i32 @s2n_print_stacktrace(ptr noundef %4560) #12
  %4562 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4563 = trunc nuw i8 %4562 to i1
  br i1 %4563, label %4564, label %4568

4564:                                             ; preds = %4558
  %4565 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4566 = call i32 @fileno(ptr noundef %4565) #12
  %4567 = call i32 @isatty(i32 noundef %4566) #12
  %.not699 = icmp eq i32 %4567, 0
  br i1 %.not699, label %4568, label %4569

4568:                                             ; preds = %4564, %4558
  br label %4569

4569:                                             ; preds = %4564, %4568
  %.str.5.sink2358 = phi ptr [ @.str.5, %4568 ], [ @.str.2, %4564 ]
  store i32 %4559, ptr %339, align 4, !tbaa !5
  %4570 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4571 = load i32, ptr @test_count, align 4, !tbaa !5
  %4572 = load i32, ptr %285, align 4, !tbaa !5
  %4573 = call ptr @s2n_strerror(i32 noundef %4572, ptr noundef nonnull @.str.4) #12
  %4574 = load i32, ptr %285, align 4, !tbaa !5
  %4575 = call ptr @s2n_strerror_debug(i32 noundef %4574, ptr noundef nonnull @.str.4) #12
  %4576 = load i32, ptr %339, align 4, !tbaa !5
  %4577 = call ptr @strerror(i32 noundef %4576) #12
  %4578 = load i32, ptr %339, align 4, !tbaa !5
  %4579 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4570, ptr noundef nonnull %.str.5.sink2358, i32 noundef %4571, ptr noundef nonnull @.str.87, ptr noundef nonnull @.str.1, i32 noundef 455, ptr noundef %4573, ptr noundef %4575, ptr noundef %4577, i32 noundef %4578) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4580:                                             ; preds = %4552
  %4581 = add nsw i32 %4553, 2
  store i32 %4581, ptr @test_count, align 4, !tbaa !5
  %4582 = getelementptr inbounds i8, ptr %4555, i64 480
  %bcmp700 = call i32 @bcmp(ptr noundef nonnull dereferenceable(48) %4582, ptr noundef nonnull dereferenceable(48) %3, i64 48)
  %4583 = icmp eq i32 %bcmp700, 0
  br i1 %4583, label %4606, label %4584

4584:                                             ; preds = %4580
  %4585 = load i32, ptr %339, align 4, !tbaa !5
  %4586 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4587 = call i32 @s2n_print_stacktrace(ptr noundef %4586) #12
  %4588 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4589 = trunc nuw i8 %4588 to i1
  br i1 %4589, label %4590, label %4594

4590:                                             ; preds = %4584
  %4591 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4592 = call i32 @fileno(ptr noundef %4591) #12
  %4593 = call i32 @isatty(i32 noundef %4592) #12
  %.not701 = icmp eq i32 %4593, 0
  br i1 %.not701, label %4594, label %4595

4594:                                             ; preds = %4590, %4584
  br label %4595

4595:                                             ; preds = %4590, %4594
  %.str.5.sink2367 = phi ptr [ @.str.5, %4594 ], [ @.str.2, %4590 ]
  store i32 %4585, ptr %339, align 4, !tbaa !5
  %4596 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4597 = load i32, ptr @test_count, align 4, !tbaa !5
  %4598 = load i32, ptr %285, align 4, !tbaa !5
  %4599 = call ptr @s2n_strerror(i32 noundef %4598, ptr noundef nonnull @.str.4) #12
  %4600 = load i32, ptr %285, align 4, !tbaa !5
  %4601 = call ptr @s2n_strerror_debug(i32 noundef %4600, ptr noundef nonnull @.str.4) #12
  %4602 = load i32, ptr %339, align 4, !tbaa !5
  %4603 = call ptr @strerror(i32 noundef %4602) #12
  %4604 = load i32, ptr %339, align 4, !tbaa !5
  %4605 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4596, ptr noundef nonnull %.str.5.sink2367, i32 noundef %4597, ptr noundef nonnull @.str.88, ptr noundef nonnull @.str.1, i32 noundef 457, ptr noundef %4599, ptr noundef %4601, ptr noundef %4603, i32 noundef %4604) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4606:                                             ; preds = %4580
  %4607 = add nsw i32 %4553, 3
  store i32 %4607, ptr @test_count, align 4, !tbaa !5
  %4608 = call i32 @s2n_connection_set_test_message_type(ptr noundef %4555, i32 noundef 15) #12
  %4609 = call zeroext i1 @s2n_result_is_ok(i32 %4608)
  br i1 %4609, label %4632, label %4610

4610:                                             ; preds = %4606
  %4611 = load i32, ptr %339, align 4, !tbaa !5
  %4612 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4613 = call i32 @s2n_print_stacktrace(ptr noundef %4612) #12
  %4614 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4615 = trunc nuw i8 %4614 to i1
  br i1 %4615, label %4616, label %4620

4616:                                             ; preds = %4610
  %4617 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4618 = call i32 @fileno(ptr noundef %4617) #12
  %4619 = call i32 @isatty(i32 noundef %4618) #12
  %.not702 = icmp eq i32 %4619, 0
  br i1 %.not702, label %4620, label %4621

4620:                                             ; preds = %4616, %4610
  br label %4621

4621:                                             ; preds = %4616, %4620
  %.str.5.sink2376 = phi ptr [ @.str.5, %4620 ], [ @.str.2, %4616 ]
  store i32 %4611, ptr %339, align 4, !tbaa !5
  %4622 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4623 = load i32, ptr @test_count, align 4, !tbaa !5
  %4624 = load i32, ptr %285, align 4, !tbaa !5
  %4625 = call ptr @s2n_strerror(i32 noundef %4624, ptr noundef nonnull @.str.4) #12
  %4626 = load i32, ptr %285, align 4, !tbaa !5
  %4627 = call ptr @s2n_strerror_debug(i32 noundef %4626, ptr noundef nonnull @.str.4) #12
  %4628 = load i32, ptr %339, align 4, !tbaa !5
  %4629 = call ptr @strerror(i32 noundef %4628) #12
  %4630 = load i32, ptr %339, align 4, !tbaa !5
  %4631 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4622, ptr noundef nonnull %.str.5.sink2376, i32 noundef %4623, ptr noundef nonnull @.str.89, ptr noundef nonnull @.str.1, i32 noundef 459, ptr noundef %4625, ptr noundef %4627, ptr noundef %4629, i32 noundef %4630) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4632:                                             ; preds = %4606
  %4633 = load i32, ptr @test_count, align 4, !tbaa !5
  %4634 = add nsw i32 %4633, 1
  store i32 %4634, ptr @test_count, align 4, !tbaa !5
  %4635 = load ptr, ptr %38, align 8, !tbaa !9
  %4636 = call i32 @s2n_tls13_secrets_update(ptr noundef %4635) #12
  %4637 = call zeroext i1 @s2n_result_is_ok(i32 %4636)
  br i1 %4637, label %4660, label %4638

4638:                                             ; preds = %4632
  %4639 = load i32, ptr %339, align 4, !tbaa !5
  %4640 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4641 = call i32 @s2n_print_stacktrace(ptr noundef %4640) #12
  %4642 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4643 = trunc nuw i8 %4642 to i1
  br i1 %4643, label %4644, label %4648

4644:                                             ; preds = %4638
  %4645 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4646 = call i32 @fileno(ptr noundef %4645) #12
  %4647 = call i32 @isatty(i32 noundef %4646) #12
  %.not703 = icmp eq i32 %4647, 0
  br i1 %.not703, label %4648, label %4649

4648:                                             ; preds = %4644, %4638
  br label %4649

4649:                                             ; preds = %4644, %4648
  %.str.5.sink2385 = phi ptr [ @.str.5, %4648 ], [ @.str.2, %4644 ]
  store i32 %4639, ptr %339, align 4, !tbaa !5
  %4650 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4651 = load i32, ptr @test_count, align 4, !tbaa !5
  %4652 = load i32, ptr %285, align 4, !tbaa !5
  %4653 = call ptr @s2n_strerror(i32 noundef %4652, ptr noundef nonnull @.str.4) #12
  %4654 = load i32, ptr %285, align 4, !tbaa !5
  %4655 = call ptr @s2n_strerror_debug(i32 noundef %4654, ptr noundef nonnull @.str.4) #12
  %4656 = load i32, ptr %339, align 4, !tbaa !5
  %4657 = call ptr @strerror(i32 noundef %4656) #12
  %4658 = load i32, ptr %339, align 4, !tbaa !5
  %4659 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4650, ptr noundef nonnull %.str.5.sink2385, i32 noundef %4651, ptr noundef nonnull @.str.76, ptr noundef nonnull @.str.1, i32 noundef 460, ptr noundef %4653, ptr noundef %4655, ptr noundef %4657, i32 noundef %4658) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4660:                                             ; preds = %4632
  %4661 = load i32, ptr @test_count, align 4, !tbaa !5
  %4662 = add nsw i32 %4661, 1
  store i32 %4662, ptr @test_count, align 4, !tbaa !5
  %4663 = load ptr, ptr %38, align 8, !tbaa !9
  %4664 = getelementptr inbounds i8, ptr %4663, i64 432
  %bcmp704 = call i32 @bcmp(ptr noundef nonnull dereferenceable(48) %4664, ptr noundef nonnull dereferenceable(48) %3, i64 48)
  %4665 = icmp eq i32 %bcmp704, 0
  br i1 %4665, label %4666, label %4688

4666:                                             ; preds = %4660
  %4667 = load i32, ptr %339, align 4, !tbaa !5
  %4668 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4669 = call i32 @s2n_print_stacktrace(ptr noundef %4668) #12
  %4670 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4671 = trunc nuw i8 %4670 to i1
  br i1 %4671, label %4672, label %4676

4672:                                             ; preds = %4666
  %4673 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4674 = call i32 @fileno(ptr noundef %4673) #12
  %4675 = call i32 @isatty(i32 noundef %4674) #12
  %.not731 = icmp eq i32 %4675, 0
  br i1 %.not731, label %4676, label %4677

4676:                                             ; preds = %4672, %4666
  br label %4677

4677:                                             ; preds = %4672, %4676
  %.str.5.sink2394 = phi ptr [ @.str.5, %4676 ], [ @.str.2, %4672 ]
  store i32 %4667, ptr %339, align 4, !tbaa !5
  %4678 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4679 = load i32, ptr @test_count, align 4, !tbaa !5
  %4680 = load i32, ptr %285, align 4, !tbaa !5
  %4681 = call ptr @s2n_strerror(i32 noundef %4680, ptr noundef nonnull @.str.4) #12
  %4682 = load i32, ptr %285, align 4, !tbaa !5
  %4683 = call ptr @s2n_strerror_debug(i32 noundef %4682, ptr noundef nonnull @.str.4) #12
  %4684 = load i32, ptr %339, align 4, !tbaa !5
  %4685 = call ptr @strerror(i32 noundef %4684) #12
  %4686 = load i32, ptr %339, align 4, !tbaa !5
  %4687 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4678, ptr noundef nonnull %.str.5.sink2394, i32 noundef %4679, ptr noundef nonnull @.str.55, ptr noundef nonnull @.str.1, i32 noundef 463, ptr noundef %4681, ptr noundef %4683, ptr noundef %4685, i32 noundef %4686) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4688:                                             ; preds = %4660
  %4689 = add nsw i32 %4661, 2
  store i32 %4689, ptr @test_count, align 4, !tbaa !5
  %4690 = getelementptr inbounds i8, ptr %4663, i64 480
  %bcmp705 = call i32 @bcmp(ptr noundef nonnull dereferenceable(48) %4690, ptr noundef nonnull dereferenceable(48) %3, i64 48)
  %4691 = icmp eq i32 %bcmp705, 0
  br i1 %4691, label %4692, label %4714

4692:                                             ; preds = %4688
  %4693 = load i32, ptr %339, align 4, !tbaa !5
  %4694 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4695 = call i32 @s2n_print_stacktrace(ptr noundef %4694) #12
  %4696 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4697 = trunc nuw i8 %4696 to i1
  br i1 %4697, label %4698, label %4702

4698:                                             ; preds = %4692
  %4699 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4700 = call i32 @fileno(ptr noundef %4699) #12
  %4701 = call i32 @isatty(i32 noundef %4700) #12
  %.not730 = icmp eq i32 %4701, 0
  br i1 %.not730, label %4702, label %4703

4702:                                             ; preds = %4698, %4692
  br label %4703

4703:                                             ; preds = %4698, %4702
  %.str.5.sink2403 = phi ptr [ @.str.5, %4702 ], [ @.str.2, %4698 ]
  store i32 %4693, ptr %339, align 4, !tbaa !5
  %4704 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4705 = load i32, ptr @test_count, align 4, !tbaa !5
  %4706 = load i32, ptr %285, align 4, !tbaa !5
  %4707 = call ptr @s2n_strerror(i32 noundef %4706, ptr noundef nonnull @.str.4) #12
  %4708 = load i32, ptr %285, align 4, !tbaa !5
  %4709 = call ptr @s2n_strerror_debug(i32 noundef %4708, ptr noundef nonnull @.str.4) #12
  %4710 = load i32, ptr %339, align 4, !tbaa !5
  %4711 = call ptr @strerror(i32 noundef %4710) #12
  %4712 = load i32, ptr %339, align 4, !tbaa !5
  %4713 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4704, ptr noundef nonnull %.str.5.sink2403, i32 noundef %4705, ptr noundef nonnull @.str.56, ptr noundef nonnull @.str.1, i32 noundef 465, ptr noundef %4707, ptr noundef %4709, ptr noundef %4711, i32 noundef %4712) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4714:                                             ; preds = %4688
  %4715 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %38) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %38) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %39) #12
  %4716 = call ptr @s2n_connection_new(i32 noundef 0) #12
  store ptr %4716, ptr %39, align 8, !tbaa !9
  %4717 = getelementptr inbounds i8, ptr %4716, i64 232
  %4718 = load ptr, ptr %4717, align 8, !tbaa !22
  store ptr @s2n_tls13_aes_128_gcm_sha256, ptr %4718, align 8, !tbaa !48
  %4719 = load ptr, ptr %39, align 8, !tbaa !9
  %4720 = getelementptr inbounds i8, ptr %4719, i64 220
  store i8 34, ptr %4720, align 4, !tbaa !62
  %4721 = load i32, ptr @test_count, align 4, !tbaa !5
  %4722 = add nsw i32 %4721, 1
  store i32 %4722, ptr @test_count, align 4, !tbaa !5
  %4723 = call i32 @s2n_connection_set_test_master_secret(ptr noundef %4719, ptr noundef nonnull %4) #12
  %4724 = call zeroext i1 @s2n_result_is_ok(i32 %4723)
  br i1 %4724, label %4747, label %4725

4725:                                             ; preds = %4714
  %4726 = load i32, ptr %339, align 4, !tbaa !5
  %4727 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4728 = call i32 @s2n_print_stacktrace(ptr noundef %4727) #12
  %4729 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4730 = trunc nuw i8 %4729 to i1
  br i1 %4730, label %4731, label %4735

4731:                                             ; preds = %4725
  %4732 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4733 = call i32 @fileno(ptr noundef %4732) #12
  %4734 = call i32 @isatty(i32 noundef %4733) #12
  %.not706 = icmp eq i32 %4734, 0
  br i1 %.not706, label %4735, label %4736

4735:                                             ; preds = %4731, %4725
  br label %4736

4736:                                             ; preds = %4731, %4735
  %.str.5.sink2412 = phi ptr [ @.str.5, %4735 ], [ @.str.2, %4731 ]
  store i32 %4726, ptr %339, align 4, !tbaa !5
  %4737 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4738 = load i32, ptr @test_count, align 4, !tbaa !5
  %4739 = load i32, ptr %285, align 4, !tbaa !5
  %4740 = call ptr @s2n_strerror(i32 noundef %4739, ptr noundef nonnull @.str.4) #12
  %4741 = load i32, ptr %285, align 4, !tbaa !5
  %4742 = call ptr @s2n_strerror_debug(i32 noundef %4741, ptr noundef nonnull @.str.4) #12
  %4743 = load i32, ptr %339, align 4, !tbaa !5
  %4744 = call ptr @strerror(i32 noundef %4743) #12
  %4745 = load i32, ptr %339, align 4, !tbaa !5
  %4746 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4737, ptr noundef nonnull %.str.5.sink2412, i32 noundef %4738, ptr noundef nonnull @.str.86, ptr noundef nonnull @.str.1, i32 noundef 474, ptr noundef %4740, ptr noundef %4742, ptr noundef %4744, i32 noundef %4745) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4747:                                             ; preds = %4714
  %4748 = load i32, ptr @test_count, align 4, !tbaa !5
  %4749 = add nsw i32 %4748, 1
  store i32 %4749, ptr @test_count, align 4, !tbaa !5
  %4750 = load ptr, ptr %39, align 8, !tbaa !9
  %4751 = getelementptr inbounds i8, ptr %4750, i64 528
  %bcmp707 = call i32 @bcmp(ptr noundef nonnull dereferenceable(48) %4751, ptr noundef nonnull dereferenceable(48) %3, i64 48)
  %4752 = icmp eq i32 %bcmp707, 0
  br i1 %4752, label %4775, label %4753

4753:                                             ; preds = %4747
  %4754 = load i32, ptr %339, align 4, !tbaa !5
  %4755 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4756 = call i32 @s2n_print_stacktrace(ptr noundef %4755) #12
  %4757 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4758 = trunc nuw i8 %4757 to i1
  br i1 %4758, label %4759, label %4763

4759:                                             ; preds = %4753
  %4760 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4761 = call i32 @fileno(ptr noundef %4760) #12
  %4762 = call i32 @isatty(i32 noundef %4761) #12
  %.not708 = icmp eq i32 %4762, 0
  br i1 %.not708, label %4763, label %4764

4763:                                             ; preds = %4759, %4753
  br label %4764

4764:                                             ; preds = %4759, %4763
  %.str.5.sink2421 = phi ptr [ @.str.5, %4763 ], [ @.str.2, %4759 ]
  store i32 %4754, ptr %339, align 4, !tbaa !5
  %4765 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4766 = load i32, ptr @test_count, align 4, !tbaa !5
  %4767 = load i32, ptr %285, align 4, !tbaa !5
  %4768 = call ptr @s2n_strerror(i32 noundef %4767, ptr noundef nonnull @.str.4) #12
  %4769 = load i32, ptr %285, align 4, !tbaa !5
  %4770 = call ptr @s2n_strerror_debug(i32 noundef %4769, ptr noundef nonnull @.str.4) #12
  %4771 = load i32, ptr %339, align 4, !tbaa !5
  %4772 = call ptr @strerror(i32 noundef %4771) #12
  %4773 = load i32, ptr %339, align 4, !tbaa !5
  %4774 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4765, ptr noundef nonnull %.str.5.sink2421, i32 noundef %4766, ptr noundef nonnull @.str.90, ptr noundef nonnull @.str.1, i32 noundef 476, ptr noundef %4768, ptr noundef %4770, ptr noundef %4772, i32 noundef %4773) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4775:                                             ; preds = %4747
  %4776 = add nsw i32 %4748, 2
  store i32 %4776, ptr @test_count, align 4, !tbaa !5
  %4777 = call i32 @s2n_connection_set_test_message_type(ptr noundef %4750, i32 noundef 13) #12
  %4778 = call zeroext i1 @s2n_result_is_ok(i32 %4777)
  br i1 %4778, label %4801, label %4779

4779:                                             ; preds = %4775
  %4780 = load i32, ptr %339, align 4, !tbaa !5
  %4781 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4782 = call i32 @s2n_print_stacktrace(ptr noundef %4781) #12
  %4783 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4784 = trunc nuw i8 %4783 to i1
  br i1 %4784, label %4785, label %4789

4785:                                             ; preds = %4779
  %4786 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4787 = call i32 @fileno(ptr noundef %4786) #12
  %4788 = call i32 @isatty(i32 noundef %4787) #12
  %.not709 = icmp eq i32 %4788, 0
  br i1 %.not709, label %4789, label %4790

4789:                                             ; preds = %4785, %4779
  br label %4790

4790:                                             ; preds = %4785, %4789
  %.str.5.sink2430 = phi ptr [ @.str.5, %4789 ], [ @.str.2, %4785 ]
  store i32 %4780, ptr %339, align 4, !tbaa !5
  %4791 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4792 = load i32, ptr @test_count, align 4, !tbaa !5
  %4793 = load i32, ptr %285, align 4, !tbaa !5
  %4794 = call ptr @s2n_strerror(i32 noundef %4793, ptr noundef nonnull @.str.4) #12
  %4795 = load i32, ptr %285, align 4, !tbaa !5
  %4796 = call ptr @s2n_strerror_debug(i32 noundef %4795, ptr noundef nonnull @.str.4) #12
  %4797 = load i32, ptr %339, align 4, !tbaa !5
  %4798 = call ptr @strerror(i32 noundef %4797) #12
  %4799 = load i32, ptr %339, align 4, !tbaa !5
  %4800 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4791, ptr noundef nonnull %.str.5.sink2430, i32 noundef %4792, ptr noundef nonnull @.str.91, ptr noundef nonnull @.str.1, i32 noundef 478, ptr noundef %4794, ptr noundef %4796, ptr noundef %4798, i32 noundef %4799) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4801:                                             ; preds = %4775
  %4802 = load i32, ptr @test_count, align 4, !tbaa !5
  %4803 = add nsw i32 %4802, 1
  store i32 %4803, ptr @test_count, align 4, !tbaa !5
  %4804 = load ptr, ptr %39, align 8, !tbaa !9
  %4805 = call i32 @s2n_tls13_secrets_update(ptr noundef %4804) #12
  %4806 = call zeroext i1 @s2n_result_is_ok(i32 %4805)
  br i1 %4806, label %4829, label %4807

4807:                                             ; preds = %4801
  %4808 = load i32, ptr %339, align 4, !tbaa !5
  %4809 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4810 = call i32 @s2n_print_stacktrace(ptr noundef %4809) #12
  %4811 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4812 = trunc nuw i8 %4811 to i1
  br i1 %4812, label %4813, label %4817

4813:                                             ; preds = %4807
  %4814 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4815 = call i32 @fileno(ptr noundef %4814) #12
  %4816 = call i32 @isatty(i32 noundef %4815) #12
  %.not710 = icmp eq i32 %4816, 0
  br i1 %.not710, label %4817, label %4818

4817:                                             ; preds = %4813, %4807
  br label %4818

4818:                                             ; preds = %4813, %4817
  %.str.5.sink2439 = phi ptr [ @.str.5, %4817 ], [ @.str.2, %4813 ]
  store i32 %4808, ptr %339, align 4, !tbaa !5
  %4819 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4820 = load i32, ptr @test_count, align 4, !tbaa !5
  %4821 = load i32, ptr %285, align 4, !tbaa !5
  %4822 = call ptr @s2n_strerror(i32 noundef %4821, ptr noundef nonnull @.str.4) #12
  %4823 = load i32, ptr %285, align 4, !tbaa !5
  %4824 = call ptr @s2n_strerror_debug(i32 noundef %4823, ptr noundef nonnull @.str.4) #12
  %4825 = load i32, ptr %339, align 4, !tbaa !5
  %4826 = call ptr @strerror(i32 noundef %4825) #12
  %4827 = load i32, ptr %339, align 4, !tbaa !5
  %4828 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4819, ptr noundef nonnull %.str.5.sink2439, i32 noundef %4820, ptr noundef nonnull @.str.76, ptr noundef nonnull @.str.1, i32 noundef 479, ptr noundef %4822, ptr noundef %4824, ptr noundef %4826, i32 noundef %4827) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4829:                                             ; preds = %4801
  %4830 = load i32, ptr @test_count, align 4, !tbaa !5
  %4831 = add nsw i32 %4830, 1
  store i32 %4831, ptr @test_count, align 4, !tbaa !5
  %4832 = load ptr, ptr %39, align 8, !tbaa !9
  %4833 = getelementptr inbounds i8, ptr %4832, i64 528
  %bcmp711 = call i32 @bcmp(ptr noundef nonnull dereferenceable(48) %4833, ptr noundef nonnull dereferenceable(48) %3, i64 48)
  %4834 = icmp eq i32 %bcmp711, 0
  br i1 %4834, label %4835, label %4857

4835:                                             ; preds = %4829
  %4836 = load i32, ptr %339, align 4, !tbaa !5
  %4837 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4838 = call i32 @s2n_print_stacktrace(ptr noundef %4837) #12
  %4839 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4840 = trunc nuw i8 %4839 to i1
  br i1 %4840, label %4841, label %4845

4841:                                             ; preds = %4835
  %4842 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4843 = call i32 @fileno(ptr noundef %4842) #12
  %4844 = call i32 @isatty(i32 noundef %4843) #12
  %.not729 = icmp eq i32 %4844, 0
  br i1 %.not729, label %4845, label %4846

4845:                                             ; preds = %4841, %4835
  br label %4846

4846:                                             ; preds = %4841, %4845
  %.str.5.sink2448 = phi ptr [ @.str.5, %4845 ], [ @.str.2, %4841 ]
  store i32 %4836, ptr %339, align 4, !tbaa !5
  %4847 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4848 = load i32, ptr @test_count, align 4, !tbaa !5
  %4849 = load i32, ptr %285, align 4, !tbaa !5
  %4850 = call ptr @s2n_strerror(i32 noundef %4849, ptr noundef nonnull @.str.4) #12
  %4851 = load i32, ptr %285, align 4, !tbaa !5
  %4852 = call ptr @s2n_strerror_debug(i32 noundef %4851, ptr noundef nonnull @.str.4) #12
  %4853 = load i32, ptr %339, align 4, !tbaa !5
  %4854 = call ptr @strerror(i32 noundef %4853) #12
  %4855 = load i32, ptr %339, align 4, !tbaa !5
  %4856 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4847, ptr noundef nonnull %.str.5.sink2448, i32 noundef %4848, ptr noundef nonnull @.str.58, ptr noundef nonnull @.str.1, i32 noundef 482, ptr noundef %4850, ptr noundef %4852, ptr noundef %4854, i32 noundef %4855) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4857:                                             ; preds = %4829
  %4858 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %39) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %39) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %40) #12
  %4859 = call ptr @s2n_connection_new(i32 noundef 0) #12
  store ptr %4859, ptr %40, align 8, !tbaa !9
  %4860 = getelementptr inbounds i8, ptr %4859, i64 232
  %4861 = load ptr, ptr %4860, align 8, !tbaa !22
  store ptr @s2n_tls13_aes_128_gcm_sha256, ptr %4861, align 8, !tbaa !48
  %4862 = getelementptr inbounds i8, ptr %4859, i64 220
  store i8 34, ptr %4862, align 4, !tbaa !62
  %4863 = load i32, ptr @test_count, align 4, !tbaa !5
  %4864 = add nsw i32 %4863, 1
  store i32 %4864, ptr @test_count, align 4, !tbaa !5
  %4865 = call i32 @s2n_connection_set_test_master_secret(ptr noundef %4859, ptr noundef nonnull %4) #12
  %4866 = call zeroext i1 @s2n_result_is_ok(i32 %4865)
  br i1 %4866, label %4889, label %4867

4867:                                             ; preds = %4857
  %4868 = load i32, ptr %339, align 4, !tbaa !5
  %4869 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4870 = call i32 @s2n_print_stacktrace(ptr noundef %4869) #12
  %4871 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4872 = trunc nuw i8 %4871 to i1
  br i1 %4872, label %4873, label %4877

4873:                                             ; preds = %4867
  %4874 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4875 = call i32 @fileno(ptr noundef %4874) #12
  %4876 = call i32 @isatty(i32 noundef %4875) #12
  %.not712 = icmp eq i32 %4876, 0
  br i1 %.not712, label %4877, label %4878

4877:                                             ; preds = %4873, %4867
  br label %4878

4878:                                             ; preds = %4873, %4877
  %.str.5.sink2457 = phi ptr [ @.str.5, %4877 ], [ @.str.2, %4873 ]
  store i32 %4868, ptr %339, align 4, !tbaa !5
  %4879 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4880 = load i32, ptr @test_count, align 4, !tbaa !5
  %4881 = load i32, ptr %285, align 4, !tbaa !5
  %4882 = call ptr @s2n_strerror(i32 noundef %4881, ptr noundef nonnull @.str.4) #12
  %4883 = load i32, ptr %285, align 4, !tbaa !5
  %4884 = call ptr @s2n_strerror_debug(i32 noundef %4883, ptr noundef nonnull @.str.4) #12
  %4885 = load i32, ptr %339, align 4, !tbaa !5
  %4886 = call ptr @strerror(i32 noundef %4885) #12
  %4887 = load i32, ptr %339, align 4, !tbaa !5
  %4888 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4879, ptr noundef nonnull %.str.5.sink2457, i32 noundef %4880, ptr noundef nonnull @.str.86, ptr noundef nonnull @.str.1, i32 noundef 494, ptr noundef %4882, ptr noundef %4884, ptr noundef %4886, i32 noundef %4887) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4889:                                             ; preds = %4857
  %4890 = load i32, ptr @test_count, align 4, !tbaa !5
  %4891 = add nsw i32 %4890, 1
  store i32 %4891, ptr @test_count, align 4, !tbaa !5
  %4892 = getelementptr inbounds i8, ptr %4859, i64 576
  %bcmp713 = call i32 @bcmp(ptr noundef nonnull dereferenceable(48) %4892, ptr noundef nonnull dereferenceable(48) %3, i64 48)
  %4893 = icmp eq i32 %bcmp713, 0
  br i1 %4893, label %4916, label %4894

4894:                                             ; preds = %4889
  %4895 = load i32, ptr %339, align 4, !tbaa !5
  %4896 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4897 = call i32 @s2n_print_stacktrace(ptr noundef %4896) #12
  %4898 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4899 = trunc nuw i8 %4898 to i1
  br i1 %4899, label %4900, label %4904

4900:                                             ; preds = %4894
  %4901 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4902 = call i32 @fileno(ptr noundef %4901) #12
  %4903 = call i32 @isatty(i32 noundef %4902) #12
  %.not714 = icmp eq i32 %4903, 0
  br i1 %.not714, label %4904, label %4905

4904:                                             ; preds = %4900, %4894
  br label %4905

4905:                                             ; preds = %4900, %4904
  %.str.5.sink2466 = phi ptr [ @.str.5, %4904 ], [ @.str.2, %4900 ]
  store i32 %4895, ptr %339, align 4, !tbaa !5
  %4906 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4907 = load i32, ptr @test_count, align 4, !tbaa !5
  %4908 = load i32, ptr %285, align 4, !tbaa !5
  %4909 = call ptr @s2n_strerror(i32 noundef %4908, ptr noundef nonnull @.str.4) #12
  %4910 = load i32, ptr %285, align 4, !tbaa !5
  %4911 = call ptr @s2n_strerror_debug(i32 noundef %4910, ptr noundef nonnull @.str.4) #12
  %4912 = load i32, ptr %339, align 4, !tbaa !5
  %4913 = call ptr @strerror(i32 noundef %4912) #12
  %4914 = load i32, ptr %339, align 4, !tbaa !5
  %4915 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4906, ptr noundef nonnull %.str.5.sink2466, i32 noundef %4907, ptr noundef nonnull @.str.92, ptr noundef nonnull @.str.1, i32 noundef 496, ptr noundef %4909, ptr noundef %4911, ptr noundef %4913, i32 noundef %4914) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4916:                                             ; preds = %4889
  %4917 = add nsw i32 %4890, 2
  store i32 %4917, ptr @test_count, align 4, !tbaa !5
  %4918 = call i32 @s2n_connection_set_test_message_type(ptr noundef nonnull %4859, i32 noundef 15) #12
  %4919 = call zeroext i1 @s2n_result_is_ok(i32 %4918)
  br i1 %4919, label %4942, label %4920

4920:                                             ; preds = %4916
  %4921 = load i32, ptr %339, align 4, !tbaa !5
  %4922 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4923 = call i32 @s2n_print_stacktrace(ptr noundef %4922) #12
  %4924 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4925 = trunc nuw i8 %4924 to i1
  br i1 %4925, label %4926, label %4930

4926:                                             ; preds = %4920
  %4927 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4928 = call i32 @fileno(ptr noundef %4927) #12
  %4929 = call i32 @isatty(i32 noundef %4928) #12
  %.not715 = icmp eq i32 %4929, 0
  br i1 %.not715, label %4930, label %4931

4930:                                             ; preds = %4926, %4920
  br label %4931

4931:                                             ; preds = %4926, %4930
  %.str.5.sink2475 = phi ptr [ @.str.5, %4930 ], [ @.str.2, %4926 ]
  store i32 %4921, ptr %339, align 4, !tbaa !5
  %4932 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4933 = load i32, ptr @test_count, align 4, !tbaa !5
  %4934 = load i32, ptr %285, align 4, !tbaa !5
  %4935 = call ptr @s2n_strerror(i32 noundef %4934, ptr noundef nonnull @.str.4) #12
  %4936 = load i32, ptr %285, align 4, !tbaa !5
  %4937 = call ptr @s2n_strerror_debug(i32 noundef %4936, ptr noundef nonnull @.str.4) #12
  %4938 = load i32, ptr %339, align 4, !tbaa !5
  %4939 = call ptr @strerror(i32 noundef %4938) #12
  %4940 = load i32, ptr %339, align 4, !tbaa !5
  %4941 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4932, ptr noundef nonnull %.str.5.sink2475, i32 noundef %4933, ptr noundef nonnull @.str.89, ptr noundef nonnull @.str.1, i32 noundef 498, ptr noundef %4935, ptr noundef %4937, ptr noundef %4939, i32 noundef %4940) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4942:                                             ; preds = %4916
  %4943 = load i32, ptr @test_count, align 4, !tbaa !5
  %4944 = add nsw i32 %4943, 1
  store i32 %4944, ptr @test_count, align 4, !tbaa !5
  %4945 = call i32 @s2n_tls13_secrets_update(ptr noundef nonnull %4859) #12
  %4946 = call zeroext i1 @s2n_result_is_ok(i32 %4945)
  br i1 %4946, label %4969, label %4947

4947:                                             ; preds = %4942
  %4948 = load i32, ptr %339, align 4, !tbaa !5
  %4949 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4950 = call i32 @s2n_print_stacktrace(ptr noundef %4949) #12
  %4951 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4952 = trunc nuw i8 %4951 to i1
  br i1 %4952, label %4953, label %4957

4953:                                             ; preds = %4947
  %4954 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4955 = call i32 @fileno(ptr noundef %4954) #12
  %4956 = call i32 @isatty(i32 noundef %4955) #12
  %.not716 = icmp eq i32 %4956, 0
  br i1 %.not716, label %4957, label %4958

4957:                                             ; preds = %4953, %4947
  br label %4958

4958:                                             ; preds = %4953, %4957
  %.str.5.sink2484 = phi ptr [ @.str.5, %4957 ], [ @.str.2, %4953 ]
  store i32 %4948, ptr %339, align 4, !tbaa !5
  %4959 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4960 = load i32, ptr @test_count, align 4, !tbaa !5
  %4961 = load i32, ptr %285, align 4, !tbaa !5
  %4962 = call ptr @s2n_strerror(i32 noundef %4961, ptr noundef nonnull @.str.4) #12
  %4963 = load i32, ptr %285, align 4, !tbaa !5
  %4964 = call ptr @s2n_strerror_debug(i32 noundef %4963, ptr noundef nonnull @.str.4) #12
  %4965 = load i32, ptr %339, align 4, !tbaa !5
  %4966 = call ptr @strerror(i32 noundef %4965) #12
  %4967 = load i32, ptr %339, align 4, !tbaa !5
  %4968 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4959, ptr noundef nonnull %.str.5.sink2484, i32 noundef %4960, ptr noundef nonnull @.str.76, ptr noundef nonnull @.str.1, i32 noundef 499, ptr noundef %4962, ptr noundef %4964, ptr noundef %4966, i32 noundef %4967) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4969:                                             ; preds = %4942
  %4970 = load i32, ptr @test_count, align 4, !tbaa !5
  %4971 = add nsw i32 %4970, 1
  store i32 %4971, ptr @test_count, align 4, !tbaa !5
  %bcmp717 = call i32 @bcmp(ptr noundef nonnull dereferenceable(48) %4892, ptr noundef nonnull dereferenceable(48) %3, i64 48)
  %4972 = icmp eq i32 %bcmp717, 0
  br i1 %4972, label %4973, label %4995

4973:                                             ; preds = %4969
  %4974 = load i32, ptr %339, align 4, !tbaa !5
  %4975 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4976 = call i32 @s2n_print_stacktrace(ptr noundef %4975) #12
  %4977 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4978 = trunc nuw i8 %4977 to i1
  br i1 %4978, label %4979, label %4983

4979:                                             ; preds = %4973
  %4980 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4981 = call i32 @fileno(ptr noundef %4980) #12
  %4982 = call i32 @isatty(i32 noundef %4981) #12
  %.not728 = icmp eq i32 %4982, 0
  br i1 %.not728, label %4983, label %4984

4983:                                             ; preds = %4979, %4973
  br label %4984

4984:                                             ; preds = %4979, %4983
  %.str.5.sink2493 = phi ptr [ @.str.5, %4983 ], [ @.str.2, %4979 ]
  store i32 %4974, ptr %339, align 4, !tbaa !5
  %4985 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4986 = load i32, ptr @test_count, align 4, !tbaa !5
  %4987 = load i32, ptr %285, align 4, !tbaa !5
  %4988 = call ptr @s2n_strerror(i32 noundef %4987, ptr noundef nonnull @.str.4) #12
  %4989 = load i32, ptr %285, align 4, !tbaa !5
  %4990 = call ptr @s2n_strerror_debug(i32 noundef %4989, ptr noundef nonnull @.str.4) #12
  %4991 = load i32, ptr %339, align 4, !tbaa !5
  %4992 = call ptr @strerror(i32 noundef %4991) #12
  %4993 = load i32, ptr %339, align 4, !tbaa !5
  %4994 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4985, ptr noundef nonnull %.str.5.sink2493, i32 noundef %4986, ptr noundef nonnull @.str.57, ptr noundef nonnull @.str.1, i32 noundef 502, ptr noundef %4988, ptr noundef %4990, ptr noundef %4992, i32 noundef %4993) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4995:                                             ; preds = %4969
  %4996 = add nsw i32 %4970, 2
  store i32 %4996, ptr @test_count, align 4, !tbaa !5
  %4997 = call i32 @s2n_skip_handshake(ptr noundef nonnull %4859) #12
  %4998 = call zeroext i1 @s2n_result_is_ok(i32 %4997)
  br i1 %4998, label %5021, label %4999

4999:                                             ; preds = %4995
  %5000 = load i32, ptr %339, align 4, !tbaa !5
  %5001 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5002 = call i32 @s2n_print_stacktrace(ptr noundef %5001) #12
  %5003 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5004 = trunc nuw i8 %5003 to i1
  br i1 %5004, label %5005, label %5009

5005:                                             ; preds = %4999
  %5006 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5007 = call i32 @fileno(ptr noundef %5006) #12
  %5008 = call i32 @isatty(i32 noundef %5007) #12
  %.not718 = icmp eq i32 %5008, 0
  br i1 %.not718, label %5009, label %5010

5009:                                             ; preds = %5005, %4999
  br label %5010

5010:                                             ; preds = %5005, %5009
  %.str.5.sink2502 = phi ptr [ @.str.5, %5009 ], [ @.str.2, %5005 ]
  store i32 %5000, ptr %339, align 4, !tbaa !5
  %5011 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5012 = load i32, ptr @test_count, align 4, !tbaa !5
  %5013 = load i32, ptr %285, align 4, !tbaa !5
  %5014 = call ptr @s2n_strerror(i32 noundef %5013, ptr noundef nonnull @.str.4) #12
  %5015 = load i32, ptr %285, align 4, !tbaa !5
  %5016 = call ptr @s2n_strerror_debug(i32 noundef %5015, ptr noundef nonnull @.str.4) #12
  %5017 = load i32, ptr %339, align 4, !tbaa !5
  %5018 = call ptr @strerror(i32 noundef %5017) #12
  %5019 = load i32, ptr %339, align 4, !tbaa !5
  %5020 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5011, ptr noundef nonnull %.str.5.sink2502, i32 noundef %5012, ptr noundef nonnull @.str.93, ptr noundef nonnull @.str.1, i32 noundef 509, ptr noundef %5014, ptr noundef %5016, ptr noundef %5018, i32 noundef %5019) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5021:                                             ; preds = %4995
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %41) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(32) %41, i8 0, i64 32, i1 false)
  %5022 = call i32 @s2n_connection_tls_exporter(ptr noundef nonnull %4859, ptr noundef nonnull @.str.94, i32 noundef 5, ptr noundef nonnull @.str.95, i32 noundef 7, ptr noundef nonnull %41, i32 noundef 32) #12
  %5023 = load i32, ptr @test_count, align 4, !tbaa !5
  %5024 = add nsw i32 %5023, 1
  store i32 %5024, ptr @test_count, align 4, !tbaa !5
  %5025 = icmp eq i32 %5022, -1
  br i1 %5025, label %5026, label %5048

5026:                                             ; preds = %5021
  %5027 = load i32, ptr %339, align 4, !tbaa !5
  %5028 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5029 = call i32 @s2n_print_stacktrace(ptr noundef %5028) #12
  %5030 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5031 = trunc nuw i8 %5030 to i1
  br i1 %5031, label %5032, label %5036

5032:                                             ; preds = %5026
  %5033 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5034 = call i32 @fileno(ptr noundef %5033) #12
  %5035 = call i32 @isatty(i32 noundef %5034) #12
  %.not727 = icmp eq i32 %5035, 0
  br i1 %.not727, label %5036, label %5037

5036:                                             ; preds = %5032, %5026
  br label %5037

5037:                                             ; preds = %5032, %5036
  %.str.5.sink2511 = phi ptr [ @.str.5, %5036 ], [ @.str.2, %5032 ]
  store i32 %5027, ptr %339, align 4, !tbaa !5
  %5038 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5039 = load i32, ptr @test_count, align 4, !tbaa !5
  %5040 = load i32, ptr %285, align 4, !tbaa !5
  %5041 = call ptr @s2n_strerror(i32 noundef %5040, ptr noundef nonnull @.str.4) #12
  %5042 = load i32, ptr %285, align 4, !tbaa !5
  %5043 = call ptr @s2n_strerror_debug(i32 noundef %5042, ptr noundef nonnull @.str.4) #12
  %5044 = load i32, ptr %339, align 4, !tbaa !5
  %5045 = call ptr @strerror(i32 noundef %5044) #12
  %5046 = load i32, ptr %339, align 4, !tbaa !5
  %5047 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5038, ptr noundef nonnull %.str.5.sink2511, i32 noundef %5039, ptr noundef nonnull @.str.96, ptr noundef nonnull @.str.1, i32 noundef 520, ptr noundef %5041, ptr noundef %5043, ptr noundef %5045, i32 noundef %5046) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5048:                                             ; preds = %5021
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %42) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %42, i8 0, i64 24, i1 false)
  %5049 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef nonnull %42, ptr noundef nonnull @.str.97) #12
  %5050 = call zeroext i1 @s2n_result_is_ok(i32 %5049)
  br i1 %5050, label %5051, label %5105

5051:                                             ; preds = %5048
  %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 = getelementptr inbounds i8, ptr %42, i64 8
  %5055 = load i32, ptr %5054, align 8, !tbaa !67
  %5056 = icmp eq i32 %5055, 32
  br i1 %5056, label %5079, label %5057

5057:                                             ; preds = %5051
  %5058 = load i32, ptr %339, align 4, !tbaa !5
  %5059 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5060 = call i32 @s2n_print_stacktrace(ptr noundef %5059) #12
  %5061 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5062 = trunc nuw i8 %5061 to i1
  br i1 %5062, label %5063, label %5067

5063:                                             ; preds = %5057
  %5064 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5065 = call i32 @fileno(ptr noundef %5064) #12
  %5066 = call i32 @isatty(i32 noundef %5065) #12
  %.not719 = icmp eq i32 %5066, 0
  br i1 %.not719, label %5067, label %5068

5067:                                             ; preds = %5063, %5057
  br label %5068

5068:                                             ; preds = %5063, %5067
  %.str.5.sink2520 = phi ptr [ @.str.5, %5067 ], [ @.str.2, %5063 ]
  store i32 %5058, ptr %339, align 4, !tbaa !5
  %5069 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5070 = load i32, ptr @test_count, align 4, !tbaa !5
  %5071 = load i32, ptr %285, align 4, !tbaa !5
  %5072 = call ptr @s2n_strerror(i32 noundef %5071, ptr noundef nonnull @.str.4) #12
  %5073 = load i32, ptr %285, align 4, !tbaa !5
  %5074 = call ptr @s2n_strerror_debug(i32 noundef %5073, ptr noundef nonnull @.str.4) #12
  %5075 = load i32, ptr %339, align 4, !tbaa !5
  %5076 = call ptr @strerror(i32 noundef %5075) #12
  %5077 = load i32, ptr %339, align 4, !tbaa !5
  %5078 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5069, ptr noundef nonnull %.str.5.sink2520, i32 noundef %5070, ptr noundef nonnull @.str.98, ptr noundef nonnull @.str.1, i32 noundef 532, ptr noundef %5072, ptr noundef %5074, ptr noundef %5076, i32 noundef %5077) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5079:                                             ; preds = %5051
  %5080 = add nsw i32 %5052, 2
  store i32 %5080, ptr @test_count, align 4, !tbaa !5
  %5081 = load ptr, ptr %42, align 8, !tbaa !61
  %bcmp720 = call i32 @bcmp(ptr noundef nonnull dereferenceable(32) %41, ptr noundef nonnull dereferenceable(32) %5081, i64 32)
  %5082 = icmp eq i32 %bcmp720, 0
  br i1 %5082, label %5105, label %5083

5083:                                             ; preds = %5079
  %5084 = load i32, ptr %339, align 4, !tbaa !5
  %5085 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5086 = call i32 @s2n_print_stacktrace(ptr noundef %5085) #12
  %5087 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5088 = trunc nuw i8 %5087 to i1
  br i1 %5088, label %5089, label %5093

5089:                                             ; preds = %5083
  %5090 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5091 = call i32 @fileno(ptr noundef %5090) #12
  %5092 = call i32 @isatty(i32 noundef %5091) #12
  %.not721 = icmp eq i32 %5092, 0
  br i1 %.not721, label %5093, label %5094

5093:                                             ; preds = %5089, %5083
  br label %5094

5094:                                             ; preds = %5089, %5093
  %.str.5.sink2529 = phi ptr [ @.str.5, %5093 ], [ @.str.2, %5089 ]
  store i32 %5084, ptr %339, align 4, !tbaa !5
  %5095 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5096 = load i32, ptr @test_count, align 4, !tbaa !5
  %5097 = load i32, ptr %285, align 4, !tbaa !5
  %5098 = call ptr @s2n_strerror(i32 noundef %5097, ptr noundef nonnull @.str.4) #12
  %5099 = load i32, ptr %285, align 4, !tbaa !5
  %5100 = call ptr @s2n_strerror_debug(i32 noundef %5099, ptr noundef nonnull @.str.4) #12
  %5101 = load i32, ptr %339, align 4, !tbaa !5
  %5102 = call ptr @strerror(i32 noundef %5101) #12
  %5103 = load i32, ptr %339, align 4, !tbaa !5
  %5104 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5095, ptr noundef nonnull %.str.5.sink2529, i32 noundef %5096, ptr noundef nonnull @.str.99, ptr noundef nonnull @.str.1, i32 noundef 533, ptr noundef %5098, ptr noundef %5100, ptr noundef %5102, i32 noundef %5103) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5105:                                             ; preds = %5079, %5048
  %.0 = phi i32 [ -1, %5048 ], [ 0, %5079 ]
  %5106 = call i32 @s2n_free(ptr noundef nonnull %42) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %42) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %41) #12
  %5107 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %40) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %40) #12
  br i1 %5050, label %5108, label %5179

5108:                                             ; preds = %5105
  %5109 = call i32 @s2n_cleanup() #12
  %5110 = icmp eq i32 %5109, -1
  br i1 %5110, label %5111, label %5133

5111:                                             ; preds = %5108
  %5112 = load i32, ptr %339, align 4, !tbaa !5
  %5113 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5114 = call i32 @s2n_print_stacktrace(ptr noundef %5113) #12
  %5115 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5116 = trunc nuw i8 %5115 to i1
  br i1 %5116, label %5117, label %5121

5117:                                             ; preds = %5111
  %5118 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5119 = call i32 @fileno(ptr noundef %5118) #12
  %5120 = call i32 @isatty(i32 noundef %5119) #12
  %.not726 = icmp eq i32 %5120, 0
  br i1 %.not726, label %5121, label %5122

5121:                                             ; preds = %5117, %5111
  br label %5122

5122:                                             ; preds = %5117, %5121
  %.str.5.sink2538 = phi ptr [ @.str.5, %5121 ], [ @.str.2, %5117 ]
  store i32 %5112, ptr %339, align 4, !tbaa !5
  %5123 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5124 = load i32, ptr @test_count, align 4, !tbaa !5
  %5125 = load i32, ptr %285, align 4, !tbaa !5
  %5126 = call ptr @s2n_strerror(i32 noundef %5125, ptr noundef nonnull @.str.4) #12
  %5127 = load i32, ptr %285, align 4, !tbaa !5
  %5128 = call ptr @s2n_strerror_debug(i32 noundef %5127, ptr noundef nonnull @.str.4) #12
  %5129 = load i32, ptr %339, align 4, !tbaa !5
  %5130 = call ptr @strerror(i32 noundef %5129) #12
  %5131 = load i32, ptr %339, align 4, !tbaa !5
  %5132 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5123, ptr noundef nonnull %.str.5.sink2538, i32 noundef %5124, ptr noundef nonnull @.str.100, ptr noundef nonnull @.str.1, i32 noundef 537, ptr noundef %5126, ptr noundef %5128, ptr noundef %5130, i32 noundef %5131) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5133:                                             ; preds = %5108
  %5134 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #12
  %5135 = icmp eq i32 %5134, -1
  br i1 %5135, label %5136, label %5158

5136:                                             ; preds = %5133
  %5137 = load i32, ptr %339, align 4, !tbaa !5
  %5138 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5139 = call i32 @s2n_print_stacktrace(ptr noundef %5138) #12
  %5140 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5141 = trunc nuw i8 %5140 to i1
  br i1 %5141, label %5142, label %5146

5142:                                             ; preds = %5136
  %5143 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5144 = call i32 @fileno(ptr noundef %5143) #12
  %5145 = call i32 @isatty(i32 noundef %5144) #12
  %.not725 = icmp eq i32 %5145, 0
  br i1 %.not725, label %5146, label %5147

5146:                                             ; preds = %5142, %5136
  br label %5147

5147:                                             ; preds = %5142, %5146
  %.str.5.sink2547 = phi ptr [ @.str.5, %5146 ], [ @.str.2, %5142 ]
  store i32 %5137, ptr %339, align 4, !tbaa !5
  %5148 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5149 = load i32, ptr @test_count, align 4, !tbaa !5
  %5150 = load i32, ptr %285, align 4, !tbaa !5
  %5151 = call ptr @s2n_strerror(i32 noundef %5150, ptr noundef nonnull @.str.4) #12
  %5152 = load i32, ptr %285, align 4, !tbaa !5
  %5153 = call ptr @s2n_strerror_debug(i32 noundef %5152, ptr noundef nonnull @.str.4) #12
  %5154 = load i32, ptr %339, align 4, !tbaa !5
  %5155 = call ptr @strerror(i32 noundef %5154) #12
  %5156 = load i32, ptr %339, align 4, !tbaa !5
  %5157 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5148, ptr noundef nonnull %.str.5.sink2547, i32 noundef %5149, ptr noundef nonnull @.str.101, ptr noundef nonnull @.str.1, i32 noundef 537, ptr noundef %5151, ptr noundef %5153, ptr noundef %5155, i32 noundef %5156) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5158:                                             ; preds = %5133
  %5159 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5160 = trunc nuw i8 %5159 to i1
  br i1 %5160, label %5161, label %5172

5161:                                             ; preds = %5158
  %5162 = load ptr, ptr @stdout, align 8, !tbaa !9
  %5163 = call i32 @fileno(ptr noundef %5162) #12
  %5164 = call i32 @isatty(i32 noundef %5163) #12
  %.not722 = icmp eq i32 %5164, 0
  br i1 %.not722, label %5172, label %5165

5165:                                             ; preds = %5161
  %5166 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not724 = icmp eq i32 %5166, 0
  %5167 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not724, label %5170, label %5168

5168:                                             ; preds = %5165
  %5169 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5167, ptr noundef nonnull @.str.102, i32 noundef %5166) #12
  br label %5179

5170:                                             ; preds = %5165
  %5171 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5167, ptr noundef nonnull @.str.103) #12
  br label %5179

5172:                                             ; preds = %5161, %5158
  %5173 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not723 = icmp eq i32 %5173, 0
  %5174 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not723, label %5177, label %5175

5175:                                             ; preds = %5172
  %5176 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5174, ptr noundef nonnull @.str.104, i32 noundef %5173) #12
  br label %5179

5177:                                             ; preds = %5172
  %5178 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5174, ptr noundef nonnull @.str.105) #12
  br label %5179

5179:                                             ; preds = %5170, %5168, %5177, %5175, %5105
  %.1 = phi i32 [ %.0, %5105 ], [ 0, %5175 ], [ 0, %5177 ], [ 0, %5168 ], [ 0, %5170 ]
  call void @llvm.lifetime.end.p0(i64 32000, ptr nonnull %6) #12
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %5) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4) #12
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %3) #12
  ret i32 %.1
}

; 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

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

; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #9

declare i32 @s2n_blob_init(ptr noundef, ptr noundef, i32 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

; Function Attrs: inlinehint nounwind uwtable
declare hidden zeroext i1 @s2n_result_is_error(i32) local_unnamed_addr #10

declare i32 @s2n_tls13_extract_secret(ptr noundef, i32 noundef) local_unnamed_addr #2

declare void @s2n_debug_info_reset() local_unnamed_addr #2

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

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

declare i32 @s2n_tls13_derive_secret(ptr noundef, i32 noundef, i32 noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_conn_choose_state_machine(ptr noundef, i8 noundef zeroext) local_unnamed_addr #2

declare i32 @s2n_tls13_secrets_clean(ptr noundef) local_unnamed_addr #2

; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memmove.p0.p0.i64(ptr nocapture writeonly, ptr nocapture readonly, i64, i1 immarg) #9

declare i32 @s2n_tls13_secrets_get(ptr noundef, i32 noundef, i32 noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_tls13_secrets_update(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_connection_set_test_handshake_secret(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_connection_set_test_message_type(ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @s2n_hmac_digest_size(i32 noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_connection_set_test_master_secret(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_skip_handshake(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_connection_tls_exporter(ptr noundef, ptr noundef, i32 noundef, ptr noundef, i32 noundef, ptr noundef, i32 noundef) local_unnamed_addr #2

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_cleanup() local_unnamed_addr #2

; Function Attrs: nofree nounwind willreturn memory(argmem: read)
declare i32 @bcmp(ptr nocapture, ptr nocapture, i64) local_unnamed_addr #11

attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { nofree nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #4 = { mustprogress nofree nosync nounwind willreturn memory(none) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #7 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #9 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #10 = { inlinehint nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #11 = { nofree nounwind willreturn memory(argmem: read) }
attributes #12 = { nounwind }
attributes #13 = { nounwind willreturn memory(none) }
attributes #14 = { cold nounwind }
attributes #15 = { noreturn nounwind }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"_Bool", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = !{!16, !17, i64 0}
!16 = !{!"s2n_cipher_preferences", !17, i64 0, !10, i64 8, !12, i64 16}
!17 = !{!"short", !7, i64 0}
!18 = distinct !{!18, !19}
!19 = !{!"llvm.loop.mustprogress"}
!20 = distinct !{!20, !19}
!21 = distinct !{!21, !19}
!22 = !{!23, !10, i64 232}
!23 = !{!"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, !24, i64 160, !25, i64 168, !25, 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, !26, i64 240, !10, i64 632, !10, i64 640, !27, i64 648, !33, i64 1144, !36, i64 1688, !10, i64 1752, !7, i64 1760, !6, i64 1764, !7, i64 1768, !38, i64 1776, !38, i64 1816, !38, i64 1856, !38, i64 1896, !6, i64 1936, !25, i64 1944, !7, i64 1952, !38, i64 1960, !7, i64 2000, !7, i64 2001, !7, i64 2002, !12, i64 2003, !39, i64 2004, !39, i64 2008, !40, i64 2016, !17, i64 2208, !6, i64 2212, !17, i64 2216, !25, i64 2224, !7, i64 2232, !25, i64 2240, !25, i64 2248, !25, i64 2256, !39, i64 2264, !39, i64 2268, !7, i64 2272, !7, i64 2528, !6, i64 2784, !32, i64 2792, !6, i64 2816, !32, i64 2824, !32, i64 2848, !32, i64 2872, !42, i64 2896, !44, i64 3704, !10, i64 3760, !10, i64 3768, !7, i64 3776, !6, i64 3780, !32, i64 3784, !6, i64 3808, !46, i64 3816, !7, i64 3848, !38, i64 3992, !32, i64 4032, !32, i64 4056, !12, i64 4080, !12, i64 4081, !12, i64 4082, !17, i64 4084, !17, i64 4086, !6, i64 4088, !6, i64 4092, !32, i64 4096, !6, i64 4120, !47, i64 4128, !39, i64 4176, !7, i64 4180, !7, i64 4181}
!24 = !{!"s2n_timer", !25, i64 0}
!25 = !{!"long", !7, i64 0}
!26 = !{!"s2n_secrets", !7, i64 0, !6, i64 388}
!27 = !{!"s2n_kex_parameters", !28, i64 0, !29, i64 8, !7, i64 24, !29, i64 56, !30, i64 72, !30, i64 184, !7, i64 296, !31, i64 360, !32, i64 448, !32, i64 472}
!28 = !{!"s2n_dh_params", !10, i64 0}
!29 = !{!"s2n_ecc_evp_params", !10, i64 0, !10, i64 8}
!30 = !{!"s2n_kem_group_params", !10, i64 0, !31, i64 8, !29, i64 96}
!31 = !{!"s2n_kem_params", !10, i64 0, !32, i64 8, !32, i64 32, !32, i64 56, !12, i64 80}
!32 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!33 = !{!"s2n_handshake_parameters", !34, i64 0, !34, i64 48, !32, i64 96, !6, i64 120, !35, 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}
!34 = !{!"s2n_pkey", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40}
!35 = !{!"s2n_sig_scheme_list", !7, i64 0, !7, i64 256}
!36 = !{!"s2n_psk_parameters", !6, i64 0, !37, i64 8, !17, i64 40, !17, i64 42, !10, i64 48, !6, i64 56}
!37 = !{!"s2n_array", !32, i64 0, !6, i64 24, !6, i64 28}
!38 = !{!"s2n_stuffer", !32, i64 0, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 36, !6, i64 36}
!39 = !{!"", !6, i64 0}
!40 = !{!"s2n_handshake", !38, 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, !41, i64 176, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 188}
!41 = !{!"s2n_offered_early_data", !10, i64 0}
!42 = !{!"s2n_client_hello", !32, i64 0, !43, i64 24, !32, i64 728, !32, i64 752, !32, i64 776, !7, i64 800, !7, i64 801, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802}
!43 = !{!"", !7, i64 0, !32, i64 672, !17, i64 696}
!44 = !{!"s2n_x509_validator", !10, i64 0, !10, i64 8, !7, i64 16, !7, i64 17, !17, i64 18, !10, i64 24, !6, i64 32, !10, i64 40, !45, i64 48, !12, i64 52}
!45 = !{!"s2n_cert_validation_info", !6, i64 0, !6, i64 0}
!46 = !{!"s2n_ticket_fields", !32, i64 0, !6, i64 24}
!47 = !{!"s2n_post_handshake", !38, i64 0, !7, i64 40}
!48 = !{!49, !10, i64 0}
!49 = !{!"s2n_crypto_parameters", !10, i64 0, !50, i64 8, !50, i64 16, !51, i64 24, !51, i64 456, !7, i64 888, !7, i64 904, !7, i64 920, !7, i64 928}
!50 = !{!"s2n_session_key", !10, i64 0}
!51 = !{!"s2n_hmac_state", !6, i64 0, !17, i64 4, !6, i64 8, !17, i64 12, !7, i64 14, !52, i64 16, !52, i64 72, !52, i64 128, !52, i64 184, !7, i64 240, !7, i64 368}
!52 = !{!"s2n_hash_state", !10, i64 0, !6, i64 8, !7, i64 12, !25, i64 16, !7, i64 24}
!53 = !{!23, !6, i64 628}
!54 = !{!55, !6, i64 12}
!55 = !{!"s2n_tls13_secrets_test_case", !6, i64 0, !6, i64 4, !6, i64 8, !6, i64 12, !10, i64 16, !10, i64 24}
!56 = !{!55, !10, i64 16}
!57 = !{!55, !6, i64 0}
!58 = !{!55, !10, i64 24}
!59 = !{!55, !6, i64 4}
!60 = distinct !{!60, !19}
!61 = !{!32, !10, i64 0}
!62 = !{!23, !7, i64 220}
!63 = !{!23, !6, i64 2172}
!64 = !{!23, !6, i64 2176}
!65 = !{!55, !6, i64 8}
!66 = distinct !{!66, !19}
!67 = !{!32, !6, i64 8}
!68 = !{!23, !6, i64 4088}
!69 = !{!23, !7, i64 2168}
!70 = !{!7, !7, i64 0}
!71 = !{!72, !6, i64 96}
!72 = !{!"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}


; Effective O3 passes: CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopInstSimplifyPass,LoopRotatePass,LoopSimplifyCFGPass,LoopSimplifyPass,LoopUnrollPass,MemCpyOptPass,PostOrderFunctionAttrsPass,SCCPPass,SROAPass,SimplifyCFGPass,TailCallElimPass